3_1_11_299
This commit is contained in:
1 parent
5a3a164f99
commit
722ba9b717
55 files changed
+1172
-1010
No files matched your search
@@ -1146,7 +1146,9 @@
|
||||
|
||||
Если ПараметрыРегистрации.Успех Тогда
|
||||
ЗаполнитьКоманды(КомандыСохраненные);
|
||||
НазначениеВариантаОтчета = ПараметрыРегистрации.НазначениеВариантаОтчета;
|
||||
Если ПараметрыРегистрации.Свойство("НазначениеВариантаОтчета") Тогда
|
||||
НазначениеВариантаОтчета = ПараметрыРегистрации.НазначениеВариантаОтчета;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ПараметрыРегистрации.ИмяОбъектаЗанято Тогда
|
||||
ПредставлениеЗанявших = "";
|
||||
Для Каждого ЭлементСписка Из ПараметрыРегистрации.Конфликтующие Цикл
|
||||
|
||||
@@ -1224,21 +1224,13 @@
|
||||
|
||||
ФИОДоверителя = СведенияОФизическомЛице.ФИО;
|
||||
АдресМестаЖительства = СведенияОФизическомЛице.АдрМЖ;
|
||||
СведенияОДокументеУдостоверяющемЛичность = СведенияОФизическомЛице.УдЛичнФЛ;
|
||||
СведенияОДокументеУдостоверяющемЛичность = СведенияОФизическомЛице.УдЛичнФЛ;
|
||||
|
||||
Фамилия = ФИОДоверителя.Фамилия;
|
||||
Имя = ФИОДоверителя.Имя;
|
||||
Отчество = ФИОДоверителя.Отчество;
|
||||
|
||||
Если ЗначениеЗаполнено(Отчество) Тогда
|
||||
ФИО = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1 %2 %3'"),
|
||||
Фамилия, Имя, Отчество);
|
||||
Иначе
|
||||
ФИО = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1 %2'"),
|
||||
Фамилия, Имя);
|
||||
КонецЕсли;
|
||||
ФИО = МашиночитаемыеДоверенностиФНССлужебный.ФИОСтрокой(ФИОДоверителя);
|
||||
|
||||
КодВидаДокумента = Неопределено;
|
||||
СерияИНомерДокумента = Неопределено;
|
||||
|
||||
+2
@@ -292,6 +292,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<markRequiredComplete>true</markRequiredComplete>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
@@ -301,6 +302,7 @@
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<extendedEditMultipleValues>true</extendedEditMultipleValues>
|
||||
<autoMarkIncomplete>true</autoMarkIncomplete>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
|
||||
+6
-1
@@ -47,6 +47,8 @@
|
||||
Должность = "";
|
||||
НаименованиеОрганизации = "";
|
||||
ОГРН = "";
|
||||
Иначе
|
||||
ИННФЛ = "";
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьВидимостьИДоступность(ЭтотОбъект);
|
||||
@@ -173,7 +175,10 @@
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Процедура УстановитьВидимостьИДоступность(Форма)
|
||||
|
||||
Форма.Элементы.ГруппаОрганизация.Видимость = Форма.ВидПодписанта = "ЮридическоеЛицо";
|
||||
ЭтоЮрЛицо = Форма.ВидПодписанта = "ЮридическоеЛицо";
|
||||
|
||||
Форма.Элементы.ГруппаОрганизация.Видимость = ЭтоЮрЛицо;
|
||||
Форма.Элементы.ИННФЛ.Видимость = Не ЭтоЮрЛицо;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
НомерТелефона = Прав(Объект.НомерТелефона, 10);
|
||||
ИспользуетсяАвтоНаименование = ИспользуетсяАвтоНаименование(Объект);
|
||||
|
||||
Если ЗначениеЗаполнено(Объект.ИННФЛ) И Не ЗначениеЗаполнено(Объект.ИНН) Тогда
|
||||
ВидПодписанта = "ИндивидуальныйПредприниматель"
|
||||
Если ЗначениеЗаполнено(Объект.ИНН) Тогда
|
||||
ВидПодписанта = "ЮридическоеЛицо";
|
||||
Иначе
|
||||
ВидПодписанта = "ЮридическоеЛицо"
|
||||
ВидПодписанта = "ИндивидуальныйПредприниматель";
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.Ключ) Тогда
|
||||
@@ -116,6 +116,8 @@
|
||||
Объект.Должность = "";
|
||||
Объект.НаименованиеОрганизации = "";
|
||||
Объект.ОГРН = "";
|
||||
Иначе
|
||||
Объект.ИННФЛ = "";
|
||||
КонецЕсли;
|
||||
УстановитьВидимостьИДоступность(ЭтотОбъект);
|
||||
КонецПроцедуры
|
||||
@@ -147,8 +149,11 @@
|
||||
Элементы.НомерТелефона.ТолькоПросмотр = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ЭтоЮрЛицо = Форма.ВидПодписанта = "ЮридическоеЛицо";
|
||||
|
||||
Элементы.ВидПодписанта.Видимость = Не Элементы.ВидПодписанта.ТолькоПросмотр;
|
||||
Элементы.ГруппаОрганизация.Видимость = Форма.ВидПодписанта = "ЮридическоеЛицо";
|
||||
Элементы.ГруппаОрганизация.Видимость = ЭтоЮрЛицо;
|
||||
Элементы.ИННФЛ.Видимость = Не ЭтоЮрЛицо;
|
||||
|
||||
Элементы.НаименованиеОрганизации.Видимость = Не ЗначениеЗаполнено(Объект.Организация)
|
||||
Или ЗначениеЗаполнено(Объект.НаименованиеОрганизации);
|
||||
|
||||
@@ -42,16 +42,19 @@
|
||||
|
||||
Наименование = Новый Массив;
|
||||
|
||||
ФИО = "";
|
||||
Если ЗначениеЗаполнено(Объект.Фамилия) Тогда
|
||||
СтруктураФИО = Новый Структура("Фамилия, Имя, Отчество", Объект.Фамилия, Объект.Имя, Объект.Отчество);
|
||||
ФИО = ФизическиеЛицаКлиентСервер.ФамилияИнициалы(СтруктураФИО);
|
||||
ИначеЕсли ЗначениеЗаполнено(Объект.ФизическоеЛицо) Тогда
|
||||
ФИО = Объект.ФизическоеЛицо;
|
||||
Иначе
|
||||
ИначеЕсли ЗначениеЗаполнено(Объект.ИННФЛ) Тогда
|
||||
ФИО = Объект.ИННФЛ;
|
||||
КонецЕсли;
|
||||
|
||||
Наименование.Добавить(ФИО);
|
||||
Если ЗначениеЗаполнено(ФИО) Тогда
|
||||
Наименование.Добавить(ФИО);
|
||||
КонецЕсли;
|
||||
|
||||
Организация = Неопределено;
|
||||
Если ЗначениеЗаполнено(Объект.ИНН) Или ФИО = Объект.ИННФЛ Тогда
|
||||
|
||||
-1
@@ -171,7 +171,6 @@
|
||||
</toolTip>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
|
||||
@@ -1014,7 +1014,7 @@
|
||||
// Параметры:
|
||||
// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - текущий элемент справочника.
|
||||
// НомерГода - Число - номер года, за который необходимо записать производственный календарь.
|
||||
// ДанныеПроизводственногоКалендаря - см. Справочник.ПроизводственныеКалендари.ДанныеПроизводственногоКалендаря.
|
||||
// ДанныеПроизводственногоКалендаря - см. Справочники.ПроизводственныеКалендари.ДанныеПроизводственногоКалендаря
|
||||
//
|
||||
Процедура ЗаписатьДанныеПроизводственногоКалендаря(ПроизводственныйКалендарь, НомерГода, ДанныеПроизводственногоКалендаря) Экспорт
|
||||
|
||||
|
||||
@@ -54,20 +54,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ИспользуетсяСОбъектамиАдресации Тогда
|
||||
Набор = РегистрыСведений.ИсполнителиЗадач.СоздатьНаборЗаписей();
|
||||
Набор.Отбор.РольИсполнителя.Установить(Ссылка);
|
||||
Набор.Записать();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
+8
-8
@@ -68,14 +68,14 @@
|
||||
|
||||
Если Элементы.СертификатыФизическоеЛицо.Видимость И ДляПоискаФизическихЛиц.Количество() > 0 Тогда
|
||||
|
||||
ФизическиеЛица = ЭлектроннаяПодписьСлужебный.ПолучитьФизическиеЛицаПоПолюСертификатаКомуВыдан(ДляПоискаФизическихЛиц);
|
||||
ФизическиеЛицаПоФИО = ЭлектроннаяПодписьСлужебный.ПолучитьФизическиеЛицаПоПолюСертификатаКомуВыдан(ДляПоискаФизическихЛиц);
|
||||
Для Каждого ТекущаяСтрока Из Сертификаты Цикл
|
||||
|
||||
Если ЗначениеЗаполнено(ТекущаяСтрока.ФизическоеЛицо) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
МассивЗначений = ФизическиеЛица.Получить(ТекущаяСтрока.КомуВыдан);
|
||||
МассивЗначений = ФизическиеЛицаПоФИО.Получить(ТекущаяСтрока.КомуВыдан);
|
||||
Если ТипЗнч(МассивЗначений) = Тип("Массив") И МассивЗначений.Количество() = 1 Тогда
|
||||
ТекущаяСтрока.ФизическоеЛицо = МассивЗначений[0];
|
||||
ТекущаяСтрока.Обновить = Истина;
|
||||
@@ -299,11 +299,11 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ФизическиеЛица = Результат.ФизическиеЛица.Получить(ТекущиеДанные.КомуВыдан);
|
||||
ФизическиеЛицаДляФИО = Результат.ФизическиеЛица.Получить(ТекущиеДанные.КомуВыдан);
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Если ФизическиеЛица = Неопределено Тогда
|
||||
Если ФизическиеЛицаДляФИО = Неопределено Тогда
|
||||
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбораФизическогоЛица", ЭтотОбъект);
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("РежимВыбора", Истина);
|
||||
@@ -312,9 +312,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ФизическиеЛица.Количество() = 1 Тогда
|
||||
Если ТекущиеДанные.ФизическоеЛицо <> ФизическиеЛица[0] Тогда
|
||||
ТекущиеДанные.ФизическоеЛицо = ФизическиеЛица[0];
|
||||
Если ФизическиеЛицаДляФИО.Количество() = 1 Тогда
|
||||
Если ТекущиеДанные.ФизическоеЛицо <> ФизическиеЛицаДляФИО[0] Тогда
|
||||
ТекущиеДанные.ФизическоеЛицо = ФизическиеЛицаДляФИО[0];
|
||||
Иначе
|
||||
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбораФизическогоЛица", ЭтотОбъект);
|
||||
ПараметрыФормы = Новый Структура;
|
||||
@@ -330,7 +330,7 @@
|
||||
Отбор = ФиксированныеНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
||||
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
|
||||
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
|
||||
Отбор.ПравоеЗначение = ФизическиеЛица;
|
||||
Отбор.ПравоеЗначение = ФизическиеЛицаДляФИО;
|
||||
Отбор.Использование = Истина;
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
|
||||
+15
-6
@@ -1046,7 +1046,6 @@
|
||||
|
||||
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||
ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание;
|
||||
ПараметрыВопроса.Заголовок = НСтр("ru = 'Подпись будет неверна'");
|
||||
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||
|
||||
Кнопки = Новый СписокЗначений;
|
||||
@@ -1054,11 +1053,21 @@
|
||||
Кнопки.Добавить("РазрешитьПодписание", НСтр("ru = 'Разрешить подписание'"));
|
||||
Кнопки.Добавить("ПоказатьОшибку", НСтр("ru = 'Подробности...'"));
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Сертификат не прошел проверку. Подпись, установленная таким сертификатом, будет неверна.
|
||||
|
|
||||
|%1'"), ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
|
||||
Результат.ОписаниеОшибкиНаКлиенте, Результат.ОписаниеОшибкиНаСервере, Неопределено));
|
||||
Если Результат.ТребуетсяПроверка = Истина Тогда
|
||||
ПараметрыВопроса.Заголовок = НСтр("ru = 'Подпись будет не проверена'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Сертификат не прошел проверку. Подпись, установленная таким сертификатом, будет требовать проверки.
|
||||
|
|
||||
|%1'"), ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
|
||||
Результат.ОписаниеОшибкиНаКлиенте, Результат.ОписаниеОшибкиНаСервере, Неопределено));
|
||||
Иначе
|
||||
ПараметрыВопроса.Заголовок = НСтр("ru = 'Подпись будет неверна'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Сертификат не прошел проверку. Подпись, установленная таким сертификатом, будет неверна.
|
||||
|
|
||||
|%1'"), ЭлектроннаяПодписьСлужебныйКлиентСервер.ОбщееОписаниеОшибки(
|
||||
Результат.ОписаниеОшибкиНаКлиенте, Результат.ОписаниеОшибкиНаСервере, Неопределено));
|
||||
КонецЕсли;
|
||||
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ТекстОшибки, Кнопки, ПараметрыВопроса);
|
||||
Возврат;
|
||||
|
||||
@@ -61,7 +61,8 @@
|
||||
БыстрыйВыбор = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ОграничиватьВыборУказаннымиЗначениями И БыстрыйВыбор И Не Параметры.ЗначенияДляВыбораЗаполнены Тогда
|
||||
Если Не ОграничиватьВыборУказаннымиЗначениями И БыстрыйВыбор
|
||||
И (Параметры.ПараметрыВыбора.Количество() > 0 Или Не Параметры.ЗначенияДляВыбораЗаполнены) Тогда
|
||||
ЗначенияДляВыбора = ОтчетыСервер.ЗначенияДляВыбора(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -64,10 +64,11 @@
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
КоллекцияПечатныхФорм = Параметры.КоллекцияПечатныхФорм;
|
||||
ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм);
|
||||
ОбъектыПечати = Параметры.ОбъектыПечати;
|
||||
КонецЕсли;
|
||||
|
||||
ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм);
|
||||
|
||||
Если Параметры.Сообщения <> Неопределено Тогда
|
||||
Для Каждого Сообщение Из Параметры.Сообщения Цикл
|
||||
ОбщегоНазначения.СообщитьПользователю(Сообщение.Текст);
|
||||
@@ -671,30 +672,20 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ИсключитьОфисныеДокументыИзКомплектов(КоллекцияПечатныхФорм)
|
||||
ЕстьТабличныеДокументы = Ложь;
|
||||
ЕстьОфисныеДокументы = Ложь;
|
||||
Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
|
||||
ЕстьТабличныеДокументы = ЕстьТабличныеДокументы Или ПечатнаяФорма.ТабличныйДокумент.ВысотаТаблицы <> 0;
|
||||
ЕстьОфисныеДокументы = ЕстьОфисныеДокументы Или (ПечатнаяФорма.ОфисныеДокументы <> Неопределено
|
||||
И ПечатнаяФорма.ОфисныеДокументы.Количество() <> 0);
|
||||
Если ЕстьТабличныеДокументы И ЕстьОфисныеДокументы Тогда
|
||||
Прервать;
|
||||
|
||||
ОфисныеДокументы = Новый Массив;
|
||||
|
||||
Для Счетчик = 1 По КоллекцияПечатныхФорм.Количество() Цикл
|
||||
Индекс = КоллекцияПечатныхФорм.Количество() - Счетчик;
|
||||
ПечатнаяФорма = КоллекцияПечатныхФорм[Индекс];
|
||||
Если ПечатнаяФорма.ОфисныеДокументы <> Неопределено Тогда
|
||||
ОфисныеДокументы.Добавить(Индекс);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ЕстьТабличныеДокументы И ЕстьОфисныеДокументы Тогда
|
||||
Индекс = 0;
|
||||
Пока Истина Цикл
|
||||
Если Индекс > КоллекцияПечатныхФорм.ВГраница() Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
ПечатнаяФорма = КоллекцияПечатныхФорм[Индекс];
|
||||
Если ПечатнаяФорма.ОфисныеДокументы <> Неопределено И ПечатнаяФорма.ОфисныеДокументы.Количество() <> 0 Тогда
|
||||
КоллекцияПечатныхФорм.Удалить(Индекс);
|
||||
Индекс = Индекс - 1;
|
||||
КонецЕсли;
|
||||
Индекс = Индекс + 1;
|
||||
Если КоллекцияПечатныхФорм.Количество() > ОфисныеДокументы.Количество() Тогда
|
||||
Для Каждого Индекс Из ОфисныеДокументы Цикл
|
||||
КоллекцияПечатныхФорм.Удалить(Индекс);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -799,7 +799,9 @@
|
||||
|
||||
Результат = Истина;
|
||||
|
||||
Если ТипЗнч(ИнфоОПеренаправлении) = Тип("Структура") Тогда
|
||||
Если ТипЗнч(ИнфоОПеренаправлении) = Тип("Структура")
|
||||
И (ТипЗнч(ИнфоОПеренаправлении.Исполнитель) = Тип("СправочникСсылка.Пользователи")
|
||||
Или ТипЗнч(ИнфоОПеренаправлении.Исполнитель) = Тип("СправочникСсылка.ВнешниеПользователи")) Тогда
|
||||
ОписаниеПользователя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ИнфоОПеренаправлении.Исполнитель, "Недействителен,ПометкаУдаления");
|
||||
|
||||
Если ОписаниеПользователя.Недействителен
|
||||
|
||||
@@ -3233,6 +3233,31 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьОснованияПисьма(СтрокаИдентификаторов)
|
||||
|
||||
СтрокаИдентификаторов = СтрЗаменить(СтрокаИдентификаторов, " ", Символы.ПС);
|
||||
|
||||
СтрокиДоОбработки = СтрРазделить(СтрокаИдентификаторов, Символы.ПС, Ложь);
|
||||
СтрокиПослеОбработки = Новый Массив;
|
||||
|
||||
Для Каждого СтрокаОснований Из СтрокиДоОбработки Цикл
|
||||
|
||||
Если Не СтрНачинаетсяС(СтрокаОснований, "<") Тогда
|
||||
СтрокаОснований = "<" + СтрокаОснований;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не СтрЗаканчиваетсяНа(СтрокаОснований, ">") Тогда
|
||||
СтрокаОснований = СтрокаОснований + ">";
|
||||
КонецЕсли;
|
||||
|
||||
СтрокиПослеОбработки.Добавить(СтрокаОснований);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
СтрокаИдентификаторов = СтрСоединить(СтрокиПослеОбработки, " ");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПараметрыПисьмаДляОтправки(Объект) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
||||
@@ -3256,10 +3281,12 @@
|
||||
ПараметрыПисьма.Вставить("ТипТекста", Объект.ТипТекста);
|
||||
|
||||
Если Не ПустаяСтрока(Объект.ИдентификаторОснования) Тогда
|
||||
ОбработатьОснованияПисьма(Объект.ИдентификаторОснования);
|
||||
ПараметрыПисьма.Вставить("ИдентификаторОснования", Объект.ИдентификаторОснования);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПустаяСтрока(Объект.ИдентификаторыОснований) Тогда
|
||||
ОбработатьОснованияПисьма(Объект.ИдентификаторыОснований);
|
||||
ПараметрыПисьма.Вставить("ИдентификаторыОснований", Объект.ИдентификаторыОснований);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
// АПК:134-вкл
|
||||
// АПК:142-вкл
|
||||
|
||||
// Запустить выполнение функции в многопоточном фоновом задании, если это возможно.
|
||||
// Запускает выполнение функции в многопоточном фоновом задании, если это возможно.
|
||||
// Вызываемая процедура может быть с произвольным числом параметров, но не более 7.
|
||||
// Значения передаваемых параметров процедуры, а также возвращаемое значение должны быть сериализуемыми.
|
||||
// Параметры процедуры не должны быть возвращаемыми.
|
||||
@@ -242,55 +242,15 @@
|
||||
// * КраткоеПредставлениеОшибки - Строка - устарел.
|
||||
// * ПодробноеПредставлениеОшибки - Строка - устарел.
|
||||
//
|
||||
Функция ВыполнитьФункциюВНесколькоПотоков(ИмяФункции, Знач ПараметрыВыполнения, Знач НаборПараметровФункции = Неопределено) Экспорт
|
||||
Функция ВыполнитьФункциюВНесколькоПотоков(ИмяФункции, ПараметрыВыполнения, НаборПараметровФункции = Неопределено) Экспорт
|
||||
|
||||
ПроверитьВозможностьЗапускаМногопоточнойДлительнойОперации(ПараметрыВыполнения, НаборПараметровФункции);
|
||||
|
||||
Если ПараметрыВыполнения.ОжидатьЗавершение = ОбщиеПараметрыВыполненияВФоне().ОжидатьЗавершение Тогда
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
КонецЕсли;
|
||||
|
||||
АдресаРезультатов = Новый Соответствие;
|
||||
|
||||
Если ТипЗнч(НаборПараметровФункции) = Тип("Соответствие") Тогда
|
||||
Для Каждого ПараметрФункции Из НаборПараметровФункции Цикл
|
||||
АдресРезультатаПотока = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
|
||||
АдресаРезультатов.Вставить(ПараметрФункции.Ключ, АдресРезультатаПотока);
|
||||
КонецЦикла;
|
||||
ПараметрыМетода = НаборПараметровФункции.Количество();
|
||||
Иначе
|
||||
ПараметрыМетода = НаборПараметровФункции; // Структура
|
||||
НаборПараметровФункции = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторПроцесса = Новый УникальныйИдентификатор;
|
||||
ПараметрыМногопоточнойОперации = ПараметрыМногопоточнойОперации(ИдентификаторПроцесса);
|
||||
ПараметрыМногопоточнойОперации.ИмяМетода = ИмяФункции;
|
||||
ПараметрыМногопоточнойОперации.ЭтоФункция = "Функция";
|
||||
ПараметрыМногопоточнойОперации.ПараметрыВыполнения = ПараметрыВыполнения;
|
||||
ПараметрыМногопоточнойОперации.ПараметрыМетода = ПараметрыМетода;
|
||||
|
||||
ПодготовитьМногопоточнуюОперациюКЗапуску(ИмяФункции,
|
||||
АдресаРезультатов, ИдентификаторПроцесса, НаборПараметровФункции);
|
||||
|
||||
РезультатЗапуска = Новый Структура("Статус, ИдентификаторЗадания, АдресРезультата",
|
||||
СтатусДлительнойОперации().Выполняется);
|
||||
ЗапланироватьЗапускПотоковДлительныхОпераций(РезультатЗапуска, ПараметрыМногопоточнойОперации);
|
||||
|
||||
РезультатЗапуска = ВыполнитьФункцию(ПараметрыВыполнения,
|
||||
ИмяМетодаМногопоточногоПроцесса(), ПараметрыМногопоточнойОперации);
|
||||
|
||||
Если РезультатЗапуска.Статус <> СтатусДлительнойОперации().Выполняется Тогда
|
||||
УдалитьДанныеОПотоках(ИдентификаторПроцесса);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РезультатЗапуска;
|
||||
Возврат ВыполнитьМетодВНесколькоПотоков(ИмяФункции, ПараметрыВыполнения, НаборПараметровФункции, Истина);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Запускает выполнение процедуры в многопоточном фоновом задании, если это возможно.
|
||||
// Вызываемая процедура может быть с произвольным числом параметров, но не более 7.
|
||||
// Значения передаваемых параметров процедуры, а также возвращаемое значение должны быть сериализуемыми.
|
||||
// Значения передаваемых параметров процедуры должны быть сериализуемыми.
|
||||
// Параметры процедуры не должны быть возвращаемыми.
|
||||
// Многопоточные длительные операции в неразделенном сеансе не поддерживаются.
|
||||
//
|
||||
@@ -301,7 +261,7 @@
|
||||
// Параметры:
|
||||
// ИмяПроцедуры - Строка - имя экспортной процедуры общего модуля, модуля менеджера объекта
|
||||
// или модуля обработки, которую необходимо выполнить в фоне.
|
||||
// ПараметрыВыполнения - см. ПараметрыВыполненияПроцедуры
|
||||
// ПараметрыВыполнения - см. ПараметрыВыполненияФункции
|
||||
// НаборПараметровПроцедуры - Соответствие из КлючИЗначение - произвольный набор параметров вызова процедуры:
|
||||
// * Ключ - Произвольный - ключ набора
|
||||
// * Значение - Массив - параметры вызова процедуры. Количество параметров может быть от 0 до 7.
|
||||
@@ -325,53 +285,9 @@
|
||||
// * КраткоеПредставлениеОшибки - Строка - устарел.
|
||||
// * ПодробноеПредставлениеОшибки - Строка - устарел.
|
||||
//
|
||||
Функция ВыполнитьПроцедуруВНесколькоПотоков(ИмяПроцедуры, Знач ПараметрыВыполнения, Знач НаборПараметровПроцедуры = Неопределено) Экспорт
|
||||
Функция ВыполнитьПроцедуруВНесколькоПотоков(ИмяПроцедуры, ПараметрыВыполнения, НаборПараметровПроцедуры = Неопределено) Экспорт
|
||||
|
||||
ПроверитьВозможностьЗапускаМногопоточнойДлительнойОперации(ПараметрыВыполнения, НаборПараметровПроцедуры);
|
||||
|
||||
НовыеПараметрыВыполнения = ПараметрыВыполненияФункции(Неопределено);
|
||||
ЗаполнитьЗначенияСвойств(НовыеПараметрыВыполнения, ПараметрыВыполнения);
|
||||
ПараметрыВыполнения = НовыеПараметрыВыполнения;
|
||||
|
||||
Если ПараметрыВыполнения.ОжидатьЗавершение = ОбщиеПараметрыВыполненияВФоне().ОжидатьЗавершение Тогда
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
КонецЕсли;
|
||||
|
||||
АдресаРезультатов = Новый Соответствие;
|
||||
|
||||
Если ТипЗнч(НаборПараметровПроцедуры) = Тип("Соответствие") Тогда
|
||||
Для Каждого ПараметрФункции Из НаборПараметровПроцедуры Цикл
|
||||
АдресРезультатаПотока = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
|
||||
АдресаРезультатов.Вставить(ПараметрФункции.Ключ, АдресРезультатаПотока);
|
||||
КонецЦикла;
|
||||
ПараметрыМетода = НаборПараметровПроцедуры.Количество();
|
||||
Иначе
|
||||
ПараметрыМетода = НаборПараметровПроцедуры; // Структура
|
||||
НаборПараметровПроцедуры = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторПроцесса = Новый УникальныйИдентификатор;
|
||||
ПараметрыМногопоточнойОперации = ПараметрыМногопоточнойОперации(ИдентификаторПроцесса);
|
||||
ПараметрыМногопоточнойОперации.ИмяМетода = ИмяПроцедуры;
|
||||
ПараметрыМногопоточнойОперации.ЭтоФункция = "Процедура";
|
||||
ПараметрыМногопоточнойОперации.ПараметрыВыполнения = ПараметрыВыполнения;
|
||||
ПараметрыМногопоточнойОперации.ПараметрыМетода = ПараметрыМетода;
|
||||
|
||||
ПодготовитьМногопоточнуюОперациюКЗапуску(ИмяПроцедуры,
|
||||
АдресаРезультатов, ИдентификаторПроцесса, НаборПараметровПроцедуры);
|
||||
|
||||
РезультатЗапуска = Новый Структура("Статус, ИдентификаторЗадания, АдресРезультата",
|
||||
СтатусДлительнойОперации().Выполняется);
|
||||
ЗапланироватьЗапускПотоковДлительныхОпераций(РезультатЗапуска, ПараметрыМногопоточнойОперации);
|
||||
|
||||
РезультатЗапуска = ВыполнитьФункцию(ПараметрыВыполнения,
|
||||
ИмяМетодаМногопоточногоПроцесса(), ПараметрыМногопоточнойОперации);
|
||||
|
||||
Если РезультатЗапуска.Статус <> СтатусДлительнойОперации().Выполняется Тогда
|
||||
УдалитьДанныеОПотоках(ИдентификаторПроцесса);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РезультатЗапуска;
|
||||
Возврат ВыполнитьМетодВНесколькоПотоков(ИмяПроцедуры, ПараметрыВыполнения, НаборПараметровПроцедуры, Ложь);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -585,6 +501,9 @@
|
||||
ПараметрыВыполнения = НовыеПараметрыВыполнения;
|
||||
|
||||
ПроверитьПараметрыВыполнения(ПараметрыВыполнения);
|
||||
Если ПараметрыВыполнения.СвойстваИсполняющегоПотокаМногопоточнойДлительнойОперации = Неопределено Тогда
|
||||
ПроверитьИЗаполнитьАдресРезультата(ПараметрыВыполнения, "ДлительныеОперации.ВыполнитьВФоне");
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Статус", "Выполняется");
|
||||
@@ -862,6 +781,7 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Если ПараметрыСеанса.ДлительныеОперации.Отмененные.Найти(ИдентификаторЗадания) = Неопределено Тогда
|
||||
Свойства = Новый Структура(ПараметрыСеанса.ДлительныеОперации);
|
||||
@@ -871,19 +791,32 @@
|
||||
ПараметрыСеанса.ДлительныеОперации = Новый ФиксированнаяСтруктура(Свойства);
|
||||
КонецЕсли;
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
|
||||
Задание = НайтиЗаданиеПоИдентификатору(ИдентификаторЗадания);
|
||||
Если Задание = Неопределено Или Задание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда
|
||||
Возврат;
|
||||
Если Задание <> Неопределено
|
||||
И Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
|
||||
|
||||
Попытка
|
||||
Задание.Отменить();
|
||||
Исключение
|
||||
// Возможно задание как раз в этот момент закончилось и ошибки нет.
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Отмена выполнения фонового задания'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Информация, , , ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
Задание.Отменить();
|
||||
Исключение
|
||||
// Возможно задание как раз в этот момент закончилось и ошибки нет.
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Отмена выполнения фонового задания'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Информация, , , ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ИдентификаторПроцесса = ПараметрыСеанса.ДлительныеОперации.Запущенные.Получить(ИдентификаторЗадания);
|
||||
Если ИдентификаторПроцесса <> Неопределено Тогда
|
||||
ОтменитьВыполнениеВсехПотоков(ИдентификаторПроцесса);
|
||||
ОперацияВыполнена(ИдентификаторЗадания);
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1154,11 +1087,16 @@
|
||||
ПоследнийИдентификатор = ПоследнийИдентификатор(ИдентификаторЗадания);
|
||||
|
||||
Задание = НайтиЗаданиеПоИдентификатору(ПоследнийИдентификатор);
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если Задание = Неопределено Тогда
|
||||
РезультатИзОповещения = ПолучитьИзОповещений(Ложь,
|
||||
ИдентификаторЗадания, "ДлительнаяОперацияЗавершена");
|
||||
Если РезультатИзОповещения <> Неопределено Тогда
|
||||
ЗаполнитьЗначенияСвойств(Результат, РезультатИзОповещения);
|
||||
УстановитьЗавершениеДляУправляющегоПотока(ИдентификаторЗадания, Результат);
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
Если ВыполненПерезапускУправляющегоПотока(ИдентификаторЗадания, Задание) Тогда
|
||||
@@ -1173,9 +1111,8 @@
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
КонецПопытки;
|
||||
УстановитьСвойстваОшибки(Результат, ИнформацияОбОшибке);
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Фоновое задание не найдено'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , Результат.ПодробноеПредставлениеОшибки);
|
||||
Результат.Статус = "Ошибка";
|
||||
УстановитьЗавершениеДляУправляющегоПотока(ИдентификаторЗадания, Результат);
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1185,7 +1122,6 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Задание.Состояние = СостояниеФоновогоЗадания.Отменено Тогда
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Если ПараметрыСеанса.ДлительныеОперации.Отмененные.Найти(ПоследнийИдентификатор) = Неопределено Тогда
|
||||
Результат.Статус = "Ошибка";
|
||||
Если Задание.ИнформацияОбОшибке <> Неопределено Тогда
|
||||
@@ -1201,7 +1137,7 @@
|
||||
Иначе
|
||||
Результат.Статус = "Отменено";
|
||||
КонецЕсли;
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
УстановитьЗавершениеДляУправляющегоПотока(ИдентификаторЗадания, Результат);
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1212,10 +1148,12 @@
|
||||
Если Задание.ИнформацияОбОшибке <> Неопределено Тогда
|
||||
УстановитьСвойстваОшибки(Результат, Задание.ИнформацияОбОшибке);
|
||||
КонецЕсли;
|
||||
УстановитьЗавершениеДляУправляющегоПотока(ИдентификаторЗадания, Результат);
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Результат.Статус = "Выполнено";
|
||||
УстановитьЗавершениеДляУправляющегоПотока(ИдентификаторЗадания, Результат);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
@@ -1308,6 +1246,7 @@
|
||||
Если ИмяПараметра = "ДлительныеОперации" Тогда
|
||||
Свойства = Новый Структура;
|
||||
Свойства.Вставить("Отмененные", Новый ФиксированныйМассив(Новый Массив));
|
||||
Свойства.Вставить("Запущенные", Новый ФиксированноеСоответствие(Новый Соответствие));
|
||||
Свойства.Вставить("Перезапущенные", Новый ФиксированноеСоответствие(Новый Соответствие));
|
||||
Свойства.Вставить("ИдентификаторОсновногоЗадания");
|
||||
Свойства.Вставить("ПолученныеОповещения", Новый ФиксированноеСоответствие(Новый Соответствие));
|
||||
@@ -1563,7 +1502,7 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяПроцедуры,
|
||||
ПараметрыВыполнения, ПараметрыПроцедуры = Неопределено, БезопасныйРежим = Ложь, ОтправлятьОповещения = Ложь) Экспорт
|
||||
ПараметрыВыполнения, ПараметрыПроцедуры = Неопределено, БезопасныйРежим = Ложь, ОтправлятьОповещения = Ложь)
|
||||
|
||||
КлючФоновогоЗадания = ПараметрыВыполнения.КлючФоновогоЗадания;
|
||||
НаименованиеФоновогоЗадания = ?(ПустаяСтрока(ПараметрыВыполнения.НаименованиеФоновогоЗадания),
|
||||
@@ -2144,7 +2083,9 @@
|
||||
ДополнительныеПараметрыОтправки = СерверныеОповещения.ДополнительныеПараметрыОтправки();
|
||||
ДополнительныеПараметрыОтправки.ИдентификаторГруппы = ИдентификаторОсновногоЗадания;
|
||||
ДополнительныеПараметрыОтправки.ВидОповещенияВГруппе = ИдентификаторВидаОповещения(ВидОповещения);
|
||||
ДополнительныеПараметрыОтправки.ЗаписатьБезусловно = ВидОповещения = "СообщениеПользователю";
|
||||
ДополнительныеПараметрыОтправки.ЗаписатьБезусловно = ВидОповещения = "СообщениеПользователю"
|
||||
Или ВидОповещения = "ДлительнаяОперацияЗавершена"
|
||||
И Не ОбщегоНазначения.ИнформационнаяБазаФайловая();
|
||||
|
||||
Если ВидОповещения = "Прогресс" Тогда
|
||||
ДополнительныеПараметрыОтправки.Заменить = Истина;
|
||||
@@ -2385,36 +2326,46 @@
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
Если ПараметрыВыполнения.СвойстваИсполняющегоПотокаМногопоточнойДлительнойОперации = Неопределено Тогда
|
||||
Если ПараметрыВыполнения.АдресРезультата = Неопределено Тогда
|
||||
Если Не ЗначениеЗаполнено(ПараметрыВыполнения.ИдентификаторФормы) И ОбщегоНазначения.РежимОтладки() Тогда
|
||||
Попытка
|
||||
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru = 'Не указан ни уникальный идентификатор формы в параметре %1,
|
||||
|ни адрес временного хранилища в %2 в %3.
|
||||
|Убедиться, что при обработке результата временное хранилище очищается явно методом %4.'"),
|
||||
"ПараметрыВыполнения.ИдентификаторФормы", "ПараметрыВыполнения.АдресРезультата",
|
||||
"ДлительныеОперации.ВыполнитьВФоне", "УдалитьИзВременногоХранилища"),
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
Исключение
|
||||
// АПК:154-выкл Не ошибка, а предупреждение (рекомендация разработчику).
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Диагностика'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Предупреждение, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
// АПК:154-вкл
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
ПараметрыВыполнения.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено, ПараметрыВыполнения.ИдентификаторФормы);
|
||||
ИначеЕсли Не ЭтоАдресВременногоХранилища(ПараметрыВыполнения.АдресРезультата) Тогда
|
||||
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru = 'Не указан адрес временного хранилища в параметре %1
|
||||
|в %2.'"),
|
||||
"ПараметрыВыполнения.АдресРезультата", "ДлительныеОперации.ВыполнитьВФоне"),
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьИЗаполнитьАдресРезультата(ПараметрыВыполнения, ИмяФункции)
|
||||
|
||||
Если ПараметрыВыполнения.АдресРезультата = Неопределено Тогда
|
||||
|
||||
Если ОбщегоНазначения.РежимОтладки()
|
||||
И (Не ЗначениеЗаполнено(ПараметрыВыполнения.ИдентификаторФормы)
|
||||
Или ТипЗнч(ПараметрыВыполнения.ИдентификаторФормы) <> Тип("УникальныйИдентификатор")) Тогда
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не указан ни уникальный идентификатор формы в параметре %1,
|
||||
|ни адрес временного хранилища в параметре %2
|
||||
|функции %3.
|
||||
|Рекомендуется указать идентификатор формы или адрес.
|
||||
|Автоматически сформированный адрес содержит значение только до следующего
|
||||
|серверного вызова, что может приводить к неожиданным ошибкам.'"),
|
||||
"ПараметрыВыполнения.ИдентификаторФормы", "ПараметрыВыполнения.АдресРезультата", ИмяФункции);
|
||||
Попытка
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
Исключение
|
||||
// АПК:154-выкл Не ошибка, а предупреждение (рекомендация разработчику).
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Диагностика'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Предупреждение, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
// АПК:154-вкл
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
ПараметрыВыполнения.АдресРезультата = ПоместитьВоВременноеХранилище(Неопределено,
|
||||
ПараметрыВыполнения.ИдентификаторФормы);
|
||||
|
||||
ИначеЕсли Не ЭтоАдресВременногоХранилища(ПараметрыВыполнения.АдресРезультата) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Указан некорректный адрес временного хранилища в параметре %1
|
||||
|функции %2.'"),
|
||||
"ПараметрыВыполнения.АдресРезультата", ИмяФункции);
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЭтоВыполнениеБезФоновогоЗадания(ИмяПроцедуры, ПараметрыВыполнения)
|
||||
|
||||
#Если ВнешнееСоединение Тогда
|
||||
@@ -2512,9 +2463,10 @@
|
||||
АдресаНовыхРезультатов, ИдентификаторПроцесса, НовыеПорции, ПараметрыОперации);
|
||||
КонецЕсли;
|
||||
|
||||
// @skip-check query-in-loop - Получение актуальных данных о потоках с учетом работы других процессов.
|
||||
// @skip-check query-in-loop - Получение данных о потоках текущего процесса.
|
||||
Потоки = ПотокиОжидающиеОбработки(ИдентификаторПроцесса);
|
||||
Если Потоки.Количество() = 0 Тогда
|
||||
ОжидатьЗавершениеВсехПотоков(ИдентификаторПроцесса, ПрерватьВыполнениеЕслиОшибка, ЗавершитьДосрочно);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2547,7 +2499,7 @@
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
// @skip-check query-in-loop - На каждой итерации необходимо зачитывать актуальные данные из ИБ.
|
||||
// @skip-check query-in-loop - На каждой итерации необходимо получать актуальные данные из ИБ.
|
||||
ОжидатьЗавершениеВсехПотоков(ИдентификаторПроцесса, ПрерватьВыполнениеЕслиОшибка, ЗавершитьДосрочно);
|
||||
|
||||
Если ЗавершитьДосрочно Тогда
|
||||
@@ -2656,17 +2608,14 @@
|
||||
ПараметрыВыполнения = ПодготовитьПараметрыВыполнения(ПараметрыВыполнения, ПараметрыОперации.ЭтоФункция);
|
||||
ПараметрыВыполнения.ВнешнийОтчетОбработка = ПараметрыОперации.ПараметрыВыполнения.ВнешнийОтчетОбработка;
|
||||
|
||||
РезультатЗапуска = Неопределено;
|
||||
МаксимумПотоков = ДопустимоеКоличествоПотоков();
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Константа.КоличествоПотоковДлительныхОпераций");
|
||||
УстановитьПолноеИмяПрикладнойПроцедуры(ПараметрыОперации.ИмяМетода);
|
||||
|
||||
ПотокЗанят = Ложь;
|
||||
НоваяПопыткаВыполнения = Поток.Статус <> СтатусДлительнойОперации().Создано;
|
||||
|
||||
Если Не ПараметрыВыполнения.ЗапуститьНеВФоне Тогда
|
||||
|
||||
Если ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь Тогда
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Константа.КоличествоПотоковДлительныхОпераций");
|
||||
МаксимумПотоков = ДопустимоеКоличествоПотоков();
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
@@ -2676,7 +2625,7 @@
|
||||
ВременныйРезультатЗапуска = НовыйРезультатВыполненияПотока();
|
||||
ВременныйРезультатЗапуска.ИдентификаторЗадания = ИдентификаторЗаданияПроцесса;
|
||||
ВременныйРезультатЗапуска.Статус = СтатусДлительнойОперации().Выполняется;
|
||||
ОбновитьСведенияОбПотоке(Поток, ВременныйРезультатЗапуска, Ложь);
|
||||
ОбновитьСведенияОПотоке(Поток, ВременныйРезультатЗапуска);
|
||||
ПотокЗанят = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2685,65 +2634,57 @@
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыВыполнения.ЗапуститьНеВФоне = Ложь И Не ПотокЗанят Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПолноеИмяПрикладнойПроцедуры(ПараметрыОперации.ИмяМетода);
|
||||
Попытка
|
||||
|
||||
Если ПараметрыВыполнения.ЗапуститьНеВФоне Или ПотокЗанят Тогда
|
||||
РезультатЗапуска = ВыполнитьВФоне(ПараметрыОперации.ИмяМетода, ПараметрыМетода, ПараметрыВыполнения);
|
||||
УстановитьПолноеИмяПрикладнойПроцедуры(ИмяМетодаМногопоточногоПроцесса());
|
||||
ОбновитьСведенияОбПотоке(Поток, РезультатЗапуска);
|
||||
КонецЕсли;
|
||||
|
||||
РезультатЗапуска = ВыполнитьВФоне(ПараметрыОперации.ИмяМетода, ПараметрыМетода, ПараметрыВыполнения);
|
||||
Исключение
|
||||
|
||||
УстановитьПолноеИмяПрикладнойПроцедуры(ИмяМетодаМногопоточногоПроцесса());
|
||||
Если ПотокЗанят Тогда
|
||||
ПустойРезультатЗапуска = НовыйРезультатВыполненияПотока();
|
||||
ОбновитьСведенияОбПотоке(Поток, ПустойРезультатЗапуска, Ложь);
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке,
|
||||
НСтр("ru = 'Не удалось запустить задание обработки порции по причине:'"));
|
||||
Попытка
|
||||
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке);
|
||||
Исключение
|
||||
УточненнаяИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
КонецПопытки;
|
||||
ОшибочныйРезультатЗапуска = НовыйРезультатВыполненияПотока();
|
||||
ОшибочныйРезультатЗапуска.Статус = СтатусДлительнойОперации().Ошибка;
|
||||
УстановитьСвойстваОшибки(ОшибочныйРезультатЗапуска, УточненнаяИнформацияОбОшибке);
|
||||
ОбновитьСведенияОПотоке(Поток, ОшибочныйРезультатЗапуска);
|
||||
КонецЕсли;
|
||||
ВызватьИсключение;
|
||||
|
||||
КонецПопытки;
|
||||
УстановитьПолноеИмяПрикладнойПроцедуры(ИмяМетодаМногопоточногоПроцесса());
|
||||
ОбновитьСведенияОПотоке(Поток, РезультатЗапуска, НоваяПопыткаВыполнения);
|
||||
|
||||
Возврат РезультатЗапуска;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СтатусИзСостояния(Состояние)
|
||||
|
||||
Если Состояние = СостояниеФоновогоЗадания.Завершено Тогда
|
||||
Возврат СтатусДлительнойОперации().Выполнено;
|
||||
ИначеЕсли Состояние = СостояниеФоновогоЗадания.Отменено Тогда
|
||||
Возврат СтатусДлительнойОперации().Отменено;
|
||||
ИначеЕсли Состояние = СостояниеФоновогоЗадания.Активно Тогда
|
||||
Возврат СтатусДлительнойОперации().Выполняется;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтатусДлительнойОперации().Ошибка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбновитьСведенияОбПотоке(Поток, РезультатЗапуска = Неопределено, НоваяПопытка = Истина)
|
||||
Процедура ОбновитьСведенияОПотоке(Поток, РезультатЗапуска, НоваяПопытка = Ложь,
|
||||
ПерезапускПроцесса = Ложь, УстановитьЗавершениеАктивного = Ложь)
|
||||
|
||||
РезультатЗапускаУказан = РезультатЗапуска <> Неопределено;
|
||||
|
||||
Если РезультатЗапуска = Неопределено Тогда
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если Не РезультатЗапускаУказан Тогда
|
||||
РезультатЗапуска = НовыйРезультатВыполненияПотока();
|
||||
|
||||
Если ЗначениеЗаполнено(Поток.ИдентификаторЗадания) Тогда
|
||||
ПоследнийИдентификатор = ПоследнийИдентификаторЗаданияУправляющегоПотока(Поток);
|
||||
Задание = НайтиЗаданиеПоИдентификатору(ПоследнийИдентификатор);
|
||||
|
||||
Если Задание <> Неопределено Тогда
|
||||
РезультатЗапуска.Статус = СтатусИзСостояния(Задание.Состояние);
|
||||
|
||||
Если Задание.ИнформацияОбОшибке <> Неопределено Тогда
|
||||
УстановитьСвойстваОшибки(РезультатЗапуска, Задание.ИнформацияОбОшибке);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
РезультатЗапуска.Статус = СтатусДлительнойОперации().Ошибка;
|
||||
КонецЕсли;
|
||||
ПоследнийИдентификатор = ПоследнийИдентификаторЗаданияПотока(Поток);
|
||||
Результат = ЗаданиеВыполнено(ПоследнийИдентификатор, Истина);
|
||||
РезультатЗапуска.Статус = СтатусДлительнойОперации()[Результат.Статус];
|
||||
РезультатЗапуска.ИнформацияОбОшибке = Результат.ИнформацияОбОшибке;
|
||||
РезультатЗапуска.КраткоеПредставлениеОшибки = Результат.КраткоеПредставлениеОшибки;
|
||||
РезультатЗапуска.ПодробноеПредставлениеОшибки = Результат.ПодробноеПредставлениеОшибки;
|
||||
Иначе
|
||||
РезультатЗапуска.Статус = СтатусДлительнойОперации().Создано;
|
||||
КонецЕсли;
|
||||
@@ -2761,31 +2702,40 @@
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
НаборЗаписей = РегистрыСведений.ДлительныеОперации.СоздатьНаборЗаписей();
|
||||
НаборЗаписей.Отбор.ИдентификаторПроцесса.Установить(ИдентификаторПроцесса);
|
||||
НаборЗаписей.Отбор.ИдентификаторПотока.Установить(ИдентификаторПотока);
|
||||
|
||||
НаборЗаписей.Прочитать();
|
||||
СтатусОбновлен = Неопределено;
|
||||
|
||||
Если НаборЗаписей.Количество() > 0 Тогда
|
||||
Запись = НаборЗаписей.Получить(0);
|
||||
СтатусОбновлен = Ложь;
|
||||
|
||||
Если РезультатЗапускаУказан Тогда
|
||||
Запись.ИдентификаторЗадания = РезультатЗапуска.ИдентификаторЗадания;
|
||||
Запись.КлючПотока = Поток.КлючПотока;
|
||||
Если РезультатЗапускаУказан И Не УстановитьЗавершениеАктивного Тогда
|
||||
Если ПерезапускПроцесса Тогда
|
||||
Запись.КлючПотока = Новый ХранилищеЗначения(РезультатЗапуска.ИдентификаторЗадания, Новый СжатиеДанных(9));
|
||||
Иначе
|
||||
Запись.ИдентификаторЗадания = РезультатЗапуска.ИдентификаторЗадания;
|
||||
КонецЕсли;
|
||||
Если НоваяПопытка Тогда
|
||||
Запись.НомерПопытки = Поток.НомерПопытки + 1;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Запись.Статус = РезультатЗапуска.Статус;
|
||||
Если РезультатЗапуска.Статус = СтатусДлительнойОперации().Ошибка Тогда
|
||||
Запись.ПараметрыМетода = Новый ХранилищеЗначения(РезультатЗапуска.ИнформацияОбОшибке, Новый СжатиеДанных(9));
|
||||
Запись.ПодробноеПредставлениеОшибки = РезультатЗапуска.ПодробноеПредставлениеОшибки;
|
||||
Запись.КраткоеПредставлениеОшибки = РезультатЗапуска.КраткоеПредставлениеОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не УстановитьЗавершениеАктивного
|
||||
Или Запись.Статус = СтатусДлительнойОперации().Выполняется
|
||||
И ПоследнийИдентификаторЗаданияПотока(Запись) = ПоследнийИдентификаторЗаданияПотока(Поток) Тогда
|
||||
|
||||
СтатусОбновлен = Истина;
|
||||
Запись.Статус = РезультатЗапуска.Статус;
|
||||
Если РезультатЗапуска.Статус = СтатусДлительнойОперации().Ошибка Тогда
|
||||
Запись.ПараметрыМетода = Новый ХранилищеЗначения(РезультатЗапуска.ИнформацияОбОшибке, Новый СжатиеДанных(9));
|
||||
Запись.ПодробноеПредставлениеОшибки = РезультатЗапуска.ПодробноеПредставлениеОшибки;
|
||||
Запись.КраткоеПредставлениеОшибки = РезультатЗапуска.КраткоеПредставлениеОшибки;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ЗаполнитьЗначенияСвойств(Поток, Запись);
|
||||
|
||||
НаборЗаписей.Записать();
|
||||
@@ -2797,6 +2747,8 @@
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
УстановитьЗавершениеАктивного = СтатусОбновлен;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПервыйИдентификаторЗаданияУправляющегоПотока(ИдентификаторПроцесса)
|
||||
@@ -2827,7 +2779,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПоследнийИдентификаторЗаданияУправляющегоПотока(Поток)
|
||||
Функция ПоследнийИдентификаторЗаданияПотока(Поток)
|
||||
|
||||
ПоследнийИдентификатор = Поток.ИдентификаторЗадания;
|
||||
|
||||
@@ -2947,10 +2899,7 @@
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОжидатьЗавершениеПотока(Потоки[0]) Тогда // Задание выполнено.
|
||||
ОбновитьСведенияОбПотоке(Потоки[0]);
|
||||
КонецЕсли;
|
||||
|
||||
ОжидатьЗавершениеПотока(Потоки[0]);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ВыполнитьВФоне;
|
||||
@@ -3013,29 +2962,23 @@
|
||||
// Поток - СтрокаТаблицыЗначений - поток, завершение которого необходимо ожидать.
|
||||
// Длительность - Число - максимальная длительность ожидания в секундах.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина - поток выполнен, Ложь - поток еще выполняется.
|
||||
//
|
||||
Функция ОжидатьЗавершениеПотока(Поток, Длительность = 1)
|
||||
Процедура ОжидатьЗавершениеПотока(Поток, Длительность = 1)
|
||||
|
||||
Если ЗначениеЗаполнено(Поток.ИдентификаторЗадания) Тогда
|
||||
|
||||
Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Поток.ИдентификаторЗадания);
|
||||
|
||||
Если Задание <> Неопределено Тогда
|
||||
Задание = Задание.ОжидатьЗавершенияВыполнения(Длительность);
|
||||
ЗаданиеЗавершено = (Задание.Состояние <> СостояниеФоновогоЗадания.Активно);
|
||||
Возврат ЗаданиеЗавершено;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Поток.ИдентификаторЗадания) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
Задание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(Поток.ИдентификаторЗадания);
|
||||
Если Задание <> Неопределено Тогда
|
||||
Задание = Задание.ОжидатьЗавершенияВыполнения(Длительность);
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЕстьЗавершенныеПотоки(Потоки, ЗавершитьДосрочноЕслиОшибка, ИдентификаторПроцесса)
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ЕстьЗавершенныеПотоки = Ложь;
|
||||
Индекс = Потоки.Количество() - 1;
|
||||
|
||||
@@ -3047,24 +2990,38 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПоследнийИдентификатор = ПоследнийИдентификаторЗаданияУправляющегоПотока(Поток);
|
||||
ЭтоПотокТекущегоПроцесса = (Поток.ИдентификаторПроцесса = ИдентификаторПроцесса);
|
||||
|
||||
ПоследнийИдентификатор = ПоследнийИдентификаторЗаданияПотока(Поток);
|
||||
Результат = ЗаданиеВыполнено(ПоследнийИдентификатор, Истина);
|
||||
|
||||
Если Результат.Статус = "Выполняется" Тогда
|
||||
Если Результат.Статус = "Выполняется"
|
||||
Или Результат.Статус = "Ошибка"
|
||||
И Результат.Задание = Неопределено
|
||||
И Не ЭтоПотокТекущегоПроцесса Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьСведенияОбПотоке(Поток);
|
||||
ЭтоПотокТекущегоПроцесса = (Поток.ИдентификаторПроцесса = ИдентификаторПроцесса);
|
||||
СтатусОбновлен = Истина;
|
||||
ОбновитьСведенияОПотоке(Поток, Неопределено,,, СтатусОбновлен);
|
||||
ОбновленныйСтатус = Поток.Статус;
|
||||
|
||||
Если СтатусОбновлен <> Неопределено
|
||||
И ОбновленныйСтатус = СтатусДлительнойОперации().Выполняется Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Потоки.Удалить(Поток);
|
||||
ЕстьЗавершенныеПотоки = Истина;
|
||||
|
||||
Если Результат.Статус = "Выполнено" Тогда
|
||||
Если СтатусОбновлен <> Неопределено
|
||||
И ОбновленныйСтатус = СтатусДлительнойОперации().Выполнено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Статус = "Ошибка" Тогда
|
||||
ЗаписатьОшибку(Результат.ТекстОшибки);
|
||||
Если СтатусОбновлен = Истина
|
||||
И ОбновленныйСтатус = СтатусДлительнойОперации().Ошибка Тогда
|
||||
|
||||
ЗаписатьОшибку(Результат.ПодробноеПредставлениеОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗавершитьДосрочноЕслиОшибка = Истина
|
||||
@@ -3127,17 +3084,18 @@
|
||||
Если УправляющийПоток <> Неопределено
|
||||
И УправляющийПоток.ДатаСоздания + СрокОтмены > ТекущаяДатаСеанса Тогда
|
||||
|
||||
Если Не ЗначениеЗаполнено(УправляющийПоток.ИдентификаторЗадания)
|
||||
И УправляющийПоток.ДатаСоздания + СрокУстаревания > ТекущаяДатаСеанса Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ИдентификаторЗадания = ПоследнийИдентификаторЗаданияУправляющегоПотока(УправляющийПоток);
|
||||
ИдентификаторЗадания = ПоследнийИдентификаторЗаданияПотока(УправляющийПоток);
|
||||
Задание = НайтиЗаданиеПоИдентификатору(ИдентификаторЗадания);
|
||||
Если Задание <> Неопределено
|
||||
И (Задание.Состояние = СостояниеФоновогоЗадания.Активно
|
||||
Если Задание = Неопределено
|
||||
И (УправляющийПоток.Статус = СтатусДлительнойОперации().Выполняется
|
||||
Или УправляющийПоток.ДатаСоздания + СрокУстаревания > ТекущаяДатаСеанса
|
||||
Или УправляющийПоток.Статус = СтатусДлительнойОперации().Ошибка
|
||||
И УправляющийПоток.НомерПопытки < КоличествоПопыток())
|
||||
Или Задание <> Неопределено
|
||||
И ( Задание.Состояние = СостояниеФоновогоЗадания.Активно
|
||||
Или Задание.Конец + СрокУстаревания > ТекущаяДатаСеанса
|
||||
Или Задание.Состояние = СостояниеФоновогоЗадания.ЗавершеноАварийно
|
||||
И УправляющийПоток.НомерПопытки < КоличествоПопыток()
|
||||
И УправляющийПоток.ДатаСоздания + СрокУстаревания > ТекущаяДатаСеанса) Тогда
|
||||
И УправляющийПоток.НомерПопытки < КоличествоПопыток()) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -3146,7 +3104,7 @@
|
||||
ПотокиПроцесса = ВсеПотоки.Скопировать(Отбор);
|
||||
ПотокиПроцесса.Сортировать("ИдентификаторПотока");
|
||||
Для Каждого ПотокПроцесса Из ПотокиПроцесса Цикл
|
||||
ИдентификаторЗадания = ПоследнийИдентификаторЗаданияУправляющегоПотока(ПотокПроцесса);
|
||||
ИдентификаторЗадания = ПоследнийИдентификаторЗаданияПотока(ПотокПроцесса);
|
||||
Задание = НайтиЗаданиеПоИдентификатору(ИдентификаторЗадания);
|
||||
Если Задание <> Неопределено
|
||||
И Задание.Состояние = СостояниеФоновогоЗадания.Активно Тогда
|
||||
@@ -3385,6 +3343,7 @@
|
||||
Запись = НаборЗаписей.Добавить();
|
||||
Запись.ИдентификаторПроцесса = ИдентификаторПроцесса;
|
||||
Запись.ИдентификаторПотока = ИдентификаторПотока;
|
||||
Запись.Статус = СтатусДлительнойОперации().Создано;
|
||||
Запись.НомерПопытки = 0;
|
||||
Запись.ДатаСоздания = ТекущаяДатаСеанса;
|
||||
Запись.ИмяПользователя = ИмяПользователя;
|
||||
@@ -3422,22 +3381,91 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьВозможностьЗапускаМногопоточнойДлительнойОперации(ПараметрыВыполнения, НаборПараметров)
|
||||
Процедура ПроверитьВозможностьЗапускаМногопоточнойДлительнойОперации(ПараметрыВыполнения, НаборПараметров, ИмяФункции)
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяФункции,
|
||||
"ПараметрыВыполнения", ПараметрыВыполнения, Тип("Структура"));
|
||||
|
||||
Если НаборПараметров <> Неопределено
|
||||
И ТипЗнч(НаборПараметров) <> Тип("Соответствие")
|
||||
И ТипЗнч(НаборПараметров) <> Тип("Структура") Тогда
|
||||
ВызватьИсключение(НСтр("ru ='Неверный тип набора параметров многопоточной длительной операции.'"),
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
|
||||
ТекстОшибки = НСтр("ru = 'Неверный тип набора параметров многопоточной длительной операции.'");
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
ВызватьИсключение(НСтр("ru ='Многопоточные длительные операции в неразделенном сеансе не поддерживаются.'"),
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
Если ОбщегоНазначения.РазделениеВключено()
|
||||
И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
|
||||
ТекстОшибки = НСтр("ru = 'Неверный тип набора параметров многопоточной длительной операции.'");
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ВыполнитьФункциюВНесколькоПотоков
|
||||
Функция ВыполнитьМетодВНесколькоПотоков(Знач ИмяМетода, Знач ПараметрыВыполнения, Знач НаборПараметровМетода,
|
||||
Знач ЭтоВыполнениеФункции)
|
||||
|
||||
НовыеПараметрыВыполнения = ПараметрыВыполненияФункции(Неопределено);
|
||||
ЗаполнитьЗначенияСвойств(НовыеПараметрыВыполнения, ПараметрыВыполнения);
|
||||
ПараметрыВыполнения = НовыеПараметрыВыполнения;
|
||||
|
||||
ИмяФункции = ?(ЭтоВыполнениеФункции, "ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков",
|
||||
"ДлительныеОперации.ВыполнитьПроцедуруВНесколькоПотоков");
|
||||
|
||||
ПроверитьВозможностьЗапускаМногопоточнойДлительнойОперации(ПараметрыВыполнения, НаборПараметровМетода, ИмяФункции);
|
||||
|
||||
ПроверитьИЗаполнитьАдресРезультата(ПараметрыВыполнения, ИмяФункции);
|
||||
|
||||
Если ПараметрыВыполнения.ОжидатьЗавершение = ОбщиеПараметрыВыполненияВФоне().ОжидатьЗавершение Тогда
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = 0;
|
||||
КонецЕсли;
|
||||
|
||||
АдресаРезультатов = Новый Соответствие;
|
||||
|
||||
Если ТипЗнч(НаборПараметровМетода) = Тип("Соответствие") Тогда
|
||||
Для Каждого ПараметрФункции Из НаборПараметровМетода Цикл
|
||||
АдресРезультатаПотока = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
|
||||
АдресаРезультатов.Вставить(ПараметрФункции.Ключ, АдресРезультатаПотока);
|
||||
КонецЦикла;
|
||||
ПараметрыМетода = НаборПараметровМетода.Количество();
|
||||
Иначе
|
||||
ПараметрыМетода = НаборПараметровМетода; // Структура
|
||||
НаборПараметровМетода = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторПроцесса = Новый УникальныйИдентификатор;
|
||||
ПараметрыМногопоточнойОперации = ПараметрыМногопоточнойОперации(ИдентификаторПроцесса);
|
||||
ПараметрыМногопоточнойОперации.ИмяМетода = ИмяМетода;
|
||||
ПараметрыМногопоточнойОперации.ЭтоФункция = ?(ЭтоВыполнениеФункции, "Функция", "Процедура");
|
||||
ПараметрыМногопоточнойОперации.ПараметрыВыполнения = ПараметрыВыполнения;
|
||||
ПараметрыМногопоточнойОперации.ПараметрыМетода = ПараметрыМетода;
|
||||
|
||||
ПодготовитьМногопоточнуюОперациюКЗапуску(ИмяМетода,
|
||||
АдресаРезультатов, ИдентификаторПроцесса, НаборПараметровМетода);
|
||||
|
||||
РезультатЗапуска = Новый Структура("Статус, ИдентификаторЗадания, АдресРезультата",
|
||||
СтатусДлительнойОперации().Выполняется,, ПараметрыВыполнения.АдресРезультата);
|
||||
ЗапланироватьЗапускПотоковДлительныхОпераций(РезультатЗапуска, ПараметрыМногопоточнойОперации);
|
||||
|
||||
РезультатЗапуска = ВыполнитьФункцию(ПараметрыВыполнения,
|
||||
ИмяМетодаМногопоточногоПроцесса(), ПараметрыМногопоточнойОперации);
|
||||
|
||||
Если РезультатЗапуска.Статус <> СтатусДлительнойОперации().Выполняется Тогда
|
||||
УдалитьДанныеОПотоках(ИдентификаторПроцесса);
|
||||
Иначе
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
ЗарегистрироватьИдентификаторУправляющегоПотока(РезультатЗапуска.ИдентификаторЗадания, ИдентификаторПроцесса);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РезультатЗапуска;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Создано - Строка
|
||||
@@ -3463,21 +3491,33 @@
|
||||
Возврат 3;
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗарегистрироватьИдентификаторУправляющегоПотока(ИдентификаторЗадания, ИдентификаторПроцесса)
|
||||
|
||||
Если ПараметрыСеанса.ДлительныеОперации.Запущенные.Получить(ИдентификаторЗадания) = Неопределено Тогда
|
||||
Свойства = Новый Структура(ПараметрыСеанса.ДлительныеОперации);
|
||||
Запущенные = Новый Соответствие(Свойства.Запущенные);
|
||||
Запущенные.Вставить(ИдентификаторЗадания, ИдентификаторПроцесса);
|
||||
Свойства.Запущенные = Новый ФиксированноеСоответствие(Запущенные);
|
||||
ПараметрыСеанса.ДлительныеОперации = Новый ФиксированнаяСтруктура(Свойства);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ВыполненПерезапускУправляющегоПотока(ИдентификаторЗадания, Задание)
|
||||
|
||||
Если Задание <> Неопределено
|
||||
ИдентификаторПроцесса = ПараметрыСеанса.ДлительныеОперации.Запущенные.Получить(ИдентификаторЗадания);
|
||||
|
||||
Если ИдентификаторПроцесса = Неопределено
|
||||
Или Задание <> Неопределено
|
||||
И Задание.Состояние <> СостояниеФоновогоЗадания.ЗавершеноАварийно
|
||||
Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ПустойИдентификатор = ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("ИдентификаторЗадания", ИдентификаторЗадания);
|
||||
Запрос.УстановитьПараметр("ИдентификаторПроцесса", ИдентификаторПроцесса);
|
||||
Запрос.УстановитьПараметр("ИдентификаторПотока", ПустойИдентификатор);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
@@ -3490,8 +3530,8 @@
|
||||
|ИЗ
|
||||
| РегистрСведений.ДлительныеОперации КАК ДлительныеОперации
|
||||
|ГДЕ
|
||||
| ДлительныеОперации.ИдентификаторПотока = &ИдентификаторПотока
|
||||
| И ДлительныеОперации.ИдентификаторЗадания = &ИдентификаторЗадания";
|
||||
| ДлительныеОперации.ИдентификаторПроцесса = &ИдентификаторПроцесса
|
||||
| И ДлительныеОперации.ИдентификаторПотока = &ИдентификаторПотока";
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если РезультатЗапроса.Пустой() Тогда
|
||||
@@ -3537,9 +3577,7 @@
|
||||
Свойства.Перезапущенные = Новый ФиксированноеСоответствие(Перезапущенные);
|
||||
ПараметрыСеанса.ДлительныеОперации = Новый ФиксированнаяСтруктура(Свойства);
|
||||
|
||||
Поток.КлючПотока = Новый ХранилищеЗначения(РезультатЗапуска.ИдентификаторЗадания, Новый СжатиеДанных(9));
|
||||
РезультатЗапуска.ИдентификаторЗадания = ИдентификаторЗадания;
|
||||
ОбновитьСведенияОбПотоке(Поток, РезультатЗапуска);
|
||||
ОбновитьСведенияОПотоке(Поток, РезультатЗапуска, Истина, Истина);
|
||||
Исключение
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'При попытке перезапуска фонового задания %1
|
||||
@@ -3557,6 +3595,55 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьЗавершениеДляУправляющегоПотока(ИдентификаторЗадания, Результат)
|
||||
|
||||
ИдентификаторПроцесса = ПараметрыСеанса.ДлительныеОперации.Запущенные.Получить(ИдентификаторЗадания);
|
||||
Если ИдентификаторПроцесса = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПустойИдентификатор = ОбщегоНазначенияКлиентСервер.ПустойУникальныйИдентификатор();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("ИдентификаторПроцесса", ИдентификаторПроцесса);
|
||||
Запрос.УстановитьПараметр("ИдентификаторПотока", ПустойИдентификатор);
|
||||
Запрос.УстановитьПараметр("Статус", СтатусДлительнойОперации().Выполняется);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ ПЕРВЫЕ 1
|
||||
| ИСТИНА КАК ЗначениеИстина
|
||||
|ИЗ
|
||||
| РегистрСведений.ДлительныеОперации КАК ДлительныеОперации
|
||||
|ГДЕ
|
||||
| ДлительныеОперации.ИдентификаторПроцесса = &ИдентификаторПроцесса
|
||||
| И ДлительныеОперации.ИдентификаторПотока = &ИдентификаторПотока
|
||||
| И ДлительныеОперации.Статус = &Статус";
|
||||
|
||||
Если Не Запрос.Выполнить().Пустой() Тогда
|
||||
// Установка статуса Выполнено у основного потока.
|
||||
РезультатЗапуска = НовыйРезультатВыполненияПотока();
|
||||
РезультатЗапуска.Статус = СтатусДлительнойОперации()[Результат.Статус];
|
||||
РезультатЗапуска.ИнформацияОбОшибке = Результат.ИнформацияОбОшибке;
|
||||
РезультатЗапуска.КраткоеПредставлениеОшибки = Результат.КраткоеПредставлениеОшибки;
|
||||
РезультатЗапуска.ПодробноеПредставлениеОшибки = Результат.ПодробноеПредставлениеОшибки;
|
||||
ОписаниеОсновногоПотока = Новый Структура;
|
||||
ОписаниеОсновногоПотока.Вставить("ИдентификаторПроцесса", ИдентификаторПроцесса);
|
||||
ОписаниеОсновногоПотока.Вставить("ИдентификаторПотока", ПустойИдентификатор);
|
||||
ОписаниеОсновногоПотока.Вставить("ИдентификаторЗадания", ИдентификаторЗадания);
|
||||
ОписаниеОсновногоПотока.Вставить("КлючПотока",
|
||||
Новый ХранилищеЗначения(ПоследнийИдентификатор(ИдентификаторЗадания)));
|
||||
|
||||
ОбновитьСведенияОПотоке(ОписаниеОсновногоПотока, РезультатЗапуска,,, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
// Удаление из запущенных.
|
||||
Свойства = Новый Структура(ПараметрыСеанса.ДлительныеОперации);
|
||||
Запущенные = Новый Соответствие(Свойства.Запущенные);
|
||||
Запущенные.Удалить(ИдентификаторЗадания);
|
||||
Свойства.Запущенные = Новый ФиксированноеСоответствие(Запущенные);
|
||||
ПараметрыСеанса.ДлительныеОперации = Новый ФиксированнаяСтруктура(Свойства);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УдалитьДанныеОПотоках(ИдентификаторПроцесса)
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
@@ -5186,6 +5186,8 @@
|
||||
|
||||
Если ЗначениеЗаполнено(СведенияОДоверителе.НаимИП) Тогда
|
||||
ЗаписьXML.ЗаписатьАтрибут("НаимИП", СведенияОДоверителе.НаимИП);
|
||||
Иначе
|
||||
ЗаписьXML.ЗаписатьАтрибут("НаимИП", ФИОСтрокой(СведенияОДоверителе.СведФЛ.ФИО));
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписьXML.ЗаписатьАтрибут("ИННФЛ", СведенияОДоверителе.ИННФЛ);
|
||||
@@ -5263,6 +5265,26 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ФИОСтрокой(ФИО) Экспорт
|
||||
|
||||
Фамилия = ФИО.Фамилия;
|
||||
Имя = ФИО.Имя;
|
||||
Отчество = ФИО.Отчество;
|
||||
|
||||
Если ЗначениеЗаполнено(Отчество) Тогда
|
||||
ФИОСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1 %2 %3'"),
|
||||
Фамилия, Имя, Отчество);
|
||||
Иначе
|
||||
ФИОСтрокой = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1 %2'"),
|
||||
Фамилия, Имя);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ФИОСтрокой;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИспользуетсяРежимТестирования()
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
МосковскоеВремя = НачалоДня(МестноеВремя(ТекущаяУниверсальнаяДата(), ЧасовойПоясМосквы));
|
||||
|
||||
Возврат МосковскоеВремя >= Дата(2025, 10, 1);
|
||||
Возврат МосковскоеВремя >= Дата(2025, 11, 1);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -1861,7 +1861,7 @@
|
||||
ИмяФайлаСИзменениями = ПолноеИмяФайлаДанныхОтложенногоОбновления();
|
||||
|
||||
ФайлДляЗаписиXML = Новый ЗаписьFastInfoset;
|
||||
ФайлДляЗаписиXML.ОткрытьФайл(ИмяФайлаСИзменениями);
|
||||
ФайлДляЗаписиXML.УстановитьДвоичныеДанные();
|
||||
ФайлДляЗаписиXML.ЗаписатьОбъявлениеXML();
|
||||
ФайлДляЗаписиXML.ЗаписатьНачалоЭлемента("Objects");
|
||||
|
||||
@@ -2135,10 +2135,8 @@
|
||||
|
||||
ЗаписьXML = Параметры.ЗаписьИзмененийДляПодчиненногоУзлаРИБСФильтрами;
|
||||
ЗаписьXML.ЗаписатьКонецЭлемента();
|
||||
ЗаписьXML.Закрыть();
|
||||
|
||||
ИмяФайлаСИзменениями = Параметры.ИмяФайлаСИзменениями;
|
||||
ДвоичныеДанныеФайла = Новый ДвоичныеДанные(ИмяФайлаСИзменениями);
|
||||
ДвоичныеДанныеФайла = ЗаписьXML.Закрыть();
|
||||
|
||||
Возврат Новый ХранилищеЗначения(ДвоичныеДанныеФайла, Новый СжатиеДанных(9));
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.11.283";
|
||||
Описание.Версия = "3.1.11.299";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -943,6 +943,12 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеСписка = Форма.Элементы.Найти(ИмяСписка + "Значение");
|
||||
Если Список.Количество() > 0 И ЗначениеСписка <> Неопределено
|
||||
И ЗначениеСписка.ПараметрыВыбора.Количество() > 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Элемент Из ЗначениеОтбора Цикл
|
||||
Если Список.НайтиПоЗначению(Элемент.Значение) = Неопределено Тогда
|
||||
Список.Добавить(Элемент.Значение);
|
||||
|
||||
@@ -433,16 +433,12 @@
|
||||
|
||||
Если НЕ ИспользуетсяПочтовыйКлиент() И ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов")
|
||||
И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда
|
||||
ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, СтрокаПолучатель.Ключ, ПараметрыДоставки.ДатаВыполнения);
|
||||
ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись;
|
||||
ПоляИстории.АдресЭП = СтрокаПолучатель.Значение;
|
||||
ПоляИстории.Комментарий = ТекстСообщения;
|
||||
ПоляИстории.Выполнена = Ложь;
|
||||
ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, СтрокаПолучатель.Ключ, СтрокаПолучатель.Значение);
|
||||
ПоляИстории.ИдентификаторПисьма = "";
|
||||
ПоляИстории.Период = ТекущаяДатаСеанса();
|
||||
|
||||
РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(ПоляИстории);
|
||||
КлючАдресаДоставки = ?(ПараметрыДоставки.СкрытыеКопии, "СкрытыеКопии", "Кому");
|
||||
АдресаПолучателя = ПараметрыДоставки.ПараметрыПисьма[КлючАдресаДоставки];
|
||||
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"%1 %2", ТекстСообщения, РасширенноеПредставлениеОшибки);
|
||||
ЗафиксироватьНеудачныйРезультатРассылки(ПараметрыДоставки, ПараметрыЖурнала,
|
||||
ПараметрыДоставки.Получатель, АдресаПолучателя, Комментарий);
|
||||
КонецЕсли;
|
||||
КонецПопытки;
|
||||
|
||||
@@ -3429,12 +3425,15 @@
|
||||
ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, Получатель, ПараметрыДоставки.ДатаВыполнения);
|
||||
ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись;
|
||||
ПоляИстории.АдресЭП = Кому.Адрес;
|
||||
ПоляИстории.Комментарий = РезультатОтправки.ОписаниеОшибки;
|
||||
ПоляИстории.Выполнена = Ложь;
|
||||
ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, Получатель, Кому.Адрес);
|
||||
ПоляИстории.ЭлектронноеПисьмоИсходящее = РезультатОтправки.СсылкаНаПисьмо;
|
||||
ПоляИстории.ИдентификаторПисьма = РезультатОтправки.ИдентификаторПисьма;
|
||||
|
||||
Если ТипЗнч(РезультатОтправки) = Тип("Строка") Тогда
|
||||
ПоляИстории.Комментарий = РезультатОтправки;
|
||||
Иначе
|
||||
ПоляИстории.Комментарий = РезультатОтправки.ОписаниеОшибки;
|
||||
ПоляИстории.ЭлектронноеПисьмоИсходящее = РезультатОтправки.СсылкаНаПисьмо;
|
||||
ПоляИстории.ИдентификаторПисьма = РезультатОтправки.ИдентификаторПисьма;
|
||||
КонецЕсли;
|
||||
РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(ПоляИстории);
|
||||
КонецЦикла;
|
||||
|
||||
@@ -5126,24 +5125,13 @@
|
||||
|
||||
Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") И Не ИспользуетсяПочтовыйКлиент() И ТипЗнч(
|
||||
ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда
|
||||
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"%1 %2", ШаблонСообщенияОбОшибке, РасширенноеПредставлениеОшибки);
|
||||
Для Каждого СтрокаПолучатель Из ПараметрыДоставки.Получатели Цикл
|
||||
АдресаПолучателя = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(
|
||||
СтрокаПолучатель.Значение);
|
||||
Для Каждого АдресЭП Из АдресаПолучателя Цикл
|
||||
ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, СтрокаПолучатель.Ключ,
|
||||
ПараметрыДоставки.ДатаВыполнения);
|
||||
ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись;
|
||||
ПоляИстории.АдресЭП = АдресЭП.Адрес;
|
||||
ПоляИстории.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"%1 %2", ШаблонСообщенияОбОшибке, РасширенноеПредставлениеОшибки);
|
||||
ПоляИстории.Выполнена = Ложь;
|
||||
ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, СтрокаПолучатель.Ключ,
|
||||
АдресЭП.Адрес);
|
||||
|
||||
РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(
|
||||
ПоляИстории);
|
||||
КонецЦикла;
|
||||
|
||||
ЗафиксироватьНеудачныйРезультатРассылки(ПараметрыДоставки, ПараметрыЖурнала, СтрокаПолучатель.Ключ,
|
||||
АдресаПолучателя, Комментарий);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
КонецПопытки;
|
||||
|
||||
@@ -1780,6 +1780,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если ДоставкаСерверныхОповещенийСОтсрочкойУжеВыполняется(ТекущееФоновоеЗадание)
|
||||
Или Не СерверныеОповещенияСлужебныйПовтИсп.УведомленияКлиентаДоступны()
|
||||
И Не ТекущийПользовательЗарегистрированВСистемеВзаимодействия() Тогда
|
||||
|
||||
@@ -175,6 +175,7 @@
|
||||
|
||||
СостояниеПолучения.ПроверкаРазрешена = Истина;
|
||||
ПодключитьОбработчикПроверкиПолученияСерверныхОповещений();
|
||||
ПодключитьОбработчикНовыхСообщений(СостояниеПолучения());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -238,12 +239,10 @@
|
||||
- ?(Секунда(ТекущаяДатаСеанса) < СостояниеПолучения.ЧислоСекундВыравниванияДатыСчетчиковОжидания, 60, 0);
|
||||
|
||||
Интервал = 60;
|
||||
ОбсужденияАктивны =
|
||||
СостояниеПолучения.ПериодическаяОтправкаДанныхРазрешена
|
||||
И (СостояниеПолучения.УведомленияКлиентаДоступны
|
||||
Или СостояниеПолучения.СистемаВзаимодействийПодключена
|
||||
И СостояниеПолучения.ОбработчикНовыхЛичныхСообщенийПодключен
|
||||
И СостояниеПолучения.ДатаПоследнегоПолученияСообщения + 60 > ТекущаяДатаСеанса);
|
||||
ОбсужденияАктивны = СостояниеПолучения.УведомленияКлиентаДоступны
|
||||
Или СостояниеПолучения.СистемаВзаимодействийПодключена
|
||||
И СостояниеПолучения.ОбработчикНовыхЛичныхСообщенийПодключен
|
||||
И СостояниеПолучения.ДатаПоследнегоПолученияСообщения + 60 > ТекущаяДатаСеанса;
|
||||
|
||||
МоментНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
Попытка
|
||||
|
||||
@@ -17,15 +17,13 @@
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
Версия = СистемнаяИнформация.ВерсияПриложения;
|
||||
|
||||
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Версия, "8.3.26.1498") >= 0
|
||||
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Версия, "8.3.27.0") < 0
|
||||
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Версия, "8.3.27.1288") >= 0;
|
||||
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Версия, "8.3.27.1606") >= 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТолькоДляТестирования()
|
||||
|
||||
Возврат Истина;
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -494,10 +494,15 @@
|
||||
Если Не ЗначениеЗаполнено(ПараметрыПодписанта.НомерТелефона) Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Не заполнен номер телефона'");
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(ПараметрыПодписанта.ИННФЛ) Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Не заполнен номер ИНН физического лица'");
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПараметрыПодписанта.ИННФЛ) И Не ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Не заполнен ИНН'");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) И Не ЗначениеЗаполнено(ПараметрыПодписанта.ОГРН) Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Не заполнен ОГРН'");
|
||||
КонецЕсли;
|
||||
|
||||
НомерТелефона = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.НомерТелефона);
|
||||
Если СтрДлина(НомерТелефона) = 11 И СтрНачинаетсяС(НомерТелефона, "8") Тогда
|
||||
НомерТелефона = "7" + Прав(НомерТелефона, 10);
|
||||
@@ -512,7 +517,11 @@
|
||||
ПараметрыПодписанта.ИННФЛ = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.ИННФЛ);
|
||||
ПараметрыПодписанта.ИНН = СервисМобильнойПодписиКлиентСервер.ТолькоЦифры(ПараметрыПодписанта.ИНН);
|
||||
|
||||
Если СтрДлина(ПараметрыПодписанта.ИННФЛ) <> 12 Тогда
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
ПараметрыПодписанта.ИННФЛ = "";
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИННФЛ) И СтрДлина(ПараметрыПодписанта.ИННФЛ) <> 12 Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'ИНН физического лица должен быть длиной 12 символов: %1'"), ПараметрыПодписанта.ИННФЛ);
|
||||
КонецЕсли;
|
||||
@@ -646,12 +655,15 @@
|
||||
|
||||
ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовкиHTTP);
|
||||
СтруктураЗапроса = Новый Структура;
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИННФЛ);
|
||||
СтруктураЗапроса.Вставить("phone", ПараметрыПодписанта.НомерТелефона);
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
СтруктураЗапроса.Вставить("legalEntityInn", ПараметрыПодписанта.ИНН);
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИНН);
|
||||
СтруктураЗапроса.Вставить("legalEntity", Новый Структура);
|
||||
СтруктураЗапроса.legalEntity.Вставить("inn", ПараметрыПодписанта.ИНН);
|
||||
СтруктураЗапроса.legalEntity.Вставить("ogrn", ПараметрыПодписанта.ОГРН);
|
||||
Иначе
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИННФЛ);
|
||||
КонецЕсли;
|
||||
СтруктураЗапроса.Вставить("phone", ПараметрыПодписанта.НомерТелефона);
|
||||
|
||||
ТелоЗапроса = ОбщегоНазначения.ЗначениеВJSON(СтруктураЗапроса);
|
||||
ЗапросHTTP.УстановитьТелоИзСтроки(ТелоЗапроса);
|
||||
@@ -761,17 +773,20 @@
|
||||
|
||||
ЗапросHTTP = Новый HTTPЗапрос(РесурсНаСервере, ЗаголовкиHTTP);
|
||||
СтруктураЗапроса = Новый Структура;
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИННФЛ);
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИНН);
|
||||
СтруктураЗапроса.Вставить("legalEntity", Новый Структура);
|
||||
СтруктураЗапроса.legalEntity.Вставить("inn", ПараметрыПодписанта.ИНН);
|
||||
СтруктураЗапроса.legalEntity.Вставить("ogrn", ПараметрыПодписанта.ОГРН);
|
||||
Иначе
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИННФЛ);
|
||||
КонецЕсли;
|
||||
СтруктураЗапроса.Вставить("phone", ПараметрыПодписанта.НомерТелефона);
|
||||
|
||||
Генератор = Новый ГенераторСлучайныхЧисел(ТекущаяДатаСеанса() - Дата(1, 1, 1));
|
||||
Код = Формат(Генератор.СлучайноеЧисло(1000, 9999), "ЧГ=0");
|
||||
|
||||
СтруктураЗапроса.Вставить("syncCode", Код);
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
СтруктураЗапроса.Вставить("legalEntity", Новый Структура);
|
||||
СтруктураЗапроса.legalEntity.Вставить("inn", ПараметрыПодписанта.ИНН);
|
||||
КонецЕсли;
|
||||
|
||||
ТелоЗапроса = ОбщегоНазначения.ЗначениеВJSON(СтруктураЗапроса);
|
||||
ЗапросHTTP.УстановитьТелоИзСтроки(ТелоЗапроса);
|
||||
@@ -895,11 +910,20 @@
|
||||
| НЕ ПодписантыСервисаМобильнойПодписи.ПометкаУдаления
|
||||
| И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ
|
||||
| И ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН
|
||||
| И ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН
|
||||
| И ПодписантыСервисаМобильнойПодписи.НомерТелефона = &НомерТелефона";
|
||||
|
||||
Запрос.УстановитьПараметр("НомерТелефона", ПараметрыПодписанта.НомерТелефона);
|
||||
Запрос.УстановитьПараметр("ИННФЛ", ПараметрыПодписанта.ИННФЛ);
|
||||
Запрос.УстановитьПараметр("ИНН", ПараметрыПодписанта.ИНН);
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
Запрос.УстановитьПараметр("ИНН", ПараметрыПодписанта.ИНН);
|
||||
Запрос.УстановитьПараметр("ОГРН", ПараметрыПодписанта.ОГРН);
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ", "");
|
||||
Иначе
|
||||
Запрос.УстановитьПараметр("ИННФЛ", ПараметрыПодписанта.ИННФЛ);
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН", "");
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН", "");
|
||||
КонецЕсли;
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
@@ -955,11 +979,21 @@
|
||||
| НЕ ПодписантыСервисаМобильнойПодписи.ПометкаУдаления
|
||||
| И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ
|
||||
| И ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН
|
||||
| И ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН
|
||||
| И ПодписантыСервисаМобильнойПодписи.НомерТелефона = &НомерТелефона";
|
||||
|
||||
Запрос.УстановитьПараметр("НомерТелефона", ПараметрыПодписанта.НомерТелефона);
|
||||
Запрос.УстановитьПараметр("ИННФЛ", ПараметрыПодписанта.ИННФЛ);
|
||||
Запрос.УстановитьПараметр("ИНН", ПараметрыПодписанта.ИНН);
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
Запрос.УстановитьПараметр("ИНН", ПараметрыПодписанта.ИНН);
|
||||
Запрос.УстановитьПараметр("ОГРН", ПараметрыПодписанта.ОГРН);
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ИННФЛ = &ИННФЛ", "");
|
||||
Иначе
|
||||
Запрос.УстановитьПараметр("ИННФЛ", ПараметрыПодписанта.ИННФЛ);
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ИНН = &ИНН", "");
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И ПодписантыСервисаМобильнойПодписи.ОГРН = &ОГРН", "");
|
||||
КонецЕсли;
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если РезультатЗапроса.Пустой() Тогда
|
||||
Возврат Справочники.ПодписантыСервисаМобильнойПодписи.ПустаяСсылка();
|
||||
@@ -1114,11 +1148,14 @@
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураЗапроса = Новый Структура;
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИННФЛ);
|
||||
СтруктураЗапроса.Вставить("phone", ПараметрыПодписанта.НомерТелефона);
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИНН);
|
||||
СтруктураЗапроса.Вставить("legalEntity", Новый Структура);
|
||||
СтруктураЗапроса.legalEntity.Вставить("inn", ПараметрыПодписанта.ИНН);
|
||||
СтруктураЗапроса.legalEntity.Вставить("ogrn", ПараметрыПодписанта.ОГРН);
|
||||
Иначе
|
||||
СтруктураЗапроса.Вставить("inn", ПараметрыПодписанта.ИННФЛ);
|
||||
КонецЕсли;
|
||||
СтруктураЗапроса.Вставить("documents", Новый Массив);
|
||||
Если Параметры.ТипПодписи = Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST Тогда
|
||||
@@ -1365,15 +1402,11 @@
|
||||
Телефон = Лев(ПараметрыПодписанта.НомерТелефона, 3) + "****" + Прав(ПараметрыПодписанта.НомерТелефона, 4);
|
||||
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ИНН) Тогда
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписанта.ОГРН) Тогда
|
||||
|
||||
ДанныеПодписанта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='ИНН ЮЛ: %1, ОГРН: %2, ИНН ФЛ: %3, Телефон: +%4'"), ПараметрыПодписанта.ИНН,
|
||||
ПараметрыПодписанта.ОГРН, ПараметрыПодписанта.ИННФЛ, Телефон);
|
||||
Иначе
|
||||
ДанныеПодписанта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='ИНН ЮЛ: %1, ИНН ФЛ: %2, Телефон: +%3'"), ПараметрыПодписанта.ИНН,
|
||||
ПараметрыПодписанта.ИННФЛ, Телефон);
|
||||
КонецЕсли;
|
||||
НСтр("ru='ИНН ЮЛ: %1, ОГРН: %2, Телефон: +%3'"), ПараметрыПодписанта.ИНН,
|
||||
ПараметрыПодписанта.ОГРН, Телефон);
|
||||
|
||||
Иначе
|
||||
ДанныеПодписанта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='ИНН ФЛ: %1, Телефон: +%2'"), ПараметрыПодписанта.ИННФЛ,
|
||||
@@ -1381,10 +1414,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru='Не найден подписант с данными %1. Убедитесь, что у подписанта установлено приложение ""Моя подпись"" от ФНС и выпущен сертификат.
|
||||
|Сообщите подписанту секретный код %2 для подписания согласия на получение документов из ""1С:Мобильная подпись"" в приложении ""Моя подпись"" от ФНС.'"),
|
||||
ДанныеПодписанта,
|
||||
СогласиеПодписанта.Код);
|
||||
"ru='Для подписанта с данными %1 сервис ФНС ответил ""%2"".
|
||||
|Проверьте данные, убедитесь, что у подписанта установлено приложение ""Моя подпись"" от ФНС и выпущен сертификат.
|
||||
|Сообщите подписанту секретный код %3 для подписания согласия на получение документов из ""1С:Мобильная подпись"" в приложении ""Моя подпись"" от ФНС.'"),
|
||||
ДанныеПодписанта, ОшибкаКлиентНеНайден(), СогласиеПодписанта.Код);
|
||||
|
||||
Результат.Ошибка = ОшибкаМобильногоСервиса(ЗаголовокОшибки, ТекстОшибки, ИдентификаторЗапроса);
|
||||
|
||||
|
||||
@@ -16556,9 +16556,7 @@
|
||||
ЗаписатьРезультатОбновленияДоступаСпискаВФоне(Результат, Выборка.Параметры, Контекст);
|
||||
КонецЦикла;
|
||||
|
||||
Если РегистрироватьПоказателиОбновленияДоступа() Тогда
|
||||
ЗарегистрироватьПоказателиОбновленияИсполняющегоПотока(Контекст);
|
||||
КонецЕсли;
|
||||
ЗарегистрироватьПоказателиОбновленияИсполняющегоПотока(Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -16737,12 +16735,11 @@
|
||||
// Для процедуры ВыполнитьОбновлениеДоступа.
|
||||
Процедура ДобавитьПоказателиОбновленияУправляющегоПотока(Контекст)
|
||||
|
||||
Если Не РегистрироватьПоказателиОбновленияДоступа() Тогда
|
||||
Показатели = Контекст.Показатели;
|
||||
Если Показатели = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Показатели = Контекст.Показатели;
|
||||
|
||||
Если Контекст.ОбновлениеВЭтомСеансе Тогда
|
||||
ДобавитьПоказателиВыполненияЗаданий(Показатели);
|
||||
Иначе
|
||||
@@ -16769,7 +16766,8 @@
|
||||
// Для процедуры ВыполнитьОбновлениеДоступаСпискаВФоне.
|
||||
Функция ПоказателиОбновленияИсполняющегоПотока()
|
||||
|
||||
Если Не РегистрироватьПоказателиОбновленияДоступа() Тогда
|
||||
Если Не РегистрироватьПоказателиОбновленияДоступа()
|
||||
Или Не ПользователиСлужебный.ВключенаЗаписьИнформацииВЖурнал() Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -16951,6 +16949,10 @@
|
||||
Процедура ЗарегистрироватьПоказателиОбновленияОсновногоПотока(Контекст)
|
||||
|
||||
Показатели = Контекст.Показатели;
|
||||
Если Показатели = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеСеанса = Контекст.ОписаниеОсновногоСеанса; // См. ОписаниеОсновногоСеанса
|
||||
|
||||
Если Контекст.ОбновлениеВЭтомСеансе Тогда
|
||||
@@ -17010,6 +17012,9 @@
|
||||
Процедура ЗарегистрироватьПоказателиОбновленияИсполняющегоПотока(Контекст)
|
||||
|
||||
Показатели = Контекст.Показатели;
|
||||
Если Показатели = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВремяОжиданияНовыхЗаданий = Показатели.ВремяОжиданияНовыхЗаданий / 1000;
|
||||
|
||||
|
||||
@@ -286,20 +286,24 @@
|
||||
|
||||
Если Письма.Количество() <> 0 Тогда
|
||||
|
||||
Для Каждого КлючИЗначение Из Письма Цикл
|
||||
ДанныеПервогоПисьма = СсылкаНаПисьмоПоОтправляемомуПочтовомуСообщению(ДанныеПисем, Письма[0]);
|
||||
|
||||
Если ДанныеПервогоПисьма <> Неопределено Тогда
|
||||
|
||||
ПараметрыОбработкиОшибки = ПараметрыОбработкиОшибкиОтправки();
|
||||
ПараметрыОбработкиОшибки.ПисьмоОбъект = КлючИЗначение.Ключ.ПолучитьОбъект();
|
||||
ПараметрыОбработкиОшибки.Ссылка = КлючИЗначение.Ключ;
|
||||
ПараметрыОбработкиОшибки.ПредставлениеПисьма = КлючИЗначение.Значение.ПредставлениеПисьма;
|
||||
ПараметрыОбработкиОшибки.КоличествоПопыток = КлючИЗначение.Значение.КоличествоПопыток;
|
||||
ПараметрыОбработкиОшибки.ПисьмоОбъект = ДанныеПервогоПисьма.Ключ.ПолучитьОбъект();
|
||||
ПараметрыОбработкиОшибки.Ссылка = ДанныеПервогоПисьма.Ключ;
|
||||
ПараметрыОбработкиОшибки.ПредставлениеПисьма = ДанныеПервогоПисьма.Значение.ПредставлениеПисьма;
|
||||
ПараметрыОбработкиОшибки.КоличествоПопыток = ДанныеПервогоПисьма.Значение.КоличествоПопыток;
|
||||
ПараметрыОбработкиОшибки.ИнкрементироватьКоличествоПопыток = Истина;
|
||||
ПараметрыОбработкиОшибки.СообщатьПользователю = Интерактивно;
|
||||
ПараметрыОбработкиОшибки.ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
|
||||
РезультатОбработкиОшибки = ОбработатьОшибкуОтправкиПисьма(ПараметрыОбработкиОшибки, Новый Массив);
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Продолжить;
|
||||
|
||||
Продолжить;
|
||||
|
||||
|
||||
@@ -673,7 +673,14 @@
|
||||
ДополнительныеПараметры.Вставить("ИмяОткрываемогоФайла", ИмяОткрываемогоФайла);
|
||||
ОписаниеОповещения = Новый ОписаниеОповещения("НапечататьИзПриложенияПоИмениФайлаLinux",
|
||||
ЭтотОбъект, ДополнительныеПараметры);
|
||||
ПроверитьПрограммаLinuxУстановлена("Unoconv", ОписаниеОповещения);
|
||||
СистемныеСвойства = Новый СистемнаяИнформация();
|
||||
Если СтрНайти(ВРег(СистемныеСвойства.ВерсияОС), "UBUNTU") > 0 Или СтрНайти(ВРег(СистемныеСвойства.ВерсияОС), "ASTRA") > 0 Тогда
|
||||
ПроверитьПрограммаLinuxУстановлена("Unoconv", ОписаниеОповещения);
|
||||
Иначе
|
||||
ОписаниеОповещения = Новый ОписаниеОповещения("НапечататьИзПриложенияПоИмениФайлаLinuxЗапускUnoconv",
|
||||
ЭтотОбъект, ДополнительныеПараметры);
|
||||
ПолучитьПолноеИмяВременногоФайла(ОписаниеОповещения);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Печать файлов данного типа возможна только из приложения для Windows или Linux.'"));
|
||||
Возврат;
|
||||
|
||||
@@ -3403,36 +3403,31 @@
|
||||
Если Не ЗначениеЗаполнено(НоваяЗапись.УстановившийПодпись) Тогда
|
||||
НоваяЗапись.УстановившийПодпись = Пользователи.АвторизованныйПользователь();
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СвойстваПодписи.Подпись) Тогда
|
||||
ДатаПодписи = Неопределено;
|
||||
Если ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
|
||||
СвойстваПодписи, "НеподтвержденнаяДатаПодписи", Неопределено)) Тогда
|
||||
ДатаПодписи = СвойстваПодписи.НеподтвержденнаяДатаПодписи;
|
||||
ИначеЕсли ЗначениеЗаполнено(НоваяЗапись.ТипПодписи) Тогда
|
||||
ДатаПодписи = ДатаПодписания(СвойстваПодписи.Подпись);
|
||||
Иначе
|
||||
ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных(
|
||||
СвойстваПодписи.Подпись, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем());
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписи.ДатаПодписания) Тогда
|
||||
ДатаПодписи = ПараметрыПодписи.ДатаПодписания;
|
||||
КонецЕсли;
|
||||
НоваяЗапись.ТипПодписи = ПараметрыПодписи.ТипПодписи;
|
||||
КонецЕсли;
|
||||
Если ДатаПодписи <> Неопределено Тогда
|
||||
НоваяЗапись.ДатаПодписи = ДатаПодписи;
|
||||
|
||||
ИначеЕсли Не ЗначениеЗаполнено(НоваяЗапись.ДатаПодписи) Тогда
|
||||
НоваяЗапись.ДатаПодписи = ТекущаяДатаСеанса();
|
||||
КонецЕсли;
|
||||
|
||||
СообщениеЖурналаРегистрации = ЭлектроннаяПодписьСлужебный.СведенияОПодписиДляЖурналаРегистрации(
|
||||
НоваяЗапись.ДатаПодписи, СвойстваПодписи);
|
||||
|
||||
ДатаПодписи = Неопределено;
|
||||
Если ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
|
||||
СвойстваПодписи, "НеподтвержденнаяДатаПодписи", Неопределено)) Тогда
|
||||
ДатаПодписи = СвойстваПодписи.НеподтвержденнаяДатаПодписи;
|
||||
ИначеЕсли ЗначениеЗаполнено(НоваяЗапись.ТипПодписи) Тогда
|
||||
ДатаПодписи = ДатаПодписания(СвойстваПодписи.Подпись);
|
||||
Иначе
|
||||
СообщениеЖурналаРегистрации = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Отправлен на подписание: %1'"), НоваяЗапись.КомуВыданСертификат);
|
||||
ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных(
|
||||
СвойстваПодписи.Подпись, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем());
|
||||
Если ЗначениеЗаполнено(ПараметрыПодписи.ДатаПодписания) Тогда
|
||||
ДатаПодписи = ПараметрыПодписи.ДатаПодписания;
|
||||
КонецЕсли;
|
||||
НоваяЗапись.ТипПодписи = ПараметрыПодписи.ТипПодписи;
|
||||
КонецЕсли;
|
||||
Если ДатаПодписи <> Неопределено Тогда
|
||||
НоваяЗапись.ДатаПодписи = ДатаПодписи;
|
||||
|
||||
ИначеЕсли Не ЗначениеЗаполнено(НоваяЗапись.ДатаПодписи) Тогда
|
||||
НоваяЗапись.ДатаПодписи = ТекущаяДатаСеанса();
|
||||
КонецЕсли;
|
||||
|
||||
СообщениеЖурналаРегистрации = ЭлектроннаяПодписьСлужебный.СведенияОПодписиДляЖурналаРегистрации(
|
||||
НоваяЗапись.ДатаПодписи, СвойстваПодписи);
|
||||
|
||||
Если Не ЗначениеЗаполнено(НоваяЗапись.ИдентификаторПодписи) Тогда
|
||||
НоваяЗапись.ИдентификаторПодписи = Новый УникальныйИдентификатор;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1005,14 +1005,14 @@
|
||||
// Возвращает выборку сертификатов физических лиц.
|
||||
//
|
||||
// Параметры:
|
||||
// ФизическиеЛица - Массив из ОпределяемыйТип.ФизическоеЛицо
|
||||
// ФизическиеЛицаДляОтбора - Массив из ОпределяемыйТип.ФизическоеЛицо
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ВыборкаИзРезультатаЗапроса:
|
||||
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
|
||||
// * ФизическоеЛицо - ОпределяемыйТип.ФизическоеЛицо
|
||||
//
|
||||
Функция СертификатыФизическихЛиц(ФизическиеЛица) Экспорт
|
||||
Функция СертификатыФизическихЛиц(ФизическиеЛицаДляОтбора) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
@@ -1026,7 +1026,7 @@
|
||||
| И НЕ СертификатыКлючейЭлектроннойПодписиИШифрования.ПометкаУдаления
|
||||
| И СертификатыКлючейЭлектроннойПодписиИШифрования.ДействителенДо > &ТекущаяДатаСеанса";
|
||||
|
||||
Запрос.УстановитьПараметр("МассивФизическихЛиц", ФизическиеЛица);
|
||||
Запрос.УстановитьПараметр("МассивФизическихЛиц", ФизическиеЛицаДляОтбора);
|
||||
Запрос.УстановитьПараметр("ТекущаяДатаСеанса", ТекущаяДатаСеанса());
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
@@ -6045,13 +6045,13 @@
|
||||
Пока ВыборкаНаименование.Следующий() Цикл
|
||||
|
||||
Выборка = ВыборкаНаименование.Выбрать();
|
||||
ФизическиеЛица = Новый Массив;
|
||||
ФизическиеЛицаДляНаименования = Новый Массив;
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
ФизическиеЛица.Добавить(Выборка.Ссылка);
|
||||
ФизическиеЛицаДляНаименования.Добавить(Выборка.Ссылка);
|
||||
КонецЦикла;
|
||||
|
||||
ФизическиеЛицаПоФИО.Вставить(ВыборкаНаименование.Наименование, ФизическиеЛица);
|
||||
ФизическиеЛицаПоФИО.Вставить(ВыборкаНаименование.Наименование, ФизическиеЛицаДляНаименования);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
@@ -11961,7 +11961,7 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ФизическиеЛица = Результат.ФизическиеЛица.Получить(КомуВыдан);
|
||||
ФизическиеЛицаДляФИО = Результат.ФизическиеЛица.Получить(КомуВыдан);
|
||||
|
||||
ФизическоеЛицоПустаяСсылка = Новый (ТипЗнч(ФизическоеЛицо));
|
||||
ЭтоФормаЭлемента = ?(Форма.Элементы.Найти("СертификатФизическоеЛицо") = Неопределено, Истина, Ложь);
|
||||
@@ -11972,7 +11972,7 @@
|
||||
Форма.СертификатФизическоеЛицо = ФизическоеЛицоПустаяСсылка;
|
||||
КонецЕсли;
|
||||
|
||||
Если ФизическиеЛица = Неопределено Тогда
|
||||
Если ФизическиеЛицаДляФИО = Неопределено Тогда
|
||||
ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбораФизическогоЛица", Форма);
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("РежимВыбора", Истина);
|
||||
@@ -11981,11 +11981,11 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ФизическиеЛица.Количество() = 1 Тогда
|
||||
Если ФизическиеЛицаДляФИО.Количество() = 1 Тогда
|
||||
Если ЭтоФормаЭлемента Тогда
|
||||
Форма.Объект.ФизическоеЛицо = ФизическиеЛица[0];
|
||||
Форма.Объект.ФизическоеЛицо = ФизическиеЛицаДляФИО[0];
|
||||
Иначе
|
||||
Форма.СертификатФизическоеЛицо = ФизическиеЛица[0];
|
||||
Форма.СертификатФизическоеЛицо = ФизическиеЛицаДляФИО[0];
|
||||
КонецЕсли;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -11995,7 +11995,7 @@
|
||||
Отбор = ФиксированныеНастройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
||||
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
|
||||
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
|
||||
Отбор.ПравоеЗначение = ФизическиеЛица;
|
||||
Отбор.ПравоеЗначение = ФизическиеЛицаДляФИО;
|
||||
Отбор.Использование = Истина;
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b8ace939-f976-4848-a35d-925ad5523c44">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="b3a44f7c-b4fc-40bd-a9ee-8bab22370666">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 3.1</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="ada824cc-6619-4626-b014-92f1728f0442"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="0e56190f-16fa-4913-a22d-9b03b32333e3"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="41f233e6-33e3-403d-b3bc-7337090614e1"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="10eb3597-c937-489d-905a-58448b3ea1be"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="d73b7aa5-fa9c-4207-a7ef-2d3849d7baa1"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="66f2e6ca-4218-497c-926d-e53066dcbd94"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="3f82e7a4-355a-4238-b5b4-f4e658cd1792"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="ba481660-139d-477a-8455-9ffae484df41"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="8ed71eb0-6de4-429b-9ff1-85f00e0cbe81"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="ad9afbfe-faaa-412d-a626-9c9533e9bd90"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="259a0334-10f4-486e-b364-585ca11d0f0a"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="9bacb48b-bf29-4360-9aeb-9275b424c306"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="5122f5c3-69dd-4dcd-a6ec-31cf0be00b8c"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="01e57c0c-625b-4956-bf79-53af08fd1b0e"/>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
@@ -19,7 +19,7 @@
|
||||
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
||||
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
||||
<vendor>Фирма "1С"</vendor>
|
||||
<version>3.1.11.283</version>
|
||||
<version>3.1.11.299</version>
|
||||
<updateCatalogAddress>https://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,c996a584-d225-4cea-afd4-48efed400c9a,1,bc9de0c9-f879-4d99-9c15-d4595f345b4e,"3.1.11.283","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7958,1,0,b8ace939-f976-4848-a35d-925ad5523c44,b8ace939-f976-4848-a35d-925ad5523c44,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,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,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,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,baad68ea-0976-4bdf-8e0e-7ee5c25e3d51,baad68ea-0976-4bdf-8e0e-7ee5c25e3d51,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,7ee7cccc-4e52-464c-9c20-5c0dfbed7e5f,7ee7cccc-4e52-464c-9c20-5c0dfbed7e5f,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,491b9625-62ce-436b-8245-60decacc4552,491b9625-62ce-436b-8245-60decacc4552,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-1ceLine truncated
|
||||
{6,1,1,6ff836db-d8bc-4971-898d-7cab72f6ea3c,1,8cb43da2-8b1d-4c41-a245-d1af87510d62,"3.1.11.299","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7958,1,0,b3a44f7c-b4fc-40bd-a9ee-8bab22370666,b3a44f7c-b4fc-40bd-a9ee-8bab22370666,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,fa04bf1e-69c0-4998-a939-039fcaba83c8,fa04bf1e-69c0-4998-a939-039fcaba83c8,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,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,baad68ea-0976-4bdf-8e0e-7ee5c25e3d51,baad68ea-0976-4bdf-8e0e-7ee5c25e3d51,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,3eca2d7c-5946-4d13-ba84-e3ab5ef38b5b,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,a3001de6-272f-444e-a8db-ec8cc3a670a2,a3001de6-272f-444e-a8db-ec8cc3a670a2,1,0,7ee7cccc-4e52-464c-9c20-5c0dfbed7e5f,7ee7cccc-4e52-464c-9c20-5c0dfbed7e5f,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,491b9625-62ce-436b-8245-60decacc4552,491b9625-62ce-436b-8245-60decacc4552,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-1ceLine truncated
|
||||
+10
@@ -5351,6 +5351,10 @@
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПрограмму(Оповещение = Неопределено)
|
||||
|
||||
Если ДанныеЗаявления.СостояниеЗаявления <> ПредопределенноеЗначение("Перечисление.СостоянияЗаявленияНаВыпускСертификата.НеПодготовлено") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Объект.Программа = Неопределено;
|
||||
ПрограммаИдентификатор = Неопределено;
|
||||
|
||||
@@ -5397,6 +5401,12 @@
|
||||
Объект.Программа = Контекст.ПерваяДобавленнаяПрограмма;
|
||||
Иначе
|
||||
ПрограммаИдентификатор = Контекст.ПерваяДобавленнаяПрограмма;
|
||||
|
||||
НайденаСтрока = СписокПрограмм.НайтиСтроки(Новый Структура("Идентификатор", ПрограммаИдентификатор));
|
||||
Если НайденаСтрока.Количество() > 0 Тогда
|
||||
КлючНаТокене = НайденаСтрока[0].ТипПрограммы = 100;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -627,6 +627,36 @@
|
||||
Для Каждого ЭлементЛокализации Из СписокЛокализации Цикл
|
||||
ПараметрВебЧата.СписокЗначений.Вставить(ЭлементЛокализации.Значение, ЭлементЛокализации.Представление);
|
||||
КонецЦикла;
|
||||
|
||||
ИначеЕсли ПараметрВебЧата.Имя = "displayUnreadMessagesMark" Тогда
|
||||
|
||||
ПараметрВебЧата.Представление = НСтр("ru = 'Отображать отметку непрочитанных сообщений'");
|
||||
ПараметрВебЧата.Тип = "Булево";
|
||||
ПараметрВебЧата.СтандартноеЗначение = "true";
|
||||
|
||||
ПараметрВебЧата.СписокЗначений = Новый Структура;
|
||||
ПараметрВебЧата.СписокЗначений.Вставить("true", Истина);
|
||||
ПараметрВебЧата.СписокЗначений.Вставить("false", Ложь);
|
||||
|
||||
ИначеЕсли ПараметрВебЧата.Имя = "displayCollapsedState" Тогда
|
||||
|
||||
ПараметрВебЧата.Представление = НСтр("ru = 'Отображать свернутое состояние чата'");
|
||||
ПараметрВебЧата.Тип = "Булево";
|
||||
ПараметрВебЧата.СтандартноеЗначение = "true";
|
||||
|
||||
ПараметрВебЧата.СписокЗначений = Новый Структура;
|
||||
ПараметрВебЧата.СписокЗначений.Вставить("true", Истина);
|
||||
ПараметрВебЧата.СписокЗначений.Вставить("false", Ложь);
|
||||
|
||||
ИначеЕсли ПараметрВебЧата.Имя = "openChatOnNewMessage" Тогда
|
||||
|
||||
ПараметрВебЧата.Представление = НСтр("ru = 'Открывать чат при получении нового сообщения'");
|
||||
ПараметрВебЧата.Тип = "Булево";
|
||||
ПараметрВебЧата.СтандартноеЗначение = "true";
|
||||
|
||||
ПараметрВебЧата.СписокЗначений = Новый Структура;
|
||||
ПараметрВебЧата.СписокЗначений.Вставить("true", Истина);
|
||||
ПараметрВебЧата.СписокЗначений.Вставить("false", Ложь);
|
||||
|
||||
Иначе
|
||||
|
||||
|
||||
@@ -14290,7 +14290,9 @@
|
||||
// Модули стандартных подсистем.
|
||||
Попытка
|
||||
// Вызов ВычислитьВБезопасномРежиме не требуется, т.к. для вычисления передается строковый литерал.
|
||||
УстановитьБезопасныйРежим(Истина);
|
||||
МодульДатыЗапретаИзменения = Вычислить("ДатыЗапретаИзменения");
|
||||
УстановитьБезопасныйРежим(Ложь);
|
||||
Исключение
|
||||
МодульДатыЗапретаИзменения = Неопределено;
|
||||
КонецПопытки;
|
||||
@@ -14724,7 +14726,9 @@
|
||||
Функция ОбщийМодуль(Имя) Экспорт
|
||||
|
||||
Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда
|
||||
УстановитьБезопасныйРежим(Истина);
|
||||
Модуль = Вычислить(Имя);
|
||||
УстановитьБезопасныйРежим(Ложь);
|
||||
Иначе
|
||||
Модуль = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
+5
-4
@@ -59,7 +59,7 @@
|
||||
<row><Value>1</Value><Value>Республика</Value><Value>респ.</Value><Value>респ.</Value></row>
|
||||
<row><Value>1</Value><Value>Чувашия</Value><Value>Чувашия</Value><Value></Value></row>
|
||||
<row><Value>2</Value><Value>Автономный округ</Value><Value>АО</Value><Value>а.окр.</Value></row>
|
||||
<row><Value>2</Value><Value>Внутригородская территория</Value><Value>вн.тер. г.</Value><Value></Value></row>
|
||||
<row><Value>2</Value><Value>внутригородская территория (внутригородское муниципальное образование) города федерального значения</Value><Value>вн.тер. г.</Value><Value></Value></row>
|
||||
<row><Value>2</Value><Value>Город</Value><Value>г</Value><Value>г.</Value></row>
|
||||
<row><Value>2</Value><Value>Городской округ</Value><Value>г.о.</Value><Value>г.о.</Value></row>
|
||||
<row><Value>2</Value><Value>Муниципальный округ</Value><Value>м.о.</Value><Value>м.о.</Value></row>
|
||||
@@ -74,8 +74,8 @@
|
||||
<row><Value>2</Value><Value>Город</Value><Value>г</Value><Value>г.</Value></row>
|
||||
<row><Value>3</Value><Value>Городской округ</Value><Value>г.о.</Value><Value>г.о.</Value></row>
|
||||
<row><Value>3</Value><Value>Муниципальный район</Value><Value>м.р-н</Value><Value>м.р-н</Value></row>
|
||||
<row><Value>3</Value><Value>Внутригородская территория</Value><Value>вн.тер.</Value><Value>вн.тер.</Value></row>
|
||||
<row><Value>3</Value><Value>Внутригородская территория</Value><Value>вн.тер.г.</Value><Value>вн.тер.г.</Value></row>
|
||||
<row><Value>3</Value><Value>внутригородская территория</Value><Value>вн.тер.</Value><Value>вн.тер.</Value></row>
|
||||
<row><Value>3</Value><Value>внутригородская территория (внутригородское муниципальное образование) города федерального значения</Value><Value>вн.тер.г.</Value><Value>вн.тер.г.</Value></row>
|
||||
<row><Value>3</Value><Value>Муниципальный округ</Value><Value>м.о.</Value><Value>м.о.</Value></row>
|
||||
<row><Value>3</Value><Value>Федеральная территория</Value><Value>ф.т.</Value><Value>ф.т.</Value></row>
|
||||
<row><Value>5</Value><Value>Волость</Value><Value>волость</Value><Value></Value></row>
|
||||
@@ -96,13 +96,14 @@
|
||||
<row><Value>5</Value><Value>Рабочий поселок</Value><Value>рп</Value><Value>рп.</Value></row>
|
||||
<row><Value>5</Value><Value>Территория</Value><Value>тер</Value><Value>тер.</Value></row>
|
||||
<row><Value>4</Value><Value>Сельское поселение</Value><Value>с.п.</Value><Value>с.п.</Value></row>
|
||||
<row><Value>4</Value><Value>Внутригородской район</Value><Value>вн.р-н</Value><Value>вн.р-н</Value></row>
|
||||
<row><Value>4</Value><Value>внутригородской район</Value><Value>вн.р-н</Value><Value>вн.р-н</Value></row>
|
||||
<row><Value>4</Value><Value>Городское поселение</Value><Value>г.п.</Value><Value>г.п.</Value></row>
|
||||
<row><Value>4</Value><Value>Городское поселение</Value><Value>г. п.</Value><Value>г.п.</Value></row>
|
||||
<row><Value>4</Value><Value>Межселенная территория</Value><Value>меж.тер.</Value><Value>меж.тер.</Value></row>
|
||||
<row><Value>6</Value><Value>Волость</Value><Value>волость</Value><Value></Value></row>
|
||||
<row><Value>6</Value><Value>Выселки(ок)</Value><Value>высел</Value><Value></Value></row>
|
||||
<row><Value>6</Value><Value>Город</Value><Value>г</Value><Value>г.</Value></row>
|
||||
<row><Value>6</Value><Value>Город</Value><Value>г.</Value><Value>г.</Value></row>
|
||||
<row><Value>6</Value><Value>Городок</Value><Value>г-к</Value><Value>г-к</Value></row>
|
||||
<row><Value>6</Value><Value>Городской поселок</Value><Value>гп</Value><Value>гп.</Value></row>
|
||||
<row><Value>6</Value><Value>Дачный поселок</Value><Value>дп</Value><Value>дп.</Value></row>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Возвращает данные кэша версий из ресурса типа ХранилищеЗначения регистра КэшПрограммныхИнтерфейсов.
|
||||
//
|
||||
@@ -20,221 +20,171 @@
|
||||
// данных в кэше перед возвратом значения, в случае обнаружения факта их устаревания.
|
||||
// Истина - всегда использовать данные из кэша, если они там есть. Ложь - ожидать
|
||||
// обновления данных кэша, в случае обнаружения факта устаревания данных.
|
||||
// ЭтоЗащищенноеСоединениеПоУмолчанию - Булево, Неопределено
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированныйМассив, ДвоичныеДанные
|
||||
//
|
||||
Функция ДанныеКэшаВерсий(Знач Идентификатор, Знач ТипДанных, Знач ПараметрыПолучения, Знач ИспользоватьУстаревшиеДанные = Истина) Экспорт
|
||||
Функция ДанныеКэшаВерсий(Знач Идентификатор, Знач ТипДанных, Знач ПараметрыПолучения,
|
||||
Знач ИспользоватьУстаревшиеДанные = Истина, Знач ЭтоЗащищенноеСоединениеПоУмолчанию = Неопределено) Экспорт
|
||||
|
||||
Выборка = ТекущиеДанныеКэшаВерсий(Идентификатор, ТипДанных);
|
||||
|
||||
ТребуетсяВыполнитьОбновление = Ложь;
|
||||
ТребуютсяОбновленныеДанные = Ложь;
|
||||
|
||||
Если Выборка = Неопределено Тогда
|
||||
ТребуетсяВыполнитьОбновление = Истина;
|
||||
ТребуютсяОбновленныеДанные = Истина;
|
||||
|
||||
ИначеЕсли Не КэшПрограммногоИнтерфейсаАктуален(Выборка.ДатаОбновления) Тогда
|
||||
ТребуетсяВыполнитьОбновление = Истина;
|
||||
ТребуютсяОбновленныеДанные = Не ИспользоватьУстаревшиеДанные;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ТребуетсяВыполнитьОбновление Тогда
|
||||
Возврат Выборка.Данные.Получить();
|
||||
КонецЕсли;
|
||||
|
||||
ОбновлениеВТекущемСеансе = ТребуютсяОбновленныеДанные
|
||||
Или ОбщегоНазначения.ИнформационнаяБазаФайловая()
|
||||
Или МонопольныйРежим()
|
||||
Или ОбщегоНазначения.РежимОтладки()
|
||||
Или ТекущийРежимЗапуска() = Неопределено
|
||||
Или ЭтоЗащищенноеСоединениеПоУмолчанию = Ложь;
|
||||
|
||||
ПараметрыОбновления = Новый Структура;
|
||||
ПараметрыОбновления.Вставить("Идентификатор", Идентификатор);
|
||||
ПараметрыОбновления.Вставить("ТипДанных", ТипДанных);
|
||||
ПараметрыОбновления.Вставить("ПараметрыПолучения", ПараметрыПолучения);
|
||||
|
||||
Если ОбновлениеВТекущемСеансе Тогда
|
||||
ОбновитьДанныеКэшаВерсий(ПараметрыОбновления, Выборка);
|
||||
Иначе
|
||||
Если ПараметрыПолучения.Количество() > 4 И ПараметрыПолучения[4] <> Неопределено Тогда
|
||||
ПараметрыОбновления.ПараметрыПолучения = Новый Массив(Новый ФиксированныйМассив(ПараметрыПолучения));
|
||||
ПараметрыОбновления.ПараметрыПолучения[4] = Null;
|
||||
КонецЕсли;
|
||||
ИмяПроцедуры = "РегистрыСведений.КэшПрограммныхИнтерфейсов.ОбновитьДанныеКэшаВерсий";
|
||||
НаименованиеЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Обновление кэша версий. Идентификатор записи %1. Тип данных %2.'"),
|
||||
Идентификатор, ТипДанных);
|
||||
|
||||
ОтборЗаданий = Новый Структура;
|
||||
ОтборЗаданий.Вставить("ИмяМетода", ИмяПроцедуры);
|
||||
ОтборЗаданий.Вставить("Наименование", НаименованиеЗадания);
|
||||
ОтборЗаданий.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
|
||||
|
||||
Если ФоновыеЗадания.ПолучитьФоновыеЗадания(ОтборЗаданий).Количество() = 0 Тогда
|
||||
ПараметрыОперации = ДлительныеОперации.ПараметрыВыполненияВФоне(Неопределено);
|
||||
ПараметрыОперации.НаименованиеФоновогоЗадания = НаименованиеЗадания;
|
||||
ПараметрыОперации.ЗапуститьВФоне = Истина;
|
||||
ПараметрыОперации.ОжидатьЗавершение = 0;
|
||||
|
||||
ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыОбновления, ПараметрыОперации);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Выборка.Данные.Получить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Для функции ДанныеКэшаВерсий и процедуры ОбновитьДанныеКэшаВерсий.
|
||||
Функция ТекущиеДанныеКэшаВерсий(Идентификатор, ТипДанных)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ТаблицаКэша.ДатаОбновления КАК ДатаОбновления,
|
||||
| ТаблицаКэша.Данные КАК Данные,
|
||||
| ТаблицаКэша.ТипДанных КАК ТипДанных
|
||||
|ИЗ
|
||||
| РегистрСведений.КэшПрограммныхИнтерфейсов КАК ТаблицаКэша
|
||||
|ГДЕ
|
||||
| ТаблицаКэша.Идентификатор = &Идентификатор
|
||||
| И ТаблицаКэша.ТипДанных = &ТипДанных";
|
||||
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
|
||||
Запрос.УстановитьПараметр("ТипДанных", ТипДанных);
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
// Не устанавливаем управляемую блокировку, чтобы другие сеансы могли изменять значение пока эта транзакция активна.
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Результат = Запрос.Выполнить();
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ТаблицаКэша.ДатаОбновления КАК ДатаОбновления,
|
||||
| ТаблицаКэша.Данные КАК Данные,
|
||||
| ТаблицаКэша.ТипДанных КАК ТипДанных
|
||||
|ИЗ
|
||||
| РегистрСведений.КэшПрограммныхИнтерфейсов КАК ТаблицаКэша
|
||||
|ГДЕ
|
||||
| ТаблицаКэша.Идентификатор = &Идентификатор
|
||||
| И ТаблицаКэша.ТипДанных = &ТипДанных";
|
||||
|
||||
ТребуетсяВыполнитьОбновление = Ложь;
|
||||
ТребуетсяПеречитатьДанные = Ложь;
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Если Результат.Пустой() Тогда
|
||||
|
||||
ТребуетсяВыполнитьОбновление = Истина;
|
||||
ТребуетсяПеречитатьДанные = Истина;
|
||||
|
||||
Иначе
|
||||
|
||||
Выборка = Результат.Выбрать();
|
||||
Выборка.Следующий();
|
||||
Если Не КэшПрограммногоИнтерфейсаАктуален(Выборка.ДатаОбновления) Тогда
|
||||
ТребуетсяВыполнитьОбновление = Истина;
|
||||
ТребуетсяПеречитатьДанные = НЕ ИспользоватьУстаревшиеДанные;
|
||||
КонецЕсли;
|
||||
Если Выборка.Следующий() Тогда
|
||||
Возврат Выборка;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТребуетсяВыполнитьОбновление Тогда
|
||||
|
||||
ОбновлениеВТекущемСеансе = ТребуетсяПеречитатьДанные
|
||||
Или ОбщегоНазначения.ИнформационнаяБазаФайловая()
|
||||
Или МонопольныйРежим()
|
||||
Или ОбщегоНазначения.РежимОтладки()
|
||||
Или ТекущийРежимЗапуска() = Неопределено;
|
||||
|
||||
Если ОбновлениеВТекущемСеансе Тогда
|
||||
ОбновитьДанныеКэшаВерсий(Идентификатор, ТипДанных, ПараметрыПолучения);
|
||||
ТребуетсяПеречитатьДанные = Истина;
|
||||
Иначе
|
||||
ИмяМетодаЗадания = "РегистрыСведений.КэшПрограммныхИнтерфейсов.ОбновитьДанныеКэшаВерсий";
|
||||
НаименованиеЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Обновление кэша версий. Идентификатор записи %1. Тип данных %2.'"),
|
||||
Идентификатор,
|
||||
ТипДанных);
|
||||
ПараметрыЗадания = Новый Массив;
|
||||
ПараметрыЗадания.Добавить(Идентификатор);
|
||||
ПараметрыЗадания.Добавить(ТипДанных);
|
||||
ПараметрыЗадания.Добавить(ПараметрыПолучения);
|
||||
|
||||
ОтборЗаданий = Новый Структура;
|
||||
ОтборЗаданий.Вставить("ИмяМетода", ИмяМетодаЗадания);
|
||||
ОтборЗаданий.Вставить("Наименование", НаименованиеЗадания);
|
||||
ОтборЗаданий.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
|
||||
|
||||
Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания(ОтборЗаданий);
|
||||
Если Задания.Количество() = 0 Тогда
|
||||
// Запустим новое.
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(Неопределено);
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
|
||||
БезопасныйРежим = БезопасныйРежим();
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
ДлительныеОперации.ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяМетодаЗадания,
|
||||
ПараметрыВыполнения, ПараметрыЗадания, БезопасныйРежим);
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТребуетсяПеречитатьДанные Тогда
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
// Не устанавливаем управляемую блокировку, чтобы другие сеансы могли изменять значение пока эта транзакция активна.
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Результат = Запрос.Выполнить();
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
Если Результат.Пустой() Тогда
|
||||
ШаблонСообщения = НСтр("ru = 'Ошибка при обновлении кэша версий. Данные не получены.
|
||||
|Идентификатор записи: %1
|
||||
|Тип данных: %2'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Идентификатор, ТипДанных);
|
||||
|
||||
ВызватьИсключение(ТекстСообщения);
|
||||
КонецЕсли;
|
||||
|
||||
Выборка = Результат.Выбрать();
|
||||
Выборка.Следующий();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Выборка.Данные.Получить();
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Обновляет данные в кэше версий.
|
||||
//
|
||||
// Параметры:
|
||||
// Идентификатор - Строка - идентификатор записи кэша.
|
||||
// ТипДанных - ПеречислениеСсылка.ТипыДанныхКэшаПрограммныхИнтерфейсов - тип обновляемых данных.
|
||||
// ПараметрыПолучения - Массив - дополнительные параметры получения данных в кэш.
|
||||
// ПараметрыОбновления - Структура:
|
||||
// * Идентификатор - Строка - идентификатор записи кэша.
|
||||
// * ТипДанных - ПеречислениеСсылка.ТипыДанныхКэшаПрограммныхИнтерфейсов - тип обновляемых данных.
|
||||
// * ПараметрыПолучения - Массив - дополнительные параметры получения данных в кэш.
|
||||
// АдресХранилища - Строка - не используется
|
||||
// - Неопределено, ВыборкаИзРезультатаЗапроса - возвращаемое значение.
|
||||
//
|
||||
Процедура ОбновитьДанныеКэшаВерсий(Знач Идентификатор, Знач ТипДанных, Знач ПараметрыПолучения) Экспорт
|
||||
Процедура ОбновитьДанныеКэшаВерсий(ПараметрыОбновления, АдресХранилища) Экспорт
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
СтруктураКлюча = Новый Структура("Идентификатор, ТипДанных", Идентификатор, ТипДанных);
|
||||
Ключ = СоздатьКлючЗаписи(СтруктураКлюча);
|
||||
Идентификатор = ПараметрыОбновления.Идентификатор;
|
||||
ТипДанных = ПараметрыОбновления.ТипДанных;
|
||||
ПараметрыПолучения = ПараметрыОбновления.ПараметрыПолучения;
|
||||
|
||||
Попытка
|
||||
ЗаблокироватьДанныеДляРедактирования(Ключ);
|
||||
Исключение
|
||||
// Данные уже обновляются из другого сеанса.
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
Если ПараметрыПолучения.Количество() > 4 И ПараметрыПолучения[4] = Null Тогда
|
||||
ПараметрыПолучения[4] = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||
КонецЕсли;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ТаблицаКэша.ДатаОбновления КАК ДатаОбновления,
|
||||
| ТаблицаКэша.Данные КАК Данные,
|
||||
| ТаблицаКэша.ТипДанных КАК ТипДанных
|
||||
|ИЗ
|
||||
| РегистрСведений.КэшПрограммныхИнтерфейсов КАК ТаблицаКэша
|
||||
|ГДЕ
|
||||
| ТаблицаКэша.Идентификатор = &Идентификатор
|
||||
| И ТаблицаКэша.ТипДанных = &ТипДанных";
|
||||
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
|
||||
Запрос.УстановитьПараметр("ТипДанных", ТипДанных);
|
||||
Если ТипЗнч(АдресХранилища) = Тип("Строка") Тогда
|
||||
Выборка = ТекущиеДанныеКэшаВерсий(Идентификатор, ТипДанных);
|
||||
Если Выборка <> Неопределено
|
||||
И КэшПрограммногоИнтерфейсаАктуален(Выборка.ДатаОбновления) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
НаборЗаписей = СоздатьНаборЗаписей();
|
||||
НаборЗаписей.Отбор.Идентификатор.Установить(Идентификатор);
|
||||
НаборЗаписей.Отбор.ТипДанных.Установить(ТипДанных);
|
||||
|
||||
НоваяЗапись = НаборЗаписей.Добавить();
|
||||
НоваяЗапись.Идентификатор = Идентификатор;
|
||||
НоваяЗапись.ТипДанных = ТипДанных;
|
||||
НоваяЗапись.ДатаОбновления = ТекущаяУниверсальнаяДата();
|
||||
|
||||
НаборЗаписей.ДополнительныеСвойства.Вставить("ПараметрыПолучения", ПараметрыПолучения);
|
||||
НаборЗаписей.ПодготовитьДанныеДляЗаписи(НоваяЗапись.Данные);
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
|
||||
ЭлементБлокировки.УстановитьЗначение("Идентификатор", Идентификатор);
|
||||
ЭлементБлокировки.УстановитьЗначение("ТипДанных", ТипДанных);
|
||||
|
||||
НачатьТранзакцию();
|
||||
|
||||
Попытка
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
|
||||
ЭлементБлокировки.УстановитьЗначение("Идентификатор", Идентификатор);
|
||||
ЭлементБлокировки.УстановитьЗначение("ТипДанных", ТипДанных);
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
Результат = Запрос.Выполнить();
|
||||
Выборка = ТекущиеДанныеКэшаВерсий(Идентификатор, ТипДанных);
|
||||
|
||||
// Не удерживаем транзакцию для того, чтобы другие сеансы могли выполнять чтение данных.
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
|
||||
ОтменитьТранзакцию();
|
||||
РазблокироватьДанныеДляРедактирования(Ключ);
|
||||
ВызватьИсключение;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Попытка
|
||||
|
||||
// Убедимся, что данные требуют обновления.
|
||||
Если Не Результат.Пустой() Тогда
|
||||
Если Выборка = Неопределено
|
||||
Или Не КэшПрограммногоИнтерфейсаАктуален(Выборка.ДатаОбновления) Тогда
|
||||
|
||||
Выборка = Результат.Выбрать();
|
||||
Выборка.Следующий();
|
||||
Если КэшПрограммногоИнтерфейсаАктуален(Выборка.ДатаОбновления) Тогда
|
||||
РазблокироватьДанныеДляРедактирования(Ключ);
|
||||
Возврат;
|
||||
НаборЗаписей.Записать();
|
||||
Если ТипЗнч(АдресХранилища) <> Тип("Строка") Тогда
|
||||
АдресХранилища = НоваяЗапись;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Набор = СоздатьНаборЗаписей();
|
||||
Набор.Отбор.Идентификатор.Установить(Идентификатор);
|
||||
Набор.Отбор.ТипДанных.Установить(ТипДанных);
|
||||
|
||||
Запись = Набор.Добавить();
|
||||
Запись.Идентификатор = Идентификатор;
|
||||
Запись.ТипДанных = ТипДанных;
|
||||
Запись.ДатаОбновления = ТекущаяУниверсальнаяДата();
|
||||
|
||||
Набор.ДополнительныеСвойства.Вставить("ПараметрыПолучения", ПараметрыПолучения);
|
||||
Набор.ПодготовитьДанныеДляЗаписи();
|
||||
|
||||
Набор.Записать();
|
||||
|
||||
РазблокироватьДанныеДляРедактирования(Ключ);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
|
||||
РазблокироватьДанныеДляРедактирования(Ключ);
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -288,12 +238,14 @@
|
||||
КонецЕсли;
|
||||
|
||||
ЗащищенноеСоединение = Параметры.ЗащищенноеСоединение;
|
||||
ЭтоЗащищенноеСоединениеПоУмолчанию = Ложь;
|
||||
Если (Протокол = "https" Или Протокол = "ftps") И ЗащищенноеСоединение = Неопределено Тогда
|
||||
ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||
ЭтоЗащищенноеСоединениеПоУмолчанию = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
WSОпределения = WSОпределения(Параметры.АдресWSDL, Параметры.ИмяПользователя, Параметры.Пароль,,
|
||||
ЗащищенноеСоединение);
|
||||
ЗащищенноеСоединение, ЭтоЗащищенноеСоединениеПоУмолчанию);
|
||||
|
||||
ИмяТочкиПодключения = Параметры.ИмяТочкиПодключения;
|
||||
Если ПустаяСтрока(ИмяТочкиПодключения) Тогда
|
||||
@@ -323,10 +275,6 @@
|
||||
Возврат Прокси;
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция КэшПрограммногоИнтерфейсаАктуален(ДатаОбновления)
|
||||
|
||||
Если ЗначениеЗаполнено(ДатаОбновления) Тогда
|
||||
@@ -337,7 +285,8 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция WSОпределения(Знач АдресWSDL, Знач ИмяПользователя, Знач Пароль, Знач Таймаут = 10, Знач ЗащищенноеСоединение = Неопределено)
|
||||
Функция WSОпределения(Знач АдресWSDL, Знач ИмяПользователя, Знач Пароль, Знач Таймаут = 10,
|
||||
Знач ЗащищенноеСоединение = Неопределено, ЭтоЗащищенноеСоединениеПоУмолчанию = Ложь)
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
|
||||
Попытка
|
||||
@@ -380,7 +329,8 @@
|
||||
АдресWSDL,
|
||||
Перечисления.ТипыДанныхКэшаПрограммныхИнтерфейсов.ОписаниеWebСервиса,
|
||||
ПараметрыПолучения,
|
||||
Ложь); // ДвоичныеДанные
|
||||
Ложь,
|
||||
ЭтоЗащищенноеСоединениеПоУмолчанию); // ДвоичныеДанные
|
||||
|
||||
ИмяФайлаWSDL = ПолучитьИмяВременногоФайла("wsdl");
|
||||
ДанныеWSDL.Записать(ИмяФайлаWSDL);
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ПодготовитьДанныеДляЗаписи() Экспорт
|
||||
Процедура ПодготовитьДанныеДляЗаписи(ХранилищеДанных) Экспорт
|
||||
|
||||
ПараметрыПолучения = Неопределено;
|
||||
Если Не ДополнительныеСвойства.Свойство("ПараметрыПолучения", ПараметрыПолучения) Тогда
|
||||
@@ -84,8 +84,8 @@
|
||||
Для Каждого Строка Из ДанныеДляЗаписи Цикл
|
||||
|
||||
Данные = РегистрыСведений.КэшПрограммныхИнтерфейсов.ПодготовитьДанныеКэшаВерсий(Строка.ТипДанных, ПараметрыПолучения);
|
||||
Строка.Данные = Новый ХранилищеЗначения(Данные, Новый СжатиеДанных(9));
|
||||
|
||||
ХранилищеДанных = Новый ХранилищеЗначения(Данные, Новый СжатиеДанных(9));
|
||||
Строка.Данные = ХранилищеДанных;
|
||||
КонецЦикла;
|
||||
|
||||
ПодготовленыДанные = Истина;
|
||||
|
||||
@@ -13,22 +13,18 @@
|
||||
Функция ЕстьРассчитанныеСрокиХранения() Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("СрокХраненияНеРассчитан", Дата(3999, 12, 31));
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ ПЕРВЫЕ 1 РАЗРЕШЕННЫЕ
|
||||
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
|
||||
| СрокиХраненияПерсональныхДанных.СрокХранения КАК СрокХранения
|
||||
|ИЗ
|
||||
| РегистрСведений.СрокиХраненияПерсональныхДанных КАК СрокиХраненияПерсональныхДанных";
|
||||
| РегистрСведений.СрокиХраненияПерсональныхДанных КАК СрокиХраненияПерсональныхДанных
|
||||
|ГДЕ
|
||||
| СрокиХраненияПерсональныхДанных.СрокХранения <> &СрокХраненияНеРассчитан";
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
Если РезультатЗапроса.Пустой() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
Выборка.Следующий();
|
||||
|
||||
Возврат Выборка.СрокХранения <> Дата(3999, 12, 31);
|
||||
Возврат Не РезультатЗапроса.Пустой();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -4045,6 +4045,93 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>DataAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExclusiveMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ActiveUsers</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EventLog</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThinClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>WebClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SaveUserData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.КлассификаторБанков</name>
|
||||
<right>
|
||||
@@ -4265,93 +4352,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>DataAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExclusiveMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ActiveUsers</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EventLog</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThinClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>WebClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SaveUserData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name>
|
||||
<right>
|
||||
|
||||
@@ -2201,6 +2201,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.КлассификаторБанков</name>
|
||||
<right>
|
||||
@@ -2317,33 +2344,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonForm.ПоддерживаемыеКлиентскиеПриложения</name>
|
||||
<right>
|
||||
|
||||
@@ -1715,6 +1715,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.КлассификаторБанков</name>
|
||||
<right>
|
||||
@@ -1831,33 +1858,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>SessionParameter.ИнтерактивнаяПроверкаЗаполненияСвойств</name>
|
||||
<right>
|
||||
|
||||
@@ -210,6 +210,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ЗемельныеУчастки</name>
|
||||
<right>
|
||||
@@ -256,33 +283,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.АдресныеОбъекты</name>
|
||||
<right>
|
||||
|
||||
@@ -21,6 +21,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.КлассификаторБанков</name>
|
||||
<right>
|
||||
@@ -60,31 +87,4 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
||||
@@ -135,29 +135,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.НастройкиВариантовОтчетов</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Update</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Edit</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TotalsControl</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -185,6 +162,29 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.НастройкиВариантовОтчетов</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Update</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Edit</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TotalsControl</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.ВариантыОтчетов.Command.РазместитьВРазделах</name>
|
||||
<right>
|
||||
|
||||
@@ -1048,6 +1048,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ДатыПоследнейЗагрузкиПочтовыхСообщений</name>
|
||||
<right>
|
||||
@@ -1128,33 +1155,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DocumentJournal.Взаимодействия.Command.ЗапланироватьВстречуПоКонтакту</name>
|
||||
<right>
|
||||
|
||||
@@ -87,13 +87,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.ПрисоединенныеФайлы</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -121,6 +114,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.ПрисоединенныеФайлы</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.РедактируемыеФайлы</name>
|
||||
<right>
|
||||
|
||||
@@ -87,13 +87,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.ПрисоединенныеФайлы</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -121,6 +114,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.ПрисоединенныеФайлы</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.РедактируемыеФайлы</name>
|
||||
<right>
|
||||
|
||||
@@ -146,13 +146,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.КартаМаршрутаБизнесПроцесса</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -180,6 +173,13 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>CommonCommand.КартаМаршрутаБизнесПроцесса</name>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Task.ЗадачаИсполнителя.Command.МоиЗадачи</name>
|
||||
<right>
|
||||
|
||||
@@ -5686,6 +5686,45 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Catalog.КлассификаторБанков</name>
|
||||
<right>
|
||||
@@ -5945,45 +5984,6 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name>
|
||||
<right>
|
||||
|
||||
@@ -2987,6 +2987,33 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.ДатыПоследнейЗагрузкиПочтовыхСообщений</name>
|
||||
<right>
|
||||
@@ -3064,33 +3091,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.СертификатыШифрования</name>
|
||||
<right>
|
||||
|
||||
@@ -58,17 +58,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.НастройкиВариантовОтчетов</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -96,4 +85,15 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.НастройкиВариантовОтчетов</name>
|
||||
<right>
|
||||
<name>Read</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
||||
@@ -134,11 +134,13 @@
|
||||
&НаСервере
|
||||
Процедура УстановитьСостояниеЭлементовИТипыОбъектовАдресации()
|
||||
|
||||
ОписаниеПользователя = ПользователиСлужебный.ОписаниеПользователя(Исполнитель);
|
||||
Если ОписаниеПользователя.Недействителен Или ОписаниеПользователя.ПометкаУдаления Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Исполнителем задачи выбран недействительный пользователь.'"),,,
|
||||
"Исполнитель");
|
||||
Возврат;
|
||||
Если ЗначениеЗаполнено(Исполнитель) Тогда
|
||||
ОписаниеПользователя = ПользователиСлужебный.ОписаниеПользователя(Исполнитель);
|
||||
Если ОписаниеПользователя.Недействителен Или ОписаниеПользователя.ПометкаУдаления Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Исполнителем задачи выбран недействительный пользователь.'"),,,
|
||||
"Исполнитель");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьТипыОбъектовАдресации();
|
||||
|
||||
Reference in new issue
Block a user