3_1_10_277
This commit is contained in:
1 parent
5d53ce27de
commit
10a6064cd2
198 files changed
+6973
-3284
No files matched your search
@@ -315,8 +315,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентыПослеПредупрежденияБезопасности", ЭтотОбъект, ПомещенныеФайлы);
|
||||
ПараметрыФормы = Новый Структура("Ключ", "ПередДобавлениемВнешнейКомпоненты");
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередДобавлениемВнешнейКомпоненты);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -200,8 +200,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентуПослеПредупрежденияБезопасности", ЭтотОбъект);
|
||||
ПараметрыФормы = Новый Структура("Ключ", "ПередДобавлениемВнешнейКомпоненты");
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередДобавлениемВнешнейКомпоненты);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -625,8 +625,8 @@
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьИзФайла()
|
||||
Оповещение = Новый ОписаниеОповещения("ОбновитьИзФайлаПослеПодтверждения", ЭтотОбъект);
|
||||
ПараметрыФормы = Новый Структура("Ключ", "ПередДобавлениемДополнительногоОтчетаИлиОбработки");
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы, , , , , Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередДобавлениемДополнительногоОтчетаИлиОбработки);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
|
||||
@@ -1228,8 +1228,8 @@
|
||||
КонецЕсли;
|
||||
Если СтрокаТаблицы.Пометка И СтрокаТаблицы.Имя = "ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок" Тогда
|
||||
Оповещение = Новый ОписаниеОповещения("РолиПометкаПриИзмененииПослеПодтверждения", ЭтотОбъект);
|
||||
ПараметрыФормы = Новый Структура("Ключ", "ПередВыборомРоли");
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы, , , , , Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередВыборомРоли);
|
||||
Иначе
|
||||
Если СтрокаТаблицы.Имя = "ПолныеПрава" Тогда
|
||||
УстановитьНеобходимостьСинхронизацииССервисом(ЭтотОбъект);
|
||||
|
||||
File renamed without changes.
File renamed without changes.
+2
-2
@@ -310,10 +310,10 @@
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="80641554-046e-4c4a-8544-a35b4c554dad">
|
||||
<name>ПрограммаОпределеннаяАвтоматически</name>
|
||||
<name>ПриложениеОпределенноеАвтоматически</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Программа, определенная автоматически</value>
|
||||
<value>Приложение, определенное автоматически</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
|
||||
@@ -556,7 +556,15 @@
|
||||
ЗаполнитьЗначенияСвойств(ОтборСтрок, Сочетание);
|
||||
СтрокиДанныхКалендаря = КлассификаторТаблица.НайтиСтроки(ОтборСтрок);
|
||||
Для Каждого СтрокаКлассификатора Из СтрокиДанныхКалендаря Цикл
|
||||
НоваяСтрока = НоваяСтрокаДанныхКалендаряИзКлассификатора(ТаблицаДанных, СтрокаКлассификатора);
|
||||
НоваяСтрока = ТаблицаДанных.Добавить();
|
||||
НоваяСтрока.КодПроизводственногоКалендаря = СтрокаКлассификатора.Calendar;
|
||||
НоваяСтрока.ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря[СтрокаКлассификатора.DayType];
|
||||
НоваяСтрока.Год = Число(СтрокаКлассификатора.Year);
|
||||
НоваяСтрока.Дата = Дата(СтрокаКлассификатора.Date);
|
||||
Если ЗначениеЗаполнено(СтрокаКлассификатора.SwapDate) Тогда
|
||||
НоваяСтрока.ДатаПереноса = Дата(СтрокаКлассификатора.SwapDate);
|
||||
КонецЕсли;
|
||||
|
||||
ДатыГода.Вставить(НоваяСтрока.Дата, Истина);
|
||||
КонецЦикла;
|
||||
КодБазовогоКалендаря = КодБазовогоКалендаря(Сочетание.Calendar, ТаблицаКалендарей);
|
||||
@@ -565,7 +573,28 @@
|
||||
СтрокиДанныхКалендаря = КлассификаторТаблица.НайтиСтроки(ОтборСтрок);
|
||||
Для Каждого СтрокаКлассификатора Из СтрокиДанныхКалендаря Цикл
|
||||
СтрокаКлассификатора.Calendar = Сочетание.Calendar;
|
||||
НоваяСтрока = НоваяСтрокаДанныхКалендаряИзКлассификатора(ТаблицаДанных, СтрокаКлассификатора, Истина, Ложь);
|
||||
|
||||
ПараметрыОтбора = Новый Структура("КодПроизводственногоКалендаря,Дата");
|
||||
ПараметрыОтбора.КодПроизводственногоКалендаря = СтрокаКлассификатора.Calendar;
|
||||
ПараметрыОтбора.Дата = Дата(СтрокаКлассификатора.Date);
|
||||
НайденныеСтроки = ТаблицаДанных.НайтиСтроки(ПараметрыОтбора);
|
||||
Если НайденныеСтроки.Количество() > 0 Тогда
|
||||
СтрокаКлассификатора.Calendar = КодБазовогоКалендаря;
|
||||
Если НоваяСтрока <> Неопределено Тогда
|
||||
ДатыГода.Вставить(НоваяСтрока.Дата, Истина);
|
||||
КонецЕсли;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
НоваяСтрока = ТаблицаДанных.Добавить();
|
||||
НоваяСтрока.КодПроизводственногоКалендаря = СтрокаКлассификатора.Calendar;
|
||||
НоваяСтрока.ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря[СтрокаКлассификатора.DayType];
|
||||
НоваяСтрока.Год = Число(СтрокаКлассификатора.Year);
|
||||
НоваяСтрока.Дата = Дата(СтрокаКлассификатора.Date);
|
||||
Если ЗначениеЗаполнено(СтрокаКлассификатора.SwapDate) Тогда
|
||||
НоваяСтрока.ДатаПереноса = Дата(СтрокаКлассификатора.SwapDate);
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаКлассификатора.Calendar = КодБазовогоКалендаря;
|
||||
Если НоваяСтрока <> Неопределено Тогда
|
||||
ДатыГода.Вставить(НоваяСтрока.Дата, Истина);
|
||||
@@ -1272,36 +1301,6 @@
|
||||
КлассификаторКалендарей.НайтиСтроки(Новый Структура("Base", КодБазовогоКалендаря)), "Code");
|
||||
КонецФункции
|
||||
|
||||
Функция НоваяСтрокаДанныхКалендаряИзКлассификатора(ДанныеКалендаря, СтрокаКлассификатора, Проверять = Ложь, Замещать = Ложь)
|
||||
|
||||
Если Проверять Тогда
|
||||
ОтборСтрок = Новый Структура("КодПроизводственногоКалендаря,Дата");
|
||||
ОтборСтрок.КодПроизводственногоКалендаря = СтрокаКлассификатора.Calendar;
|
||||
ОтборСтрок.Дата = Дата(СтрокаКлассификатора.Date);
|
||||
НайденныеСтроки = ДанныеКалендаря.НайтиСтроки(ОтборСтрок);
|
||||
Если НайденныеСтроки.Количество() > 0 Тогда
|
||||
Если Не Замещать Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл
|
||||
ДанныеКалендаря.Удалить(НайденнаяСтрока);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
НоваяСтрока = ДанныеКалендаря.Добавить();
|
||||
НоваяСтрока.КодПроизводственногоКалендаря = СтрокаКлассификатора.Calendar;
|
||||
НоваяСтрока.ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря[СтрокаКлассификатора.DayType];
|
||||
НоваяСтрока.Год = Число(СтрокаКлассификатора.Year);
|
||||
НоваяСтрока.Дата = Дата(СтрокаКлассификатора.Date);
|
||||
Если ЗначениеЗаполнено(СтрокаКлассификатора.SwapDate) Тогда
|
||||
НоваяСтрока.ДатаПереноса = Дата(СтрокаКлассификатора.SwapDate);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат НоваяСтрока;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаполнитьПроизводственныйКалендарь(СправочникОбъект, Выборка)
|
||||
|
||||
СправочникОбъект.Код = СокрЛП(Выборка.Код);
|
||||
|
||||
@@ -441,8 +441,8 @@
|
||||
|
||||
Если СтрокаТаблицы.Пометка И СтрокаТаблицы.Имя = "ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок" Тогда
|
||||
Оповещение = Новый ОписаниеОповещения("РолиПометкаПриИзмененииПослеПодтверждения", ЭтотОбъект);
|
||||
ПараметрыФормы = Новый Структура("Ключ", "ПередВыборомРоли");
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы, , , , , Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередВыборомРоли);
|
||||
|
||||
ИначеЕсли СтандартныеРолиРасширений.Получить(СтрокаТаблицы.Имя) <> Неопределено Тогда
|
||||
СтрокаТаблицы.Пометка = Не СтрокаТаблицы.Пометка;
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<id>181</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Рассылки отчетов могут работать быстрее</value>
|
||||
<value>Рассылки отчетов могут работать быстрее.</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
@@ -55,7 +55,7 @@
|
||||
<key>ru</key>
|
||||
<value>Для рассылки отчетов в несколько потоков, необходимо указать каталог временных файлов кластера серверов 1С:Предприятие.</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>ShowRight</toolTipRepresentation>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ЗаголовокУскорениеРассылокРасширеннаяПодсказка</name>
|
||||
<id>183</id>
|
||||
|
||||
+3
-1
@@ -35,7 +35,9 @@
|
||||
|
||||
Если ЗначениеЗаполнено(ДополнительныеДанныеПроверки) И ТипЗнч(ДополнительныеДанныеПроверки) = Тип("Структура") Тогда
|
||||
|
||||
Элементы.ДекорацияСертификат.Заголовок = ДополнительныеДанныеПроверки.ТекстОшибки;
|
||||
Элементы.ДекорацияСертификат.Заголовок = ?(ЗначениеЗаполнено(ДополнительныеДанныеПроверки.ТекстОшибки),
|
||||
ДополнительныеДанныеПроверки.ТекстОшибки,
|
||||
ДополнительныеДанныеПроверки.ДополнительныеСведения);
|
||||
Если ЗначениеЗаполнено(ДополнительныеДанныеПроверки.Причина) Тогда
|
||||
Элементы.ДекорацияПричина.Заголовок = ДополнительныеДанныеПроверки.Причина;
|
||||
Элементы.ДекорацияПричина.Видимость = Истина;
|
||||
|
||||
+14
@@ -1789,6 +1789,20 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПроверятьСертификат</name>
|
||||
<id>30</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Подписать</name>
|
||||
<title>
|
||||
|
||||
+33
-23
@@ -356,20 +356,26 @@
|
||||
&НаСервере
|
||||
Процедура УстановитьТипПодписи(Знач ПараметрТипПодписи)
|
||||
|
||||
НовыйПараметрТипПодписи = Новый Структура;
|
||||
НовыйПараметрТипПодписи.Вставить("ТипыПодписи", Новый Массив);
|
||||
НовыйПараметрТипПодписи.Вставить("Видимость", Ложь);
|
||||
НовыйПараметрТипПодписи.Вставить("Доступность", Ложь);
|
||||
НовыйПараметрТипПодписи.Вставить("ВыборДоверенности", Ложь);
|
||||
НовыйПараметрТипПодписи.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
|
||||
Если Не ТипЗнч(ПараметрТипПодписи) = Тип("Структура") Тогда
|
||||
|
||||
НовыйПараметрТипПодписи = Новый Структура;
|
||||
НовыйПараметрТипПодписи.Вставить("ТипыПодписи", Новый Массив);
|
||||
НовыйПараметрТипПодписи.Вставить("Видимость", Ложь);
|
||||
НовыйПараметрТипПодписи.Вставить("Доступность", Ложь);
|
||||
НовыйПараметрТипПодписи.Вставить("ВыборДоверенности", Ложь);
|
||||
Если ЗначениеЗаполнено(ПараметрТипПодписи) Тогда
|
||||
НовыйПараметрТипПодписи.ТипыПодписи.Добавить(ПараметрТипПодписи);
|
||||
КонецЕсли;
|
||||
ПараметрТипПодписи = НовыйПараметрТипПодписи;
|
||||
|
||||
Иначе
|
||||
ЗаполнитьЗначенияСвойств(НовыйПараметрТипПодписи, ПараметрТипПодписи);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрТипПодписи = НовыйПараметрТипПодписи;
|
||||
ПроверятьСертификат = ПараметрТипПодписи.ПроверятьСертификат;
|
||||
|
||||
Если ПараметрТипПодписи.ТипыПодписи.Количество() = 0 Тогда
|
||||
|
||||
СписокТипов = Новый СписокЗначений;
|
||||
@@ -797,24 +803,28 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат = Неопределено Или Не Результат Тогда
|
||||
ПредупреждениеОбОшибке = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
|
||||
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки", ПредупреждениеОбОшибке.ТекстОшибки);
|
||||
ДополнительныеДанныеОшибки = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте", ПредупреждениеОбОшибке);
|
||||
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере, ,
|
||||
ДополнительныеДанныеОшибки);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Если ПроверятьСертификат = ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
ПодписатьДанныеПослеПроверкиВыбранногоСертификата(Истина, Контекст);
|
||||
Иначе
|
||||
Если Результат = Неопределено Или Не Результат Тогда
|
||||
ПредупреждениеОбОшибке = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
|
||||
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки", ПредупреждениеОбОшибке.ТекстОшибки);
|
||||
ДополнительныеДанныеОшибки = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте", ПредупреждениеОбОшибке);
|
||||
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере, ,
|
||||
ДополнительныеДанныеОшибки);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметрыПроверок = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметрыПроверок.ПоказатьОшибку = Ложь;
|
||||
ДополнительныеПараметрыПроверок.ДляПроверкиПодписи = Истина;
|
||||
ДополнительныеПараметрыПроверок.ОбъединитьОшибкиДанныхСертификата = Ложь;
|
||||
ДополнительныеПараметрыПроверок.ВыполнятьПроверкуУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат();
|
||||
|
||||
ДополнительныеПараметрыПроверок = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметрыПроверок.ПоказатьОшибку = Ложь;
|
||||
ДополнительныеПараметрыПроверок.ДляПроверкиПодписи = Истина;
|
||||
ДополнительныеПараметрыПроверок.ОбъединитьОшибкиДанныхСертификата = Ложь;
|
||||
ДополнительныеПараметрыПроверок.ВыполнятьПроверкуУдостоверяющегоЦентра = Ложь;
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьСертификат(Новый ОписаниеОповещения(
|
||||
"ПодписатьДанныеПослеПроверкиВыбранногоСертификата", ЭтотОбъект, Контекст),
|
||||
СертификатАдрес,,, ДополнительныеПараметрыПроверок);
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьСертификат(Новый ОписаниеОповещения(
|
||||
"ПодписатьДанныеПослеПроверкиВыбранногоСертификата", ЭтотОбъект, Контекст),
|
||||
СертификатАдрес,,, ДополнительныеПараметрыПроверок);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
+40
@@ -5394,6 +5394,33 @@
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ИгнорироватьПроверкуВСпискеОтозванныхСертификатов</name>
|
||||
<id>48</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ВыполнятьПроверкуУдостоверяющегоЦентра</name>
|
||||
<id>49</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Проверить</name>
|
||||
<title>
|
||||
@@ -5453,6 +5480,19 @@
|
||||
<types>EnumRef.ТипыПодписиКриптографии</types>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>ВыполнятьПроверкуУдостоверяющегоЦентра</name>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>ИгнорироватьПроверкуВСпискеОтозванныхСертификатов</name>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
|
||||
+46
-20
@@ -71,6 +71,11 @@
|
||||
Если ЗначениеЗаполнено(Параметры.ТипПодписи) Тогда
|
||||
ТипПодписи = Параметры.ТипПодписи;
|
||||
КонецЕсли;
|
||||
ИгнорироватьПроверкуВСпискеОтозванныхСертификатов = Параметры.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов;
|
||||
ВыполнятьПроверкуУдостоверяющегоЦентра = Параметры.ВыполнятьПроверкуУдостоверяющегоЦентра;
|
||||
Если ПустаяСтрока(ВыполнятьПроверкуУдостоверяющегоЦентра) Тогда
|
||||
ВыполнятьПроверкуУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные();
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого Проверка Из Проверки Цикл
|
||||
|
||||
@@ -887,7 +892,7 @@
|
||||
|
||||
Если ТипЗнч(Результат) = Тип("МенеджерКриптографии") Тогда
|
||||
ДополнительныеПараметрыПроверок = ЭлектроннаяПодписьСлужебныйКлиент.ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметрыПроверок.ВыполнятьПроверкуУдостоверяющегоЦентра = Ложь;
|
||||
ДополнительныеПараметрыПроверок.ВыполнятьПроверкуУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат();
|
||||
ДополнительныеПараметрыПроверок.ОбъединитьОшибкиДанныхСертификата = Ложь;
|
||||
ДополнительныеПараметрыПроверок.ПроверитьВСервисеПослеОшибки = Ложь;
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьСертификат(Новый ОписаниеОповещения(
|
||||
@@ -1120,7 +1125,7 @@
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеПодписания(ДанныеПодписи, Контекст) Экспорт
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеПодписания(ДанныеПодписи, Контекст)
|
||||
|
||||
Если ДанныеПодписи <> Null Тогда
|
||||
Если ТипЗнч(ДанныеПодписи) = Тип("Строка") Тогда
|
||||
@@ -1864,15 +1869,27 @@
|
||||
ОписаниеОшибки = ЭлектроннаяПодписьСлужебный.ОшибкаСертификатПомеченКакОтозванный();
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
Иначе
|
||||
РезультатПроверкиУЦ = ЭлектроннаяПодписьСлужебный.РезультатПроверкиУдостоверяющегоЦентраСертификата(
|
||||
СертификатКриптографии);
|
||||
Если Не РезультатПроверкиУЦ.Действует Тогда
|
||||
ПодписаниеРазрешено = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||
Сертификат, "РазрешитьПодписание", Неопределено);
|
||||
Если ПодписаниеРазрешено = Неопределено Или Не ПодписаниеРазрешено Тогда
|
||||
ОписаниеОшибки = РезультатПроверкиУЦ.Предупреждение.ТекстОшибки;
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, РезультатПроверкиУЦ.Предупреждение, Истина,
|
||||
ОбъединятьРезультаты);
|
||||
Если ВыполнятьПроверкуУдостоверяющегоЦентра <> ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
ПараметрыПроверки = Новый Структура;
|
||||
ПараметрыПроверки.Вставить("ЭтоПроверкаПодписи", Ложь);
|
||||
ПараметрыПроверки.Вставить("ПроверятьСертификат", ВыполнятьПроверкуУдостоверяющегоЦентра);
|
||||
|
||||
РезультатПроверкиУЦ = ЭлектроннаяПодписьСлужебный.РезультатПроверкиУдостоверяющегоЦентраСертификата(
|
||||
СертификатКриптографии,, ПараметрыПроверки);
|
||||
Если Не РезультатПроверкиУЦ.Действует Тогда
|
||||
|
||||
Если ВыполнятьПроверкуУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные() Тогда
|
||||
ПодписаниеРазрешено = Ложь;
|
||||
Иначе
|
||||
ПодписаниеРазрешено = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||
Сертификат, "РазрешитьПодписание", Неопределено);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПодписаниеРазрешено = Неопределено Или Не ПодписаниеРазрешено Тогда
|
||||
ОписаниеОшибки = РезультатПроверкиУЦ.Предупреждение.ТекстОшибки;
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, РезультатПроверкиУЦ.Предупреждение, Истина,
|
||||
ОбъединятьРезультаты);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -2487,21 +2504,30 @@
|
||||
ОшибкаСертификатПомеченКакОтозванный = ОшибкаСертификатПомеченКакОтозванный();
|
||||
ОписаниеОшибки = ОшибкаСертификатПомеченКакОтозванный.ТекстОшибки;
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", СторонаВыполнения, ОшибкаСертификатПомеченКакОтозванный, Истина, ОбъединятьРезультаты);
|
||||
Иначе
|
||||
ИначеЕсли ВыполнятьПроверкуУдостоверяющегоЦентра <> ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентраСертификата = Ждать ЭлектроннаяПодписьСлужебныйКлиент.РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии);
|
||||
|
||||
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует Тогда
|
||||
ПараметрыПроверки = Новый Структура;
|
||||
ПараметрыПроверки.Вставить("ЭтоПроверкаПодписи", Ложь);
|
||||
ПараметрыПроверки.Вставить("ПроверятьСертификат", ВыполнятьПроверкуУдостоверяющегоЦентра);
|
||||
|
||||
ПодписаниеРазрешено = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
|
||||
Сертификат, "РазрешитьПодписание", Неопределено);
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентраСертификата = Ждать ЭлектроннаяПодписьСлужебныйКлиент.РезультатПроверкиУдостоверяющегоЦентраСертификата(
|
||||
СертификатКриптографии,, ПараметрыПроверки);
|
||||
|
||||
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует Тогда
|
||||
|
||||
Если ВыполнятьПроверкуУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные() Тогда
|
||||
ПодписаниеРазрешено = Ложь;
|
||||
Иначе
|
||||
ПодписаниеРазрешено = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
|
||||
Сертификат, "РазрешитьПодписание", Неопределено);
|
||||
КонецЕсли;
|
||||
Если ПодписаниеРазрешено = Неопределено Или Не ПодписаниеРазрешено Тогда
|
||||
ОписаниеОшибки = РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки;
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", СторонаВыполнения, РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение, Истина,
|
||||
ОбъединятьРезультаты);
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", СторонаВыполнения,
|
||||
РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение, Истина, ОбъединятьРезультаты);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ОписаниеОшибки;
|
||||
|
||||
+22
-8
@@ -1224,14 +1224,28 @@
|
||||
КонецЕсли;
|
||||
|
||||
ВсеСертификаты = Новый Массив;
|
||||
ВсеСертификаты.Добавить(Сертификат);
|
||||
Для Каждого Строка Из СертификатыШифрования Цикл
|
||||
Если Не ЗначениеЗаполнено(Строка.Сертификат)
|
||||
Или ВсеСертификаты.Найти(Строка.Сертификат) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ВсеСертификаты.Добавить(Строка.Сертификат);
|
||||
КонецЦикла;
|
||||
Если ЗначениеЗаполнено(Сертификат) Тогда
|
||||
ВсеСертификаты.Добавить(Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
Если СертификатыШифрования.Количество() > 0 Тогда
|
||||
Для Каждого Строка Из СертификатыШифрования Цикл
|
||||
Если Не ЗначениеЗаполнено(Строка.Сертификат)
|
||||
Или ВсеСертификаты.Найти(Строка.Сертификат) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ВсеСертификаты.Добавить(Строка.Сертификат);
|
||||
КонецЦикла;
|
||||
ИначеЕсли НаборСертификатов.Количество() > 0 Тогда
|
||||
Для Каждого Строка Из НаборСертификатов Цикл
|
||||
Если Не ЗначениеЗаполнено(Строка.АдресДанных)
|
||||
Или ВсеСертификаты.Найти(Строка.АдресДанных) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ВсеСертификаты.Добавить(Строка.АдресДанных);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = Новый Структура("Сертификат", ВсеСертификаты);
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
|
||||
|
||||
BIN
Binary file not shown.
+1
-1
@@ -836,7 +836,7 @@
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
|
||||
<name>КомпонентаExtraCryptoAPI_3_0_2_30</name>
|
||||
<name>КомпонентаExtraCryptoAPI_3_0_3_11</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Компонента ExtraCryptoAPI</value>
|
||||
|
||||
@@ -92,32 +92,6 @@
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСправка</name>
|
||||
<id>54</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСправкаРасширеннаяПодсказка</name>
|
||||
<id>55</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.Help</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПеренестиВсеФайлыВТома</name>
|
||||
<id>75</id>
|
||||
@@ -590,6 +564,10 @@
|
||||
<id>3</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnActivateRow</event>
|
||||
<name>СписокПриАктивизацииСтроки</name>
|
||||
</handlers>
|
||||
<searchStringAddition>
|
||||
<name>СписокСтрокаПоиска</name>
|
||||
<id>66</id>
|
||||
|
||||
@@ -11,13 +11,37 @@
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
Элементы.ПеренестиВсеФайлыВТома.Видимость = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами");
|
||||
|
||||
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
|
||||
Элементы.СписокКомментарий.Видимость = Ложь;
|
||||
Элементы.СписокМаксимальныйРазмер.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
Элементы.ПроверитьЦелостность.Видимость = Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды")
|
||||
Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СписокПриАктивизацииСтроки(Элемент)
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -58,6 +82,38 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ОбновитьКоманды()
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -610,32 +610,6 @@
|
||||
<commandSource>Form</commandSource>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСправка</name>
|
||||
<id>40</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСправкаРасширеннаяПодсказка</name>
|
||||
<id>41</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.Help</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаПроверитьЦелостностьТома</name>
|
||||
<id>48</id>
|
||||
@@ -696,8 +670,38 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСправка</name>
|
||||
<id>40</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСправкаРасширеннаяПодсказка</name>
|
||||
<id>41</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.Help</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnOpen</event>
|
||||
<name>ПриОткрытии</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>BeforeClose</event>
|
||||
<name>ПередЗакрытием</name>
|
||||
@@ -858,6 +862,10 @@
|
||||
<event>AfterWrite</event>
|
||||
<name>ПослеЗаписи</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnReadAtServer</event>
|
||||
<name>ПриЧтенииНаСервере</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>BeforeWrite</event>
|
||||
<name>ПередЗаписью</name>
|
||||
|
||||
@@ -24,7 +24,11 @@
|
||||
<li>После этого в пути к тому указываем <strong>folder</strong>, например <strong>/home/shared</strong>.</li></ul><h3>Просмотр списка файлов в томе</h3>
|
||||
<ul><li>В каждом томе файлы хранятся в подкаталогах. На каждую дату создания версии файла создается свой подкаталог. Все файлы хранятся с оригинальным именем и расширением, между ними добавляется номер версии, например "Приказ.2.txt".
|
||||
</li>
|
||||
<li>Для того чтобы просмотреть <a href="CommonForm.ФайлыВТоме/Help">список файлов в томе</a>, выполните команду <strong>Файлы в томе</strong> на панели навигации тома. </li></ul><h3>См. также:</h3>
|
||||
<li>Для того чтобы просмотреть <a href="CommonForm.ФайлыВТоме/Help">список файлов в томе</a>, выполните команду <strong>Файлы в томе</strong> на панели навигации тома. </li></ul><h3>Удаление лишних файлов из тома</h3>
|
||||
<ul><li>С помощью кнопки панели навигации можно <b>Удалить лишние файлы</b>, которые есть на устройстве, но сведения о них в базе отсутствуют. При этом предусмотрена возможность сохранить такие файлы в указанный каталог. </li>
|
||||
<li>Операция является необратимой. Если необходимо сохранить файлы перед удалением, включите флажок <b>Скопировать файлы перед удалением в папку</b> и укажите путь к папке на компьютере. </li></ul><h3>Проверка целостности тома</h3>
|
||||
<ul><li>Для <a href="Report.ПроверкаЦелостностиТома/Help">проверки целостности данных в томе</a>, а также для поиска пропавших данных предусмотрен соответствующий отчет. Отчет можно открыть с помощью кнопки панели навигации <b>Отчеты</b> - <b>Проверка целостности тома</b>.</li>
|
||||
<li>С помощью отчета выводится общее количество файлов в томе, процент целостных данных, отсутствующих данных и лишних файлов - в числовом виде и в виде диаграммы для наглядности.</li></ul><h3>См. также:</h3>
|
||||
<ul><li>
|
||||
<div><a href="Catalog.ТомаХраненияФайлов/Help">Тома хранения файлов</a>;</div>
|
||||
</li>
|
||||
|
||||
@@ -15,6 +15,18 @@
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
@@ -48,6 +60,28 @@
|
||||
Элементы.Наименование.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх;
|
||||
КонецЕсли;
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
Элементы.ФормаПроверитьЦелостностьТома.Видимость = Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды")
|
||||
Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -81,6 +115,13 @@
|
||||
&НаКлиенте
|
||||
Процедура ПослеЗаписи(ПараметрыЗаписи)
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
Если ПараметрыЗаписи.Свойство("ЗаписатьИЗакрыть") Тогда
|
||||
Закрыть();
|
||||
КонецЕсли;
|
||||
@@ -190,6 +231,37 @@
|
||||
ОткрытьФорму("Справочник.ТомаХраненияФайлов.Форма.УдалениеЛишнихФайловИзТома", ПараметрыОткрытия, ЭтотОбъект);
|
||||
КонецПроцедуры
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ОбновитьКоманды()
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
</li>
|
||||
<li>После переключения режима хранения файлов (например, в значение <strong>В томах на сервере</strong>) все ранее накопленные файлы не перемещаются в тома - только вновь добавленные файлы будут размещаться в соответствии с настройкой. Для того чтобы <a href="DataProcessor.ПереносФайлов/Help">перенести ранее накопленные файлы</a> из информационной базы в тома, воспользуйтесь командой <strong>Перенос файлов в тома</strong>.
|
||||
</li>
|
||||
<li>Для <a href="Report.ПроверкаЦелостностиТома/Help">проверки целостности данных в томе</a>, а также для поиска пропавших данных предусмотрен соответствующий отчет. С помощью отчета выводится общее количество файлов в томе, процент целостных данных, отсутствующих данных и лишних файлов - в числовом виде и в виде диаграммы для наглядности.</li>
|
||||
<li>При работе в распределенной информационной базе (РИБ) способ хранения файлов настраивается независимо в каждом узле. Например, в главном узле могут быть включены тома, а в подчиненных узлах файлы хранятся в информационной базе, или наоборот.</li>
|
||||
<li>Если настраивать в разных узлах одни и те же тома хранения файлов (сетевые каталоги), то это приведет к конфликтам. Также файлы в томе, относящиеся к другим узлам, будут считаться "лишними" и могут быть очищены. </li>
|
||||
<li>Если в главном узле файлы хранятся в томах, то при создании нового узла РИБ вместе с <a href="CommonForm.СозданиеНачальногоОбразаСФайлами/Help">созданием начального образа</a> будет выгружен архив с хранимыми файлами (для этого необходимо указать полное имя архива с файлами томов).
|
||||
|
||||
@@ -31,6 +31,31 @@
|
||||
|
||||
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
|
||||
|
||||
// СтандартныеПодсистемы.ВариантыОтчетов
|
||||
|
||||
// Определяет список команд отчетов.
|
||||
//
|
||||
// Параметры:
|
||||
// КомандыОтчетов - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
|
||||
// Параметры - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры
|
||||
//
|
||||
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
|
||||
|
||||
Если Не ПравоДоступа("Просмотр", Метаданные.Отчеты.ПроверкаЦелостностиТома) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Команда = КомандыОтчетов.Добавить();
|
||||
Команда.КлючВарианта = "Основной";
|
||||
Команда.Представление = НСтр("ru = 'Проверка целостности тома'");
|
||||
Команда.Идентификатор = "ПроверкаЦелостностиТома";
|
||||
Команда.Менеджер = "Отчет.ПроверкаЦелостностиТома";
|
||||
Команда.МножественныйВыбор = Ложь;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ВариантыОтчетов
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -207,6 +207,8 @@
|
||||
ПодписатьФайлыДляОтправкиСохранения(ВыбранноеЗначение, "ОтправкаПисьма");
|
||||
Иначе
|
||||
ПараметрыОтправки = ПараметрыОтправкиПисьма(ВыбранноеЗначение);
|
||||
ОтключитьВыборПолучателей = ВРег(ИсточникВыбора.ИмяФормы) = ВРег("ОбщаяФорма.ПодготовкаНовогоПисьма");
|
||||
ПараметрыОтправки.Вставить("ОтключитьВыборПолучателей", ОтключитьВыборПолучателей);
|
||||
|
||||
МодульРаботаСПочтовымиСообщениямиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСПочтовымиСообщениямиКлиент");
|
||||
МодульРаботаСПочтовымиСообщениямиКлиент.СоздатьНовоеПисьмо(ПараметрыОтправки);
|
||||
@@ -825,8 +827,8 @@
|
||||
КлючНастроек = Строка(ИспользуемыеПараметры.ИсточникДанных.УникальныйИдентификатор()) + "-" + ИспользуемыеПараметры.ПараметрыИсточника.ИдентификаторКоманды;
|
||||
Иначе
|
||||
ИменаМакетов = ИспользуемыеПараметры.ИменаМакетов;
|
||||
Если ТипЗнч(ИменаМакетов) = Тип("Массив") Тогда
|
||||
ИменаМакетов = СтрСоединить(ИменаМакетов, ",");
|
||||
Если ТипЗнч(ИспользуемыеПараметры.ИменаМакетов) = Тип("Массив") Тогда
|
||||
ИменаМакетов = СтрСоединить(ИспользуемыеПараметры.ИменаМакетов, ",");
|
||||
КонецЕсли;
|
||||
|
||||
КлючНастроек = ИспользуемыеПараметры.ИмяМенеджераПечати + "-" + ИменаМакетов;
|
||||
@@ -1879,8 +1881,9 @@
|
||||
ПараметрыФормы.Вставить("РежимОткрытияОкна", РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
ПараметрыФормы.Вставить("ТипМакета", "MXL");
|
||||
ПараметрыФормы.Вставить("КодЯзыка", СтрРазделить(ТекущийЯзык, "_", Истина)[0]);
|
||||
ПараметрыФормы.Вставить("ЭтоПечатнаяФорма", Параметры.ИмяМенеджераПечати = "УправлениеПечатью");
|
||||
|
||||
СтандартныеПодсистемыКлиент.ПоказатьРедакторТабличногоДокумента(Неопределено, ПараметрыФормы);
|
||||
СтандартныеПодсистемыКлиент.ПоказатьРедакторТабличногоДокумента(Неопределено, ПараметрыФормы, , ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -912,6 +912,8 @@
|
||||
ПараметрыОтправки = ПараметрыОтправкиПисьма(ВыбранноеЗначение, Вложения);
|
||||
ОповещениеОЗакрытииФормы = Неопределено;
|
||||
КонецЕсли;
|
||||
ОтключитьВыборПолучателей = ВРег(ИсточникВыбора.ИмяФормы) = ВРег("ОбщаяФорма.ПодготовкаНовогоПисьма");
|
||||
ПараметрыОтправки.Вставить("ОтключитьВыборПолучателей", ОтключитьВыборПолучателей);
|
||||
|
||||
МодульРаботаСПочтовымиСообщениямиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаСПочтовымиСообщениямиКлиент");
|
||||
МодульРаботаСПочтовымиСообщениямиКлиент.СоздатьНовоеПисьмо(ПараметрыОтправки, ОповещениеОЗакрытииФормы);
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
могут нанести вред вашему компьютеру и данным в приложении.
|
||||
|
||||
Вместо открытия внешних отчетов и обработок рекомендуется использовать
|
||||
<link e1cib/list/Справочник.ДополнительныеОтчетыИОбработки>дополнительные</><link e1cib/list/Справочник.ДополнительныеОтчетыИОбработки> отчеты</><link e1cib/list/Справочник.ДополнительныеОтчетыИОбработки> и обработки</> и <link e1cib/app/ОбщаяФорма.Расширения>расширения</>, полученные из надежных источников.
|
||||
<link e1cib/list/Справочник.ДополнительныеОтчетыИОбработки>дополнительные отчеты и обработки</> и <link e1cib/app/ОбщаяФорма.Расширения>расширения</>, полученные из надежных источников.
|
||||
|
||||
См. также: <link http://1c.ru/news/info.jsp?id=21537>Пример проблемы с вирусом во внешней обработке</>.</value>
|
||||
</title>
|
||||
@@ -1460,7 +1460,7 @@
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Если требуется...
|
||||
• обновить расширение, то вместо удаления и добавления нажмите кнопку <b>Обновить</>;
|
||||
• обновить расширение, то вместо удаления и добавления нажмите кнопку <b>Обновить из файла...</>;
|
||||
• временно отключить расширение, следует снять флажок <b>Подключать расширение при входе</>.</value>
|
||||
</title>
|
||||
<formatted>true</formatted>
|
||||
@@ -1723,7 +1723,7 @@
|
||||
<key>ru</key>
|
||||
<value>Ознакомьтесь с документацией по расширению, которую можно получить от поставщика расширения.
|
||||
Если требуется...
|
||||
• обновить расширение, то вместо удаления и добавления нажмите кнопку <b>Обновить</>;
|
||||
• обновить расширение, то вместо удаления и добавления нажмите кнопку <b>Обновить из файла...</>;
|
||||
• временно отключить расширение, следует снять флажок <b>Подключать расширение при входе</>.</value>
|
||||
</title>
|
||||
<formatted>true</formatted>
|
||||
@@ -2417,17 +2417,8 @@
|
||||
<keyParameter>true</keyParameter>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>ИмяФайла</name>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>МножественныйВыбор</name>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<name>ДополнительныйПараметр</name>
|
||||
<valueType/>
|
||||
</parameters>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
|
||||
@@ -10,12 +10,23 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
Если Не ЗначениеЗаполнено(Параметры.Ключ) Тогда
|
||||
ТекстОшибки =
|
||||
ТекстОшибки =
|
||||
НСтр("ru = 'Общая форма ""Предупреждение безопасности"" является вспомогательной и открывается из служебных механизмов приложения.'");
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().Свойство(Параметры.Ключ) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Указан некорректный вид предупреждения безопасности ""%1"".'"),
|
||||
Параметры.Ключ);
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецЕсли;
|
||||
|
||||
КлючНазначенияИспользования = Параметры.Ключ;
|
||||
КлючСохраненияПоложенияОкна = Параметры.Ключ;
|
||||
|
||||
ТекущаяСтраница = Элементы.Найти(Параметры.Ключ);
|
||||
Для Каждого Страница Из Элементы.Страницы.ПодчиненныеЭлементы Цикл
|
||||
Страница.Видимость = (Страница = ТекущаяСтраница);
|
||||
@@ -24,43 +35,46 @@
|
||||
|
||||
Если ТекущаяСтраница = Элементы.ПослеОбновления Тогда
|
||||
Элементы.ЗапретитьОткрытиеВнешнихОтчетовИОбработок.КнопкаПоУмолчанию = Истина;
|
||||
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.ПослеПоявленияПрава Тогда
|
||||
Элементы.ЯОзнакомлен.КнопкаПоУмолчанию = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.ПередОткрытиемФайла Тогда
|
||||
Если ЗначениеЗаполнено(Параметры.ДополнительныйПараметр) Тогда
|
||||
Элементы.ПредупреждениеПриОткрытииФайла.Заголовок =
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
Элементы.ПредупреждениеПриОткрытииФайла.Заголовок,
|
||||
Параметры.ДополнительныйПараметр);
|
||||
КонецЕсли;
|
||||
|
||||
КлючНазначенияИспользования = Параметры.Ключ;
|
||||
КлючСохраненияПоложенияОкна = Параметры.Ключ;
|
||||
|
||||
Если Не ПустаяСтрока(Параметры.ИмяФайла) Тогда
|
||||
Элементы.ПредупреждениеПриОткрытииФайла.Заголовок =
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
Элементы.ПредупреждениеПриОткрытииФайла.Заголовок, Параметры.ИмяФайла);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиРезервноеКопирование.Видимость = Ложь;
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияБезДанныхРезервноеКопирование.Видимость = Ложь;
|
||||
ИначеЕсли ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда
|
||||
МодульРезервноеКопированиеИБСервер = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеИБСервер");
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиРезервноеКопирование.Заголовок =
|
||||
СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = 'Перед удалением расширения рекомендуется
|
||||
|<a href=""%1"">выполнить резервное копирование информационной базы</a>.'"),
|
||||
МодульРезервноеКопированиеИБСервер.НавигационнаяСсылкаОбработкиРезервногоКопирования());
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияБезДанныхРезервноеКопирование.Заголовок =
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиРезервноеКопирование.Заголовок;
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметры.МножественныйВыбор Тогда
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиТекстУдалить.Заголовок = НСтр("ru = 'Удалить выделенные расширения?'");
|
||||
Иначе
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиТекстУдалить.Заголовок = НСтр("ru = 'Удалить расширение?'");
|
||||
КонецЕсли;
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияБезДанныхТекстУдалить.Заголовок =
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиТекстУдалить.Заголовок;
|
||||
|
||||
Если ТекущаяСтраница = Элементы.ПередУдалениемРасширенияСДанными
|
||||
Или ТекущаяСтраница = Элементы.ПередУдалениемРасширенияБезДанных
|
||||
Или ТекущаяСтраница = Элементы.ПередОтключениемРасширенияСДанными Тогда
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.ПередУдалениемРасширенияСДанными
|
||||
Или ТекущаяСтраница = Элементы.ПередУдалениемРасширенияБезДанных
|
||||
Или ТекущаяСтраница = Элементы.ПередОтключениемРасширенияСДанными Тогда
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиРезервноеКопирование.Видимость = Ложь;
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияБезДанныхРезервноеКопирование.Видимость = Ложь;
|
||||
|
||||
ИначеЕсли ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда
|
||||
МодульРезервноеКопированиеИБСервер = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеИБСервер");
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиРезервноеКопирование.Заголовок =
|
||||
СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru = 'Перед удалением расширения рекомендуется
|
||||
|<a href=""%1"">выполнить резервное копирование информационной базы</a>.'"),
|
||||
МодульРезервноеКопированиеИБСервер.НавигационнаяСсылкаОбработкиРезервногоКопирования());
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияБезДанныхРезервноеКопирование.Заголовок =
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиРезервноеКопирование.Заголовок;
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметры.ДополнительныйПараметр = Истина Тогда
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиТекстУдалить.Заголовок =
|
||||
НСтр("ru = 'Удалить выделенные расширения?'");
|
||||
Иначе
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиТекстУдалить.Заголовок =
|
||||
НСтр("ru = 'Удалить расширение?'");
|
||||
КонецЕсли;
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияБезДанныхТекстУдалить.Заголовок =
|
||||
Элементы.ПредупреждениеПередУдалениемРасширенияСДаннымиТекстУдалить.Заголовок;
|
||||
|
||||
Заголовок = НСтр("ru = 'Предупреждение'");
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -155,11 +155,8 @@
|
||||
И ЭтоРасширениеСДанными(ТекущееРасширение.ИдентификаторРасширения) Тогда
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ОтключитьРасширениеПослеПодтверждения", ЭтотОбъект, Контекст);
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("Ключ", "ПередОтключениемРасширенияСДанными");
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередОтключениемРасширенияСДанными);
|
||||
Иначе
|
||||
СписокРасширенийПодключатьПриИзмененииПродолжение(Контекст);
|
||||
КонецЕсли;
|
||||
@@ -296,7 +293,10 @@
|
||||
ПараметрыФормыВопроса.Картинка = БиблиотекаКартинок.ДиалогИнформация;
|
||||
ПараметрыФормыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||
ПараметрыФормыВопроса.Заголовок = НСтр("ru = 'Результат проверки возможности применения всех расширений'");
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, НСтр("ru = 'Проверка возможности применения всех расширений пройдена успешно.'"),РежимДиалогаВопрос.ОК, ПараметрыФормыВопроса);
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено,
|
||||
НСтр("ru = 'Проверка возможности применения всех расширений пройдена успешно.'"),
|
||||
РежимДиалогаВопрос.ОК,
|
||||
ПараметрыФормыВопроса);
|
||||
Иначе
|
||||
Результат.ИнформацияОПроблемах.Показать(НСтр("ru = 'Результат проверки расширений.'"));
|
||||
КонецЕсли;
|
||||
@@ -616,17 +616,12 @@
|
||||
Контекст.Вставить("ИдентификаторыРасширений", ИдентификаторыРасширений);
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("УдалитьРасширениеПослеПодтверждения", ЭтотОбъект, Контекст);
|
||||
ВидПредупреждения = ?(ЕстьРасширениеСДанными(ИдентификаторыРасширений),
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередУдалениемРасширенияСДанными,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередУдалениемРасширенияБезДанных);
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("МножественныйВыбор", ИдентификаторыРасширений.Количество() > 1);
|
||||
|
||||
Если ЕстьРасширениеСДанными(ИдентификаторыРасширений) Тогда
|
||||
ПараметрыФормы.Вставить("Ключ", "ПередУдалениемРасширенияСДанными");
|
||||
Иначе
|
||||
ПараметрыФормы.Вставить("Ключ", "ПередУдалениемРасширенияБезДанных");
|
||||
КонецЕсли;
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение)
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ВидПредупреждения, ИдентификаторыРасширений.Количество() > 1);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -783,11 +778,10 @@
|
||||
Контекст.Вставить("ИдентификаторРасширения", ИдентификаторРасширения);
|
||||
Контекст.Вставить("МножественныйВыбор", МножественныйВыбор);
|
||||
Контекст.Вставить("ВыделенныеСтроки", ИдентификаторРасширения);
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ЗагрузитьРасширениеПослеПодтверждения", ЭтотОбъект, Контекст);
|
||||
|
||||
ПараметрыФормы = Новый Структура("Ключ", "ПередДобавлениемРасширений");
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередДобавлениемРасширений);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1748,7 +1742,10 @@
|
||||
ПараметрыФормыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание;
|
||||
ПараметрыФормыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||
ПараметрыФормыВопроса.Заголовок = НСтр("ru = 'Не все расширения удалось перенастроить'");
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, ИнформацияОбОшибках,РежимДиалогаВопрос.ОК, ПараметрыФормыВопроса);
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено,
|
||||
ИнформацияОбОшибках,
|
||||
РежимДиалогаВопрос.ОК,
|
||||
ПараметрыФормыВопроса);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1832,32 +1829,27 @@
|
||||
Контекст.Вставить("ИдентификаторСтроки", ТекущееРасширение.ПолучитьИдентификатор());
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ОтключитьРасширениеПослеПодтверждения", ЭтотОбъект, Контекст);
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("Ключ", "ПередОтключениемРасширенияСДанными");
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередОтключениемРасширенияСДанными);
|
||||
|
||||
ИначеЕсли СинонимыРасширений.СДанными.Количество() > 0 Тогда
|
||||
|
||||
Если СинонимыРасширений.СДанными.Количество() = 1 Тогда
|
||||
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Среди отключаемых расширений есть расширение, хранящее данные в приложении,
|
||||
|которые станут недоступными. Кроме того, некоторые данные самого приложения
|
||||
|могут тоже стать недоступными для изменения.
|
||||
|
|
||||
|Расширение с данными:
|
||||
| - %1'"),
|
||||
НСтр("ru = 'Среди отключаемых расширений есть расширение, хранящее данные в приложении, которые станут недоступными.
|
||||
|Кроме того, некоторые данные самого приложения могут тоже стать недоступными для изменения.
|
||||
|
|
||||
|Расширение с данными:
|
||||
| - %1'"),
|
||||
СинонимыРасширений.СДанными[0]);
|
||||
Иначе
|
||||
РасширенияСДаннымиТекст = СтрСоединить(СинонимыРасширений.СДанными, Символы.ПС + " - ");
|
||||
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Среди отключаемых расширений есть расширения, хранящие данные в приложении,
|
||||
|которые станут недоступными. Кроме того, некоторые данные самого приложения
|
||||
|могут тоже стать недоступными для изменения.
|
||||
|
|
||||
|Расширения с данными:
|
||||
| - %1'"),
|
||||
НСтр("ru = 'Среди отключаемых расширений есть расширения, хранящие данные в приложении, которые станут недоступными.
|
||||
|Кроме того, некоторые данные самого приложения могут тоже стать недоступными для изменения.
|
||||
|
|
||||
|Расширения с данными:
|
||||
| - %1'"),
|
||||
РасширенияСДаннымиТекст);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
ДополнительныеДанные = Параметры.ДополнительныеДанные;
|
||||
|
||||
Если ЗначениеЗаполнено(ДополнительныеДанные) Тогда
|
||||
ОшибкаПроверкиПодписи = ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "ДанныеПодписи", Ложь));
|
||||
ОшибкаПроверкиПодписи = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "ДанныеПодписи", Ложь) = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.ИнформацияДляПоддержки) Тогда
|
||||
@@ -393,18 +393,22 @@
|
||||
Если ТипЗнч(Сертификат) = Тип("Массив") Тогда
|
||||
Если Сертификат.Количество() > 0 Тогда
|
||||
Если ТипЗнч(Сертификат[0]) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат[0];
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат[0], УникальныйИдентификатор);
|
||||
Иначе
|
||||
Если ЗначениеЗаполнено(Сертификат[0]) Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат[0];
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат[0], УникальныйИдентификатор);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ЭтоАдресВременногоХранилища(Сертификат[0]) Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = Сертификат[0];
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат;
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат, УникальныйИдентификатор);
|
||||
Если ЗначениеЗаполнено(Сертификат) Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат;
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат, УникальныйИдентификатор);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ПоместитьВоВременноеХранилище(Сертификат, УникальныйИдентификатор);
|
||||
Иначе
|
||||
ИначеЕсли ЭтоАдресВременногоХранилища(Сертификат) Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = Сертификат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -139,8 +139,7 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Индекс - Число - почтовый индекс, для которого необходимо получать данные.
|
||||
// ДополнительныеПараметры - Структура - описание настроек поиска. Поля:
|
||||
// * ФорматАдреса - Строка - тип используемого классификатора.
|
||||
// ДополнительныеПараметры - Структура - см. ПараметрыПоискаАдресовПоПочтовомуИндексу
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - найденные варианты. Содержит поля:
|
||||
@@ -155,20 +154,24 @@
|
||||
// ** Идентификатор - УникальныйИдентификатор - код классификатора для поиска вариантов по индексу.
|
||||
// ** Представление - Строка - представление варианта.
|
||||
//
|
||||
Функция АдресаПоПочтовомуИндексуКлассификатора(Индекс, ДополнительныеПараметры) Экспорт
|
||||
Функция АдресаПоПочтовомуИндексу(Индекс, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Данные", ТаблицаДанныхДляВыбораПоПочтовомуИндексу());
|
||||
Результат.Вставить("ОбщаяЧастьПредставления", "");
|
||||
Результат.Вставить("ЭтоДанныеСВебСервиса", Ложь);
|
||||
|
||||
СтруктураОписанияОшибкиПоставщика(Результат);
|
||||
|
||||
ЗаполнитьАдресаПоПочтовомуИндексуИзЗагруженныхДанных(Результат, Индекс, ДополнительныеПараметры);
|
||||
Если Не ДополнительныеПараметры.ПоискТолькоВВебСервисе Тогда
|
||||
ЗаполнитьАдресаПоПочтовомуИндексуИзЗагруженныхДанных(Результат, Индекс, ДополнительныеПараметры);
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.Данные.Количество() = 0 И Не Результат.Отказ Тогда
|
||||
|
||||
Попытка
|
||||
ЗаполнитьАдресаПоПочтовомуИндексуКлассификатораСервис1С(Результат, Индекс);
|
||||
ЗаполнитьАдресаПоПочтовомуИндексуКлассификатораСервис1С(Результат, Индекс, ДополнительныеПараметры.ПодстрокаПоиска);
|
||||
Результат.ЭтоДанныеСВебСервиса = Истина;
|
||||
Исключение
|
||||
СтруктураОписанияОшибкиПоставщика(Результат, ИнформацияОбОшибке());
|
||||
ЗаписьЖурналаРегистрации( СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , ,
|
||||
@@ -180,6 +183,25 @@
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
// Возвращает настройки по умолчанию для поиска адресов по почтовому индексу классификатора.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - описание настроек поиска. Содержит поля:
|
||||
// * ТипАдреса - Строка - тип используемого классификатора.
|
||||
// * ПодстрокаПоиска - Строка - для уточнения поиска адресов.
|
||||
// * ПоискТолькоВВебСервисе - Булево - если Истина, то поиск будет происходить только по данным из веб сервиса.
|
||||
//
|
||||
Функция ПараметрыПоискаАдресовПоПочтовомуИндексу() Экспорт
|
||||
|
||||
Настройки = Новый Структура;
|
||||
Настройки.Вставить("ТипАдреса", "");
|
||||
Настройки.Вставить("ПодстрокаПоиска", "");
|
||||
Настройки.Вставить("ПоискТолькоВВебСервисе", Ложь);
|
||||
|
||||
Возврат Настройки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Определить регион по индексу.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -6839,11 +6861,13 @@
|
||||
|
||||
// Заполнение адреса по данным сервиса 1С.
|
||||
//
|
||||
Процедура ЗаполнитьАдресаПоПочтовомуИндексуКлассификатораСервис1С(Результат, Индекс)
|
||||
Процедура ЗаполнитьАдресаПоПочтовомуИндексуКлассификатораСервис1С(Результат, Индекс, ПодстрокаПоиска)
|
||||
|
||||
ТекстGETЗапроса = "selectByCode?code=%ZipCode%&text=%Text%&codeType=POSTAL_CODE";
|
||||
|
||||
ТекстGETЗапроса = "selectByCode?code=%ZipCode%&codeType=POSTAL_CODE";
|
||||
ТекстGETЗапроса = СтрЗаменить(ТекстGETЗапроса, "%ZipCode%", Формат(Индекс, "ЧГ=0"));
|
||||
|
||||
ТекстGETЗапроса = СтрЗаменить(ТекстGETЗапроса, "%Text%", ПодстрокаПоиска);
|
||||
|
||||
РезультатВебСервис = ВыполнитьЗапросЧерезВебСервис(ТекстGETЗапроса);
|
||||
|
||||
Если РезультатВебСервис.Отказ Тогда
|
||||
|
||||
@@ -1739,9 +1739,10 @@
|
||||
//
|
||||
Процедура УдалитьЭлементыФормыЗаполнения(Форма, УдаляемыеРеквизиты)
|
||||
|
||||
КоличествоСимволовДоПостфикса = АнкетированиеКлиентСервер.КоличествоСимволовВИмениВопросаБезПостфикса();
|
||||
Для Каждого УдаляемыйРеквизит Из УдаляемыеРеквизиты Цикл
|
||||
|
||||
ИмяВопроса = Лев(УдаляемыйРеквизит.Значение, 43);
|
||||
ИмяВопроса = Лев(УдаляемыйРеквизит.Значение, КоличествоСимволовДоПостфикса);
|
||||
|
||||
НайденныйЭлементФормы = Форма.Элементы.Найти(ИмяВопроса + "_Группа");
|
||||
|
||||
|
||||
@@ -203,9 +203,10 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриИзмененииВопросаСВариантамиОтветов(Форма, ИмяВопроса)
|
||||
|
||||
НайденныеСтроки = Форма.ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("КлючСтроки",
|
||||
Новый УникальныйИдентификатор(СтрЗаменить(Прав(Лев(ИмяВопроса, 43), 36), "_", "-"))));
|
||||
|
||||
КоличествоСимволовДоПостфикса = АнкетированиеКлиентСервер.КоличествоСимволовВИмениВопросаБезПостфикса();
|
||||
ИдентификаторСтроки = Новый УникальныйИдентификатор(СтрЗаменить(Прав(Лев(ИмяВопроса, КоличествоСимволовДоПостфикса), 36), "_", "-"));
|
||||
НайденныеСтроки = Форма.ТаблицаВопросовРаздела.НайтиСтроки(Новый Структура("КлючСтроки", ИдентификаторСтроки));
|
||||
|
||||
Если НайденныеСтроки.Количество() > 0 Тогда
|
||||
Вопрос = НайденныеСтроки[0];
|
||||
@@ -221,16 +222,20 @@
|
||||
Процедура ПриИзмененииВопросаСВыборомОдногоВариантаОтвета(Форма, Вопрос, ИмяВопроса)
|
||||
|
||||
ВариантыОтветов = Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос", Вопрос.ЭлементарныйВопрос));
|
||||
КоличествоСимволовДоПостфикса = АнкетированиеКлиентСервер.КоличествоСимволовВИмениВопросаБезПостфикса();
|
||||
|
||||
Для инд = 1 По ВариантыОтветов.Количество() Цикл
|
||||
Если Форма[ИмяВопроса] = ВариантыОтветов[инд - 1].Ответ Тогда
|
||||
Форма.Элементы[Лев(ИмяВопроса, 43) + "_РасшифровкаПодсказки"].Заголовок = ВариантыОтветов[инд - 1].Подсказка;
|
||||
ИмяЭлемента = Лев(ИмяВопроса, КоличествоСимволовДоПостфикса) + "_РасшифровкаПодсказки";
|
||||
Форма.Элементы[ИмяЭлемента].Заголовок = ВариантыОтветов[инд - 1].Подсказка;
|
||||
Иначе
|
||||
Форма[Лев(ИмяВопроса, 43) + "_Реквизит_" + инд] = Неопределено;
|
||||
ИмяРеквизита = Лев(ИмяВопроса, КоличествоСимволовДоПостфикса) + "_Реквизит_" + инд;
|
||||
Форма[ИмяРеквизита] = Неопределено;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Вопрос.Обязательный Тогда
|
||||
НаименованиеГруппы = Лев(ИмяВопроса, 43) + "_Группа";
|
||||
НаименованиеГруппы = Лев(ИмяВопроса, КоличествоСимволовДоПостфикса) + "_Группа";
|
||||
ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -239,16 +244,17 @@
|
||||
Процедура ПриИзмененииВопросаСВыборомНесколькихВариантовОтвета(Форма, Вопрос, ИмяВопроса)
|
||||
|
||||
ВариантыОтветов = Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос", Вопрос.ЭлементарныйВопрос));
|
||||
КоличествоСимволовДоПостфикса = АнкетированиеКлиентСервер.КоличествоСимволовВИмениВопросаБезПостфикса();
|
||||
ЕстьОтвет = Ложь;
|
||||
Для инд = 1 По ВариантыОтветов.Количество() Цикл
|
||||
Если Форма[Лев(ИмяВопроса, 43) + "_Реквизит_" + инд] Тогда
|
||||
Если Форма[Лев(ИмяВопроса, КоличествоСимволовДоПостфикса) + "_Реквизит_" + инд] Тогда
|
||||
ЕстьОтвет = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Вопрос.Обязательный Тогда
|
||||
НаименованиеГруппы = Лев(ИмяВопроса, 43) + "_Группа";
|
||||
НаименованиеГруппы = Лев(ИмяВопроса, КоличествоСимволовДоПостфикса) + "_Группа";
|
||||
ИзменитьЦветФонаГруппыОбязательногоВопроса(Форма.Элементы[НаименованиеГруппы].ЦветФона, ЕстьОтвет);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -312,18 +318,20 @@
|
||||
Функция ЕстьОтветНаВопросСВыборомОтветов(Форма, Вопрос, ИмяВопроса)
|
||||
|
||||
ВариантыОтветов = Форма.ВариантыОтветовНаВопросы.НайтиСтроки(Новый Структура("Вопрос", Вопрос.ЭлементарныйВопрос));
|
||||
|
||||
КоличествоСимволовДоПостфикса = АнкетированиеКлиентСервер.КоличествоСимволовВИмениВопросаБезПостфикса();
|
||||
Если Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.ОдинВариантИз") Тогда
|
||||
Для инд = 1 По ВариантыОтветов.Количество() Цикл
|
||||
Если ЗначениеЗаполнено(Форма[ИмяВопроса + "_Реквизит_" + инд]) Тогда
|
||||
Форма.Элементы[Лев(ИмяВопроса, 43) + "_РасшифровкаПодсказки"].Заголовок = ВариантыОтветов[инд
|
||||
ИмяЭлемента = Лев(ИмяВопроса, КоличествоСимволовДоПостфикса) + "_РасшифровкаПодсказки";
|
||||
Форма.Элементы[ИмяЭлемента].Заголовок = ВариантыОтветов[инд
|
||||
- 1].Подсказка;
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
ИначеЕсли Вопрос.ТипОтвета = ПредопределенноеЗначение("Перечисление.ТипыОтветовНаВопрос.НесколькоВариантовИз") Тогда
|
||||
Для инд = 1 По ВариантыОтветов.Количество() Цикл
|
||||
Если Форма[Лев(ИмяВопроса, 43) + "_Реквизит_" + инд] Тогда
|
||||
ИмяРеквизита = Лев(ИмяВопроса, КоличествоСимволовДоПостфикса) + "_Реквизит_" + инд;
|
||||
Если Форма[ИмяРеквизита] Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -50,6 +50,15 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КоличествоСимволовВИмениВопросаБезПостфикса() Экспорт
|
||||
|
||||
КоличествоСимволовВПрефиксе = СтрДлина(ИмяВопроса(""));
|
||||
КоличествоСимволовВИдентификаторе = 36;
|
||||
|
||||
Возврат КоличествоСимволовВПрефиксе + КоличествоСимволовВИдентификаторе;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура СформироватьНумерациюДерева(ДеревоАнкеты, ПреобразовыватьФормулировку = Ложь) Экспорт
|
||||
|
||||
Если ДеревоАнкеты.ПолучитьЭлементы()[0].ТипСтроки = "Корень" Тогда
|
||||
|
||||
@@ -1244,8 +1244,8 @@
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.
|
||||
Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт
|
||||
|
||||
ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ИсполнителиЗадач.ПолноеИмя());
|
||||
ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ДанныеБизнесПроцессов.ПолноеИмя());
|
||||
ИсключенияПоискаСсылок.Добавить(Метаданные.Справочники.ГруппыИсполнителейЗадач.ПолноеИмя());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -5312,13 +5312,16 @@
|
||||
Запрос.УстановитьПараметр("СообщениеSMS", СообщениеSMS.Ссылка);
|
||||
|
||||
ЕстьИзменения = Ложь;
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Адресаты = Запрос.Выполнить().Выгрузить();
|
||||
ИдентификаторыСообщений = Адресаты.ВыгрузитьКолонку("ИдентификаторСообщения");
|
||||
СтатусыДоставки = ОтправкаSMS.СтатусыДоставки(ИдентификаторыСообщений);
|
||||
|
||||
Для Каждого Адресат Из Адресаты Цикл
|
||||
|
||||
СостояниеСообщения = СостояниеСообщенияSMSСогласноСтатусуДоставки(ОтправкаSMS.СтатусДоставки(Выборка.ИдентификаторСообщения));
|
||||
СостояниеСообщения = СостояниеСообщенияSMSСогласноСтатусуДоставки(СтатусыДоставки[Адресат.ИдентификаторСообщения]);
|
||||
|
||||
Если СостояниеСообщения <> Выборка.СостояниеСообщения Тогда
|
||||
СообщениеSMS.Адресаты[Выборка.НомерСтроки - 1].СостояниеСообщения = СостояниеСообщения;
|
||||
Если СостояниеСообщения <> Адресат.СостояниеСообщения Тогда
|
||||
СообщениеSMS.Адресаты[Адресат.НомерСтроки - 1].СостояниеСообщения = СостояниеСообщения;
|
||||
ЕстьИзменения = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -5535,20 +5538,27 @@
|
||||
НомераДляОтправки = ТаблицаАдресатовСообщения.ВыгрузитьКолонку("НомерДляОтправки");
|
||||
Попытка
|
||||
РезультатОтправки = ОтправкаSMS.ОтправитьSMS(НомераДляОтправки, ТекстСообщения, "", ОтправлятьВТранслите);
|
||||
Если РезультатОтправки.ОтправленныеСообщения.Количество() = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось отправить %1 по причине:
|
||||
|%2'"),
|
||||
ВыборкаДокументы.Ссылка, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Предупреждение, МетаданныеДокумента, ВыборкаДокументы.Ссылка,
|
||||
УровеньЖурналаРегистрации.Ошибка, МетаданныеДокумента, ВыборкаДокументы.Ссылка,
|
||||
ТекстСообщения);
|
||||
Продолжить;
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(РезультатОтправки.ОписаниеОшибки) Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось отправить %1 по причине:
|
||||
|%2'"),
|
||||
РезультатОтправки.ОписаниеОшибки);
|
||||
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Ошибка, МетаданныеДокумента, ВыборкаДокументы.Ссылка,
|
||||
ТекстСообщения);
|
||||
КонецЕсли;
|
||||
|
||||
ПредставлениеДокумента = Строка(ВыборкаДокументы.Ссылка);
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
@@ -5624,29 +5634,48 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВыборкаДокументы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||||
ОбрабатываемыеДокументы = Новый Соответствие;
|
||||
ИдентификаторыСообщений = Новый Массив;
|
||||
|
||||
ВыборкаДокументы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||||
Пока ВыборкаДокументы.Следующий() Цикл
|
||||
ОбрабатываемыеДокументы[ВыборкаДокументы.Ссылка] = Новый Массив;
|
||||
ВыборкаИдентификаторы = ВыборкаДокументы.Выбрать();
|
||||
Пока ВыборкаИдентификаторы.Следующий() Цикл
|
||||
Адресаты = Новый Структура;
|
||||
Адресаты.Вставить("НомерСтроки");
|
||||
Адресаты.Вставить("ИдентификаторСообщения");
|
||||
Адресаты.Вставить("СостояниеСообщения");
|
||||
ЗаполнитьЗначенияСвойств(Адресаты, ВыборкаИдентификаторы);
|
||||
ОбрабатываемыеДокументы[ВыборкаДокументы.Ссылка].Добавить(Адресаты);
|
||||
ИдентификаторыСообщений.Добавить(Адресаты.ИдентификаторСообщения);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
СтатусыДоставки = ОтправкаSMS.СтатусыДоставки(ИдентификаторыСообщений);
|
||||
|
||||
Для Каждого ОбрабатываемыйДокумент Из ОбрабатываемыеДокументы Цикл
|
||||
Ссылка = ОбрабатываемыйДокумент.Ключ;
|
||||
Адресаты = ОбрабатываемыйДокумент.Значение;
|
||||
|
||||
ТаблицаИзменившихсяСтатусов.Очистить();
|
||||
ПредставлениеДокумента = ОбщегоНазначения.ПредметСтрокой(ВыборкаДокументы.Ссылка);
|
||||
ПредставлениеДокумента = ОбщегоНазначения.ПредметСтрокой(Ссылка);
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить(МетаданныеДокумента.ПолноеИмя());
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВыборкаДокументы.Ссылка);
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
ВыборкаИдентификаторы = ВыборкаДокументы.Выбрать();
|
||||
Пока ВыборкаИдентификаторы.Следующий() Цикл
|
||||
Для Каждого Адресат Из Адресаты Цикл
|
||||
|
||||
СостояниеСообщения = СостояниеСообщенияSMSСогласноСтатусуДоставки(ОтправкаSMS.СтатусДоставки(ВыборкаИдентификаторы.ИдентификаторСообщения));
|
||||
СостояниеСообщения = СостояниеСообщенияSMSСогласноСтатусуДоставки(СтатусыДоставки[Адресат.ИдентификаторСообщения]);
|
||||
|
||||
Если СостояниеСообщения <> ВыборкаИдентификаторы.СостояниеСообщения Тогда
|
||||
Если СостояниеСообщения <> Адресат.СостояниеСообщения Тогда
|
||||
НоваяСтрока = ТаблицаИзменившихсяСтатусов.Добавить();
|
||||
НоваяСтрока.НомерСтроки = ВыборкаИдентификаторы.НомерСтроки;
|
||||
НоваяСтрока.НомерСтроки = Адресат.НомерСтроки;
|
||||
НоваяСтрока.СостояниеСообщения = СостояниеСообщения;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -5657,7 +5686,7 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ДокументОбъект = ВыборкаДокументы.Ссылка.ПолучитьОбъект();
|
||||
ДокументОбъект = Ссылка.ПолучитьОбъект();
|
||||
|
||||
Для Каждого ИзменившийсяСтатус Из ТаблицаИзменившихсяСтатусов Цикл
|
||||
ДокументОбъект.Адресаты[ИзменившийсяСтатус.НомерСтроки - 1].СостояниеСообщения = ИзменившийсяСтатус.СостояниеСообщения;
|
||||
@@ -5676,7 +5705,7 @@
|
||||
НСтр("ru = 'Не удалось обновить статусы доставки %1 по причине: %2'"),
|
||||
ПредставлениеДокумента, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Предупреждение, МетаданныеДокумента, ВыборкаДокументы.Ссылка,
|
||||
УровеньЖурналаРегистрации.Предупреждение, МетаданныеДокумента, Ссылка,
|
||||
ТекстСообщения);
|
||||
|
||||
КонецПопытки;
|
||||
@@ -5693,12 +5722,18 @@
|
||||
//
|
||||
Процедура ОтразитьРезультатыОтправкиSMSВДокументе(ДокументОбъект, РезультатОтправки)
|
||||
|
||||
ОтправленныеСообщения = Новый Соответствие;
|
||||
Для Каждого ОтправленноеСообщение Из РезультатОтправки.ОтправленныеСообщения Цикл
|
||||
Для Каждого НайденнаяСтрока Из ДокументОбъект.Адресаты.НайтиСтроки(
|
||||
Новый Структура("НомерДляОтправки", ОтправленноеСообщение.НомерПолучателя)) Цикл
|
||||
НайденнаяСтрока.ИдентификаторСообщения = ОтправленноеСообщение.ИдентификаторСообщения;
|
||||
НайденнаяСтрока.СостояниеСообщения = Перечисления.СостоянияСообщенияSMS.ОтправляетсяПровайдером;
|
||||
КонецЦикла;
|
||||
ОтправленныеСообщения[ОтправленноеСообщение.НомерПолучателя] = ОтправленноеСообщение.ИдентификаторСообщения;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Адресат Из ДокументОбъект.Адресаты Цикл
|
||||
Адресат.ИдентификаторСообщения = ОтправленныеСообщения[Адресат.НомерДляОтправки];
|
||||
Если ЗначениеЗаполнено(Адресат.ИдентификаторСообщения) Тогда
|
||||
Адресат.СостояниеСообщения = Перечисления.СостоянияСообщенияSMS.ОтправляетсяПровайдером;
|
||||
Иначе
|
||||
Адресат.СостояниеСообщения = Перечисления.СостоянияСообщенияSMS.НеДоставлено;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
ДокументОбъект.Состояние = СостояниеДокументаСообщениеSMS(ДокументОбъект);
|
||||
|
||||
@@ -726,9 +726,19 @@
|
||||
// Выполнить в фоне.
|
||||
БезопасныйРежим = БезопасныйРежим();
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
Задание = ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяПроцедуры,
|
||||
ПараметрыВыполнения, ПараметрыЭкспортнойПроцедуры, БезопасныйРежим,
|
||||
ПараметрыВыполнения.ОжидатьЗавершение <> Неопределено);
|
||||
Попытка
|
||||
Задание = ЗапуститьФоновоеЗаданиеСКонтекстомКлиента(ИмяПроцедуры,
|
||||
ПараметрыВыполнения, ПараметрыЭкспортнойПроцедуры, БезопасныйРежим,
|
||||
ПараметрыВыполнения.ОжидатьЗавершение <> Неопределено);
|
||||
Исключение
|
||||
Результат.Статус = "Ошибка";
|
||||
Если Задание <> Неопределено И Задание.ИнформацияОбОшибке <> Неопределено Тогда
|
||||
УстановитьСвойстваОшибки(Результат, Задание.ИнформацияОбОшибке);
|
||||
Иначе
|
||||
УстановитьСвойстваОшибки(Результат, ИнформацияОбОшибке());
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецПопытки;
|
||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||
|
||||
Если Задание <> Неопределено И Задание.ИнформацияОбОшибке <> Неопределено Тогда
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
НастройкиОжидания.ВыводитьОкноОжидания = Истина;
|
||||
НастройкиОжидания.ПолучатьРезультат = ПолучатьРезультат; // для обратной совместимости
|
||||
НастройкиОжидания.ВыводитьСообщения = Истина;
|
||||
НастройкиОжидания.ВыводитьПрогрессВыполнения = Истина;
|
||||
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, Обработчик, НастройкиОжидания);
|
||||
|
||||
|
||||
@@ -2236,22 +2236,30 @@
|
||||
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
|
||||
МодульИнтеграцияПодсистемБИП.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
||||
МодульСертификатыЭлектроннойПодписи = ОбщегоНазначения.ОбщийМодуль("Отчеты.СертификатыЭлектроннойПодписи");
|
||||
МодульСертификатыЭлектроннойПодписи.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS") Тогда
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
МодульСервисКриптографииDSSСлужебный.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
|
||||
МодульПроверкаЦелостностиТома = ОбщегоНазначения.ОбщийМодуль("Отчеты.ПроверкаЦелостностиТома");
|
||||
МодульПроверкаЦелостностиТома.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
|
||||
МодульОбъемНенужныхФайлов = ОбщегоНазначения.ОбщийМодуль("Отчеты.ОбъемНенужныхФайлов");
|
||||
МодульОбъемНенужныхФайлов.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РассылкаОтчетов") Тогда
|
||||
МодульКонтрольРассылкиОтчетов = ОбщегоНазначения.ОбщийМодуль("Отчеты.КонтрольРассылкиОтчетов");
|
||||
МодульКонтрольРассылкиОтчетов.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
||||
МодульСертификатыЭлектроннойПодписи = ОбщегоНазначения.ОбщийМодуль("Отчеты.СертификатыЭлектроннойПодписи");
|
||||
МодульСертификатыЭлектроннойПодписи.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.
|
||||
@@ -4918,6 +4926,8 @@
|
||||
МодульЗащитаПерсональныхДанных.ПриОпределенииНастроекРегламентныхЗаданий(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
ОбновлениеИнформационнойБазыСлужебный.ПриОпределенииНастроекРегламентныхЗаданий(Настройки);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда
|
||||
МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер");
|
||||
МодульОбменДаннымиСервер.ПриОпределенииНастроекРегламентныхЗаданий(Настройки);
|
||||
|
||||
@@ -721,7 +721,8 @@
|
||||
|
||||
ДанныеПроизводственныхКалендарей = Новый Структура(Новый ФиксированнаяСтруктура(ПроизводственныеКалендари));
|
||||
ПериодыНерабочихДней = Новый Структура(Новый ФиксированнаяСтруктура(ПроизводственныеКалендари));
|
||||
|
||||
|
||||
ДанныеКлассификатора.Вставить("ДанныеПроизводственныхКалендарей", ДанныеПроизводственныхКалендарей);
|
||||
ДанныеКлассификатора.Вставить("ПроизводственныеКалендари", ПроизводственныеКалендари);
|
||||
ДанныеКлассификатора.Вставить("ПериодыНерабочихДней", ПериодыНерабочихДней);
|
||||
|
||||
|
||||
@@ -657,7 +657,10 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ТаблицаФормы.УстановитьДействие("Выбор", "Подключаемый_Выбор");
|
||||
ТекущееДействие = ТаблицаФормы.ПолучитьДействие("Выбор");
|
||||
Если Не ЗначениеЗаполнено(ТекущееДействие) Тогда
|
||||
ТаблицаФормы.УстановитьДействие("Выбор", "Подключаемый_Выбор");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
@@ -2867,12 +2867,14 @@
|
||||
|
||||
Если ЗначениеЗаполнено(СтрокаОтвета) Тогда
|
||||
СтрокаПоискаОшибки = СтрокаЗапроса + "|" + СтрокаОтвета;
|
||||
Иначе
|
||||
СтрокаПоискаОшибки = ТекстОшибки;
|
||||
ОшибкаПоКлассификатору = ЭлектроннаяПодпись.ОшибкаПоКлассификатору(СтрокаПоискаОшибки, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
ОшибкаПоКлассификатору = ЭлектроннаяПодпись.ОшибкаПоКлассификатору(СтрокаПоискаОшибки, Истина);
|
||||
|
||||
Если ОшибкаПоКлассификатору = Неопределено Тогда
|
||||
СтрокаПоискаОшибки = ТекстОшибки;
|
||||
ОшибкаПоКлассификатору = ЭлектроннаяПодпись.ОшибкаПоКлассификатору(СтрокаПоискаОшибки, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураЗначения.Вставить("СтрокаПоискаОшибки", СтрокаПоискаОшибки);
|
||||
СтруктураЗначения.Вставить("ОшибкаПоКлассификаторуНайдена", ОшибкаПоКлассификатору <> Неопределено);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.10.256";
|
||||
Описание.Версия = "3.1.10.277";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -386,6 +386,8 @@
|
||||
Схема.Параметры.Найти("ПервыйОбменВРИБ").Значение = ПараметрыОтбора.ПервыйОбменВРИБ;
|
||||
Схема.Параметры.Найти("ЭтоРИБСФильтром").Значение = СтандартныеПодсистемыПовтИсп.ИспользуетсяРИБ("СФильтром");
|
||||
КонецЕсли;
|
||||
Схема.Параметры.Найти("ИдентификаторОбработчикаОчисткиУстаревшихДанных").Значение =
|
||||
ИдентификаторОбработчикаОчисткиУстаревшихДанных();
|
||||
|
||||
Компоновщик = Новый КомпоновщикМакетаКомпоновкиДанных;
|
||||
Макет = Компоновщик.Выполнить(Схема, Схема.НастройкиПоУмолчанию, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
|
||||
@@ -857,6 +859,7 @@
|
||||
// * СеансОбновления - Структура
|
||||
// * ОписаниеПотоков - см. НовоеОписаниеПотоковРегистрацииДанныхОтложенногоОбновления
|
||||
// * ВерсияУдалениеПатчей - Строка
|
||||
// * ВерсияПроверкиПатчей - Строка
|
||||
// * ДлительностьЭтаповОбновления - Структура:
|
||||
// ** Критичные - Структура:
|
||||
// *** Начало - Дата
|
||||
@@ -1615,6 +1618,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий
|
||||
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
|
||||
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ОчисткаУстаревшихДанных;
|
||||
Настройка.Параметризуется = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ЦентрМониторингаПереопределяемый.ПриСбореПоказателейСтатистикиКонфигурации.
|
||||
Процедура ПриСбореПоказателейСтатистикиКонфигурации() Экспорт
|
||||
|
||||
@@ -1689,18 +1701,19 @@
|
||||
|
||||
Если Пользователи.ЭтоПолноправныйПользователь(, Истина)
|
||||
И Не ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы()
|
||||
И Не ОбщегоНазначения.РазделениеВключено()
|
||||
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
|
||||
Значение = ОбщегоНазначения.ХранилищеСистемныхНастроекЗагрузить("ПроверкаПатчей", "НомерВерсии");
|
||||
Если Значение = Неопределено
|
||||
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Метаданные.Версия, Значение) > 0 Тогда
|
||||
Сведения = СведенияОбОбновленииИнформационнойБазы();
|
||||
ВерсияПроверкиПатчей = Сведения.ВерсияПроверкиПатчей;
|
||||
Если ВерсияПроверкиПатчей = Неопределено
|
||||
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Метаданные.Версия, ВерсияПроверкиПатчей) > 0 Тогда
|
||||
МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации");
|
||||
Результат = МодульОбновлениеКонфигурации.ИсправленияИзменены();
|
||||
ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить("ПроверкаПатчей", "НомерВерсии", Метаданные.Версия);
|
||||
Сведения.ВерсияПроверкиПатчей = Метаданные.Версия;
|
||||
Если Результат.ЕстьИзменения Тогда
|
||||
Сведения = СведенияОбОбновленииИнформационнойБазы();
|
||||
Сведения.ВерсияУдалениеПатчей = Метаданные.Версия;
|
||||
ЗаписатьСведенияОбОбновленииИнформационнойБазы(Сведения);
|
||||
КонецЕсли;
|
||||
ЗаписатьСведенияОбОбновленииИнформационнойБазы(Сведения);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1733,6 +1746,19 @@
|
||||
Обработчик.РежимВыполнения = "Оперативно";
|
||||
КонецЕсли;
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = СтандартныеПодсистемыСервер.ВерсияБиблиотеки(); // Не влияет на выбор для выполнения.
|
||||
Обработчик.Процедура = "ОбновлениеИнформационнойБазыСлужебный.ОчиститьУстаревшиеДанныеПолностью";
|
||||
Обработчик.РежимВыполнения = "Отложенно";
|
||||
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
|
||||
Обработчик.Идентификатор = ИдентификаторОбработчикаОчисткиУстаревшихДанных();
|
||||
Обработчик.ПроцедураЗаполненияДанныхОбновления = "ОбновлениеИнформационнойБазыСлужебный.ПустаяПроцедураРегистрации";
|
||||
Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Некритичный;
|
||||
Обработчик.ЧитаемыеОбъекты = "РегистрСведений.ОбработчикиОбновления";
|
||||
Обработчик.ИзменяемыеОбъекты = "РегистрСведений.ОбработчикиОбновления";
|
||||
Обработчик.Комментарий =
|
||||
НСтр("ru = 'Очищает устаревшие данные, чтобы переход на следующую версию при реструктуризации был без ошибки ""Записи регистра стали неуникальными"".'");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.
|
||||
@@ -1808,7 +1834,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ИтерацииОбновления = ИтерацииОбновления();
|
||||
Обработки.ОписаниеОбработчиковОбновления.ЗаполнитьНомерОчереди(ИтерацииОбновления);
|
||||
ЗаполнитьНомерОчередиОбработчиков(ИтерацииОбновления);
|
||||
ОбновитьСписокВыполняемыхОбработчиковОбновления(ИтерацииОбновления, Истина);
|
||||
ПеререгистрироватьДанныеДляОтложенногоОбновления();
|
||||
Если ИнформационнаяБазаФайловая Тогда
|
||||
@@ -2747,7 +2773,7 @@
|
||||
КонецПопытки;
|
||||
|
||||
ОбновлениеИнформационнойБазыПереопределяемый.ПередФормированиеСпискаОтложенныхОбработчиков(ИтерацииОбновления);
|
||||
Обработки.ОписаниеОбработчиковОбновления.ЗаполнитьНомерОчереди(ИтерацииОбновления);
|
||||
ЗаполнитьНомерОчередиОбработчиков(ИтерацииОбновления);
|
||||
ОбновитьСписокВыполняемыхОбработчиковОбновления(ИтерацииОбновления);
|
||||
СброситьПрогрессВыполненияОбработчиков();
|
||||
ОчиститьЗарегистрированныеПроблемыСДанными();
|
||||
@@ -2906,10 +2932,31 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если СинхронноеОбновление Тогда
|
||||
ОчиститьПолностьюПослеУспешногоОтложенногоОбновления();
|
||||
Иначе
|
||||
НастроитьЗаданиеОчисткаУстаревшихДанных(Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьНомерОчередиОбработчиков(ИтерацииОбновления)
|
||||
|
||||
Обработки.ОписаниеОбработчиковОбновления.ЗаполнитьНомерОчереди(ИтерацииОбновления);
|
||||
|
||||
ОбработчикОчисткиУстаревшихДанных = Неопределено;
|
||||
МаксимальнаяОчередь = 0;
|
||||
Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл
|
||||
ТекущиеОчереди = ИтерацияОбновления.Обработчики.Скопировать(, "ОчередьОтложеннойОбработки");
|
||||
ТекущиеОчереди.Сортировать("ОчередьОтложеннойОбработки УБЫВ");
|
||||
Если ЗначениеЗаполнено(ТекущиеОчереди) Тогда
|
||||
ТекущаяОчередь = ТекущиеОчереди[0].ОчередьОтложеннойОбработки;
|
||||
МаксимальнаяОчередь = ?(МаксимальнаяОчередь < ТекущаяОчередь,
|
||||
ТекущаяОчередь, МаксимальнаяОчередь);
|
||||
КонецЕсли;
|
||||
Если ИтерацияОбновления.Подсистема <> "СтандартныеПодсистемы" Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ОбработчикОчисткиУстаревшихДанных = ИтерацияОбновления.Обработчики.Найти(
|
||||
ИдентификаторОбработчикаОчисткиУстаревшихДанных(), "Идентификатор");
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбработчикОчисткиУстаревшихДанных <> Неопределено Тогда
|
||||
ОбработчикОчисткиУстаревшихДанных.ОчередьОтложеннойОбработки = МаксимальнаяОчередь + 1;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -2965,6 +3012,14 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИдентификаторОбработчикаОчисткиУстаревшихДанных()
|
||||
Возврат Новый УникальныйИдентификатор("724850c1-7de4-4d18-8d99-33d0c6b46afa");
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоОбработчикОчисткиУстаревшихДанных(Обработчик) Экспорт
|
||||
Возврат Обработчик.Идентификатор = ИдентификаторОбработчикаОчисткиУстаревшихДанных();
|
||||
КонецФункции
|
||||
|
||||
// Для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -4704,6 +4759,11 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоОбработчикОчисткиУстаревшихДанных(Обработчик)
|
||||
И Обработчики.Количество() > 1 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Обработчик.ИтерацияЗапуска = ТекущаяИтерация Тогда
|
||||
// Обработчик в этой итерации обновления уже запускался.
|
||||
ЕстьНевыполненные = Истина;
|
||||
@@ -7633,15 +7693,16 @@
|
||||
УровеньЖурналаРегистрации.Информация,,, Комментарий);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ИначеЕсли Не ОтложенноеОбновлениеЗавершено() Тогда
|
||||
Иначе
|
||||
НастроитьЗаданиеОчисткаУстаревшихДанныхБезПопытки(Ложь);
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Очистка устаревших данных недопустима до успешного завершения
|
||||
|отложенного обновления на новую версию приложения.
|
||||
|1. Посмотреть результаты обновления: %1
|
||||
|2. Запустить очистку: %2'"),
|
||||
"e1cib/app/Обработка.РезультатыОбновленияПрограммы",
|
||||
"e1cib/app/Обработка.РезультатыОбновленияПрограммы.Форма.ОчисткаУстаревшихДанных");
|
||||
НСтр("ru = 'Очистка устаревших данных выполняется
|
||||
|в последнем отложенном обработчике обновления.
|
||||
|Посмотреть результаты: %1
|
||||
|
|
||||
|Регламентное задание используется только в модели сервиса
|
||||
|для очистки устаревших неразделенных данных.'"),
|
||||
"e1cib/app/Обработка.РезультатыОбновленияПрограммы");
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -7784,15 +7845,20 @@
|
||||
КонецЕсли;
|
||||
НайденныеЗадания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
|
||||
|
||||
Если НайденныеЗадания.Количество() > 1 Тогда
|
||||
Количество = ?(ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных(), 0, 1);
|
||||
Если НайденныеЗадания.Количество() > Количество Тогда
|
||||
Для Каждого НайденноеЗадание Из НайденныеЗадания Цикл
|
||||
Если НайденноеЗадание = НайденныеЗадания[0] Тогда
|
||||
Если НайденноеЗадание = НайденныеЗадания[0] И Количество > 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
РегламентныеЗаданияСервер.УдалитьЗадание(НайденноеЗадание);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если Количество = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если НайденныеЗадания.Количество() = 0 Тогда
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
@@ -7876,8 +7942,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для вызова после отложенного обновления.
|
||||
Процедура ОчиститьПолностьюПослеУспешногоОтложенногоОбновления()
|
||||
Процедура ПустаяПроцедураРегистрации(Параметры) Экспорт
|
||||
Возврат;
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОчиститьУстаревшиеДанныеПолностью(Параметры) Экспорт
|
||||
|
||||
ЗаголовокОшибки = НСтр("ru = 'Не удалось выполнить очистку устаревших данных.'")
|
||||
+ Символы.ПС + Символы.ПС;
|
||||
@@ -7895,14 +7964,14 @@
|
||||
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне();
|
||||
ПараметрыВыполнения.ОжидатьЗавершение = Неопределено;
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Очистка устаревших данных (синхронно)'");
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Очистка устаревших данных (отложенно)'");
|
||||
ПараметрыВыполнения.АдресРезультата = АдресРезультатаОчистки;
|
||||
ПараметрыВыполнения.КлючФоновогоЗадания = КлючЗаданияОчисткиУстаревшихДанных();
|
||||
ПараметрыВыполнения.ЗапуститьНеВФоне = МонопольныйРежим();
|
||||
|
||||
НаборПараметровПроцедуры = Новый Структура;
|
||||
НаборПараметровПроцедуры.Вставить("Контекст",
|
||||
Новый Структура("ЧиститьУдаляемые, СинхронноеОбновление", Ложь, Истина));
|
||||
Новый Структура("ЧиститьУдаляемые, ОтложенноеОбновление", Ложь, Истина));
|
||||
НаборПараметровПроцедуры.Вставить("ИмяМетодаПолученияПорций",
|
||||
"ОбновлениеИнформационнойБазыСлужебный.УстаревшиеДанныеПриЗапросеПорцийВФоне");
|
||||
|
||||
@@ -7935,6 +8004,8 @@
|
||||
|
||||
УдалитьИзВременногоХранилища(АдресРезультатаОчистки);
|
||||
|
||||
Параметры.ОбработкаЗавершена = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для вызова из формы и процедуры ОчиститьПолностьюПослеУспешногоОтложенногоОбновления.
|
||||
@@ -7990,7 +8061,8 @@
|
||||
Процедура УстаревшиеДанныеПриЗапросеПорцийВФоне(НовыеПорции, Контекст) Экспорт
|
||||
|
||||
Если Не Контекст.Свойство("ОчищаемыеТаблицы") Тогда
|
||||
Если Не Контекст.Свойство("ЭтоРегламентноеЗадание") Тогда
|
||||
Если Не Контекст.Свойство("ЭтоРегламентноеЗадание")
|
||||
И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
ВыполняетсяРегламентноеЗаданиеОчисткаУстаревшихДанных(Истина);
|
||||
КонецЕсли;
|
||||
Контекст.Вставить("ИндексТекущейТаблицы", -1);
|
||||
@@ -8049,7 +8121,7 @@
|
||||
КонецЦикла;
|
||||
|
||||
Если Контекст.Свойство("Процент")
|
||||
И Не Контекст.Свойство("СинхронноеОбновление") Тогда
|
||||
И Не Контекст.Свойство("ОтложенноеОбновление") Тогда
|
||||
Контекст.Процент = ?(Контекст.ОчищаемыеТаблицы.Количество() = 0, 100,
|
||||
Окр((Контекст.ИндексТекущейТаблицы + 1) * 100 / Контекст.ОчищаемыеТаблицы.Количество()));
|
||||
КонецЕсли;
|
||||
@@ -8776,11 +8848,12 @@
|
||||
"НЕ %1.ПустаяСсылка ЕСТЬ NULL", ИмяПараметра);
|
||||
ПустыеСсылки = Новый Массив;
|
||||
ТипыСсылок = Новый Массив;
|
||||
ЗначениеПараметра = Новый ТаблицаЗначений;
|
||||
Для Каждого ОписаниеТипа Из ОчищаемыеТипы Цикл
|
||||
ПустыеСсылки.Добавить(ПредопределенноеЗначение(ОписаниеТипа.Значение + ".ПустаяСсылка"));
|
||||
ТипыСсылок.Добавить(ОписаниеТипа.Ключ);
|
||||
ЗначениеПараметра.Добавить();
|
||||
КонецЦикла;
|
||||
ЗначениеПараметра = Новый ТаблицаЗначений;
|
||||
ЗначениеПараметра.Колонки.Добавить("ПустаяСсылка", Новый ОписаниеТипов(ТипыСсылок));
|
||||
ЗначениеПараметра.ЗагрузитьКолонку(ПустыеСсылки, "ПустаяСсылка");
|
||||
Запрос.УстановитьПараметр(ИмяПараметра, ЗначениеПараметра);
|
||||
@@ -10891,6 +10964,7 @@
|
||||
СведенияОбОбновлении.Вставить("ТекущаяИтерацияОбновления", 1);
|
||||
СведенияОбОбновлении.Вставить("СеансОбновления");
|
||||
СведенияОбОбновлении.Вставить("ВерсияУдалениеПатчей");
|
||||
СведенияОбОбновлении.Вставить("ВерсияПроверкиПатчей");
|
||||
СведенияОбОбновлении.Вставить("ЗависимостьГруппОбработчиков", Новый Соответствие);
|
||||
СведенияОбОбновлении.Вставить("ВерсииПодсистемНаНачалоОбновления", Новый Соответствие);
|
||||
СведенияОбОбновлении.Вставить("ДатаНачалаСеансаОбновления", Неопределено);
|
||||
|
||||
@@ -985,7 +985,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
// Определяет, указаны ли места использования в исключениях поиска ссылок.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -1432,23 +1431,14 @@
|
||||
ИсключенияПоискаСсылок = ИсключенияПоискаСсылок();
|
||||
|
||||
ДополнительныеИсключенияПоискаСсылок = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
|
||||
ДополнительныеПараметры,
|
||||
"ДополнительныеИсключенияПоискаСсылок",
|
||||
Новый Соответствие);
|
||||
ДополнительныеПараметры, "ДополнительныеИсключенияПоискаСсылок", Новый Соответствие);
|
||||
Для каждого МетаданныеРеквизитыИсключения Из ДополнительныеИсключенияПоискаСсылок Цикл
|
||||
|
||||
ЗначениеИсключения = ИсключенияПоискаСсылок[МетаданныеРеквизитыИсключения.Ключ];
|
||||
Если ЗначениеИсключения = Неопределено Тогда
|
||||
ИсключенияПоискаСсылок.Вставить(МетаданныеРеквизитыИсключения.Ключ,
|
||||
МетаданныеРеквизитыИсключения.Значение);
|
||||
Иначе
|
||||
|
||||
Если ТипЗнч(ЗначениеИсключения) = Тип("Массив") Тогда
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗначениеИсключения,
|
||||
МетаданныеРеквизитыИсключения.Значение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
ИсключенияПоискаСсылок.Вставить(МетаданныеРеквизитыИсключения.Ключ, МетаданныеРеквизитыИсключения.Значение);
|
||||
ИначеЕсли ТипЗнч(ЗначениеИсключения) = Тип("Массив") Тогда
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ЗначениеИсключения, МетаданныеРеквизитыИсключения.Значение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
ОтменаИсключенийПоискаСсылок = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеПараметры,
|
||||
|
||||
@@ -125,28 +125,48 @@
|
||||
Если Не Контекст.ВыполненПоискНовойВерсии Тогда
|
||||
|
||||
Если Контекст.Кэшировать Тогда
|
||||
|
||||
ПодключаемыйМодуль = ПолучитьОбъектКомпонентыИзКэша(Контекст.Местоположение);
|
||||
|
||||
Если ПодключаемыйМодуль <> Неопределено Тогда
|
||||
Результат = РезультатПодключенияКомпоненты();
|
||||
Результат.Подключено = Истина;
|
||||
Результат.ПодключаемыйМодуль = ПодключаемыйМодуль;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка факта подключения внешней компоненты в этом сеансе ранее.
|
||||
СимволическоеИмя = ПолучитьСимволическоеИмяКомпонентыИзКэша(Контекст.Местоположение);
|
||||
|
||||
Если СимволическоеИмя <> Неопределено Тогда
|
||||
// Если в кэше уже есть символическое имя - значит к этому сеансу ранее компонента уже подключалась.
|
||||
Подключено = Истина;
|
||||
Контекст.Вставить("СимволическоеИмя", СимволическоеИмя);
|
||||
Возврат Ждать ПодключитьКомпонентуПослеПопыткиПодключенияАсинх(Подключено, Контекст);
|
||||
ПодключаемыйМодуль = ПолучитьОбъектКомпонентыИзКэша(Контекст.Местоположение);
|
||||
|
||||
ПровереноПодключение = Неопределено;
|
||||
|
||||
Если ПодключаемыйМодуль <> Неопределено Тогда
|
||||
ПровереноПодключение = ПроверитьПодключениеВнешнейКомпоненты(Контекст.Местоположение,
|
||||
Контекст.Идентификатор);
|
||||
Если ПровереноПодключение Тогда
|
||||
Результат = РезультатПодключенияКомпоненты();
|
||||
Результат.Подключено = Истина;
|
||||
Результат.ПодключаемыйМодуль = ПодключаемыйМодуль;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ПровереноПодключение <> Ложь Тогда
|
||||
// Проверка факта подключения внешней компоненты в этом сеансе ранее.
|
||||
СимволическоеИмя = ПолучитьСимволическоеИмяКомпонентыИзКэша(Контекст.Местоположение);
|
||||
|
||||
Если СимволическоеИмя <> Неопределено Тогда
|
||||
// Если в кэше уже есть символическое имя - значит к этому сеансу ранее компонента уже подключалась.
|
||||
|
||||
Если ПровереноПодключение = Неопределено Тогда
|
||||
ПровереноПодключение = ПроверитьПодключениеВнешнейКомпоненты(Контекст.Местоположение,
|
||||
Контекст.Идентификатор);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПровереноПодключение Тогда
|
||||
Подключено = Истина;
|
||||
Контекст.Вставить("СимволическоеИмя", СимволическоеИмя);
|
||||
Возврат Ждать ПодключитьКомпонентуПослеПопыткиПодключенияАсинх(Подключено, Контекст);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПровереноПодключение = Ложь Тогда
|
||||
ОчиститьОбъектКомпонентыВКэше(Контекст.Местоположение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
// Поиск более свежей версии компоненты в макетах и справочнике.
|
||||
Если ЭтоМакет(Контекст.Местоположение) Тогда
|
||||
|
||||
@@ -250,22 +270,41 @@
|
||||
|
||||
ПодключаемыйМодуль = ПолучитьОбъектКомпонентыИзКэша(Контекст.Местоположение);
|
||||
|
||||
ПровереноПодключение = Неопределено;
|
||||
|
||||
Если ПодключаемыйМодуль <> Неопределено Тогда
|
||||
ПодключитьКомпонентуОповеститьОПодключении(ПодключаемыйМодуль, Контекст);
|
||||
Возврат;
|
||||
ПровереноПодключение = ПроверитьПодключениеВнешнейКомпоненты(Контекст.Местоположение,
|
||||
Контекст.Идентификатор);
|
||||
Если ПровереноПодключение Тогда
|
||||
ПодключитьКомпонентуОповеститьОПодключении(ПодключаемыйМодуль, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПровереноПодключение <> Ложь Тогда
|
||||
// Проверка факта подключения внешней компоненты в этом сеансе ранее.
|
||||
СимволическоеИмя = ПолучитьСимволическоеИмяКомпонентыИзКэша(Контекст.Местоположение);
|
||||
|
||||
Если СимволическоеИмя <> Неопределено Тогда
|
||||
Если ПровереноПодключение = Неопределено Тогда
|
||||
ПровереноПодключение = ПроверитьПодключениеВнешнейКомпоненты(Контекст.Местоположение,
|
||||
Контекст.Идентификатор);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПровереноПодключение Тогда
|
||||
// Если в кэше уже есть символическое имя - значит к этому сеансу ранее компонента уже подключалась.
|
||||
Подключено = Истина;
|
||||
Контекст.Вставить("СимволическоеИмя", СимволическоеИмя);
|
||||
ПодключитьКомпонентуПослеПопыткиПодключения(Подключено, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка факта подключения внешней компоненты в этом сеансе ранее.
|
||||
СимволическоеИмя = ПолучитьСимволическоеИмяКомпонентыИзКэша(Контекст.Местоположение);
|
||||
|
||||
Если СимволическоеИмя <> Неопределено Тогда
|
||||
// Если в кэше уже есть символическое имя - значит к этому сеансу ранее компонента уже подключалась.
|
||||
Подключено = Истина;
|
||||
Контекст.Вставить("СимволическоеИмя", СимволическоеИмя);
|
||||
ПодключитьКомпонентуПослеПопыткиПодключения(Подключено, Контекст);
|
||||
Возврат;
|
||||
Если ПровереноПодключение = Ложь Тогда
|
||||
ОчиститьОбъектКомпонентыВКэше(Контекст.Местоположение);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Поиск более свежей версии компоненты в макетах и справочнике.
|
||||
@@ -1426,6 +1465,43 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОчиститьОбъектКомпонентыВКэше(КлючОбъекта)
|
||||
|
||||
КэшированныеОбъекты = ПараметрыПриложения["СтандартныеПодсистемы.ВнешниеКомпоненты.Объекты"];
|
||||
|
||||
Если ТипЗнч(КэшированныеОбъекты) = Тип("ФиксированноеСоответствие")
|
||||
И КэшированныеОбъекты.Получить(КлючОбъекта) <> Неопределено Тогда
|
||||
|
||||
Соответствие = Новый Соответствие;
|
||||
Для каждого Элемент Из КэшированныеОбъекты Цикл
|
||||
Если Элемент.Ключ = КлючОбъекта Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Соответствие.Вставить(Элемент.Ключ, Элемент.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
ПараметрыПриложения.Вставить("СтандартныеПодсистемы.ВнешниеКомпоненты.Объекты",
|
||||
Новый ФиксированноеСоответствие(Соответствие));
|
||||
КонецЕсли;
|
||||
|
||||
КэшированныеСимволическоеИмена = ПараметрыПриложения["СтандартныеПодсистемы.ВнешниеКомпоненты.СимволическиеИмена"];
|
||||
|
||||
Если ТипЗнч(КэшированныеСимволическоеИмена) = Тип("ФиксированноеСоответствие")
|
||||
И КэшированныеСимволическоеИмена.Получить(КлючОбъекта) <> Неопределено Тогда
|
||||
|
||||
Соответствие = Новый Соответствие;
|
||||
Для каждого Элемент Из КэшированныеСимволическоеИмена Цикл
|
||||
Если Элемент.Ключ = КлючОбъекта Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Соответствие.Вставить(Элемент.Ключ, Элемент.Значение);
|
||||
КонецЦикла;
|
||||
ПараметрыПриложения.Вставить("СтандартныеПодсистемы.ВнешниеКомпоненты.СимволическиеИмена",
|
||||
Новый ФиксированноеСоответствие(Соответствие));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ВнешнееСоединение
|
||||
|
||||
@@ -133,9 +133,7 @@
|
||||
Возврат "НеОтправлялось";
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ОтправкаSMSПовтИсп.СтатусДоставки(ИдентификаторСообщения);
|
||||
|
||||
Возврат Результат;
|
||||
Возврат СтатусыДоставки(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторСообщения))[ИдентификаторСообщения];
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -253,6 +251,33 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Запрашивает статус доставки сообщения у поставщика услуг.
|
||||
//
|
||||
// Параметры:
|
||||
// ИдентификаторыСообщений - Массив из Строка - идентификаторы, присвоенные SMS при отправке;
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие:
|
||||
// * Ключ - Строка - идентификатор SMS;
|
||||
// * Значение - Строка - статус доставки сообщения, который вернул поставщик услуг:
|
||||
// "НеОтправлялось" - сообщение еще не было обработано поставщиком услуг (в очереди);
|
||||
// "Отправляется" - сообщение стоит в очереди на отправку у провайдера;
|
||||
// "Отправлено" - сообщение отправлено, ожидается подтверждение о доставке;
|
||||
// "НеОтправлено" - сообщение не отправлено (недостаточно средств на счете, перегружена сеть оператора);
|
||||
// "Доставлено" - сообщение доставлено адресату;
|
||||
// "НеДоставлено" - сообщение не удалось доставить (абонент недоступен, время ожидания подтверждения
|
||||
// доставки от абонента истекло);
|
||||
// "Ошибка" - не удалось получить статус у поставщика услуг (статус неизвестен).
|
||||
//
|
||||
Функция СтатусыДоставки(Знач ИдентификаторыСообщений) Экспорт
|
||||
|
||||
ПроверитьПрава();
|
||||
СтатусыДоставки = ОтправкаSMSПовтИсп.СтатусыДоставки(СтрСоединить(ИдентификаторыСообщений, ","));
|
||||
|
||||
Возврат Новый Соответствие(СтатусыДоставки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -391,6 +416,7 @@
|
||||
Результат.Вставить("ПриОпределенииСпособовАвторизации", Ложь);
|
||||
Результат.Вставить("ПриОпределенииПолейАвторизации", Ложь);
|
||||
Результат.Вставить("ПриЗаполненииСпискаТекущихДел", Ложь);
|
||||
Результат.Вставить("СтатусыДоставкиОднимЗапросом", Ложь);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
|
||||
@@ -8,30 +8,47 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция СтатусДоставки(ИдентификаторСообщения) Экспорт
|
||||
Функция СтатусыДоставки(ИдентификаторыСообщений) Экспорт
|
||||
|
||||
ОтправкаSMS.ПроверитьПрава();
|
||||
СписокИдентификаторов = СтрРазделить(ИдентификаторыСообщений, ",", Ложь);
|
||||
СтатусыДоставки = Новый Соответствие();
|
||||
|
||||
Если ПустаяСтрока(ИдентификаторСообщения) Тогда
|
||||
Возврат "НеОтправлялось";
|
||||
Для Каждого ИдентификаторСообщения Из СписокИдентификаторов Цикл
|
||||
СтатусыДоставки[ИдентификаторСообщения] = "Ошибка";
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ЗначениеЗаполнено(СписокИдентификаторов) Тогда
|
||||
Возврат Новый ФиксированноеСоответствие(СтатусыДоставки);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Неопределено;
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS();
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
МодульОтправкаSMSЧерезПровайдера = ОтправкаSMS.МодульОтправкаSMSЧерезПровайдера(НастройкиОтправкиSMS.Провайдер);
|
||||
Если МодульОтправкаSMSЧерезПровайдера <> Неопределено Тогда
|
||||
Результат = МодульОтправкаSMSЧерезПровайдера.СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS);
|
||||
НастройкиПровайдера = ОтправкаSMS.НастройкиПровайдера(НастройкиОтправкиSMS.Провайдер);
|
||||
|
||||
Если НастройкиПровайдера.СтатусыДоставкиОднимЗапросом Тогда
|
||||
СтатусыДоставки = МодульОтправкаSMSЧерезПровайдера.СтатусыДоставки(СписокИдентификаторов, НастройкиОтправкиSMS);
|
||||
Иначе
|
||||
Для Каждого ИдентификаторСообщения Из СписокИдентификаторов Цикл
|
||||
СтатусыДоставки[ИдентификаторСообщения] = МодульОтправкаSMSЧерезПровайдера.СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(НастройкиОтправкиSMS.Провайдер) Тогда
|
||||
ОтправкаSMSПереопределяемый.СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS.Провайдер,
|
||||
НастройкиОтправкиSMS.Логин, НастройкиОтправкиSMS.Пароль, Результат);
|
||||
Иначе // провайдер не выбран
|
||||
Результат = "Ошибка";
|
||||
Для Каждого ИдентификаторСообщения Из СписокИдентификаторов Цикл
|
||||
Результат = Неопределено;
|
||||
ОтправкаSMSПереопределяемый.СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS.Провайдер,
|
||||
НастройкиОтправкиSMS.Логин, НастройкиОтправкиSMS.Пароль, Результат);
|
||||
|
||||
СтатусыДоставки[ИдентификаторСообщения] = Результат;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
Возврат Новый ФиксированноеСоответствие(СтатусыДоставки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -24,57 +24,112 @@
|
||||
|
||||
Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, "");
|
||||
|
||||
// Подготовка строки получателей.
|
||||
СтрокаПолучателей = МассивПолучателейСтрокой(НомераПолучателей);
|
||||
ФорматированныеНомераТелефонов = ФорматироватьНомераТелефонов(НомераПолучателей);
|
||||
Получатели = Новый Массив;
|
||||
|
||||
Для Каждого Номер Из НомераПолучателей Цикл
|
||||
Если ФорматированныеНомераТелефонов[Номер] <> Неопределено Тогда
|
||||
Получатели.Добавить(ФорматированныеНомераТелефонов[Номер]);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
СтрокаПолучателей = СтрСоединить(Получатели, ",");
|
||||
|
||||
// Проверка на заполнение обязательных параметров.
|
||||
Если ПустаяСтрока(СтрокаПолучателей) Или ПустаяСтрока(Текст) Тогда
|
||||
Результат.ОписаниеОшибки = НСтр("ru = 'Неверные параметры сообщения'");
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Подготовка параметров запроса.
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS();
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("login", Логин);
|
||||
ПараметрыЗапроса.Вставить("password", Пароль);
|
||||
|
||||
Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И НастройкиОтправкиSMS.СпособАвторизации = "ПоИдентификатору" Тогда
|
||||
ПараметрыЗапроса.Вставить("api_id", Пароль);
|
||||
Иначе
|
||||
ПараметрыЗапроса.Вставить("login", Логин);
|
||||
ПараметрыЗапроса.Вставить("password", Пароль);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыЗапроса.Вставить("text", Текст);
|
||||
ПараметрыЗапроса.Вставить("to", СтрокаПолучателей);
|
||||
ПараметрыЗапроса.Вставить("from", ИмяОтправителя);
|
||||
ПараметрыЗапроса.Вставить("json", 1);
|
||||
|
||||
// отправка запроса
|
||||
ТекстОтвета = ВыполнитьЗапрос("sms/send", ПараметрыЗапроса);
|
||||
Если Не ЗначениеЗаполнено(ТекстОтвета) Тогда
|
||||
Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + НСтр("ru = 'Соединение не установлено'");
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторыСообщений = СтрРазделить(ТекстОтвета, Символы.ПС);
|
||||
РезультатЗапроса = ОбщегоНазначения.JSONВЗначение(ТекстОтвета);
|
||||
|
||||
ОтветСервера = ИдентификаторыСообщений[0];
|
||||
ИдентификаторыСообщений.Удалить(0);
|
||||
ЗапросПринят = РезультатЗапроса["status"] = "OK";
|
||||
ТекстСостояния = РезультатЗапроса["status_text"];
|
||||
КодСостояния = РезультатЗапроса["status_code"];
|
||||
|
||||
Если ОтветСервера = "100" Тогда
|
||||
НомераПолучателей = СтрРазделить(СтрокаПолучателей, ",", Ложь);
|
||||
Если ИдентификаторыСообщений.Количество() < НомераПолучателей.Количество() Тогда
|
||||
Результат.ОписаниеОшибки = НСтр("ru = 'Ответ сервера не распознан'");
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Индекс = 0 По НомераПолучателей.ВГраница() Цикл
|
||||
НомерПолучателя = НомераПолучателей[Индекс];
|
||||
ИдентификаторСообщения = ИдентификаторыСообщений[Индекс];
|
||||
Если Не ПустаяСтрока(НомерПолучателя) Тогда
|
||||
ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения",
|
||||
НомерПолучателя,ИдентификаторСообщения);
|
||||
Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
Результат.ОписаниеОшибки = ОписаниеОшибкиОтправки(ОтветСервера);
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , Результат.ОписаниеОшибки);
|
||||
Если ЗапросПринят И ЗначениеЗаполнено(РезультатЗапроса["sms"]["empty_phone"]) Тогда
|
||||
ЗапросПринят = Ложь;
|
||||
ТекстСостояния = РезультатЗапроса["sms"]["empty_phone"]["real_status_text"];
|
||||
КодСостояния = РезультатЗапроса["sms"]["empty_phone"]["real_status"];
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗапросПринят Тогда
|
||||
Если ЗначениеЗаполнено(ТекстСостояния) Тогда
|
||||
Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 (код состояния: %2)'"), ТекстСостояния, КодСостояния);
|
||||
Иначе
|
||||
Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Код состояния: %1'"), КодСостояния);
|
||||
КонецЕсли;
|
||||
|
||||
Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Отправка SMS не выполнена по причине:
|
||||
|%1'"), Причина);
|
||||
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , Результат.ОписаниеОшибки);
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстыОшибок = Новый Массив;
|
||||
|
||||
Для Каждого НомерПолучателя Из НомераПолучателей Цикл
|
||||
|
||||
ИдентификаторСообщения = "";
|
||||
СтатусОтправкиПолучателю = РезультатЗапроса["sms"][ФорматированныеНомераТелефонов[НомерПолучателя]];
|
||||
|
||||
Если СтатусОтправкиПолучателю <> Неопределено Тогда
|
||||
ИдентификаторСообщения = СтатусОтправкиПолучателю["sms_id"];
|
||||
|
||||
Если СтатусОтправкиПолучателю["status_text"] = "ERROR" Тогда
|
||||
ТекстСостояния = СтатусОтправкиПолучателю["status_text"];
|
||||
КодСостояния = СтатусОтправкиПолучателю["status_code"];
|
||||
|
||||
ТекстыОшибок.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1: %2 (код состояния: %3)'"),
|
||||
НомерПолучателя,
|
||||
ТекстСостояния,
|
||||
КодСостояния));
|
||||
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПустаяСтрока(НомерПолучателя) И ЗначениеЗаполнено(ИдентификаторСообщения) Тогда
|
||||
ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения",
|
||||
НомерПолучателя,ИдентификаторСообщения);
|
||||
Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстыОшибок) Тогда
|
||||
Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Отправка SMS не выполнена следующим получателям:
|
||||
|%1'"), СтрСоединить(ТекстыОшибок, Символы.ПС));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
@@ -90,35 +145,13 @@
|
||||
//
|
||||
Функция СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS) Экспорт
|
||||
|
||||
Логин = НастройкиОтправкиSMS.Логин;
|
||||
Пароль = НастройкиОтправкиSMS.Пароль;
|
||||
|
||||
// Подготовка параметров запроса.
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("login", Логин);
|
||||
ПараметрыЗапроса.Вставить("password", Пароль);
|
||||
ПараметрыЗапроса.Вставить("id", ИдентификаторСообщения);
|
||||
|
||||
// отправка запроса
|
||||
КодСостояния = ВыполнитьЗапрос("sms/status", ПараметрыЗапроса);
|
||||
Если Не ЗначениеЗаполнено(КодСостояния) Тогда
|
||||
Возврат "Ошибка";
|
||||
КонецЕсли;
|
||||
|
||||
Результат = СтатусДоставкиSMS(КодСостояния);
|
||||
Если Результат = "Ошибка" Тогда
|
||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru = 'Не удалось получить статус доставки SMS (id: ""%3""):
|
||||
|%1 (код ошибки: %2)'"), ОписаниеОшибкиПолученияСтатуса(КодСостояния), КодСостояния, ИдентификаторСообщения);
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
ИдентификаторыСообщений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторСообщения);
|
||||
Возврат СтатусыДоставки(ИдентификаторыСообщений, НастройкиОтправкиSMS)[ИдентификаторСообщения];
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СтатусДоставкиSMS(КодСостояния)
|
||||
|
||||
СоответствиеСтатусов = Новый Соответствие;
|
||||
СоответствиеСтатусов.Вставить("-1", "НеОтправлялось");
|
||||
СоответствиеСтатусов.Вставить("100", "НеОтправлялось");
|
||||
@@ -130,9 +163,11 @@
|
||||
СоответствиеСтатусов.Вставить("106", "НеДоставлено");
|
||||
СоответствиеСтатусов.Вставить("107", "НеДоставлено");
|
||||
СоответствиеСтатусов.Вставить("108", "НеДоставлено");
|
||||
СоответствиеСтатусов.Вставить("150", "НеДоставлено");
|
||||
|
||||
Результат = СоответствиеСтатусов[НРег(КодСостояния)];
|
||||
Возврат ?(Результат = Неопределено, "Ошибка", Результат);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписанияОшибок()
|
||||
@@ -159,16 +194,6 @@
|
||||
Возврат ОписанияОшибок;
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеОшибкиОтправки(КодОшибки)
|
||||
ОписанияОшибок = ОписанияОшибок();
|
||||
ТекстСообщения = ОписанияОшибок[КодОшибки];
|
||||
Если ТекстСообщения = Неопределено Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Сообщение не отправлено (код ошибки: %1).'"), КодОшибки);
|
||||
КонецЕсли;
|
||||
Возврат ТекстСообщения;
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеОшибкиПолученияСтатуса(КодОшибки)
|
||||
ОписанияОшибок =ОписанияОшибок();
|
||||
ТекстСообщения = ОписанияОшибок[КодОшибки];
|
||||
@@ -209,33 +234,28 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция МассивПолучателейСтрокой(Массив)
|
||||
Получатели = Новый Массив;
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Получатели, Массив, Истина);
|
||||
Функция ФорматироватьНомер(Знач Номер)
|
||||
|
||||
ДопустимыеСимволы = "1234567890";
|
||||
ЛишниеСимволы = СтрСоединить(СтрРазделить(Номер, ДопустимыеСимволы, Ложь), "");
|
||||
|
||||
Возврат СтрСоединить(СтрРазделить(Номер, ЛишниеСимволы, Ложь), "");
|
||||
|
||||
Результат = "";
|
||||
Для Каждого Получатель Из Получатели Цикл
|
||||
Номер = ФорматироватьНомер(Получатель);
|
||||
Если НЕ ПустаяСтрока(Номер) Тогда
|
||||
Если Не ПустаяСтрока(Результат) Тогда
|
||||
Результат = Результат + ",";
|
||||
КонецЕсли;
|
||||
Результат = Результат + Номер;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция ФорматироватьНомер(Номер)
|
||||
Результат = "";
|
||||
ДопустимыеСимволы = "+1234567890";
|
||||
Для Позиция = 1 По СтрДлина(Номер) Цикл
|
||||
Символ = Сред(Номер,Позиция,1);
|
||||
Если СтрНайти(ДопустимыеСимволы, Символ) > 0 Тогда
|
||||
Результат = Результат + Символ;
|
||||
Функция ФорматироватьНомераТелефонов(Знач НомераТелефонов)
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
|
||||
Для Каждого НомерТелефона Из НомераТелефонов Цикл
|
||||
ФорматированныйНомер = ФорматироватьНомер(НомерТелефона);
|
||||
Если ЗначениеЗаполнено(ФорматированныйНомер) Тогда
|
||||
Результат.Вставить(НомерТелефона, ФорматированныйНомер);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает список разрешений для отправки SMS с использованием всех доступных провайдеров.
|
||||
@@ -262,8 +282,111 @@
|
||||
Процедура ПриОпределенииНастроек(Настройки) Экспорт
|
||||
|
||||
Настройки.АдресОписанияУслугиВИнтернете = "https://sms.ru";
|
||||
Настройки.ПриОпределенииСпособовАвторизации = Истина;
|
||||
Настройки.ПриОпределенииПолейАвторизации = Истина;
|
||||
Настройки.СтатусыДоставкиОднимЗапросом = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриОпределенииСпособовАвторизации(СпособыАвторизации) Экспорт
|
||||
|
||||
СпособыАвторизации.Очистить();
|
||||
СпособыАвторизации.Добавить("ПоИдентификатору", НСтр("ru = 'По ключу (рекомендуется)'"));
|
||||
СпособыАвторизации.Добавить("ПоЛогинуИПаролю", НСтр("ru = 'По логину и паролю'"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриОпределенииПолейАвторизации(СпособыАвторизации) Экспорт
|
||||
|
||||
ПоляАвторизации = Новый СписокЗначений;
|
||||
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'api_id'"));
|
||||
|
||||
СпособыАвторизации.Вставить("ПоИдентификатору", ПоляАвторизации);
|
||||
|
||||
ПоляАвторизации = Новый СписокЗначений;
|
||||
ПоляАвторизации.Добавить("Логин", НСтр("ru = 'Логин'"));
|
||||
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Пароль'"));
|
||||
|
||||
СпособыАвторизации.Вставить("ПоЛогинуИПаролю", ПоляАвторизации);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Запрашивает статус доставки сообщения у поставщика услуг.
|
||||
//
|
||||
// Параметры:
|
||||
// ИдентификаторыСообщений - см. ОтправкаSMS.СтатусыДоставки.ИдентификаторыСообщений
|
||||
// НастройкиОтправкиSMS - см. ОтправкаSMS.НастройкиОтправкиSMS
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// См. ОтправкаSMS.СтатусыДоставки
|
||||
//
|
||||
Функция СтатусыДоставки(ИдентификаторыСообщений, НастройкиОтправкиSMS) Экспорт
|
||||
|
||||
СтатусыДоставки = Новый Соответствие;
|
||||
|
||||
Для Каждого ИдентификаторСообщения Из ИдентификаторыСообщений Цикл
|
||||
СтатусыДоставки[ИдентификаторСообщения] = "Ошибка";
|
||||
КонецЦикла;
|
||||
|
||||
Логин = НастройкиОтправкиSMS.Логин;
|
||||
Пароль = НастройкиОтправкиSMS.Пароль;
|
||||
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
|
||||
Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И НастройкиОтправкиSMS.СпособАвторизации = "ПоИдентификатору" Тогда
|
||||
ПараметрыЗапроса.Вставить("api_id", Пароль);
|
||||
Иначе
|
||||
ПараметрыЗапроса.Вставить("login", Логин);
|
||||
ПараметрыЗапроса.Вставить("password", Пароль);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыЗапроса.Вставить("id", СтрСоединить(ИдентификаторыСообщений, ","));
|
||||
ПараметрыЗапроса.Вставить("json", 1);
|
||||
|
||||
ТекстОтвета = ВыполнитьЗапрос("sms/status", ПараметрыЗапроса);
|
||||
Если Не ЗначениеЗаполнено(ТекстОтвета) Тогда
|
||||
Возврат СтатусыДоставки;
|
||||
КонецЕсли;
|
||||
|
||||
РезультатЗапроса = ОбщегоНазначения.JSONВЗначение(ТекстОтвета);
|
||||
|
||||
Если РезультатЗапроса["status"] <> "OK" Тогда
|
||||
ТекстСостояния = РезультатЗапроса["status_text"];
|
||||
КодСостояния = РезультатЗапроса["status_code"];
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстСостояния) Тогда
|
||||
Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 (код состояния: %2)'"), ТекстСостояния, КодСостояния);
|
||||
Иначе
|
||||
Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Код состояния: %1'"), КодСостояния);
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось проверить статус доставки SMS по причине:
|
||||
|%1'"), Причина);
|
||||
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
|
||||
|
||||
Возврат СтатусыДоставки;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИдентификаторСообщения Из ИдентификаторыСообщений Цикл
|
||||
КодСостояния = РезультатЗапроса["sms"][ИдентификаторСообщения]["status_code"];
|
||||
СтатусДоставки = СтатусДоставкиSMS(КодСостояния);
|
||||
СтатусыДоставки[ИдентификаторСообщения] = СтатусДоставкиSMS(КодСостояния);
|
||||
|
||||
Если СтатусДоставки = "Ошибка" Тогда
|
||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru = 'Не удалось получить статус доставки SMS (id: ""%3""):
|
||||
|%1 (код ошибки: %2)'"), ОписаниеОшибкиПолученияСтатуса(РезультатЗапроса), КодСостояния, ИдентификаторСообщения);
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СтатусыДоставки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -428,7 +428,8 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Источник.ТипСсылкиДанных = Новый ОписаниеТипов(МассивТипов);
|
||||
ИначеЕсли Не Метаданные.Обработки.Содержит(ОбъектМетаданных) И Не Метаданные.Отчеты.Содержит(ОбъектМетаданных) Тогда
|
||||
ИначеЕсли Не Метаданные.Обработки.Содержит(ОбъектМетаданных) И Не Метаданные.Отчеты.Содержит(ОбъектМетаданных)
|
||||
И Не Метаданные.РегистрыСведений.Содержит(ОбъектМетаданных) Тогда
|
||||
Источник.ТипСсылкиДанных = Тип(Источник.Вид + "Ссылка." + ОбъектМетаданных.Имя);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
|""%2"".
|
||||
|
|
||||
|Обратитесь к администратору.'"),
|
||||
"ТекущийПользователь");
|
||||
"ТекущийПользователь", "%1");
|
||||
Возврат КраткоеПредставлениеОшибкиАвторизацииПослеРегистрацииВЖурнале(ИнформацияОбОшибке,
|
||||
ШаблонОшибки, РегистрироватьВЖурнале);
|
||||
КонецПопытки;
|
||||
@@ -9410,7 +9410,7 @@
|
||||
|
||||
ЭтоАдминистраторСистемы = Пользователи.ЭтоПолноправныйПользователь(, Истина, Ложь);
|
||||
Если ЭтоАдминистраторСистемы И Не РешениеПринято Тогда
|
||||
Возврат "ПослеОбновления";
|
||||
Возврат ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПослеОбновления;
|
||||
КонецЕсли;
|
||||
|
||||
Если РешениеПринято Тогда
|
||||
@@ -9421,7 +9421,7 @@
|
||||
"ПредупреждениеБезопасности", "ПользовательОзнакомлен", Ложь);
|
||||
|
||||
Если Не ПользовательОзнакомлен Тогда
|
||||
Возврат "ПослеПоявленияПрава";
|
||||
Возврат ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПослеПоявленияПрава;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1312,29 +1312,34 @@
|
||||
//
|
||||
Процедура ОбновитьИдентификаторыПользователейИБ(Знач СоответствиеИдентификаторов)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Пользователи.Ссылка КАК Ссылка,
|
||||
| Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ,
|
||||
| Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяСервиса
|
||||
|ИЗ
|
||||
| Справочник.Пользователи КАК Пользователи";
|
||||
ПустойИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Справочник.Пользователи");
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Справочник.Пользователи");
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Пользователи.Ссылка КАК Ссылка,
|
||||
| Пользователи.ИдентификаторПользователяИБ КАК ИдентификаторПользователяИБ
|
||||
|ИЗ
|
||||
| Справочник.Пользователи КАК Пользователи
|
||||
|ГДЕ
|
||||
| Пользователи.ИдентификаторПользователяИБ <> &ПустойИдентификатор";
|
||||
Запрос.УстановитьПараметр("ПустойИдентификатор", Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));
|
||||
Результат = Запрос.Выполнить();
|
||||
Выборка = Результат.Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
НовыйИдентификаторПользователяИБ = СоответствиеИдентификаторов[Выборка.ИдентификаторПользователяИБ];
|
||||
СоответствиеИдентификаторов.Удалить(Выборка.ИдентификаторПользователяИБ);
|
||||
Если Выборка.ИдентификаторПользователяИБ = ПустойИдентификатор
|
||||
И Выборка.ИдентификаторПользователяСервиса = ПустойИдентификатор
|
||||
И Не ЗначениеЗаполнено(НовыйИдентификаторПользователяИБ) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ПользовательОбъект = Выборка.Ссылка.ПолучитьОбъект();
|
||||
ПользовательОбъект.ИдентификаторПользователяСервиса = Неопределено;
|
||||
ПользовательОбъект.ИдентификаторПользователяИБ
|
||||
= СоответствиеИдентификаторов[Выборка.ИдентификаторПользователяИБ];
|
||||
ПользовательОбъект.ИдентификаторПользователяИБ = НовыйИдентификаторПользователяИБ;
|
||||
Если ПользовательОбъект.Служебный Тогда
|
||||
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
|
||||
ПользовательОбъект.ИдентификаторПользователяИБ);
|
||||
|
||||
@@ -93,16 +93,47 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Открывает окно предупреждения безопасности указанного вида.
|
||||
//
|
||||
// Параметры:
|
||||
// Оповещение - ОписаниеОповещения - оповещение о закрытии формы, в результат передается Неопределено
|
||||
// или Строка, которая соответствует имени нажатой кнопки в зависимости от вида предупреждения.
|
||||
// - Неопределено - оповещение не требуется.
|
||||
//
|
||||
// ВидПредупреждения - см. ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности
|
||||
//
|
||||
// ДополнительныйПараметр - Произвольный - параметр, соответствующий виду предупреждения.
|
||||
//
|
||||
Процедура ПоказатьПредупреждениеБезопасности(Оповещение, ВидПредупреждения, ДополнительныйПараметр = Неопределено) Экспорт
|
||||
|
||||
Если Не ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().Свойство(ВидПредупреждения) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неверное значение параметра %1 в процедуре %2:
|
||||
|""%3"".'"),
|
||||
"ВидПредупреждения",
|
||||
"ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности",
|
||||
ВидПредупреждения);
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("Ключ", ВидПредупреждения);
|
||||
ПараметрыФормы.Вставить("ДополнительныйПараметр", ДополнительныйПараметр);
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Обработчики ожидания.
|
||||
|
||||
// Открывает окно предупреждения безопасности.
|
||||
Процедура ПоказатьПредупреждениеБезопасности() Экспорт
|
||||
// Открывает окно предупреждения безопасности после запуска, если нужно.
|
||||
Процедура ПоказатьПредупреждениеБезопасностиПослеЗапускаЕслиНужно() Экспорт
|
||||
|
||||
ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске();
|
||||
Ключ = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыРаботыКлиента, "КлючПредупрежденияБезопасности");
|
||||
Если ЗначениеЗаполнено(Ключ) Тогда
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", Новый Структура("Ключ", Ключ));
|
||||
ПоказатьПредупреждениеБезопасности(Неопределено, Ключ);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -32,6 +32,47 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает структуру имен видов предупреждений безопасности.
|
||||
// Каждое свойство содержит имя ключа структуры.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ПослеОбновления - Строка
|
||||
// * ПередДобавлениемДополнительногоОтчетаИлиОбработки - Строка
|
||||
// * ПередДобавлениемРасширений - Строка
|
||||
// * ПередВыборомФайлаОбновления - Строка
|
||||
// * ПередВыборомРоли - Строка
|
||||
// * ПриИзмененииСпискаЗапрещенныхРасширений - Строка
|
||||
// * ПередОткрытиемФайла - Строка
|
||||
// * ПередДобавлениемВнешнейКомпоненты - Строка
|
||||
// * ПередУдалениемРасширенияБезДанных - Строка
|
||||
// * ПередУдалениемРасширенияСДанными - Строка
|
||||
// * ПередОтключениемРасширенияСДанными - Строка
|
||||
//
|
||||
Функция ВидыПредупрежденийБезопасности() Экспорт
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("ПослеОбновления");
|
||||
Результат.Вставить("ПослеПоявленияПрава");
|
||||
Результат.Вставить("ПередДобавлениемДополнительногоОтчетаИлиОбработки");
|
||||
Результат.Вставить("ПередДобавлениемРасширений");
|
||||
Результат.Вставить("ПередВыборомФайлаОбновления");
|
||||
Результат.Вставить("ПередВыборомРоли");
|
||||
Результат.Вставить("ПриИзмененииСпискаЗапрещенныхРасширений");
|
||||
Результат.Вставить("ПередОткрытиемФайла");
|
||||
Результат.Вставить("ПередДобавлениемВнешнейКомпоненты");
|
||||
Результат.Вставить("ПередУдалениемРасширенияБезДанных");
|
||||
Результат.Вставить("ПередУдалениемРасширенияСДанными");
|
||||
Результат.Вставить("ПередОтключениемРасширенияСДанными");
|
||||
|
||||
Для Каждого КлючИЗначение Из Результат Цикл
|
||||
Результат[КлючИЗначение.Ключ] = КлючИЗначение.Ключ;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -82,7 +82,9 @@
|
||||
//
|
||||
// * УдалятьФайлыПослеОтправки - Булево - удалять временные файлы после отправки сообщения.
|
||||
// * Предмет - ЛюбаяСсылка - предмет письма.
|
||||
// * ИнтерактивныйВыборПолучателей - Булево - по умолчанию Ложь.
|
||||
// * ИнтерактивныйВыборПолучателей - Булево - если указать Истина, то при подготовке нового письма всегда
|
||||
// запрашивать выбор контактов. В противном случае в исходящее письмо автоматически подбираются все
|
||||
// подходящие контакты из документа, что может быть неудобно, когда контактов очень много.
|
||||
//
|
||||
Функция ПараметрыОтправкиПисьма() Экспорт
|
||||
ПараметрыПисьма = Новый Структура;
|
||||
@@ -219,8 +221,9 @@
|
||||
ПараметрыФормы.Вставить("Получатели", ПараметрыОтправки.Получатель);
|
||||
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать")
|
||||
И ПараметрыОтправки.ИнтерактивныйВыборПолучателей И ЗначениеЗаполнено(ПараметрыОтправки.Получатель)
|
||||
И ПараметрыОтправки.Получатель.Количество() > 1 Тогда
|
||||
И ПараметрыОтправки.ИнтерактивныйВыборПолучателей
|
||||
И (ПараметрыОтправки.Свойство("ОтключитьВыборПолучателей") = Ложь Или ПараметрыОтправки.ОтключитьВыборПолучателей = Ложь)
|
||||
И ЗначениеЗаполнено(ПараметрыОтправки.Получатель) И ПараметрыОтправки.Получатель.Количество() > 1 Тогда
|
||||
|
||||
ПараметрыФормы.Вставить("ПропуститьВыборФорматаВложений", Истина);
|
||||
|
||||
@@ -243,14 +246,16 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОповещениеОЗакрытииФормы = ПараметрыОтправки.ОповещениеОЗакрытииФормы;
|
||||
ПараметрыОтправки.Удалить("ОповещениеОЗакрытииФормы");
|
||||
ПараметрыОтправки.Получатель = Результат.Получатели;
|
||||
|
||||
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия")
|
||||
И СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().СозданиеИсходящихПисемДоступно Тогда
|
||||
МодульВзаимодействияКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ВзаимодействияКлиент");
|
||||
МодульВзаимодействияКлиент.ОткрытьФормуОтправкиПисьма(ПараметрыОтправки, ПараметрыОтправки.ОповещениеОЗакрытииФормы);
|
||||
МодульВзаимодействияКлиент.ОткрытьФормуОтправкиПисьма(ПараметрыОтправки, ОповещениеОЗакрытииФормы);
|
||||
Иначе
|
||||
ОткрытьПростуюФормуОтправкиПочтовогоСообщения(ПараметрыОтправки, ПараметрыОтправки.ОповещениеОЗакрытииФормы);
|
||||
ОткрытьПростуюФормуОтправкиПочтовогоСообщения(ПараметрыОтправки, ОповещениеОЗакрытииФормы);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -269,13 +274,6 @@
|
||||
ВыполнитьОбработкуОповещения(ОбработчикРезультата, Ложь);
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверитьНастройкиУчетнойЗаписи(УчетнаяЗапись, Форма) Экспорт
|
||||
|
||||
Параметры = Новый Структура("УчетнаяЗапись", УчетнаяЗапись);
|
||||
ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ПроверкаНастроекУчетнойЗаписи", Параметры, Форма);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СписокПолучателейИзСтроки(Знач Получатели)
|
||||
|
||||
Результат = Новый СписокЗначений;
|
||||
|
||||
@@ -694,15 +694,20 @@
|
||||
ПараметрыЗапроса.Вставить("username", НастройкиПользователя.Логин);
|
||||
ПараметрыЗапроса.Вставить("resource", НастройкиПользователя.Подключение.ИдентификаторПодписи);
|
||||
ПараметрыЗапроса.Вставить("grant_type", "password");
|
||||
СекретСервисногоКлиента = СервисКриптографииDSSСлужебный.ПолучитьЗакрытыеДанные(КлючСервисногоКлиента(НастройкиПользователя),
|
||||
"СекретСервисногоКлиента", Истина).Значение;
|
||||
|
||||
Если НастройкиПользователя.ПервичнаяАутентификация = Перечисления.СпособыАвторизацииDSS.Первичный_СервисныйКлиент Тогда
|
||||
СекретСервисногоКлиента = СервисКриптографииDSSСлужебный.ПолучитьЗакрытыеДанные(КлючСервисногоКлиента(НастройкиПользователя),
|
||||
"СекретСервисногоКлиента", Истина).Значение;
|
||||
ПараметрыЗапроса.Вставить("password", "");
|
||||
ЗаголовкиЗапроса.Вставить("Authorization",
|
||||
ПолучитьПредставлениеСекрета(НастройкиПользователя.Подключение.СервисныйКлиент, СекретСервисногоКлиента));
|
||||
Иначе
|
||||
ИначеЕсли ПустаяСтрока(СекретСервисногоКлиента) ИЛИ ПустаяСтрока(НастройкиПользователя.Подключение.СервисныйКлиент) Тогда
|
||||
ПараметрыЗапроса.Вставить("client_id", НастройкиПользователя.Подключение.ИдентификаторКлиента);
|
||||
ПараметрыЗапроса.Вставить("password", ПолучитьЗначениеПароля(НастройкиПользователя.Пароль, НастройкиПользователя));
|
||||
Иначе
|
||||
ПараметрыЗапроса.Вставить("password", ПолучитьЗначениеПароля(НастройкиПользователя.Пароль, НастройкиПользователя));
|
||||
ЗаголовкиЗапроса.Вставить("Authentication",
|
||||
ПолучитьПредставлениеСекрета(НастройкиПользователя.Подключение.СервисныйКлиент, СекретСервисногоКлиента));
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваПодключения = СервисКриптографииDSSСлужебный.ПодготовитьСвойстваПодключения(НастройкиПользователя.Подключение, АдресПодключения);
|
||||
@@ -763,18 +768,27 @@
|
||||
ВременныйФайл = ПолучитьИмяВременногоФайла("pfx");
|
||||
СертификатАвторизации.Записать(ВременныйФайл);
|
||||
|
||||
СекретСервисногоКлиента = СервисКриптографииDSSСлужебный.ПолучитьЗакрытыеДанные(КлючСервисногоКлиента(НастройкиПользователя),
|
||||
"СекретСервисногоКлиента", Истина).Значение;
|
||||
СертификатКлиента = Новый СертификатКлиентаФайл(ВременныйФайл, ПолучитьЗначениеПароля(НастройкиПользователя.ПарольСертификата, НастройкиПользователя));
|
||||
|
||||
ЗаголовкиЗапроса = Новый Соответствие;
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("client_id", НастройкиПользователя.Подключение.ИдентификаторКлиента);
|
||||
ПараметрыЗапроса.Вставить("response_type", "code");
|
||||
ПараметрыЗапроса.Вставить("scope", "dss+offline_access");
|
||||
ПараметрыЗапроса.Вставить("redirect_uri", НастройкиПользователя.Подключение.Заглушка);
|
||||
ПараметрыЗапроса.Вставить("resource", НастройкиПользователя.Подключение.ИдентификаторПодписи);
|
||||
ПараметрыЗапроса.Вставить("promt", "none");
|
||||
|
||||
Если ПустаяСтрока(СекретСервисногоКлиента) ИЛИ (НастройкиПользователя.Подключение.СервисныйКлиент) Тогда
|
||||
ПараметрыЗапроса.Вставить("client_id", НастройкиПользователя.Подключение.ИдентификаторКлиента);
|
||||
Иначе
|
||||
ЗаголовкиЗапроса.Вставить("Authentication",
|
||||
ПолучитьПредставлениеСекрета(НастройкиПользователя.Подключение.СервисныйКлиент, СекретСервисногоКлиента));
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваПодключения = СервисКриптографииDSSСлужебный.ПодготовитьСвойстваПодключения(НастройкиПользователя.Подключение, АдресПодключения);
|
||||
Соединение = СервисКриптографииDSSСлужебный.ПодготовитьПодключение(СвойстваПодключения, СертификатКлиента, ПараметрыОперации);
|
||||
РезультатЗапроса = СервисКриптографииDSSСлужебный.ВыполнитьМетодСервиса(Соединение, СвойстваПодключения.АдресПодключения, ПараметрыЗапроса, "GET" , , , ПараметрыОперации);
|
||||
РезультатЗапроса = СервисКриптографииDSSСлужебный.ВыполнитьМетодСервиса(Соединение, СвойстваПодключения.АдресПодключения, ПараметрыЗапроса, "GET", ЗаголовкиЗапроса, , ПараметрыОперации);
|
||||
|
||||
УдалитьФайлы(ВременныйФайл);
|
||||
|
||||
@@ -1839,10 +1853,16 @@
|
||||
//
|
||||
Функция ВыполнитьЗапросКСервису(НастройкиПользователя, АдресПодключения, ПараметрыЗапроса, HTTPМетод, ТипСодержания, ПараметрыОперации = Неопределено) Экспорт
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
СекретПользователя = ПолучитьПредставлениеСекрета(НастройкиПользователя, ПолучитьЗначениеПароля(НастройкиПользователя.Пароль, НастройкиПользователя));
|
||||
Заголовки = Новый Соответствие;
|
||||
СекретПользователя = ПолучитьПредставлениеСекрета(НастройкиПользователя, ПолучитьЗначениеПароля(НастройкиПользователя.Пароль, НастройкиПользователя));
|
||||
СекретСервисногоКлиента = СервисКриптографииDSSСлужебный.ПолучитьЗакрытыеДанные(КлючСервисногоКлиента(НастройкиПользователя),
|
||||
"СекретСервисногоКлиента", Истина).Значение;
|
||||
Заголовки.Вставить("Authorization", СекретПользователя);
|
||||
|
||||
Если ЗначениеЗаполнено(СекретСервисногоКлиента) И ЗначениеЗаполнено(НастройкиПользователя.Подключение.СервисныйКлиент) Тогда
|
||||
Заголовки.Вставить("Authentication",
|
||||
ПолучитьПредставлениеСекрета(НастройкиПользователя.Подключение.СервисныйКлиент, СекретСервисногоКлиента));
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваПодключения = СервисКриптографииDSSСлужебный.ПодготовитьСвойстваПодключения(НастройкиПользователя.Подключение, АдресПодключения);
|
||||
Соединение = СервисКриптографииDSSСлужебный.ПодготовитьПодключение(СвойстваПодключения, Неопределено, ПараметрыОперации);
|
||||
РезультатЗапроса = СервисКриптографииDSSСлужебный.ВыполнитьМетодСервиса(Соединение,
|
||||
|
||||
@@ -7275,7 +7275,7 @@
|
||||
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные"),
|
||||
НСтр("ru = 'Логин и пароль'"));
|
||||
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СервисныйКлиент"),
|
||||
НСтр("ru = 'Логин'"));
|
||||
НСтр("ru = 'Сервисный клиент'"));
|
||||
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_ДвухФакторная"),
|
||||
НСтр("ru = 'Логин и пароль с дополнительным подтверждением'"));
|
||||
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СертификатАвторизации"),
|
||||
|
||||
@@ -840,7 +840,7 @@
|
||||
ВызватьФоновоеЗадание = НЕ ВызватьДиалог;
|
||||
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СервисныйКлиент") Тогда
|
||||
ВызватьДиалог = ЭтоОшибка;
|
||||
ВызватьФоновоеЗадание = Ложь;
|
||||
ВызватьФоновоеЗадание = НЕ ВызватьДиалог;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
// Вызывается после запуска конфигурации, открывает окно предупреждения безопасности.
|
||||
Процедура ПоказатьПредупреждениеБезопасностиПослеЗапуска() Экспорт
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности();
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасностиПослеЗапускаЕслиНужно();
|
||||
КонецПроцедуры
|
||||
|
||||
// Показывает сообщение пользователю о недостаточном объеме оперативной памяти.
|
||||
|
||||
@@ -1258,14 +1258,14 @@
|
||||
// ПараметрыФормы - см. СтандартныеПодсистемыКлиент.ПараметрыРедактораТабличногоДокумента
|
||||
//
|
||||
Процедура ПоказатьРедакторТабличногоДокумента(Знач ТабличныйДокумент, Знач ПараметрыФормы = Неопределено,
|
||||
Знач ОписаниеОповещенияОЗакрытии = Неопределено) Экспорт
|
||||
Знач ОписаниеОповещенияОЗакрытии = Неопределено, Владелец = Неопределено) Экспорт
|
||||
|
||||
Если ПараметрыФормы = Неопределено Тогда
|
||||
ПараметрыФормы = ПараметрыРедактораТабличногоДокумента();
|
||||
КонецЕсли;
|
||||
ПараметрыФормы.ТабличныйДокумент = ТабличныйДокумент;
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.РедактированиеТабличногоДокумента", ПараметрыФормы);
|
||||
ОткрытьФорму("ОбщаяФорма.РедактированиеТабличногоДокумента", ПараметрыФормы, Владелец);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -597,7 +597,7 @@
|
||||
|
||||
Функция ОписаниеТипаВсеСсылки() Экспорт
|
||||
|
||||
ВсеСсылки = Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
|
||||
Возврат Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
|
||||
Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(
|
||||
Справочники.ТипВсеСсылки(),
|
||||
Документы.ТипВсеСсылки().Типы()),
|
||||
@@ -609,14 +609,7 @@
|
||||
БизнесПроцессы.ТипВсеСсылки().Типы()),
|
||||
БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().Типы()),
|
||||
Задачи.ТипВсеСсылки().Типы());
|
||||
|
||||
Для Каждого ВнешнийИсточник Из Метаданные.ВнешниеИсточникиДанных Цикл
|
||||
ВсеСсылки = Новый ОписаниеТипов(ВсеСсылки,
|
||||
ВнешниеИсточникиДанных[ВнешнийИсточник.Имя].Таблицы.ТипВсеСсылки().Типы());
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ВсеСсылки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоСеансДлительнойОперации() Экспорт
|
||||
|
||||
@@ -1873,6 +1873,11 @@
|
||||
НастройкиВнедрения = НастройкиВнедрения();
|
||||
СвойстваВидовДоступа = СвойстваВидовДоступа();
|
||||
|
||||
СлужебныеТипы = Новый Массив;
|
||||
СлужебныеТипы.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных"));
|
||||
СлужебныеТипы.Добавить(Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений"));
|
||||
СлужебныеТипы.Добавить(Тип("ПеречислениеСсылка.ДополнительныеЗначенияДоступа"));
|
||||
|
||||
// ОпределяемыйТип.ЗначениеДоступа
|
||||
ТипыГруппИЗначений = Новый Массив;
|
||||
Для Каждого КлючИЗначение Из СвойстваВидовДоступа.ПоТипамГруппИЗначений Цикл
|
||||
@@ -1881,6 +1886,7 @@
|
||||
ТребуемыйТипЗначенияДоступа = Новый ОписаниеТипов(
|
||||
СтрСоединить(НастройкиВнедрения.ЗначенияДоступа, ","));
|
||||
ТребуемыйТипЗначенияДоступа = Новый ОписаниеТипов(ТребуемыйТипЗначенияДоступа, ТипыГруппИЗначений);
|
||||
ТребуемыйТипЗначенияДоступа = Новый ОписаниеТипов(ТребуемыйТипЗначенияДоступа, СлужебныеТипы);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипЗначенияДоступа,
|
||||
Метаданные.РегистрыСведений.ЗначенияГруппДоступа.Измерения.ЗначениеДоступа);
|
||||
@@ -1928,6 +1934,7 @@
|
||||
МетаданныеРегистраКлючей = Метаданные.РегистрыСведений[ИмяРегистраКлючей];
|
||||
КоличествоПолей = УправлениеДоступомСлужебныйПовтИсп.КоличествоОпорныхПолейРегистра(ИмяРегистраКлючей);
|
||||
ТребуемыйТипПоля = Новый ОписаниеТипов(СтрСоединить(ОписаниеРегистровКлючей.Значение.ИменаТипов, ","));
|
||||
ТребуемыйТипПоля = Новый ОписаниеТипов(ТребуемыйТипПоля, СлужебныеТипы);
|
||||
Для НомерПоля = 1 По КоличествоПолей Цикл
|
||||
ИмяПоля = СтрШаблон("Поле%1", НомерПоля);
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипПоля,
|
||||
@@ -1945,7 +1952,8 @@
|
||||
ПустаяСсылка = МенеджерОбъекта.ПустаяСсылка();
|
||||
ТипыСсылокОбъектовПодписок.Добавить(ТипЗнч(ПустаяСсылка));
|
||||
КонецЦикла;
|
||||
ТребуемыйТипТаблицСЗаписьюНаборовЗначенийДоступа = Новый ОписаниеТипов(ТипыСсылокОбъектовПодписок);
|
||||
ТребуемыйТипТаблицСЗаписьюНаборовЗначенийДоступа = Новый ОписаниеТипов(
|
||||
Новый ОписаниеТипов(ТипыСсылокОбъектовПодписок),, СлужебныеТипы);
|
||||
|
||||
ДобавитьОбъектПланируемыйКУдалению(Объекты, ТребуемыйТипТаблицСЗаписьюНаборовЗначенийДоступа,
|
||||
Метаданные.РегистрыСведений.НаборыЗначенийДоступа.Измерения.Объект);
|
||||
@@ -2309,6 +2317,20 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// * Задание - РегламентноеЗадание
|
||||
//
|
||||
Процедура ПередЗапускомРегламентногоЗаданияНеВФоне(Задание) Экспорт
|
||||
|
||||
Если Задание.Метаданные <> Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Задание.Параметры.Добавить(Истина);
|
||||
Задание.Параметры.Добавить(Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обработчики событий подсистемы Пользователи.
|
||||
|
||||
// См. ПользователиПереопределяемый.ПриОпределенииНастроек.
|
||||
@@ -14480,8 +14502,8 @@
|
||||
Процедура ОбработатьЗаданияСОшибками(Контекст)
|
||||
|
||||
Отбор = Новый Структура("БылаОшибка", Истина);
|
||||
ЗаданияСОшибкам = Контекст.Задания.НайтиСтроки(Отбор);
|
||||
Если Не ЗначениеЗаполнено(ЗаданияСОшибкам) Тогда
|
||||
ЗаданияСОшибками = Контекст.Задания.НайтиСтроки(Отбор);
|
||||
Если Не ЗначениеЗаполнено(ЗаданияСОшибками) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Контекст.ОбработкаЗавершена = Ложь;
|
||||
@@ -14491,7 +14513,7 @@
|
||||
ТекстыОшибок.Добавить(Контекст.ТекстОшибкиЗавершения);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Задание Из ЗаданияСОшибкам Цикл
|
||||
Для Каждого Задание Из ЗаданияСОшибками Цикл
|
||||
Контекст.ОбработкаЗавершена = Ложь;
|
||||
ТекстыОшибок.Добавить(Задание.ТекстОшибки);
|
||||
КонецЦикла;
|
||||
|
||||
@@ -517,6 +517,24 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Открывает форму ОбновлениеДоступаНаУровнеЗаписей.
|
||||
//
|
||||
// Параметры:
|
||||
// ВыключитьАвтообновлениеПрогресса - Булево
|
||||
// ПоказатьПрогрессПоОтдельнымСпискам - Булево
|
||||
//
|
||||
Процедура ОткрытьФормуОбновлениеДоступаНаУровнеЗаписей(ВыключитьАвтообновлениеПрогресса = Ложь,
|
||||
ПоказатьПрогрессПоОтдельнымСпискам = Ложь) Экспорт
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("ВыключитьАвтообновлениеПрогресса", ВыключитьАвтообновлениеПрогресса);
|
||||
ПараметрыФормы.Вставить("ПоказатьПрогрессПоОтдельнымСпискам", ПоказатьПрогрессПоОтдельнымСпискам);
|
||||
|
||||
ОткрытьФорму("РегистрСведений.ОбновлениеКлючейДоступаКДанным.Форма.ОбновлениеДоступаНаУровнеЗаписей",
|
||||
ПараметрыФормы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -190,6 +190,11 @@
|
||||
ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
|
||||
ПараметрыОткрытия.Вставить("ОбъектыПечати", ОбъектыПечати);
|
||||
ПараметрыОткрытия.Вставить("ПараметрыПечати", ПараметрыПечати);
|
||||
ПараметрыОткрытия.Вставить("ИменаМакетов", Новый Массив);
|
||||
|
||||
Для Каждого ОписаниеПечатнойФормы Из КоллекцияПечатныхФорм Цикл
|
||||
ПараметрыОткрытия.ИменаМакетов.Добавить(ОписаниеПечатнойФормы.ИмяМакета);
|
||||
КонецЦикла;
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);
|
||||
|
||||
|
||||
@@ -3206,12 +3206,12 @@
|
||||
ВыводТекста = Истина;
|
||||
ВыводКартинки = Ложь;
|
||||
ЗначениеПараметра = Неопределено;
|
||||
РазмерыКартинки = Новый Структура("Ширина,Высота",0,0);
|
||||
|
||||
Для Каждого ПараметрТекст Из ПараметрыИзТекста Цикл
|
||||
|
||||
Если ДанныеОбъекта.Свойство(ПараметрТекст, ЗначениеПараметра) Тогда
|
||||
Если ТипЗнч(ЗначениеПараметра) = Тип("Структура") Тогда
|
||||
РазмерыКартинки = Новый Структура("Ширина,Высота",0,0);
|
||||
ЗаполнитьЗначенияСвойств(РазмерыКартинки, ЗначениеПараметра);
|
||||
ЗначениеПараметра = СокрЛП(ЗначениеПараметра.АдресКартинки);
|
||||
Иначе
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
ДополнительныеПараметры.Вставить("ДляРедактирования", ДляРедактирования);
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ОткрытьФайлПослеПодтверждения", ЭтотОбъект, ДополнительныеПараметры);
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("Ключ", "ПередОткрытиемФайла");
|
||||
ПараметрыФормы.Вставить("ИмяФайла", ДанныеФайла.ИмяФайла);
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы, , , , , Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередОткрытиемФайла,
|
||||
ДанныеФайла.ИмяФайла);
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1415,7 +1415,7 @@
|
||||
СвойстваСертификата);
|
||||
|
||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='Не действует сертификат полученной метки времени: %1
|
||||
НСтр("ru='Не прошел проверку сертификат полученной метки времени: %1
|
||||
|%2'"), ОписаниеОшибки, СведенияОСертификате);
|
||||
|
||||
ВызватьИсключение ОписаниеОшибки;
|
||||
@@ -1714,6 +1714,15 @@
|
||||
// или произошла ошибка указанная в параметре ОписаниеОшибки.
|
||||
//
|
||||
Функция ПроверитьПодпись(МенеджерКриптографии, ИсходныеДанные, Подпись, ОписаниеОшибки = Null, НаДату = Неопределено, РезультатСтруктура = Неопределено) Экспорт
|
||||
|
||||
Если РезультатСтруктура <> Неопределено Тогда
|
||||
ОжидаемыеЗначения = Новый Массив;
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные());
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат());
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ЭлектроннаяПодпись.ПроверитьПодпись",
|
||||
"РезультатСтруктура.ПараметрыПроверкиСертификата", РезультатСтруктура.ПараметрыПроверкиСертификата, Тип("Строка"),, ОжидаемыеЗначения);
|
||||
КонецЕсли;
|
||||
|
||||
РезультатПроверки = Ложь;
|
||||
НеверныйХеш = Неопределено;
|
||||
@@ -1967,16 +1976,29 @@
|
||||
ОписаниеОшибки = Null;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = ЭлектроннаяПодписьСлужебный.ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметры.ДляПроверкиПодписи = Истина;
|
||||
Если РезультатСтруктура = Неопределено
|
||||
Или РезультатСтруктура.ПараметрыПроверкиСертификата <> ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
|
||||
ДополнительныеПараметры = ЭлектроннаяПодписьСлужебный.ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметры.ДляПроверкиПодписи = Истина;
|
||||
Если РезультатСтруктура = Неопределено Тогда
|
||||
ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные();
|
||||
Иначе
|
||||
ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра = РезультатСтруктура.ПараметрыПроверкиСертификата;
|
||||
КонецЕсли;
|
||||
|
||||
РезультатПроверкиСертификата = ЭлектроннаяПодписьСлужебный.ПроверитьСертификат(
|
||||
МенеджерКриптографииДляПроверки, Сертификат, ОписаниеОшибки, ДатаДляПроверкиСертификатаПодписи, ДополнительныеПараметры);
|
||||
|
||||
Если РезультатПроверкиСертификата = Истина Тогда
|
||||
ЗаполнитьРезультатПроверкиПодписи(Истина, РезультатСтруктура);
|
||||
Иначе
|
||||
ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура, Неопределено, Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
РезультатПроверкиСертификата = ЭлектроннаяПодписьСлужебный.ПроверитьСертификат(
|
||||
МенеджерКриптографииДляПроверки, Сертификат, ОписаниеОшибки, ДатаДляПроверкиСертификатаПодписи, ДополнительныеПараметры);
|
||||
|
||||
Если РезультатПроверкиСертификата = Истина Тогда
|
||||
ЗаполнитьРезультатПроверкиПодписи(Истина, РезультатСтруктура);
|
||||
Иначе
|
||||
ЗаполнитьРезультатПроверкиПодписи(ОписаниеОшибки, РезультатСтруктура, Неопределено, Ложь);
|
||||
РезультатПроверкиСертификата = Истина;
|
||||
ЗаполнитьРезультатПроверкиПодписи(Истина, РезультатСтруктура);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РезультатПроверкиСертификата;
|
||||
@@ -2000,14 +2022,15 @@
|
||||
// НаДату - Дата - проверить сертификат на указанную дату.
|
||||
// Если параметр не указан или указана пустая дата,
|
||||
// тогда проверять на текущую дату сеанса.
|
||||
// ПараметрыПроверки - см. ЭлектроннаяПодписьКлиент.ПараметрыПроверкиСертификата
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина, если проверка выполнена успешно,
|
||||
// Ложь, если не удалось получить менеджер криптографии (когда не указан).
|
||||
//
|
||||
Функция ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки = Null, НаДату = Неопределено) Экспорт
|
||||
Функция ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки = Null, НаДату = Неопределено, ПараметрыПроверки = Неопределено) Экспорт
|
||||
|
||||
Возврат ЭлектроннаяПодписьСлужебный.ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки, НаДату);
|
||||
Возврат ЭлектроннаяПодписьСлужебный.ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки, НаДату, ПараметрыПроверки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -2242,8 +2265,14 @@
|
||||
// Параметры:
|
||||
// Сертификат - СертификатКриптографии
|
||||
// НаДату - Неопределено, Дата - если не указана, то проверка выполняется на дату сеанса.
|
||||
// ЭтоПроверкаПодписи - Булево - это проверка подписи, предупреждение (не ошибка) не будет заполнено.
|
||||
//
|
||||
// ПараметрыПроверки - Структура:
|
||||
// * ЭтоПроверкаПодписи - Булево - это проверка подписи, предупреждение (не ошибка) не будет заполнено.
|
||||
// * ПроверятьСертификат - Строка -
|
||||
// "ПроверятьКвалифицированные" - (по умолчанию) разрешать подписывать НЭП и проверять КЭП на действительность
|
||||
// с учетом списка разрешенных неаккредитованных УЦ.
|
||||
// "ТолькоКвалифицированные" - разрешать подписывать только КЭП и не учитывать список разрешенных
|
||||
// неаккредитованных УЦ.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - результат проверки удостоверяющего центра по умолчанию:
|
||||
// * Действует - Булево - аккредитованный УЦ действует на дату проверки или проверка не выполнялась (сертификат
|
||||
@@ -2259,9 +2288,9 @@
|
||||
// ** Причина - Строка - причина ошибки для отображения в расширенной форме ошибки.
|
||||
// ** Решение - Строка - рекомендация для отображения в расширенной форме ошибки.
|
||||
//
|
||||
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(Сертификат, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
|
||||
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(Сертификат, НаДату = Неопределено, ПараметрыПроверки = Неопределено) Экспорт
|
||||
|
||||
Возврат ЭлектроннаяПодписьСлужебный.РезультатПроверкиУдостоверяющегоЦентраСертификата(Сертификат, НаДату, ЭтоПроверкаПодписи);
|
||||
Возврат ЭлектроннаяПодписьСлужебный.РезультатПроверкиУдостоверяющегоЦентраСертификата(Сертификат, НаДату, ПараметрыПроверки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -254,6 +254,12 @@
|
||||
// * Видимость - Булево - видимость типа подписи на форме подписания.
|
||||
// * Доступность - Булево - доступность типа подписи на форме подписания.
|
||||
// * ВыборДоверенности - Булево - показывать поле выбора доверенности.
|
||||
// * ПроверятьСертификат - Строка - режим проверки квалифицированности ЭП:
|
||||
// "ПроверятьКвалифицированные" - (по умолчанию) разрешать подписывать НЭП и проверять КЭП на действительность
|
||||
// с учетом списка разрешенных неаккредитованных УЦ.
|
||||
// "ТолькоКвалифицированные" - разрешать подписывать только КЭП и не учитывать список разрешенных
|
||||
// неаккредитованных УЦ.
|
||||
// "НеПроверятьСертификат" - не выполнять проверку сертификата.
|
||||
//
|
||||
Функция НовыйТипПодписи(ТипПодписи = Неопределено) Экспорт
|
||||
|
||||
@@ -262,6 +268,7 @@
|
||||
Структура.Вставить("Видимость", Ложь);
|
||||
Структура.Вставить("Доступность", Ложь);
|
||||
Структура.Вставить("ВыборДоверенности", Ложь);
|
||||
Структура.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
|
||||
Если ЗначениеЗаполнено(ТипПодписи) Тогда
|
||||
Структура.ТипыПодписи.Добавить(ТипПодписи);
|
||||
@@ -491,12 +498,21 @@
|
||||
// создания менеджера криптографии (когда не указан).
|
||||
// * РезультатВВидеСтруктуры - Булево - если Истина, результат будет в виде
|
||||
// см. ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи
|
||||
// * ПроверятьСертификат - Строка - режим проверки квалифицированности ЭП, применяется, если РезультатВВидеСтруктуры =
|
||||
// Истина иначе проверка работает в режиме "ПроверятьКвалифицированные".
|
||||
// "ПроверятьКвалифицированные" - (по умолчанию) разрешать подписывать НЭП и проверять КЭП на действительность
|
||||
// с учетом списка разрешенных неаккредитованных УЦ.
|
||||
// "ТолькоКвалифицированные" - разрешать подписывать только КЭП и не учитывать список разрешенных
|
||||
// неаккредитованных УЦ.
|
||||
// "НеПроверятьСертификат" - не выполнять проверку сертификата подписи.
|
||||
//
|
||||
Функция ПараметрыПроверкиПодписи() Экспорт
|
||||
|
||||
Структура = Новый Структура;
|
||||
Структура.Вставить("ПоказатьОшибкуСозданияМенеджераКриптографии", Истина);
|
||||
Структура.Вставить("РезультатВВидеСтруктуры", Ложь);
|
||||
Структура.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
|
||||
Возврат Структура;
|
||||
|
||||
КонецФункции
|
||||
@@ -945,13 +961,35 @@
|
||||
// НаДату - Дата - проверить сертификат на указанную дату.
|
||||
// Если параметр не указан или указана пустая дата,
|
||||
// тогда проверять на текущую дату сеанса.
|
||||
// ПараметрыПроверки - см. ПараметрыПроверкиСертификата.
|
||||
//
|
||||
Процедура ПроверитьСертификат(Оповещение, Сертификат, МенеджерКриптографии = Неопределено, НаДату = Неопределено) Экспорт
|
||||
Процедура ПроверитьСертификат(Оповещение, Сертификат, МенеджерКриптографии = Неопределено, НаДату = Неопределено, ПараметрыПроверки = Неопределено) Экспорт
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьСертификат(Оповещение, Сертификат, МенеджерКриптографии, НаДату);
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьСертификат(Оповещение, Сертификат, МенеджерКриптографии, НаДату, ПараметрыПроверки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Дополнительные параметры проверки сертификата.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - дополнительные параметры проверки сертификата:
|
||||
// * ВыполнятьПроверкуУдостоверяющегоЦентра - Строка - режим проверки квалифицированности ЭП:
|
||||
// "ПроверятьКвалифицированные" - (по умолчанию) разрешать подписывать НЭП и проверять КЭП на действительность
|
||||
// с учетом списка разрешенных неаккредитованных УЦ.
|
||||
// "ТолькоКвалифицированные" - разрешать подписывать только КЭП и не учитывать список разрешенных
|
||||
// неаккредитованных УЦ.
|
||||
// "НеПроверятьСертификат" - не выполнять проверку удостоверяющего центра сертификата.
|
||||
// * ИгнорироватьПроверкуВСпискеОтозванныхСертификатов - Булево - не проверять сертификат в списке отзыва.
|
||||
//
|
||||
Функция ПараметрыПроверкиСертификата() Экспорт
|
||||
|
||||
Структура = Новый Структура;
|
||||
Структура.Вставить("ИгнорироватьПроверкуВСпискеОтозванныхСертификатов", Ложь);
|
||||
Структура.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
Возврат Структура;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Открывает форму ПроверкаСертификата и возвращает результат проверки.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -983,6 +1021,8 @@
|
||||
// пользователю.
|
||||
// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии - по умолчанию тип, указанный в настройках,
|
||||
// если передан КонтекстОперации, возвращенный процедурой Подписать, то тип берется из него.
|
||||
// * ВыполнятьПроверкуУдостоверяющегоЦентра - см. ПараметрыПроверкиСертификата.ВыполнятьПроверкуУдостоверяющегоЦентра
|
||||
// * ИгнорироватьПроверкуВСпискеОтозванныхСертификатов - см. ПараметрыПроверкиСертификата.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов
|
||||
// * Результат - Неопределено - проверка ни разу не выполнялась.
|
||||
// - Структура - возвращаемое значение. Вставляется перед обработкой результата:
|
||||
// * ПроверкиПройдены - Булево - возвращаемое значение. Устанавливается в процедуре параметра ОбработкаРезультата.
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
// ПроверитьДополнительныеАтрибуты = Ложь
|
||||
// * ОшибкаПроверкиДополнительныхАтрибутов - Строка - ошибка при проверке сертификата и атрибутов усовершенствованной
|
||||
// подписи, таких как метка времени.
|
||||
// * ПараметрыПроверкиСертификата - см. ЭлектроннаяПодписьКлиент.ПараметрыПроверкиПодписи.ПроверятьСертификат
|
||||
//
|
||||
// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии - не заполнен при проверке подписей конверта XML.
|
||||
// * СрокДействияПоследнейМеткиВремени - Дата - срок действия сертификата, которым подписана
|
||||
@@ -149,6 +150,7 @@
|
||||
Структура.Вставить("ПодписьМатематическиВерна");
|
||||
Структура.Вставить("ОшибкаМатематическойПроверкиПодписи");
|
||||
Структура.Вставить("ОшибкаПроверкиДополнительныхАтрибутов");
|
||||
Структура.Вставить("ПараметрыПроверкиСертификата", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(
|
||||
Структура, ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиПриЧтенииИПроверке());
|
||||
|
||||
@@ -529,6 +529,7 @@
|
||||
Структура.Вставить("НаДату");
|
||||
Структура.Вставить("ЭтоПроверкаПодписи", Ложь);
|
||||
Структура.Вставить("СвойстваСертификата");
|
||||
Структура.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
|
||||
Возврат Структура;
|
||||
|
||||
@@ -574,17 +575,33 @@
|
||||
КонецФункции
|
||||
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
// Сертификат - СертификатКриптографии
|
||||
// КонтекстПроверки - см. КонтекстПроверкиУдостоверяющегоЦентраСертификата
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию
|
||||
// См. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию
|
||||
//
|
||||
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(Сертификат, КонтекстПроверки) Экспорт
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
||||
|
||||
ДанныеУдостоверяющегоЦентра = КонтекстПроверки.ДанныеУдостоверяющегоЦентра;
|
||||
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
|
||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
||||
|
||||
Если КонтекстПроверки.ПроверятьСертификат = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные() Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='Сертификат неквалифицированный, так как выпущен удостоверяющим центром %1, не аккредитованным на момент выпуска сертификата.'"),
|
||||
КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = ТекстОшибки;
|
||||
Возврат РезультатПроверкиУдостоверяющегоЦентра;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РезультатПроверкиУдостоверяющегоЦентра;
|
||||
КонецЕсли;
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
||||
РезультатПроверкиУдостоверяющегоЦентра.НайденВСпискеУдостоверяющихЦентров = Истина;
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Государственный = ДанныеУдостоверяющегоЦентра.Государственный;
|
||||
|
||||
@@ -611,20 +628,26 @@
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ЭтоКвалифицированныйСертификат Тогда
|
||||
Если КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Действует = ДанныеУдостоверяющегоЦентра.РазрешенныйНеаккредитованный;
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='Сертификат неквалифицированный, так как выпущен удостоверяющим центром %1, не аккредитованным на момент выпуска сертификата.'"),
|
||||
КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||
|
||||
Если КонтекстПроверки.ПроверятьСертификат = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные() Тогда
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = ТекстОшибки;
|
||||
Возврат РезультатПроверкиУдостоверяющегоЦентра;
|
||||
КонецЕсли;
|
||||
|
||||
Если КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Действует = ДанныеУдостоверяющегоЦентра.РазрешенныйНеаккредитованный;
|
||||
Если ДанныеУдостоверяющегоЦентра.РазрешенныйНеаккредитованный Тогда
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения = ТекстОшибки;
|
||||
Иначе
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = ТекстОшибки;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='Неквалифицированный сертификат: выпущен удостоверяющим центром %1, не аккредитованным на момент выпуска сертификата.'"),
|
||||
КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения = ТекстОшибки;
|
||||
КонецЕсли;
|
||||
Возврат РезультатПроверкиУдостоверяющегоЦентра;
|
||||
КонецЕсли;
|
||||
@@ -681,9 +704,9 @@
|
||||
// Аккредитация удостоверяющего центра прекращена.
|
||||
Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
||||
|
||||
Если СтрНачинаетсяС(КонтекстПроверки.ЗначенияПоиска, "1024001434049")
|
||||
И ЗначениеЗаполнено(ДатаПрекращенияАккредитацииУЦ)
|
||||
И ДатаПрекращенияАккредитацииУЦ - КонтекстПроверки.РазницаСУниверсальнымВременем = Дата(2024, 7, 20, 21, 0, 0) Тогда
|
||||
Если ЗначениеЗаполнено(ДатаПрекращенияАккредитацииУЦ)
|
||||
И (СтрНачинаетсяС(КонтекстПроверки.ЗначенияПоиска, "1024001434049") И ДатаПрекращенияАккредитацииУЦ - КонтекстПроверки.РазницаСУниверсальнымВременем = Дата(2024, 7, 20, 21, 0, 0)
|
||||
Или СтрНачинаетсяС(КонтекстПроверки.ЗначенияПоиска, "1197746000000") И ДатаПрекращенияАккредитацииУЦ - КонтекстПроверки.РазницаСУниверсальнымВременем = Дата(2024, 8, 15, 21, 0, 0)) Тогда
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.РазрешитьПодписание = Ложь;
|
||||
@@ -815,9 +838,9 @@
|
||||
|
||||
ДатаПредупреждения = ДатаОкончанияДействия;
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'С %1 нельзя будет подписывать документы этим сертификатом, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, будет прекращена.'"),
|
||||
Формат(ДатаОкончанияДействия, "ДЛФ=DT"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||
Формат(ДатаОкончанияДействия, "ДЛФ=D"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
|
||||
|
||||
@@ -837,9 +860,9 @@
|
||||
Если СвойстваСертификата.ДействителенДо <= НаДату + КоличествоДнейДляОповещенияОбОкончанииСрокаДействия()*24*60*60
|
||||
И (ДатаПредупреждения = Неопределено Или СвойстваСертификата.ДействителенДо < ДатаПредупреждения)Тогда
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'С %1 нельзя будет подписывать документы этим сертификатом, так как срок действия сертификата закончится.'"),
|
||||
Формат(СвойстваСертификата.ДействителенДо, "ДЛФ=DT"));
|
||||
Формат(СвойстваСертификата.ДействителенДо, "ДЛФ=D"));
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
|
||||
|
||||
|
||||
@@ -26,13 +26,13 @@
|
||||
// НаДату - Дата - проверить сертификат на указанную дату.
|
||||
// Если параметр не указан или указана пустая дата,
|
||||
// тогда проверять на текущую дату сеанса.
|
||||
// ДополнительныеПараметры -см. ДополнительныеПараметрыПроверкиСертификата
|
||||
// ДополнительныеПараметрыПроверки - см. ДополнительныеПараметрыПроверкиСертификата
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина, если проверка выполнена успешно,
|
||||
// Ложь, если не удалось получить менеджер криптографии (когда не указан).
|
||||
//
|
||||
Функция ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки = Null, НаДату = Неопределено, ДополнительныеПараметры = Неопределено) Экспорт
|
||||
Функция ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки = Null, НаДату = Неопределено, ДополнительныеПараметрыПроверки = Неопределено) Экспорт
|
||||
|
||||
ВызыватьИсключение = ОписаниеОшибки = Null;
|
||||
МенеджерКриптографииДляПроверки = МенеджерКриптографии;
|
||||
@@ -73,8 +73,28 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата();
|
||||
Если ДополнительныеПараметрыПроверки <> Неопределено Тогда
|
||||
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ДополнительныеПараметрыПроверки);
|
||||
|
||||
Если ТипЗнч(ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра) = Тип("Булево") Тогда // Для совместимости
|
||||
ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра = ?(
|
||||
ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра,
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные(),
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат());
|
||||
КонецЕсли;
|
||||
|
||||
ОжидаемыеЗначения = Новый Массив;
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные());
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат());
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ЭлектроннаяПодписьСлужебный.ПроверитьСертификат",
|
||||
"ДополнительныеПараметрыПроверки.ВыполнятьПроверкуУдостоверяющегоЦентра", ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра,
|
||||
Тип("Строка"),, ОжидаемыеЗначения);
|
||||
КонецЕсли;
|
||||
|
||||
РежимыПроверкиСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.РежимыПроверкиСертификата(
|
||||
ЗначениеЗаполнено(НаДату));
|
||||
ЗначениеЗаполнено(НаДату), ДополнительныеПараметры.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов);
|
||||
|
||||
Если МенеджерКриптографииДляПроверки = Неопределено
|
||||
Или МенеджерКриптографииДляПроверки = "СервисКриптографии" Тогда
|
||||
@@ -127,10 +147,6 @@
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ДополнительныеПараметры = Неопределено Тогда
|
||||
ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата();
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваСертификата = Неопределено;
|
||||
Если ДополнительныеПараметры.ДляПроверкиПодписи Тогда
|
||||
|
||||
@@ -148,12 +164,16 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра Тогда
|
||||
Если ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра <> ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
|
||||
ПараметрыПроверкиУдостоверяющегоЦентра = Новый Структура;
|
||||
ПараметрыПроверкиУдостоверяющегоЦентра.Вставить("ЭтоПроверкаПодписи", ДополнительныеПараметры.ДляПроверкиПодписи);
|
||||
ПараметрыПроверкиУдостоверяющегоЦентра.Вставить("ПроверятьСертификат", ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра);
|
||||
|
||||
Результат = РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатДляПроверки, НаДату,
|
||||
ДополнительныеПараметры.ДляПроверкиПодписи, СвойстваСертификата);
|
||||
ПараметрыПроверкиУдостоверяющегоЦентра, СвойстваСертификата);
|
||||
|
||||
Если Не Результат.Действует Или ДополнительныеПараметры.Свойство("Сертификат") И ЗначениеЗаполнено(Результат.Предупреждение.ТекстОшибки)
|
||||
Если Не Результат.Действует Или ЗначениеЗаполнено(ДополнительныеПараметры.Сертификат) И ЗначениеЗаполнено(Результат.Предупреждение.ТекстОшибки)
|
||||
И Не ДополнительныеПараметры.ДляПроверкиПодписи Тогда
|
||||
|
||||
ПользовательскиеНастройкиСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ПользовательскиеНастройкиСертификата(
|
||||
@@ -164,6 +184,7 @@
|
||||
Если ПользовательскиеНастройкиСертификата.ПодписаниеРазрешено <> Истина Тогда
|
||||
ОписаниеОшибки = Результат.Предупреждение.ТекстОшибки;
|
||||
ДополнительныеПараметры.Предупреждение = Результат.Предупреждение;
|
||||
ДополнительныеПараметры.Сертификат = ПользовательскиеНастройкиСертификата.СсылкаНаСертификат;
|
||||
Если ВызыватьИсключение Тогда
|
||||
ВызватьИсключение ОписаниеОшибки;
|
||||
КонецЕсли;
|
||||
@@ -172,7 +193,8 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ДополнительныеПараметры.Свойство("Сертификат") И ЗначениеЗаполнено(Результат.Предупреждение.ТекстОшибки)
|
||||
Если ЗначениеЗаполнено(ДополнительныеПараметры.Сертификат)
|
||||
И ЗначениеЗаполнено(Результат.Предупреждение.ТекстОшибки)
|
||||
И Не ДополнительныеПараметры.ДляПроверкиПодписи Тогда
|
||||
|
||||
Если ПользовательскиеНастройкиСертификата.Оповещен
|
||||
@@ -200,9 +222,11 @@
|
||||
Функция ДополнительныеПараметрыПроверкиСертификата() Экспорт
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", Истина);
|
||||
ДополнительныеПараметры.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные());
|
||||
ДополнительныеПараметры.Вставить("ДляПроверкиПодписи", Ложь);
|
||||
ДополнительныеПараметры.Вставить("ИгнорироватьПроверкуВСпискеОтозванныхСертификатов", Ложь);
|
||||
ДополнительныеПараметры.Вставить("Предупреждение");
|
||||
ДополнительныеПараметры.Вставить("Сертификат");
|
||||
|
||||
Возврат ДополнительныеПараметры;
|
||||
|
||||
@@ -643,12 +667,16 @@
|
||||
// Параметры:
|
||||
// СертификатКриптографии
|
||||
// НаДату - Неопределено, Дата
|
||||
// ЭтоПроверкаПодписи - Булево - это проверка подписи, предупреждение (не ошибка) не будет показано.
|
||||
// ПараметрыПроверки - Структура
|
||||
// * ЭтоПроверкаПодписи - это проверка подписи, предупреждение (не ошибка) не будет показано.
|
||||
// * ПроверятьСертификат - Строка - "ТолькоКвалифицированные", "ПроверятьКвалифицированные", "НеПроверятьСертификат".
|
||||
// СвойстваСертификата - см. ЭлектроннаяПодпись.СвойстваСертификата
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию
|
||||
//
|
||||
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь, СвойстваСертификата = Неопределено) Экспорт
|
||||
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено,
|
||||
Знач ПараметрыПроверки = Неопределено, СвойстваСертификата = Неопределено) Экспорт
|
||||
|
||||
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
||||
|
||||
@@ -658,6 +686,17 @@
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки = Неопределено Или ПараметрыПроверки = Ложь Или ПараметрыПроверки = Истина Тогда // для совместимости
|
||||
НовыеПараметрыПроверки = Новый Структура;
|
||||
НовыеПараметрыПроверки.Вставить("ЭтоПроверкаПодписи", ?(ПараметрыПроверки = Неопределено, Ложь, ПараметрыПроверки));
|
||||
НовыеПараметрыПроверки.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
ПараметрыПроверки = НовыеПараметрыПроверки;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки.ПроверятьСертификат = ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
|
||||
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
|
||||
СертификатКриптографии);
|
||||
@@ -679,7 +718,8 @@
|
||||
КонтекстПроверки.ЗначенияПоиска = ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска;
|
||||
КонтекстПроверки.НаДату = ?(НаДату = Неопределено, ТекущаяДатаСеанса(), НаДату);
|
||||
КонтекстПроверки.РазницаСУниверсальнымВременем = РазницаСУниверсальнымВременем();
|
||||
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
|
||||
КонтекстПроверки.ЭтоПроверкаПодписи = ПараметрыПроверки.ЭтоПроверкаПодписи;
|
||||
КонтекстПроверки.ПроверятьСертификат = ПараметрыПроверки.ПроверятьСертификат;
|
||||
|
||||
Если СвойстваСертификата = Неопределено Тогда
|
||||
КонтекстПроверки.СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(СертификатКриптографии);
|
||||
|
||||
@@ -433,7 +433,7 @@
|
||||
ОткрытьФорму("Справочник.ПрограммыЭлектроннойПодписиИШифрования.ФормаОбъекта", Новый Структура("Программа",
|
||||
ПараметрыПрограммы), ФормаВладелец,,,,ОповещениеОЗавершении, РежимОткрытияОкна);
|
||||
Иначе
|
||||
ОткрытьФорму("Справочник.ПрограммыЭлектроннойПодписиИШифрования.Форма.ПрограммаОпределеннаяАвтоматически",
|
||||
ОткрытьФорму("Справочник.ПрограммыЭлектроннойПодписиИШифрования.Форма.ПриложениеОпределенноеАвтоматически",
|
||||
Новый Структура("Программа", ПараметрыПрограммы), ФормаВладелец,,,, ОповещениеОЗавершении, РежимОткрытияОкна);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1495,6 +1495,14 @@
|
||||
ПараметрыДляПроверки.ПоказатьОшибкуСозданияМенеджераКриптографии = ПараметрыПроверки;
|
||||
ИначеЕсли ТипЗнч(ПараметрыПроверки) = Тип("Структура") Тогда
|
||||
ЗаполнитьЗначенияСвойств(ПараметрыДляПроверки, ПараметрыПроверки);
|
||||
ОжидаемыеЗначения = Новый Массив;
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
Если ПараметрыДляПроверки.РезультатВВидеСтруктуры Тогда
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные());
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат());
|
||||
КонецЕсли;
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьПодпись",
|
||||
"ПараметрыПроверки.ПроверятьСертификат", ПараметрыДляПроверки.ПроверятьСертификат, Тип("Строка"),, ОжидаемыеЗначения);
|
||||
КонецЕсли;
|
||||
|
||||
Контекст = Новый Структура;
|
||||
@@ -1505,11 +1513,14 @@
|
||||
Контекст.Вставить("НаДату", НаДату);
|
||||
Контекст.Вставить("ПроверятьНаСервере",
|
||||
ЭлектроннаяПодписьКлиент.ПроверятьЭлектронныеПодписиНаСервере());
|
||||
|
||||
|
||||
Если ПараметрыДляПроверки.РезультатВВидеСтруктуры Тогда
|
||||
Контекст.Вставить("РезультатПроверки", ЭлектроннаяПодписьКлиентСервер.РезультатПроверкиПодписи());
|
||||
Контекст.РезультатПроверки.ПараметрыПроверкиСертификата = ПараметрыДляПроверки.ПроверятьСертификат;
|
||||
Контекст.Вставить("ПроверятьСертификат", ПараметрыДляПроверки.ПроверятьСертификат);
|
||||
Иначе
|
||||
Контекст.Вставить("РезультатПроверки", Неопределено);
|
||||
Контекст.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Контекст.Подпись) = Тип("Строка")
|
||||
@@ -1769,20 +1780,27 @@
|
||||
// Продолжение процедуры ПроверитьПодпись.
|
||||
Процедура ПроверитьПодписьНаКлиентеПослеПроверкиПодписиXMLDSig(Данные, Контекст) Экспорт
|
||||
|
||||
Если Контекст.Свойство("ПроверитьСертификатНаКлиенте") Тогда
|
||||
МенеджерКриптографии = Контекст.МенеджерКриптографии;
|
||||
Если Контекст.ПроверятьСертификат = ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
ПроверитьПодписьПослеПроверкиСертификатаПодписи(Истина, Контекст);
|
||||
Иначе
|
||||
|
||||
Если Контекст.Свойство("ПроверитьСертификатНаКлиенте") Тогда
|
||||
МенеджерКриптографии = Контекст.МенеджерКриптографии;
|
||||
Иначе
|
||||
// Проверка сертификата на сервере и на клиенте.
|
||||
МенеджерКриптографии = Неопределено;
|
||||
МенеджерКриптографии = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметры.ДляПроверкиПодписи = Истина;
|
||||
ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра = Контекст.ПроверятьСертификат;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ПроверитьПодписьПослеПроверкиСертификатаПодписи", ЭтотОбъект, Контекст);
|
||||
|
||||
ПроверитьСертификат(Оповещение, Данные.Сертификат, МенеджерКриптографии, Данные.ДатаПодписания,
|
||||
ДополнительныеПараметры);
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметры.ДляПроверкиПодписи = Истина;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ПроверитьПодписьПослеПроверкиСертификатаПодписи", ЭтотОбъект, Контекст);
|
||||
|
||||
ПроверитьСертификат(Оповещение, Данные.Сертификат, МенеджерКриптографии, Данные.ДатаПодписания, ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьПодпись.
|
||||
@@ -1873,16 +1891,22 @@
|
||||
|
||||
Контекст.Вставить("Сертификат", Сертификат);
|
||||
|
||||
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаДляПроверкиСертификатаПодписи(СвойстваПодписи);
|
||||
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
|
||||
ДатаПодписания = Контекст.НаДату;
|
||||
Если Контекст.ПроверятьСертификат = ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
ПроверитьПодписьПослеПроверкиСертификатаПодписи(Истина, Контекст);
|
||||
Иначе
|
||||
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаДляПроверкиСертификатаПодписи(СвойстваПодписи);
|
||||
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
|
||||
ДатаПодписания = Контекст.НаДату;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметры.ДляПроверкиПодписи = Истина;
|
||||
ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра = Контекст.ПроверятьСертификат;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ПроверитьПодписьПослеПроверкиСертификатаПодписи", ЭтотОбъект, Контекст);
|
||||
ПроверитьСертификат(Оповещение, Контекст.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания,
|
||||
ДополнительныеПараметры);
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = ДополнительныеПараметрыПроверкиСертификата();
|
||||
ДополнительныеПараметры.ДляПроверкиПодписи = Истина;
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ПроверитьПодписьПослеПроверкиСертификатаПодписи", ЭтотОбъект, Контекст);
|
||||
ПроверитьСертификат(Оповещение, Контекст.Сертификат, Контекст.МенеджерКриптографии, ДатаПодписания, ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1960,12 +1984,32 @@
|
||||
Контекст.МенеджерКриптографии = МенеджерКриптографии;
|
||||
Контекст.НаДату = НаДату;
|
||||
|
||||
ДополнительныеПараметрыПроверкиСертификата = ДополнительныеПараметрыПроверкиСертификата();
|
||||
Если ДополнительныеПараметры <> Неопределено Тогда
|
||||
Контекст.ПоказатьОшибку = ДополнительныеПараметры.ПоказатьОшибку;
|
||||
Контекст.ОбъединитьОшибкиДанныхСертификата = ДополнительныеПараметры.ОбъединитьОшибкиДанныхСертификата;
|
||||
Контекст.ПроверитьВСервисеПослеОшибки = ДополнительныеПараметры.ПроверитьВСервисеПослеОшибки;
|
||||
Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра = ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра;
|
||||
Контекст.ДляПроверкиПодписи = ДополнительныеПараметры.ДляПроверкиПодписи;
|
||||
ЗаполнитьЗначенияСвойств(ДополнительныеПараметрыПроверкиСертификата, ДополнительныеПараметры);
|
||||
|
||||
Если ТипЗнч(ДополнительныеПараметрыПроверкиСертификата.ВыполнятьПроверкуУдостоверяющегоЦентра) = Тип("Булево") Тогда // Для совместимости
|
||||
ДополнительныеПараметрыПроверкиСертификата.ВыполнятьПроверкуУдостоверяющегоЦентра = ?(
|
||||
ДополнительныеПараметрыПроверкиСертификата.ВыполнятьПроверкуУдостоверяющегоЦентра,
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные(),
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат());
|
||||
КонецЕсли;
|
||||
|
||||
ОжидаемыеЗначения = Новый Массив;
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные());
|
||||
ОжидаемыеЗначения.Добавить(ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат());
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьСертификат",
|
||||
"ДополнительныеПараметры.ВыполнятьПроверкуУдостоверяющегоЦентра", ДополнительныеПараметрыПроверкиСертификата.ВыполнятьПроверкуУдостоверяющегоЦентра,
|
||||
Тип("Строка"),, ОжидаемыеЗначения);
|
||||
|
||||
Контекст.ПоказатьОшибку = ДополнительныеПараметрыПроверкиСертификата.ПоказатьОшибку;
|
||||
Контекст.ОбъединитьОшибкиДанныхСертификата = ДополнительныеПараметрыПроверкиСертификата.ОбъединитьОшибкиДанныхСертификата;
|
||||
Контекст.ПроверитьВСервисеПослеОшибки = ДополнительныеПараметрыПроверкиСертификата.ПроверитьВСервисеПослеОшибки;
|
||||
Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра = ДополнительныеПараметрыПроверкиСертификата.ВыполнятьПроверкуУдостоверяющегоЦентра;
|
||||
Контекст.ДляПроверкиПодписи = ДополнительныеПараметрыПроверкиСертификата.ДляПроверкиПодписи;
|
||||
Контекст.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов = ДополнительныеПараметрыПроверкиСертификата.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.ОписаниеОшибкиНаКлиенте = Неопределено;
|
||||
@@ -2004,6 +2048,8 @@
|
||||
// * Оповещение - см. ПроверитьСертификат.Оповещение
|
||||
// * ОбъединитьОшибкиДанныхСертификата - Булево
|
||||
// * ПроверитьВСервисеПослеОшибки - Булево
|
||||
// * ВыполнятьПроверкуУдостоверяющегоЦентра - Строка
|
||||
// * ИгнорироватьПроверкуВСпискеОтозванныхСертификатов - Булево
|
||||
//
|
||||
Функция КонтекстПроверкиСертификата()
|
||||
|
||||
@@ -2022,10 +2068,11 @@
|
||||
Контекст.Вставить("ПоказатьОшибку", Истина);
|
||||
Контекст.Вставить("ОбъединитьОшибкиДанныхСертификата", Истина);
|
||||
Контекст.Вставить("ПроверитьВСервисеПослеОшибки", Истина);
|
||||
Контекст.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", Истина);
|
||||
Контекст.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
Контекст.Вставить("ДляПроверкиПодписи", Ложь);
|
||||
Контекст.Вставить("ДействияДляУстраненияОшибок", Новый Соответствие);
|
||||
Контекст.Вставить("СвойстваСертификата");
|
||||
Контекст.Вставить("ИгнорироватьПроверкуВСпискеОтозванныхСертификатов", Ложь);
|
||||
|
||||
Возврат Контекст;
|
||||
|
||||
@@ -2039,7 +2086,8 @@
|
||||
// * ОбъединитьОшибкиДанныхСертификата - Булево - объединить ошибки проверки данных сертификата на клиенте и сервере в
|
||||
// строку.
|
||||
// * ПроверитьВСервисеПослеОшибки - Булево - в случае ошибки при проверке данных сертификата на клиенте, проверить в сервисе.
|
||||
// * ВыполнятьПроверкуУдостоверяющегоЦентра - Булево - проверять юридическую значимость в зависимости от издателя.
|
||||
// * ВыполнятьПроверкуУдостоверяющегоЦентра - см. ЭлектроннаяПодписьКлиент.ПараметрыПроверкиСертификата.ВыполнятьПроверкуУдостоверяющегоЦентра.
|
||||
//
|
||||
// * ДляПроверкиПодписи - Булево - не показывать оповещения для сертификатов, возвращать результат,
|
||||
// как указано в вызывающей процедуре проверки подписи.
|
||||
//
|
||||
@@ -2049,8 +2097,9 @@
|
||||
Структура.Вставить("ПоказатьОшибку", Истина);
|
||||
Структура.Вставить("ОбъединитьОшибкиДанныхСертификата", Истина);
|
||||
Структура.Вставить("ПроверитьВСервисеПослеОшибки", Истина);
|
||||
Структура.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", Истина);
|
||||
Структура.Вставить("ДляПроверкиПодписи", Ложь);
|
||||
Структура.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
Структура.Вставить("ИгнорироватьПроверкуВСпискеОтозванныхСертификатов", Ложь);
|
||||
|
||||
Возврат Структура;
|
||||
|
||||
@@ -2067,10 +2116,11 @@
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ИгнорироватьПроверкуВСпискеОтозванныхСертификатов", Контекст.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов);
|
||||
ДополнительныеПараметры.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра);
|
||||
ДополнительныеПараметры.Вставить("ДляПроверкиПодписи", Контекст.ДляПроверкиПодписи);
|
||||
ДополнительныеПараметры.Вставить("Предупреждение");
|
||||
ДополнительныеПараметры.Вставить("Сертификат");
|
||||
ДополнительныеПараметры.Вставить("Сертификат", АдресСертификата);
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйВызовСервера.ПроверитьСертификат(АдресСертификата,
|
||||
Контекст.ОписаниеОшибкиНаСервере, Контекст.НаДату, ДополнительныеПараметры) Тогда
|
||||
@@ -2140,7 +2190,7 @@
|
||||
Контекст.Вставить("СертификатКриптографии", СертификатКриптографии);
|
||||
Контекст.Вставить("РежимыПроверкиСертификата",
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.РежимыПроверкиСертификата(
|
||||
ЗначениеЗаполнено(Контекст.НаДату)));
|
||||
ЗначениеЗаполнено(Контекст.НаДату), Контекст.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов));
|
||||
|
||||
Если ТипЗнч(Контекст.СертификатДляПроверки) = Тип("СертификатКриптографии") Тогда
|
||||
Контекст.СертификатДляПроверки.НачатьВыгрузку(Новый ОписаниеОповещения(
|
||||
@@ -2351,10 +2401,14 @@
|
||||
// Продолжение процедуры ПроверитьСертификат.
|
||||
Асинх Процедура ДополнительнаяПроверкаСертификата(СертификатКриптографии, ПроверкаНаСервере, Контекст)
|
||||
|
||||
Если Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра Тогда
|
||||
Если Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра <> ЭлектроннаяПодписьСлужебныйКлиентСервер.НеПроверятьСертификат() Тогда
|
||||
|
||||
ПараметрыПроверки = Новый Структура;
|
||||
ПараметрыПроверки.Вставить("ЭтоПроверкаПодписи", Контекст.ДляПроверкиПодписи);
|
||||
ПараметрыПроверки.Вставить("ПроверятьСертификат", Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра);
|
||||
|
||||
РезультатПроверкиУдостоверяющегоЦентраСертификата = Ждать РезультатПроверкиУдостоверяющегоЦентраСертификата(
|
||||
СертификатКриптографии, Контекст.НаДату, Контекст.ДляПроверкиПодписи, Контекст.СвойстваСертификата);
|
||||
СертификатКриптографии, Контекст.НаДату, ПараметрыПроверки, Контекст.СвойстваСертификата);
|
||||
|
||||
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует Или ЗначениеЗаполнено(
|
||||
РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки)
|
||||
@@ -2363,8 +2417,9 @@
|
||||
ПользовательскиеНастройкиСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ПользовательскиеНастройкиСертификата(
|
||||
СертификатКриптографии.Отпечаток);
|
||||
|
||||
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует
|
||||
И ПользовательскиеНастройкиСертификата.ПодписаниеРазрешено <> Истина Тогда
|
||||
Если Не РезультатПроверкиУдостоверяющегоЦентраСертификата.Действует
|
||||
И (Контекст.ВыполнятьПроверкуУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТолькоКвалифицированные()
|
||||
Или ПользовательскиеНастройкиСертификата.ПодписаниеРазрешено <> Истина) Тогда
|
||||
|
||||
Если ПроверкаНаСервере Тогда
|
||||
Контекст.ОписаниеОшибкиНаСервере = РезультатПроверкиУдостоверяющегоЦентраСертификата.Предупреждение.ТекстОшибки;
|
||||
@@ -2403,7 +2458,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Асинх Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь, СвойстваСертификата = Неопределено) Экспорт
|
||||
Асинх Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ПараметрыПроверки = Неопределено, СвойстваСертификата = Неопределено) Экспорт
|
||||
|
||||
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
||||
|
||||
@@ -2413,6 +2468,17 @@
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки = Неопределено Или ПараметрыПроверки = Ложь Или ПараметрыПроверки = Истина Тогда
|
||||
НовыеПараметрыПроверки = Новый Структура;
|
||||
НовыеПараметрыПроверки.Вставить("ЭтоПроверкаПодписи", ?(ПараметрыПроверки = Неопределено, Ложь, ПараметрыПроверки));
|
||||
НовыеПараметрыПроверки.Вставить("ПроверятьСертификат", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
ПараметрыПроверки = НовыеПараметрыПроверки;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыПроверки.ПроверятьСертификат = "НеПроверятьСертификат" Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль(
|
||||
"ЭлектроннаяПодписьКлиентСерверЛокализация");
|
||||
|
||||
@@ -2436,7 +2502,9 @@
|
||||
КонтекстПроверки.ЗначенияПоиска = ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска;
|
||||
КонтекстПроверки.НаДату = ?(НаДату = Неопределено, ОбщегоНазначенияКлиент.ДатаСеанса(), НаДату);
|
||||
КонтекстПроверки.РазницаСУниверсальнымВременем = РазницаСУниверсальнымВременем();
|
||||
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
|
||||
КонтекстПроверки.ЭтоПроверкаПодписи = ПараметрыПроверки.ЭтоПроверкаПодписи;
|
||||
КонтекстПроверки.ПроверятьСертификат = ПараметрыПроверки.ПроверятьСертификат;
|
||||
|
||||
Если СвойстваСертификата = Неопределено Тогда
|
||||
КонтекстПроверки.СвойстваСертификата = Ждать СвойстваСертификата(СертификатКриптографии);
|
||||
Иначе
|
||||
@@ -4120,6 +4188,8 @@
|
||||
СерверныеПараметры.Вставить("ПроверкаПриВыборе");
|
||||
СерверныеПараметры.Вставить("ПараметрыДополнительныхПроверок");
|
||||
СерверныеПараметры.Вставить("ТипПодписи");
|
||||
СерверныеПараметры.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", ЭлектроннаяПодписьСлужебныйКлиентСервер.ПроверятьКвалифицированные());
|
||||
СерверныеПараметры.Вставить("ИгнорироватьПроверкуВСпискеОтозванныхСертификатов", Ложь);
|
||||
|
||||
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
|
||||
|
||||
@@ -4135,6 +4205,7 @@
|
||||
|
||||
Если ДополнительныеПараметры.КонтекстОперации.ИмяФормы = НачалоИмениФормы + "ПодписаниеДанных" Тогда
|
||||
ДополнительныеПараметры.Вставить("ТипПодписи", ДополнительныеПараметры.КонтекстОперации.ТипПодписи);
|
||||
ДополнительныеПараметры.Вставить("ВыполнятьПроверкуУдостоверяющегоЦентра", ДополнительныеПараметры.КонтекстОперации.ПроверятьСертификат);
|
||||
КонецЕсли;
|
||||
|
||||
УказанКонтекстДругойОперации = Истина;
|
||||
|
||||
@@ -396,6 +396,18 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПроверятьКвалифицированные() Экспорт
|
||||
Возврат "ПроверятьКвалифицированные";
|
||||
КонецФункции
|
||||
|
||||
Функция ТолькоКвалифицированные() Экспорт
|
||||
Возврат "ТолькоКвалифицированные";
|
||||
КонецФункции
|
||||
|
||||
Функция НеПроверятьСертификат() Экспорт
|
||||
Возврат "НеПроверятьСертификат";
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеПрограммыПоИмениКриптопровайдера(ИмяКриптопровайдера, ОписанияПрограмм, ПрограммыАвто) Экспорт
|
||||
|
||||
ПрограммаНайдена = Ложь;
|
||||
@@ -1397,7 +1409,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Только для внутреннего использования.
|
||||
Функция РежимыПроверкиСертификата(ИгнорироватьВремяДействия = Ложь) Экспорт
|
||||
Функция РежимыПроверкиСертификата(ИгнорироватьВремяДействия = Ложь, ИгнорироватьПроверкуВСпискеОтозванныхСертификатов = Ложь) Экспорт
|
||||
|
||||
МассивРежимовПроверки = Новый Массив;
|
||||
|
||||
@@ -1409,6 +1421,10 @@
|
||||
МассивРежимовПроверки.Добавить(РежимПроверкиСертификатаКриптографии.ИгнорироватьВремяДействия);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИгнорироватьПроверкуВСпискеОтозванныхСертификатов Тогда
|
||||
МассивРежимовПроверки.Добавить(РежимПроверкиСертификатаКриптографии.ИгнорироватьПроверкуВСпискеОтозванныхСертификатов);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат МассивРежимовПроверки;
|
||||
|
||||
КонецФункции
|
||||
@@ -3538,16 +3554,20 @@
|
||||
Если ТипЗнч(Сертификат) = Тип("Массив") Тогда
|
||||
Если Сертификат.Количество() > 0 Тогда
|
||||
Если ТипЗнч(Сертификат[0]) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ДанныеСертификата(Сертификат[0]);
|
||||
Иначе
|
||||
Если ЗначениеЗаполнено(Сертификат[0]) Тогда
|
||||
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ДанныеСертификата(Сертификат[0]);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ЭтоАдресВременногоХранилища(Сертификат[0]) Тогда
|
||||
ДанныеСертификата = ПолучитьИзВременногоХранилища(Сертификат[0]);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ДанныеСертификата(Сертификат);
|
||||
Если ЗначениеЗаполнено(Сертификат) Тогда
|
||||
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ДанныеСертификата(Сертификат);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
|
||||
ДанныеСертификата = Сертификат;
|
||||
Иначе
|
||||
ИначеЕсли ЭтоАдресВременногоХранилища(Сертификат) Тогда
|
||||
ДанныеСертификата = ПолучитьИзВременногоХранилища(Сертификат);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -474,7 +474,7 @@
|
||||
//
|
||||
Функция ВерсияКлассификатора() Экспорт
|
||||
|
||||
Возврат "3.0.1.31";
|
||||
Возврат "3.0.1.34";
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
Binary file not shown.
@@ -592,6 +592,21 @@
|
||||
<value xsi:type="xs:boolean">false</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<name>ИдентификаторОбработчикаОчисткиУстаревшихДанных</name>
|
||||
<title xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>Идентификатор обработчика очистки устаревших данных</v8:content>
|
||||
</v8:item>
|
||||
</title>
|
||||
<valueType>
|
||||
<v8:Type>v8:UUID</v8:Type>
|
||||
</valueType>
|
||||
<value xsi:type="v8:UUID">00000000-0000-0000-0000-000000000000</value>
|
||||
<useRestriction>true</useRestriction>
|
||||
<use>Always</use>
|
||||
</parameter>
|
||||
<settingsVariant>
|
||||
<dcsset:name>Основной</dcsset:name>
|
||||
<dcsset:presentation xsi:type="xs:string">Основной</dcsset:presentation>
|
||||
@@ -738,6 +753,17 @@
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemComparison">
|
||||
<dcsset:left xsi:type="dcscor:Field">Идентификатор</dcsset:left>
|
||||
<dcsset:comparisonType>Equal</dcsset:comparisonType>
|
||||
<dcsset:right xsi:type="dcscor:Field">ПараметрыДанных.ИдентификаторОбработчикаОчисткиУстаревшихДанных</dcsset:right>
|
||||
<dcsset:presentation xsi:type="v8:LocalStringType">
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
<v8:content>// Очистка устаревших данных при каждом обновлении</v8:content>
|
||||
</v8:item>
|
||||
</dcsset:presentation>
|
||||
</dcsset:item>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemGroup">
|
||||
<dcsset:groupType>AndGroup</dcsset:groupType>
|
||||
<dcsset:item xsi:type="dcsset:FilterItemComparison">
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="73f4baf9-85d9-4f21-914a-7bdb67bcb6cf">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="fa3ebf18-1920-4337-9c5f-3925ce8ae04d">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 3.1</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="710f1bc7-d921-42a6-9b60-e548d8825063"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="4f79049b-e2fc-4425-b142-af051a570d6c"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="80e5cc48-3d78-45a5-ad1c-d461a52d13d2"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="ea53807d-7767-4279-bb54-c1bcf2c1c093"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="281997f5-d76d-4f89-a8a1-e96dbbe9e7eb"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="93fd35f5-ad5c-4c41-a287-52c52f728fec"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="39630857-52ca-4dbd-900e-60e323ece9cd"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="f08b1376-850c-42e7-b25a-635d9d945139"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="362c61f8-ae88-409e-b8f3-4f592c1b41c6"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="dd7a329e-5bf9-4d90-b634-cddb40c8825e"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="c402eb0b-0ce2-42d1-beb8-9458ed1dfcba"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="8b659c49-4521-4537-957d-f571106a0179"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="9c162ab1-0362-43db-acda-c199b60b8113"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="05468275-09e4-406c-9bec-1044fe73ae53"/>
|
||||
<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.10.256</version>
|
||||
<version>3.1.10.277</version>
|
||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,68b8a776-9a8a-4489-b61b-6f3c8f1d91d0,1,f927a0f1-7fad-4f12-b2c0-01e6d02536a8,"3.1.10.256","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7658,1,0,73f4baf9-85d9-4f21-914a-7bdb67bcb6cf,73f4baf9-85d9-4f21-914a-7bdb67bcb6cf,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,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,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7bLine truncated
|
||||
{6,1,1,83c2c242-8a08-4277-96c8-0ec2ce22dbae,1,f70d4ec2-483e-4147-a837-34a626b87558,"3.1.10.277","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",7659,1,0,fa3ebf18-1920-4337-9c5f-3925ce8ae04d,fa3ebf18-1920-4337-9c5f-3925ce8ae04d,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,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,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7bLine truncated
|
||||
@@ -50,13 +50,10 @@
|
||||
&НаСервере
|
||||
Процедура УстановитьПараметрыДинамическогоСпискаДереваАнкет()
|
||||
|
||||
Для каждого ДоступныйПараметр Из ОтвеченныеАнкеты.Параметры.ДоступныеПараметры.Элементы Цикл
|
||||
|
||||
Если ДоступныйПараметр.Заголовок = "Респондент" Тогда
|
||||
ОтвеченныеАнкеты.Параметры.УстановитьЗначениеПараметра(ДоступныйПараметр.Параметр,Объект.Респондент);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
ПараметрРеспондент = ОтвеченныеАнкеты.Параметры.ДоступныеПараметры.Элементы.Найти("Респондент");
|
||||
Если ПараметрРеспондент <> Неопределено Тогда
|
||||
ОтвеченныеАнкеты.Параметры.УстановитьЗначениеПараметра(ПараметрРеспондент.Параметр, Объект.Респондент);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -56,59 +56,59 @@
|
||||
КонецФункции
|
||||
|
||||
Процедура СоздатьСписокСправочниковДляЗагрузки(СписокСправочниковДляЗагрузки) Экспорт
|
||||
|
||||
ТипСтрока = Новый ОписаниеТипов("Строка");
|
||||
ТипБулево = Новый ОписаниеТипов("Булево");
|
||||
|
||||
ИнформацияОСправочниках = Новый ТаблицаЗначений;
|
||||
ИнформацияОСправочниках.Колонки.Добавить("ПолноеИмя", ТипСтрока);
|
||||
ИнформацияОСправочниках.Колонки.Добавить("Представление", ТипСтрока);
|
||||
ИнформацияОСправочниках.Колонки.Добавить("ПрикладнаяЗагрузка", ТипБулево);
|
||||
|
||||
ЗагружаемыеСправочники = ИнформацияОСправочниках();
|
||||
ФункциональныеОпции = СтандартныеПодсистемыПовтИсп.ДоступностьОбъектовПоОпциям();
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПриОпределенииСправочниковДляЗагрузкиДанных(ИнформацияОСправочниках);
|
||||
ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных(ИнформацияОСправочниках);
|
||||
|
||||
ИнформацияОСправочниках.Колонки.Добавить("ИнформацияОТипеЗагрузки");
|
||||
|
||||
Для каждого ОбъектМетаданныхДляВывода Из Метаданные.Справочники Цикл
|
||||
|
||||
ПолноеИмя = ОбъектМетаданныхДляВывода.ПолноеИмя();
|
||||
Если ФункциональныеОпции.Получить(ПолноеИмя) = Ложь
|
||||
Или ИнформацияОСправочниках.Найти(ПолноеИмя, "ПолноеИмя") <> Неопределено Тогда
|
||||
Если ФункциональныеОпции.Получить(ПолноеИмя) = Ложь Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗагрузкаДанныхИзФайлаДопустима(ОбъектМетаданныхДляВывода) Тогда
|
||||
|
||||
Представление = ОбъектМетаданныхДляВывода.Представление();
|
||||
|
||||
СтрокаТаблицы = ИнформацияОСправочниках.Найти(Представление, "Представление");
|
||||
Если СтрокаТаблицы <> Неопределено Тогда
|
||||
СтрокаТаблицы.Представление = Представление + " (" + СтрокаТаблицы.ПолноеИмя +")";
|
||||
Представление = Представление + " (" + ПолноеИмя +")";
|
||||
КонецЕсли;
|
||||
|
||||
ИнформацияОСправочнике = ИнформацияОСправочниках.Добавить();
|
||||
ИнформацияОСправочнике.Представление = Представление;
|
||||
ИнформацияОСправочнике = ЗагружаемыеСправочники.Добавить();
|
||||
ИнформацияОСправочнике.Представление = ОбъектМетаданныхДляВывода.Представление();
|
||||
ИнформацияОСправочнике.ПолноеИмя = ПолноеИмя;
|
||||
|
||||
ИнформацияОТипеЗагрузки = НоваяИнформацияОТипеЗагрузки();
|
||||
|
||||
ИнформацияОТипеЗагрузки.Тип = ?(ИнформацияОСправочнике.ПрикладнаяЗагрузка, "ПрикладнаяЗагрузка", "УниверсальнаяЗагрузка");
|
||||
ИнформацияОТипеЗагрузки.Вставить("ПолноеИмяОбъектаМетаданных", ПолноеИмя);
|
||||
ИнформацияОСправочнике.ИнформацияОТипеЗагрузки = ИнформацияОТипеЗагрузки;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Для каждого ИнформацияОСправочнике Из ИнформацияОСправочниках Цикл
|
||||
ИнформацияОТипеЗагрузки = НоваяИнформацияОТипеЗагрузки();
|
||||
ИнтеграцияПодсистемБСП.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники);
|
||||
ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных(ЗагружаемыеСправочники);
|
||||
|
||||
ИнформацияОСправочниках = РасширеннаяИнформацияОСправочниках();
|
||||
|
||||
Для каждого ИнформацияОСправочнике Из ЗагружаемыеСправочники Цикл
|
||||
|
||||
СтрокаТаблицы = ИнформацияОСправочниках.Найти(ИнформацияОСправочнике.ПолноеИмя, "ПолноеИмя");
|
||||
Если СтрокаТаблицы = Неопределено Тогда
|
||||
|
||||
СтрокаТаблицы = ИнформацияОСправочниках.Добавить();
|
||||
СтрокаТаблицы.ПолноеИмя = ИнформацияОСправочнике.ПолноеИмя;
|
||||
|
||||
СтрокаТаблицыПоПредставлению = ИнформацияОСправочниках.Найти(ИнформацияОСправочнике.Представление, "Представление");
|
||||
Если СтрокаТаблицыПоПредставлению <> Неопределено Тогда
|
||||
СтрокаТаблицыПоПредставлению.Представление = СтрокаТаблицыПоПредставлению.Представление + " (" + СтрокаТаблицыПоПредставлению.ПолноеИмя + ")";
|
||||
СтрокаТаблицы.Представление = ИнформацияОСправочнике.Представление + " (" + ИнформацияОСправочнике.ПолноеИмя + ")";
|
||||
Иначе
|
||||
СтрокаТаблицы.Представление = ИнформацияОСправочнике.Представление;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли СтрокаТаблицы.ПрикладнаяЗагрузка Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаТаблицы.ПрикладнаяЗагрузка = ИнформацияОСправочнике.ПрикладнаяЗагрузка;
|
||||
|
||||
ИнформацияОТипеЗагрузки = НоваяИнформацияОТипеЗагрузки();
|
||||
ИнформацияОТипеЗагрузки.Тип = ?(ИнформацияОСправочнике.ПрикладнаяЗагрузка, "ПрикладнаяЗагрузка", "УниверсальнаяЗагрузка");
|
||||
ИнформацияОТипеЗагрузки.Вставить("ПолноеИмяОбъектаМетаданных", ИнформацияОСправочнике.ПолноеИмя);
|
||||
ИнформацияОСправочнике.ИнформацияОТипеЗагрузки = ИнформацияОТипеЗагрузки;
|
||||
СтрокаТаблицы.ИнформацияОТипеЗагрузки = ИнформацияОТипеЗагрузки;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
|
||||
@@ -137,7 +137,7 @@
|
||||
Для каждого ИнформацияОСправочнике Из ИнформацияОСправочниках Цикл
|
||||
|
||||
Представление = "";
|
||||
Если ИнформацияОСправочнике.ПрикладнаяЗагрузка Тогда
|
||||
Если ИнформацияОСправочнике.ПрикладнаяЗагрузка И ПустаяСтрока(ИнформацияОСправочнике.Представление) Тогда
|
||||
Представление = ПредставлениеСправочника(ИнформацияОСправочнике.ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -157,6 +157,44 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * ПолноеИмя - Строка
|
||||
// * Представление - Строка
|
||||
// * ПрикладнаяЗагрузка - Булево
|
||||
//
|
||||
Функция ИнформацияОСправочниках()
|
||||
|
||||
ТипСтрока = Новый ОписаниеТипов("Строка");
|
||||
|
||||
Результат = Новый ТаблицаЗначений;
|
||||
Результат.Колонки.Добавить("ПолноеИмя", ТипСтрока);
|
||||
Результат.Колонки.Добавить("Представление", ТипСтрока);
|
||||
Результат.Колонки.Добавить("ПрикладнаяЗагрузка", Новый ОписаниеТипов("Булево"));
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * ПолноеИмя - Строка
|
||||
// * Представление - Строка
|
||||
// * ПрикладнаяЗагрузка - Булево
|
||||
// * ИнформацияОТипеЗагрузки - Структура
|
||||
//
|
||||
Функция РасширеннаяИнформацияОСправочниках()
|
||||
|
||||
ТипСтруктура = Новый ОписаниеТипов("Структура");
|
||||
|
||||
Результат = ИнформацияОСправочниках();
|
||||
Результат.Колонки.Добавить("ИнформацияОТипеЗагрузки", ТипСтруктура);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Тип - Строка
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
Функция ВерсияКалендарей() Экспорт
|
||||
|
||||
Возврат 81;
|
||||
Возврат 83;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
|
||||
|
||||
Возврат "3.1.10.250";
|
||||
Возврат "3.1.10.258";
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
+1
-1
@@ -1716,7 +1716,7 @@
|
||||
<Item Calendar="РФ" Year="2025" DayType="Предпраздничный" Date="20250611" SwapDate=""/>
|
||||
<Item Calendar="РФ" Year="2025" DayType="Праздник" Date="20250612" SwapDate=""/>
|
||||
<Item Calendar="РФ" Year="2025" DayType="Суббота" Date="20250613" SwapDate="20250308"/>
|
||||
<Item Calendar="РФ" Year="2025" DayType="Рабочий" Date="20251101" SwapDate="20251103"/>
|
||||
<Item Calendar="РФ" Year="2025" DayType="Предпраздничный" Date="20251101" SwapDate="20251103"/>
|
||||
<Item Calendar="РФ" Year="2025" DayType="Суббота" Date="20251103" SwapDate="20251101"/>
|
||||
<Item Calendar="РФ" Year="2025" DayType="Праздник" Date="20251104" SwapDate=""/>
|
||||
<Item Calendar="РФ" Year="2025" DayType="Воскресенье" Date="20251231" SwapDate="20250105"/>
|
||||
|
||||
+149
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Введите пин-код пользователя токена</value>
|
||||
</title>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПинКод</name>
|
||||
<id>1</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пин код</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ПинКод</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<extendedTooltip>
|
||||
<name>ПинКодРасширеннаяПодсказка</name>
|
||||
<id>3</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПинКодКонтекстноеМеню</name>
|
||||
<id>2</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<handlers>
|
||||
<event>StartChoice</event>
|
||||
<name>ПинКодНачалоВыбора</name>
|
||||
</handlers>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<passwordMode>true</passwordMode>
|
||||
<choiceButton>true</choiceButton>
|
||||
<choiceButtonPicture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.ВводимыеСимволыВидны</picture>
|
||||
</choiceButtonPicture>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<commandBarLocation>Bottom</commandBarLocation>
|
||||
<showCommandBar>true</showCommandBar>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаОК</name>
|
||||
<id>4</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>ОК</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаОКРасширеннаяПодсказка</name>
|
||||
<id>5</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.ОК</commandName>
|
||||
<representation>Auto</representation>
|
||||
<defaultButton>true</defaultButton>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<width>30</width>
|
||||
<windowOpeningMode>DontBlock</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>auto</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>ПинКод</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пин код</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>ОК</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>ОК</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ОК</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
</form:Form>
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2024, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОК(Команда)
|
||||
Закрыть(ПинКод);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПинКодНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Элемент = Элементы.ПинКод;
|
||||
|
||||
Элемент.РежимПароля = Не Элемент.РежимПароля;
|
||||
Если Элемент.РежимПароля Тогда
|
||||
Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыВидны;
|
||||
Иначе
|
||||
Элемент.КартинкаКнопкиВыбора = БиблиотекаКартинок.ВводимыеСимволыСкрыты;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
+986
-164
File diff suppressed because it is too large.
Load diff
+869
-159
File diff suppressed because it is too large.
Load diff
+9
@@ -79,6 +79,15 @@
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="af062541-4dec-4856-9be9-dec804fbae0b">
|
||||
<name>ВводПинКода</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Ввод пин кода</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<templates uuid="e057e428-99c1-419d-a169-697c1e825e94">
|
||||
<name>ИндивидуальныйПредприниматель</name>
|
||||
<synonym>
|
||||
|
||||
+4
@@ -147,6 +147,10 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрРазделить(Платформа.ИмяБезРасширения, ".").Количество() <> 3 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(Платформа.ИмяБезРасширения, "8.3.21") < 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
+4
-2
@@ -301,8 +301,10 @@
|
||||
&НаКлиенте
|
||||
Процедура ОбновлениеДоступаНаУровнеЗаписей(Команда)
|
||||
|
||||
ОткрытьФорму("РегистрСведений" + "." + "ОбновлениеКлючейДоступаКДанным" + "."
|
||||
+ "Форма" + "." + "ОбновлениеДоступаНаУровнеЗаписей");
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
МодульУправлениеДоступомСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеДоступомСлужебныйКлиент");
|
||||
МодульУправлениеДоступомСлужебныйКлиент.ОткрытьФормуОбновлениеДоступаНаУровнеЗаписей(Истина, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
+2
-2
@@ -166,8 +166,8 @@
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения(
|
||||
"ЗапрещатьЗагрузкуФайловПоРасширениюПослеПодтверждения", ЭтотОбъект, Новый Структура("Элемент", Элемент));
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности",
|
||||
Новый Структура("Ключ", "ПриИзмененииСпискаЗапрещенныхРасширений"), , , , , Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПриИзмененииСпискаЗапрещенныхРасширений);
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
+31
-15
@@ -290,7 +290,7 @@
|
||||
"En": ""
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ (вставить токен или флешку с файлом закрытого ключа).\n• <a href=\"УстановитьСертификатВКонтейнер\">Установите сертификат в контейнер</a> прямо из приложения.\n• Переустановите сертификат через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/28/4008/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "Отсутствует набор ключей",
|
||||
@@ -299,7 +299,7 @@
|
||||
"Client": true
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ (вставить токен или флешку с файлом закрытого ключа).\n• <a href=\"УстановитьСертификатВКонтейнер\">Установите сертификат в контейнер</a> прямо из приложения.\n• Переустановите сертификат через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/24/4179/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "Сертификат не имеет связи с закрытым ключом",
|
||||
@@ -308,7 +308,7 @@
|
||||
"Client": true
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ (вставить токен или флешку с файлом закрытого ключа).\n• <a href=\"УстановитьСертификатВКонтейнер\">Установите сертификат в контейнер</a> прямо из приложения.\n• Переустановите сертификат через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/28/4008/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "Отсутствует ключ",
|
||||
@@ -527,7 +527,7 @@
|
||||
"Server": true
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ (вставить токен или флешку с файлом закрытого ключа).\n• <a href=\"УстановитьСертификатВКонтейнер\">Установите сертификат в контейнер</a> прямо из приложения.\n• Переустановите сертификат через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/24/4179/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "0x00000000",
|
||||
@@ -536,7 +536,7 @@
|
||||
"Client": true
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ на сервере (вставить токен или флешку с файлом закрытого ключа).\n• Переустановите сертификат на сервере через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/24/4179/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "0x00000000",
|
||||
@@ -572,7 +572,7 @@
|
||||
"Server": true
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ на сервере (вставить токен или флешку с файлом закрытого ключа).\n• Переустановите сертификат на сервере через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/24/4179/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "Отсутствует ключ",
|
||||
@@ -581,7 +581,7 @@
|
||||
"Server": true
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ на сервере (вставить токен или флешку с файлом закрытого ключа).\n• Переустановите сертификат на сервере через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/24/4179/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "Сертификат не имеет связи с закрытым ключом",
|
||||
@@ -590,7 +590,7 @@
|
||||
"Server": true
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ на сервере (вставить токен или флешку с файлом закрытого ключа).\n• Переустановите сертификат на сервере через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/24/4179/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "Отсутствует набор ключей",
|
||||
@@ -1199,8 +1199,8 @@
|
||||
},
|
||||
{
|
||||
"Anchor": "Указан неверный алгоритм",
|
||||
"Reason": "• Алгоритм подписи не соответствует алгоритму сертификата подписанта.",
|
||||
"Solution": "• Обратитесь к подписанту для получения корректной подписи с алгоритмом, соответствующим ГОСТу.",
|
||||
"Reason": "• Алгоритм подписи не соответствует алгоритму сертификата подписанта.\n• Подпись не является достоверной.\n• После подписания изменились данные объекта.",
|
||||
"Solution": "• Обратитесь к подписанту для получения корректной подписи",
|
||||
"ErrorText": "0x80091007",
|
||||
"RepairMethods": "",
|
||||
"En": "",
|
||||
@@ -1271,12 +1271,12 @@
|
||||
"Anchor": "",
|
||||
"Reason": "• Нет подключения к Интернету;\n• На сайте ведутся технические работы, попробуйте повторить действие позднее;\n• Брандмауэр или другое промежуточное ПО (антивирусы и т.п.) блокируют попытки приложения подключиться к Интернету;\n• Подключение к Интернету выполняется через прокси-сервер, но его параметры не заданы в приложении.",
|
||||
"Solution": "",
|
||||
"ErrorText": "Ошибка работы с Интернет: Не могу установить соединение",
|
||||
"ErrorText": "Ошибка работы с Интернет",
|
||||
"RepairMethods": "",
|
||||
"En": ""
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ (вставить токен или флешку с файлом закрытого ключа).\n• <a href=\"УстановитьСертификатВКонтейнер\">Установите сертификат в контейнер</a> прямо из приложения.\n• Переустановите сертификат через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/24/4179/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "Не найден контейнер ключа электронной подписи",
|
||||
@@ -1285,15 +1285,31 @@
|
||||
"Client": true
|
||||
},
|
||||
{
|
||||
"Anchor": "Нет связи с закрытым ключом",
|
||||
"Anchor": "",
|
||||
"Reason": "• Закрытый ключ для выбранного сертификата не установлен.\n• Закрытый ключ установлен, но сертификат не имеет с ним связи.",
|
||||
"Solution": "• Установите закрытый ключ на сервере (вставить токен или флешку с файлом закрытого ключа).\n• Переустановите сертификат на сервере через оснастку приложения электронной подписи с привязкой к закрытому ключу (см. <a href=\"http://1c-edo.ru/handbook/24/4179/\">инструкцию</a>)\n• Подайте заявление на новый сертификат, если закрытый ключ утерян.",
|
||||
"ErrorText": "Не найден контейнер ключа электронной подписи",
|
||||
"RepairMethods": "{\"МетодикиУстранения\": [\"ПроверитьСертификатВЛокальномХранилище\"]}",
|
||||
"En": "",
|
||||
"Server": true
|
||||
},
|
||||
{
|
||||
"Anchor": "",
|
||||
"Reason": "Сервис недоступен.",
|
||||
"Solution": "Повторите действие позже.",
|
||||
"ErrorText": "ведутся работы по разбору очереди запросов",
|
||||
"RepairMethods": "",
|
||||
"En": ""
|
||||
},
|
||||
{
|
||||
"Anchor": "",
|
||||
"Reason": "Сервис недоступен.",
|
||||
"Solution": "Повторите действие позже.",
|
||||
"ErrorText": "/poazip|/errors/suspended-request",
|
||||
"RepairMethods": "",
|
||||
"En": ""
|
||||
}
|
||||
],
|
||||
"LastChangeDate": "2024-07-04T12:11:55",
|
||||
"Version": "3.0.1.31"
|
||||
"LastChangeDate": "2024-08-09T16:26:43",
|
||||
"Version": "3.0.1.34"
|
||||
}
|
||||
@@ -1241,10 +1241,9 @@
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ТекущиеДанные", ТекущиеДанные);
|
||||
Оповещение = Новый ОписаниеОповещения("ОткрытьФайлПослеПодтверждения", ЭтотОбъект, ДополнительныеПараметры);
|
||||
ПараметрыФормы = Новый Структура("Ключ", "ПередОткрытиемФайла");
|
||||
ПараметрыФормы.Вставить("ИмяФайла",
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередОткрытиемФайла,
|
||||
ОбщегоНазначенияКлиентСервер.ПолучитьИмяСРасширением(ТекущиеДанные.Наименование, ТекущиеДанные.Расширение));
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы, , , , , Оповещение);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -959,8 +959,8 @@
|
||||
|
||||
Если ЗапрещенныеРасширения.НайтиПоЗначению(ЭтотОбъект.Объект.Расширение) <> Неопределено Тогда
|
||||
Оповещение = Новый ОписаниеОповещения("ОткрытьФайлПослеПодтверждения", ЭтотОбъект);
|
||||
ПараметрыФормы = Новый Структура("Ключ", "ПередОткрытиемФайла");
|
||||
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы, , , , , Оповещение);
|
||||
ПользователиСлужебныйКлиент.ПоказатьПредупреждениеБезопасности(Оповещение,
|
||||
ПользователиСлужебныйКлиентСервер.ВидыПредупрежденийБезопасности().ПередОткрытиемФайла);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
+240
-127
@@ -7,6 +7,213 @@
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКоманднаяПанель</name>
|
||||
<id>67</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВариантыАдресаВыбрать</name>
|
||||
<id>62</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выбрать</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ВариантыАдресаВыбратьРасширеннаяПодсказка</name>
|
||||
<id>63</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualButton</type>
|
||||
<commandName>Form.Command.Выбрать</commandName>
|
||||
<representation>Auto</representation>
|
||||
<defaultButton>true</defaultButton>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПоискВВебСервисе</name>
|
||||
<id>76</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Поиск</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ПоискВВебСервисе</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<shortcut>Ctrl+F</shortcut>
|
||||
<extendedTooltip>
|
||||
<name>ПоискВВебСервисеРасширеннаяПодсказка</name>
|
||||
<id>78</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПоискВВебСервисеКонтекстноеМеню</name>
|
||||
<id>77</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<groupHorizontalAlign>Left</groupHorizontalAlign>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<handlers>
|
||||
<event>AutoComplete</event>
|
||||
<name>ПоискВВебСервисеАвтоПодбор</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>Clearing</event>
|
||||
<name>ПоискВВебСервисеОчистка</name>
|
||||
</handlers>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<clearButton>true</clearButton>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<editTextUpdate>DontUse</editTextUpdate>
|
||||
<textSize>Normal</textSize>
|
||||
<inputHint>
|
||||
<key>ru</key>
|
||||
<value>Поиск (Ctrl+F)</value>
|
||||
</inputHint>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>ДополнениеПоиск</name>
|
||||
<id>79</id>
|
||||
<extendedTooltip>
|
||||
<name>ДополнениеПоискРасширеннаяПодсказка</name>
|
||||
<id>81</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ДополнениеПоискКонтекстноеМеню</name>
|
||||
<id>80</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>ВариантыАдреса</source>
|
||||
<groupHorizontalAlign>Left</groupHorizontalAlign>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаЕще</name>
|
||||
<id>71</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВариантыАдресаОбновить</name>
|
||||
<id>31</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Обновить</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ВариантыАдресаОбновитьРасширеннаяПодсказка</name>
|
||||
<id>32</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.Обновить</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВариантыАдресаИзменитьФорму</name>
|
||||
<id>35</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ВариантыАдресаИзменитьФормуРасширеннаяПодсказка</name>
|
||||
<id>36</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.CustomizeForm</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Еще</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаЕщеРасширеннаяПодсказка</name>
|
||||
<id>72</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<commandSource>Form</commandSource>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -16,6 +223,7 @@
|
||||
<key>ru</key>
|
||||
<value>Командная панель</value>
|
||||
</title>
|
||||
<groupHorizontalAlign>Left</groupHorizontalAlign>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКоманднаяПанельРасширеннаяПодсказка</name>
|
||||
<id>68</id>
|
||||
@@ -111,120 +319,7 @@
|
||||
<autoCommandBar>
|
||||
<name>ВариантыАдресаКоманднаяПанель</name>
|
||||
<id>10</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаВыбрать</name>
|
||||
<id>69</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВариантыАдресаВыбрать</name>
|
||||
<id>62</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выбрать</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ВариантыАдресаВыбратьРасширеннаяПодсказка</name>
|
||||
<id>63</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.Выбрать</commandName>
|
||||
<representation>Auto</representation>
|
||||
<defaultButton>true</defaultButton>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выбрать</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаВыбратьРасширеннаяПодсказка</name>
|
||||
<id>70</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВариантыАдресаОбновить</name>
|
||||
<id>31</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Обновить</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ВариантыАдресаОбновитьРасширеннаяПодсказка</name>
|
||||
<id>32</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.Обновить</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВариантыАдресаИзменитьФорму</name>
|
||||
<id>35</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ВариантыАдресаИзменитьФормуРасширеннаяПодсказка</name>
|
||||
<id>36</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.CustomizeForm</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>Selection</event>
|
||||
@@ -590,20 +685,6 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ИспользуемыйАдресныйКлассификатор</name>
|
||||
<id>5</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>Индекс</name>
|
||||
<id>4</id>
|
||||
@@ -634,6 +715,38 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПоискВВебСервисе</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Поиск</value>
|
||||
</title>
|
||||
<id>7</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТипАдреса</name>
|
||||
<id>5</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Обновить</name>
|
||||
<title>
|
||||
|
||||
+70
-18
@@ -28,31 +28,19 @@
|
||||
|
||||
УстановитьУсловноеОформление();
|
||||
|
||||
ПараметрыПоиска = Новый Структура;
|
||||
ПараметрыПоиска.Вставить("ТипАдреса", Параметры.ТипАдреса);
|
||||
|
||||
ТипАдреса = Параметры.ТипАдреса;
|
||||
Индекс = Параметры.Индекс;
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(Индекс) Тогда
|
||||
ДанныеКлассификатора = Обработки.РасширенныйВводКонтактнойИнформации.АдресаКлассификатораПоПочтовомуИндексу(Индекс, ПараметрыПоиска);
|
||||
НайтиАдресныеОбъектыНаСервере();
|
||||
Если ЗначениеЗаполнено(КраткоеПредставлениеОшибки) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
КраткоеПредставлениеОшибки = НСтр("ru = 'Индекс не найден в адресном классификаторе.'");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ДанныеКлассификатора.Отказ Тогда
|
||||
// Сервис на обслуживании
|
||||
КраткоеПредставлениеОшибки = ДанныеКлассификатора.КраткоеПредставлениеОшибки;
|
||||
Возврат;
|
||||
|
||||
ИначеЕсли ДанныеКлассификатора.Данные.Количество() = 0 Тогда
|
||||
// Нет данных, функционал выбора не применим.
|
||||
КраткоеПредставлениеОшибки = НСтр("ru = 'Индекс не найден в адресном классификаторе.'");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВариантыАдреса.Загрузить(ДанныеКлассификатора.Данные);
|
||||
|
||||
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
|
||||
|
||||
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
|
||||
@@ -78,6 +66,24 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПоискВВебСервисеОчистка(Элемент, СтандартнаяОбработка)
|
||||
ПоискВВебСервисе = "";
|
||||
ПодключитьОбработчикОжидания("НайтиАдресныеОбъекты", 0.1, Истина);
|
||||
Возврат;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПоискВВебСервисеАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
|
||||
ПоискВВебСервисе = Текст;
|
||||
ПодключитьОбработчикОжидания("НайтиАдресныеОбъекты", 0.1, Истина);
|
||||
Возврат;
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовТаблицыФормыВариантыАдреса
|
||||
|
||||
&НаКлиенте
|
||||
@@ -149,4 +155,50 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура НайтиАдресныеОбъекты()
|
||||
НайтиАдресныеОбъектыНаСервере(Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура НайтиАдресныеОбъектыНаСервере(ПоискТолькоВВебСервисе = Ложь)
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
|
||||
КраткоеПредставлениеОшибки = НСтр("ru = 'Индекс не найден в адресном классификаторе.'");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
|
||||
|
||||
ПараметрыПоиска = МодульАдресныйКлассификаторСлужебный.ПараметрыПоискаАдресовПоПочтовомуИндексу();
|
||||
ПараметрыПоиска.ТипАдреса = ТипАдреса;
|
||||
ПараметрыПоиска.ПодстрокаПоиска = ПоискВВебСервисе;
|
||||
ПараметрыПоиска.ПоискТолькоВВебСервисе = ПоискТолькоВВебСервисе;
|
||||
|
||||
ТипЧисло = Новый ОписаниеТипов("Число");
|
||||
ИндексЧислом = ТипЧисло.ПривестиЗначение(Индекс);
|
||||
ДанныеКлассификатора = МодульАдресныйКлассификаторСлужебный.АдресаПоПочтовомуИндексу(ИндексЧислом, ПараметрыПоиска);
|
||||
|
||||
ВариантыАдреса.Очистить();
|
||||
|
||||
Если ДанныеКлассификатора.Отказ Тогда
|
||||
// Сервис на обслуживании
|
||||
КраткоеПредставлениеОшибки = ДанныеКлассификатора.КраткоеПредставлениеОшибки;
|
||||
Возврат;
|
||||
|
||||
ИначеЕсли ДанныеКлассификатора.Данные.Количество() = 0 Тогда
|
||||
// Нет данных, функционал выбора не применим.
|
||||
КраткоеПредставлениеОшибки = НСтр("ru = 'Индекс не найден в адресном классификаторе.'");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВариантыАдреса.Загрузить(ДанныеКлассификатора.Данные);
|
||||
|
||||
Если Не ПоискТолькоВВебСервисе И ДанныеКлассификатора.ЭтоДанныеСВебСервиса Тогда
|
||||
Элементы.ДополнениеПоиск.Видимость = Ложь;
|
||||
Элементы.ПоискВВебСервисе.Видимость = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -269,48 +269,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает данные классификатора по почтовому индексу.
|
||||
//
|
||||
// Параметры:
|
||||
// Индекс - Строка
|
||||
// - Число - почтовый индекс, для которого необходимо получать данные.
|
||||
//
|
||||
// ДополнительныеПараметры - Структура - описывает настройки поиска. Состоит из необязательных полей:
|
||||
// * СкрыватьНеактуальные - Булево - флаг исключения из выборки неактуальных адресов. По умолчанию Ложь.
|
||||
// * ФорматАдреса - Строка - тип используемого классификатора.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - найденные варианты. Содержит поля:
|
||||
// * Отказ - Булево - поставщик недоступен.
|
||||
// * ПодробноеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ
|
||||
// = Ложь.
|
||||
// * КраткоеПредставлениеОшибки - Строка - описание ошибки, если поставщик недоступен. Неопределено, если Отказ
|
||||
// = Ложь.
|
||||
// * ОбщаяЧастьПредставления - Строка - общая часть представлений адреса.
|
||||
// * Данные - ТаблицаЗначений - содержит данные для выбора. Колонки:
|
||||
// ** Неактуален - Булево - флаг неактуальности строки данных.
|
||||
// ** Идентификатор - УникальныйИдентификатор - код классификатора для поиска
|
||||
// вариантов по индексу.
|
||||
// ** Представление - Строка - представление варианта.
|
||||
//
|
||||
Функция АдресаКлассификатораПоПочтовомуИндексу(Знач Индекс, Знач ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
|
||||
|
||||
ТипЧисло = Новый ОписаниеТипов("Число");
|
||||
ИндексЧислом = ТипЧисло.ПривестиЗначение(Индекс);
|
||||
|
||||
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
|
||||
Возврат МодульАдресныйКлассификаторСлужебный.АдресаПоПочтовомуИндексуКлассификатора(ИндексЧислом, ДополнительныеПараметры);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Результат = СтруктураОшибкиПоставщикаАдресногоКлассификатора();
|
||||
Результат.Вставить("Данные", Новый ТаблицаЗначений);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает данные классификатора поля выбора по уровню.
|
||||
//
|
||||
// Параметры:
|
||||
|
||||
+5
@@ -416,6 +416,11 @@
|
||||
Задание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание(ИдентификаторЗадания);
|
||||
ИмяМетода = Задание.Метаданные.ИмяМетода;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
|
||||
МодульУправлениеДоступомСлужебный.ПередЗапускомРегламентногоЗаданияНеВФоне(Задание);
|
||||
КонецЕсли;
|
||||
|
||||
ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить("РегламентныеЗадания", ИмяМетода, Истина);
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетода, Задание.Параметры);
|
||||
ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить("РегламентныеЗадания", ИмяМетода, Неопределено);
|
||||
|
||||
+142
-40
@@ -583,7 +583,7 @@
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<width>4</width>
|
||||
<width>3</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
@@ -594,24 +594,112 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОтложенныеОбработчикиОбработчик</name>
|
||||
<id>41</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Процедура обработки данных</value>
|
||||
</title>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаОбработчик</name>
|
||||
<id>148</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОтложенныеОбработчикиОбработчик</name>
|
||||
<id>41</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Процедура обработки данных</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ОтложенныеОбработчики.Обработчик</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ОтложенныеОбработчикиОбработчикРасширеннаяПодсказка</name>
|
||||
<id>43</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОтложенныеОбработчикиОбработчикКонтекстноеМеню</name>
|
||||
<id>42</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<autoCellHeight>true</autoCellHeight>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<width>40</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОтложенныеОбработчикиОбработчикДополнение</name>
|
||||
<id>150</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Дополнение</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ОтложенныеОбработчики.ОбработчикДополнение</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<extendedTooltip>
|
||||
<name>ОтложенныеОбработчикиОбработчикДополнениеРасширеннаяПодсказка</name>
|
||||
<id>152</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОтложенныеОбработчикиОбработчикДополнениеКонтекстноеМеню</name>
|
||||
<id>151</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>LabelField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<cellHyperlink>true</cellHyperlink>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<cellHyperlinkRepresentation>Show</cellHyperlinkRepresentation>
|
||||
<cellHyperlinkDisplayVariant>Always</cellHyperlinkDisplayVariant>
|
||||
<extInfo xsi:type="form:LabelFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ОтложенныеОбработчики.Обработчик</segments>
|
||||
</dataPath>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Обработчик</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ОтложенныеОбработчикиОбработчикРасширеннаяПодсказка</name>
|
||||
<id>43</id>
|
||||
<name>ГруппаОбработчикРасширеннаяПодсказка</name>
|
||||
<id>149</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -619,27 +707,11 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОтложенныеОбработчикиОбработчикКонтекстноеМеню</name>
|
||||
<id>42</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<width>36</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<wrap>true</wrap>
|
||||
<multiLine>true</multiLine>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
<type>ColumnGroup</type>
|
||||
<extInfo xsi:type="form:ColumnGroupExtInfo">
|
||||
<group>Vertical</group>
|
||||
<showTitle>auto</showTitle>
|
||||
<showInCard>true</showInCard>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
@@ -678,11 +750,12 @@
|
||||
</contextMenu>
|
||||
<type>PictureField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<autoCellHeight>true</autoCellHeight>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:ImageFieldExtInfo">
|
||||
<width>9</width>
|
||||
<width>3</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
@@ -1373,10 +1446,6 @@
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Переход к расширенному списку обработчиков обновления с возможностью просмотра служебных сведений для расследования ошибок обновления.</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ГиперссылкаОбработчикиОбновленияРасширеннаяПодсказка</name>
|
||||
@@ -1423,8 +1492,10 @@
|
||||
<id>29</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Техническая информация из журнала регистрации для обращения в службу технической поддержки.</value>
|
||||
<value>• <b>Обработчики обновления</> - переход к расширенному списку обработчиков обновления с возможностью просмотра служебных сведений для расследования ошибок обновления.
|
||||
• <b>Журнал регистрации</> - техническая информация для обращения в службу технической поддержки.</value>
|
||||
</title>
|
||||
<formatted>true</formatted>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -1964,6 +2035,37 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ОбработчикДополнение</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Обработчик дополнение</value>
|
||||
</title>
|
||||
<id>13</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ЭтоОбработчикОчисткиУстаревшихДанных</name>
|
||||
<id>14</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ВремяНачалаОтложенногоОбновления</name>
|
||||
|
||||
+47
-4
@@ -11,6 +11,8 @@
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
УстановитьУсловноеОформление();
|
||||
|
||||
СведенияОбОбновлении = ОбновлениеИнформационнойБазыСлужебный.СведенияОбОбновленииИнформационнойБазы();
|
||||
ВремяНачалаОтложенногоОбновления = СведенияОбОбновлении.ВремяНачалаОтложенногоОбновления;
|
||||
ВремяОкончанияОтложенногоОбновления = СведенияОбОбновлении.ВремяОкончаниеОтложенногоОбновления;
|
||||
@@ -130,6 +132,13 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Поле = Элементы.ОтложенныеОбработчикиОбработчикДополнение
|
||||
И Элемент.ТекущиеДанные.ЭтоОбработчикОчисткиУстаревшихДанных Тогда
|
||||
|
||||
ОткрытьФорму("Обработка.РезультатыОбновленияПрограммы.Форма.ОчисткаУстаревшихДанных");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяОбработчика = Элемент.ТекущиеДанные.Идентификатор;
|
||||
|
||||
Отбор = Новый Структура("ИмяОбработчика",ИмяОбработчика);
|
||||
@@ -300,6 +309,26 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьУсловноеОформление()
|
||||
|
||||
УсловноеОформление.Элементы.Очистить();
|
||||
|
||||
//
|
||||
|
||||
Элемент = УсловноеОформление.Элементы.Добавить();
|
||||
|
||||
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
|
||||
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОтложенныеОбработчикиОбработчикДополнение.Имя);
|
||||
|
||||
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
||||
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтложенныеОбработчики.ОбработчикДополнение");
|
||||
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
|
||||
|
||||
Элемент.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗапуститьВыделеннуюПроцедуруДляОтладки(ИмяОбработчика)
|
||||
|
||||
@@ -490,6 +519,7 @@
|
||||
|ГДЕ
|
||||
| ОбработчикиОбновления.РежимВыполнения = &РежимВыполнения";
|
||||
Обработчики = Запрос.Выполнить().Выгрузить();
|
||||
СтрокаОбработчикаОчисткиУстаревшихДанных = Неопределено;
|
||||
Для Каждого Обработчик Из Обработчики Цикл
|
||||
Если Не ПараллельныйРежимИспользуется Тогда
|
||||
ПараллельныйРежимИспользуется = (Обработчик.РежимВыполненияОтложенногоОбработчика = Перечисления.РежимыВыполненияОтложенныхОбработчиков.Параллельно);
|
||||
@@ -501,7 +531,8 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ДобавитьОтложенныйОбработчик(Обработчик, ОбработчикиНеВыполнялись, ВыполненыВсеОбработчики, НачальноеЗаполнение, ВыполняетсяИзменениеПриоритета);
|
||||
ДобавитьОтложенныйОбработчик(Обработчик, ОбработчикиНеВыполнялись, ВыполненыВсеОбработчики,
|
||||
НачальноеЗаполнение, ВыполняетсяИзменениеПриоритета, СтрокаОбработчикаОчисткиУстаревшихДанных);
|
||||
|
||||
Если Обработчик.РежимВыполненияОтложенногоОбработчика <> Перечисления.РежимыВыполненияОтложенныхОбработчиков.Параллельно Тогда
|
||||
Продолжить;
|
||||
@@ -547,9 +578,17 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбработчикиНеВыполнялись Тогда
|
||||
Элементы.ТекстПояснения.Заголовок = НСтр("ru = 'Рекомендуется Возобновить невыполненные процедуры обработки данных.'");
|
||||
Элементы.ТекстПояснения.Заголовок = НСтр("ru = 'Рекомендуется запустить невыполненные процедуры обработки данных.'");
|
||||
Иначе
|
||||
Элементы.ТекстПояснения.Заголовок = НСтр("ru = 'Невыполненные процедуры рекомендуется Возобновить повторно.'");
|
||||
Элементы.ТекстПояснения.Заголовок = НСтр("ru = 'Невыполненные процедуры рекомендуется запустить повторно.'");
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрокаОбработчикаОчисткиУстаревшихДанных <> Неопределено Тогда
|
||||
ИндексСтроки = ОтложенныеОбработчики.Индекс(СтрокаОбработчикаОчисткиУстаревшихДанных);
|
||||
ОтложенныеОбработчики.Сдвинуть(ИндексСтроки, ОтложенныеОбработчики.Количество() - 1 - ИндексСтроки);
|
||||
СтрокаОбработчикаОчисткиУстаревшихДанных.ЭтоОбработчикОчисткиУстаревшихДанных = Истина;
|
||||
СтрокаОбработчикаОчисткиУстаревшихДанных.ОбработчикДополнение =
|
||||
НСтр("ru = 'Посмотреть и очистить устаревшие данные самостоятельно.'");
|
||||
КонецЕсли;
|
||||
|
||||
НомерЭлемента = 1;
|
||||
@@ -566,7 +605,8 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьОтложенныйОбработчик(СтрокаОбработчика, ОбработчикиНеВыполнялись, ВыполненыВсеОбработчики, НачальноеЗаполнение, ВыполняетсяИзменениеПриоритета)
|
||||
Процедура ДобавитьОтложенныйОбработчик(СтрокаОбработчика, ОбработчикиНеВыполнялись, ВыполненыВсеОбработчики,
|
||||
НачальноеЗаполнение, ВыполняетсяИзменениеПриоритета, СтрокаОбработчикаОчисткиУстаревшихДанных)
|
||||
|
||||
Если НачальноеЗаполнение Тогда
|
||||
СтрокаСписка = ОтложенныеОбработчики.Добавить();
|
||||
@@ -575,6 +615,9 @@
|
||||
ПараметрыОтбора.Вставить("Идентификатор", СтрокаОбработчика.ИмяОбработчика);
|
||||
СтрокаСписка = ОтложенныеОбработчики.НайтиСтроки(ПараметрыОтбора)[0];
|
||||
КонецЕсли;
|
||||
Если ОбновлениеИнформационнойБазыСлужебный.ЭтоОбработчикОчисткиУстаревшихДанных(СтрокаОбработчика) Тогда
|
||||
СтрокаОбработчикаОчисткиУстаревшихДанных = СтрокаСписка;
|
||||
КонецЕсли;
|
||||
|
||||
СтатистикаВыполнения = СтрокаОбработчика.СтатистикаВыполнения.Получить();
|
||||
|
||||
|
||||
Loaded 100 of 198 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user