3_1_10_248
This commit is contained in:
1 parent
a515946322
commit
878354f176
210 files changed
+10775
-3513
No files matched your search
@@ -76,6 +76,16 @@
|
|||||||
Для Каждого Расширение Из РасширенияБазыДанных Цикл
|
Для Каждого Расширение Из РасширенияБазыДанных Цикл
|
||||||
КонтрольнаяСумма = КонтрольнаяСуммаРасширения(Расширение);
|
КонтрольнаяСумма = КонтрольнаяСуммаРасширения(Расширение);
|
||||||
РасширениеПриЗапуске = РасширенияПриЗапуске.Получить(КонтрольнаяСумма);
|
РасширениеПриЗапуске = РасширенияПриЗапуске.Получить(КонтрольнаяСумма);
|
||||||
|
Если РасширениеПриЗапуске = Неопределено Тогда
|
||||||
|
Ошибки = Расширение.ПроверитьВозможностьПрименения();
|
||||||
|
Для Каждого Ошибка Из Ошибки Цикл
|
||||||
|
Если Ошибка.Важность = ВажностьПроблемыПримененияРасширенияКонфигурации.Критичная Тогда
|
||||||
|
РасширенияПриЗапуске.Вставить(КонтрольнаяСумма, Расширение);
|
||||||
|
РасширениеПриЗапуске = Расширение;
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
Если РасширениеПриЗапуске <> Неопределено Тогда
|
Если РасширениеПриЗапуске <> Неопределено Тогда
|
||||||
ДобавленныеРасширения.Вставить(КонтрольнаяСумма, Истина);
|
ДобавленныеРасширения.Вставить(КонтрольнаяСумма, Истина);
|
||||||
Расширения.Добавить(РасширениеПриЗапуске);
|
Расширения.Добавить(РасширениеПриЗапуске);
|
||||||
|
|||||||
@@ -16,13 +16,13 @@
|
|||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
// *Область ПрограммныйИнтерфейс.
|
// Область ПрограммныйИнтерфейс.
|
||||||
//
|
//
|
||||||
// Программный интерфейс объекта реализован через ДополнительныеСвойства:
|
// Программный интерфейс объекта реализован через ДополнительныеСвойства.
|
||||||
//
|
//
|
||||||
// ОписаниеПользователяИБ - Структура, как и в модуле объекта справочника Пользователи.
|
// ОписаниеПользователяИБ - Структура, как и в модуле объекта справочника Пользователи.
|
||||||
//
|
//
|
||||||
// *КонецОбласти
|
// КонецОбласти
|
||||||
|
|
||||||
#Область ОбработчикиСобытий
|
#Область ОбработчикиСобытий
|
||||||
|
|
||||||
|
|||||||
@@ -156,7 +156,7 @@
|
|||||||
ГруппаПоСсылкеНового = Выборка.Ссылка;
|
ГруппаПоСсылкеНового = Выборка.Ссылка;
|
||||||
ИначеЕсли Выборка.Наименование = НаименованиеГруппы
|
ИначеЕсли Выборка.Наименование = НаименованиеГруппы
|
||||||
И ГруппаПоНаименованию = Неопределено Тогда
|
И ГруппаПоНаименованию = Неопределено Тогда
|
||||||
ГруппаПоНаименованию = НаименованиеГруппы;
|
ГруппаПоНаименованию = Выборка.Ссылка;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
|||||||
@@ -366,7 +366,7 @@
|
|||||||
Иначе
|
Иначе
|
||||||
// Выбор объектов метаданных
|
// Выбор объектов метаданных
|
||||||
ПараметрыФормы = ПодготовитьПараметрыФормыВыборОбъектовМетаданных();
|
ПараметрыФормы = ПодготовитьПараметрыФормыВыборОбъектовМетаданных();
|
||||||
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыФормы);
|
СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных(ПараметрыФормы);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -1173,10 +1173,10 @@
|
|||||||
ВыбранныеОбъектыМетаданных.Добавить(КлючИЗначение.Значение);
|
ВыбранныеОбъектыМетаданных.Добавить(КлючИЗначение.Значение);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
ПараметрыФормы = Новый Структура;
|
ПараметрыФормы = СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных();
|
||||||
ПараметрыФормы.Вставить("ФильтрПоОбъектамМетаданных", ФильтрПоОбъектамМетаданных);
|
ПараметрыФормы.ФильтрПоОбъектамМетаданных = ФильтрПоОбъектамМетаданных;
|
||||||
ПараметрыФормы.Вставить("ВыбранныеОбъектыМетаданных", ВыбранныеОбъектыМетаданных);
|
ПараметрыФормы.ВыбранныеОбъектыМетаданных = ВыбранныеОбъектыМетаданных;
|
||||||
ПараметрыФормы.Вставить("Заголовок", НСтр("ru = 'Назначение дополнительной обработки'"));
|
ПараметрыФормы.Заголовок = НСтр("ru = 'Назначение дополнительной обработки'");
|
||||||
|
|
||||||
Возврат ПараметрыФормы;
|
Возврат ПараметрыФормы;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|||||||
@@ -3637,6 +3637,16 @@
|
|||||||
<name>СертификатДоверителя</name>
|
<name>СертификатДоверителя</name>
|
||||||
<valueType/>
|
<valueType/>
|
||||||
</parameters>
|
</parameters>
|
||||||
|
<parameters>
|
||||||
|
<name>НаДату</name>
|
||||||
|
<valueType>
|
||||||
|
<types>Date</types>
|
||||||
|
<dateQualifiers>
|
||||||
|
<dateFractions>Date</dateFractions>
|
||||||
|
</dateQualifiers>
|
||||||
|
</valueType>
|
||||||
|
<keyParameter>true</keyParameter>
|
||||||
|
</parameters>
|
||||||
<commandInterface>
|
<commandInterface>
|
||||||
<navigationPanel/>
|
<navigationPanel/>
|
||||||
<commandBar/>
|
<commandBar/>
|
||||||
|
|||||||
@@ -30,7 +30,15 @@
|
|||||||
Доверитель = ?(ЗначениеЗаполнено(Параметры.Доверитель), Параметры.Доверитель, Доверитель);
|
Доверитель = ?(ЗначениеЗаполнено(Параметры.Доверитель), Параметры.Доверитель, Доверитель);
|
||||||
Представитель = ?(ЗначениеЗаполнено(Параметры.Представитель), Параметры.Представитель, Представитель);
|
Представитель = ?(ЗначениеЗаполнено(Параметры.Представитель), Параметры.Представитель, Представитель);
|
||||||
Полномочия = ?(ЗначениеЗаполнено(Параметры.Полномочия), Параметры.Полномочия, Полномочия);
|
Полномочия = ?(ЗначениеЗаполнено(Параметры.Полномочия), Параметры.Полномочия, Полномочия);
|
||||||
Сертификат = ?(ТипЗнч(СертификатПредставителя) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования"), СертификатПредставителя, Неопределено);
|
|
||||||
|
Если ТипЗнч(СертификатПредставителя) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||||
|
Сертификат = СертификатПредставителя;
|
||||||
|
ИначеЕсли ТипЗнч(СертификатПредставителя) = Тип("ДвоичныеДанные") Или ЭтоАдресВременногоХранилища(СертификатПредставителя) Тогда
|
||||||
|
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(СертификатПредставителя);
|
||||||
|
Сертификат = СвойстваСертификата.Представление;
|
||||||
|
Иначе
|
||||||
|
Сертификат = Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||||
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
|
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
|
||||||
@@ -372,7 +380,13 @@
|
|||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура УстановитьОтбор()
|
Процедура УстановитьОтбор()
|
||||||
ТекущаяДатаСеанса = КонецДня(ОбщегоНазначенияКлиент.ДатаСеанса());
|
|
||||||
|
Если ЗначениеЗаполнено(Параметры.НаДату) Тогда
|
||||||
|
ТекущаяДатаСеанса = КонецДня(Параметры.НаДату);
|
||||||
|
Иначе
|
||||||
|
ТекущаяДатаСеанса = КонецДня(ОбщегоНазначенияКлиент.ДатаСеанса());
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Действует", Истина, ВидСравненияКомпоновкиДанных.Равно,,ТолькоДействующие);
|
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Действует", Истина, ВидСравненияКомпоновкиДанных.Равно,,ТолькоДействующие);
|
||||||
УстановитьОтборСоСтрокойПоиска(Доверитель, "Доверитель");
|
УстановитьОтборСоСтрокойПоиска(Доверитель, "Доверитель");
|
||||||
УстановитьОтборСоСтрокойПоиска(Представитель, "Представитель");
|
УстановитьОтборСоСтрокойПоиска(Представитель, "Представитель");
|
||||||
@@ -453,13 +467,14 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Элементы.Список.Обновить();
|
Элементы.Список.Обновить();
|
||||||
Элементы.Список.ТекущаяСтрока = Результат.Доверенность;
|
|
||||||
Элементы.Список.ВыделенныеСтроки.Очистить();
|
Элементы.Список.ВыделенныеСтроки.Очистить();
|
||||||
|
|
||||||
Для Каждого Ссылка Из Результат.ЦепочкаДоверенностей Цикл
|
Для Каждого Ссылка Из Результат.ЦепочкаДоверенностей Цикл
|
||||||
Элементы.Список.ВыделенныеСтроки.Добавить(Ссылка);
|
Элементы.Список.ВыделенныеСтроки.Добавить(Ссылка);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
Элементы.Список.ТекущаяСтрока = Результат.Доверенность;
|
||||||
|
|
||||||
Если Результат.ЦепочкаДоверенностей.Количество() = 1 Тогда
|
Если Результат.ЦепочкаДоверенностей.Количество() = 1 Тогда
|
||||||
ПоказатьЗначение(Неопределено, Результат.Доверенность);
|
ПоказатьЗначение(Неопределено, Результат.Доверенность);
|
||||||
Иначе
|
Иначе
|
||||||
@@ -592,14 +607,14 @@
|
|||||||
Элементы.Список.Обновить();
|
Элементы.Список.Обновить();
|
||||||
Элементы.Список.ВыделенныеСтроки.Очистить();
|
Элементы.Список.ВыделенныеСтроки.Очистить();
|
||||||
|
|
||||||
Если ЗагруженныеДоверенности.Количество() > 0 Тогда
|
|
||||||
Элементы.Список.ТекущаяСтрока = ЗагруженныеДоверенности[0];
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Для Каждого Ссылка Из ЗагруженныеДоверенности Цикл
|
Для Каждого Ссылка Из ЗагруженныеДоверенности Цикл
|
||||||
Элементы.Список.ВыделенныеСтроки.Добавить(Ссылка);
|
Элементы.Список.ВыделенныеСтроки.Добавить(Ссылка);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если ЗагруженныеДоверенности.Количество() > 0 Тогда
|
||||||
|
Элементы.Список.ТекущаяСтрока = ЗагруженныеДоверенности[0];
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(РезультатЗагрузки.ТекстОшибки) Тогда
|
Если ЗначениеЗаполнено(РезультатЗагрузки.ТекстОшибки) Тогда
|
||||||
ВызватьИсключение РезультатЗагрузки.ТекстОшибки;
|
ВызватьИсключение РезультатЗагрузки.ТекстОшибки;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -1099,6 +1099,10 @@
|
|||||||
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Не заполнены полномочия.'"),,,,Отказ);
|
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Не заполнены полномочия.'"),,,,Отказ);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Объект.ДляНалоговыхОрганов И Не ЗначениеЗаполнено(Объект.КодНалоговогоОрганаПредставления) Тогда
|
||||||
|
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Не указан код налогового органа представления.'"),,,"Объект.КодНалоговогоОрганаПредставления", Отказ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если СтрДлина(Объект.ИныеСведения) > 5000 Тогда
|
Если СтрДлина(Объект.ИныеСведения) > 5000 Тогда
|
||||||
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Иные сведения не должны превышать 5000 символов.'"),,,"Объект.ИныеСведения", Отказ);
|
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Иные сведения не должны превышать 5000 символов.'"),,,"Объект.ИныеСведения", Отказ);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -937,6 +937,8 @@
|
|||||||
|
|
||||||
ФайлыДоверенностей = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Доверенности, "ФайлДоверенности");
|
ФайлыДоверенностей = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Доверенности, "ФайлДоверенности");
|
||||||
|
|
||||||
|
ОписанияФайловДоверенностей = Новый Соответствие;
|
||||||
|
|
||||||
Для Каждого Доверенность Из Доверенности Цикл
|
Для Каждого Доверенность Из Доверенности Цикл
|
||||||
ФайлыДоверенности = Новый Массив;
|
ФайлыДоверенности = Новый Массив;
|
||||||
ФайлДоверенности = ФайлыДоверенностей[Доверенность];
|
ФайлДоверенности = ФайлыДоверенностей[Доверенность];
|
||||||
@@ -972,10 +974,10 @@
|
|||||||
|
|
||||||
ФайлыДоверенности.Добавить(ОписаниеФайла);
|
ФайлыДоверенности.Добавить(ОписаниеФайла);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
ФайлыДоверенностей.Вставить(Доверенность, ФайлыДоверенности);
|
ОписанияФайловДоверенностей.Вставить(Доверенность, ФайлыДоверенности);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат ФайлыДоверенностей;
|
Возврат ОписанияФайловДоверенностей;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -1470,23 +1472,32 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Создает новые либо перезаполняет существующие элементы справочника МашиночитаемыеДоверенности данными из файлов.
|
// Распределяет файлы по группам с целью поиска файлов доверенностей.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ЗагруженныеФайлы - Массив из Структура - файлы доверенностей и подписей, архивы zip:
|
// ЗагруженныеФайлы - Массив из Структура - файлы доверенностей и подписей, архивы zip:
|
||||||
// * ИмяФайла - Строка - имя файла без пути к нему,
|
// * ИмяФайла - Строка - имя файла без пути к нему,
|
||||||
// * Хранение - Строка - адрес двоичных данных файла во временном хранилище.
|
// * Хранение - Строка - адрес двоичных данных файла во временном хранилище.
|
||||||
//
|
|
||||||
// Замещать - Булево - при замещении выполняется перезаполнение элемента, все имеющиеся присоединенные файлы при этом
|
|
||||||
// помечаются на удаление.
|
|
||||||
//
|
//
|
||||||
Функция ЗагрузитьДоверенностиВИнформационнуюБазу(ЗагруженныеФайлы, Замещать = Ложь) Экспорт
|
// Возвращаемое значение:
|
||||||
|
// Структура - уже разобранные файлы доверенностей и подписей:
|
||||||
|
// * ФайлыДоверенностей - Соответствие - файлы доверенностей
|
||||||
|
// * ПодписиФайлов - Соответствие - файлы подписей доверенностей
|
||||||
|
// * ФайлыПодписей - Соответствие - другие файлы подписей
|
||||||
|
// * ФайлыZIP - Соответствие - архивы
|
||||||
|
// * ДругиеФайлы - Соответствие - файлы, не относящиеся к доверенностям
|
||||||
|
//
|
||||||
|
Функция ФайлыДоверенностейИПодписей(ФайлыДляОбработки, УникальныйИдентификатор = Неопределено)
|
||||||
|
|
||||||
|
ЗагруженныеФайлы = ОбщегоНазначения.СкопироватьРекурсивно(ФайлыДляОбработки);
|
||||||
|
|
||||||
|
Результат = Новый Структура("ФайлыДоверенностей, ФайлыПодписей, ДругиеФайлы, ФайлыZIP, ПодписиФайлов");
|
||||||
|
|
||||||
ФайлыДоверенностей = Новый Соответствие;
|
ФайлыДоверенностей = Новый Соответствие;
|
||||||
ФайлыПодписей = Новый Соответствие;
|
ФайлыПодписей = Новый Соответствие;
|
||||||
ФайлыZIP = Новый Соответствие;
|
ФайлыZIP = Новый Соответствие;
|
||||||
ДругиеФайлы = Новый Соответствие;
|
ДругиеФайлы = Новый Соответствие;
|
||||||
|
|
||||||
Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
|
Для Каждого ЗагруженныйФайл Из ЗагруженныеФайлы Цикл
|
||||||
Файл = Новый Файл(ЗагруженныйФайл.ИмяФайла);
|
Файл = Новый Файл(ЗагруженныйФайл.ИмяФайла);
|
||||||
|
|
||||||
@@ -1496,12 +1507,12 @@
|
|||||||
|
|
||||||
Для Каждого ФайлИзАрхива Из ФайлыИзАрхива Цикл
|
Для Каждого ФайлИзАрхива Из ФайлыИзАрхива Цикл
|
||||||
Файл = Новый Файл(ФайлИзАрхива.Ключ);
|
Файл = Новый Файл(ФайлИзАрхива.Ключ);
|
||||||
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ФайлИзАрхива.Значение);
|
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ФайлИзАрхива.Значение, УникальныйИдентификатор);
|
||||||
|
|
||||||
ОписаниеФайла = Новый Структура;
|
ОписаниеФайла = Новый Структура;
|
||||||
ОписаниеФайла.Вставить("ИмяФайла", Файл.Имя);
|
ОписаниеФайла.Вставить("ИмяФайла", Файл.Имя);
|
||||||
ОписаниеФайла.Вставить("Хранение", АдресВоВременномХранилище);
|
ОписаниеФайла.Вставить("Хранение", АдресВоВременномХранилище);
|
||||||
|
|
||||||
ЗагруженныеФайлы.Добавить(ОписаниеФайла);
|
ЗагруженныеФайлы.Добавить(ОписаниеФайла);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1525,6 +1536,40 @@
|
|||||||
ПодписиФайлов = ПодписиФайлов(ЗагруженныеФайлы, ФайлыПодписей);
|
ПодписиФайлов = ПодписиФайлов(ЗагруженныеФайлы, ФайлыПодписей);
|
||||||
СгруппироватьФайлыПоДоверенностям(ФайлыДоверенностей, ДругиеФайлы);
|
СгруппироватьФайлыПоДоверенностям(ФайлыДоверенностей, ДругиеФайлы);
|
||||||
|
|
||||||
|
Результат.ФайлыДоверенностей = ФайлыДоверенностей;
|
||||||
|
Результат.ФайлыПодписей = ФайлыПодписей;
|
||||||
|
Результат.ФайлыZIP = ФайлыZIP;
|
||||||
|
Результат.ДругиеФайлы = ДругиеФайлы;
|
||||||
|
Результат.ПодписиФайлов = ПодписиФайлов;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Создает новые либо перезаполняет существующие элементы справочника МашиночитаемыеДоверенности данными из файлов.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ЗагруженныеФайлы - Массив из Структура - файлы доверенностей и подписей, архивы zip:
|
||||||
|
// * ИмяФайла - Строка - имя файла без пути к нему,
|
||||||
|
// * Хранение - Строка - адрес двоичных данных файла во временном хранилище.
|
||||||
|
// - Структура - уже разобранные файлы доверенностей и подписей:
|
||||||
|
// * ФайлыДоверенностей - Соответствие
|
||||||
|
// * ПодписиФайлов - Соответствие
|
||||||
|
//
|
||||||
|
// Замещать - Булево - при замещении выполняется перезаполнение элемента, все имеющиеся присоединенные файлы при этом
|
||||||
|
// помечаются на удаление.
|
||||||
|
//
|
||||||
|
Функция ЗагрузитьДоверенностиВИнформационнуюБазу(ЗагруженныеФайлы, Замещать = Ложь) Экспорт
|
||||||
|
|
||||||
|
Если ТипЗнч(ЗагруженныеФайлы) = Тип("Структура") Тогда
|
||||||
|
Результат = ЗагруженныеФайлы;
|
||||||
|
Иначе
|
||||||
|
Результат = ФайлыДоверенностейИПодписей(ЗагруженныеФайлы);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ФайлыДоверенностей = Результат.ФайлыДоверенностей;
|
||||||
|
ПодписиФайлов = Результат.ПодписиФайлов;
|
||||||
|
|
||||||
Доверенности = Новый Массив;
|
Доверенности = Новый Массив;
|
||||||
ТекстыОшибок = Новый Массив;
|
ТекстыОшибок = Новый Массив;
|
||||||
|
|
||||||
@@ -1690,6 +1735,145 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция СвойстваДоверенностейИзФайлов(ЗагруженныеФайлы, УникальныйИдентификатор) Экспорт
|
||||||
|
|
||||||
|
ФайлыДоверенностейИПодписей = ФайлыДоверенностейИПодписей(ЗагруженныеФайлы, УникальныйИдентификатор);
|
||||||
|
|
||||||
|
Доверенности = Новый Массив;
|
||||||
|
ТекстыОшибок = Новый Массив;
|
||||||
|
ДругиеФайлы = Новый Соответствие;
|
||||||
|
|
||||||
|
КоличествоПропущенных = 0;
|
||||||
|
КоличествоПрочитанных = 0;
|
||||||
|
|
||||||
|
Для Каждого Элемент Из ФайлыДоверенностейИПодписей.ФайлыДоверенностей Цикл
|
||||||
|
|
||||||
|
ЗагруженныйФайл = Элемент.Ключ;
|
||||||
|
ИмяФайла = ЗагруженныйФайл.ИмяФайла;
|
||||||
|
АдресФайла = ЗагруженныйФайл.Хранение;
|
||||||
|
|
||||||
|
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайла);
|
||||||
|
ДоверенностьXML = ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные);
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
ОписаниеДоверенности = ДоверенностьXDTO(ДоверенностьXML);
|
||||||
|
Исключение
|
||||||
|
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось прочитать файл %1 по причине:
|
||||||
|
|%2'"),
|
||||||
|
ИмяФайла,
|
||||||
|
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||||
|
ТекстыОшибок.Добавить(ТекстОшибки);
|
||||||
|
Продолжить;
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если ОписаниеДоверенности.Документ.Передов = Неопределено Тогда
|
||||||
|
ЕдиныйРегистрационныйНомер = ОписаниеДоверенности.Документ.Довер.СвДов.НомДовер;
|
||||||
|
Иначе
|
||||||
|
ЕдиныйРегистрационныйНомер = ОписаниеДоверенности.Документ.Передов.СвПереДовер.НомДовер;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
//@skip-check query-in-loop - штучные запросы в количестве загружаемых доверенностей
|
||||||
|
Доверенность = НайтиДоверенность(ЕдиныйРегистрационныйНомер);
|
||||||
|
ИННПредставителей = Новый Массив;
|
||||||
|
|
||||||
|
Если Доверенность = Неопределено Тогда
|
||||||
|
|
||||||
|
Объект = СоздатьЭлемент();
|
||||||
|
Если ОписаниеДоверенности.Документ.Передов = Неопределено Тогда
|
||||||
|
ЗаполнитьДоверенность(Объект, ОписаниеДоверенности);
|
||||||
|
Иначе
|
||||||
|
//@skip-check query-in-loop - штучные запросы в количестве загружаемых доверенностей
|
||||||
|
ЗаполнитьПередовериеИзОбъектаXDTO(Объект, ОписаниеДоверенности);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Доверенность = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = '%1 - %2 (будет загружена)'"),
|
||||||
|
АвтоНаименование(Объект), ЕдиныйРегистрационныйНомер);
|
||||||
|
|
||||||
|
МассивПредставителей = Новый Массив;
|
||||||
|
Представители = Объект.Представители.Выгрузить();
|
||||||
|
|
||||||
|
Найдено = Представители.НайтиСтроки(Новый Структура("ИдентификаторРодителя",
|
||||||
|
Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")));
|
||||||
|
|
||||||
|
Для Каждого СтрокаОрганизация Из Найдено Цикл
|
||||||
|
|
||||||
|
РеквизитыОрганизации = СтрокаОрганизация.ПредставительРеквизиты.Получить();
|
||||||
|
|
||||||
|
Если РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
||||||
|
Если ЗначениеЗаполнено(РеквизитыОрганизации.ИННФЛ) Тогда
|
||||||
|
ИННПредставителей.Добавить(РеквизитыОрганизации.ИННФЛ);
|
||||||
|
КонецЕсли;
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(РеквизитыОрганизации.ИНН) Тогда
|
||||||
|
ИННПредставителей.Добавить(РеквизитыОрганизации.ИНН);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НайденоФизическиеЛица = Представители.НайтиСтроки(Новый Структура("ИдентификаторРодителя",
|
||||||
|
СтрокаОрганизация.Идентификатор));
|
||||||
|
|
||||||
|
Для Каждого СтрокаФизическоеЛицо Из НайденоФизическиеЛица Цикл
|
||||||
|
Если ЗначениеЗаполнено(СтрокаФизическоеЛицо.ИННФЛ) Тогда
|
||||||
|
ИННПредставителей.Добавить(СтрокаФизическоеЛицо.ИННФЛ);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СвойстваДоверенности = Новый Структура;
|
||||||
|
СвойстваДоверенности.Вставить("ИмяФайла", ИмяФайла);
|
||||||
|
СвойстваДоверенности.Вставить("АдресФайла", АдресФайла);
|
||||||
|
СвойстваДоверенности.Вставить("МашиночитаемаяДоверенность", Доверенность);
|
||||||
|
СвойстваДоверенности.Вставить("НомерДоверенности", ЕдиныйРегистрационныйНомер);
|
||||||
|
СвойстваДоверенности.Вставить("ПоляОтбора", СтрСоединить(ИННПредставителей, ";"));
|
||||||
|
|
||||||
|
ФайлыДоверенности = Новый Массив;
|
||||||
|
ФайлыДоверенности.Добавить(Элемент.Ключ);
|
||||||
|
|
||||||
|
ДругиеФайлы.Вставить(ИмяФайла, Истина);
|
||||||
|
Для Каждого ДополнительныйФайл Из Элемент.Значение Цикл
|
||||||
|
ДругиеФайлы.Вставить(ДополнительныйФайл.ИмяФайла, Истина);
|
||||||
|
ФайлыДоверенности.Добавить(ДополнительныйФайл);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ПодписиФайлов = ФайлыДоверенностейИПодписей.ПодписиФайлов.Получить(Элемент.Ключ);
|
||||||
|
Если ПодписиФайлов <> Неопределено Тогда
|
||||||
|
Для Каждого Подпись Из ПодписиФайлов Цикл
|
||||||
|
ДругиеФайлы.Вставить(Подпись.ИмяФайла, Истина);
|
||||||
|
ФайлыДоверенности.Добавить(Подпись);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СвойстваДоверенности.Вставить("ФайлыДоверенности", ПоместитьВоВременноеХранилище(ФайлыДоверенности, УникальныйИдентификатор));
|
||||||
|
Доверенности.Добавить(СвойстваДоверенности);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Для Каждого КлючИЗначение Из ФайлыДоверенностейИПодписей.ФайлыZIP Цикл
|
||||||
|
ДругиеФайлы.Вставить(КлючИЗначение.Ключ.ИмяФайла, Истина);
|
||||||
|
|
||||||
|
ПодписиФайлов = ФайлыДоверенностейИПодписей.ПодписиФайлов.Получить(КлючИЗначение.Ключ);
|
||||||
|
Если ПодписиФайлов <> Неопределено Тогда
|
||||||
|
Для Каждого Подпись Из ПодписиФайлов Цикл
|
||||||
|
ДругиеФайлы.Вставить(Подпись.ИмяФайла, Истина);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Результат = Новый Структура;
|
||||||
|
Результат.Вставить("Доверенности", Доверенности);
|
||||||
|
Результат.Вставить("ТекстыОшибок", ТекстыОшибок);
|
||||||
|
Результат.Вставить("ДругиеФайлы", ДругиеФайлы);
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура СгруппироватьФайлыПоДоверенностям(ФайлыДоверенностей, ДругиеФайлы)
|
Процедура СгруппироватьФайлыПоДоверенностям(ФайлыДоверенностей, ДругиеФайлы)
|
||||||
|
|
||||||
Для Каждого Элемент Из ДругиеФайлы Цикл
|
Для Каждого Элемент Из ДругиеФайлы Цикл
|
||||||
@@ -1781,6 +1965,9 @@
|
|||||||
ПрисоединенныйФайл = ДобавитьПрисоединенныйФайл(Доверенность, ИмяФайла, АдресФайла);
|
ПрисоединенныйФайл = ДобавитьПрисоединенныйФайл(Доверенность, ИмяФайла, АдресФайла);
|
||||||
|
|
||||||
ПодписиФайла = ПодписиФайлов[ЗагруженныйФайл];
|
ПодписиФайла = ПодписиФайлов[ЗагруженныйФайл];
|
||||||
|
Если ПодписиФайла = Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
ДобавитьПодписи(ПрисоединенныйФайл, ПодписиФайла, Доверенность);
|
ДобавитьПодписи(ПрисоединенныйФайл, ПодписиФайла, Доверенность);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
|||||||
@@ -745,11 +745,15 @@
|
|||||||
ДанныеНаименования = СтрРазделить(ВыбранноеЗначение, " ", Ложь);
|
ДанныеНаименования = СтрРазделить(ВыбранноеЗначение, " ", Ложь);
|
||||||
Элементы.Наименование.ОбновитьТекстРедактирования();
|
Элементы.Наименование.ОбновитьТекстРедактирования();
|
||||||
Если ДанныеНаименования.Количество() < 3 Тогда
|
Если ДанныеНаименования.Количество() < 3 Тогда
|
||||||
Элементы.Наименование.ВыделенныйТекст = ВыбранноеЗначение + " ";
|
НовоеЗначение = ВыбранноеЗначение + " ";
|
||||||
Иначе
|
Иначе
|
||||||
Элементы.Наименование.ВыделенныйТекст = ВыбранноеЗначение;
|
НовоеЗначение = ВыбранноеЗначение;
|
||||||
ПропуститьНаименованиеАвтоПодбор = Истина;
|
ПропуститьНаименованиеАвтоПодбор = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
Элементы.Наименование.ВыделенныйТекст = НовоеЗначение;
|
||||||
|
Если Объект.Наименование <> НовоеЗначение Тогда
|
||||||
|
Объект.Наименование = ВыбранноеЗначение;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ПропуститьНаименованиеПриИзменении = Ложь;
|
ПропуститьНаименованиеПриИзменении = Ложь;
|
||||||
|
|
||||||
|
|||||||
@@ -18,9 +18,9 @@
|
|||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
// *Область ПрограммныйИнтерфейс.
|
// Область ПрограммныйИнтерфейс.
|
||||||
//
|
//
|
||||||
// Программный интерфейс объекта реализован через ДополнительныеСвойства:
|
// Программный интерфейс объекта реализован через ДополнительныеСвойства.
|
||||||
//
|
//
|
||||||
// ОписаниеПользователяИБ - Структура со свойствами:
|
// ОписаниеПользователяИБ - Структура со свойствами:
|
||||||
// Действие - Строка - "Записать" или "Удалить".
|
// Действие - Строка - "Записать" или "Удалить".
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
// Это нужно, чтобы сделать связанные действия при создании администратора, например,
|
// Это нужно, чтобы сделать связанные действия при создании администратора, например,
|
||||||
// автоматически добавить пользователя в группу доступа Администраторы.
|
// автоматически добавить пользователя в группу доступа Администраторы.
|
||||||
//
|
//
|
||||||
// *КонецОбласти
|
// КонецОбласти
|
||||||
|
|
||||||
#Область ОбработчикиСобытий
|
#Область ОбработчикиСобытий
|
||||||
|
|
||||||
|
|||||||
@@ -2305,10 +2305,7 @@
|
|||||||
// Параметры:
|
// Параметры:
|
||||||
// Результат - Структура:
|
// Результат - Структура:
|
||||||
// * Получатели - ТаблицаЗначений:
|
// * Получатели - ТаблицаЗначений:
|
||||||
// * Получатель - СправочникСсылка.ГруппыПользователей,
|
// * Получатель - ОпределяемыйТип.ПолучательРассылки
|
||||||
// - СправочникСсылка._ДемоКонтрагенты,
|
|
||||||
// - СправочникСсылка._ДемоПартнеры,
|
|
||||||
// - СправочникСсылка.Пользователи
|
|
||||||
// * Исключен - Булево
|
// * Исключен - Булево
|
||||||
// * Адрес - Строка
|
// * Адрес - Строка
|
||||||
// * ИндексКартинки - Число
|
// * ИндексКартинки - Число
|
||||||
@@ -2882,9 +2879,11 @@
|
|||||||
ТекстВопроса = НСтр("ru = 'Для того чтобы вставлять отчеты в текст письма, нужно отключить пароли.'");
|
ТекстВопроса = НСтр("ru = 'Для того чтобы вставлять отчеты в текст письма, нужно отключить пароли.'");
|
||||||
ПараметрыВопроса.КнопкаПоУмолчанию = "ОтключитьПароли";
|
ПараметрыВопроса.КнопкаПоУмолчанию = "ОтключитьПароли";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(
|
Если ДоступноШифрованиеВложений Или Объект.Архивировать Тогда
|
||||||
Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), ТекстВопроса,
|
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(
|
||||||
КнопкиВопроса, ПараметрыВопроса);
|
Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), ТекстВопроса,
|
||||||
|
КнопкиВопроса, ПараметрыВопроса);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ИначеЕсли Объект.Личная Тогда
|
ИначеЕсли Объект.Личная Тогда
|
||||||
|
|
||||||
|
|||||||
+22
-18
@@ -747,26 +747,30 @@
|
|||||||
|
|
||||||
Если ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра)
|
Если ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра)
|
||||||
И Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
И Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
||||||
|
|
||||||
ПодписаниеРазрешено = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
|
|
||||||
Сертификат, "РазрешитьПодписание", Неопределено);
|
|
||||||
|
|
||||||
Если ПодписаниеРазрешено = Неопределено Тогда
|
Если РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.РазрешитьПодписание Тогда
|
||||||
Оповещение = Новый ОписаниеОповещения("ПодписатьДанныеПослеОтветаНаВопросОбУЦ", ЭтотОбъект, Контекст);
|
ПодписаниеРазрешено = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
|
||||||
|
Сертификат, "РазрешитьПодписание", Неопределено);
|
||||||
|
|
||||||
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
Если ПодписаниеРазрешено = Неопределено Тогда
|
||||||
ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание;
|
Оповещение = Новый ОписаниеОповещения("ПодписатьДанныеПослеОтветаНаВопросОбУЦ", ЭтотОбъект, Контекст);
|
||||||
ПараметрыВопроса.Заголовок = НСтр("ru = 'Запрос разрешения на подпись'");
|
|
||||||
ПараметрыВопроса.ТекстФлажка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||||
НСтр("ru = 'Запомнить выбор для сертификата ""%1""'"), Сертификат);
|
ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание;
|
||||||
|
ПараметрыВопроса.Заголовок = НСтр("ru = 'Запрос разрешения на подпись'");
|
||||||
Кнопки = Новый СписокЗначений;
|
ПараметрыВопроса.ТекстФлажка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
Кнопки.Добавить(Истина, НСтр("ru = 'Разрешить подписание'"));
|
НСтр("ru = 'Запомнить выбор для сертификата ""%1""'"), Сертификат);
|
||||||
Кнопки.Добавить(Ложь, НСтр("ru = 'Отменить подписание'"));
|
|
||||||
|
Кнопки = Новый СписокЗначений;
|
||||||
ПредупреждениеОбОшибке = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
|
Кнопки.Добавить(Истина, НСтр("ru = 'Разрешить подписание'"));
|
||||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ПредупреждениеОбОшибке.ТекстОшибки, Кнопки, ПараметрыВопроса);
|
Кнопки.Добавить(Ложь, НСтр("ru = 'Отменить подписание'"));
|
||||||
Возврат;
|
|
||||||
|
ПредупреждениеОбОшибке = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
|
||||||
|
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ПредупреждениеОбОшибке.ТекстОшибки, Кнопки, ПараметрыВопроса);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
Иначе
|
||||||
|
ПодписаниеРазрешено = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПодписатьДанныеПослеОтветаНаВопросОбУЦ(ПодписаниеРазрешено, Контекст);
|
ПодписатьДанныеПослеОтветаНаВопросОбУЦ(ПодписаниеРазрешено, Контекст);
|
||||||
|
|||||||
+3
-1
@@ -673,7 +673,9 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Элементы.Предупреждение.Заголовок = Новый ФорматированнаяСтрока(МассивСтрок);
|
Элементы.Предупреждение.Заголовок = Новый ФорматированнаяСтрока(МассивСтрок);
|
||||||
|
|
||||||
Если ЭлектроннаяПодпись.ДобавлениеИзменениеЭлектронныхПодписей() Тогда
|
Если ДанныеПредупреждения.РазрешитьПодписание
|
||||||
|
И ЭлектроннаяПодпись.ДобавлениеИзменениеЭлектронныхПодписей() Тогда
|
||||||
|
|
||||||
НастройкаРазрешитьПодписание = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
НастройкаРазрешитьПодписание = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
Объект.Ссылка, "РазрешитьПодписание", Неопределено);
|
Объект.Ссылка, "РазрешитьПодписание", Неопределено);
|
||||||
Элементы.ПодписаниеРазрешено.Видимость = Истина;
|
Элементы.ПодписаниеРазрешено.Видимость = Истина;
|
||||||
|
|||||||
@@ -4249,6 +4249,20 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</columns>
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>ИмяФайлаПодписи</name>
|
||||||
|
<id>38</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
</attributes>
|
</attributes>
|
||||||
<attributes>
|
<attributes>
|
||||||
<name>СертификатыШифрования</name>
|
<name>СертификатыШифрования</name>
|
||||||
|
|||||||
@@ -720,7 +720,17 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МодульЭлектроннаяПодписьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиент");
|
МодульЭлектроннаяПодписьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиент");
|
||||||
МодульЭлектроннаяПодписьКлиент.СохранитьПодпись(ТекущиеДанные.АдресПодписи);
|
|
||||||
|
ИмяФайлаПодписи = ТекущиеДанные.ИмяФайлаПодписи;
|
||||||
|
Если Не ЗначениеЗаполнено(ИмяФайлаПодписи) Тогда
|
||||||
|
|
||||||
|
РасширениеДляФайловПодписи = МодульЭлектроннаяПодписьКлиент.ПерсональныеНастройки().РасширениеДляФайловПодписи;
|
||||||
|
МодульЭлектроннаяПодписьСлужебныйКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйКлиентСервер");
|
||||||
|
ИмяФайлаПодписи = МодульЭлектроннаяПодписьСлужебныйКлиентСервер.ИмяФайлаПодписи(Объект.Наименование,
|
||||||
|
ТекущиеДанные.КомуВыданСертификат, РасширениеДляФайловПодписи);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МодульЭлектроннаяПодписьКлиент.СохранитьПодпись(ТекущиеДанные.АдресПодписи, ИмяФайлаПодписи);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -1135,6 +1145,9 @@
|
|||||||
|
|
||||||
Если Форма.ЭлектронныеПодписи.Количество() = 0 Тогда
|
Если Форма.ЭлектронныеПодписи.Количество() = 0 Тогда
|
||||||
СделатьКомандуНедоступной(ИменаДоступныхКоманд, "ОткрытьПодпись");
|
СделатьКомандуНедоступной(ИменаДоступныхКоманд, "ОткрытьПодпись");
|
||||||
|
Форма.Элементы.ФормаСохранитьВместеСПодписью.Видимость = Ложь;
|
||||||
|
Иначе
|
||||||
|
Форма.Элементы.ФормаСохранитьВместеСПодписью.Видимость = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого ЭлементФормы Из Элементы Цикл
|
Для Каждого ЭлементФормы Из Элементы Цикл
|
||||||
|
|||||||
@@ -116,6 +116,24 @@
|
|||||||
<defaultPresentation>AsDescription</defaultPresentation>
|
<defaultPresentation>AsDescription</defaultPresentation>
|
||||||
<editType>InDialog</editType>
|
<editType>InDialog</editType>
|
||||||
<choiceMode>BothWays</choiceMode>
|
<choiceMode>BothWays</choiceMode>
|
||||||
|
<attributes uuid="ec37d236-db36-44ef-afc2-267af1f40c1f">
|
||||||
|
<name>АдресЛичногоКабинета</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Адрес личного кабинета</value>
|
||||||
|
</synonym>
|
||||||
|
<type>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>250</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</type>
|
||||||
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<fillValue xsi:type="core:StringValue"/>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
<dataHistory>Use</dataHistory>
|
||||||
|
</attributes>
|
||||||
<attributes uuid="913830c8-da01-4b7e-9d83-d406c2fefd49">
|
<attributes uuid="913830c8-da01-4b7e-9d83-d406c2fefd49">
|
||||||
<name>АдресСервера</name>
|
<name>АдресСервера</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
@@ -135,6 +153,44 @@
|
|||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<dataHistory>Use</dataHistory>
|
<dataHistory>Use</dataHistory>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes uuid="293cda8c-1cc8-42c0-a68f-d22163aed4f1">
|
||||||
|
<name>ВерсияАПИ</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Версия</value>
|
||||||
|
</synonym>
|
||||||
|
<type>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>10</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</type>
|
||||||
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<fillChecking>ShowError</fillChecking>
|
||||||
|
<fillValue xsi:type="core:StringValue"/>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
<dataHistory>Use</dataHistory>
|
||||||
|
</attributes>
|
||||||
|
<attributes uuid="d835f08d-79c6-4e79-a7c1-f00dc05778b9">
|
||||||
|
<name>ВнутреннийИдентификатор</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Внутренний идентификатор</value>
|
||||||
|
</synonym>
|
||||||
|
<comment>Данное поле заполняется программно, элементы с заполненным полем блокируются от изменения.</comment>
|
||||||
|
<type>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>40</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</type>
|
||||||
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<fillValue xsi:type="core:StringValue"/>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
<dataHistory>Use</dataHistory>
|
||||||
|
</attributes>
|
||||||
<attributes uuid="653dbf7d-a213-42c7-98da-9e639f41bb02">
|
<attributes uuid="653dbf7d-a213-42c7-98da-9e639f41bb02">
|
||||||
<name>ЗащищенноеСоединениеГОСТ</name>
|
<name>ЗащищенноеСоединениеГОСТ</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
@@ -150,41 +206,21 @@
|
|||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<dataHistory>Use</dataHistory>
|
<dataHistory>Use</dataHistory>
|
||||||
</attributes>
|
</attributes>
|
||||||
<attributes uuid="ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171">
|
<attributes uuid="8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5">
|
||||||
<name>ТаймАут</name>
|
<name>ИдентификаторСЭП</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Тайм-аут (сек.)</value>
|
<value>Идентификатор СЭП</value>
|
||||||
</synonym>
|
|
||||||
<type>
|
|
||||||
<types>Number</types>
|
|
||||||
<numberQualifiers>
|
|
||||||
<precision>4</precision>
|
|
||||||
<nonNegative>true</nonNegative>
|
|
||||||
</numberQualifiers>
|
|
||||||
</type>
|
|
||||||
<minValue xsi:type="core:UndefinedValue"/>
|
|
||||||
<maxValue xsi:type="core:UndefinedValue"/>
|
|
||||||
<fillValue xsi:type="core:NumberValue">
|
|
||||||
<value>0</value>
|
|
||||||
</fillValue>
|
|
||||||
<fullTextSearch>Use</fullTextSearch>
|
|
||||||
<dataHistory>Use</dataHistory>
|
|
||||||
</attributes>
|
|
||||||
<attributes uuid="9f1c8979-2b3d-4a96-af6c-4577541696a3">
|
|
||||||
<name>ШаблонПодтверждения</name>
|
|
||||||
<synonym>
|
|
||||||
<key>ru</key>
|
|
||||||
<value>Шаблон подтверждения</value>
|
|
||||||
</synonym>
|
</synonym>
|
||||||
<type>
|
<type>
|
||||||
<types>String</types>
|
<types>String</types>
|
||||||
<stringQualifiers>
|
<stringQualifiers>
|
||||||
<length>30</length>
|
<length>100</length>
|
||||||
</stringQualifiers>
|
</stringQualifiers>
|
||||||
</type>
|
</type>
|
||||||
<minValue xsi:type="core:UndefinedValue"/>
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
<maxValue xsi:type="core:UndefinedValue"/>
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<fillChecking>ShowError</fillChecking>
|
||||||
<fillValue xsi:type="core:StringValue"/>
|
<fillValue xsi:type="core:StringValue"/>
|
||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<dataHistory>Use</dataHistory>
|
<dataHistory>Use</dataHistory>
|
||||||
@@ -208,21 +244,35 @@
|
|||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<dataHistory>Use</dataHistory>
|
<dataHistory>Use</dataHistory>
|
||||||
</attributes>
|
</attributes>
|
||||||
<attributes uuid="8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5">
|
<attributes uuid="ee0275e4-a497-4623-9d2f-6308ea2e70ca">
|
||||||
<name>ИдентификаторСЭП</name>
|
<name>Используется</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Идентификатор СЭП</value>
|
<value>Используется</value>
|
||||||
</synonym>
|
</synonym>
|
||||||
<type>
|
<type>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</type>
|
||||||
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<fillValue xsi:type="core:BooleanValue">
|
||||||
|
<value>true</value>
|
||||||
|
</fillValue>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
<dataHistory>Use</dataHistory>
|
||||||
|
</attributes>
|
||||||
|
<attributes uuid="5e48841c-0a65-457f-8952-fa97aae3207d">
|
||||||
|
<name>Комментарий</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Комментарий</value>
|
||||||
|
</synonym>
|
||||||
|
<type>
|
||||||
<types>String</types>
|
<types>String</types>
|
||||||
<stringQualifiers>
|
<stringQualifiers/>
|
||||||
<length>100</length>
|
|
||||||
</stringQualifiers>
|
|
||||||
</type>
|
</type>
|
||||||
<minValue xsi:type="core:UndefinedValue"/>
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
<maxValue xsi:type="core:UndefinedValue"/>
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
<fillChecking>ShowError</fillChecking>
|
|
||||||
<fillValue xsi:type="core:StringValue"/>
|
<fillValue xsi:type="core:StringValue"/>
|
||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<dataHistory>Use</dataHistory>
|
<dataHistory>Use</dataHistory>
|
||||||
@@ -264,6 +314,24 @@
|
|||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<dataHistory>Use</dataHistory>
|
<dataHistory>Use</dataHistory>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes uuid="f0cebe1f-8b1a-482c-9224-63df4fd36524">
|
||||||
|
<name>СервисныйКлиент</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Сервисный клиент</value>
|
||||||
|
</synonym>
|
||||||
|
<type>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>100</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</type>
|
||||||
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
|
<fillValue xsi:type="core:StringValue"/>
|
||||||
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
|
<dataHistory>Use</dataHistory>
|
||||||
|
</attributes>
|
||||||
<attributes uuid="00ce0cd2-9840-49a0-b9df-dc64becd3e65">
|
<attributes uuid="00ce0cd2-9840-49a0-b9df-dc64becd3e65">
|
||||||
<name>СервисОбработкиДокументов</name>
|
<name>СервисОбработкиДокументов</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
@@ -319,87 +387,37 @@
|
|||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<dataHistory>Use</dataHistory>
|
<dataHistory>Use</dataHistory>
|
||||||
</attributes>
|
</attributes>
|
||||||
<attributes uuid="293cda8c-1cc8-42c0-a68f-d22163aed4f1">
|
<attributes uuid="ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171">
|
||||||
<name>ВерсияАПИ</name>
|
<name>ТаймАут</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Версия</value>
|
<value>Тайм-аут (сек.)</value>
|
||||||
</synonym>
|
</synonym>
|
||||||
<type>
|
<type>
|
||||||
<types>String</types>
|
<types>Number</types>
|
||||||
<stringQualifiers>
|
<numberQualifiers>
|
||||||
<length>10</length>
|
<precision>4</precision>
|
||||||
</stringQualifiers>
|
<nonNegative>true</nonNegative>
|
||||||
|
</numberQualifiers>
|
||||||
</type>
|
</type>
|
||||||
<minValue xsi:type="core:UndefinedValue"/>
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
<maxValue xsi:type="core:UndefinedValue"/>
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
<fillChecking>ShowError</fillChecking>
|
<fillValue xsi:type="core:NumberValue">
|
||||||
<fillValue xsi:type="core:StringValue"/>
|
<value>0</value>
|
||||||
<fullTextSearch>Use</fullTextSearch>
|
|
||||||
<dataHistory>Use</dataHistory>
|
|
||||||
</attributes>
|
|
||||||
<attributes uuid="5e48841c-0a65-457f-8952-fa97aae3207d">
|
|
||||||
<name>Комментарий</name>
|
|
||||||
<synonym>
|
|
||||||
<key>ru</key>
|
|
||||||
<value>Комментарий</value>
|
|
||||||
</synonym>
|
|
||||||
<type>
|
|
||||||
<types>String</types>
|
|
||||||
<stringQualifiers/>
|
|
||||||
</type>
|
|
||||||
<minValue xsi:type="core:UndefinedValue"/>
|
|
||||||
<maxValue xsi:type="core:UndefinedValue"/>
|
|
||||||
<fillValue xsi:type="core:StringValue"/>
|
|
||||||
<fullTextSearch>Use</fullTextSearch>
|
|
||||||
<dataHistory>Use</dataHistory>
|
|
||||||
</attributes>
|
|
||||||
<attributes uuid="ee0275e4-a497-4623-9d2f-6308ea2e70ca">
|
|
||||||
<name>Используется</name>
|
|
||||||
<synonym>
|
|
||||||
<key>ru</key>
|
|
||||||
<value>Используется</value>
|
|
||||||
</synonym>
|
|
||||||
<type>
|
|
||||||
<types>Boolean</types>
|
|
||||||
</type>
|
|
||||||
<minValue xsi:type="core:UndefinedValue"/>
|
|
||||||
<maxValue xsi:type="core:UndefinedValue"/>
|
|
||||||
<fillValue xsi:type="core:BooleanValue">
|
|
||||||
<value>true</value>
|
|
||||||
</fillValue>
|
</fillValue>
|
||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<dataHistory>Use</dataHistory>
|
<dataHistory>Use</dataHistory>
|
||||||
</attributes>
|
</attributes>
|
||||||
<attributes uuid="ec37d236-db36-44ef-afc2-267af1f40c1f">
|
<attributes uuid="9f1c8979-2b3d-4a96-af6c-4577541696a3">
|
||||||
<name>АдресЛичногоКабинета</name>
|
<name>ШаблонПодтверждения</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Адрес личного кабинета</value>
|
<value>Шаблон подтверждения</value>
|
||||||
</synonym>
|
</synonym>
|
||||||
<type>
|
<type>
|
||||||
<types>String</types>
|
<types>String</types>
|
||||||
<stringQualifiers>
|
<stringQualifiers>
|
||||||
<length>250</length>
|
<length>30</length>
|
||||||
</stringQualifiers>
|
|
||||||
</type>
|
|
||||||
<minValue xsi:type="core:UndefinedValue"/>
|
|
||||||
<maxValue xsi:type="core:UndefinedValue"/>
|
|
||||||
<fillValue xsi:type="core:StringValue"/>
|
|
||||||
<fullTextSearch>Use</fullTextSearch>
|
|
||||||
<dataHistory>Use</dataHistory>
|
|
||||||
</attributes>
|
|
||||||
<attributes uuid="d835f08d-79c6-4e79-a7c1-f00dc05778b9">
|
|
||||||
<name>ВнутреннийИдентификатор</name>
|
|
||||||
<synonym>
|
|
||||||
<key>ru</key>
|
|
||||||
<value>Внутренний идентификатор</value>
|
|
||||||
</synonym>
|
|
||||||
<comment>Данное поле заполняется программно, элементы с заполненным полем блокируются от изменения.</comment>
|
|
||||||
<type>
|
|
||||||
<types>String</types>
|
|
||||||
<stringQualifiers>
|
|
||||||
<length>40</length>
|
|
||||||
</stringQualifiers>
|
</stringQualifiers>
|
||||||
</type>
|
</type>
|
||||||
<minValue xsi:type="core:UndefinedValue"/>
|
<minValue xsi:type="core:UndefinedValue"/>
|
||||||
|
|||||||
@@ -6,34 +6,6 @@
|
|||||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// ИСПОЛЬЗОВАНИЕ ФОРМЫ //
|
|
||||||
//
|
|
||||||
// Форма предназначена для выбора объектов метаданных конфигурации и передачи
|
|
||||||
// выбранных их списка в вызывающую среду.
|
|
||||||
//
|
|
||||||
// Параметры вызова:
|
|
||||||
// КоллекцииВыбираемыхОбъектовМетаданных - СписокЗначений - фильтр по типам объектов метаданных,
|
|
||||||
// которые могут быть выбраны. Например:
|
|
||||||
// ФильтрПоСсылочнымМетаданным = Новый СписокЗначений;
|
|
||||||
// ФильтрПоСсылочнымМетаданным.Добавить("Справочники");
|
|
||||||
// ФильтрПоСсылочнымМетаданным.Добавить("Документы");
|
|
||||||
// Позволяет выбирать только объекты метаданных справочники и документы.
|
|
||||||
// ВыбранныеОбъектыМетаданных - СписокЗначений - уже выбранные объекты метаданных.
|
|
||||||
// В дереве метаданных такие объекты будут отмечены флажком.
|
|
||||||
// Может быть полезным для установки объектов метаданных выбора по умолчанию
|
|
||||||
// или переустановки уже установленного списка.
|
|
||||||
// РодительскиеПодсистемы - СписокЗначений - подсистемы, только подчиненные подсистемы которых
|
|
||||||
// будут отображаться в форме.
|
|
||||||
// ТолькоПодсистемыСКИ - Булево - признак того, что в списке выбора будут только те подсистемы,
|
|
||||||
// которые включены в командный интерфейс.
|
|
||||||
// ВыборЕдинственного - Булево - признак того, что выбирается единственный объект метаданных.
|
|
||||||
// При этом пометка нескольких будет невозможна, кроме того двойной клик по строке
|
|
||||||
// с объектом метаданных осуществит выбор.
|
|
||||||
// НачальноеЗначениеВыбора - Строка - полное имя метаданных, на котором будет спозиционирован
|
|
||||||
// список при открытии формы.
|
|
||||||
//
|
|
||||||
|
|
||||||
#Область ОписаниеПеременных
|
#Область ОписаниеПеременных
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
|
|||||||
@@ -202,6 +202,60 @@
|
|||||||
<textSize>Normal</textSize>
|
<textSize>Normal</textSize>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
|
<items xsi:type="form:FormField">
|
||||||
|
<name>ПодписиМашиночитаемаяДоверенность</name>
|
||||||
|
<id>54</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Машиночитаемая доверенность</value>
|
||||||
|
</title>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<dataPath xsi:type="form:DataPath">
|
||||||
|
<segments>Подписи.МашиночитаемаяДоверенность</segments>
|
||||||
|
</dataPath>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ПодписиМашиночитаемаяДоверенностьРасширеннаяПодсказка</name>
|
||||||
|
<id>56</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>ПодписиМашиночитаемаяДоверенностьКонтекстноеМеню</name>
|
||||||
|
<id>55</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>AutoComplete</event>
|
||||||
|
<name>ПодписиМашиночитаемаяДоверенностьАвтоПодбор</name>
|
||||||
|
</handlers>
|
||||||
|
<handlers>
|
||||||
|
<event>StartChoice</event>
|
||||||
|
<name>ПодписиМашиночитаемаяДоверенностьНачалоВыбора</name>
|
||||||
|
</handlers>
|
||||||
|
<width>40</width>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<height>2</height>
|
||||||
|
<wrap>true</wrap>
|
||||||
|
<choiceButton>true</choiceButton>
|
||||||
|
<choiceButtonRepresentation>ShowInInputField</choiceButtonRepresentation>
|
||||||
|
<quickChoice>false</quickChoice>
|
||||||
|
<typeDomainEnabled>true</typeDomainEnabled>
|
||||||
|
<textSize>Normal</textSize>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
<autoCommandBar>
|
<autoCommandBar>
|
||||||
<name>ПодписиКоманднаяПанель</name>
|
<name>ПодписиКоманднаяПанель</name>
|
||||||
<id>3</id>
|
<id>3</id>
|
||||||
@@ -210,7 +264,7 @@
|
|||||||
<id>17</id>
|
<id>17</id>
|
||||||
<title>
|
<title>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Добавить ...</value>
|
<value>Выбрать файлы с компьютера...</value>
|
||||||
</title>
|
</title>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
@@ -363,7 +417,7 @@
|
|||||||
<id>8</id>
|
<id>8</id>
|
||||||
<title>
|
<title>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>ОК</value>
|
<value>Добавить</value>
|
||||||
</title>
|
</title>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
@@ -501,6 +555,55 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</columns>
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>МашиночитаемаяДоверенность</name>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Машиночитаемая доверенность</value>
|
||||||
|
</title>
|
||||||
|
<id>9</id>
|
||||||
|
<valueType>
|
||||||
|
<types>CatalogRef.МашиночитаемыеДоверенности</types>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>500</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>ПоляОтбора</name>
|
||||||
|
<id>23</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>НомерДоверенности</name>
|
||||||
|
<id>27</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
</attributes>
|
</attributes>
|
||||||
<attributes>
|
<attributes>
|
||||||
<name>МенеджерКриптографииНаСервереОписаниеОшибки</name>
|
<name>МенеджерКриптографииНаСервереОписаниеОшибки</name>
|
||||||
@@ -531,6 +634,106 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>Доверенности</name>
|
||||||
|
<id>6</id>
|
||||||
|
<valueType>
|
||||||
|
<types>ValueTable</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
<columns>
|
||||||
|
<name>МашиночитаемаяДоверенность</name>
|
||||||
|
<id>7</id>
|
||||||
|
<valueType>
|
||||||
|
<types>CatalogRef.МашиночитаемыеДоверенности</types>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers>
|
||||||
|
<length>500</length>
|
||||||
|
</stringQualifiers>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>ИмяФайла</name>
|
||||||
|
<id>11</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>НомерДоверенности</name>
|
||||||
|
<id>12</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>ФайлыДоверенности</name>
|
||||||
|
<id>25</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>ПоляОтбора</name>
|
||||||
|
<id>26</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>ОшибкиПриЗагрузкеДоверенностей</name>
|
||||||
|
<id>8</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</attributes>
|
||||||
<formCommands>
|
<formCommands>
|
||||||
<name>ОК</name>
|
<name>ОК</name>
|
||||||
<title>
|
<title>
|
||||||
@@ -553,6 +756,24 @@
|
|||||||
<currentRowUse>DontUse</currentRowUse>
|
<currentRowUse>DontUse</currentRowUse>
|
||||||
<selectedRowsUse>Auto</selectedRowsUse>
|
<selectedRowsUse>Auto</selectedRowsUse>
|
||||||
</formCommands>
|
</formCommands>
|
||||||
|
<formCommands>
|
||||||
|
<name>ПодобратьДоверенности</name>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Подобрать доверенности</value>
|
||||||
|
</title>
|
||||||
|
<id>2</id>
|
||||||
|
<use>
|
||||||
|
<common>true</common>
|
||||||
|
</use>
|
||||||
|
<action xsi:type="form:FormCommandHandlerContainer">
|
||||||
|
<handler>
|
||||||
|
<name>ПодобратьДоверенности</name>
|
||||||
|
</handler>
|
||||||
|
</action>
|
||||||
|
<currentRowUse>Auto</currentRowUse>
|
||||||
|
<selectedRowsUse>Auto</selectedRowsUse>
|
||||||
|
</formCommands>
|
||||||
<parameters>
|
<parameters>
|
||||||
<name>ПоказатьКомментарий</name>
|
<name>ПоказатьКомментарий</name>
|
||||||
<valueType>
|
<valueType>
|
||||||
|
|||||||
@@ -26,6 +26,14 @@
|
|||||||
|
|
||||||
УстановитьУсловноеОформление();
|
УстановитьУсловноеОформление();
|
||||||
|
|
||||||
|
АвтоЗаголовок = Ложь;
|
||||||
|
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
|
||||||
|
Заголовок = НСтр("ru = 'Добавление электронных подписей из файлов на устройстве'");
|
||||||
|
Элементы.ПодписиДобавить.Заголовок = НСтр("ru = 'Выбрать файлы с устройства...'");
|
||||||
|
Иначе
|
||||||
|
Заголовок = НСтр("ru = 'Добавление электронных подписей из файлов на компьютере'");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Параметры.ЗаголовокДанных) Тогда
|
Если ЗначениеЗаполнено(Параметры.ЗаголовокДанных) Тогда
|
||||||
Элементы.ПредставлениеДанных.Заголовок = Параметры.ЗаголовокДанных;
|
Элементы.ПредставлениеДанных.Заголовок = Параметры.ЗаголовокДанных;
|
||||||
Иначе
|
Иначе
|
||||||
@@ -57,6 +65,8 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЭлектроннаяПодписьЛокализация.ПриСозданииНаСервере(ЭтотОбъект);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
@@ -95,7 +105,7 @@
|
|||||||
Отказ = Истина;
|
Отказ = Истина;
|
||||||
|
|
||||||
Если ОтображениеДанныхОбновлено = Истина Тогда
|
Если ОтображениеДанныхОбновлено = Истина Тогда
|
||||||
ВыбратьФайл(Истина);
|
ВыбратьФайлы(Истина);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -104,14 +114,61 @@
|
|||||||
Процедура ПодписиПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
Процедура ПодписиПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||||
|
|
||||||
СтандартнаяОбработка = Ложь;
|
СтандартнаяОбработка = Ложь;
|
||||||
ВыбратьФайл();
|
ВыбратьФайлы();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПодписиМашиночитаемаяДоверенностьНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
ПодписиМашиночитаемаяДоверенностьНачалоВыбораПродолжение(Элемент, ДанныеВыбора);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Асинх Процедура ПодписиМашиночитаемаяДоверенностьНачалоВыбораПродолжение(Элемент, ДанныеВыбора)
|
||||||
|
|
||||||
|
ТекущиеДанные = Элементы.Подписи.ТекущиеДанные;
|
||||||
|
|
||||||
|
СписокВыбора = Новый СписокЗначений;
|
||||||
|
ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииСпискаВыбораМашиночитаемыхДоверенностей(
|
||||||
|
ЭтотОбъект, ТекущиеДанные, СписокВыбора);
|
||||||
|
|
||||||
|
Если СписокВыбора.Количество() > 0 Тогда
|
||||||
|
СписокВыбора.Добавить("ВыбратьИзСправочника", НСтр("ru = 'Выбрать из справочника...'"));
|
||||||
|
Результат = Ждать ВыбратьИзСпискаАсинх(СписокВыбора, Элементы.ПодписиМашиночитаемаяДоверенность);
|
||||||
|
Если Результат <> Неопределено Тогда
|
||||||
|
Если Результат.Значение = "ВыбратьИзСправочника" Тогда
|
||||||
|
МашиночитаемаяДоверенностьВыбратьИзСправочника();
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекущиеДанные.МашиночитаемаяДоверенность = Результат.Представление;
|
||||||
|
ТекущиеДанные.НомерДоверенности = Результат.Значение;
|
||||||
|
ПодключитьОбработчикОжидания("ПодписиМашиночитаемаяДоверенностьПриИзменении", 0.1, Истина);
|
||||||
|
КонецЕсли;
|
||||||
|
Иначе
|
||||||
|
МашиночитаемаяДоверенностьВыбратьИзСправочника();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область ОбработчикиКомандФормы
|
#Область ОбработчикиКомандФормы
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПодобратьДоверенности(Команда)
|
||||||
|
|
||||||
|
Если ОписаниеДанных.Свойство("Объект") И ТипЗнч(ОписаниеДанных.Объект) <> Тип("ОписаниеОповещения") Тогда
|
||||||
|
ЗаполнитьМашиночитаемыеДоверенности(ОписаниеДанных.Объект);
|
||||||
|
Иначе
|
||||||
|
ЗаполнитьМашиночитаемыеДоверенности();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ОК(Команда)
|
Процедура ОК(Команда)
|
||||||
|
|
||||||
@@ -120,6 +177,8 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗагрузитьМашиночитаемыеДоверенности();
|
||||||
|
|
||||||
Если Не ОписаниеДанных.Свойство("Объект") Тогда
|
Если Не ОписаниеДанных.Свойство("Объект") Тогда
|
||||||
ОписаниеДанных.Вставить("Подписи", ДобавляемыеПодписи());
|
ОписаниеДанных.Вставить("Подписи", ДобавляемыеПодписи());
|
||||||
Закрыть(Истина);
|
Закрыть(Истина);
|
||||||
@@ -191,6 +250,7 @@
|
|||||||
Процедура ПослеОткрытия()
|
Процедура ПослеОткрытия()
|
||||||
|
|
||||||
ОтображениеДанныхОбновлено = Истина;
|
ОтображениеДанныхОбновлено = Истина;
|
||||||
|
ВыбратьФайлы(Истина);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -212,61 +272,164 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ВыбратьФайл(ДобавитьНовуюСтроку = Ложь)
|
Процедура ВыбратьФайлы(МножественныйВыбор = Ложь)
|
||||||
|
|
||||||
|
ОшибкиПриЗагрузкеДоверенностей = "";
|
||||||
|
Доверенности.Очистить();
|
||||||
|
|
||||||
Контекст = Новый Структура;
|
Контекст = Новый Структура;
|
||||||
Контекст.Вставить("ДобавитьНовуюСтроку", ДобавитьНовуюСтроку);
|
Контекст.Вставить("ДобавитьНовыеСтроки", МножественныйВыбор);
|
||||||
|
|
||||||
Оповещение = Новый ОписаниеОповещения("ВыбратьФайлПослеПомещенияФайла", ЭтотОбъект, Контекст);
|
Оповещение = Новый ОписаниеОповещения("ВыбратьФайлыПослеПомещенияФайлов", ЭтотОбъект, Контекст);
|
||||||
|
|
||||||
ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
|
ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
|
||||||
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
|
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
|
||||||
ПараметрыЗагрузки.Диалог.Заголовок = НСтр("ru = 'Выберите файл электронной подписи'");
|
|
||||||
ПараметрыЗагрузки.Диалог.Фильтр = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Если МножественныйВыбор Тогда
|
||||||
НСтр("ru = 'Файлы подписи (*.%1)|*.%1'"),
|
ПараметрыЗагрузки.Диалог.Заголовок = НСтр("ru = 'Выберите файлы электронной подписи'");
|
||||||
ЭлектроннаяПодписьКлиент.ПерсональныеНастройки().РасширениеДляФайловПодписи);
|
Иначе
|
||||||
|
ПараметрыЗагрузки.Диалог.Заголовок = НСтр("ru = 'Выберите файл электронной подписи'");
|
||||||
|
КонецЕсли;
|
||||||
|
ПараметрыЗагрузки.Диалог.МножественныйВыбор = МножественныйВыбор;
|
||||||
|
|
||||||
|
ФильтрДляВыбораПодписей = НСтр("ru = 'Файлы подписи (*.p7s, *.sig%1)|*.p7s;*.sig%2'");
|
||||||
|
ЭлектроннаяПодписьКлиентЛокализация.ПриПолученииФильтраДляВыбораПодписей(ФильтрДляВыбораПодписей);
|
||||||
|
|
||||||
|
РасширениеДляФайловПодписи = ЭлектроннаяПодписьКлиент.ПерсональныеНастройки().РасширениеДляФайловПодписи;
|
||||||
|
Если СтрНайти(ФильтрДляВыбораПодписей, РасширениеДляФайловПодписи) = 0 Тогда
|
||||||
|
ФильтрДляВыбораПодписей= СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ФильтрДляВыбораПодписей,
|
||||||
|
", *." + РасширениеДляФайловПодписи, ";*." + РасширениеДляФайловПодписи);
|
||||||
|
Иначе
|
||||||
|
ФильтрДляВыбораПодписей= СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ФильтрДляВыбораПодписей, "", "");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыЗагрузки.Диалог.Фильтр = ФильтрДляВыбораПодписей;
|
||||||
ПараметрыЗагрузки.Диалог.Фильтр = ПараметрыЗагрузки.Диалог.Фильтр + "|" + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Все файлы (%1)|%1'"), ПолучитьМаскуВсеФайлы());
|
ПараметрыЗагрузки.Диалог.Фильтр = ПараметрыЗагрузки.Диалог.Фильтр + "|" + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Все файлы (%1)|%1'"), ПолучитьМаскуВсеФайлы());
|
||||||
|
|
||||||
Если Не ДобавитьНовуюСтроку Тогда
|
Если Не МножественныйВыбор Тогда
|
||||||
ПараметрыЗагрузки.Диалог.ПолноеИмяФайла = Элементы.Подписи.ТекущиеДанные.ПутьКФайлу;
|
ПараметрыЗагрузки.Диалог.ПолноеИмяФайла = Элементы.Подписи.ТекущиеДанные.ПутьКФайлу;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ФайловаяСистемаКлиент.ЗагрузитьФайл(Оповещение, ПараметрыЗагрузки);
|
ФайловаяСистемаКлиент.ЗагрузитьФайлы(Оповещение, ПараметрыЗагрузки);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Продолжение процедуры ВыбратьФайл.
|
// Продолжение процедуры ВыбратьФайл.
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ВыбратьФайлПослеПомещенияФайла(ПомещенныйФайл, Контекст) Экспорт
|
Процедура ВыбратьФайлыПослеПомещенияФайлов(ПомещенныеФайлы, Контекст) Экспорт
|
||||||
|
|
||||||
Если ПомещенныйФайл = Неопределено Тогда
|
Если ПомещенныеФайлы = Неопределено Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ТипЗнч(ПомещенныеФайлы) = Тип("Файл") Тогда
|
||||||
|
ПомещенныеФайлы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ПомещенныеФайлы);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат = ДобавитьСтрокиНаСервере(ПомещенныеФайлы, Контекст.ДобавитьНовыеСтроки);
|
||||||
|
|
||||||
|
Контекст.Вставить("ПомещенныеФайлы", ПомещенныеФайлы);
|
||||||
|
Контекст.Вставить("ДанныеДляПроверкиПодписи", Неопределено);
|
||||||
|
Контекст.Вставить("РезультатДобавленияПодписей", Результат);
|
||||||
|
Контекст.Вставить("ДругиеФайлы", Результат);
|
||||||
|
Контекст.Вставить("Ошибки", Новый Структура("ОшибкиНаКлиенте, ОшибкиНаСервере", Новый Соответствие, Новый Соответствие));
|
||||||
|
Контекст.Вставить("Индекс", -1);
|
||||||
|
ВыбратьФайлыЦиклНачало(Контекст);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ВыбратьФайлыЦиклНачало(Контекст)
|
||||||
|
|
||||||
|
Если Контекст.ПомещенныеФайлы.Количество() <= Контекст.Индекс + 1 Тогда
|
||||||
|
ВыбратьФайлыПослеЦикла(Контекст);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Контекст.Индекс = Контекст.Индекс + 1;
|
||||||
|
|
||||||
|
ПомещенныйФайл = Контекст.ПомещенныеФайлы[Контекст.Индекс];
|
||||||
|
|
||||||
СоставИмени = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ПомещенныйФайл.Имя);
|
СоставИмени = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ПомещенныйФайл.Имя);
|
||||||
|
|
||||||
|
РезультатДобавленияПодписи = Контекст.РезультатДобавленияПодписей.Получить(ПомещенныйФайл.Имя);
|
||||||
|
|
||||||
Контекст.Вставить("Адрес", ПомещенныйФайл.Хранение);
|
Если РезультатДобавленияПодписи = Неопределено Тогда
|
||||||
Контекст.Вставить("ИмяФайла", СоставИмени.Имя);
|
ВыбратьФайлыЦиклНачало(Контекст);
|
||||||
Контекст.Вставить("ОшибкаНаСервере", Новый Структура);
|
Возврат;
|
||||||
Контекст.Вставить("ДанныеПодписи", Неопределено);
|
КонецЕсли;
|
||||||
Контекст.Вставить("ДатаПодписи", Неопределено);
|
|
||||||
Контекст.Вставить("АдресСвойствПодписи", Неопределено);
|
|
||||||
|
|
||||||
Успех = ДобавитьСтрокуНаСервере(Контекст.Адрес, Контекст.ИмяФайла, Контекст.ДобавитьНовуюСтроку,
|
Контекст.Вставить("РезультатДобавленияПодписи", РезультатДобавленияПодписи);
|
||||||
Контекст.ОшибкаНаСервере, Контекст.ДанныеПодписи, Контекст.ДатаПодписи, Контекст.АдресСвойствПодписи);
|
|
||||||
|
|
||||||
Если Успех Тогда
|
Если РезультатДобавленияПодписи.Успех Тогда
|
||||||
ВыбратьФайлПослеДобавленияСтроки(Контекст);
|
ВыбратьФайлПослеДобавленияСтроки(Контекст);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
|
ПараметрыСоздания = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыСозданияМенеджераКриптографии();
|
||||||
ПараметрыСоздания.АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(Контекст.ДанныеПодписи);
|
ПараметрыСоздания.АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(
|
||||||
|
Контекст.РезультатДобавленияПодписи.ДанныеПодписи);
|
||||||
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
|
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
|
||||||
|
|
||||||
|
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(
|
||||||
|
Новый ОписаниеОповещения("ВыбратьФайлПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст), "",
|
||||||
|
ПараметрыСоздания);
|
||||||
|
|
||||||
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
|
КонецПроцедуры
|
||||||
"ВыбратьФайлПослеСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
|
|
||||||
"", ПараметрыСоздания);
|
&НаКлиенте
|
||||||
|
Процедура ВыбратьФайлыПослеЦикла(Контекст)
|
||||||
|
|
||||||
|
ЗаполнитьМашиночитаемыеДоверенности();
|
||||||
|
|
||||||
|
Если Контекст.Ошибки.ОшибкиНаКлиенте.Количество() = 0
|
||||||
|
И Контекст.Ошибки.ОшибкиНаСервере.Количество() = 0
|
||||||
|
И ОшибкиПриЗагрузкеДоверенностей = "" Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОшибкаНаКлиенте = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
|
||||||
|
ОшибкаНаКлиенте.ЗаголовокОшибки = НСтр("ru = 'Не удалось добавить файлы'");
|
||||||
|
|
||||||
|
Для Каждого КлючИЗначение Из Контекст.Ошибки.ОшибкиНаКлиенте Цикл
|
||||||
|
|
||||||
|
СвойстваОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки();
|
||||||
|
Если ЗначениеЗаполнено(КлючИЗначение.Значение.ДополнительныеПараметры) Тогда
|
||||||
|
ЗаполнитьЗначенияСвойств(СвойстваОшибки, КлючИЗначение.Значение.ДополнительныеПараметры);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СвойстваОшибки.Описание = СтрШаблон("%1:
|
||||||
|
|%2", КлючИЗначение.Ключ, СтрСоединить(КлючИЗначение.Значение.Файлы, Символы.ПС));
|
||||||
|
ОшибкаНаКлиенте.Ошибки.Добавить(СвойстваОшибки);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ОшибкаНаСервере = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовоеОписаниеОшибок();
|
||||||
|
ОшибкаНаСервере.ЗаголовокОшибки = НСтр("ru = 'Не удалось добавить файлы'");
|
||||||
|
|
||||||
|
Если ОшибкиПриЗагрузкеДоверенностей <> "" Тогда
|
||||||
|
|
||||||
|
СвойстваОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки();
|
||||||
|
СвойстваОшибки.Описание = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось загрузить доверенности:
|
||||||
|
|%1'"), ОшибкиПриЗагрузкеДоверенностей);
|
||||||
|
ОшибкаНаСервере.Ошибки.Добавить(СвойстваОшибки);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого КлючИЗначение Из Контекст.Ошибки.ОшибкиНаСервере Цикл
|
||||||
|
|
||||||
|
СвойстваОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.НовыеСвойстваОшибки();
|
||||||
|
Если ЗначениеЗаполнено(КлючИЗначение.Значение.ДополнительныеПараметры) Тогда
|
||||||
|
ЗаполнитьЗначенияСвойств(СвойстваОшибки, КлючИЗначение.Значение.ДополнительныеПараметры);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СвойстваОшибки.Описание = СтрШаблон("%1:
|
||||||
|
|%2", КлючИЗначение.Ключ, СтрСоединить(КлючИЗначение.Значение.Файлы, Символы.ПС));
|
||||||
|
ОшибкаНаСервере.Ошибки.Добавить(СвойстваОшибки);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ПоказатьОшибку(ОшибкаНаКлиенте, ОшибкаНаСервере);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -279,7 +442,7 @@
|
|||||||
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
|
ПараметрыСоздания.ПоказатьОшибку = Неопределено;
|
||||||
ЭлектроннаяПодписьСлужебныйКлиент.ПрочитатьСвойстваПодписи(Новый ОписаниеОповещения(
|
ЭлектроннаяПодписьСлужебныйКлиент.ПрочитатьСвойстваПодписи(Новый ОписаниеОповещения(
|
||||||
"ВыбратьФайлПослеЧтенияСвойствПодписи", ЭтотОбъект, Контекст),
|
"ВыбратьФайлПослеЧтенияСвойствПодписи", ЭтотОбъект, Контекст),
|
||||||
Контекст.ДанныеПодписи, Истина, Ложь);
|
Контекст.РезультатДобавленияПодписи.ДанныеПодписи, Истина, Ложь);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -288,14 +451,14 @@
|
|||||||
Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
||||||
МенеджерКриптографии.НачатьПолучениеКонтейнераПодписейКриптографии(Новый ОписаниеОповещения(
|
МенеджерКриптографии.НачатьПолучениеКонтейнераПодписейКриптографии(Новый ОписаниеОповещения(
|
||||||
"ВыбратьФайлПослеПолученияКонтейнераПодписи", ЭтотОбъект, Контекст,
|
"ВыбратьФайлПослеПолученияКонтейнераПодписи", ЭтотОбъект, Контекст,
|
||||||
"ВыбратьФайлПослеОшибкиПолученияКонтейнераПодписи", ЭтотОбъект), Контекст.ДанныеПодписи);
|
"ВыбратьФайлПослеОшибкиПолученияКонтейнераПодписи", ЭтотОбъект), Контекст.РезультатДобавленияПодписи.ДанныеПодписи);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Контекст.Вставить("ПараметрыПодписи", Неопределено);
|
Контекст.Вставить("ПараметрыПодписи", Неопределено);
|
||||||
МенеджерКриптографии.НачатьПолучениеСертификатовИзПодписи(Новый ОписаниеОповещения(
|
МенеджерКриптографии.НачатьПолучениеСертификатовИзПодписи(Новый ОписаниеОповещения(
|
||||||
"ВыбратьФайлПослеПолученияСертификатовИзПодписи", ЭтотОбъект, Контекст,
|
"ВыбратьФайлПослеПолученияСертификатовИзПодписи", ЭтотОбъект, Контекст,
|
||||||
"ВыбратьФайлПослеОшибкиПолученияСертификатовИзПодписи", ЭтотОбъект), Контекст.ДанныеПодписи);
|
"ВыбратьФайлПослеОшибкиПолученияСертификатовИзПодписи", ЭтотОбъект), Контекст.РезультатДобавленияПодписи.ДанныеПодписи);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -304,7 +467,7 @@
|
|||||||
Процедура ВыбратьФайлПослеЧтенияСвойствПодписи(Результат, Контекст) Экспорт
|
Процедура ВыбратьФайлПослеЧтенияСвойствПодписи(Результат, Контекст) Экспорт
|
||||||
|
|
||||||
Если Результат.Успех = Ложь Тогда
|
Если Результат.Успех = Ложь Тогда
|
||||||
ПоказатьОшибку(Результат.ТекстОшибки, Контекст.ОшибкаНаСервере);
|
ДобавитьОшибку(Новый Структура("ОписаниеОшибки", Результат.ТекстОшибки), Контекст);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -318,18 +481,19 @@
|
|||||||
СвойстваСертификата.Вставить("Отпечаток", Результат.Отпечаток);
|
СвойстваСертификата.Вставить("Отпечаток", Результат.Отпечаток);
|
||||||
СвойстваСертификата.Вставить("КомуВыдан", Результат.КомуВыданСертификат);
|
СвойстваСертификата.Вставить("КомуВыдан", Результат.КомуВыданСертификат);
|
||||||
|
|
||||||
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(Контекст.ДанныеПодписи,
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(Контекст.РезультатДобавленияПодписи.ДанныеПодписи,
|
||||||
СвойстваСертификата, "", ПользователиКлиент.АвторизованныйПользователь(), Контекст.ИмяФайла,
|
СвойстваСертификата, "", ПользователиКлиент.АвторизованныйПользователь(), Контекст.РезультатДобавленияПодписи.ИмяФайла,
|
||||||
Контекст.ПараметрыПодписи, Истина);
|
Контекст.ПараметрыПодписи, Истина);
|
||||||
|
|
||||||
ДобавитьСтроку(ЭтотОбъект, Контекст.ДобавитьНовуюСтроку, СвойстваПодписи, Контекст.ИмяФайла,
|
ДобавитьСтроку(ЭтотОбъект, Контекст.ДобавитьНовыеСтроки, СвойстваПодписи, Контекст.РезультатДобавленияПодписи.ИмяФайла,
|
||||||
Контекст.АдресСвойствПодписи);
|
Контекст.РезультатДобавленияПодписи.АдресСвойствПодписи);
|
||||||
|
|
||||||
ВыбратьФайлПослеДобавленияСтроки(Контекст);
|
ВыбратьФайлПослеДобавленияСтроки(Контекст);
|
||||||
Иначе
|
Иначе
|
||||||
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", НСтр("ru = 'В файле подписи нет ни одного сертификата.'"));
|
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", НСтр("ru = 'В файле подписи нет ни одного сертификата.'"));
|
||||||
|
|
||||||
ПоказатьОшибку(ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
|
ДобавитьОшибку(ОшибкаНаКлиенте, Контекст);
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -347,10 +511,10 @@
|
|||||||
|
|
||||||
ДополнительныеПараметры = Новый Структура;
|
ДополнительныеПараметры = Новый Структура;
|
||||||
ДополнительныеПараметры.Вставить("ПоказатьИнструкцию", Истина);
|
ДополнительныеПараметры.Вставить("ПоказатьИнструкцию", Истина);
|
||||||
ДополнительныеПараметры.Вставить("Подпись", Контекст.ДанныеПодписи);
|
ДополнительныеПараметры.Вставить("Подпись", Контекст.РезультатДобавленияПодписи.ДанныеПодписи);
|
||||||
|
|
||||||
ПоказатьОшибку(ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере, ДополнительныеПараметры);
|
|
||||||
|
|
||||||
|
ДобавитьОшибку(ОшибкаНаКлиенте, Контекст, ДополнительныеПараметры);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Продолжение процедуры ВыбратьФайл.
|
// Продолжение процедуры ВыбратьФайл.
|
||||||
@@ -365,7 +529,7 @@
|
|||||||
Контекст.Вставить("ПараметрыПодписи", ПараметрыПодписи);
|
Контекст.Вставить("ПараметрыПодписи", ПараметрыПодписи);
|
||||||
ДатаПодписи = ПараметрыПодписи.НеподтвержденнаяДатаПодписи;
|
ДатаПодписи = ПараметрыПодписи.НеподтвержденнаяДатаПодписи;
|
||||||
Если ЗначениеЗаполнено(ДатаПодписи) Тогда
|
Если ЗначениеЗаполнено(ДатаПодписи) Тогда
|
||||||
Контекст.Вставить("ДатаПодписи", ДатаПодписи);
|
Контекст.РезультатДобавленияПодписи.ДатаПодписи = ДатаПодписи;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Сертификаты = Новый Массив;
|
Сертификаты = Новый Массив;
|
||||||
@@ -390,9 +554,9 @@
|
|||||||
|
|
||||||
ДополнительныеПараметры = Новый Структура;
|
ДополнительныеПараметры = Новый Структура;
|
||||||
ДополнительныеПараметры.Вставить("ПоказатьИнструкцию", Истина);
|
ДополнительныеПараметры.Вставить("ПоказатьИнструкцию", Истина);
|
||||||
ДополнительныеПараметры.Вставить("Подпись", Контекст.ДанныеПодписи);
|
ДополнительныеПараметры.Вставить("Подпись", Контекст.РезультатДобавленияПодписи.ДанныеПодписи);
|
||||||
|
|
||||||
ПоказатьОшибку(ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере, ДополнительныеПараметры);
|
ДобавитьОшибку(ОшибкаНаКлиенте, Контекст, ДополнительныеПараметры);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -404,7 +568,7 @@
|
|||||||
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки",
|
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки",
|
||||||
НСтр("ru = 'В файле подписи нет ни одного сертификата.'"));
|
НСтр("ru = 'В файле подписи нет ни одного сертификата.'"));
|
||||||
|
|
||||||
ПоказатьОшибку(ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
|
ДобавитьОшибку(ОшибкаНаКлиенте, Контекст);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -417,7 +581,7 @@
|
|||||||
Исключение
|
Исключение
|
||||||
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки",
|
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки",
|
||||||
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||||
ПоказатьОшибку(ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
|
ДобавитьОшибку(ОшибкаНаКлиенте, Контекст);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
@@ -436,11 +600,12 @@
|
|||||||
СвойстваСертификата = Ждать ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата(Контекст.Сертификат);
|
СвойстваСертификата = Ждать ЭлектроннаяПодписьСлужебныйКлиент.СвойстваСертификата(Контекст.Сертификат);
|
||||||
СвойстваСертификата.Вставить("ДвоичныеДанные", ДанныеСертификата);
|
СвойстваСертификата.Вставить("ДвоичныеДанные", ДанныеСертификата);
|
||||||
|
|
||||||
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(Контекст.ДанныеПодписи,
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(Контекст.РезультатДобавленияПодписи.ДанныеПодписи,
|
||||||
СвойстваСертификата, "", ПользователиКлиент.АвторизованныйПользователь(), Контекст.ИмяФайла, Контекст.ПараметрыПодписи, Истина);
|
СвойстваСертификата, "", ПользователиКлиент.АвторизованныйПользователь(),
|
||||||
|
Контекст.РезультатДобавленияПодписи.ИмяФайла, Контекст.ПараметрыПодписи, Истина);
|
||||||
|
|
||||||
ДобавитьСтроку(ЭтотОбъект, Контекст.ДобавитьНовуюСтроку, СвойстваПодписи,
|
ДобавитьСтроку(ЭтотОбъект, Контекст.ДобавитьНовыеСтроки, СвойстваПодписи,
|
||||||
Контекст.ИмяФайла, Контекст.АдресСвойствПодписи);
|
Контекст.РезультатДобавленияПодписи.ИмяФайла, Контекст.РезультатДобавленияПодписи.АдресСвойствПодписи);
|
||||||
|
|
||||||
ВыбратьФайлПослеДобавленияСтроки(Контекст);
|
ВыбратьФайлПослеДобавленияСтроки(Контекст);
|
||||||
|
|
||||||
@@ -450,13 +615,18 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ВыбратьФайлПослеДобавленияСтроки(Контекст)
|
Процедура ВыбратьФайлПослеДобавленияСтроки(Контекст)
|
||||||
|
|
||||||
Если Не ОписаниеДанных.Свойство("Данные") Тогда
|
Если Не ОписаниеДанных.Свойство("Данные") Или Контекст.ДанныеДляПроверкиПодписи = Ложь Тогда
|
||||||
|
ВыбратьФайлыЦиклНачало(Контекст);
|
||||||
Возврат; // Если данные не указаны, подпись проверить невозможно.
|
Возврат; // Если данные не указаны, подпись проверить невозможно.
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьДанныеИзОписанияДанных(Новый ОписаниеОповещения(
|
Если Контекст.ДанныеДляПроверкиПодписи = Неопределено Тогда
|
||||||
|
ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьДанныеИзОписанияДанных(Новый ОписаниеОповещения(
|
||||||
"ВыбратьФайлПослеПолученияДанных", ЭтотОбъект, Контекст),
|
"ВыбратьФайлПослеПолученияДанных", ЭтотОбъект, Контекст),
|
||||||
ЭтотОбъект, ОписаниеДанных, ОписаниеДанных.Данные, Истина);
|
ЭтотОбъект, ОписаниеДанных, ОписаниеДанных.Данные, Истина);
|
||||||
|
Иначе
|
||||||
|
ВыбратьФайлПослеПолученияДанных(Контекст.ДанныеДляПроверкиПодписи, Контекст);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -465,15 +635,22 @@
|
|||||||
Процедура ВыбратьФайлПослеПолученияДанных(Результат, Контекст) Экспорт
|
Процедура ВыбратьФайлПослеПолученияДанных(Результат, Контекст) Экспорт
|
||||||
|
|
||||||
Если ТипЗнч(Результат) = Тип("Структура") Тогда
|
Если ТипЗнч(Результат) = Тип("Структура") Тогда
|
||||||
|
Контекст.ДанныеДляПроверкиПодписи = Ложь;
|
||||||
|
ВыбратьФайлыЦиклНачало(Контекст);
|
||||||
Возврат; // Не удалось получить данные, подпись проверить невозможно.
|
Возврат; // Не удалось получить данные, подпись проверить невозможно.
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Контекст.ДанныеДляПроверкиПодписи = Неопределено Тогда
|
||||||
|
Контекст.ДанныеДляПроверкиПодписи = Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыДляПроверки = ЭлектроннаяПодписьКлиент.ПараметрыПроверкиПодписи();
|
ПараметрыДляПроверки = ЭлектроннаяПодписьКлиент.ПараметрыПроверкиПодписи();
|
||||||
ПараметрыДляПроверки.ПоказатьОшибкуСозданияМенеджераКриптографии = Ложь;
|
ПараметрыДляПроверки.ПоказатьОшибкуСозданияМенеджераКриптографии = Ложь;
|
||||||
ПараметрыДляПроверки.РезультатВВидеСтруктуры = Истина;
|
ПараметрыДляПроверки.РезультатВВидеСтруктуры = Истина;
|
||||||
ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьПодпись(Новый ОписаниеОповещения(
|
ЭлектроннаяПодписьСлужебныйКлиент.ПроверитьПодпись(Новый ОписаниеОповещения(
|
||||||
"ВыбратьФайлПослеПроверкиПодписи", ЭтотОбъект, Контекст),
|
"ВыбратьФайлПослеПроверкиПодписи", ЭтотОбъект, Контекст),
|
||||||
Результат, Контекст.ДанныеПодписи, , Контекст.ДатаПодписи, ПараметрыДляПроверки);
|
Контекст.ДанныеДляПроверкиПодписи, Контекст.РезультатДобавленияПодписи.ДанныеПодписи, ,
|
||||||
|
Контекст.РезультатДобавленияПодписи.ДатаПодписи, ПараметрыДляПроверки);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -482,10 +659,12 @@
|
|||||||
Процедура ВыбратьФайлПослеПроверкиПодписи(РезультатПроверки, Контекст) Экспорт
|
Процедура ВыбратьФайлПослеПроверкиПодписи(РезультатПроверки, Контекст) Экспорт
|
||||||
|
|
||||||
Если РезультатПроверки.Результат = Неопределено Тогда
|
Если РезультатПроверки.Результат = Неопределено Тогда
|
||||||
|
ВыбратьФайлыЦиклНачало(Контекст);
|
||||||
Возврат; // Не удалось проверить подпись.
|
Возврат; // Не удалось проверить подпись.
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОбновитьРезультатПроверкиПодписи(Контекст.АдресСвойствПодписи, РезультатПроверки);
|
ОбновитьРезультатПроверкиПодписи(Контекст.РезультатДобавленияПодписи.АдресСвойствПодписи, РезультатПроверки);
|
||||||
|
ВыбратьФайлыЦиклНачало(Контекст);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -506,52 +685,100 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Функция ДобавитьСтрокуНаСервере(Адрес, ИмяФайла, ДобавитьНовуюСтроку, ОшибкаНаСервере,
|
Функция ДобавитьСтрокиНаСервере(ПомещенныеФайлы, ДобавитьНовыеСтроки)
|
||||||
ДанныеПодписи, ДатаПодписи, АдресСвойствПодписи)
|
|
||||||
|
Соответствие = Новый Соответствие;
|
||||||
|
ДругиеФайлы = Новый Соответствие;
|
||||||
|
|
||||||
|
ЭлектроннаяПодписьЛокализация.ПриДобавленииСтрокНаСервере(
|
||||||
|
ЭтотОбъект, ПомещенныеФайлы, ДругиеФайлы, ОшибкиПриЗагрузкеДоверенностей, УникальныйИдентификатор);
|
||||||
|
|
||||||
|
Для Каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл
|
||||||
|
|
||||||
|
СоставИмени = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(ПомещенныйФайл.Имя);
|
||||||
|
|
||||||
|
Если ДругиеФайлы.Получить(СоставИмени.Имя) <> Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РезультатДобавленияСтроки = Новый Структура;
|
||||||
|
|
||||||
|
РезультатДобавленияСтроки.Вставить("Успех", Ложь);
|
||||||
|
РезультатДобавленияСтроки.Вставить("Адрес", ПомещенныйФайл.Хранение);
|
||||||
|
РезультатДобавленияСтроки.Вставить("ИмяФайла", СоставИмени.Имя);
|
||||||
|
РезультатДобавленияСтроки.Вставить("ОшибкаНаСервере", Новый Структура);
|
||||||
|
РезультатДобавленияСтроки.Вставить("ДанныеПодписи", Неопределено);
|
||||||
|
РезультатДобавленияСтроки.Вставить("ДатаПодписи", Неопределено);
|
||||||
|
РезультатДобавленияСтроки.Вставить("АдресСвойствПодписи", Неопределено);
|
||||||
|
|
||||||
|
РезультатДобавленияСтроки = ДобавитьСтрокуНаСервере(РезультатДобавленияСтроки, ДобавитьНовыеСтроки);
|
||||||
|
Соответствие.Вставить(ПомещенныйФайл.Имя, РезультатДобавленияСтроки);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Соответствие;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Функция ДобавитьСтрокуНаСервере(Знач РезультатДобавленияСтроки, ДобавитьНовуюСтроку)
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
ДанныеПодписи = ЭлектроннаяПодпись.ПодписьВКодировкеDER(Адрес);
|
РезультатДобавленияСтроки.ДанныеПодписи = ЭлектроннаяПодпись.ПодписьВКодировкеDER(РезультатДобавленияСтроки.Адрес);
|
||||||
Исключение
|
Исключение
|
||||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||||
ОшибкаНаСервере.Вставить("ОписаниеОшибки", ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
РезультатДобавленияСтроки.ОшибкаНаСервере.Вставить("ОписаниеОшибки", ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||||
Возврат Ложь;
|
Возврат РезультатДобавленияСтроки;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
ДатаПодписи = ЭлектроннаяПодпись.ДатаПодписания(ДанныеПодписи);
|
РезультатДобавленияСтроки.ДатаПодписи = ЭлектроннаяПодпись.ДатаПодписания(РезультатДобавленияСтроки.ДанныеПодписи);
|
||||||
|
|
||||||
Если Не ЭлектроннаяПодпись.ПроверятьЭлектронныеПодписиНаСервере()
|
Если Не ЭлектроннаяПодпись.ПроверятьЭлектронныеПодписиНаСервере()
|
||||||
И Не ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
И Не ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
||||||
|
|
||||||
Возврат Ложь;
|
Возврат РезультатДобавленияСтроки;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
|
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
|
||||||
ПараметрыСоздания.ОписаниеОшибки = ОшибкаНаСервере;
|
ПараметрыСоздания.ОписаниеОшибки = РезультатДобавленияСтроки.ОшибкаНаСервере;
|
||||||
ПараметрыСоздания.АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(ДанныеПодписи);
|
ПараметрыСоздания.АлгоритмПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(
|
||||||
|
РезультатДобавленияСтроки.ДанныеПодписи);
|
||||||
|
|
||||||
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("", ПараметрыСоздания);
|
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии("", ПараметрыСоздания);
|
||||||
|
|
||||||
ОшибкаНаСервере = ПараметрыСоздания.ОписаниеОшибки;
|
РезультатДобавленияСтроки.ОшибкаНаСервере = ПараметрыСоздания.ОписаниеОшибки;
|
||||||
Если МенеджерКриптографии = Неопределено Тогда
|
Если МенеджерКриптографии = Неопределено Тогда
|
||||||
Возврат Ложь;
|
Возврат РезультатДобавленияСтроки;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыПодписи = Неопределено;
|
ПараметрыПодписи = Неопределено;
|
||||||
Если ЭлектроннаяПодпись.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
Если ЭлектроннаяПодпись.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
||||||
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДанныеПодписи);
|
|
||||||
|
Попытка
|
||||||
|
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(РезультатДобавленияСтроки.ДанныеПодписи);
|
||||||
|
Исключение
|
||||||
|
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||||
|
РезультатДобавленияСтроки.ОшибкаНаСервере.Вставить("ОписаниеОшибки", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось получить контейнер подписи из файла подписи по причине:
|
||||||
|
|%1'"),
|
||||||
|
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)));
|
||||||
|
Возврат РезультатДобавленияСтроки;
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
ПараметрыПодписи = ЭлектроннаяПодписьСлужебный.ПараметрыПодписиКриптографии(КонтейнерПодписи,
|
ПараметрыПодписи = ЭлектроннаяПодписьСлужебный.ПараметрыПодписиКриптографии(КонтейнерПодписи,
|
||||||
ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ТекущаяДатаСеанса());
|
ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ТекущаяДатаСеанса());
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ПараметрыПодписи.НеподтвержденнаяДатаПодписи) Тогда
|
Если ЗначениеЗаполнено(ПараметрыПодписи.НеподтвержденнаяДатаПодписи) Тогда
|
||||||
ДатаПодписи = ПараметрыПодписи.НеподтвержденнаяДатаПодписи;
|
РезультатДобавленияСтроки.ДатаПодписи = ПараметрыПодписи.НеподтвержденнаяДатаПодписи;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПараметрыПодписи = Неопределено Тогда
|
Если ПараметрыПодписи = Неопределено Тогда
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
|
|
||||||
Сертификаты = МенеджерКриптографии.ПолучитьСертификатыИзПодписи(ДанныеПодписи);
|
Сертификаты = МенеджерКриптографии.ПолучитьСертификатыИзПодписи(РезультатДобавленияСтроки.ДанныеПодписи);
|
||||||
|
|
||||||
Если Сертификаты.Количество() = 0 Тогда
|
Если Сертификаты.Количество() = 0 Тогда
|
||||||
ВызватьИсключение НСтр("ru = 'В файле подписи нет ни одного сертификата.'");
|
ВызватьИсключение НСтр("ru = 'В файле подписи нет ни одного сертификата.'");
|
||||||
@@ -572,11 +799,11 @@
|
|||||||
|
|
||||||
Исключение
|
Исключение
|
||||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||||
ОшибкаНаСервере.Вставить("ОписаниеОшибки", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатДобавленияСтроки.ОшибкаНаСервере.Вставить("ОписаниеОшибки", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Не удалось получить сертификаты из файла подписи по причине:
|
НСтр("ru = 'Не удалось получить сертификаты из файла подписи по причине:
|
||||||
|%1'"),
|
|%1'"),
|
||||||
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)));
|
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке)));
|
||||||
Возврат Ложь;
|
Возврат РезультатДобавленияСтроки;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Сертификат);
|
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Сертификат);
|
||||||
@@ -589,19 +816,24 @@
|
|||||||
|
|
||||||
СвойстваСертификата.Вставить("ДвоичныеДанные", Сертификат.Выгрузить());
|
СвойстваСертификата.Вставить("ДвоичныеДанные", Сертификат.Выгрузить());
|
||||||
|
|
||||||
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(ДанныеПодписи,
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписи(РезультатДобавленияСтроки.ДанныеПодписи,
|
||||||
СвойстваСертификата, "", Пользователи.АвторизованныйПользователь(), ИмяФайла, ПараметрыПодписи, Истина);
|
СвойстваСертификата, "", Пользователи.АвторизованныйПользователь(), РезультатДобавленияСтроки.ИмяФайла, ПараметрыПодписи, Истина);
|
||||||
|
|
||||||
ДобавитьСтроку(ЭтотОбъект, ДобавитьНовуюСтроку, СвойстваПодписи, ИмяФайла, АдресСвойствПодписи);
|
ДобавитьСтроку(ЭтотОбъект, ДобавитьНовуюСтроку, СвойстваПодписи, РезультатДобавленияСтроки.ИмяФайла,
|
||||||
|
РезультатДобавленияСтроки.АдресСвойствПодписи);
|
||||||
|
РезультатДобавленияСтроки.Успех = Истина;
|
||||||
|
|
||||||
Возврат Истина;
|
Возврат РезультатДобавленияСтроки;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
&НаКлиентеНаСервереБезКонтекста
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
Процедура ДобавитьСтроку(Форма, ДобавитьНовуюСтроку, СвойстваПодписи, ИмяФайла, АдресСвойствПодписи)
|
Процедура ДобавитьСтроку(Форма, ДобавитьНовуюСтроку, СвойстваПодписи, ИмяФайла, АдресСвойствПодписи)
|
||||||
|
|
||||||
АдресСвойствПодписи = ПоместитьВоВременноеХранилище(СвойстваПодписи, Форма.УникальныйИдентификатор);
|
НовыеСвойстваПодписи = ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи();
|
||||||
|
ЗаполнитьЗначенияСвойств(НовыеСвойстваПодписи, СвойстваПодписи);
|
||||||
|
|
||||||
|
АдресСвойствПодписи = ПоместитьВоВременноеХранилище(НовыеСвойстваПодписи, Форма.УникальныйИдентификатор);
|
||||||
|
|
||||||
Если ДобавитьНовуюСтроку Тогда
|
Если ДобавитьНовуюСтроку Тогда
|
||||||
ТекущиеДанные = Форма.Подписи.Добавить();
|
ТекущиеДанные = Форма.Подписи.Добавить();
|
||||||
@@ -637,6 +869,38 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ДобавитьОшибку(ОшибкаНаКлиенте, Контекст, ДополнительныеПараметры = Неопределено)
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ОшибкаНаКлиенте.ОписаниеОшибки) Тогда
|
||||||
|
Найдено = Контекст.Ошибки.ОшибкиНаКлиенте.Получить(ОшибкаНаКлиенте.ОписаниеОшибки);
|
||||||
|
Если Найдено = Неопределено Тогда
|
||||||
|
Найдено = Новый Структура("Файлы, ДополнительныеПараметры", Новый Массив);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Найдено.Файлы.Добавить(Контекст.РезультатДобавленияПодписи.ИмяФайла);
|
||||||
|
Найдено.ДополнительныеПараметры = ДополнительныеПараметры;
|
||||||
|
Контекст.Ошибки.ОшибкиНаКлиенте.Вставить(ОшибкаНаКлиенте.ОписаниеОшибки, Найдено);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Контекст.РезультатДобавленияПодписи.ОшибкаНаСервере) Тогда
|
||||||
|
ОшибкаНаСервере = Контекст.РезультатДобавленияПодписи.ОшибкаНаСервере;
|
||||||
|
Если ОшибкаНаСервере.ОписаниеОшибки <> ОшибкаНаКлиенте.ОписаниеОшибки Тогда
|
||||||
|
Найдено = Контекст.Ошибки.ОшибкиНаСервере.Получить(ОшибкаНаСервере.ОписаниеОшибки);
|
||||||
|
Если Найдено = Неопределено Тогда
|
||||||
|
Найдено = Новый Структура("Файлы, ДополнительныеПараметры", Новый Массив);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Найдено.Файлы.Добавить(Контекст.РезультатДобавленияПодписи.ИмяФайла);
|
||||||
|
Найдено.ДополнительныеПараметры = ДополнительныеПараметры;
|
||||||
|
Контекст.Ошибки.ОшибкиНаСервере.Вставить(ОшибкаНаСервере.ОписаниеОшибки, Найдено);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ВыбратьФайлыЦиклНачало(Контекст);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПоказатьОшибку(ОшибкаНаКлиенте, ОшибкаНаСервере, ДополнительныеПараметры = Неопределено)
|
Процедура ПоказатьОшибку(ОшибкаНаКлиенте, ОшибкаНаСервере, ДополнительныеПараметры = Неопределено)
|
||||||
|
|
||||||
@@ -646,4 +910,62 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ЗагрузитьМашиночитаемыеДоверенности()
|
||||||
|
|
||||||
|
ЭлектроннаяПодписьЛокализация.ПриЗагрузкеМашиночитаемыхДоверенностей(ЭтотОбъект);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ЗаполнитьМашиночитаемыеДоверенности(ПодписанныйОбъект = Неопределено)
|
||||||
|
|
||||||
|
ЭлектроннаяПодписьЛокализация.ПриЗаполненииМашиночитаемыхДоверенностей(ЭтотОбъект);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура МашиночитаемаяДоверенностьВыбратьИзСправочника()
|
||||||
|
|
||||||
|
ТекущиеДанные = Элементы.Подписи.ТекущиеДанные;
|
||||||
|
ОбработчикЗавершения = Новый ОписаниеОповещения("МашиночитаемаяДоверенностьОкончаниеВыбора", ЭтотОбъект);
|
||||||
|
ЭлектроннаяПодписьКлиентЛокализация.ПриВыбореМашиночитаемойДоверенности(ОбработчикЗавершения, ТекущиеДанные);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура МашиночитаемаяДоверенностьОкончаниеВыбора(Результат, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Если Результат = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
ТекущиеДанные = Элементы.Подписи.ТекущиеДанные;
|
||||||
|
ТекущиеДанные.МашиночитаемаяДоверенность = Результат;
|
||||||
|
ПодписиМашиночитаемаяДоверенностьПриИзменении();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПодписиМашиночитаемаяДоверенностьПриИзменении()
|
||||||
|
|
||||||
|
Если ОписаниеДанных.Свойство("Объект") И ТипЗнч(ОписаниеДанных.Объект) <> Тип("ОписаниеОповещения") Тогда
|
||||||
|
ЗаполнитьМашиночитаемуюДоверенностьВСтроке(Элементы.Подписи.ТекущаяСтрока, ОписаниеДанных.Объект);
|
||||||
|
Иначе
|
||||||
|
ЗаполнитьМашиночитаемуюДоверенностьВСтроке(Элементы.Подписи.ТекущаяСтрока);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ЗаполнитьМашиночитаемуюДоверенностьВСтроке(ИдентификаторСтроки, ПодписанныйОбъект = Неопределено)
|
||||||
|
|
||||||
|
ЭлектроннаяПодписьЛокализация.ПриЗаполненииМашиночитаемойДоверенностиВСтроке(ЭтотОбъект, ИдентификаторСтроки, ПодписанныйОбъект);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПодписиМашиночитаемаяДоверенностьАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -204,17 +204,16 @@
|
|||||||
ОтборМетаданных.Добавить("Задачи");
|
ОтборМетаданных.Добавить("Задачи");
|
||||||
ОтборМетаданных.Добавить("ВнешниеИсточникиДанных");
|
ОтборМетаданных.Добавить("ВнешниеИсточникиДанных");
|
||||||
|
|
||||||
ПараметрыФормы = Новый Структура;
|
ПараметрыФормы = СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных();
|
||||||
ПараметрыФормы.Вставить("КоллекцииВыбираемыхОбъектовМетаданных", ОтборМетаданных);
|
ПараметрыФормы.КоллекцииВыбираемыхОбъектовМетаданных = ОтборМетаданных;
|
||||||
ПараметрыФормы.Вставить("ВыбранныеОбъектыМетаданных", ВыбранныеОбъекты);
|
ПараметрыФормы.ВыбранныеОбъектыМетаданных = ВыбранныеОбъекты;
|
||||||
ПараметрыФормы.Вставить("УникальныйИдентификаторИсточник", УникальныйИдентификатор);
|
ПараметрыФормы.УникальныйИдентификаторИсточник = УникальныйИдентификатор;
|
||||||
ПараметрыФормы.Вставить("ВыборЕдинственного", Ложь);
|
ПараметрыФормы.ВыборЕдинственного = Ложь;
|
||||||
ПараметрыФормы.Вставить("ВыбиратьТаблицыВнешнихИсточниковДанных", Истина);
|
ПараметрыФормы.ВыбиратьТаблицыВнешнихИсточниковДанных = Истина;
|
||||||
ПараметрыФормы.Вставить("СпособГруппировкиОбъектов", "ПоВидам");
|
ПараметрыФормы.СпособГруппировкиОбъектов = "ПоВидам";
|
||||||
|
|
||||||
ОписаниеОповещения = Новый ОписаниеОповещения("ВыбратьОбъектыЗавершение", ЭтотОбъект);
|
ОписаниеОповещения = Новый ОписаниеОповещения("ВыбратьОбъектыЗавершение", ЭтотОбъект);
|
||||||
|
СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных(ПараметрыФормы, ОписаниеОповещения);
|
||||||
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыФормы,,,,, ОписаниеОповещения);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -223,8 +222,7 @@
|
|||||||
|
|
||||||
Если Результат <> Неопределено Тогда
|
Если Результат <> Неопределено Тогда
|
||||||
ОбработатьВыбранные(Результат.ВыгрузитьЗначения());
|
ОбработатьВыбранные(Результат.ВыгрузитьЗначения());
|
||||||
СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева(ЭтотОбъект,
|
СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева(ЭтотОбъект, Элементы.Настройки.Имя,, Истина);
|
||||||
Элементы.Настройки.Имя,, Истина);
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
<ul><li>Сертификат <b>только для шифрования</b> можно <b>Добавить из файла</b>. Выберите нужное действие и перейдите по ссылке, укажите путь к файлу или каталогу на компьютере.</li></ul><li>Также с помощью кнопки <b>Оформить заявление</b> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
|
<ul><li>Сертификат <b>только для шифрования</b> можно <b>Добавить из файла</b>. Выберите нужное действие и перейдите по ссылке, укажите путь к файлу или каталогу на компьютере.</li></ul><li>Также с помощью кнопки <b>Оформить заявление</b> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
|
||||||
</li>
|
</li>
|
||||||
<li>Выпустить повторно сертификат, у которого закончился срок действия можно с помощью кнопки <strong>Перевыпустить (cкопировать, F9)</strong>.</li>
|
<li>Выпустить повторно сертификат, у которого закончился срок действия можно с помощью кнопки <strong>Перевыпустить (cкопировать, F9)</strong>.</li>
|
||||||
|
<li>Для анализа сертификатов сотрудников и контроля своевременного обновления сертификатов можно воспользоваться кнопкой <b>Отчеты</b> для того, чтобы открыть список доступных <a href="Catalog.ВариантыОтчетов/Help">вариантов отчета</a>.</li>
|
||||||
<li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Приложения</h3>
|
<li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Приложения</h3>
|
||||||
<ul><li>Содержит список настроенных приложений, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ). </li>
|
<ul><li>Содержит список настроенных приложений, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ). </li>
|
||||||
<li>Данные приложения не обязательно должны быть установлены на всех компьютерах. Более того, установка более одного приложения на одном компьютере может вызвать конфликты между ними.
|
<li>Данные приложения не обязательно должны быть установлены на всех компьютерах. Более того, установка более одного приложения на одном компьютере может вызвать конфликты между ними.
|
||||||
|
|||||||
@@ -87,18 +87,26 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ИнструкцияНажатие(Элемент)
|
Процедура ИнструкцияНажатие(Элемент)
|
||||||
|
|
||||||
ЯкорьОшибки = "";
|
ЯкорьОшибки = ""; ТекстДляПоиска = "";
|
||||||
Если Элемент.Имя = "ИнструкцияКлиент"
|
Если Элемент.Имя = "ИнструкцияКлиент" Тогда
|
||||||
И Не ПустаяСтрока(ЯкорьОшибкиКлиент) Тогда
|
Если Не ПустаяСтрока(ЯкорьОшибкиКлиент) Тогда
|
||||||
|
ЯкорьОшибки = ЯкорьОшибкиКлиент;
|
||||||
ЯкорьОшибки = ЯкорьОшибкиКлиент;
|
Иначе
|
||||||
ИначеЕсли Элемент.Имя = "ИнструкцияСервер"
|
ТекстДляПоиска = ТекстОшибкиКлиент;
|
||||||
И Не ПустаяСтрока(ЯкорьОшибкиСервер) Тогда
|
КонецЕсли;
|
||||||
|
ИначеЕсли Элемент.Имя = "ИнструкцияСервер" Тогда
|
||||||
ЯкорьОшибки = ЯкорьОшибкиСервер;
|
Если Не ПустаяСтрока(ЯкорьОшибкиСервер) Тогда
|
||||||
|
ЯкорьОшибки = ЯкорьОшибкиСервер;
|
||||||
|
Иначе
|
||||||
|
ТекстДляПоиска = ТекстОшибкиСервер;
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЭлектроннаяПодписьКлиент.ОткрытьИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами(ЯкорьОшибки);
|
Если ЗначениеЗаполнено(ТекстДляПоиска) Тогда
|
||||||
|
ЭлектроннаяПодписьКлиент.ОткрытьПоискПоОшибкамПриРаботеСЭлектроннойПодписью(ТекстДляПоиска);
|
||||||
|
Иначе
|
||||||
|
ЭлектроннаяПодписьКлиент.ОткрытьИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами(ЯкорьОшибки);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -346,9 +354,12 @@
|
|||||||
Иначе
|
Иначе
|
||||||
ЯкорьОшибки = ОшибкаПоКлассификатору.Ссылка;
|
ЯкорьОшибки = ОшибкаПоКлассификатору.Ссылка;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
|
||||||
|
ЭлементИнструкция.Имя, "Заголовок", НСтр("ru = 'Подробнее'"));
|
||||||
|
|
||||||
ТребуемоеКоличествоСтрок = 0;
|
ТребуемоеКоличествоСтрок = 0;
|
||||||
ШиринаПоля = Цел(?(Ширина < 20, 20, Ширина) * 1.4);
|
ШиринаПоля = Цел(?(Ширина < 20, 20, Ширина) * 1.4);
|
||||||
Для НомерСтроки = 1 По СтрЧислоСтрок(ТекстОшибки) Цикл
|
Для НомерСтроки = 1 По СтрЧислоСтрок(ТекстОшибки) Цикл
|
||||||
|
|||||||
@@ -824,6 +824,7 @@
|
|||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<placementArea>UserCmds</placementArea>
|
<placementArea>UserCmds</placementArea>
|
||||||
<representationInContextMenu>Auto</representationInContextMenu>
|
<representationInContextMenu>Auto</representationInContextMenu>
|
||||||
|
<locationInCommandBar>InCommandBar</locationInCommandBar>
|
||||||
</items>
|
</items>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
@@ -2293,6 +2294,10 @@
|
|||||||
<value>Отобразить инструкцию</value>
|
<value>Отобразить инструкцию</value>
|
||||||
</title>
|
</title>
|
||||||
<id>6</id>
|
<id>6</id>
|
||||||
|
<toolTip>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Отобразить инструкцию по редактированию макета</value>
|
||||||
|
</toolTip>
|
||||||
<use>
|
<use>
|
||||||
<common>true</common>
|
<common>true</common>
|
||||||
</use>
|
</use>
|
||||||
@@ -2358,7 +2363,7 @@
|
|||||||
<id>9</id>
|
<id>9</id>
|
||||||
<toolTip>
|
<toolTip>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Показать оригинал</value>
|
<value>Показать поставляемый макет</value>
|
||||||
</toolTip>
|
</toolTip>
|
||||||
<use>
|
<use>
|
||||||
<common>true</common>
|
<common>true</common>
|
||||||
@@ -2435,6 +2440,11 @@
|
|||||||
<value>Посмотреть печатную форму</value>
|
<value>Посмотреть печатную форму</value>
|
||||||
</title>
|
</title>
|
||||||
<id>13</id>
|
<id>13</id>
|
||||||
|
<toolTip>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Посмотреть печатную форму по макету
|
||||||
|
</value>
|
||||||
|
</toolTip>
|
||||||
<use>
|
<use>
|
||||||
<common>true</common>
|
<common>true</common>
|
||||||
</use>
|
</use>
|
||||||
|
|||||||
@@ -164,7 +164,7 @@
|
|||||||
ХешРедактируемогоМакета = ПолучитьХешМакета(АдресФайлаМакета);
|
ХешРедактируемогоМакета = ПолучитьХешМакета(АдресФайлаМакета);
|
||||||
ВремяПроверкиМодифицированностиМакета = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
ВремяПроверкиМодифицированностиМакета = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||||
Элементы.ГруппаНазначениеМакета.Доступность = Параметры.ДоступноНазначение;
|
Элементы.ГруппаНазначениеМакета.Доступность = Параметры.ДоступноНазначение;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
@@ -216,26 +216,32 @@
|
|||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
|
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
|
||||||
|
|
||||||
Если ОтказСохраненияИзменений Тогда
|
Если ЗавершениеРаботы Тогда
|
||||||
|
Если Модифицированность И Не ОтказСохраненияИзменений Тогда
|
||||||
|
ТекстПредупреждения = НСтр("ru = 'Макет печатной формы отредактирован в другом приложении.
|
||||||
|
|Нажмите Записать, чтобы не потерять изменения.'");
|
||||||
|
Отказ = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ОтказСохраненияИзменений Тогда
|
||||||
|
|
||||||
ИначеЕсли Не ЗаписьВыполнена Тогда
|
Если Не ЗаписьВыполнена Тогда
|
||||||
ДополнительныеПараметры = Новый Структура;
|
ДополнительныеПараметры = Новый Структура;
|
||||||
ДополнительныеПараметры.Вставить("Отказ", Отказ);
|
ДополнительныеПараметры.Вставить("Отказ", Отказ);
|
||||||
ДополнительныеПараметры.Вставить("ЗавершениеРаботы", ЗавершениеРаботы);
|
Оповещение = Новый ОписаниеОповещения("ПередЗакрытиемОкончание", ЭтотОбъект, ДополнительныеПараметры);
|
||||||
ДополнительныеПараметры.Вставить("ТекстПредупреждения", ТекстПредупреждения);
|
ОповещениеОшибки = Новый ОписаниеОповещения("ОшибкаПриЧтенииФайла", ЭтотОбъект);
|
||||||
ДополнительныеПараметры.Вставить("СтандартнаяОбработка", СтандартнаяОбработка);
|
|
||||||
|
ПрочитатьРедактируемыйФайлМакета(Оповещение, ОповещениеОшибки);
|
||||||
Оповещение = Новый ОписаниеОповещения("ПередЗакрытиемОкончание", ЭтотОбъект, ДополнительныеПараметры);
|
Отказ = Истина;
|
||||||
ОповещениеОшибки = Новый ОписаниеОповещения("ОшибкаПриЧтенииФайла", ЭтотОбъект);
|
Иначе
|
||||||
ПрочитатьРедактируемыйФайлМакета(Оповещение, ОповещениеОшибки);
|
ПередЗакрытиемЗавершение(Ложь, Неопределено);
|
||||||
Отказ = Истина;
|
КонецЕсли;
|
||||||
|
|
||||||
Иначе
|
|
||||||
ПередЗакрытиемЗавершение(Ложь, Неопределено);
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не Отказ И Не ЗавершениеРаботы И ЗначениеЗаполнено(КлючОбъектаРедактирования) Тогда
|
Если Не Отказ И ЗначениеЗаполнено(КлючОбъектаРедактирования) Тогда
|
||||||
РазблокироватьНаСервере();
|
РазблокироватьНаСервере();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -306,6 +312,11 @@
|
|||||||
Оповещение = Новый ОписаниеОповещения("ОткрытьРедакторПродолжение", ЭтотОбъект);
|
Оповещение = Новый ОписаниеОповещения("ОткрытьРедакторПродолжение", ЭтотОбъект);
|
||||||
ОповещениеОшибки = Новый ОписаниеОповещения("ОшибкаПриОткрытииФайла", ЭтотОбъект);
|
ОповещениеОшибки = Новый ОписаниеОповещения("ОшибкаПриОткрытииФайла", ЭтотОбъект);
|
||||||
ПрочитатьРедактируемыйФайлМакета(Оповещение, ОповещениеОшибки);
|
ПрочитатьРедактируемыйФайлМакета(Оповещение, ОповещениеОшибки);
|
||||||
|
|
||||||
|
Если Не ЭтоНовый() Тогда
|
||||||
|
Модифицированность = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
@@ -406,7 +417,7 @@
|
|||||||
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
|
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
|
||||||
ПараметрыЗагрузки.Интерактивно = Ложь;
|
ПараметрыЗагрузки.Интерактивно = Ложь;
|
||||||
ФайловаяСистемаКлиент.ЗагрузитьФайл(ОписаниеОповещения, ПараметрыЗагрузки, ПутьКФайлуМакета, АдресФайлаМакета);
|
ФайловаяСистемаКлиент.ЗагрузитьФайл(ОписаниеОповещения, ПараметрыЗагрузки, ПутьКФайлуМакета, АдресФайлаМакета);
|
||||||
#КонецЕсли
|
#КонецЕсли
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -653,20 +664,20 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПередЗакрытиемОкончание(Результат, ДополнительныеПараметры) Экспорт
|
Процедура ПередЗакрытиемОкончание(Результат, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
Отказ = ДополнительныеПараметры.Отказ;
|
Отказ = ДополнительныеПараметры.Отказ;
|
||||||
ЗавершениеРаботы = ДополнительныеПараметры.ЗавершениеРаботы;
|
|
||||||
|
|
||||||
Если Не ЗавершениеРаботы И Не ПовторноеЗакрытие = Истина Тогда
|
Если ПовторноеЗакрытие <> Истина Тогда
|
||||||
Модифицированность = Модифицированность ИЛИ МакетИзменен();
|
Модифицированность = Модифицированность Или МакетИзменен();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ПовторноеЗакрытие = Истина;
|
ПовторноеЗакрытие = Истина;
|
||||||
|
|
||||||
ОписаниеОповещения = Новый ОписаниеОповещения("ПередЗакрытиемЗавершение", ЭтотОбъект);
|
ОписаниеОповещения = Новый ОписаниеОповещения("ПередЗакрытиемЗавершение", ЭтотОбъект);
|
||||||
ОписаниеЯзыка = ?(ЗначениеЗаполнено(ТекущийЯзык), " ("+ТекущийЯзык+")", "");
|
ОписаниеЯзыка = ?(ЗначениеЗаполнено(ТекущийЯзык), " (" + ТекущийЯзык + ")", "");
|
||||||
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Сохранить изменения в %1%2?'"), ИмяДокумента, ОписаниеЯзыка);
|
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Сохранить изменения в %1%2?'"),
|
||||||
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(ОписаниеОповещения, Отказ, ЗавершениеРаботы, ТекстВопроса);
|
ИмяДокумента, ОписаниеЯзыка);
|
||||||
|
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(ОписаниеОповещения, Отказ, Ложь, ТекстВопроса);
|
||||||
|
|
||||||
Если Модифицированность Или ЗавершениеРаботы Тогда
|
Если Модифицированность Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -1012,7 +1023,6 @@
|
|||||||
|
|
||||||
ПодготовитьМакетКСохранению(Макет);
|
ПодготовитьМакетКСохранению(Макет);
|
||||||
|
|
||||||
|
|
||||||
АдресМакетаВоВременномХранилище = ПоместитьВоВременноеХранилище(Макет, УникальныйИдентификатор);
|
АдресМакетаВоВременномХранилище = ПоместитьВоВременноеХранилище(Макет, УникальныйИдентификатор);
|
||||||
ОписаниеМакета = УправлениеПечатью.ОписаниеМакета();
|
ОписаниеМакета = УправлениеПечатью.ОписаниеМакета();
|
||||||
ОписаниеМакета.ИмяОбъектаМетаданныхМакета = ИдентификаторМакета;
|
ОписаниеМакета.ИмяОбъектаМетаданныхМакета = ИдентификаторМакета;
|
||||||
@@ -1234,12 +1244,11 @@
|
|||||||
ПослеПодключенияРасширения = Новый ОписаниеОповещения("ПослеПодключенияРасширения", ЭтотОбъект, ДополнительныеПараметры);
|
ПослеПодключенияРасширения = Новый ОписаниеОповещения("ПослеПодключенияРасширения", ЭтотОбъект, ДополнительныеПараметры);
|
||||||
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(ПослеПодключенияРасширения);
|
ФайловаяСистемаКлиент.ПодключитьРасширениеДляРаботыСФайлами(ПослеПодключенияРасширения);
|
||||||
|
|
||||||
Элементы.ПолеДокументаИнструкции.Видимость = Ложь;
|
|
||||||
Элементы.ОткрытьРедактор.КнопкаПоУмолчанию = Ложь;
|
Элементы.ОткрытьРедактор.КнопкаПоУмолчанию = Ложь;
|
||||||
Элементы.ЗаписатьИЗакрыть.КнопкаПоУмолчанию = Истина;
|
Элементы.ЗаписатьИЗакрыть.КнопкаПоУмолчанию = Истина;
|
||||||
|
|
||||||
Элементы.ПолеДокументаИнструкции.Видимость = Ложь;
|
Элементы.ПолеДокументаИнструкции.Видимость = Ложь;
|
||||||
Элементы.ОтобразитьИнструкцию.Пометка = Элементы.ПолеДокументаИнструкции.Видимость;
|
Элементы.ОтобразитьИнструкцию.Пометка = Ложь;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
@@ -1479,7 +1488,7 @@
|
|||||||
ОписаниеОповещения = Новый ОписаниеОповещения("ПереключитьЯзыкПродолжение", ЭтотОбъект, ПараметрыДляПродолжения);
|
ОписаниеОповещения = Новый ОписаниеОповещения("ПереключитьЯзыкПродолжение", ЭтотОбъект, ПараметрыДляПродолжения);
|
||||||
|
|
||||||
Если Модифицированность Тогда
|
Если Модифицированность Тогда
|
||||||
ОписаниеЯзыка = ?(ЗначениеЗаполнено(ТекущийЯзык), " ("+ТекущийЯзык+")", "");
|
ОписаниеЯзыка = ?(ЗначениеЗаполнено(ТекущийЯзык), " (" + ТекущийЯзык + ")", "");
|
||||||
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Сохранить изменения в %1%2?'"), ИмяДокумента, ОписаниеЯзыка);
|
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Сохранить изменения в %1%2?'"), ИмяДокумента, ОписаниеЯзыка);
|
||||||
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена, ,
|
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена, ,
|
||||||
КодВозвратаДиалога.Да);
|
КодВозвратаДиалога.Да);
|
||||||
@@ -2364,14 +2373,14 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура НазначениеМакетаНажатие(Элемент)
|
Процедура НазначениеМакетаНажатие(Элемент)
|
||||||
|
|
||||||
ПараметрыПодбора = Новый Структура;
|
ПараметрыПодбора = СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных();
|
||||||
ПараметрыПодбора.Вставить("ВыбранныеОбъектыМетаданных", ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ИсточникиДанных));
|
ПараметрыПодбора.ВыбранныеОбъектыМетаданных = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ИсточникиДанных);
|
||||||
ПараметрыПодбора.Вставить("ВыбиратьСсылки", Истина);
|
ПараметрыПодбора.ВыбиратьСсылки = Истина;
|
||||||
ПараметрыПодбора.Вставить("Заголовок", НСтр("ru = 'Назначение макета'"));
|
ПараметрыПодбора.Заголовок = НСтр("ru = 'Назначение макета'");
|
||||||
ПараметрыПодбора.Вставить("ФильтрПоОбъектамМетаданных", ОбъектыСКомандамиПечати());
|
ПараметрыПодбора.ФильтрПоОбъектамМетаданных = ОбъектыСКомандамиПечати();
|
||||||
|
|
||||||
ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореВладельцевМакета", ЭтотОбъект);
|
ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореВладельцевМакета", ЭтотОбъект);
|
||||||
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыПодбора, , , , , ОписаниеОповещения);
|
СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных(ПараметрыПодбора, ОписаниеОповещения);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -282,14 +282,14 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ВладельцыМакетаНажатие(Элемент)
|
Процедура ВладельцыМакетаНажатие(Элемент)
|
||||||
|
|
||||||
ПараметрыПодбора = Новый Структура;
|
ПараметрыПодбора = СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных();
|
||||||
ПараметрыПодбора.Вставить("ВыбранныеОбъектыМетаданных", ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ИсточникиДанных));
|
ПараметрыПодбора.ВыбранныеОбъектыМетаданных = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ИсточникиДанных);
|
||||||
ПараметрыПодбора.Вставить("ВыбиратьСсылки", Истина);
|
ПараметрыПодбора.ВыбиратьСсылки = Истина;
|
||||||
ПараметрыПодбора.Вставить("Заголовок", НСтр("ru = 'Назначение макета'"));
|
ПараметрыПодбора.Заголовок = НСтр("ru = 'Назначение макета'");
|
||||||
ПараметрыПодбора.Вставить("ФильтрПоОбъектамМетаданных", ОбъектыСКомандамиПечати());
|
ПараметрыПодбора.ФильтрПоОбъектамМетаданных = ОбъектыСКомандамиПечати();
|
||||||
|
|
||||||
ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореВладельцевМакета", ЭтотОбъект);
|
ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореВладельцевМакета", ЭтотОбъект);
|
||||||
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыПодбора, , , , , ОписаниеОповещения);
|
СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных(ПараметрыПодбора, ОписаниеОповещения);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -277,6 +277,52 @@
|
|||||||
<textSize>Normal</textSize>
|
<textSize>Normal</textSize>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
|
<items xsi:type="form:FormField">
|
||||||
|
<name>ТаблицаПодписейМашиночитаемаяДоверенность</name>
|
||||||
|
<id>97</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Машиночитаемая доверенность</value>
|
||||||
|
</title>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<dataPath xsi:type="form:DataPath">
|
||||||
|
<segments>ТаблицаПодписей.МашиночитаемаяДоверенностьПредставление</segments>
|
||||||
|
</dataPath>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ТаблицаПодписейМашиночитаемаяДоверенностьРасширеннаяПодсказка</name>
|
||||||
|
<id>99</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>ТаблицаПодписейМашиночитаемаяДоверенностьКонтекстноеМеню</name>
|
||||||
|
<id>98</id>
|
||||||
|
<autoFill>true</autoFill>
|
||||||
|
</contextMenu>
|
||||||
|
<type>InputField</type>
|
||||||
|
<readOnly>true</readOnly>
|
||||||
|
<editMode>Enter</editMode>
|
||||||
|
<showInHeader>true</showInHeader>
|
||||||
|
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||||
|
<showInFooter>true</showInFooter>
|
||||||
|
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<height>2</height>
|
||||||
|
<wrap>true</wrap>
|
||||||
|
<chooseType>true</chooseType>
|
||||||
|
<typeDomainEnabled>true</typeDomainEnabled>
|
||||||
|
<textEdit>true</textEdit>
|
||||||
|
<textSize>Normal</textSize>
|
||||||
|
<heightControlVariant>ByContent</heightControlVariant>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
<commandBarLocation>None</commandBarLocation>
|
<commandBarLocation>None</commandBarLocation>
|
||||||
<autoCommandBar>
|
<autoCommandBar>
|
||||||
<name>ТаблицаПодписейКоманднаяПанель</name>
|
<name>ТаблицаПодписейКоманднаяПанель</name>
|
||||||
@@ -743,6 +789,51 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</columns>
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>МашиночитаемаяДоверенность</name>
|
||||||
|
<id>13</id>
|
||||||
|
<valueType>
|
||||||
|
<types>ValueList</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>МашиночитаемаяДоверенностьПредставление</name>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Машиночитаемая доверенность представление</value>
|
||||||
|
</title>
|
||||||
|
<id>14</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>Отпечаток</name>
|
||||||
|
<id>9</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
</attributes>
|
</attributes>
|
||||||
<attributes>
|
<attributes>
|
||||||
<name>БольшеНеСпрашивать</name>
|
<name>БольшеНеСпрашивать</name>
|
||||||
|
|||||||
@@ -45,6 +45,8 @@
|
|||||||
|
|
||||||
ЗаполнитьПодписи(Параметры.Объект);
|
ЗаполнитьПодписи(Параметры.Объект);
|
||||||
|
|
||||||
|
ЭлектроннаяПодписьЛокализация.ПриСозданииНаСервере(ЭтотОбъект);
|
||||||
|
|
||||||
БольшеНеСпрашивать = Ложь;
|
БольшеНеСпрашивать = Ложь;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -105,7 +107,7 @@
|
|||||||
Если ТипЗнч(Объект) = Тип("Строка") Тогда
|
Если ТипЗнч(Объект) = Тип("Строка") Тогда
|
||||||
КоллекцияПодписей = ПолучитьИзВременногоХранилища(Объект);
|
КоллекцияПодписей = ПолучитьИзВременногоХранилища(Объект);
|
||||||
Иначе
|
Иначе
|
||||||
КоллекцияПодписей = ЭлектроннаяПодпись.УстановленныеПодписи(Объект);
|
КоллекцияПодписей = ЭлектроннаяПодпись.УстановленныеПодписи(Объект, Неопределено, Истина);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Для каждого ВсеСвойстваПодписи Из КоллекцияПодписей Цикл
|
Для каждого ВсеСвойстваПодписи Из КоллекцияПодписей Цикл
|
||||||
@@ -115,6 +117,16 @@
|
|||||||
НоваяСтрока.АдресПодписи = ПоместитьВоВременноеХранилище(
|
НоваяСтрока.АдресПодписи = ПоместитьВоВременноеХранилище(
|
||||||
ВсеСвойстваПодписи.Подпись, УникальныйИдентификатор);
|
ВсеСвойстваПодписи.Подпись, УникальныйИдентификатор);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ВсеСвойстваПодписи.РезультатПроверкиПодписиПоМЧД) Тогда
|
||||||
|
Для Каждого РезультатПроверкиПодписиПоМЧД Из ВсеСвойстваПодписи.РезультатПроверкиПодписиПоМЧД Цикл
|
||||||
|
НоваяСтрока.МашиночитаемаяДоверенность.Добавить(
|
||||||
|
РезультатПроверкиПодписиПоМЧД.МашиночитаемаяДоверенность);
|
||||||
|
НоваяСтрока.МашиночитаемаяДоверенностьПредставление = НоваяСтрока.МашиночитаемаяДоверенностьПредставление
|
||||||
|
+ ?(ЗначениеЗаполнено(НоваяСтрока.МашиночитаемаяДоверенностьПредставление), Символы.ПС, "")
|
||||||
|
+ РезультатПроверкиПодписиПоМЧД.МашиночитаемаяДоверенность;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ДанныеПоСертификату = ЭлектроннаяПодписьСлужебный.ДанныеПоСертификату(ВсеСвойстваПодписи, УникальныйИдентификатор);
|
ДанныеПоСертификату = ЭлектроннаяПодписьСлужебный.ДанныеПоСертификату(ВсеСвойстваПодписи, УникальныйИдентификатор);
|
||||||
ЗаполнитьЗначенияСвойств(НоваяСтрока, ДанныеПоСертификату);
|
ЗаполнитьЗначенияСвойств(НоваяСтрока, ДанныеПоСертификату);
|
||||||
|
|
||||||
|
|||||||
@@ -103,6 +103,13 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
|
||||||
|
Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт
|
||||||
|
|
||||||
|
Списки.Вставить(Метаданные.Документы.Анкета, Истина);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|||||||
@@ -275,7 +275,7 @@
|
|||||||
// установить расширение для работы с 1С:Предприятием.
|
// установить расширение для работы с 1С:Предприятием.
|
||||||
// Необязательный. Значение по умолчанию: Ложь.
|
// Необязательный. Значение по умолчанию: Ложь.
|
||||||
// * Менеджер - Строка - полное имя объекта метаданных, отвечающего за выполнение команды.
|
// * Менеджер - Строка - полное имя объекта метаданных, отвечающего за выполнение команды.
|
||||||
// Например, "Отчет._ДемоКнигаПокупок".
|
// Например, "Отчет.КнигаПокупок".
|
||||||
// * ИмяФормы - Строка - имя формы, которую требуется открыть или получить для выполнения команды.
|
// * ИмяФормы - Строка - имя формы, которую требуется открыть или получить для выполнения команды.
|
||||||
// Если Обработчик не указан, то у формы вызывается метод "Открыть".
|
// Если Обработчик не указан, то у формы вызывается метод "Открыть".
|
||||||
// * КлючВарианта - Строка - имя варианта отчета, открываемого при выполнении команды.
|
// * КлючВарианта - Строка - имя варианта отчета, открываемого при выполнении команды.
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
// Объекты - Массив из ОбъектМетаданных
|
// Объекты - Массив из ОбъектМетаданных
|
||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// Объекты.Добавить(Метаданные.Справочники._ДемоНоменклатура);
|
// Объекты.Добавить(Метаданные.Справочники.Номенклатура);
|
||||||
// Объекты.Добавить(Метаданные.Справочники._ДемоКонтрагенты);
|
// Объекты.Добавить(Метаданные.Справочники.Контрагенты);
|
||||||
//
|
//
|
||||||
Процедура ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов(Объекты) Экспорт
|
Процедура ПриОпределенииОбъектовСКомандойГрупповогоИзмененияОбъектов(Объекты) Экспорт
|
||||||
|
|
||||||
|
|||||||
@@ -692,6 +692,7 @@
|
|||||||
|
|
||||||
// Выполнить в основном потоке.
|
// Выполнить в основном потоке.
|
||||||
Если ВыполнитьБезФоновогоЗадания Тогда
|
Если ВыполнитьБезФоновогоЗадания Тогда
|
||||||
|
СообщенияПередВызовом = ПолучитьСообщенияПользователю(Истина);
|
||||||
Попытка
|
Попытка
|
||||||
Если ПараметрыВыполнения.Свойство("ЭтоФункция") И ПараметрыВыполнения.ЭтоФункция Тогда
|
Если ПараметрыВыполнения.Свойство("ЭтоФункция") И ПараметрыВыполнения.ЭтоФункция Тогда
|
||||||
ВызватьФункцию(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры, ПараметрыВыполнения);
|
ВызватьФункцию(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры, ПараметрыВыполнения);
|
||||||
@@ -715,6 +716,10 @@
|
|||||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Ошибка выполнения'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
ЗаписьЖурналаРегистрации(НСтр("ru = 'Длительные операции.Ошибка выполнения'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||||
УровеньЖурналаРегистрации.Ошибка, , , Результат.ПодробноеПредставлениеОшибки);
|
УровеньЖурналаРегистрации.Ошибка, , , Результат.ПодробноеПредставлениеОшибки);
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
Результат.Сообщения = ПолучитьСообщенияПользователю(Истина);
|
||||||
|
Для Каждого Сообщение Из СообщенияПередВызовом Цикл
|
||||||
|
Сообщение.Сообщить();
|
||||||
|
КонецЦикла;
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
@@ -5322,6 +5322,11 @@
|
|||||||
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
|
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа.
|
||||||
Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт
|
Процедура ПриЗаполненииСписковСОграничениемДоступа(Списки) Экспорт
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Анкетирование") Тогда
|
||||||
|
МодульАнкетирование = ОбщегоНазначения.ОбщийМодуль("Анкетирование");
|
||||||
|
МодульАнкетирование.ПриЗаполненииСписковСОграничениемДоступа(Списки);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда
|
||||||
МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер");
|
МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер");
|
||||||
МодульБизнесПроцессыИЗадачиСервер.ПриЗаполненииСписковСОграничениемДоступа(Списки);
|
МодульБизнесПроцессыИЗадачиСервер.ПриЗаполненииСписковСОграничениемДоступа(Списки);
|
||||||
|
|||||||
@@ -710,70 +710,18 @@
|
|||||||
//
|
//
|
||||||
Функция ДанныеКлассификатора() Экспорт
|
Функция ДанныеКлассификатора() Экспорт
|
||||||
|
|
||||||
ДанныеФайлов = Неопределено;
|
ДанныеКлассификатора = Новый Структура;
|
||||||
|
|
||||||
Идентификаторы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторКлассификатора());
|
ПроизводственныеКалендари = Новый Структура;
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
|
ПроизводственныеКалендари.Вставить("ИмяТаблицы", "");
|
||||||
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
|
ПроизводственныеКалендари.Вставить("Данные", Новый ТаблицаЗначений());
|
||||||
ДанныеФайлов = МодульРаботаСКлассификаторами.ПолучитьФайлыКлассификаторов(Идентификаторы);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ДанныеФайлов = Неопределено Тогда
|
ДанныеПроизводственныхКалендарей = Новый Структура(Новый ФиксированнаяСтруктура(ПроизводственныеКалендари));
|
||||||
ТекстСообщения = НСтр("ru = 'Не удалось получить данные календаря.
|
|
||||||
|Классификаторы не поддерживаются или подсистема ""Работа с классификаторами"" отсутствует.'");
|
|
||||||
ВызватьИсключение ТекстСообщения;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Не ПустаяСтрока(ДанныеФайлов.КодОшибки) Тогда
|
ДанныеКлассификатора.Вставить("ПроизводственныеКалендари", ПроизводственныеКалендари);
|
||||||
ИмяСобытия = НСтр("ru = 'Календарные графики.Получение файла классификатора'", ОбщегоНазначения.КодОсновногоЯзыка());
|
ДанныеКлассификатора.Вставить("ДанныеПроизводственныхКалендарей", ДанныеПроизводственныхКалендарей);
|
||||||
ЗаписьЖурналаРегистрации(
|
|
||||||
ИмяСобытия,
|
|
||||||
УровеньЖурналаРегистрации.Ошибка,,,
|
|
||||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru = 'Не удалось получить данные календаря.
|
|
||||||
|%1'"),
|
|
||||||
ДанныеФайлов.ИнформацияОбОшибке));
|
|
||||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru = 'Не удалось получить данные календаря.
|
|
||||||
|%1.'"),
|
|
||||||
ДанныеФайлов.СообщениеОбОшибке);
|
|
||||||
ВызватьИсключение ТекстСообщения;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ОтборСтрок = Новый Структура("Идентификатор");
|
КалендарныеГрафикиЛокализация.ПриПолученииДанныхКлассификатора(ДанныеКлассификатора);
|
||||||
ОтборСтрок.Идентификатор = ИдентификаторКлассификатора();
|
|
||||||
НайденныеСтроки = ДанныеФайлов.ДанныеКлассификаторов.НайтиСтроки(ОтборСтрок);
|
|
||||||
Если НайденныеСтроки.Количество() = 0 Тогда
|
|
||||||
ТекстСообщения = НСтр("ru = 'Не удалось получить данные календаря.
|
|
||||||
|Полученные классификаторы не содержат календарей.'");
|
|
||||||
ВызватьИсключение ТекстСообщения;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
СведенияФайла = НайденныеСтроки[0];
|
|
||||||
|
|
||||||
Если СведенияФайла.Версия < ВерсияКалендарей() Тогда
|
|
||||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru = 'Не удалось обработать полученные данные календаря из-за конфликта версий.
|
|
||||||
|Версия календарей
|
|
||||||
|- полученного классификатора %1,
|
|
||||||
|- встроенных в конфигурацию %2,
|
|
||||||
|- загруженного ранее классификатора %3.
|
|
||||||
|Рекомендуется выполнить обновление классификаторов.'"),
|
|
||||||
СведенияФайла.Версия,
|
|
||||||
ВерсияКалендарей(),
|
|
||||||
ВерсияЗагруженныхКалендарей());
|
|
||||||
ВызватьИсключение ТекстСообщения;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Попытка
|
|
||||||
ДанныеКлассификатора = ДанныеФайлаКлассификатора(СведенияФайла.АдресФайла);
|
|
||||||
Исключение
|
|
||||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru = 'Не удалось обработать полученные данные календаря.
|
|
||||||
|%1.'"),
|
|
||||||
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
|
||||||
ВызватьИсключение ТекстСообщения;
|
|
||||||
КонецПопытки;
|
|
||||||
|
|
||||||
Возврат ДанныеКлассификатора;
|
Возврат ДанныеКлассификатора;
|
||||||
|
|
||||||
@@ -954,7 +902,7 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ДанныеФайлаКлассификатора(Адрес)
|
Функция ДанныеФайлаКлассификатора(Адрес) Экспорт
|
||||||
|
|
||||||
ДанныеКлассификатора = Новый Структура(
|
ДанныеКлассификатора = Новый Структура(
|
||||||
"ПроизводственныеКалендари,
|
"ПроизводственныеКалендари,
|
||||||
|
|||||||
@@ -0,0 +1,95 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Copyright (c) 2024, ООО 1С-Софт
|
||||||
|
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||||
|
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||||
|
// Текст лицензии доступен по ссылке:
|
||||||
|
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Область ПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
// Запрашивает файл с данными классификатора календарей.
|
||||||
|
// Преобразует полученный файл в структуру с таблицами календарей и их данных.
|
||||||
|
// Если не удалось получить файл классификатора, вызывается исключение.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ДанныеКлассификатора - Структура:
|
||||||
|
// * ПроизводственныеКалендари - Структура:
|
||||||
|
// * ИмяТаблицы - Строка - имя таблицы.
|
||||||
|
// * Данные - ТаблицаЗначений - преобразованная из XML таблица календарей.
|
||||||
|
// * ДанныеПроизводственныхКалендарей - Структура:
|
||||||
|
// * ИмяТаблицы - Строка - имя таблицы.
|
||||||
|
// * Данные - ТаблицаЗначений - преобразованная из XML таблица данных календарей.
|
||||||
|
//
|
||||||
|
Процедура ПриПолученииДанныхКлассификатора(ДанныеКлассификатора) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
ДанныеФайлов = Неопределено;
|
||||||
|
|
||||||
|
Идентификаторы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(КалендарныеГрафики.ИдентификаторКлассификатора());
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
|
||||||
|
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
|
||||||
|
ДанныеФайлов = МодульРаботаСКлассификаторами.ПолучитьФайлыКлассификаторов(Идентификаторы);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ДанныеФайлов = Неопределено Тогда
|
||||||
|
ТекстСообщения = НСтр("ru = 'Не удалось получить данные календаря.
|
||||||
|
|Классификаторы не поддерживаются или подсистема ""Работа с классификаторами"" отсутствует.'");
|
||||||
|
ВызватьИсключение ТекстСообщения;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ПустаяСтрока(ДанныеФайлов.КодОшибки) Тогда
|
||||||
|
ИмяСобытия = НСтр("ru = 'Календарные графики.Получение файла классификатора'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
ЗаписьЖурналаРегистрации(
|
||||||
|
ИмяСобытия,
|
||||||
|
УровеньЖурналаРегистрации.Ошибка,,,
|
||||||
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось получить данные календаря.
|
||||||
|
|%1'"),
|
||||||
|
ДанныеФайлов.ИнформацияОбОшибке));
|
||||||
|
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось получить данные календаря.
|
||||||
|
|%1.'"),
|
||||||
|
ДанныеФайлов.СообщениеОбОшибке);
|
||||||
|
ВызватьИсключение ТекстСообщения;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОтборСтрок = Новый Структура("Идентификатор");
|
||||||
|
ОтборСтрок.Идентификатор = КалендарныеГрафики.ИдентификаторКлассификатора();
|
||||||
|
НайденныеСтроки = ДанныеФайлов.ДанныеКлассификаторов.НайтиСтроки(ОтборСтрок);
|
||||||
|
Если НайденныеСтроки.Количество() = 0 Тогда
|
||||||
|
ТекстСообщения = НСтр("ru = 'Не удалось получить данные календаря.
|
||||||
|
|Полученные классификаторы не содержат календарей.'");
|
||||||
|
ВызватьИсключение ТекстСообщения;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СведенияФайла = НайденныеСтроки[0];
|
||||||
|
|
||||||
|
Если СведенияФайла.Версия < КалендарныеГрафики.ВерсияКалендарей() Тогда
|
||||||
|
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось обработать полученные данные календаря из-за конфликта версий.
|
||||||
|
|Версия календарей
|
||||||
|
|- полученного классификатора %1,
|
||||||
|
|- встроенных в конфигурацию %2,
|
||||||
|
|- загруженного ранее классификатора %3.
|
||||||
|
|Рекомендуется выполнить обновление классификаторов.'"),
|
||||||
|
СведенияФайла.Версия,
|
||||||
|
КалендарныеГрафики.ВерсияКалендарей(),
|
||||||
|
КалендарныеГрафики.ВерсияЗагруженныхКалендарей());
|
||||||
|
ВызватьИсключение ТекстСообщения;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
ДанныеКлассификатора = КалендарныеГрафики.ДанныеФайлаКлассификатора(СведенияФайла.АдресФайла);
|
||||||
|
Исключение
|
||||||
|
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось обработать полученные данные календаря.
|
||||||
|
|%1.'"),
|
||||||
|
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||||
|
ВызватьИсключение ТекстСообщения;
|
||||||
|
КонецПопытки;
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="87251f18-17da-497a-9b39-f84a388c855c">
|
||||||
|
<name>КалендарныеГрафикиЛокализация</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Календарные графики локализация</value>
|
||||||
|
</synonym>
|
||||||
|
<server>true</server>
|
||||||
|
<externalConnection>true</externalConnection>
|
||||||
|
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||||
|
</mdclass:CommonModule>
|
||||||
@@ -2556,33 +2556,23 @@
|
|||||||
ИмяПоляПоиска = "ПредставлениеПутиКДанным";
|
ИмяПоляПоиска = "ПредставлениеПутиКДанным";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Владелец = Неопределено;
|
Владельцы = Новый Массив;
|
||||||
Папки = Новый Массив;
|
|
||||||
|
|
||||||
Для Каждого Реквизит Из КоллекцияРеквизитов Цикл
|
Для Каждого Реквизит Из КоллекцияРеквизитов Цикл
|
||||||
Если НРег(Реквизит[ИмяПоляПоиска]) = НРег(ПутьКДанным) Тогда
|
Если НРег(Реквизит[ИмяПоляПоиска]) = НРег(ПутьКДанным) Тогда
|
||||||
Возврат Реквизит;
|
Возврат Реквизит;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Если Реквизит.Папка Тогда
|
Если Реквизит.Папка Или СтрНачинаетсяС(НРег(ПутьКДанным), НРег(Реквизит[ИмяПоляПоиска]) + ".") Тогда
|
||||||
Папки.Добавить(Реквизит);
|
Владельцы.Добавить(Реквизит);
|
||||||
Иначе
|
|
||||||
Если СтрНачинаетсяС(НРег(ПутьКДанным), НРег(Реквизит[ИмяПоляПоиска]) + ".") Тогда
|
|
||||||
Владелец = Реквизит;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Если Владелец <> Неопределено Тогда
|
Для Каждого Владелец Из Владельцы Цикл
|
||||||
РазвернутьРеквизит(Владелец.ПолучитьИдентификатор(), ИмяСписка, Форма);
|
РазвернутьРеквизит(Владелец.ПолучитьИдентификатор(), ИмяСписка, Форма);
|
||||||
Возврат НайтиРеквизит(Форма, ИмяСписка, ПутьКДанным, Владелец.ПолучитьЭлементы(), ИскатьПоПредставлению);
|
НайденныйРеквизит = НайтиРеквизит(Форма, ИмяСписка, ПутьКДанным, Владелец.ПолучитьЭлементы(), ИскатьПоПредставлению);
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Для Каждого Папка Из Папки Цикл
|
|
||||||
РазвернутьРеквизит(Папка.ПолучитьИдентификатор(), ИмяСписка, Форма);
|
|
||||||
Реквизит = НайтиРеквизит(Форма, ИмяСписка, ПутьКДанным, Папка.ПолучитьЭлементы(), ИскатьПоПредставлению);
|
|
||||||
|
|
||||||
Если Реквизит <> Неопределено Тогда
|
Если НайденныйРеквизит <> Неопределено Тогда
|
||||||
Возврат Реквизит;
|
Возврат НайденныйРеквизит;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
|||||||
@@ -99,7 +99,7 @@
|
|||||||
// Проверка.Причины = НСтр("ru='Не введен комментарий в документе.'");
|
// Проверка.Причины = НСтр("ru='Не введен комментарий в документе.'");
|
||||||
// Проверка.Рекомендация = НСтр("ru='Ввести комментарий в документе.'");
|
// Проверка.Рекомендация = НСтр("ru='Ввести комментарий в документе.'");
|
||||||
// Проверка.Идентификатор = "ПроверитьКомментарийВПоступленииТоваров";
|
// Проверка.Идентификатор = "ПроверитьКомментарийВПоступленииТоваров";
|
||||||
// Проверка.ОбработчикПроверки = "_ДемоСтандартныеПодсистемы.ПроверитьКомментарийВПоступленииТоваров";
|
// Проверка.ОбработчикПроверки = "СтандартныеПодсистемы.ПроверитьКомментарийВПоступленииТоваров";
|
||||||
// Проверка.ДатаНачалаПроверки = Дата('20140101000000');
|
// Проверка.ДатаНачалаПроверки = Дата('20140101000000');
|
||||||
// Проверка.ЛимитПроблем = 3;
|
// Проверка.ЛимитПроблем = 3;
|
||||||
// 2) Добавление группы проверок
|
// 2) Добавление группы проверок
|
||||||
@@ -224,11 +224,11 @@
|
|||||||
// Пример:
|
// Пример:
|
||||||
// Проверка = Проверки.Добавить();
|
// Проверка = Проверки.Добавить();
|
||||||
// Проверка.ИдентификаторГруппы = "СистемныеПроверки";
|
// Проверка.ИдентификаторГруппы = "СистемныеПроверки";
|
||||||
// Проверка.Наименование = НСтр("ru='Демо: Проверка заполнения комментария в документах ""Демо: Поступление товаров""'");
|
// Проверка.Наименование = НСтр("ru='Проверка заполнения комментария в документах ""Поступление товаров""'");
|
||||||
// Проверка.Причины = НСтр("ru='Не введен комментарий в документе.'");
|
// Проверка.Причины = НСтр("ru='Не введен комментарий в документе.'");
|
||||||
// Проверка.Рекомендация = НСтр("ru='Ввести комментарий в документе.'");
|
// Проверка.Рекомендация = НСтр("ru='Ввести комментарий в документе.'");
|
||||||
// Проверка.Идентификатор = "ПроверитьКомментарийВПоступленииТоваров";
|
// Проверка.Идентификатор = "ПроверитьКомментарийВПоступленииТоваров";
|
||||||
// Проверка.ОбработчикПроверки = "_ДемоСтандартныеПодсистемы.ПроверитьКомментарийВПоступленииТоваров";
|
// Проверка.ОбработчикПроверки = "СтандартныеПодсистемы.ПроверитьКомментарийВПоступленииТоваров";
|
||||||
// Проверка.ДатаНачалаПроверки = Дата('20140101000000');
|
// Проверка.ДатаНачалаПроверки = Дата('20140101000000');
|
||||||
// Проверка.ЛимитПроблем = 3;
|
// Проверка.ЛимитПроблем = 3;
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -154,14 +154,14 @@
|
|||||||
Коллекции = Новый СписокЗначений;
|
Коллекции = Новый СписокЗначений;
|
||||||
Коллекции.Добавить("Роли");
|
Коллекции.Добавить("Роли");
|
||||||
|
|
||||||
ПараметрыПодбора = Новый Структура;
|
ПараметрыПодбора = СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных();
|
||||||
ПараметрыПодбора.Вставить("ВыбиратьСсылки", Истина);
|
ПараметрыПодбора.ВыбиратьСсылки = Истина;
|
||||||
ПараметрыПодбора.Вставить("ВыбранныеОбъектыМетаданных", Выбранные);
|
ПараметрыПодбора.ВыбранныеОбъектыМетаданных = Выбранные;
|
||||||
ПараметрыПодбора.Вставить("КоллекцииВыбираемыхОбъектовМетаданных", Коллекции);
|
ПараметрыПодбора.КоллекцииВыбираемыхОбъектовМетаданных = Коллекции;
|
||||||
ПараметрыПодбора.Вставить("СпособГруппировкиОбъектов", "ПоВидам");
|
ПараметрыПодбора.СпособГруппировкиОбъектов = "ПоВидам";
|
||||||
ПараметрыПодбора.Вставить("Заголовок", НСтр("ru = 'Подбор ролей'"));
|
ПараметрыПодбора.Заголовок = НСтр("ru = 'Подбор ролей'");
|
||||||
|
|
||||||
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыПодбора,,,,, ОповещениеОЗакрытии);
|
СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных(ПараметрыПодбора, ОповещениеОЗакрытии);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -173,6 +173,8 @@
|
|||||||
| МашиночитаемыеДоверенностиДоверители.ОГРН КАК ДоверительОГРН,
|
| МашиночитаемыеДоверенностиДоверители.ОГРН КАК ДоверительОГРН,
|
||||||
| МашиночитаемыеДоверенностиДоверители.СНИЛС КАК ДоверительСНИЛС,
|
| МашиночитаемыеДоверенностиДоверители.СНИЛС КАК ДоверительСНИЛС,
|
||||||
| МашиночитаемыеДоверенностиДоверители.КПП КАК ДоверительКПП,
|
| МашиночитаемыеДоверенностиДоверители.КПП КАК ДоверительКПП,
|
||||||
|
| МашиночитаемыеДоверенностиДоверители.ФИО КАК ДоверительФИО,
|
||||||
|
| МашиночитаемыеДоверенностиПредставители.ФИО КАК ПредставительФИО,
|
||||||
| МашиночитаемыеДоверенностиДоверители.Организация КАК ДоверительОрганизация,
|
| МашиночитаемыеДоверенностиДоверители.Организация КАК ДоверительОрганизация,
|
||||||
| МашиночитаемыеДоверенностиДоверители.ФизическоеЛицо КАК ДоверительФизическоеЛицо,
|
| МашиночитаемыеДоверенностиДоверители.ФизическоеЛицо КАК ДоверительФизическоеЛицо,
|
||||||
| МашиночитаемыеДоверенностиДоверители.НаименованиеОрганизации КАК ДоверительНаименованиеОрганизации,
|
| МашиночитаемыеДоверенностиДоверители.НаименованиеОрганизации КАК ДоверительНаименованиеОрганизации,
|
||||||
@@ -185,18 +187,21 @@
|
|||||||
| МашиночитаемыеДоверенностиСтатусы.Подписана КАК Подписана,
|
| МашиночитаемыеДоверенностиСтатусы.Подписана КАК Подписана,
|
||||||
| МашиночитаемыеДоверенности.ДатаОкончания КАК ДатаОкончания,
|
| МашиночитаемыеДоверенности.ДатаОкончания КАК ДатаОкончания,
|
||||||
| МашиночитаемыеДоверенности.ДатаОтмены КАК ДатаОтмены,
|
| МашиночитаемыеДоверенности.ДатаОтмены КАК ДатаОтмены,
|
||||||
| МашиночитаемыеДоверенности.ПометкаУдаления КАК ПометкаУдаления
|
| МашиночитаемыеДоверенности.ПометкаУдаления КАК ПометкаУдаления,
|
||||||
|
| МашиночитаемыеДоверенности.СтатусВернаУстановленВручную,
|
||||||
|
| МашиночитаемыеДоверенности.УстановившийСтатусВерна
|
||||||
|ИЗ
|
|ИЗ
|
||||||
| РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставители
|
| РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставители
|
||||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиДоверители
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||||
|
| МашиночитаемыеДоверенностиДоверители
|
||||||
| ПО (МашиночитаемыеДоверенностиПредставители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель))
|
| ПО (МашиночитаемыеДоверенностиПредставители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель))
|
||||||
| И (МашиночитаемыеДоверенностиДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель))
|
| И (МашиночитаемыеДоверенностиДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель))
|
||||||
| И (МашиночитаемыеДоверенностиДоверители.МашиночитаемаяДоверенность = МашиночитаемыеДоверенностиПредставители.МашиночитаемаяДоверенность)
|
| И
|
||||||
|
| (МашиночитаемыеДоверенностиДоверители.МашиночитаемаяДоверенность = МашиночитаемыеДоверенностиПредставители.МашиночитаемаяДоверенность)
|
||||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.МашиночитаемыеДоверенности КАК МашиночитаемыеДоверенности
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.МашиночитаемыеДоверенности КАК МашиночитаемыеДоверенности
|
||||||
| ПО МашиночитаемыеДоверенностиПредставители.МашиночитаемаяДоверенность = МашиночитаемыеДоверенности.Ссылка
|
| ПО МашиночитаемыеДоверенностиПредставители.МашиночитаемаяДоверенность = МашиночитаемыеДоверенности.Ссылка
|
||||||
| {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МашиночитаемыеДоверенностиСтатусы КАК МашиночитаемыеДоверенностиСтатусы
|
| {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МашиночитаемыеДоверенностиСтатусы КАК МашиночитаемыеДоверенностиСтатусы
|
||||||
| ПО (МашиночитаемыеДоверенности.Ссылка = МашиночитаемыеДоверенностиСтатусы.МашиночитаемаяДоверенность)}
|
| ПО (МашиночитаемыеДоверенности.Ссылка = МашиночитаемыеДоверенностиСтатусы.МашиночитаемаяДоверенность)}";
|
||||||
|";
|
|
||||||
|
|
||||||
Условия = Новый Массив;
|
Условия = Новый Массив;
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
// * Полномочия - Массив из Строка - коды полномочий
|
// * Полномочия - Массив из Строка - коды полномочий
|
||||||
// * СертификатДоверителя - см. МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату
|
// * СертификатДоверителя - см. МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату
|
||||||
// * СертификатПредставителя - см. МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату
|
// * СертификатПредставителя - см. МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату
|
||||||
|
// * НаДату - Дата - статусы отобразятся на переданную дату.
|
||||||
//
|
//
|
||||||
Функция ОтборыСпискаДоверенностей() Экспорт
|
Функция ОтборыСпискаДоверенностей() Экспорт
|
||||||
Результат = Новый Структура;
|
Результат = Новый Структура;
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
Результат.Вставить("Полномочия");
|
Результат.Вставить("Полномочия");
|
||||||
Результат.Вставить("СертификатДоверителя");
|
Результат.Вставить("СертификатДоверителя");
|
||||||
Результат.Вставить("СертификатПредставителя");
|
Результат.Вставить("СертификатПредставителя");
|
||||||
|
Результат.Вставить("НаДату");
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -733,6 +733,82 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Создает новые либо перезаполняет существующие элементы справочника МашиночитаемыеДоверенности данными из файлов.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ЗагруженныеФайлы - Массив из Структура - файлы доверенностей и подписей, архивы zip:
|
||||||
|
// * ИмяФайла - Строка - имя файла без пути к нему,
|
||||||
|
// * Хранение - Строка - адрес двоичных данных файла во временном хранилище.
|
||||||
|
// - Структура - уже разобранные файлы доверенностей и подписей:
|
||||||
|
// * ФайлыДоверенностей - Соответствие
|
||||||
|
// * ПодписиФайлов - Соответствие
|
||||||
|
//
|
||||||
|
// Замещать - Булево - при замещении выполняется перезаполнение элемента, все имеющиеся присоединенные файлы при этом
|
||||||
|
// помечаются на удаление.
|
||||||
|
//
|
||||||
|
Функция ЗагрузитьДоверенностиВИнформационнуюБазу(ЗагруженныеФайлы, Замещать = Ложь) Экспорт
|
||||||
|
|
||||||
|
Возврат Справочники.МашиночитаемыеДоверенности.ЗагрузитьДоверенностиВИнформационнуюБазу(ЗагруженныеФайлы, Замещать = Ложь);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращает свойства или ссылку на существующие элементы справочника МашиночитаемыеДоверенности.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ЗагруженныеФайлы - Массив из Структура - файлы доверенностей и подписей, архивы zip:
|
||||||
|
// * ИмяФайла - Строка - имя файла без пути к нему,
|
||||||
|
// * Хранение - Строка - адрес двоичных данных файла во временном хранилище.
|
||||||
|
// - Структура - уже разобранные файлы доверенностей и подписей:
|
||||||
|
// * ФайлыДоверенностей - Соответствие
|
||||||
|
// * ПодписиФайлов - Соответствие
|
||||||
|
//
|
||||||
|
Функция СвойстваДоверенностейИзФайлов(ЗагруженныеФайлы, УникальныйИдентификатор) Экспорт
|
||||||
|
|
||||||
|
Возврат Справочники.МашиночитаемыеДоверенности.СвойстваДоверенностейИзФайлов(ЗагруженныеФайлы,
|
||||||
|
УникальныйИдентификатор);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Результат проверки подписи по МЧД.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Доверенность - СправочникСсылка.МашиночитаемыеДоверенности
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура:
|
||||||
|
// * МашиночитаемаяДоверенность - СправочникСсылка.МашиночитаемыеДоверенности
|
||||||
|
// * Представление - Строка - представление доверенности для отображения пользователям, т.к. может не быть прав на чтение.
|
||||||
|
// * ТребуетсяПроверка - Булево
|
||||||
|
// * ДатаПроверки - Дата
|
||||||
|
// * Верна - Булево
|
||||||
|
// * ПодписантСоответствуетПредставителю - Булево
|
||||||
|
// * СовместныеПолномочия - Булево
|
||||||
|
// * СовместныеПолномочияВерны - Булево
|
||||||
|
// * СтатусВернаУстановленВручную - Булево
|
||||||
|
// * УстановившийСтатусВерна - СправочникСсылка.Пользователи
|
||||||
|
// * ПротоколПроверки - Соответствие из КлючИЗначение:
|
||||||
|
// ** Ключ - Строка - идентификатор проверки
|
||||||
|
// ** Значение - см. МашиночитаемыеДоверенностиФНС.РезультатПроверкиДляПротокола
|
||||||
|
//
|
||||||
|
Функция НовыйРезультатПроверкиПодписиПоМЧД(Доверенность) Экспорт
|
||||||
|
|
||||||
|
Структура = Новый Структура;
|
||||||
|
Структура.Вставить("Представление");
|
||||||
|
Структура.Вставить("МашиночитаемаяДоверенность", Доверенность);
|
||||||
|
Структура.Вставить("ТребуетсяПроверка", Истина);
|
||||||
|
Структура.Вставить("ДатаПроверки");
|
||||||
|
Структура.Вставить("Верна");
|
||||||
|
Структура.Вставить("ПодписантСоответствуетПредставителю");
|
||||||
|
Структура.Вставить("СовместныеПолномочия");
|
||||||
|
Структура.Вставить("СовместныеПолномочияВерны");
|
||||||
|
Структура.Вставить("ПротоколПроверки");
|
||||||
|
Структура.Вставить("СтатусВернаУстановленВручную", Ложь);
|
||||||
|
Структура.Вставить("УстановившийСтатусВерна");
|
||||||
|
|
||||||
|
Возврат Структура;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@@ -2539,46 +2615,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Результат проверки подписи по МЧД.
|
|
||||||
//
|
|
||||||
// Параметры:
|
|
||||||
// Доверенность - СправочникСсылка.МашиночитаемыеДоверенности
|
|
||||||
//
|
|
||||||
// Возвращаемое значение:
|
|
||||||
// Структура:
|
|
||||||
// * МашиночитаемаяДоверенность - СправочникСсылка.МашиночитаемыеДоверенности
|
|
||||||
// * Представление - Строка - представление доверенности для отображения пользователям, т.к. может не быть прав на чтение.
|
|
||||||
// * ТребуетсяПроверка - Булево
|
|
||||||
// * ДатаПроверки - Дата
|
|
||||||
// * Верна - Булево
|
|
||||||
// * ПодписантСоответствуетПредставителю - Булево
|
|
||||||
// * СовместныеПолномочия - Булево
|
|
||||||
// * СовместныеПолномочияВерны - Булево
|
|
||||||
// * СтатусВернаУстановленВручную - Булево
|
|
||||||
// * УстановившийСтатусВерна - СправочникСсылка.Пользователи
|
|
||||||
// * ПротоколПроверки - Соответствие из КлючИЗначение:
|
|
||||||
// ** Ключ - Строка - идентификатор проверки
|
|
||||||
// ** Значение - см. МашиночитаемыеДоверенностиФНС.РезультатПроверкиДляПротокола
|
|
||||||
//
|
|
||||||
Функция НовыйРезультатПроверкиПодписиПоМЧД(Доверенность) Экспорт
|
|
||||||
|
|
||||||
Структура = Новый Структура;
|
|
||||||
Структура.Вставить("Представление");
|
|
||||||
Структура.Вставить("МашиночитаемаяДоверенность", Доверенность);
|
|
||||||
Структура.Вставить("ТребуетсяПроверка", Истина);
|
|
||||||
Структура.Вставить("ДатаПроверки");
|
|
||||||
Структура.Вставить("Верна");
|
|
||||||
Структура.Вставить("ПодписантСоответствуетПредставителю");
|
|
||||||
Структура.Вставить("СовместныеПолномочия");
|
|
||||||
Структура.Вставить("СовместныеПолномочияВерны");
|
|
||||||
Структура.Вставить("ПротоколПроверки");
|
|
||||||
Структура.Вставить("СтатусВернаУстановленВручную", Ложь);
|
|
||||||
Структура.Вставить("УстановившийСтатусВерна");
|
|
||||||
|
|
||||||
Возврат Структура;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция РеквизитыНотариальнойДоверенности() Экспорт
|
Функция РеквизитыНотариальнойДоверенности() Экспорт
|
||||||
|
|
||||||
Структура = Новый Структура;
|
Структура = Новый Структура;
|
||||||
@@ -2638,7 +2674,7 @@
|
|||||||
Файл = Новый Файл(ЗагруженныйФайл.ИмяФайла);
|
Файл = Новый Файл(ЗагруженныйФайл.ИмяФайла);
|
||||||
|
|
||||||
Если НРег(Файл.Расширение) = ".zip" Тогда
|
Если НРег(Файл.Расширение) = ".zip" Тогда
|
||||||
ДвоичныеДанные = Новый ДвоичныеДанные(ЗагруженныйФайл.ПолноеИмя);
|
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ЗагруженныйФайл.Хранение);
|
||||||
ИменаФайловВАрхиве = ИменаФайловВАрхиве(ДвоичныеДанные);
|
ИменаФайловВАрхиве = ИменаФайловВАрхиве(ДвоичныеДанные);
|
||||||
|
|
||||||
Для Каждого ИмяФайлаВАрхиве Из ИменаФайловВАрхиве Цикл
|
Для Каждого ИмяФайлаВАрхиве Из ИменаФайловВАрхиве Цикл
|
||||||
|
|||||||
@@ -13776,7 +13776,7 @@
|
|||||||
// Массив = Новый Массив;
|
// Массив = Новый Массив;
|
||||||
// Массив.Добавить("Константа.ИспользоватьСинхронизациюДанных");
|
// Массив.Добавить("Константа.ИспользоватьСинхронизациюДанных");
|
||||||
// Массив.Добавить("Справочник.Валюты");
|
// Массив.Добавить("Справочник.Валюты");
|
||||||
// Массив.Добавить("Справочник._ДемоОрганизации");
|
// Массив.Добавить("Справочник.Организации");
|
||||||
// Отбор = Новый Структура;
|
// Отбор = Новый Структура;
|
||||||
// Отбор.Вставить("ПолноеИмя", Массив);
|
// Отбор.Вставить("ПолноеИмя", Массив);
|
||||||
//
|
//
|
||||||
@@ -14017,7 +14017,7 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// ТаблицаЗначений - содержит строки с описанием подробных отборов по сценарию узла:
|
// ТаблицаЗначений - содержит строки с описанием подробных отборов по сценарию узла:
|
||||||
// * ПолноеИмяМетаданных - Строка - полное имя метаданных регистрируемого объекта, отбор которого описывает строка.
|
// * ПолноеИмяМетаданных - Строка - полное имя метаданных регистрируемого объекта, отбор которого описывает строка.
|
||||||
// Например "Документ._ДемоПоступлениеТоваров". Можно
|
// Например "Документ.ПоступлениеТоваров". Можно
|
||||||
// использовать специальные значения "ВсеДокументы" и
|
// использовать специальные значения "ВсеДокументы" и
|
||||||
// "ВсеСправочники" для отбора соответственно всех
|
// "ВсеСправочники" для отбора соответственно всех
|
||||||
// документов и всех справочников, регистрирующихся на узле "Получатель".
|
// документов и всех справочников, регистрирующихся на узле "Получатель".
|
||||||
|
|||||||
@@ -3849,7 +3849,7 @@
|
|||||||
// Либо точка маршрута, например, "БизнесПроцесс.Задание.ТочкаМаршрута.УдалитьВернутьИсполнителю".
|
// Либо точка маршрута, например, "БизнесПроцесс.Задание.ТочкаМаршрута.УдалитьВернутьИсполнителю".
|
||||||
// Либо все точки маршрута, например, "БизнесПроцесс.Задание.Точки".
|
// Либо все точки маршрута, например, "БизнесПроцесс.Задание.Точки".
|
||||||
// Либо поле регистра, входящее в уникальный индекс,
|
// Либо поле регистра, входящее в уникальный индекс,
|
||||||
// например, измерение "РегистрСведений._ДемоОтветственныеЛица.Склад".
|
// например, измерение "РегистрСведений.ОтветственныеЛица.Склад".
|
||||||
//
|
//
|
||||||
// Уточнение - Булево - когда в параметре Объект указан удаляемый в будущем объект.
|
// Уточнение - Булево - когда в параметре Объект указан удаляемый в будущем объект.
|
||||||
// Имя объекта должно начинаться с Удалить.
|
// Имя объекта должно начинаться с Удалить.
|
||||||
@@ -4288,7 +4288,9 @@
|
|||||||
СведенияОбОбновлении.ТекущаяИтерацияОбновления = 1;
|
СведенияОбОбновлении.ТекущаяИтерацияОбновления = 1;
|
||||||
ОбновлениеИнформационнойБазыСлужебный.ЗаписатьСведенияОбОбновленииИнформационнойБазы(СведенияОбОбновлении);
|
ОбновлениеИнформационнойБазыСлужебный.ЗаписатьСведенияОбОбновленииИнформационнойБазы(СведенияОбОбновлении);
|
||||||
|
|
||||||
Константы.ПорядокОбрабатываемыхДанных.Установить(Перечисления.ПорядокОбработчиковОбновления.Критичный);
|
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
|
||||||
|
Константы.ПорядокОбрабатываемыхДанных.Установить(Перечисления.ПорядокОбработчиковОбновления.Критичный);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Константы.ОтложенноеОбновлениеЗавершеноУспешно.Установить(Ложь);
|
Константы.ОтложенноеОбновлениеЗавершеноУспешно.Установить(Ложь);
|
||||||
Если Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
|
Если Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||||
|
|
||||||
Описание.Имя = "СтандартныеПодсистемы";
|
Описание.Имя = "СтандартныеПодсистемы";
|
||||||
Описание.Версия = "3.1.10.226";
|
Описание.Версия = "3.1.10.248";
|
||||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||||
|
|||||||
@@ -1608,8 +1608,8 @@
|
|||||||
// "<ВидОМ>.<ИмяОМ>.<ТипРеквизитаИлиТЧ>.<ИмяРеквизитаИлиТЧ>[.<ТипРеквизита>.<ИмяРеквизитаТЧ>]".
|
// "<ВидОМ>.<ИмяОМ>.<ТипРеквизитаИлиТЧ>.<ИмяРеквизитаИлиТЧ>[.<ТипРеквизита>.<ИмяРеквизитаТЧ>]".
|
||||||
// Примеры:
|
// Примеры:
|
||||||
// "РегистрСведений.ВерсииОбъектов.Реквизит.АвторВерсии",
|
// "РегистрСведений.ВерсииОбъектов.Реквизит.АвторВерсии",
|
||||||
// "Документ._ДемоЗаказПокупателя.ТабличнаяЧасть.СчетаНаОплату.Реквизит.Счет",
|
// "Документ.ЗаказПокупателя.ТабличнаяЧасть.СчетаНаОплату.Реквизит.Счет",
|
||||||
// "ПланВидовРасчета._ДемоОсновныеНачисления.СтандартнаяТабличнаяЧасть.БазовыеВидыРасчета.СтандартныйРеквизит.ВидРасчета".
|
// "ПланВидовРасчета.ОсновныеНачисления.СтандартнаяТабличнаяЧасть.БазовыеВидыРасчета.СтандартныйРеквизит.ВидРасчета".
|
||||||
// Относительный путь к реквизиту должен получиться таким, чтобы его можно было использовать в условиях запроса:
|
// Относительный путь к реквизиту должен получиться таким, чтобы его можно было использовать в условиях запроса:
|
||||||
// "<ИмяРеквизитаИлиТЧ>[.<ИмяРеквизитаТЧ>]".
|
// "<ИмяРеквизитаИлиТЧ>[.<ИмяРеквизитаТЧ>]".
|
||||||
Если КоличествоПодстрок = 4 Тогда
|
Если КоличествоПодстрок = 4 Тогда
|
||||||
@@ -2017,8 +2017,9 @@
|
|||||||
Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт
|
Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт
|
||||||
|
|
||||||
Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда
|
Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда
|
||||||
СтрокаСоединенияИнформационнойБазы = СтрокаСоединенияИнформационнойБазы();
|
Возврат СтандартныеПодсистемыПовтИсп.ИнформационнаяБазаФайловая();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат СтрНайти(ВРег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
|
Возврат СтрНайти(ВРег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -4517,17 +4518,17 @@
|
|||||||
// ВерсияИБ - Строка - версия конечной конфигурации, при переходе на которую нужно
|
// ВерсияИБ - Строка - версия конечной конфигурации, при переходе на которую нужно
|
||||||
// выполнить переименование, например, "2.1.2.14".
|
// выполнить переименование, например, "2.1.2.14".
|
||||||
// СтароеПолноеИмя - Строка - старое полное имя объекта метаданных, которое нужно переименовать,
|
// СтароеПолноеИмя - Строка - старое полное имя объекта метаданных, которое нужно переименовать,
|
||||||
// например "Подсистема._ДемоПодсистемы".
|
// например "Подсистема.СлужебныеПодсистемы".
|
||||||
// НовоеПолноеИмя - Строка - новое полное имя объекта метаданных, на которое нужно переименовать,
|
// НовоеПолноеИмя - Строка - новое полное имя объекта метаданных, на которое нужно переименовать,
|
||||||
// например "Подсистема._ДемоСервисныеПодсистемы".
|
// например "Подсистема.СервисныеПодсистемы".
|
||||||
// ИдентификаторБиблиотеки - Строка - внутренний идентификатор библиотеки, к которой относится ВерсияИБ.
|
// ИдентификаторБиблиотеки - Строка - внутренний идентификатор библиотеки, к которой относится ВерсияИБ.
|
||||||
// Для основной конфигурации не требуется.
|
// Для основной конфигурации не требуется.
|
||||||
// Например, "СтандартныеПодсистемы" - как указано
|
// Например, "СтандартныеПодсистемы" - как указано
|
||||||
// в ОбновлениеИнформационнойБазыБСП.ПриДобавленииПодсистемы.
|
// в ОбновлениеИнформационнойБазыБСП.ПриДобавленииПодсистемы.
|
||||||
// Пример:
|
// Пример:
|
||||||
// ОбщегоНазначения.ДобавитьПереименование(Итог, "2.1.2.14",
|
// ОбщегоНазначения.ДобавитьПереименование(Итог, "2.1.2.14",
|
||||||
// "Подсистема._ДемоПодсистемы",
|
// "Подсистема.СлужебныеПодсистемы",
|
||||||
// "Подсистема._ДемоСервисныеПодсистемы");
|
// "Подсистема.СервисныеПодсистемы");
|
||||||
//
|
//
|
||||||
Процедура ДобавитьПереименование(Итог, ВерсияИБ, СтароеПолноеИмя, НовоеПолноеИмя, ИдентификаторБиблиотеки = "") Экспорт
|
Процедура ДобавитьПереименование(Итог, ВерсияИБ, СтароеПолноеИмя, НовоеПолноеИмя, ИдентификаторБиблиотеки = "") Экспорт
|
||||||
|
|
||||||
@@ -7041,7 +7042,7 @@
|
|||||||
// Реквизиты.Добавить("Номер");
|
// Реквизиты.Добавить("Номер");
|
||||||
// Реквизиты.Добавить("Валюта.НаименованиеПолное");
|
// Реквизиты.Добавить("Валюта.НаименованиеПолное");
|
||||||
//
|
//
|
||||||
// Результат = ОбщегоНазначения.ПроверитьСуществованиеРеквизитовОбъекта("Документ._ДемоЗаказПокупателя", Реквизиты);
|
// Результат = ОбщегоНазначения.ПроверитьСуществованиеРеквизитовОбъекта("Документ.ЗаказПокупателя", Реквизиты);
|
||||||
//
|
//
|
||||||
// Если Результат.Ошибка Тогда
|
// Если Результат.Ошибка Тогда
|
||||||
// ВызватьИсключение Результат.ОписаниеОшибки;
|
// ВызватьИсключение Результат.ОписаниеОшибки;
|
||||||
|
|||||||
@@ -1897,9 +1897,8 @@
|
|||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Проверяем наличие спецсимволов в начале и в конце домена.
|
// Проверяем наличие спецсимволов в начале и в конце имени и домена.
|
||||||
|
Если ЕстьСимволыВНачалеВКонце(ЛокальноеИмя, ".") Или ЕстьСимволыВНачалеВКонце(Домен, СпецСимволы) Тогда
|
||||||
Если ЕстьСимволыВНачалеВКонце(Домен, СпецСимволы) Тогда
|
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
@@ -181,7 +181,7 @@
|
|||||||
// Пример:
|
// Пример:
|
||||||
// ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ВерсииОбъектов);
|
// ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ВерсииОбъектов);
|
||||||
// ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ВерсииОбъектов.Измерения.Объект);
|
// ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.ВерсииОбъектов.Измерения.Объект);
|
||||||
// ИсключенияПоискаСсылок.Добавить("ПланВидовРасчета._ДемоОсновныеНачисления.СтандартнаяТабличнаяЧасть.БазовыеВидыРасчета.СтандартныйРеквизит.ВидРасчета");
|
// ИсключенияПоискаСсылок.Добавить("ПланВидовРасчета.ОсновныеНачисления.СтандартнаяТабличнаяЧасть.БазовыеВидыРасчета.СтандартныйРеквизит.ВидРасчета");
|
||||||
//
|
//
|
||||||
Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт
|
Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт
|
||||||
|
|
||||||
@@ -249,8 +249,8 @@
|
|||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// ОбщегоНазначения.ДобавитьПереименование(Итог, "2.1.2.14",
|
// ОбщегоНазначения.ДобавитьПереименование(Итог, "2.1.2.14",
|
||||||
// "Подсистема._ДемоПодсистемы",
|
// "Подсистема.СлужебныеПодсистемы",
|
||||||
// "Подсистема._ДемоСервисныеПодсистемы");
|
// "Подсистема.СервисныеПодсистемы");
|
||||||
//
|
//
|
||||||
Процедура ПриДобавленииПереименованийОбъектовМетаданных(Итог) Экспорт
|
Процедура ПриДобавленииПереименованийОбъектовМетаданных(Итог) Экспорт
|
||||||
|
|
||||||
|
|||||||
@@ -32,49 +32,41 @@
|
|||||||
// Запрос.УстановитьПараметр("Ссылка", Организация);
|
// Запрос.УстановитьПараметр("Ссылка", Организация);
|
||||||
// Запрос.Текст =
|
// Запрос.Текст =
|
||||||
// "ВЫБРАТЬ
|
// "ВЫБРАТЬ
|
||||||
// | _ДемоОрганизации.Ссылка КАК Ссылка,
|
// | Организации.Ссылка КАК Ссылка,
|
||||||
// | _ДемоОрганизации.ВерсияДанных КАК ВерсияДанных,
|
// | Организации.ВерсияДанных КАК ВерсияДанных,
|
||||||
// | _ДемоОрганизации.ПометкаУдаления КАК ПометкаУдаления,
|
// | Организации.ПометкаУдаления КАК ПометкаУдаления,
|
||||||
// | _ДемоОрганизации.Код КАК Код,
|
// | Организации.Код КАК Код,
|
||||||
// | _ДемоОрганизации.Наименование КАК Наименование,
|
// | Организации.Наименование КАК Наименование,
|
||||||
// | _ДемоОрганизации.БИК КАК БИК,
|
// | Организации.БИК КАК БИК,
|
||||||
// | _ДемоОрганизации.ГлавныйБухгалтер КАК ГлавныйБухгалтер,
|
// | Организации.ГлавныйБухгалтер КАК ГлавныйБухгалтер,
|
||||||
// | _ДемоОрганизации.Директор КАК Директор,
|
// | Организации.Директор КАК Директор,
|
||||||
// | _ДемоОрганизации.ИндивидуальныйПредприниматель КАК ИндивидуальныйПредприниматель,
|
// | Организации.ИндивидуальныйПредприниматель КАК ИндивидуальныйПредприниматель,
|
||||||
// | _ДемоОрганизации.ИНН КАК ИНН,
|
// | Организации.ИНН КАК ИНН,
|
||||||
// | _ДемоОрганизации.ИнформационноеОбслуживание КАК ИнформационноеОбслуживание,
|
// | Организации.ИнформационноеОбслуживание КАК ИнформационноеОбслуживание,
|
||||||
// | _ДемоОрганизации.КорреспондентскийСчет КАК КорреспондентскийСчет,
|
// | Организации.КорреспондентскийСчет КАК КорреспондентскийСчет,
|
||||||
// | _ДемоОрганизации.КПП КАК КПП,
|
// | Организации.КПП КАК КПП,
|
||||||
// | _ДемоОрганизации.НаименованиеПолное КАК НаименованиеПолное,
|
// | Организации.НаименованиеПолное КАК НаименованиеПолное,
|
||||||
// | _ДемоОрганизации.НаименованиеСокращенное КАК НаименованиеСокращенное,
|
// | Организации.НаименованиеСокращенное КАК НаименованиеСокращенное,
|
||||||
// | _ДемоОрганизации.ОГРН КАК ОГРН,
|
// | Организации.ОГРН КАК ОГРН,
|
||||||
// | _ДемоОрганизации.Префикс КАК Префикс,
|
// | Организации.Префикс КАК Префикс,
|
||||||
// | _ДемоОрганизации.РасчетныйСчет КАК РасчетныйСчет,
|
// | Организации.РасчетныйСчет КАК РасчетныйСчет,
|
||||||
// | _ДемоОрганизации.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
|
// | Организации.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
|
||||||
// | _ДемоОрганизации.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
|
// | Организации.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
|
||||||
// | _ДемоОрганизации.Предопределенный КАК Предопределенный,
|
// | Организации.Предопределенный КАК Предопределенный,
|
||||||
// | _ДемоОрганизации.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|
// | Организации.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|
||||||
// |ИЗ
|
// |ИЗ
|
||||||
// | Справочник._ДемоОрганизации КАК _ДемоОрганизации
|
// | Справочник.Организации КАК Организации
|
||||||
// |ГДЕ
|
// |ГДЕ
|
||||||
// | _ДемоОрганизации.Ссылка = &Ссылка";
|
// | Организации.Ссылка = &Ссылка";
|
||||||
//
|
//
|
||||||
// РезультатЗапроса = Запрос.Выполнить();
|
// РезультатЗапроса = Запрос.Выполнить();
|
||||||
//
|
|
||||||
// ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
// ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||||
//
|
|
||||||
// Если ВыборкаДетальныеЗаписи.Следующий() Тогда
|
// Если ВыборкаДетальныеЗаписи.Следующий() Тогда
|
||||||
//
|
|
||||||
// Для каждого Элемент Из СвойстваОрганизации Цикл
|
// Для каждого Элемент Из СвойстваОрганизации Цикл
|
||||||
//
|
|
||||||
// Если РезультатЗапроса.Колонки.Найти(Элемент) <> Неопределено Тогда
|
// Если РезультатЗапроса.Колонки.Найти(Элемент) <> Неопределено Тогда
|
||||||
//
|
|
||||||
// РегистрационныеДанные.Вставить(Элемент, ВыборкаДетальныеЗаписи[Элемент]);
|
// РегистрационныеДанные.Вставить(Элемент, ВыборкаДетальныеЗаписи[Элемент]);
|
||||||
//
|
|
||||||
// КонецЕсли;
|
// КонецЕсли;
|
||||||
//
|
|
||||||
// КонецЦикла;
|
// КонецЦикла;
|
||||||
//
|
|
||||||
// КонецЕсли;
|
// КонецЕсли;
|
||||||
//
|
//
|
||||||
Процедура ПриОпределенииРегистрационныхДанныхОрганизации(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт
|
Процедура ПриОпределенииРегистрационныхДанныхОрганизации(Организация, Поля, Дата, РегистрационныеДанные, КодЯзыка) Экспорт
|
||||||
|
|||||||
@@ -651,12 +651,12 @@
|
|||||||
Если ЭтоВыборОбъектовМетаданных Тогда
|
Если ЭтоВыборОбъектовМетаданных Тогда
|
||||||
ПроверитьОтмеченныеЗначения(ОтмеченныеЗначения, ДоступныеТипы);
|
ПроверитьОтмеченныеЗначения(ОтмеченныеЗначения, ДоступныеТипы);
|
||||||
|
|
||||||
ПараметрыПодбора = Новый Структура;
|
ПараметрыПодбора = СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных();
|
||||||
ПараметрыПодбора.Вставить("ВыбранныеОбъектыМетаданных", ОтмеченныеЗначения);
|
ПараметрыПодбора.ВыбранныеОбъектыМетаданных = ОтмеченныеЗначения;
|
||||||
ПараметрыПодбора.Вставить("ВыбиратьСсылки", Истина);
|
ПараметрыПодбора.ВыбиратьСсылки = Истина;
|
||||||
ПараметрыПодбора.Вставить("Заголовок", НСтр("ru = 'Подбор таблиц'"));
|
ПараметрыПодбора.Заголовок = НСтр("ru = 'Подбор таблиц'");
|
||||||
|
|
||||||
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыПодбора,,,,, Обработчик);
|
СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных(ПараметрыПодбора, Обработчик);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ЭтоВыборОбъектовМетаданных;
|
Возврат ЭтоВыборОбъектовМетаданных;
|
||||||
|
|||||||
@@ -160,7 +160,7 @@
|
|||||||
// &НаКлиенте
|
// &НаКлиенте
|
||||||
// Процедура ПослеЗаписи(ПараметрыЗаписи)
|
// Процедура ПослеЗаписи(ПараметрыЗаписи)
|
||||||
// Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
|
// Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
|
||||||
// ОценкаПроизводительностиКлиент.УстановитьКлючевуюОперациюЗамера(ИдентификаторЗамераПроведение, "_ДемоПроведениеДокумента");
|
// ОценкаПроизводительностиКлиент.УстановитьКлючевуюОперациюЗамера(ИдентификаторЗамераПроведение, "ПроведениеДокумента");
|
||||||
// КонецЕсли;
|
// КонецЕсли;
|
||||||
// КонецПроцедуры
|
// КонецПроцедуры
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -66,14 +66,17 @@
|
|||||||
|
|
||||||
// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий
|
// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий
|
||||||
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
|
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
|
||||||
Зависимость = Настройки.Добавить();
|
|
||||||
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ЭкспортОценкиПроизводительности;
|
Настройка = Настройки.Добавить();
|
||||||
Зависимость.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ВыполнятьЗамерыПроизводительности;
|
Настройка.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ЭкспортОценкиПроизводительности;
|
||||||
Зависимость.РаботаетСВнешнимиРесурсами = Истина;
|
Настройка.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ВыполнятьЗамерыПроизводительности;
|
||||||
Зависимость = Настройки.Добавить();
|
Настройка.РаботаетСВнешнимиРесурсами = Истина;
|
||||||
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ОчисткаЗамеровВремени;
|
Настройка.Параметризуется = Истина;
|
||||||
Зависимость.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ВыполнятьЗамерыПроизводительности;
|
|
||||||
Зависимость.РаботаетСВнешнимиРесурсами = Истина;
|
Настройка = Настройки.Добавить();
|
||||||
|
Настройка.РегламентноеЗадание = Метаданные.РегламентныеЗадания.ОчисткаЗамеровВремени;
|
||||||
|
Настройка.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ВыполнятьЗамерыПроизводительности;
|
||||||
|
Настройка.РаботаетСВнешнимиРесурсами = Истина;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.
|
// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.
|
||||||
|
|||||||
@@ -67,6 +67,14 @@
|
|||||||
Если ЕстьПараметрыСписка <> ЕстьПараметрыОбъекта Тогда
|
Если ЕстьПараметрыСписка <> ЕстьПараметрыОбъекта Тогда
|
||||||
ЭтоФормаОбъекта = ЕстьПараметрыОбъекта;
|
ЭтоФормаОбъекта = ЕстьПараметрыОбъекта;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЭтоФормаОбъекта = Неопределено Тогда
|
||||||
|
РеквизитыФормы = Форма.ПолучитьРеквизиты();
|
||||||
|
Если РеквизитыФормы.Количество() > 0 И РеквизитыФормы[0].ТипЗначения = Новый ОписаниеТипов("ДинамическийСписок") Тогда
|
||||||
|
ЭтоФормаОбъекта = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
// Для форм внешних отчетов и обработок невозможно получить метаданные имея только имя формы,
|
// Для форм внешних отчетов и обработок невозможно получить метаданные имея только имя формы,
|
||||||
// поэтому определение источников команд выполняется до вызова ПовтИсп.
|
// поэтому определение источников команд выполняется до вызова ПовтИсп.
|
||||||
Если ИсточникиЧерезЗапятую = "" И ТребуетсяУказаниеИсточниковКоманд(ИмяФормы) Тогда
|
Если ИсточникиЧерезЗапятую = "" И ТребуетсяУказаниеИсточниковКоманд(ИмяФормы) Тогда
|
||||||
@@ -1048,11 +1056,16 @@
|
|||||||
Функция КлючПараметровРазмещения(Знач ПараметрыРазмещения)
|
Функция КлючПараметровРазмещения(Знач ПараметрыРазмещения)
|
||||||
|
|
||||||
ПараметрыРазмещения = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыРазмещения);
|
ПараметрыРазмещения = ОбщегоНазначения.СкопироватьРекурсивно(ПараметрыРазмещения);
|
||||||
|
ПараметрыРазмещения.Удалить("ЭтоФормаОбъекта");
|
||||||
|
|
||||||
ГруппаФормы = ПараметрыРазмещения.КоманднаяПанель;
|
ГруппаФормы = ПараметрыРазмещения.КоманднаяПанель;
|
||||||
|
|
||||||
Если ТипЗнч(ГруппаФормы) = Тип("ГруппаФормы") Тогда
|
Если ТипЗнч(ГруппаФормы) = Тип("ГруппаФормы") Тогда
|
||||||
ПараметрыРазмещения.КоманднаяПанель = ГруппаФормы.Имя;
|
ПараметрыРазмещения.КоманднаяПанель = ГруппаФормы.Имя;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Источники = Новый Массив;
|
Источники = Новый Массив;
|
||||||
|
|
||||||
Если ТипЗнч(ПараметрыРазмещения.Источники) = Тип("Массив") Тогда
|
Если ТипЗнч(ПараметрыРазмещения.Источники) = Тип("Массив") Тогда
|
||||||
Для Каждого ОбъектМетаданных Из ПараметрыРазмещения.Источники Цикл
|
Для Каждого ОбъектМетаданных Из ПараметрыРазмещения.Источники Цикл
|
||||||
Источники.Добавить(ОбъектМетаданных.ПолноеИмя());
|
Источники.Добавить(ОбъектМетаданных.ПолноеИмя());
|
||||||
|
|||||||
@@ -45,8 +45,8 @@
|
|||||||
// Объекты - Массив из ОбъектМетаданных
|
// Объекты - Массив из ОбъектМетаданных
|
||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// Объекты.Добавить(Метаданные.Справочники._ДемоНоменклатура);
|
// Объекты.Добавить(Метаданные.Справочники.Номенклатура);
|
||||||
// Объекты.Добавить(Метаданные.Справочники._ДемоКонтрагенты);
|
// Объекты.Добавить(Метаданные.Справочники.Контрагенты);
|
||||||
//
|
//
|
||||||
Процедура ПриОпределенииОбъектовСКомандамиОбъединенияДублейЗаменыСсылок(Объекты) Экспорт
|
Процедура ПриОпределенииОбъектовСКомандамиОбъединенияДублейЗаменыСсылок(Объекты) Экспорт
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
// РазделГлавное.Раздел = "Главное";
|
// РазделГлавное.Раздел = "Главное";
|
||||||
// РазделГлавное.Картинка = БиблиотекаКартинок.РазделГлавное;
|
// РазделГлавное.Картинка = БиблиотекаКартинок.РазделГлавное;
|
||||||
//
|
//
|
||||||
// СчетНаОплату = Метаданные.Документы._ДемоСчетНаОплатуПокупателю;
|
// СчетНаОплату = Метаданные.Документы.СчетНаОплатуПокупателю;
|
||||||
// Если ПравоДоступа("Просмотр", СчетНаОплату)
|
// Если ПравоДоступа("Просмотр", СчетНаОплату)
|
||||||
// И ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(СчетНаОплату) Тогда
|
// И ОбщегоНазначения.ОбъектМетаданныхДоступенПоФункциональнымОпциям(СчетНаОплату) Тогда
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -7621,6 +7621,13 @@
|
|||||||
//
|
//
|
||||||
Функция КлючиРолейПользователяИБ(ПользовательИБ)
|
Функция КлючиРолейПользователяИБ(ПользовательИБ)
|
||||||
|
|
||||||
|
Для Каждого Роль Из ПользовательИБ.Роли Цикл
|
||||||
|
Прервать;
|
||||||
|
КонецЦикла;
|
||||||
|
Если Роль = Неопределено Тогда
|
||||||
|
Возврат "";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
РолиРасширений = ПользователиСлужебныйПовтИсп.РолиРасширений();
|
РолиРасширений = ПользователиСлужебныйПовтИсп.РолиРасширений();
|
||||||
Список = Новый СписокЗначений;
|
Список = Новый СписокЗначений;
|
||||||
|
|
||||||
|
|||||||
@@ -20,9 +20,9 @@
|
|||||||
// создавать файлы по шаблонам.
|
// создавать файлы по шаблонам.
|
||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// Настройки.НеОчищатьФайлы.Добавить(Метаданные.Справочники._ДемоНоменклатура);
|
// Настройки.НеОчищатьФайлы.Добавить(Метаданные.Справочники.Номенклатура);
|
||||||
// Настройки.НеСинхронизироватьФайлы.Добавить(Метаданные.Справочники._ДемоПартнеры);
|
// Настройки.НеСинхронизироватьФайлы.Добавить(Метаданные.Справочники.Партнеры);
|
||||||
// Настройки.НеСоздаватьФайлыПоШаблону.Добавить(Метаданные.Справочники._ДемоПартнеры);
|
// Настройки.НеСоздаватьФайлыПоШаблону.Добавить(Метаданные.Справочники.Партнеры);
|
||||||
//
|
//
|
||||||
Процедура ПриОпределенииНастроек(Настройки) Экспорт
|
Процедура ПриОпределенииНастроек(Настройки) Экспорт
|
||||||
|
|
||||||
@@ -39,8 +39,8 @@
|
|||||||
// Основной справочник используется для интерактивной работы с файлами.
|
// Основной справочник используется для интерактивной работы с файлами.
|
||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// Если ТипВладелецФайла = Тип("СправочникСсылка._ДемоНоменклатура") Тогда
|
// Если ТипВладелецФайла = Тип("СправочникСсылка.Номенклатура") Тогда
|
||||||
// ИменаСправочников["_ДемоНоменклатураПрисоединенныеФайлы"] = Ложь;
|
// ИменаСправочников["НоменклатураПрисоединенныеФайлы"] = Ложь;
|
||||||
// ИменаСправочников.Вставить("Файлы", Истина);
|
// ИменаСправочников.Вставить("Файлы", Истина);
|
||||||
// КонецЕсли;
|
// КонецЕсли;
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -1140,6 +1140,7 @@
|
|||||||
Элементы.ГруппаЭлектронныеПодписи.Видимость = ДоступнаЭлектроннаяПодпись;
|
Элементы.ГруппаЭлектронныеПодписи.Видимость = ДоступнаЭлектроннаяПодпись;
|
||||||
Элементы.ГруппаСертификатыШифрования.Видимость = ПросмотрЗашифрованных И ДоступнаЭлектроннаяПодпись;
|
Элементы.ГруппаСертификатыШифрования.Видимость = ПросмотрЗашифрованных И ДоступнаЭлектроннаяПодпись;
|
||||||
Элементы.Инструкция.Видимость = Подписание И ВидимостьИнструкции;
|
Элементы.Инструкция.Видимость = Подписание И ВидимостьИнструкции;
|
||||||
|
Элементы.ФормаСохранитьВместеСПодписью.Видимость = Форма.ЭлектронныеПодписи.Количество() <> 0;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
@@ -2980,13 +2980,19 @@
|
|||||||
РезультатПроверкиДоверенностей = ПолучитьИзВременногоХранилища(СтрокаПодписи.РезультатПроверкиПодписиПоМЧД);
|
РезультатПроверкиДоверенностей = ПолучитьИзВременногоХранилища(СтрокаПодписи.РезультатПроверкиПодписиПоМЧД);
|
||||||
НовыйРезультатПроверкиДоверенностей = Новый Массив;
|
НовыйРезультатПроверкиДоверенностей = Новый Массив;
|
||||||
Для Каждого Результат Из РезультатПроверкиДоверенностей Цикл
|
Для Каждого Результат Из РезультатПроверкиДоверенностей Цикл
|
||||||
РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(
|
Если Не ЗначениеЗаполнено(РезультатПроверкиПодписи.Сертификат) Тогда
|
||||||
Результат.МашиночитаемаяДоверенность, ПодписанныйОбъект, РезультатПроверкиПодписи.Сертификат,
|
НовыйРезультатПроверкиДоверенностей.Добавить(
|
||||||
СтрокаПодписи.ДатаПодписи);
|
МодульМашиночитаемыеДоверенностиФНССлужебный.НовыйРезультатПроверкиПодписиПоМЧД(
|
||||||
НовыйРезультатПроверкиДоверенностей.Добавить(РезультатПроверкиПодписиПоМЧД);
|
Результат.МашиночитаемаяДоверенность));
|
||||||
СтрокаПодписи.РезультатПроверкиДоверенностей = ПоместитьВоВременноеХранилище(
|
Иначе
|
||||||
НовыйРезультатПроверкиДоверенностей, СтрокаПодписи.РезультатПроверкиПодписиПоМЧД);
|
РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(
|
||||||
|
Результат.МашиночитаемаяДоверенность, ПодписанныйОбъект, РезультатПроверкиПодписи.Сертификат,
|
||||||
|
СтрокаПодписи.ДатаПодписи);
|
||||||
|
НовыйРезультатПроверкиДоверенностей.Добавить(РезультатПроверкиПодписиПоМЧД);
|
||||||
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
СтрокаПодписи.РезультатПроверкиПодписиПоМЧД = ПоместитьВоВременноеХранилище(
|
||||||
|
НовыйРезультатПроверкиДоверенностей, СтрокаПодписи.РезультатПроверкиПодписиПоМЧД);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Конец Локализация
|
// Конец Локализация
|
||||||
@@ -3000,42 +3006,19 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Локализация
|
|
||||||
|
|
||||||
Функция ПроверитьПодписиПоМЧД(Подписи, ПодписанныйОбъект) Экспорт
|
Функция ПроверитьПодписиПоМЧД(Подписи, ПодписанныйОбъект) Экспорт
|
||||||
|
|
||||||
РезультатыПроверок = Новый Массив;
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
||||||
|
|
||||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
|
||||||
Возврат Новый Массив;
|
Возврат Новый Массив;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль(
|
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль(
|
||||||
"МашиночитаемыеДоверенностиФНССлужебный");
|
"ЭлектроннаяПодписьСлужебный");
|
||||||
Для Каждого Подпись Из Подписи Цикл
|
|
||||||
|
Возврат МодульЭлектроннаяПодписьСлужебный.ПроверитьПодписиПоМЧД(Подписи, ПодписанныйОбъект);
|
||||||
РезультатПроверкиДоверенностей = ПолучитьИзВременногоХранилища(Подпись.РезультатПроверкиПодписиПоМЧД);
|
|
||||||
НовыйРезультатПроверкиДоверенностей = Новый Массив;
|
|
||||||
Для Каждого Результат Из РезультатПроверкиДоверенностей Цикл
|
|
||||||
РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(
|
|
||||||
Результат.МашиночитаемаяДоверенность, ПодписанныйОбъект, Подпись.Сертификат, Подпись.ДатаПодписи);
|
|
||||||
НовыйРезультатПроверкиДоверенностей.Добавить(РезультатПроверкиПодписиПоМЧД);
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
РезультатПроверки = Новый Структура("Индекс, РезультатПроверкиПодписиПоМЧД", Подпись.Индекс,
|
|
||||||
НовыйРезультатПроверкиДоверенностей);
|
|
||||||
МодульМашиночитаемыеДоверенностиФНССлужебный.ДобавитьИнформациюМЧД(РезультатПроверки,
|
|
||||||
Подпись.РезультатПроверкиПодписиПоМЧД);
|
|
||||||
РезультатыПроверок.Добавить(РезультатПроверки);
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Возврат РезультатыПроверок;
|
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Конец Локализация
|
|
||||||
|
|
||||||
// Заносит номер в регистр сведений НомераОтсканированныхФайлов.
|
// Заносит номер в регистр сведений НомераОтсканированныхФайлов.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
|
|||||||
@@ -1159,6 +1159,11 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ОбработкаВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка) Экспорт
|
Процедура ОбработкаВыбораТабличногоДокумента(ФормаОтчета, Элемент, Область, СтандартнаяОбработка) Экспорт
|
||||||
|
|
||||||
|
Если ФормаОтчета.НастройкиОтчета.ПолноеИмя <> "Отчет.ПроверкаЦелостностиТома" Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если Область.Расшифровка = "ПроверкаЦелостностиТома.ВосстановитьФайлы" Тогда
|
Если Область.Расшифровка = "ПроверкаЦелостностиТома.ВосстановитьФайлы" Тогда
|
||||||
СтандартнаяОбработка = Ложь;
|
СтандартнаяОбработка = Ложь;
|
||||||
Том = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Том").Значение;
|
Том = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Том").Значение;
|
||||||
@@ -1175,6 +1180,7 @@
|
|||||||
|
|
||||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, ОповещениеОЗавершении, ПараметрыОжидания);
|
ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, ОповещениеОЗавершении, ПараметрыОжидания);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|||||||
@@ -1168,10 +1168,10 @@
|
|||||||
|
|
||||||
// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий
|
// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий
|
||||||
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
|
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
|
||||||
Зависимость = Настройки.Добавить();
|
Настройка = Настройки.Добавить();
|
||||||
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.РассылкаОтчетов;
|
Настройка.РегламентноеЗадание = Метаданные.РегламентныеЗадания.РассылкаОтчетов;
|
||||||
Зависимость.РаботаетСВнешнимиРесурсами = Истина;
|
Настройка.РаботаетСВнешнимиРесурсами = Истина;
|
||||||
Зависимость.Параметризуется = Истина;
|
Настройка.Параметризуется = Истина;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков.
|
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков.
|
||||||
@@ -2298,15 +2298,15 @@
|
|||||||
И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда
|
И ТипЗнч(ПараметрыЖурнала.Данные) = Тип("СправочникСсылка.РассылкиОтчетов") Тогда
|
||||||
Для Каждого СтрокаПолучатель Из ПараметрыДоставки.Получатели Цикл
|
Для Каждого СтрокаПолучатель Из ПараметрыДоставки.Получатели Цикл
|
||||||
АдресаПолучателя = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(СтрокаПолучатель.Значение);
|
АдресаПолучателя = ОбщегоНазначенияКлиентСервер.РазобратьСтрокуСПочтовымиАдресами(СтрокаПолучатель.Значение);
|
||||||
Для Каждого АдресЭП Из АдресаПолучателя Цикл
|
Для Каждого АдресЭП Из АдресаПолучателя Цикл
|
||||||
ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, СтрокаПолучатель.Ключ, ПараметрыДоставки.ДатаВыполнения);
|
ПоляИстории = ПоляИсторииРассылкиОтчетов(ПараметрыЖурнала.Данные, СтрокаПолучатель.Ключ, ПараметрыДоставки.ДатаВыполнения);
|
||||||
ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись;
|
ПоляИстории.УчетнаяЗапись = ПараметрыДоставки.УчетнаяЗапись;
|
||||||
ПоляИстории.АдресЭП = АдресЭП;
|
ПоляИстории.АдресЭП = АдресЭП.Адрес;
|
||||||
ПоляИстории.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ПоляИстории.Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
"%1 %2", ШаблонСообщенияОбОшибке, РасширенноеПредставлениеОшибки);
|
"%1 %2", ШаблонСообщенияОбОшибке, РасширенноеПредставлениеОшибки);
|
||||||
ПоляИстории.Выполнена = Ложь;
|
ПоляИстории.Выполнена = Ложь;
|
||||||
ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, СтрокаПолучатель.Ключ,
|
ПоляИстории.СпособПолучения = СпособПолученияРассылки(ПараметрыДоставки, СтрокаПолучатель.Ключ,
|
||||||
АдресЭП);
|
АдресЭП.Адрес);
|
||||||
ПоляИстории.ИдентификаторПисьма = "";
|
ПоляИстории.ИдентификаторПисьма = "";
|
||||||
|
|
||||||
РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(ПоляИстории);
|
РегистрыСведений.ИсторияРассылкиОтчетов.ЗафиксироватьРезультатВыполненияРассылкиПолучателю(ПоляИстории);
|
||||||
|
|||||||
@@ -1008,7 +1008,7 @@
|
|||||||
// Структура:
|
// Структура:
|
||||||
// * ИмяМодуляОтправки - Строка - смотри НовоеСерверноеОповещение.ИмяМодуляОтправки.
|
// * ИмяМодуляОтправки - Строка - смотри НовоеСерверноеОповещение.ИмяМодуляОтправки.
|
||||||
// * Параметры - Произвольный - смотри НовоеСерверноеОповещение.Параметры
|
// * Параметры - Произвольный - смотри НовоеСерверноеОповещение.Параметры
|
||||||
// Если не заполнен, тогда свойства нет.
|
// Если равен Неопределено, тогда свойства нет.
|
||||||
//
|
//
|
||||||
// * ПериодПроверки - Число - смотри НовоеСерверноеОповещение.ПериодПроверки.
|
// * ПериодПроверки - Число - смотри НовоеСерверноеОповещение.ПериодПроверки.
|
||||||
// Если указано 20*60, тогда свойства нет.
|
// Если указано 20*60, тогда свойства нет.
|
||||||
@@ -1018,7 +1018,7 @@
|
|||||||
Результат = Новый Структура;
|
Результат = Новый Структура;
|
||||||
Результат.Вставить("ИмяМодуляОтправки", Оповещение.ИмяМодуляОтправки);
|
Результат.Вставить("ИмяМодуляОтправки", Оповещение.ИмяМодуляОтправки);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Оповещение.Параметры) Тогда
|
Если Оповещение.Параметры <> Неопределено Тогда
|
||||||
Результат.Вставить("Параметры", Оповещение.Параметры);
|
Результат.Вставить("Параметры", Оповещение.Параметры);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
@@ -689,16 +689,25 @@
|
|||||||
ИсточникНастроек = СервисКриптографииDSSСлужебный.ПолучитьИсточникНастроек(ВходящиеПараметры);
|
ИсточникНастроек = СервисКриптографииDSSСлужебный.ПолучитьИсточникНастроек(ВходящиеПараметры);
|
||||||
АдресПодключения = НастройкиПользователя.Методы.СервисИдентификации + "token";
|
АдресПодключения = НастройкиПользователя.Методы.СервисИдентификации + "token";
|
||||||
|
|
||||||
|
ЗаголовкиЗапроса = Новый Соответствие;
|
||||||
ПараметрыЗапроса = Новый Структура;
|
ПараметрыЗапроса = Новый Структура;
|
||||||
ПараметрыЗапроса.Вставить("client_id", НастройкиПользователя.Подключение.ИдентификаторКлиента);
|
|
||||||
ПараметрыЗапроса.Вставить("username", НастройкиПользователя.Логин);
|
ПараметрыЗапроса.Вставить("username", НастройкиПользователя.Логин);
|
||||||
ПараметрыЗапроса.Вставить("resource", НастройкиПользователя.Подключение.ИдентификаторПодписи);
|
ПараметрыЗапроса.Вставить("resource", НастройкиПользователя.Подключение.ИдентификаторПодписи);
|
||||||
ПараметрыЗапроса.Вставить("grant_type", "password");
|
ПараметрыЗапроса.Вставить("grant_type", "password");
|
||||||
ПараметрыЗапроса.Вставить("password", ПолучитьЗначениеПароля(НастройкиПользователя.Пароль, НастройкиПользователя));
|
Если НастройкиПользователя.ПервичнаяАутентификация = Перечисления.СпособыАвторизацииDSS.Первичный_СервисныйКлиент Тогда
|
||||||
|
СекретСервисногоКлиента = СервисКриптографииDSSСлужебный.ПолучитьЗакрытыеДанные(КлючСервисногоКлиента(НастройкиПользователя),
|
||||||
|
"СекретСервисногоКлиента", Истина).Значение;
|
||||||
|
ПараметрыЗапроса.Вставить("password", "");
|
||||||
|
ЗаголовкиЗапроса.Вставить("Authorization",
|
||||||
|
ПолучитьПредставлениеСекрета(НастройкиПользователя.Подключение.СервисныйКлиент, СекретСервисногоКлиента));
|
||||||
|
Иначе
|
||||||
|
ПараметрыЗапроса.Вставить("client_id", НастройкиПользователя.Подключение.ИдентификаторКлиента);
|
||||||
|
ПараметрыЗапроса.Вставить("password", ПолучитьЗначениеПароля(НастройкиПользователя.Пароль, НастройкиПользователя));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
СвойстваПодключения = СервисКриптографииDSSСлужебный.ПодготовитьСвойстваПодключения(НастройкиПользователя.Подключение, АдресПодключения);
|
СвойстваПодключения = СервисКриптографииDSSСлужебный.ПодготовитьСвойстваПодключения(НастройкиПользователя.Подключение, АдресПодключения);
|
||||||
Соединение = СервисКриптографииDSSСлужебный.ПодготовитьПодключение(СвойстваПодключения, Неопределено, ПараметрыОперации);
|
Соединение = СервисКриптографииDSSСлужебный.ПодготовитьПодключение(СвойстваПодключения, Неопределено, ПараметрыОперации);
|
||||||
РезультатЗапроса = СервисКриптографииDSSСлужебный.ВыполнитьМетодСервиса(Соединение, СвойстваПодключения.АдресПодключения, ПараметрыЗапроса, "POST", , , ПараметрыОперации);
|
РезультатЗапроса = СервисКриптографииDSSСлужебный.ВыполнитьМетодСервиса(Соединение, СвойстваПодключения.АдресПодключения, ПараметрыЗапроса, "POST", ЗаголовкиЗапроса, , ПараметрыОперации);
|
||||||
СохранитьНастройки = Ложь;
|
СохранитьНастройки = Ложь;
|
||||||
|
|
||||||
Если РезультатЗапроса.Выполнено Тогда
|
Если РезультатЗапроса.Выполнено Тогда
|
||||||
@@ -1006,7 +1015,8 @@
|
|||||||
Если ВРег(ДанныеТокена.Логин) = ВРег(НастройкиПользователя.Логин) Тогда
|
Если ВРег(ДанныеТокена.Логин) = ВРег(НастройкиПользователя.Логин) Тогда
|
||||||
ТокенАвторизации.Токен = СервисКриптографииDSSКлиентСервер.ОбъектПароля(Токен, 0);
|
ТокенАвторизации.Токен = СервисКриптографииDSSКлиентСервер.ОбъектПароля(Токен, 0);
|
||||||
ТокенАвторизации.ТипТокена = ТипТокена;
|
ТокенАвторизации.ТипТокена = ТипТокена;
|
||||||
ТокенАвторизации.ТокенОбновления= СервисКриптографииDSSКлиентСервер.ОбъектПароля(ТокенОбновления, 0);
|
ТокенАвторизации.ТокенОбновления= СервисКриптографииDSSКлиентСервер.ОбъектПароля(ТокенОбновления,
|
||||||
|
?(ЗначениеЗаполнено(ТокенОбновления), 0, 3));
|
||||||
НастройкиПользователя.ЭлектроннаяПочта = ДанныеТокена.ЭлектроннаяПочта;
|
НастройкиПользователя.ЭлектроннаяПочта = ДанныеТокена.ЭлектроннаяПочта;
|
||||||
НастройкиПользователя.Телефон = ДанныеТокена.Телефон;
|
НастройкиПользователя.Телефон = ДанныеТокена.Телефон;
|
||||||
НастройкиПользователя.ИдентификаторНаСервере = ДанныеТокена.Идентификатор;
|
НастройкиПользователя.ИдентификаторНаСервере = ДанныеТокена.Идентификатор;
|
||||||
@@ -1130,6 +1140,7 @@
|
|||||||
Представление = СвойствоСтруктуры(СтрокаМассива, "FriendlyName", "");
|
Представление = СвойствоСтруктуры(СтрокаМассива, "FriendlyName", "");
|
||||||
Представление = ?(ПустаяСтрока(Представление), СвойстваСертификата.Наименование, Представление);
|
Представление = ?(ПустаяСтрока(Представление), СвойстваСертификата.Наименование, Представление);
|
||||||
Представление = ?(ПустаяСтрока(Представление), НСтр("ru = 'Не задано имя'"), Представление);
|
Представление = ?(ПустаяСтрока(Представление), НСтр("ru = 'Не задано имя'"), Представление);
|
||||||
|
МобильныйЗакрытыКлюч= СвойствоСтруктуры(СтрокаМассива, "Storage", "") = "Mobile";
|
||||||
|
|
||||||
НоваяСтрока = СервисКриптографииDSSКлиентСервер.СвойстваСертификатаПользователя();
|
НоваяСтрока = СервисКриптографииDSSКлиентСервер.СвойстваСертификатаПользователя();
|
||||||
НоваяСтрока.Идентификатор = ВнутреннийНомер;
|
НоваяСтрока.Идентификатор = ВнутреннийНомер;
|
||||||
@@ -1144,6 +1155,7 @@
|
|||||||
НоваяСтрока.ДатаОкончания = СвойстваСертификата.ДатаОкончания;
|
НоваяСтрока.ДатаОкончания = СвойстваСертификата.ДатаОкончания;
|
||||||
НоваяСтрока.АлгоритмыХеширования = АлгоритмыХеширования;
|
НоваяСтрока.АлгоритмыХеширования = АлгоритмыХеширования;
|
||||||
НоваяСтрока.КомуВыдан = КомуВыдан;
|
НоваяСтрока.КомуВыдан = КомуВыдан;
|
||||||
|
НоваяСтрока.МобильныйЗакрытыйКлюч = МобильныйЗакрытыКлюч;
|
||||||
|
|
||||||
СписокСертификатов.Вставить(ОтпечатокСертификата, НоваяСтрока);
|
СписокСертификатов.Вставить(ОтпечатокСертификата, НоваяСтрока);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
@@ -1733,6 +1745,7 @@
|
|||||||
|
|
||||||
НастройкиПользователя = ПолучитьНастройкиПользователя(ИдентификаторПользователя, ПараметрыОперации);
|
НастройкиПользователя = ПолучитьНастройкиПользователя(ИдентификаторПользователя, ПараметрыОперации);
|
||||||
РезультатВызова = СервисКриптографииDSSКлиентСервер.ОтветСервисаПоУмолчанию(Ложь);
|
РезультатВызова = СервисКриптографииDSSКлиентСервер.ОтветСервисаПоУмолчанию(Ложь);
|
||||||
|
ПодтверждатьОперации = НастройкиПользователя.ПервичнаяАутентификация = Перечисления.СпособыАвторизацииDSS.Первичный_СервисныйКлиент;
|
||||||
|
|
||||||
Если НЕ НастройкиПользователя.Политика.Заполнено ИЛИ Принудительно Тогда
|
Если НЕ НастройкиПользователя.Политика.Заполнено ИЛИ Принудительно Тогда
|
||||||
|
|
||||||
@@ -1740,7 +1753,7 @@
|
|||||||
РезультатЗапроса= ПолучитьПараметрыПолитики(НастройкиПользователя, ПараметрыОперации);
|
РезультатЗапроса= ПолучитьПараметрыПолитики(НастройкиПользователя, ПараметрыОперации);
|
||||||
|
|
||||||
Если РезультатЗапроса.Выполнено Тогда
|
Если РезультатЗапроса.Выполнено Тогда
|
||||||
СервисКриптографииDSSСлужебный.НастройкиРаботыАнализПолитикиПользователя(НастройкиПользователя.Политика, РезультатЗапроса.Результат);
|
СервисКриптографииDSSСлужебный.НастройкиРаботыАнализПолитикиПользователя(НастройкиПользователя.Политика, РезультатЗапроса.Результат, ПодтверждатьОперации);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыПоиска = Новый Структура("ПроверитьНаличиеВБазе", ЗначениеЗаполнено(НастройкиПользователя.Ссылка));
|
ПараметрыПоиска = Новый Структура("ПроверитьНаличиеВБазе", ЗначениеЗаполнено(НастройкиПользователя.Ссылка));
|
||||||
@@ -2734,25 +2747,37 @@
|
|||||||
Если РезультатЗапроса.Выполнено Тогда
|
Если РезультатЗапроса.Выполнено Тогда
|
||||||
Выжимка = ОписаниеАсинхроннойОперации(РезультатЗапроса.Результат.Operation, "Result.ProcessedDocuments");
|
Выжимка = ОписаниеАсинхроннойОперации(РезультатЗапроса.Результат.Operation, "Result.ProcessedDocuments");
|
||||||
РезультатОперации = Выжимка.ОписаниеОперации;
|
РезультатОперации = Выжимка.ОписаниеОперации;
|
||||||
|
ЕстьСортировка = Ложь;
|
||||||
|
|
||||||
Если НЕ Выжимка.Выполнено Тогда
|
Если НЕ Выжимка.Выполнено Тогда
|
||||||
РезультатЗапроса.Выполнено = Ложь;
|
РезультатЗапроса.Выполнено = Ложь;
|
||||||
РезультатЗапроса.Ошибка = Выжимка.Ошибка;
|
РезультатЗапроса.Ошибка = Выжимка.Ошибка;
|
||||||
РезультатЗапроса.СтатусОшибки.Представление = Выжимка.Ошибка;
|
|
||||||
ИначеЕсли НЕ РезультатОперации.ТребуетПодтверждения Тогда
|
ИначеЕсли НЕ РезультатОперации.ТребуетПодтверждения Тогда
|
||||||
МассивИдентификаторов = Новый Массив;
|
МассивИдентификаторов = Новый СписокЗначений;
|
||||||
МассивСодержимого = Новый Массив;
|
МассивСодержимого = Новый СписокЗначений;
|
||||||
Для Каждого СтрокаОтвета Из Выжимка.Действия Цикл
|
Для Каждого СтрокаОтвета Из Выжимка.Действия Цикл
|
||||||
ИдентификаторДокумента = СвойствоСтруктуры(СтрокаОтвета, "RefId", "");
|
ИдентификаторДокумента = СвойствоСтруктуры(СтрокаОтвета, "RefId", "");
|
||||||
СодержимоеДокумента = СвойствоСтруктуры(СтрокаОтвета, "Content", "");
|
СодержимоеДокумента = СвойствоСтруктуры(СтрокаОтвета, "Content", "");
|
||||||
Если ЗначениеЗаполнено(ИдентификаторДокумента) Тогда
|
ИмяДокумента = СвойствоСтруктуры(СтрокаОтвета, "OriginalContentInfo", "");
|
||||||
МассивИдентификаторов.Добавить(ИдентификаторДокумента);
|
Позиция = СтрНайти(ИмяДокумента, " #", НаправлениеПоиска.СКонца);
|
||||||
ИначеЕсли ЗначениеЗаполнено(СодержимоеДокумента) Тогда
|
Если Позиция > 0 Тогда
|
||||||
МассивСодержимого.Добавить(СодержимоеДокумента);
|
ИмяДокумента = Сред(ИмяДокумента, Позиция + 2);
|
||||||
|
ЕстьСортировка = ЕстьСортировка ИЛИ ЗначениеЗаполнено(ИмяДокумента);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
Если ЗначениеЗаполнено(ИдентификаторДокумента) Тогда
|
||||||
РезультатОперации.Вставить("ИдентификаторыДокументов", МассивИдентификаторов);
|
МассивИдентификаторов.Добавить(ИдентификаторДокумента, ИмяДокумента);
|
||||||
РезультатОперации.Вставить("СодержимоеДокументов", МассивСодержимого);
|
ИначеЕсли ЗначениеЗаполнено(СодержимоеДокумента) Тогда
|
||||||
|
МассивСодержимого.Добавить(СодержимоеДокумента, ИмяДокумента);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если ЕстьСортировка Тогда
|
||||||
|
МассивИдентификаторов.СортироватьПоПредставлению(НаправлениеСортировки.Возр);
|
||||||
|
МассивСодержимого.СортироватьПоПредставлению(НаправлениеСортировки.Возр);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РезультатОперации.Вставить("ИдентификаторыДокументов", МассивИдентификаторов.ВыгрузитьЗначения());
|
||||||
|
РезультатОперации.Вставить("СодержимоеДокументов", МассивСодержимого.ВыгрузитьЗначения());
|
||||||
Иначе
|
Иначе
|
||||||
ПолучитьДокументы = Ложь;
|
ПолучитьДокументы = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -3933,6 +3958,7 @@
|
|||||||
Результат.Вставить("СервисПроверки", "");
|
Результат.Вставить("СервисПроверки", "");
|
||||||
Результат.Вставить("СервисОбработкиДокументов", "");
|
Результат.Вставить("СервисОбработкиДокументов", "");
|
||||||
Результат.Вставить("СервисАудита", "");
|
Результат.Вставить("СервисАудита", "");
|
||||||
|
Результат.Вставить("СервисныйКлиент", "");
|
||||||
Результат.Вставить("ВнутреннийИдентификатор", "");
|
Результат.Вставить("ВнутреннийИдентификатор", "");
|
||||||
Результат.Вставить("ИдентификаторЦИ", "");
|
Результат.Вставить("ИдентификаторЦИ", "");
|
||||||
Результат.Вставить("ИдентификаторСЭП", "");
|
Результат.Вставить("ИдентификаторСЭП", "");
|
||||||
@@ -4234,8 +4260,9 @@
|
|||||||
|
|
||||||
ВидАутентификации = НастройкиПользователя.ПервичнаяАутентификация;
|
ВидАутентификации = НастройкиПользователя.ПервичнаяАутентификация;
|
||||||
|
|
||||||
Если ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_УчетныеДанные // основной сценарий
|
Если ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_УчетныеДанные // основной сценарий
|
||||||
ИЛИ ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_ДвухФакторная // возможно, если не подтверждается выпуск маркера безопасности
|
ИЛИ ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_СервисныйКлиент
|
||||||
|
ИЛИ ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_ДвухФакторная // возможно, если не подтверждается выпуск маркера безопасности
|
||||||
ИЛИ ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_КодАвторизации Тогда // возможно, если не подтверждается выпуск маркера безопасности
|
ИЛИ ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_КодАвторизации Тогда // возможно, если не подтверждается выпуск маркера безопасности
|
||||||
Результат = АутентификацияПоЛогину(НастройкиПользователя, ПараметрыОперации);
|
Результат = АутентификацияПоЛогину(НастройкиПользователя, ПараметрыОперации);
|
||||||
ИначеЕсли ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_СертификатАвторизации Тогда
|
ИначеЕсли ВидАутентификации = Перечисления.СпособыАвторизацииDSS.Первичный_СертификатАвторизации Тогда
|
||||||
@@ -4345,6 +4372,7 @@
|
|||||||
// Служебная функция для формирования секрета пользователя в заголовке запроса
|
// Служебная функция для формирования секрета пользователя в заголовке запроса
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// НастройкиПользователя - см. НастройкиПользователяПоУмолчанию
|
// НастройкиПользователя - см. НастройкиПользователяПоУмолчанию
|
||||||
|
// - Строка
|
||||||
// ПарольКлиента - Строка - пароль в закрытом виде
|
// ПарольКлиента - Строка - пароль в закрытом виде
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@@ -4352,9 +4380,15 @@
|
|||||||
//
|
//
|
||||||
Функция ПолучитьПредставлениеСекрета(НастройкиПользователя, ПарольКлиента = "")
|
Функция ПолучитьПредставлениеСекрета(НастройкиПользователя, ПарольКлиента = "")
|
||||||
|
|
||||||
Результат = "";
|
Результат = "";
|
||||||
|
|
||||||
ИсходныеДанные = ПолучитьДвоичныеДанныеИзСтроки(НастройкиПользователя.Логин
|
Если ТипЗнч(НастройкиПользователя) = Тип("Строка") Тогда
|
||||||
|
Владелец = НастройкиПользователя;
|
||||||
|
Иначе
|
||||||
|
Владелец = НастройкиПользователя.Логин;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИсходныеДанные = ПолучитьДвоичныеДанныеИзСтроки(Владелец
|
||||||
+ ":"
|
+ ":"
|
||||||
+ ПарольКлиента,
|
+ ПарольКлиента,
|
||||||
"UTF-8");
|
"UTF-8");
|
||||||
@@ -4806,4 +4840,19 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Формирует путь хранения в безопасном хранилище для сервисного клиента.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// НастройкиПользователя - Структура
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка
|
||||||
|
//
|
||||||
|
Функция КлючСервисногоКлиента(НастройкиПользователя) Экспорт
|
||||||
|
|
||||||
|
Возврат СтрЗаменить(
|
||||||
|
НастройкиПользователя.Методы.СервисИдентификации + НастройкиПользователя.Подключение.СервисныйКлиент, "/", "");
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -28,6 +28,7 @@
|
|||||||
// * ДатаОкончания - Дата - окончание срока действия сертификата
|
// * ДатаОкончания - Дата - окончание срока действия сертификата
|
||||||
// * Издатель - Строка - представление издателя сертификата
|
// * Издатель - Строка - представление издателя сертификата
|
||||||
// * АлгоритмыХеширования - Массив - элементы массива содержат описание алгоритма хеширования
|
// * АлгоритмыХеширования - Массив - элементы массива содержат описание алгоритма хеширования
|
||||||
|
// * МобильныйЗакрытыйКлюч - Булево - закрытый ключ храниться на мобильном устройстве
|
||||||
//
|
//
|
||||||
Функция СвойстваСертификатаПользователя() Экспорт
|
Функция СвойстваСертификатаПользователя() Экспорт
|
||||||
|
|
||||||
@@ -44,6 +45,7 @@
|
|||||||
Результат.Вставить("ДатаОкончания", '00010101');
|
Результат.Вставить("ДатаОкончания", '00010101');
|
||||||
Результат.Вставить("Издатель", "");
|
Результат.Вставить("Издатель", "");
|
||||||
Результат.Вставить("АлгоритмыХеширования", Новый Массив);
|
Результат.Вставить("АлгоритмыХеширования", Новый Массив);
|
||||||
|
Результат.Вставить("МобильныйЗакрытыйКлюч", Ложь);
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
@@ -408,7 +410,9 @@
|
|||||||
|
|
||||||
Если ТипЗнч(ОбъектПароля) = Тип("Структура") Тогда
|
Если ТипЗнч(ОбъектПароля) = Тип("Структура") Тогда
|
||||||
|
|
||||||
Если ОбъектПароля.Состояние = 0 Тогда
|
Если ОбъектПароля.Состояние = 0 И АвторизованныйПользователь = Неопределено Тогда
|
||||||
|
Результат = ОбъектПароля.Значение;
|
||||||
|
ИначеЕсли ОбъектПароля.Состояние = 0 Тогда
|
||||||
Результат = ЗакрытьСекретПользователя(ОбъектПароля.Значение, АвторизованныйПользователь);
|
Результат = ЗакрытьСекретПользователя(ОбъектПароля.Значение, АвторизованныйПользователь);
|
||||||
ИначеЕсли ОбъектПароля.Состояние = 1 Тогда
|
ИначеЕсли ОбъектПароля.Состояние = 1 Тогда
|
||||||
Результат = ОбъектПароля.Значение;
|
Результат = ОбъектПароля.Значение;
|
||||||
@@ -443,7 +447,8 @@
|
|||||||
Результат = Истина;
|
Результат = Истина;
|
||||||
ИначеЕсли НЕ ТребуетсяВводКонфиденциальныхДанных(НастройкиПользователя.ТокенАвторизации.ТокенОбновления) Тогда
|
ИначеЕсли НЕ ТребуетсяВводКонфиденциальныхДанных(НастройкиПользователя.ТокенАвторизации.ТокенОбновления) Тогда
|
||||||
Результат = Истина;
|
Результат = Истина;
|
||||||
ИначеЕсли НастройкиПользователя.ЗапоминатьПароли Тогда
|
ИначеЕсли НастройкиПользователя.ЗапоминатьПароли
|
||||||
|
И НастройкиПользователя.ПервичнаяАутентификация <> ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_ДвухФакторная") Тогда
|
||||||
Результат = Истина;
|
Результат = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -699,8 +704,10 @@
|
|||||||
Функция ПодготовитьПакетДляПодписи(МассивДокументов) Экспорт
|
Функция ПодготовитьПакетДляПодписи(МассивДокументов) Экспорт
|
||||||
|
|
||||||
Результат = Новый Массив;
|
Результат = Новый Массив;
|
||||||
|
НесколькоФайлов = МассивДокументов.Количество() > 1;
|
||||||
|
|
||||||
Для каждого СтрокаМассива Из МассивДокументов Цикл
|
Для Счетчик = 1 По МассивДокументов.Количество() Цикл
|
||||||
|
СтрокаМассива = МассивДокументов[Счетчик - 1];
|
||||||
|
|
||||||
НоваяСтрока = Новый Структура();
|
НоваяСтрока = Новый Структура();
|
||||||
НоваяСтрока.Вставить("Content", "");
|
НоваяСтрока.Вставить("Content", "");
|
||||||
@@ -738,6 +745,10 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если НесколькоФайлов Тогда
|
||||||
|
НоваяСтрока.ContentInfo = НоваяСтрока.ContentInfo + " #" + Формат(Счетчик, "ЧЦ=3; ЧВН=; ЧГ=0");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Результат.Добавить(НоваяСтрока);
|
Результат.Добавить(НоваяСтрока);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|||||||
@@ -691,9 +691,9 @@
|
|||||||
УправлениеЭлементамиОбщее(КонтекстФормы, 4);
|
УправлениеЭлементамиОбщее(КонтекстФормы, 4);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КлючДействия = КлючДействияОперации(ТипОперации, НастройкиПользователя, ДанныеПодтверждения);
|
Подтверждать = КлючДействияОперации(ТипОперации, НастройкиПользователя, ДанныеПодтверждения);
|
||||||
|
|
||||||
Если КлючДействия.Подтверждать Тогда
|
Если Подтверждать Тогда
|
||||||
ПодключитьОжидание(КонтекстФормы, Истина);
|
ПодключитьОжидание(КонтекстФормы, Истина);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -712,6 +712,7 @@
|
|||||||
Если ЗначениеЗаполнено(ДанныеПодтверждения) Тогда
|
Если ЗначениеЗаполнено(ДанныеПодтверждения) Тогда
|
||||||
КонтекстФормы[РеестрИмен.ДанныеПодтверждения].ПараметрыВариантаВстроенного.ПарольВПамяти = ПарольУстановлен;
|
КонтекстФормы[РеестрИмен.ДанныеПодтверждения].ПараметрыВариантаВстроенного.ПарольВПамяти = ПарольУстановлен;
|
||||||
ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПакетнаяОперация = ПроверитьПакетнуюОперацию(ТипОперации, ОписаниеДанных, ДанныеПодтверждения);
|
ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПакетнаяОперация = ПроверитьПакетнуюОперацию(ТипОперации, ОписаниеДанных, ДанныеПодтверждения);
|
||||||
|
ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПодтверждатьПринудительно = СервисКриптографииDSSКлиентСервер.ПолучитьПолеСтруктуры(ОписаниеДанных, "ПринудительноПодтверждатьОблачнуюОперацию", Ложь);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
УправлениеЭлементамиОбщее(КонтекстФормы, 5);
|
УправлениеЭлементамиОбщее(КонтекстФормы, 5);
|
||||||
Если ТипОперации <> "Проверка" Тогда
|
Если ТипОперации <> "Проверка" Тогда
|
||||||
@@ -761,7 +762,7 @@
|
|||||||
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
|
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
|
||||||
ДатаСеанса = СервисКриптографииDSSСлужебныйКлиент.ДатаСеанса();
|
ДатаСеанса = СервисКриптографииDSSСлужебныйКлиент.ДатаСеанса();
|
||||||
Авторизован = СервисКриптографииDSSКлиентСервер.УчетнаяЗаписьАвторизована(НастройкиПользователя, ДатаСеанса);
|
Авторизован = СервисКриптографииDSSКлиентСервер.УчетнаяЗаписьАвторизована(НастройкиПользователя, ДатаСеанса);
|
||||||
КлючДействия = КлючДействияОперации(ТипОперации, НастройкиПользователя, ДанныеПодтверждения);
|
Подтверждать = КлючДействияОперации(ТипОперации, НастройкиПользователя, ДанныеПодтверждения);
|
||||||
ТребуетПинКод = ТипОперации <> "Шифрование";
|
ТребуетПинКод = ТипОперации <> "Шифрование";
|
||||||
|
|
||||||
Если Авторизован И ТипОперации <> "Шифрование" Тогда
|
Если Авторизован И ТипОперации <> "Шифрование" Тогда
|
||||||
@@ -770,9 +771,9 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если УчетАвторизации Тогда
|
Если УчетАвторизации Тогда
|
||||||
Результат = Авторизован И КлючДействия.Подтверждать;
|
Результат = Авторизован И Подтверждать;
|
||||||
Иначе
|
Иначе
|
||||||
Результат = ТребуетПинКод ИЛИ НЕ Авторизован ИЛИ КлючДействия.Подтверждать;
|
Результат = ТребуетПинКод ИЛИ НЕ Авторизован ИЛИ Подтверждать;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -861,7 +862,7 @@
|
|||||||
ДатаСеанса = СервисКриптографииDSSСлужебныйКлиент.ДатаСеанса();
|
ДатаСеанса = СервисКриптографииDSSСлужебныйКлиент.ДатаСеанса();
|
||||||
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
|
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
|
||||||
Авторизован = СервисКриптографииDSSКлиентСервер.УчетнаяЗаписьАвторизована(НастройкиПользователя, ДатаСеанса);
|
Авторизован = СервисКриптографииDSSКлиентСервер.УчетнаяЗаписьАвторизована(НастройкиПользователя, ДатаСеанса);
|
||||||
КлючДействия = КлючДействияОперации(ТипОперации, НастройкиПользователя, ДанныеПодтверждения);
|
Подтверждать = КлючДействияОперации(ТипОперации, НастройкиПользователя, ДанныеПодтверждения);
|
||||||
ТребуетПинКод = ТипОперации <> "Шифрование";
|
ТребуетПинКод = ТипОперации <> "Шифрование";
|
||||||
ВыбранСпособ = Истина;
|
ВыбранСпособ = Истина;
|
||||||
|
|
||||||
@@ -874,7 +875,7 @@
|
|||||||
ТребуетПинКод = ТекущийСертификат.ТребуетсяПинКод И НЕ ЗначениеЗаполнено(ЗначениеПароля);
|
ТребуетПинКод = ТекущийСертификат.ТребуетсяПинКод И НЕ ЗначениеЗаполнено(ЗначениеПароля);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если КлючДействия.Подтверждать И НЕ ВыбранСпособ Тогда
|
Если Подтверждать И НЕ ВыбранСпособ Тогда
|
||||||
ТекстОшибки = ТекстОшибки + Символы.ПС + НСтр("ru = 'Не указан способ подтверждения'", КодЯзыка);
|
ТекстОшибки = ТекстОшибки + Символы.ПС + НСтр("ru = 'Не указан способ подтверждения'", КодЯзыка);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -1395,6 +1396,8 @@
|
|||||||
//
|
//
|
||||||
Функция КлючДействияОперации(ТипОперации, НастройкиПользователя, ДанныеПодтверждения)
|
Функция КлючДействияОперации(ТипОперации, НастройкиПользователя, ДанныеПодтверждения)
|
||||||
|
|
||||||
|
Обязательно = Ложь;
|
||||||
|
|
||||||
Если ТипОперации = "Подтверждение"
|
Если ТипОперации = "Подтверждение"
|
||||||
ИЛИ ТипОперации = "Аутентификация" Тогда
|
ИЛИ ТипОперации = "Аутентификация" Тогда
|
||||||
КлючДействия = СервисКриптографииDSSКлиентСервер.СвойствоВыполняемойОперации(НастройкиПользователя, ТипОперации);
|
КлючДействия = СервисКриптографииDSSКлиентСервер.СвойствоВыполняемойОперации(НастройкиПользователя, ТипОперации);
|
||||||
@@ -1404,6 +1407,7 @@
|
|||||||
Если ТипОперации = "Подписание" Тогда
|
Если ТипОперации = "Подписание" Тогда
|
||||||
Если ДанныеПодтверждения.ВерсияПодтверждения = 2 Тогда
|
Если ДанныеПодтверждения.ВерсияПодтверждения = 2 Тогда
|
||||||
ВидОперации = "ПодписьДокумента";
|
ВидОперации = "ПодписьДокумента";
|
||||||
|
Обязательно = ДанныеПодтверждения.Сертификат.МобильныйЗакрытыйКлюч;
|
||||||
ИначеЕсли ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПакетнаяОперация Тогда
|
ИначеЕсли ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПакетнаяОперация Тогда
|
||||||
ВидОперации = "ПодписьПакета";
|
ВидОперации = "ПодписьПакета";
|
||||||
Иначе
|
Иначе
|
||||||
@@ -1411,6 +1415,9 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ИначеЕсли ТипОперации = "Расшифрование" Тогда
|
ИначеЕсли ТипОперации = "Расшифрование" Тогда
|
||||||
ВидОперации = "Расшифрование";
|
ВидОперации = "Расшифрование";
|
||||||
|
Если ДанныеПодтверждения.ВерсияПодтверждения = 2 Тогда
|
||||||
|
Обязательно = ДанныеПодтверждения.Сертификат.МобильныйЗакрытыйКлюч;
|
||||||
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
ВидОперации = ТипОперации;
|
ВидОперации = ТипОперации;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1419,7 +1426,9 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат КлючДействия;
|
Возврат Обязательно
|
||||||
|
ИЛИ КлючДействия.Подтверждать
|
||||||
|
ИЛИ ПолучитьПолеСтруктуры(ДанныеПодтверждения, "ПараметрыВариантаВстроенного.ПодтверждатьПринудительно", Ложь);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -2175,9 +2184,9 @@
|
|||||||
НуженПинКод = ?(ЗначениеЗаполнено(ДанныеПодтверждения.Сертификат), ДанныеПодтверждения.Сертификат.ТребуетсяПинКод, Истина);
|
НуженПинКод = ?(ЗначениеЗаполнено(ДанныеПодтверждения.Сертификат), ДанныеПодтверждения.Сертификат.ТребуетсяПинКод, Истина);
|
||||||
СертификатАвторизации = НастройкиПользователя.СертификатАвторизации
|
СертификатАвторизации = НастройкиПользователя.СертификатАвторизации
|
||||||
ИЛИ НастройкиПользователя.ПервичнаяАутентификация <> ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СертификатАвторизации");
|
ИЛИ НастройкиПользователя.ПервичнаяАутентификация <> ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СертификатАвторизации");
|
||||||
|
ПарольНеНужен = НастройкиПользователя.ПервичнаяАутентификация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СервисныйКлиент");
|
||||||
|
|
||||||
КлючДействия = КлючДействияОперации(ФормаИсточник, НастройкиПользователя, ДанныеПодтверждения);
|
ТребуетсяПодтверждение = КлючДействияОперации(ФормаИсточник, НастройкиПользователя, ДанныеПодтверждения);
|
||||||
ТребуетсяПодтверждение = КлючДействия.Подтверждать;
|
|
||||||
|
|
||||||
Если НайтиЭлементФормы(ЭлементыФормы, "Комментарий") Тогда
|
Если НайтиЭлементФормы(ЭлементыФормы, "Комментарий") Тогда
|
||||||
ЕстьКомментарий = ЭлементыФормы.Комментарий.Видимость;
|
ЕстьКомментарий = ЭлементыФормы.Комментарий.Видимость;
|
||||||
@@ -2213,7 +2222,7 @@
|
|||||||
|
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияУчетнаяЗапись", "Видимость", НЕ ОтдельнаяАвторизация И БылаАвторизация, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияУчетнаяЗапись", "Видимость", НЕ ОтдельнаяАвторизация И БылаАвторизация, ИменаЭлементов);
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеЛогин", "Видимость", ЗначениеЗаполнено(КонтекстФормы[РеестрИмен.Логин]), ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеЛогин", "Видимость", ЗначениеЗаполнено(КонтекстФормы[РеестрИмен.Логин]), ИменаЭлементов);
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтверждениеПарольЗапомнить", "Видимость", НЕ ОтдельнаяАвторизация И БылаАвторизация, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтверждениеПарольЗапомнить", "Видимость", НЕ ОтдельнаяАвторизация И БылаАвторизация И НЕ ПарольНеНужен, ИменаЭлементов);
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеЗапомнитьПарольЛогина", "Видимость", ЗначениеЗаполнено(КонтекстФормы[РеестрИмен.Логин]), ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеЗапомнитьПарольЛогина", "Видимость", ЗначениеЗаполнено(КонтекстФормы[РеестрИмен.Логин]), ИменаЭлементов);
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияУчетнаяЗаписьВеб", "Видимость", ОтдельнаяАвторизация И БылаАвторизация, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияУчетнаяЗаписьВеб", "Видимость", ОтдельнаяАвторизация И БылаАвторизация, ИменаЭлементов);
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеПредставлениеСертификата", "Видимость", НЕ ОтдельнаяАвторизация И БылаАвторизация И НЕ СертификатАвторизации, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеПредставлениеСертификата", "Видимость", НЕ ОтдельнаяАвторизация И БылаАвторизация И НЕ СертификатАвторизации, ИменаЭлементов);
|
||||||
@@ -2224,12 +2233,13 @@
|
|||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияВыбор", "Видимость", ВариантВидимости <> 0, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияВыбор", "Видимость", ВариантВидимости <> 0, ИменаЭлементов);
|
||||||
Если БылаАвторизация И ИспользованиеВозможно Тогда
|
Если БылаАвторизация И ИспользованиеВозможно Тогда
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияВыбор", "Доступность", ВариантВидимости <> 0, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияВыбор", "Доступность", ВариантВидимости <> 0, ИменаЭлементов);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияОписание", "Видимость", НЕ НеНачалось И (ЕстьАвторизация ИЛИ ОперацияАутентификации), ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияОписание", "Видимость", НЕ НеНачалось И (ЕстьАвторизация ИЛИ ОперацияАутентификации), ИменаЭлементов);
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияОнлайн", "Видимость", НЕ НеНачалось И (ЕстьАвторизация ИЛИ ОперацияАутентификации) И ВариантВидимости = 3, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияОнлайн", "Видимость", НЕ НеНачалось И (ЕстьАвторизация ИЛИ ОперацияАутентификации) И ВариантВидимости = 3, ИменаЭлементов);
|
||||||
|
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеПредставлениеСертификата", "ТолькоПросмотр", ЕстьАвторизация ИЛИ (ОперацияАутентификации И НЕ НеНачалось), ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеПредставлениеСертификата", "ТолькоПросмотр", ЕстьАвторизация ИЛИ (ОперацияАутентификации И НЕ НеНачалось), ИменаЭлементов);
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеПароль", "ТолькоПросмотр", ЕстьАвторизация И НЕ ОперацияАутентификации, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеПароль", "ТолькоПросмотр", ЕстьАвторизация И НЕ ОперацияАутентификации, ИменаЭлементов);
|
||||||
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеПароль", "Видимость", НЕ ПарольНеНужен, ИменаЭлементов);
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияУчетнаяЗаписьВеб", "ТолькоПросмотр", ЕстьАвторизация, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодтвержденияУчетнаяЗаписьВеб", "ТолькоПросмотр", ЕстьАвторизация, ИменаЭлементов);
|
||||||
|
|
||||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеОК", "КнопкаПоУмолчанию", НЕ НеНачалось, ИменаЭлементов);
|
УстановитьСвойствоЭлемента(ЭлементыФормы, "ПодтверждениеОК", "КнопкаПоУмолчанию", НЕ НеНачалось, ИменаЭлементов);
|
||||||
|
|||||||
@@ -720,6 +720,7 @@
|
|||||||
ДанныеПодтверждения.ПараметрыВариантаВстроенного.Вставить("ПакетнаяОперация", Ложь);
|
ДанныеПодтверждения.ПараметрыВариантаВстроенного.Вставить("ПакетнаяОперация", Ложь);
|
||||||
ДанныеПодтверждения.ПараметрыВариантаВстроенного.Вставить("ТипРезультата", Неопределено);
|
ДанныеПодтверждения.ПараметрыВариантаВстроенного.Вставить("ТипРезультата", Неопределено);
|
||||||
ДанныеПодтверждения.ПараметрыВариантаВстроенного.Вставить("ПарольВПамяти", Ложь);
|
ДанныеПодтверждения.ПараметрыВариантаВстроенного.Вставить("ПарольВПамяти", Ложь);
|
||||||
|
ДанныеПодтверждения.ПараметрыВариантаВстроенного.Вставить("ПодтверждатьПринудительно", Ложь);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -415,6 +415,7 @@
|
|||||||
| ЭкземплярыСервераDSS.СервисПроверки КАК СервисПроверки,
|
| ЭкземплярыСервераDSS.СервисПроверки КАК СервисПроверки,
|
||||||
| ЭкземплярыСервераDSS.СервисАудита КАК СервисАудита,
|
| ЭкземплярыСервераDSS.СервисАудита КАК СервисАудита,
|
||||||
| ЭкземплярыСервераDSS.СервисОбработкиДокументов КАК СервисОбработкиДокументов,
|
| ЭкземплярыСервераDSS.СервисОбработкиДокументов КАК СервисОбработкиДокументов,
|
||||||
|
| ЭкземплярыСервераDSS.СервисныйКлиент КАК СервисныйКлиент,
|
||||||
| ЭкземплярыСервераDSS.ВнутреннийИдентификатор КАК ВнутреннийИдентификатор,
|
| ЭкземплярыСервераDSS.ВнутреннийИдентификатор КАК ВнутреннийИдентификатор,
|
||||||
| ЭкземплярыСервераDSS.ИдентификаторЦИ КАК ИдентификаторЦИ,
|
| ЭкземплярыСервераDSS.ИдентификаторЦИ КАК ИдентификаторЦИ,
|
||||||
| ЭкземплярыСервераDSS.ИдентификаторСЭП КАК ИдентификаторСЭП,
|
| ЭкземплярыСервераDSS.ИдентификаторСЭП КАК ИдентификаторСЭП,
|
||||||
@@ -2231,8 +2232,9 @@
|
|||||||
// * ТипыПодписей - Массив - массив из чисел, идентификаторов типов подписи
|
// * ТипыПодписей - Массив - массив из чисел, идентификаторов типов подписи
|
||||||
// * РежимПинКода - Строка - строковая константа режим применения пин-кодов для сертификатов варианты: Обязательно, Запрещено, Опционально
|
// * РежимПинКода - Строка - строковая константа режим применения пин-кодов для сертификатов варианты: Обязательно, Запрещено, Опционально
|
||||||
// ДанныеПолитики - Структура - сформированная структура на основе данных JSON, которые вернул сервер DSS
|
// ДанныеПолитики - Структура - сформированная структура на основе данных JSON, которые вернул сервер DSS
|
||||||
|
// ЭтоСервисныйКлиент - Булево
|
||||||
//
|
//
|
||||||
Процедура НастройкиРаботыАнализПолитикиПользователя(ПолитикаПользователя, ДанныеПолитики) Экспорт
|
Процедура НастройкиРаботыАнализПолитикиПользователя(ПолитикаПользователя, ДанныеПолитики, ЭтоСервисныйКлиент = Ложь) Экспорт
|
||||||
|
|
||||||
// По документации API сервиса, поля
|
// По документации API сервиса, поля
|
||||||
// "CAPolicy" Массив Для формирования сертификатов
|
// "CAPolicy" Массив Для формирования сертификатов
|
||||||
@@ -2277,7 +2279,7 @@
|
|||||||
ЗначениеПолитики= ПолучитьПолеСтруктуры(СтрокаМассива, "MfaRequired");
|
ЗначениеПолитики= ПолучитьПолеСтруктуры(СтрокаМассива, "MfaRequired");
|
||||||
КлючПоиска = "";
|
КлючПоиска = "";
|
||||||
Если КлючПолитики <> Неопределено И СписокДействий.Свойство(КлючПолитики, КлючПоиска) Тогда
|
Если КлючПолитики <> Неопределено И СписокДействий.Свойство(КлючПолитики, КлючПоиска) Тогда
|
||||||
ПолитикаПользователя.Действия[КлючПоиска[0]].Подтверждать = ЗначениеПолитики;
|
ПолитикаПользователя.Действия[КлючПоиска[0]].Подтверждать = ЗначениеПолитики ИЛИ ЭтоСервисныйКлиент;
|
||||||
ВсегоПолей = ВсегоПолей + 1;
|
ВсегоПолей = ВсегоПолей + 1;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
@@ -2380,14 +2382,15 @@
|
|||||||
// НастройкиПользователя - Структура - структура хранящая сессионные данные учетной записи
|
// НастройкиПользователя - Структура - структура хранящая сессионные данные учетной записи
|
||||||
// - Строка - GUID полученный для пользователя
|
// - Строка - GUID полученный для пользователя
|
||||||
// ИмяЗначения - Строка - необязательно, если передано, то возвращается значение из структуры хранения
|
// ИмяЗначения - Строка - необязательно, если передано, то возвращается значение из структуры хранения
|
||||||
|
// ОбщиеНастройки - Булево - настройки для всех пользователей
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка
|
// Строка
|
||||||
//
|
//
|
||||||
Функция ПолучитьЗакрытыеДанные(НастройкиПользователя, ИмяЗначения = Неопределено) Экспорт
|
Функция ПолучитьЗакрытыеДанные(НастройкиПользователя, ИмяЗначения = Неопределено, ОбщиеНастройки = Ложь) Экспорт
|
||||||
|
|
||||||
Результат = "";
|
Результат = "";
|
||||||
КлючЗначения = КлючЗаписиКонфиденциальныхДанных(НастройкиПользователя);
|
КлючЗначения = КлючЗаписиКонфиденциальныхДанных(НастройкиПользователя, ОбщиеНастройки);
|
||||||
ДанныеХранилища = ПрочитатьДанныеБезопасногоХранилища(КлючЗначения);
|
ДанныеХранилища = ПрочитатьДанныеБезопасногоХранилища(КлючЗначения);
|
||||||
ЗначениеПоУмолчанию = КонфиденциальныеДанныеПользователя();
|
ЗначениеПоУмолчанию = КонфиденциальныеДанныеПользователя();
|
||||||
ТекущиеНастройки = ПолучитьКонтейнерНастроек(ПолучитьИсточникНастроек(Неопределено));
|
ТекущиеНастройки = ПолучитьКонтейнерНастроек(ПолучитьИсточникНастроек(Неопределено));
|
||||||
@@ -2396,6 +2399,9 @@
|
|||||||
ЗаполнитьЗначенияСвойств(ЗначениеПоУмолчанию, ДанныеХранилища);
|
ЗаполнитьЗначенияСвойств(ЗначениеПоУмолчанию, ДанныеХранилища);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОбщиеНастройки Тогда
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПолучитьПолеСтруктуры(ЗначениеПоУмолчанию.Пароль, "Состояние") = 5
|
Если ПолучитьПолеСтруктуры(ЗначениеПоУмолчанию.Пароль, "Состояние") = 5
|
||||||
И ТекущиеНастройки.Параметры[ЗначениеПоУмолчанию.Пароль.Значение] = Неопределено Тогда
|
И ТекущиеНастройки.Параметры[ЗначениеПоУмолчанию.Пароль.Значение] = Неопределено Тогда
|
||||||
ЗначениеПоУмолчанию.Пароль = "";
|
ЗначениеПоУмолчанию.Пароль = "";
|
||||||
@@ -2406,12 +2412,17 @@
|
|||||||
ЗначениеПоУмолчанию.ПарольСертификата = "";
|
ЗначениеПоУмолчанию.ПарольСертификата = "";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПолучитьПолеСтруктуры(ЗначениеПоУмолчанию.СекретСервисногоКлиента, "Состояние") = 5
|
||||||
|
И ТекущиеНастройки.Параметры[ЗначениеПоУмолчанию.СекретСервисногоКлиента.Значение] = Неопределено Тогда
|
||||||
|
ЗначениеПоУмолчанию.СекретСервисногоКлиента = "";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ТипЗнч(ЗначениеПоУмолчанию.Пароль) = Тип("Строка") Тогда
|
Если ТипЗнч(ЗначениеПоУмолчанию.Пароль) = Тип("Строка") Тогда
|
||||||
Если ЗначениеЗаполнено(ЗначениеПоУмолчанию.Пароль) Тогда
|
Если ЗначениеЗаполнено(ЗначениеПоУмолчанию.Пароль) Тогда
|
||||||
ЗначениеПоУмолчанию.Пароль = СервисКриптографииDSSКлиентСервер.ОбъектПароля(ЗначениеПоУмолчанию.Пароль, 1);
|
ЗначениеПоУмолчанию.Пароль = СервисКриптографииDSSКлиентСервер.ОбъектПароля(ЗначениеПоУмолчанию.Пароль, 1);
|
||||||
Иначе
|
Иначе
|
||||||
ЗначениеПоУмолчанию.Пароль = СервисКриптографииDSSКлиентСервер.ОбъектПароля("", 3);
|
ЗначениеПоУмолчанию.Пароль = СервисКриптографииDSSКлиентСервер.ОбъектПароля("", 3);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ТипЗнч(ЗначениеПоУмолчанию.ПарольСертификата) = Тип("Строка") Тогда
|
Если ТипЗнч(ЗначениеПоУмолчанию.ПарольСертификата) = Тип("Строка") Тогда
|
||||||
@@ -2419,11 +2430,19 @@
|
|||||||
ЗначениеПоУмолчанию.ПарольСертификата = СервисКриптографииDSSКлиентСервер.ОбъектПароля(ЗначениеПоУмолчанию.ПарольСертификата, 1);
|
ЗначениеПоУмолчанию.ПарольСертификата = СервисКриптографииDSSКлиентСервер.ОбъектПароля(ЗначениеПоУмолчанию.ПарольСертификата, 1);
|
||||||
Иначе
|
Иначе
|
||||||
ЗначениеПоУмолчанию.ПарольСертификата = СервисКриптографииDSSКлиентСервер.ОбъектПароля("", 3);
|
ЗначениеПоУмолчанию.ПарольСертификата = СервисКриптографииDSSКлиентСервер.ОбъектПароля("", 3);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ТипЗнч(ЗначениеПоУмолчанию.СекретСервисногоКлиента) = Тип("Строка") Тогда
|
||||||
|
Если ЗначениеЗаполнено(ЗначениеПоУмолчанию.СекретСервисногоКлиента) Тогда
|
||||||
|
ЗначениеПоУмолчанию.СекретСервисногоКлиента = СервисКриптографииDSSКлиентСервер.ОбъектПароля(ЗначениеПоУмолчанию.СекретСервисногоКлиента, 0);
|
||||||
|
Иначе
|
||||||
|
ЗначениеПоУмолчанию.СекретСервисногоКлиента = СервисКриптографииDSSКлиентСервер.ОбъектПароля("", 3);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого СтрокаКлюча Из ЗначениеПоУмолчанию.Сертификаты Цикл
|
Для Каждого СтрокаКлюча Из ЗначениеПоУмолчанию.Сертификаты Цикл
|
||||||
Если ПолучитьПолеСтруктуры(СтрокаКлюча.Значение, "Состояние") = 5
|
Если ПолучитьПолеСтруктуры(СтрокаКлюча.Значение, "Состояние") = 5
|
||||||
И ТекущиеНастройки.Параметры[СтрокаКлюча.Значение.Значение] = Неопределено Тогда
|
И ТекущиеНастройки.Параметры[СтрокаКлюча.Значение.Значение] = Неопределено Тогда
|
||||||
СтрокаКлюча.Значение = "";
|
СтрокаКлюча.Значение = "";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -2454,14 +2473,15 @@
|
|||||||
// - Строка - GUID полученный для пользователя
|
// - Строка - GUID полученный для пользователя
|
||||||
// Значение - Строка, Структура, Соответствие - данные сохраняемые в безопасном хранилище
|
// Значение - Строка, Структура, Соответствие - данные сохраняемые в безопасном хранилище
|
||||||
// ИмяЗначения - Строка - имя свойства в структуре конфиденциальных данных
|
// ИмяЗначения - Строка - имя свойства в структуре конфиденциальных данных
|
||||||
|
// ОбщиеНастройки - Булево - настройки для всех пользователей
|
||||||
//
|
//
|
||||||
Процедура СохранитьЗакрытыеДанные(НастройкиПользователя, Значение, ИмяЗначения = Неопределено) Экспорт
|
Процедура СохранитьЗакрытыеДанные(НастройкиПользователя, Значение, ИмяЗначения = Неопределено, ОбщиеНастройки = Ложь) Экспорт
|
||||||
|
|
||||||
КлючЗначения = КлючЗаписиКонфиденциальныхДанных(НастройкиПользователя);
|
КлючЗначения = КлючЗаписиКонфиденциальныхДанных(НастройкиПользователя, ОбщиеНастройки);
|
||||||
НовоеЗначение = Значение;
|
НовоеЗначение = Значение;
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ИмяЗначения) Тогда
|
Если ЗначениеЗаполнено(ИмяЗначения) Тогда
|
||||||
ВсеДанные = ПолучитьЗакрытыеДанные(НастройкиПользователя);
|
ВсеДанные = ПолучитьЗакрытыеДанные(НастройкиПользователя, , ОбщиеНастройки);
|
||||||
ВсеДанные.Вставить(ИмяЗначения, Значение);
|
ВсеДанные.Вставить(ИмяЗначения, Значение);
|
||||||
НовоеЗначение = ВсеДанные;
|
НовоеЗначение = ВсеДанные;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -2825,6 +2845,7 @@
|
|||||||
| ЭкземплярыСервераDSS.СервисПодписи КАК СервисПодписи,
|
| ЭкземплярыСервераDSS.СервисПодписи КАК СервисПодписи,
|
||||||
| ЭкземплярыСервераDSS.СервисПроверки КАК СервисПроверки,
|
| ЭкземплярыСервераDSS.СервисПроверки КАК СервисПроверки,
|
||||||
| ЭкземплярыСервераDSS.СервисИдентификации КАК СервисИдентификации,
|
| ЭкземплярыСервераDSS.СервисИдентификации КАК СервисИдентификации,
|
||||||
|
| ЭкземплярыСервераDSS.СервисныйКлиент КАК СервисныйКлиент,
|
||||||
| ЭкземплярыСервераDSS.ИдентификаторЦИ КАК ИдентификаторЦИ,
|
| ЭкземплярыСервераDSS.ИдентификаторЦИ КАК ИдентификаторЦИ,
|
||||||
| ЭкземплярыСервераDSS.ИдентификаторСЭП КАК ИдентификаторСЭП,
|
| ЭкземплярыСервераDSS.ИдентификаторСЭП КАК ИдентификаторСЭП,
|
||||||
| ЭкземплярыСервераDSS.ШаблонПодтверждения КАК ШаблонПодтверждения
|
| ЭкземплярыСервераDSS.ШаблонПодтверждения КАК ШаблонПодтверждения
|
||||||
@@ -3066,6 +3087,7 @@
|
|||||||
Результат.Добавить(Перечисления.СпособыАвторизацииDSS.Первичный_ДвухФакторная);
|
Результат.Добавить(Перечисления.СпособыАвторизацииDSS.Первичный_ДвухФакторная);
|
||||||
Результат.Добавить(Перечисления.СпособыАвторизацииDSS.Первичный_СертификатАвторизации);
|
Результат.Добавить(Перечисления.СпособыАвторизацииDSS.Первичный_СертификатАвторизации);
|
||||||
Результат.Добавить(Перечисления.СпособыАвторизацииDSS.Первичный_КодАвторизации);
|
Результат.Добавить(Перечисления.СпособыАвторизацииDSS.Первичный_КодАвторизации);
|
||||||
|
Результат.Добавить(Перечисления.СпособыАвторизацииDSS.Первичный_СервисныйКлиент);
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
@@ -5549,8 +5571,14 @@
|
|||||||
РезультатЗапроса = ОтветСервисаПоУмолчанию(Истина);
|
РезультатЗапроса = ОтветСервисаПоУмолчанию(Истина);
|
||||||
РезультатЗапроса.Вставить("Результат", Результат);
|
РезультатЗапроса.Вставить("Результат", Результат);
|
||||||
|
|
||||||
|
ДанныеПодтверждения = ПараметрыВыполнения.ДанныеПодтверждения;
|
||||||
|
Если ДанныеПодтверждения = Неопределено Тогда
|
||||||
|
ДанныеПодтверждения = СервисКриптографииDSSПодтверждениеСервер.ДанныеВторичнойАвторизацииПоУмолчанию(НастройкиПользователя);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ОтдельныйВыбор = ПолучитьПолеСтруктуры(ВходящиеПараметры, "ОтдельныйВыбор", Ложь);
|
ОтдельныйВыбор = ПолучитьПолеСтруктуры(ВходящиеПараметры, "ОтдельныйВыбор", Ложь);
|
||||||
ПодтверждатьПринудительно = ПолучитьПолеСтруктуры(ВходящиеПараметры, "ПодтверждатьПринудительно", Ложь);
|
ПодтверждатьПринудительно = ПолучитьПолеСтруктуры(ВходящиеПараметры, "ПодтверждатьПринудительно", Ложь)
|
||||||
|
ИЛИ ДанныеПодтверждения.ПараметрыВариантаВстроенного.ПодтверждатьПринудительно;
|
||||||
ТипОперации = ПараметрыВыполнения.ТипОперации;
|
ТипОперации = ПараметрыВыполнения.ТипОперации;
|
||||||
Сертификат = ПараметрыВыполнения.Сертификат;
|
Сертификат = ПараметрыВыполнения.Сертификат;
|
||||||
ДанныеДокумента = ПараметрыВыполнения.ДанныеДокумента;
|
ДанныеДокумента = ПараметрыВыполнения.ДанныеДокумента;
|
||||||
@@ -5559,11 +5587,7 @@
|
|||||||
ДатаСеанса = ПараметрыВыполнения.ДатаСеанса;
|
ДатаСеанса = ПараметрыВыполнения.ДатаСеанса;
|
||||||
ТипДокумента = ПараметрыВыполнения.ТипДокумента;
|
ТипДокумента = ПараметрыВыполнения.ТипДокумента;
|
||||||
ОписаниеДокумента = ПараметрыВыполнения.ОписаниеДокумента;
|
ОписаниеДокумента = ПараметрыВыполнения.ОписаниеДокумента;
|
||||||
ДанныеПодтверждения = ПараметрыВыполнения.ДанныеПодтверждения;
|
ЭтоМассивДокументов = ТипЗнч(ДанныеДокумента) = Тип("Массив");
|
||||||
|
|
||||||
Если ДанныеПодтверждения = Неопределено Тогда
|
|
||||||
ДанныеПодтверждения = СервисКриптографииDSSПодтверждениеСервер.ДанныеВторичнойАвторизацииПоУмолчанию(НастройкиПользователя);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ВерсияПодтверждения = ДанныеПодтверждения.ВерсияПодтверждения;
|
ВерсияПодтверждения = ДанныеПодтверждения.ВерсияПодтверждения;
|
||||||
СвойствоТранзакции = Неопределено;
|
СвойствоТранзакции = Неопределено;
|
||||||
@@ -5600,6 +5624,8 @@
|
|||||||
НастройкиПользователя = ПроверитьМаркерОбновления(РезультатЗапроса, НастройкиПользователя, МаркерОбновлен);
|
НастройкиПользователя = ПроверитьМаркерОбновления(РезультатЗапроса, НастройкиПользователя, МаркерОбновлен);
|
||||||
|
|
||||||
ТекущийСертификат = СервисКриптографииDSSКлиентСервер.НайтиСертификат(НастройкиПользователя, Сертификат);
|
ТекущийСертификат = СервисКриптографииDSSКлиентСервер.НайтиСертификат(НастройкиПользователя, Сертификат);
|
||||||
|
ДанныеПодтверждения.Сертификат = ТекущийСертификат;
|
||||||
|
ПодтверждатьПринудительно = ПодтверждатьПринудительно ИЛИ ТекущийСертификат.МобильныйЗакрытыйКлюч;
|
||||||
|
|
||||||
Если ТекущийСертификат.ДатаОкончания < ДатаСеанса И ТипОперации = "Подписание" Тогда
|
Если ТекущийСертификат.ДатаОкончания < ДатаСеанса И ТипОперации = "Подписание" Тогда
|
||||||
РезультатЗапроса = ОтветСервисаПоУмолчанию(Ложь);
|
РезультатЗапроса = ОтветСервисаПоУмолчанию(Ложь);
|
||||||
@@ -5620,7 +5646,7 @@
|
|||||||
КлючДействия = СервисКриптографииDSSКлиентСервер.СвойствоВыполняемойОперации(НастройкиПользователя, "ПодписьДокумента");
|
КлючДействия = СервисКриптографииDSSКлиентСервер.СвойствоВыполняемойОперации(НастройкиПользователя, "ПодписьДокумента");
|
||||||
СвойствоПодписи = СервисКриптографииDSSКлиентСервер.ПолучитьСвойствоПодписиCMS(Истина, Ложь);
|
СвойствоПодписи = СервисКриптографииDSSКлиентСервер.ПолучитьСвойствоПодписиCMS(Истина, Ложь);
|
||||||
СервисКриптографииDSSКлиентСервер.ПолучитьИнформациюДокументаДляПодписи(СвойствоПодписи, ОписаниеДокумента, ТипДокумента);
|
СервисКриптографииDSSКлиентСервер.ПолучитьИнформациюДокументаДляПодписи(СвойствоПодписи, ОписаниеДокумента, ТипДокумента);
|
||||||
Если ТипЗнч(ДанныеДокумента) = Тип("Массив") И ВерсияПодтверждения = 1 Тогда
|
Если ЭтоМассивДокументов И ВерсияПодтверждения = 1 Тогда
|
||||||
КлючДействия = СервисКриптографииDSSКлиентСервер.СвойствоВыполняемойОперации(НастройкиПользователя, "ПодписьПакета");
|
КлючДействия = СервисКриптографииDSSКлиентСервер.СвойствоВыполняемойОперации(НастройкиПользователя, "ПодписьПакета");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
СвойствоТранзакции = СервисКриптографииDSSКлиентСервер.СвойстваТранзакцииПодписания(СвойствоПодписи, ТекущийСертификат.Идентификатор);
|
СвойствоТранзакции = СервисКриптографииDSSКлиентСервер.СвойстваТранзакцииПодписания(СвойствоПодписи, ТекущийСертификат.Идентификатор);
|
||||||
@@ -5658,9 +5684,39 @@
|
|||||||
Если ТипОперации = "Подтверждение" ИЛИ ТипОперации = "Аутентификация" Тогда
|
Если ТипОперации = "Подтверждение" ИЛИ ТипОперации = "Аутентификация" Тогда
|
||||||
РезультатЗапроса.Вставить("Результат", "");
|
РезультатЗапроса.Вставить("Результат", "");
|
||||||
ИначеЕсли ТипОперации = "Подписание" И ВерсияПодтверждения = 2 Тогда
|
ИначеЕсли ТипОперации = "Подписание" И ВерсияПодтверждения = 2 Тогда
|
||||||
РезультатЗапроса = СервисКриптографииDSS.ПодписатьАсинхронно(НастройкиПользователя, ДанныеДокумента, СвойствоПодписи, ТекущийСертификат.Идентификатор, "", ВходящиеПараметры);
|
Если ТекущийСертификат.МобильныйЗакрытыйКлюч Тогда
|
||||||
ТипРезультата = ПолучитьПолеСтруктуры(РезультатЗапроса, "ТипРезультата");
|
СписокДокументов = СервисКриптографииDSSКлиентСервер.ЗначениеВМассиве(ДанныеДокумента);
|
||||||
ИдентификаторТранзакции = ПолучитьПолеСтруктуры(РезультатЗапроса, "Результат.ИдентификаторОперации", "");
|
ПараметрыДокументов = Новый Массив;
|
||||||
|
Для Счетчик = 0 По СписокДокументов.Количество() - 1 Цикл
|
||||||
|
СтрокаМассива = СписокДокументов[Счетчик];
|
||||||
|
ИмяДокумента = ПолучитьПолеСтруктуры(СтрокаМассива, "ИмяДокумента", "Подпись");
|
||||||
|
ТипДокумента = ПолучитьПолеСтруктуры(СтрокаМассива, "ТипДокумента", "bin");
|
||||||
|
НоваяСтрока = СервисКриптографииDSSКлиентСервер.ПолучитьСвойстваДокумента(ИмяДокумента, ТипДокумента, Истина, "");
|
||||||
|
РезультатЗапроса = СервисКриптографииDSS.ЗагрузитьДокумент(НастройкиПользователя, СтрокаМассива.Содержание, НоваяСтрока, ВходящиеПараметры);
|
||||||
|
Если РезультатЗапроса.Выполнено Тогда
|
||||||
|
СписокДокументов[Счетчик] = РезультатЗапроса.Результат;
|
||||||
|
Иначе
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если РезультатЗапроса.Выполнено Тогда
|
||||||
|
Если НЕ ЭтоМассивДокументов Тогда
|
||||||
|
ДанныеДокумента = СписокДокументов[Счетчик];
|
||||||
|
Иначе
|
||||||
|
Для Счетчик = 0 По СписокДокументов.Количество() - 1 Цикл
|
||||||
|
ДанныеДокумента[Счетчик] = СписокДокументов[Счетчик];
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если РезультатЗапроса.Выполнено Тогда
|
||||||
|
РезультатЗапроса = СервисКриптографииDSS.ПодписатьАсинхронно(НастройкиПользователя, ДанныеДокумента, СвойствоПодписи, ТекущийСертификат.Идентификатор, "", ВходящиеПараметры);
|
||||||
|
ТипРезультата = ПолучитьПолеСтруктуры(РезультатЗапроса, "ТипРезультата");
|
||||||
|
ИдентификаторТранзакции = ПолучитьПолеСтруктуры(РезультатЗапроса, "Результат.ИдентификаторОперации", "");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ИначеЕсли ТипОперации = "Расшифрование" И ВерсияПодтверждения = 2 Тогда
|
ИначеЕсли ТипОперации = "Расшифрование" И ВерсияПодтверждения = 2 Тогда
|
||||||
РезультатЗапроса = СервисКриптографииDSS.РасшифроватьАсинхронно(НастройкиПользователя, ДанныеДокумента, ТекущийСертификат.Идентификатор, "CMS", "", ВходящиеПараметры);
|
РезультатЗапроса = СервисКриптографииDSS.РасшифроватьАсинхронно(НастройкиПользователя, ДанныеДокумента, ТекущийСертификат.Идентификатор, "CMS", "", ВходящиеПараметры);
|
||||||
ТипРезультата = ПолучитьПолеСтруктуры(РезультатЗапроса, "ТипРезультата");
|
ТипРезультата = ПолучитьПолеСтруктуры(РезультатЗапроса, "ТипРезультата");
|
||||||
@@ -6316,6 +6372,7 @@
|
|||||||
ОтборСпособов.Вставить(Перечисления.СпособыАвторизацииDSS.Вторичный_ЭлектроннаяПочта, 8);
|
ОтборСпособов.Вставить(Перечисления.СпособыАвторизацииDSS.Вторичный_ЭлектроннаяПочта, 8);
|
||||||
ОтборСпособов.Вставить(Перечисления.СпособыАвторизацииDSS.Вторичный_AirKeyLite, 9);
|
ОтборСпособов.Вставить(Перечисления.СпособыАвторизацииDSS.Вторичный_AirKeyLite, 9);
|
||||||
ОтборСпособов.Вставить(Перечисления.СпособыАвторизацииDSS.Вторичный_DSSSDK, 10);
|
ОтборСпособов.Вставить(Перечисления.СпособыАвторизацииDSS.Вторичный_DSSSDK, 10);
|
||||||
|
ОтборСпособов.Вставить(Перечисления.СпособыАвторизацииDSS.Первичный_СервисныйКлиент, 11);
|
||||||
|
|
||||||
Если ТипЗнч(СпособАвторизации) = Тип("Число") Тогда
|
Если ТипЗнч(СпособАвторизации) = Тип("Число") Тогда
|
||||||
Результат = Перечисления.СпособыАвторизацииDSS.Вторичный_МобильноеПриложение;
|
Результат = Перечисления.СпособыАвторизацииDSS.Вторичный_МобильноеПриложение;
|
||||||
@@ -6659,6 +6716,7 @@
|
|||||||
ДанныеПодключения.Вставить("ЗащищенноеСоединение", Истина);
|
ДанныеПодключения.Вставить("ЗащищенноеСоединение", Истина);
|
||||||
ДанныеПодключения.Вставить("ТаймАут", ВыборкаПользователей.ТаймАут);
|
ДанныеПодключения.Вставить("ТаймАут", ВыборкаПользователей.ТаймАут);
|
||||||
ДанныеПодключения.Вставить("Заглушка", "urn:ietf:wg:oauth:2.0:oob:auto");
|
ДанныеПодключения.Вставить("Заглушка", "urn:ietf:wg:oauth:2.0:oob:auto");
|
||||||
|
ДанныеПодключения.Вставить("СервисныйКлиент", ВыборкаПользователей.СервисныйКлиент);
|
||||||
|
|
||||||
Если ВыборкаПользователей <> Неопределено Тогда
|
Если ВыборкаПользователей <> Неопределено Тогда
|
||||||
ДанныеПодключения = Новый ФиксированнаяСтруктура(ДанныеПодключения);
|
ДанныеПодключения = Новый ФиксированнаяСтруктура(ДанныеПодключения);
|
||||||
@@ -6754,7 +6812,8 @@
|
|||||||
ДанныеПользователя.Методы = НастройкиРаботыТочкиПодключения(ВыборкаПользователей);
|
ДанныеПользователя.Методы = НастройкиРаботыТочкиПодключения(ВыборкаПользователей);
|
||||||
ДанныеПользователя.ШаблонПодтверждения = ВыборкаПользователей.ШаблонПодтверждения;
|
ДанныеПользователя.ШаблонПодтверждения = ВыборкаПользователей.ШаблонПодтверждения;
|
||||||
|
|
||||||
НастройкиРаботыАнализПолитикиПользователя(ДанныеПользователя.Политика, Неопределено);
|
НастройкиРаботыАнализПолитикиПользователя(ДанныеПользователя.Политика,
|
||||||
|
Неопределено, ДанныеПользователя.ПервичнаяАутентификация = Перечисления.СпособыАвторизацииDSS.Первичный_СервисныйКлиент);
|
||||||
|
|
||||||
Возврат ДанныеПользователя;
|
Возврат ДанныеПользователя;
|
||||||
|
|
||||||
@@ -6912,13 +6971,16 @@
|
|||||||
// Параметры:
|
// Параметры:
|
||||||
// НастройкиПользователя - см. СервисКриптографииDSS.НастройкиПользователяПоУмолчанию
|
// НастройкиПользователя - см. СервисКриптографииDSS.НастройкиПользователяПоУмолчанию
|
||||||
// - Строка - идентификатор поиска
|
// - Строка - идентификатор поиска
|
||||||
|
// ОбщиеНастройки - Булево - общие настройки пользователей
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка - полный путь поиска в регистре БезопасноеХранилище, включает в себя данные об учетной записи и пользователе 1С
|
// Строка - полный путь поиска в регистре БезопасноеХранилище, включает в себя данные об учетной записи и пользователе 1С
|
||||||
//
|
//
|
||||||
Функция КлючЗаписиКонфиденциальныхДанных(НастройкиПользователя)
|
Функция КлючЗаписиКонфиденциальныхДанных(НастройкиПользователя, ОбщиеНастройки = Ложь)
|
||||||
|
|
||||||
Если ТипЗнч(НастройкиПользователя) = Тип("Строка")
|
Если ОбщиеНастройки Тогда
|
||||||
|
КлючЗначения = "ЭП_DSS." + НастройкиПользователя;
|
||||||
|
ИначеЕсли ТипЗнч(НастройкиПользователя) = Тип("Строка")
|
||||||
ИЛИ ТипЗнч(НастройкиПользователя) = Тип("УникальныйИдентификатор") Тогда
|
ИЛИ ТипЗнч(НастройкиПользователя) = Тип("УникальныйИдентификатор") Тогда
|
||||||
ТекущийПользователь = Пользователи.АвторизованныйПользователь();
|
ТекущийПользователь = Пользователи.АвторизованныйПользователь();
|
||||||
КлючЗначения = "ЭлектроннаяПодписьDSS." + ТекущийПользователь.УникальныйИдентификатор() + "." + НастройкиПользователя;
|
КлючЗначения = "ЭлектроннаяПодписьDSS." + ТекущийПользователь.УникальныйИдентификатор() + "." + НастройкиПользователя;
|
||||||
@@ -6950,6 +7012,7 @@
|
|||||||
Результат.Вставить("Пароль", ЗакрытьКонфиденциальноеЗначение(""));
|
Результат.Вставить("Пароль", ЗакрытьКонфиденциальноеЗначение(""));
|
||||||
Результат.Вставить("ПарольСертификата", ЗакрытьКонфиденциальноеЗначение(""));
|
Результат.Вставить("ПарольСертификата", ЗакрытьКонфиденциальноеЗначение(""));
|
||||||
Результат.Вставить("Сертификаты", Новый Соответствие);
|
Результат.Вставить("Сертификаты", Новый Соответствие);
|
||||||
|
Результат.Вставить("СекретСервисногоКлиента", ЗакрытьКонфиденциальноеЗначение(""));
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
@@ -7211,6 +7274,8 @@
|
|||||||
Варианты = Новый Соответствие();
|
Варианты = Новый Соответствие();
|
||||||
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные"),
|
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные"),
|
||||||
НСтр("ru = 'Логин и пароль'"));
|
НСтр("ru = 'Логин и пароль'"));
|
||||||
|
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СервисныйКлиент"),
|
||||||
|
НСтр("ru = 'Логин'"));
|
||||||
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_ДвухФакторная"),
|
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_ДвухФакторная"),
|
||||||
НСтр("ru = 'Логин и пароль с дополнительным подтверждением'"));
|
НСтр("ru = 'Логин и пароль с дополнительным подтверждением'"));
|
||||||
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СертификатАвторизации"),
|
Варианты.Вставить(ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СертификатАвторизации"),
|
||||||
|
|||||||
@@ -811,6 +811,8 @@
|
|||||||
ВызватьДиалог = ПустойПароль;
|
ВызватьДиалог = ПустойПароль;
|
||||||
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные") Тогда
|
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные") Тогда
|
||||||
ВызватьДиалог = ПустойПароль;
|
ВызватьДиалог = ПустойПароль;
|
||||||
|
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СервисныйКлиент") Тогда
|
||||||
|
ВызватьДиалог = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
Если ТокенУстарел = Неопределено Тогда
|
Если ТокенУстарел = Неопределено Тогда
|
||||||
@@ -836,6 +838,9 @@
|
|||||||
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные") Тогда
|
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные") Тогда
|
||||||
ВызватьДиалог = ПустойПароль ИЛИ ЭтоОшибка;
|
ВызватьДиалог = ПустойПароль ИЛИ ЭтоОшибка;
|
||||||
ВызватьФоновоеЗадание = НЕ ВызватьДиалог;
|
ВызватьФоновоеЗадание = НЕ ВызватьДиалог;
|
||||||
|
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СервисныйКлиент") Тогда
|
||||||
|
ВызватьДиалог = ЭтоОшибка;
|
||||||
|
ВызватьФоновоеЗадание = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -901,6 +906,9 @@
|
|||||||
АутентификацияПоСертификату(НастройкиПользователя, ОписаниеСледующее, ПараметрыОперации);
|
АутентификацияПоСертификату(НастройкиПользователя, ОписаниеСледующее, ПараметрыОперации);
|
||||||
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные") Тогда
|
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_УчетныеДанные") Тогда
|
||||||
АутентификацияПоЛогину(НастройкиПользователя, ОписаниеСледующее, ПараметрыОперации);
|
АутентификацияПоЛогину(НастройкиПользователя, ОписаниеСледующее, ПараметрыОперации);
|
||||||
|
ИначеЕсли ВидАутентификации = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Первичный_СервисныйКлиент") Тогда
|
||||||
|
ОтветПользователю = ОтветСервисаПоУмолчанию(Ложь);
|
||||||
|
ПроверкаАутентификацииПользователяРезультат(ОтветПользователю, ВходящийКонтекст);
|
||||||
Иначе
|
Иначе
|
||||||
ОтветПользователю = ОтветСервисаПоУмолчанию(Ложь);
|
ОтветПользователю = ОтветСервисаПоУмолчанию(Ложь);
|
||||||
СформироватьОтказАутентификации(ОтветПользователю);
|
СформироватьОтказАутентификации(ОтветПользователю);
|
||||||
@@ -1550,7 +1558,7 @@
|
|||||||
ПодтверждатьОперацию = Ложь;
|
ПодтверждатьОперацию = Ложь;
|
||||||
ВходящийКонтекст.Вставить("Транзакция", Истина);
|
ВходящийКонтекст.Вставить("Транзакция", Истина);
|
||||||
Иначе
|
Иначе
|
||||||
ПодтверждатьОперацию = КлючДействия.Подтверждать ИЛИ ВходящийКонтекст.ПодтверждатьПринудительно;
|
ПодтверждатьОперацию = КлючДействия.Подтверждать ИЛИ ВходящийКонтекст.ПодтверждатьПринудительно ИЛИ ОписаниеСертификата.МобильныйЗакрытыйКлюч;
|
||||||
ВходящийКонтекст.Вставить("Транзакция", ПодтверждатьОперацию);
|
ВходящийКонтекст.Вставить("Транзакция", ПодтверждатьОперацию);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -2127,25 +2135,46 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОписаниеСертификата = ВходящийКонтекст.ОписаниеСертификата;
|
ОписаниеСертификата = ВходящийКонтекст.ОписаниеСертификата;
|
||||||
|
СвойствоПодписи = ВходящийКонтекст.СвойствоПодписи;
|
||||||
|
|
||||||
Если ПодтверждатьОперацию И ВерсияПодтверждения = 2 Тогда
|
Если ВерсияПодтверждения = 2 И НЕ ЗначениеЗаполнено(ВходящийКонтекст.ИдентификаторТранзакции) Тогда
|
||||||
ОбъектОповещения = Новый ОписаниеОповещения("ПодписатьАсинхронноПодтверждение", ЭтотОбъект);
|
ВходящийКонтекст.Вставить("ПодтверждатьОперацию", ПодтверждатьОперацию);
|
||||||
|
ОбъектОповещения = Новый ОписаниеОповещения("ПодписатьАсинхронноПослеВыгрузкиДокументов", ЭтотОбъект);
|
||||||
СледующееОповещение = ОбработчикОповещения(ОбъектОповещения, ВходящийКонтекст);
|
СледующееОповещение = ОбработчикОповещения(ОбъектОповещения, ВходящийКонтекст);
|
||||||
|
|
||||||
ПараметрыОперации = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ВходящийКонтекст.ПараметрыОперации); // Структура
|
Если ОписаниеСертификата.МобильныйЗакрытыйКлюч И ВходящийКонтекст.ПакетнаяПодпись Тогда
|
||||||
ПараметрыОперации.Вставить("Сертификат", ВходящийКонтекст.ПредставлениеСертификата);
|
ПараметрыДокументов = Новый Массив;
|
||||||
ПараметрыОперации.Вставить("ПодтверждатьПринудительно", Истина);
|
Для Каждого СтрокаМассива Из ВходящийКонтекст.ДанныеДокумента Цикл
|
||||||
|
ИмяДокумента = СвойствоСтруктуры(СтрокаМассива, "Name", "Подпись");
|
||||||
ОжидатьЗавершенияВыполненияВФоне(
|
ТипДокумента = СвойствоСтруктуры(СтрокаМассива, "Type", "bin");
|
||||||
СледующееОповещение,
|
НоваяСтрока = СервисКриптографииDSSКлиентСервер.ПолучитьСвойстваДокумента(ИмяДокумента, ТипДокумента, Истина, "");
|
||||||
СервисКриптографииDSSСлужебныйВызовСервера.ПодписатьАсинхронно(
|
НоваяСтрока.Вставить("Content", Base64Строка(СтрокаМассива.Содержание));
|
||||||
ВходящийКонтекст.НастройкиПользователя,
|
ПараметрыДокументов.Добавить(НоваяСтрока);
|
||||||
ВходящийКонтекст.ДанныеДокумента,
|
КонецЦикла;
|
||||||
ВходящийКонтекст.СвойствоПодписи,
|
|
||||||
ОписаниеСертификата.Идентификатор,
|
ОжидатьЗавершенияВыполненияВФоне(
|
||||||
ОписаниеСертификата.ПинКод,
|
СледующееОповещение,
|
||||||
ПараметрыОперации),
|
СервисКриптографииDSSСлужебныйВызовСервера.ЗагрузитьПакетДокументов(
|
||||||
ВходящийКонтекст.ПараметрыОперации);
|
НастройкиПользователя,
|
||||||
|
ПараметрыДокументов,
|
||||||
|
ВходящийКонтекст.ПараметрыОперации),
|
||||||
|
ВходящийКонтекст.ПараметрыОперации);
|
||||||
|
ИначеЕсли ОписаниеСертификата.МобильныйЗакрытыйКлюч Тогда
|
||||||
|
ИмяДокумента = СвойствоСтруктуры(СвойствоПодписи, "DocumentInfo", "Подпись");
|
||||||
|
ТипДокумента = СвойствоСтруктуры(СвойствоПодписи, "DocumentType", "bin");
|
||||||
|
ПараметрыДокументов = СервисКриптографииDSSКлиентСервер.ПолучитьСвойстваДокумента(ИмяДокумента, ТипДокумента, Истина, "");
|
||||||
|
|
||||||
|
ОжидатьЗавершенияВыполненияВФоне(
|
||||||
|
СледующееОповещение,
|
||||||
|
СервисКриптографииDSSСлужебныйВызовСервера.ЗагрузитьДокумент(
|
||||||
|
НастройкиПользователя,
|
||||||
|
ВходящийКонтекст.ДанныеДокумента,
|
||||||
|
ПараметрыДокументов,
|
||||||
|
ВходящийКонтекст.ПараметрыОперации),
|
||||||
|
ВходящийКонтекст.ПараметрыОперации);
|
||||||
|
Иначе
|
||||||
|
ПодписатьАсинхронноПослеВыгрузкиДокументов(Неопределено, ВходящийКонтекст);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ИначеЕсли ПодтверждатьОперацию Тогда
|
ИначеЕсли ПодтверждатьОперацию Тогда
|
||||||
ОбъектОповещения = Новый ОписаниеОповещения("ПодписатьФоновымЗаданием", ЭтотОбъект);
|
ОбъектОповещения = Новый ОписаниеОповещения("ПодписатьФоновымЗаданием", ЭтотОбъект);
|
||||||
@@ -2173,6 +2202,57 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Продолжение процедуры Подписать.
|
||||||
|
Процедура ПодписатьАсинхронноПослеВыгрузкиДокументов(ДлительнаяОперация, ВходящийКонтекст) Экспорт
|
||||||
|
|
||||||
|
РезультатВыполнения = ПолучитьРезультатВыполненияВФоне(ДлительнаяОперация, ВходящийКонтекст);
|
||||||
|
НастройкиПользователя = ВходящийКонтекст.НастройкиПользователя;
|
||||||
|
ПодтверждатьОперацию = ВходящийКонтекст.ПодтверждатьОперацию;
|
||||||
|
ОписаниеСертификата = ВходящийКонтекст.ОписаниеСертификата;
|
||||||
|
|
||||||
|
Если ДлительнаяОперация = Неопределено Тогда
|
||||||
|
РезультатВыполнения = ОтветСервисаПоУмолчанию(Истина);
|
||||||
|
ИначеЕсли РезультатВыполнения <> Неопределено Тогда
|
||||||
|
Если РезультатВыполнения.Выполнено Тогда
|
||||||
|
Если ВходящийКонтекст.ПакетнаяПодпись Тогда
|
||||||
|
Для Счетчик = 0 По РезультатВыполнения.Результат.Количество() - 1 Цикл
|
||||||
|
ВходящийКонтекст.ДанныеДокумента[Счетчик] = РезультатВыполнения.Результат[Счетчик];
|
||||||
|
КонецЦикла;
|
||||||
|
Иначе
|
||||||
|
ВходящийКонтекст.ДанныеДокумента = РезультатВыполнения.Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
ИначеЕсли НеОбрабатыватьОшибкиСервиса(ВходящийКонтекст) Тогда
|
||||||
|
ПодписатьРезультат(РезультатВыполнения, ВходящийКонтекст);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПодтверждатьОперацию ИЛИ ОписаниеСертификата.МобильныйЗакрытыйКлюч Тогда
|
||||||
|
ОбъектОповещения = Новый ОписаниеОповещения("ПодписатьАсинхронноПодтверждение", ЭтотОбъект);
|
||||||
|
СледующееОповещение = ОбработчикОповещения(ОбъектОповещения, ВходящийКонтекст);
|
||||||
|
|
||||||
|
ПараметрыОперации = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ВходящийКонтекст.ПараметрыОперации); // Структура
|
||||||
|
ПараметрыОперации.Вставить("Сертификат", ВходящийКонтекст.ПредставлениеСертификата);
|
||||||
|
ПараметрыОперации.Вставить("ПодтверждатьПринудительно", Истина);
|
||||||
|
|
||||||
|
ОжидатьЗавершенияВыполненияВФоне(
|
||||||
|
СледующееОповещение,
|
||||||
|
СервисКриптографииDSSСлужебныйВызовСервера.ПодписатьАсинхронно(
|
||||||
|
НастройкиПользователя,
|
||||||
|
ВходящийКонтекст.ДанныеДокумента,
|
||||||
|
ВходящийКонтекст.СвойствоПодписи,
|
||||||
|
ОписаниеСертификата.Идентификатор,
|
||||||
|
ОписаниеСертификата.ПинКод,
|
||||||
|
ПараметрыОперации),
|
||||||
|
ВходящийКонтекст.ПараметрыОперации);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
ПодписатьФоновымЗаданием(РезультатВыполнения, ВходящийКонтекст);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
// Продолжение процедуры Подписать.
|
// Продолжение процедуры Подписать.
|
||||||
Процедура ПодписатьАсинхронноПодтверждение(ДлительнаяОперация, ВходящийКонтекст) Экспорт
|
Процедура ПодписатьАсинхронноПодтверждение(ДлительнаяОперация, ВходящийКонтекст) Экспорт
|
||||||
|
|
||||||
|
|||||||
@@ -224,6 +224,8 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
#Область ОбработкаОшибок
|
||||||
|
|
||||||
// Вызывает метод ПоказатьИнформациюОбОшибке объекта ОбработкаОшибок.
|
// Вызывает метод ПоказатьИнформациюОбОшибке объекта ОбработкаОшибок.
|
||||||
// Требуется использовать для возможности автоматического тестирования,
|
// Требуется использовать для возможности автоматического тестирования,
|
||||||
// чтобы перехватывать ошибки с помощью расширения.
|
// чтобы перехватывать ошибки с помощью расширения.
|
||||||
@@ -429,6 +431,8 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
#Область ОбработкаСобытийПриложения
|
#Область ОбработкаСобытийПриложения
|
||||||
|
|
||||||
// Отключает выдачу предупреждения пользователю при завершении работы программы.
|
// Отключает выдачу предупреждения пользователю при завершении работы программы.
|
||||||
@@ -1206,14 +1210,14 @@
|
|||||||
// то есть с некоторой минимальной задержкой.
|
// то есть с некоторой минимальной задержкой.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Оповещение - ОписаниеОповещения - оповещение, которое нужно выполнить.
|
// ОписаниеОповещения - ОписаниеОповещения - оповещение, которое нужно выполнить.
|
||||||
// Результат - Произвольный - значение, которое передается в параметр Результат
|
// Результат - Произвольный - значение, которое передается в параметр Результат
|
||||||
// метода платформы ВыполнитьОбработкуОповещения.
|
// метода платформы ВыполнитьОбработкуОповещения.
|
||||||
//
|
//
|
||||||
Процедура НачатьВыполнениеОбработкиОповещения(Оповещение, Результат = Неопределено) Экспорт
|
Процедура НачатьВыполнениеОбработкиОповещения(ОписаниеОповещения, Результат = Неопределено) Экспорт
|
||||||
|
|
||||||
Контекст = Новый Структура;
|
Контекст = Новый Структура;
|
||||||
Контекст.Вставить("Оповещение", Оповещение);
|
Контекст.Вставить("Оповещение", ОписаниеОповещения);
|
||||||
Контекст.Вставить("Результат", Результат);
|
Контекст.Вставить("Результат", Результат);
|
||||||
|
|
||||||
Поток = Новый ПотокВПамяти;
|
Поток = Новый ПотокВПамяти;
|
||||||
@@ -1222,6 +1226,24 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Открыть выбор объектов метаданных.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ПараметрыФормы - см. СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных
|
||||||
|
// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - оповещение, вызываемое при закрытии формы с параметрами:
|
||||||
|
// # ВыбранныеОбъектыМетаданных - СписокЗначений - полные имена выбранных объектов метаданных,
|
||||||
|
// или ссылки на идентификаторы объектов метаданных, если параметр ВыбиратьСсылки установлен в Истина.
|
||||||
|
// # ДополнительныеПараметры - Произвольный - дополнительные параметры, переданные при создании оповещения.
|
||||||
|
// Если ОписаниеОповещенияОЗакрытии не указано, то будет вызвано оповещение, которое можно получить
|
||||||
|
// с помощью обработчика ОбработкаОповещения:
|
||||||
|
// # ИмяСобытия - Строка - "ВыборОбъектовМетаданных"
|
||||||
|
// # Параметр - СписокЗначений - выбранные объекты метаданных.
|
||||||
|
// # Источник - см. СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных.УникальныйИдентификаторИсточник
|
||||||
|
//
|
||||||
|
Процедура ВыбратьОбъектыМетаданных(ПараметрыФормы, ОписаниеОповещенияОЗакрытии = Неопределено) Экспорт
|
||||||
|
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыФормы,,,,, ОписаниеОповещенияОЗакрытии);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Copyright (c) 2024, ООО 1С-Софт
|
||||||
|
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||||
|
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||||
|
// Текст лицензии доступен по ссылке:
|
||||||
|
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
// Возвращает параметры выбора объектов метаданных для процедуры
|
||||||
|
// СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура:
|
||||||
|
// * КоллекцииВыбираемыхОбъектовМетаданных - СписокЗначений - фильтр по типам объектов метаданных,
|
||||||
|
// которые могут быть выбраны. Например, выбирать только объекты метаданных справочники и документы:
|
||||||
|
// КоллекцииВыбираемыхОбъектовМетаданных = Новый СписокЗначений;
|
||||||
|
// КоллекцииВыбираемыхОбъектовМетаданных.Добавить("Справочники");
|
||||||
|
// КоллекцииВыбираемыхОбъектовМетаданных.Добавить("Документы");
|
||||||
|
//
|
||||||
|
// * ФильтрПоОбъектамМетаданных - СписокЗначений - фильтр по объектам метаданных,
|
||||||
|
// которые могут быть выбраны. Например:
|
||||||
|
// ФильтрПоОбъектамМетаданных = Новый СписокЗначений;
|
||||||
|
// ФильтрПоОбъектамМетаданных.Добавить("Справочник.Товары");
|
||||||
|
// ФильтрПоОбъектамМетаданных.Добавить("Документ.СчетНаОплату");
|
||||||
|
// * ВыбранныеОбъектыМетаданных - СписокЗначений - полные имена выбранных объектов метаданных, которые
|
||||||
|
// в дереве метаданных должны быть отмечены флажком.
|
||||||
|
// * НачальноеЗначениеВыбора - Строка - полное имя метаданных, на котором будет спозиционирован
|
||||||
|
// список при открытии формы. Например, "Справочник.Партнеры".
|
||||||
|
// * ВыборЕдинственного - Булево - по умолчанию Ложь. Укажите Истина, если нужно выбрать один объект метаданных.
|
||||||
|
// При этом пометка нескольких строк будет невозможна, а выбирать можно по двойному клик по строке.
|
||||||
|
// * ВыбиратьСсылки - Булево - по умолчанию Ложь. Укажите Истина, чтобы в возвращаемом значении вместо
|
||||||
|
// полных имен выбранных метаданных содержались ссылки на их идентификаторы,
|
||||||
|
// см. ОбщегоНазначения.ИдентификаторыОбъектовМетаданных.
|
||||||
|
// * ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты - Булево - по умолчанию Ложь. При группировке объектов по видам,
|
||||||
|
// укажите Истина, чтобы в возвращаемое значение включать также типы объектов метаданных
|
||||||
|
// (Конфигурация, Справочники, Документы...), если у них выбраны все подчиненные строки.
|
||||||
|
// * ВыбиратьТаблицыВнешнихИсточниковДанных - Булево - по умолчанию Ложь для совместимости.
|
||||||
|
// * Заголовок - Строка - если не указано, то форма откроется со стандартным заголовком "Выбор объектов метаданных".
|
||||||
|
// * СпособГруппировкиОбъектов - Строка - по умолчанию "ПоВидам". Укажите "ПоРазделам", чтобы вывести дерево
|
||||||
|
// объектов метаданных по разделам командного интерфейса (подсистемам, включенным в командный интерфейс)
|
||||||
|
// вместо группировки по технологическим типам: Справочники, Документы и т.п.
|
||||||
|
// Также можно указать "ПоРазделам,ПоВидам" или "ПоВидам,ПоРазделам", чтобы в форме был доступен
|
||||||
|
// переключатель группировки объектов метаданных.
|
||||||
|
// * РодительскиеПодсистемы - СписокЗначений - можно указать список подсистемы, только подчиненные подсистемы
|
||||||
|
// которых нужно отобразить в форме.
|
||||||
|
// * ТолькоПодсистемыСКИ - Булево - по умолчанию Ложь. Укажите Истина, чтобы в списке оставить только подсистемы,
|
||||||
|
// которые включены в командный интерфейс (разделы командного интерфейса).
|
||||||
|
// * УникальныйИдентификаторИсточник - УникальныйИдентификатор - опционально. Уникальный идентификатор формы,
|
||||||
|
// передаваемый в оповещение ВыборОбъектовМетаданных в качестве параметра Источник.
|
||||||
|
// Это оповещение вызывается, если
|
||||||
|
//
|
||||||
|
Функция ПараметрыВыбораОбъектовМетаданных() Экспорт
|
||||||
|
|
||||||
|
ПараметрыФормы = Новый Структура;
|
||||||
|
ПараметрыФормы.Вставить("КоллекцииВыбираемыхОбъектовМетаданных", Новый СписокЗначений);
|
||||||
|
ПараметрыФормы.Вставить("ФильтрПоОбъектамМетаданных", Новый СписокЗначений);
|
||||||
|
ПараметрыФормы.Вставить("ВыбранныеОбъектыМетаданных", Новый СписокЗначений);
|
||||||
|
ПараметрыФормы.Вставить("НачальноеЗначениеВыбора", "");
|
||||||
|
ПараметрыФормы.Вставить("ВыборЕдинственного", Ложь);
|
||||||
|
ПараметрыФормы.Вставить("ВыбиратьСсылки", Ложь);
|
||||||
|
ПараметрыФормы.Вставить("ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты", Ложь);
|
||||||
|
ПараметрыФормы.Вставить("ВыбиратьТаблицыВнешнихИсточниковДанных", Ложь);
|
||||||
|
ПараметрыФормы.Вставить("Заголовок", "");
|
||||||
|
ПараметрыФормы.Вставить("СпособГруппировкиОбъектов", "ПоВидам");
|
||||||
|
ПараметрыФормы.Вставить("РодительскиеПодсистемы", Новый СписокЗначений);
|
||||||
|
ПараметрыФормы.Вставить("ТолькоПодсистемыСКИ", Ложь);
|
||||||
|
ПараметрыФормы.Вставить("УникальныйИдентификаторИсточник", Неопределено);
|
||||||
|
Возврат ПараметрыФормы;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6a8de94b-7b62-4d91-80df-e47c4ef90864">
|
||||||
|
<name>СтандартныеПодсистемыКлиентСервер</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Стандартные подсистемы клиент сервер</value>
|
||||||
|
</synonym>
|
||||||
|
<clientManagedApplication>true</clientManagedApplication>
|
||||||
|
<server>true</server>
|
||||||
|
<externalConnection>true</externalConnection>
|
||||||
|
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||||
|
</mdclass:CommonModule>
|
||||||
@@ -627,6 +627,15 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ИнформационнаяБазаФайловая() Экспорт
|
||||||
|
|
||||||
|
СтрокаСоединенияИнформационнойБазы = СтрокаСоединенияИнформационнойБазы();
|
||||||
|
|
||||||
|
Возврат СтрНайти(ВРег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
Функция РазделениеВключено() Экспорт
|
Функция РазделениеВключено() Экспорт
|
||||||
|
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
||||||
|
|||||||
@@ -348,7 +348,7 @@
|
|||||||
|
|
||||||
// Получает настройку необходимости выводить подтверждение при завершении работы программы
|
// Получает настройку необходимости выводить подтверждение при завершении работы программы
|
||||||
// для текущего пользователя. Предназначена для использования в форме персональных настроек
|
// для текущего пользователя. Предназначена для использования в форме персональных настроек
|
||||||
// пользователя. Пример использования см. в общей форме _ДемоМоиНастройки.
|
// пользователя.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево - если Истина, то пользователю при закрытии программы будет показано
|
// Булево - если Истина, то пользователю при закрытии программы будет показано
|
||||||
@@ -739,7 +739,17 @@
|
|||||||
// Вызывает исключение с требованием перезапустить сеанс из-за обновления расширений программы.
|
// Вызывает исключение с требованием перезапустить сеанс из-за обновления расширений программы.
|
||||||
Процедура ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы() Экспорт
|
Процедура ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы() Экспорт
|
||||||
|
|
||||||
Если ЭтоРазделенныйРежимСеансаБезРазделителей() Тогда
|
ЭтоРазделенныйРежимБезРасширенийОбластиДанных = ЭтоРазделенныйРежимСеансаБезРазделителей();
|
||||||
|
|
||||||
|
Если ЭтоРазделенныйРежимБезРасширенийОбластиДанных Тогда
|
||||||
|
ФоновоеЗадание = ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание();
|
||||||
|
Если ФоновоеЗадание <> Неопределено
|
||||||
|
И ФоновоеЗадание.РазделениеДанных.Количество() > 0 Тогда
|
||||||
|
ЭтоРазделенныйРежимБезРасширенийОбластиДанных = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЭтоРазделенныйРежимБезРасширенийОбластиДанных Тогда
|
||||||
ТекстОшибки =
|
ТекстОшибки =
|
||||||
НСтр("ru = 'Для выполнения требуемых действий следует
|
НСтр("ru = 'Для выполнения требуемых действий следует
|
||||||
|запустить сеанс с установленными разделителями.
|
|запустить сеанс с установленными разделителями.
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
// Параметры:
|
// Параметры:
|
||||||
// ОтборМетаданных - СписокЗначений из Строка - список из полных имен метаданных, в которых будет
|
// ОтборМетаданных - СписокЗначений из Строка - список из полных имен метаданных, в которых будет
|
||||||
// выполнен поиск помеченных на удаление.
|
// выполнен поиск помеченных на удаление.
|
||||||
// Например, "Справочник._ДемоНоменклатура".
|
// Например, "Справочник.Номенклатура".
|
||||||
// - Неопределено - отбор по объектам метаданных накладываться не будет.
|
// - Неопределено - отбор по объектам метаданных накладываться не будет.
|
||||||
//
|
//
|
||||||
// ИскатьТехнологическиеОбъекты - Булево - если Истина, то поиск будет осуществляться в объектах метаданных,
|
// ИскатьТехнологическиеОбъекты - Булево - если Истина, то поиск будет осуществляться в объектах метаданных,
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
// // Установка основной таблицы необходима для перехода к спискам помеченных объектов
|
// // Установка основной таблицы необходима для перехода к спискам помеченных объектов
|
||||||
// // с предустановленным отбором
|
// // с предустановленным отбором
|
||||||
// ОсновныеТаблицыСписка = Новый СписокЗначений();
|
// ОсновныеТаблицыСписка = Новый СписокЗначений();
|
||||||
// ОсновныеТаблицыСписка.Добавить("Справочник._ДемоНоменклатура");
|
// ОсновныеТаблицыСписка.Добавить("Справочник.Номенклатура");
|
||||||
// Настройка.ТипыМетаданных = ОсновныеТаблицыСписка;
|
// Настройка.ТипыМетаданных = ОсновныеТаблицыСписка;
|
||||||
// УдалениеПомеченныхОбъектов.ПриСозданииНаСервере(ЭтотОбъект, НастройкиОтображенияПомеченных);
|
// УдалениеПомеченныхОбъектов.ПриСозданииНаСервере(ЭтотОбъект, НастройкиОтображенияПомеченных);
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -17,8 +17,8 @@
|
|||||||
// помеченных на удаления.
|
// помеченных на удаления.
|
||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// Объекты.Добавить(Метаданные.Справочники._ДемоНоменклатура);
|
// Объекты.Добавить(Метаданные.Справочники.Номенклатура);
|
||||||
// Объекты.Добавить(Метаданные.Справочники._ДемоПартнеры);
|
// Объекты.Добавить(Метаданные.Справочники.Партнеры);
|
||||||
//
|
//
|
||||||
Процедура ПриОпределенииОбъектовСКомандойПоказатьПомеченные(Объекты) Экспорт
|
Процедура ПриОпределенииОбъектовСКомандойПоказатьПомеченные(Объекты) Экспорт
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large.
Load diff
@@ -1165,19 +1165,19 @@
|
|||||||
Выбранные = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(УсловияВыбора.Отмеченные);
|
Выбранные = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(УсловияВыбора.Отмеченные);
|
||||||
УдалитьОтключенныеЗначения(Выбранные);
|
УдалитьОтключенныеЗначения(Выбранные);
|
||||||
|
|
||||||
ПараметрыПодбора = Новый Структура;
|
ПараметрыПодбора = СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных();
|
||||||
ПараметрыПодбора.Вставить("ВыбиратьСсылки", Истина);
|
ПараметрыПодбора.ВыбиратьСсылки = Истина;
|
||||||
ПараметрыПодбора.Вставить("ВыбранныеОбъектыМетаданных", Выбранные);
|
ПараметрыПодбора.ВыбранныеОбъектыМетаданных = Выбранные;
|
||||||
ПараметрыПодбора.Вставить("КоллекцииВыбираемыхОбъектовМетаданных", Коллекции);
|
ПараметрыПодбора.КоллекцииВыбираемыхОбъектовМетаданных = Коллекции;
|
||||||
ПараметрыПодбора.Вставить("СпособГруппировкиОбъектов", "ПоРазделам,ПоВидам");
|
ПараметрыПодбора.СпособГруппировкиОбъектов = "ПоРазделам,ПоВидам";
|
||||||
ПараметрыПодбора.Вставить("Заголовок", НСтр("ru = 'Подбор таблиц'"));
|
ПараметрыПодбора.Заголовок = НСтр("ru = 'Подбор таблиц'");
|
||||||
|
|
||||||
Контекст = Новый Структура;
|
Контекст = Новый Структура;
|
||||||
Контекст.Вставить("УсловияВыбора", УсловияВыбора);
|
Контекст.Вставить("УсловияВыбора", УсловияВыбора);
|
||||||
Контекст.Вставить("ОповещениеОЗакрытии", ОповещениеОЗакрытии);
|
Контекст.Вставить("ОповещениеОЗакрытии", ОповещениеОЗакрытии);
|
||||||
|
|
||||||
Обработчик = Новый ОписаниеОповещения("ПослеВыбораОбъектовМетаданных", ЭтотОбъект, Контекст);
|
Обработчик = Новый ОписаниеОповещения("ПослеВыбораОбъектовМетаданных", ЭтотОбъект, Контекст);
|
||||||
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыПодбора,,,,, Обработчик);
|
СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных(ПараметрыПодбора, Обработчик);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -1195,21 +1195,21 @@
|
|||||||
УдалитьОтключенныеЗначения(Выбранные);
|
УдалитьОтключенныеЗначения(Выбранные);
|
||||||
Коллекции = Новый СписокЗначений;
|
Коллекции = Новый СписокЗначений;
|
||||||
|
|
||||||
ПараметрыПодбора = Новый Структура;
|
ПараметрыПодбора = СтандартныеПодсистемыКлиентСервер.ПараметрыВыбораОбъектовМетаданных();
|
||||||
ПараметрыПодбора.Вставить("ВыбранныеОбъектыМетаданных", Выбранные);
|
ПараметрыПодбора.ВыбранныеОбъектыМетаданных = Выбранные;
|
||||||
ПараметрыПодбора.Вставить("КоллекцииВыбираемыхОбъектовМетаданных", Коллекции);
|
ПараметрыПодбора.КоллекцииВыбираемыхОбъектовМетаданных = Коллекции;
|
||||||
|
|
||||||
Если УсловияВыбора.ИмяПоля = "Роль" Тогда
|
Если УсловияВыбора.ИмяПоля = "Роль" Тогда
|
||||||
Для Каждого ЭлементСписка Из Выбранные Цикл
|
Для Каждого ЭлементСписка Из Выбранные Цикл
|
||||||
ЭлементСписка.Значение = "Роль." + ЭлементСписка.Значение;
|
ЭлементСписка.Значение = "Роль." + ЭлементСписка.Значение;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
ПараметрыПодбора.Вставить("СпособГруппировкиОбъектов", "ПоВидам");
|
ПараметрыПодбора.СпособГруппировкиОбъектов = "ПоВидам";
|
||||||
ПараметрыПодбора.Вставить("Заголовок", НСтр("ru = 'Подбор ролей'"));
|
ПараметрыПодбора.Заголовок = НСтр("ru = 'Подбор ролей'");
|
||||||
Коллекции.Добавить("Роли");
|
Коллекции.Добавить("Роли");
|
||||||
Иначе
|
Иначе
|
||||||
ПараметрыПодбора.Вставить("СпособГруппировкиОбъектов", "ПоВидам,ПоРазделам");
|
ПараметрыПодбора.СпособГруппировкиОбъектов = "ПоВидам,ПоРазделам";
|
||||||
ПараметрыПодбора.Вставить("Заголовок", НСтр("ru = 'Подбор объектов метаданных'"));
|
ПараметрыПодбора.Заголовок = НСтр("ru = 'Подбор объектов метаданных'");
|
||||||
ПараметрыПодбора.Вставить("ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты", Истина);
|
ПараметрыПодбора.ВыбиратьКоллекцииКогдаВыбраныВсеОбъекты = Истина;
|
||||||
ДобавитьКоллекцииОбъектовМетаданныхСПравами(Коллекции);
|
ДобавитьКоллекцииОбъектовМетаданныхСПравами(Коллекции);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -1218,7 +1218,7 @@
|
|||||||
Контекст.Вставить("ОповещениеОЗакрытии", ОповещениеОЗакрытии);
|
Контекст.Вставить("ОповещениеОЗакрытии", ОповещениеОЗакрытии);
|
||||||
|
|
||||||
Обработчик = Новый ОписаниеОповещения("ПослеВыбораОбъектовМетаданных", ЭтотОбъект, Контекст);
|
Обработчик = Новый ОписаниеОповещения("ПослеВыбораОбъектовМетаданных", ЭтотОбъект, Контекст);
|
||||||
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыПодбора,,,,, Обработчик);
|
СтандартныеПодсистемыКлиент.ВыбратьОбъектыМетаданных(ПараметрыПодбора, Обработчик);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -1127,6 +1127,30 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращает строку символов.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Символ - Строка - строка длиной 1 символ.
|
||||||
|
// Количество - Число - количество символов, которые требуется вернуть.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка
|
||||||
|
//
|
||||||
|
Функция СтрокаСимволов(Символ = " ", Количество = 50) Экспорт
|
||||||
|
|
||||||
|
Шаблон = " ";
|
||||||
|
Если Количество > 50 Тогда
|
||||||
|
Шаблоны = Новый Массив;
|
||||||
|
Пока Шаблоны.Количество() * 50 < Количество Цикл
|
||||||
|
Шаблоны.Добавить(Шаблон);
|
||||||
|
КонецЦикла;
|
||||||
|
Шаблон = СтрСоединить(Шаблоны, "");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Лев(СтрЗаменить(Шаблон, " ", Символ), Количество);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция ДоступнаБалансировкаНагрузкиНаДиск() Экспорт
|
Функция ДоступнаБалансировкаНагрузкиНаДиск() Экспорт
|
||||||
|
|
||||||
Возврат Не ОбщегоНазначения.ИнформационнаяБазаФайловая();
|
Возврат Не ОбщегоНазначения.ИнформационнаяБазаФайловая();
|
||||||
|
|||||||
@@ -3765,7 +3765,7 @@
|
|||||||
// Подсказка - Строка - подсказка команды.
|
// Подсказка - Строка - подсказка команды.
|
||||||
// Картинка - Картинка - картинка команды.
|
// Картинка - Картинка - картинка команды.
|
||||||
// Действие - Строка - полный путь к процедуре, которую необходимо выполнить.
|
// Действие - Строка - полный путь к процедуре, которую необходимо выполнить.
|
||||||
// Например, "_ДемоСтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча".
|
// Например, "СтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча".
|
||||||
// ИзменяетСохраняемыеДанные - Булево
|
// ИзменяетСохраняемыеДанные - Булево
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
|||||||
@@ -1972,7 +1972,7 @@
|
|||||||
|
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ИмяОбработчика - Строка - полный путь к функции, которую необходимо выполнить.
|
// ИмяОбработчика - Строка - полный путь к функции, которую необходимо выполнить.
|
||||||
// Например, "_ДемоСтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча".
|
// Например, "СтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча".
|
||||||
// Параметры - Структура:
|
// Параметры - Структура:
|
||||||
// * КонтактнаяИнформация - см. ПараметрКонтактнаяИнформацияДляВыполненияКоманд
|
// * КонтактнаяИнформация - см. ПараметрКонтактнаяИнформацияДляВыполненияКоманд
|
||||||
// * ДополнительныеПараметры - см. ДополнительныеПараметрыДляВыполненияКоманд
|
// * ДополнительныеПараметры - см. ДополнительныеПараметрыДляВыполненияКоманд
|
||||||
|
|||||||
@@ -39,12 +39,12 @@
|
|||||||
// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Заголовок = НСтр("ru='Встреча'");
|
// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Заголовок = НСтр("ru='Встреча'");
|
||||||
// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Подсказка = НСтр("ru='Создать событие встречи'");
|
// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Подсказка = НСтр("ru='Создать событие встречи'");
|
||||||
// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Картинка = БиблиотекаКартинок.ЗапланированноеВзаимодействие;
|
// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Картинка = БиблиотекаКартинок.ЗапланированноеВзаимодействие;
|
||||||
// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Действие = "_ДемоСтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча";
|
// Настройки.ОписаниеКоманд[Адрес].ЗапланироватьВстречу.Действие = "СтандартныеПодсистемыКлиент.ОткрытьФормуДокументаВстреча";
|
||||||
//
|
//
|
||||||
// _ДемоФактическийАдресОрганизации = УправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("_ДемоФактическийАдресОрганизации");
|
// ФактическийАдресОрганизации = УправлениеКонтактнойИнформацией.ВидКонтактнойИнформацииПоИмени("ФактическийАдресОрганизации");
|
||||||
// Настройки.ОписаниеКоманд[_ДемоФактическийАдресОрганизации] =
|
// Настройки.ОписаниеКоманд[ФактическийАдресОрганизации] =
|
||||||
// ОбщегоНазначения.СкопироватьРекурсивно(УправлениеКонтактнойИнформацией.КомандыТипаКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес));
|
// ОбщегоНазначения.СкопироватьРекурсивно(УправлениеКонтактнойИнформацией.КомандыТипаКонтактнойИнформации(Перечисления.ТипыКонтактнойИнформации.Адрес));
|
||||||
// Настройки.ОписаниеКоманд[_ДемоФактическийАдресОрганизации].ЗапланироватьВстречу.Действие = ""; // Отключение действия команды для вида
|
// Настройки.ОписаниеКоманд[ФактическийАдресОрганизации].ЗапланироватьВстречу.Действие = ""; // Отключение действия команды для вида
|
||||||
//
|
//
|
||||||
// Процедурам, указанных в свойстве Действие, передаются 2 параметра:
|
// Процедурам, указанных в свойстве Действие, передаются 2 параметра:
|
||||||
// КонтактнаяИнформация - Структура:
|
// КонтактнаяИнформация - Структура:
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
// Процедура ОткрытьФормуДокументаВстреча(КонтактнаяИнформация, ДополнительныеПараметры) Экспорт
|
// Процедура ОткрытьФормуДокументаВстреча(КонтактнаяИнформация, ДополнительныеПараметры) Экспорт
|
||||||
// ЗначенияЗаполнения = Новый Структура;
|
// ЗначенияЗаполнения = Новый Структура;
|
||||||
// ЗначенияЗаполнения.Вставить("МестоПроведенияВстречи", КонтактнаяИнформация.Представление);
|
// ЗначенияЗаполнения.Вставить("МестоПроведенияВстречи", КонтактнаяИнформация.Представление);
|
||||||
// Если ТипЗнч(ДополнительныеПараметры.ВладелецКонтактнойИнформации) = Тип("ДокументСсылка._ДемоЗаказПокупателя") Тогда
|
// Если ТипЗнч(ДополнительныеПараметры.ВладелецКонтактнойИнформации) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
|
||||||
// ЗначенияЗаполнения.Вставить("Предмет", ДополнительныеПараметры.ВладелецКонтактнойИнформации);
|
// ЗначенияЗаполнения.Вставить("Предмет", ДополнительныеПараметры.ВладелецКонтактнойИнформации);
|
||||||
// ЗначенияЗаполнения.Вставить("Контакт", "");
|
// ЗначенияЗаполнения.Вставить("Контакт", "");
|
||||||
// Иначе
|
// Иначе
|
||||||
@@ -81,12 +81,12 @@
|
|||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Наименования - Соответствие из КлючИЗначение - представление вида контактной информации на переданном языке:
|
// Наименования - Соответствие из КлючИЗначение - представление вида контактной информации на переданном языке:
|
||||||
// * Ключ - Строка - имя вида контактной информации. Например, "_ДемоАдресПартнера".
|
// * Ключ - Строка - имя вида контактной информации. Например, "АдресПартнера".
|
||||||
// * Значение - Строка - наименование вида контактной информации для переданного кода языка.
|
// * Значение - Строка - наименование вида контактной информации для переданного кода языка.
|
||||||
// КодЯзыка - Строка - код языка. Например, "en".
|
// КодЯзыка - Строка - код языка. Например, "en".
|
||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// Наименования["_ДемоАдресПартнера"] = НСтр("ru='Адрес'; en='Address';", КодЯзыка);
|
// Наименования["АдресПартнера"] = НСтр("ru='Адрес'; en='Address';", КодЯзыка);
|
||||||
//
|
//
|
||||||
Процедура ПриПолученииНаименованийВидовКонтактнойИнформации(Наименования, КодЯзыка) Экспорт
|
Процедура ПриПолученииНаименованийВидовКонтактнойИнформации(Наименования, КодЯзыка) Экспорт
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
// Если ПечатнаяФорма <> Неопределено Тогда
|
// Если ПечатнаяФорма <> Неопределено Тогда
|
||||||
// ПечатнаяФорма.ТабличныйДокумент = ПечатьКвитанции(МассивОбъектов);
|
// ПечатнаяФорма.ТабличныйДокумент = ПечатьКвитанции(МассивОбъектов);
|
||||||
// ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Квитанция (с QR кодом)'");
|
// ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Квитанция (с QR кодом)'");
|
||||||
// ПечатнаяФорма.ПолныйПутьКМакету = "Документ._ДемоСчетНаОплатуПокупателю.ПФ_MXL_Квитанция";
|
// ПечатнаяФорма.ПолныйПутьКМакету = "Документ.СчетНаОплатуПокупателю.ПФ_MXL_Квитанция";
|
||||||
// КонецЕсли;
|
// КонецЕсли;
|
||||||
//
|
//
|
||||||
Функция СведенияОПечатнойФорме(КоллекцияПечатныхФорм, Идентификатор) Экспорт
|
Функция СведенияОПечатнойФорме(КоллекцияПечатныхФорм, Идентификатор) Экспорт
|
||||||
@@ -356,7 +356,7 @@
|
|||||||
//
|
//
|
||||||
// Для печатных форм, менеджером печати которых является общий модуль
|
// Для печатных форм, менеджером печати которых является общий модуль
|
||||||
// "УправлениеПечатью", в качестве идентификатора необходимо указать полный путь к макету.
|
// "УправлениеПечатью", в качестве идентификатора необходимо указать полный путь к макету.
|
||||||
// Например, "Документ._ДемоСчетНаОплатуПокупателю.ПФ_MXL_СчетНаОплату".
|
// Например, "Документ.СчетНаОплатуПокупателю.ПФ_MXL_СчетНаОплату".
|
||||||
//
|
//
|
||||||
// - Массив - список идентификаторов команд печати.
|
// - Массив - список идентификаторов команд печати.
|
||||||
//
|
//
|
||||||
@@ -384,7 +384,7 @@
|
|||||||
// Формат "<ИмяПроцедуры>" используется, когда процедура размещена
|
// Формат "<ИмяПроцедуры>" используется, когда процедура размещена
|
||||||
// в модуле основной формы отчета или обработки, указанной в МенеджерПечати.
|
// в модуле основной формы отчета или обработки, указанной в МенеджерПечати.
|
||||||
// Например,
|
// Например,
|
||||||
// КомандаПечати.Обработчик = "_ДемоСтандартныеПодсистемыКлиент.ПечатьСчетовНаОплатуПокупателю";
|
// КомандаПечати.Обработчик = "ЗащитаПерсональныхДанныхКлиент.ОткрытьФормуСогласиеНаОбработкуПерсональныхДанных";
|
||||||
// Пример обработчика в модуле формы:
|
// Пример обработчика в модуле формы:
|
||||||
// // Формирует печатную форму <представление печатной формы>.
|
// // Формирует печатную форму <представление печатной формы>.
|
||||||
// //
|
// //
|
||||||
@@ -5861,6 +5861,8 @@
|
|||||||
|
|
||||||
ОбработанныеЯчейки = Новый Соответствие;
|
ОбработанныеЯчейки = Новый Соответствие;
|
||||||
|
|
||||||
|
ФункцииСРазделениемПараметров = ФункцииСРазделениемПараметров();
|
||||||
|
|
||||||
Для НомерСтроки = Область.Верх По Область.Низ Цикл
|
Для НомерСтроки = Область.Верх По Область.Низ Цикл
|
||||||
Для НомерСтолбца = 1 По Макет.ШиринаТаблицы Цикл
|
Для НомерСтолбца = 1 По Макет.ШиринаТаблицы Цикл
|
||||||
ОбластьЯчейки = Макет.Область(НомерСтроки, НомерСтолбца, НомерСтроки, НомерСтолбца);
|
ОбластьЯчейки = Макет.Область(НомерСтроки, НомерСтолбца, НомерСтроки, НомерСтолбца);
|
||||||
@@ -5876,11 +5878,24 @@
|
|||||||
Для Каждого Параметр Из ПараметрыВТексте Цикл
|
Для Каждого Параметр Из ПараметрыВТексте Цикл
|
||||||
Выражение = ОчиститьКвадратныеСкобки(Параметр);
|
Выражение = ОчиститьКвадратныеСкобки(Параметр);
|
||||||
ЭлементыФормулы =КонструкторФормулСлужебный.ЭлементыФормулы(Выражение);
|
ЭлементыФормулы =КонструкторФормулСлужебный.ЭлементыФормулы(Выражение);
|
||||||
|
|
||||||
|
НайденаФункцияИтогов = Ложь;
|
||||||
|
|
||||||
Для Каждого Элемент Из ЭлементыФормулы.ВсеЭлементы Цикл
|
Для Каждого Элемент Из ЭлементыФормулы.ВсеЭлементы Цикл
|
||||||
|
Если СтрНачинаетсяС(Элемент, ИмяМодуляПечати() + РазделительКоманды())
|
||||||
|
И ФункцииСРазделениемПараметров.Найти(Элемент) <> Неопределено Тогда
|
||||||
|
НайденаФункцияИтогов = Истина;
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого Таблица Из Таблицы Цикл
|
Для Каждого Таблица Из Таблицы Цикл
|
||||||
СтрокаПоиска = Таблица + ".";
|
СтрокаПоиска = Таблица + ".";
|
||||||
Если СтрНачинаетсяС(Элемент, СтрокаПоиска) Тогда
|
Если СтрНачинаетсяС(Элемент, СтрокаПоиска) Тогда
|
||||||
Возврат Таблица;
|
Если НайденаФункцияИтогов Тогда
|
||||||
|
НайденаФункцияИтогов = Ложь;
|
||||||
|
Иначе
|
||||||
|
Возврат Таблица;
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
@@ -7054,7 +7069,7 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СоответствиеСтроки = Новый Соответствие();
|
СоответствиеСтроки = ОбщегоНазначения.СкопироватьРекурсивно(ИсточникДанных);
|
||||||
Для Каждого ПараметрОбласти Из МассивПараметровОбласти Цикл
|
Для Каждого ПараметрОбласти Из МассивПараметровОбласти Цикл
|
||||||
|
|
||||||
Представление = УстановитьПредставлениеКартинку(КодЯзыка, ПараметрОбласти, НастройкиФорматаПолей, ИсточникДанных, ПараметрыПечати);
|
Представление = УстановитьПредставлениеКартинку(КодЯзыка, ПараметрОбласти, НастройкиФорматаПолей, ИсточникДанных, ПараметрыПечати);
|
||||||
|
|||||||
@@ -366,7 +366,7 @@
|
|||||||
// Формат "<ИмяПроцедуры>" используется, когда процедура размещена
|
// Формат "<ИмяПроцедуры>" используется, когда процедура размещена
|
||||||
// в модуле основной формы отчета или обработки, указанной в МенеджерПечати.
|
// в модуле основной формы отчета или обработки, указанной в МенеджерПечати.
|
||||||
// Например,
|
// Например,
|
||||||
// КомандаПечати.Обработчик = "_ДемоСтандартныеПодсистемыКлиент.ПечатьСчетовНаОплатуПокупателю";
|
// КомандаПечати.Обработчик = "ЗащитаПерсональныхДанныхКлиент.ОткрытьФормуСогласиеНаОбработкуПерсональныхДанных";
|
||||||
// Пример обработчика в модуле формы:
|
// Пример обработчика в модуле формы:
|
||||||
// // Формирует печатную форму <представление печатной формы>.
|
// // Формирует печатную форму <представление печатной формы>.
|
||||||
// //
|
// //
|
||||||
|
|||||||
@@ -1220,14 +1220,10 @@
|
|||||||
СтрокаДерева.Текст = СтрЗаменить(ЧтениеXML.Значение, Символ(160), " ");
|
СтрокаДерева.Текст = СтрЗаменить(ЧтениеXML.Значение, Символ(160), " ");
|
||||||
Если СтрНачинаетсяС(СтрокаДерева.Текст, "HYPERLINK ") Тогда
|
Если СтрНачинаетсяС(СтрокаДерева.Текст, "HYPERLINK ") Тогда
|
||||||
СтрокаДерева.Текст = РаскодироватьСтроку(ЧтениеXML.Значение, СпособКодированияСтроки.КодировкаURL);
|
СтрокаДерева.Текст = РаскодироватьСтроку(ЧтениеXML.Значение, СпособКодированияСтроки.КодировкаURL);
|
||||||
Иначе
|
|
||||||
СтрокаДерева.Текст = СтрЗаменить(ЧтениеXML.Значение, Символ(160), " ");
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СтрокаДерева.ПолныйТекст = СтрокаДерева.Текст;
|
СтрокаДерева.ПолныйТекст = СтрокаДерева.Текст;
|
||||||
ПолныйТекст = ПолныйТекст + СтрокаДерева.ПолныйТекст;
|
ПолныйТекст = ПолныйТекст + СтрокаДерева.ПолныйТекст;
|
||||||
ЧтениеXML.Прочитать();
|
|
||||||
Возврат ПолныйТекст;
|
|
||||||
Иначе
|
Иначе
|
||||||
ВызватьИсключение (НСтр("ru = 'Не известный:'") + " " + ЧтениеXML.ТипУзла);
|
ВызватьИсключение (НСтр("ru = 'Не известный:'") + " " + ЧтениеXML.ТипУзла);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -299,6 +299,7 @@
|
|||||||
ВладелецФормы = ПараметрыОткрытия.ВладелецФормы;
|
ВладелецФормы = ПараметрыОткрытия.ВладелецФормы;
|
||||||
ПараметрыОткрытия.ВладелецФормы = Неопределено;
|
ПараметрыОткрытия.ВладелецФормы = Неопределено;
|
||||||
СписокПереданныхПараметров.Удалить(0);
|
СписокПереданныхПараметров.Удалить(0);
|
||||||
|
ПодключитьОбработчикОжидания("ПродолжитьВыполнениеКомандыПечатиСПереданнымиПараметрами", 0.1, Истина);
|
||||||
|
|
||||||
Если ТипЗнч(ПараметрыПечати) = Тип("Структура")
|
Если ТипЗнч(ПараметрыПечати) = Тип("Структура")
|
||||||
И ПараметрыПечати.Свойство("ВыполнятьВФоновомЗадании")
|
И ПараметрыПечати.Свойство("ВыполнятьВФоновомЗадании")
|
||||||
|
|||||||
@@ -195,7 +195,9 @@
|
|||||||
| ИНАЧЕ ЛОЖЬ
|
| ИНАЧЕ ЛОЖЬ
|
||||||
| КОНЕЦ
|
| КОНЕЦ
|
||||||
| ИНАЧЕ ИСТИНА
|
| ИНАЧЕ ИСТИНА
|
||||||
| КОНЕЦ
|
| КОНЕЦ
|
||||||
|
|УПОРЯДОЧИТЬ ПО
|
||||||
|
| ЕСТЬNULL(НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.КоличествоПопыток, 0)
|
||||||
|ИТОГИ ПО
|
|ИТОГИ ПО
|
||||||
| УчетнаяЗапись";
|
| УчетнаяЗапись";
|
||||||
|
|
||||||
@@ -225,8 +227,8 @@
|
|||||||
РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись);
|
РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Письма = Новый Массив;
|
Письма = Новый Массив;
|
||||||
СсылкиПисем = Новый Соответствие;
|
ДанныеПисем = Новый Соответствие;
|
||||||
|
|
||||||
ВыборкаПисьма = ВыборкаУчетныеЗаписи.Выбрать();
|
ВыборкаПисьма = ВыборкаУчетныеЗаписи.Выбрать();
|
||||||
Пока ВыборкаПисьма.Следующий() Цикл
|
Пока ВыборкаПисьма.Следующий() Цикл
|
||||||
@@ -257,7 +259,13 @@
|
|||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
Письма.Добавить(Письмо);
|
Письма.Добавить(Письмо);
|
||||||
СсылкиПисем.Вставить(ВыборкаПисьма.Ссылка, Письмо);
|
|
||||||
|
ДанныеПисьма = Новый Структура;
|
||||||
|
ДанныеПисьма.Вставить("Письмо", Письмо);
|
||||||
|
ДанныеПисьма.Вставить("КоличествоПопыток", ВыборкаПисьма.КоличествоПопыток);
|
||||||
|
ДанныеПисьма.Вставить("ПредставлениеПисьма", ВыборкаПисьма.ПредставлениеПисьма);
|
||||||
|
|
||||||
|
ДанныеПисем.Вставить(ВыборкаПисьма.Ссылка, ДанныеПисьма);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
@@ -274,20 +282,44 @@
|
|||||||
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке,
|
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке,
|
||||||
УчетнаяЗапись, РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка()));
|
УчетнаяЗапись, РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка()));
|
||||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , ТекстСообщенияОбОшибке);
|
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , ТекстСообщенияОбОшибке);
|
||||||
Если Не ЗначениеЗаполнено(РезультатОтправки) Тогда
|
|
||||||
Продолжить;
|
Если Не ЗначениеЗаполнено(РезультатОтправки) Тогда
|
||||||
КонецЕсли;
|
|
||||||
|
Если Письма.Количество() <> 0 Тогда
|
||||||
|
ДанныеПервогоПисьма = СсылкаНаПисьмоПоОтправляемомуПочтовомуСообщению(ДанныеПисем, Письма[0]);
|
||||||
|
|
||||||
|
Если ДанныеПервогоПисьма <> Неопределено Тогда
|
||||||
|
|
||||||
|
ПараметрыОбработкиОшибки = ПараметрыОбработкиОшибкиОтправки();
|
||||||
|
ПараметрыОбработкиОшибки.ПисьмоОбъект = ДанныеПервогоПисьма.Ключ.ПолучитьОбъект();
|
||||||
|
ПараметрыОбработкиОшибки.Ссылка = ДанныеПервогоПисьма.Ключ;
|
||||||
|
ПараметрыОбработкиОшибки.ПредставлениеПисьма = ДанныеПервогоПисьма.Значение.ПредставлениеПисьма;
|
||||||
|
ПараметрыОбработкиОшибки.КоличествоПопыток = ДанныеПервогоПисьма.Значение.КоличествоПопыток;
|
||||||
|
ПараметрыОбработкиОшибки.ИнкрементироватьКоличествоПопыток = Истина;
|
||||||
|
ПараметрыОбработкиОшибки.СообщатьПользователю = Интерактивно;
|
||||||
|
ПараметрыОбработкиОшибки.ТекстОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
|
||||||
|
РезультатОбработкиОшибки = ОбработатьОшибкуОтправкиПисьма(ПараметрыОбработкиОшибки, Новый Массив);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
ТекстыОшибок = Новый Массив;
|
ТекстыОшибок = Новый Массив;
|
||||||
ВыборкаПисьма = ВыборкаУчетныеЗаписи.Выбрать();
|
ВыборкаПисьма = ВыборкаУчетныеЗаписи.Выбрать();
|
||||||
Пока ВыборкаПисьма.Следующий() Цикл
|
Пока ВыборкаПисьма.Следующий() Цикл
|
||||||
ПисьмоСсылка = ВыборкаПисьма.Ссылка;
|
ПисьмоСсылка = ВыборкаПисьма.Ссылка;
|
||||||
РезультатОтправкиПисьма = РезультатОтправки[СсылкиПисем[ПисьмоСсылка]];
|
РезультатОтправкиПисьма = РезультатОтправки[ДанныеПисем[ПисьмоСсылка].Письмо];
|
||||||
ОшибочныеПолучатели = Неопределено;
|
ОшибочныеПолучатели = Неопределено;
|
||||||
Если РезультатОтправкиПисьма <> Неопределено Тогда
|
Если РезультатОтправкиПисьма <> Неопределено Тогда
|
||||||
ОшибочныеПолучатели = РезультатОтправкиПисьма.ОшибочныеПолучатели;
|
ОшибочныеПолучатели = РезультатОтправкиПисьма.ОшибочныеПолучатели;
|
||||||
Если ЗначениеЗаполнено(ОшибочныеПолучатели) Тогда
|
Если ЗначениеЗаполнено(ОшибочныеПолучатели) Тогда
|
||||||
|
|
||||||
ПараметрыОбработкиОшибки = ПараметрыОбработкиОшибкиОтправки();
|
ПараметрыОбработкиОшибки = ПараметрыОбработкиОшибкиОтправки();
|
||||||
ПараметрыОбработкиОшибки.ПисьмоОбъект = ВыборкаПисьма.Ссылка.ПолучитьОбъект();
|
ПараметрыОбработкиОшибки.ПисьмоОбъект = ВыборкаПисьма.Ссылка.ПолучитьОбъект();
|
||||||
ПараметрыОбработкиОшибки.Ссылка = ВыборкаПисьма.Ссылка;
|
ПараметрыОбработкиОшибки.Ссылка = ВыборкаПисьма.Ссылка;
|
||||||
@@ -299,7 +331,8 @@
|
|||||||
РезультатОбработкиОшибки = ОбработатьОшибкуОтправкиПисьма(ПараметрыОбработкиОшибки, ОшибочныеПолучатели);
|
РезультатОбработкиОшибки = ОбработатьОшибкуОтправкиПисьма(ПараметрыОбработкиОшибки, ОшибочныеПолучатели);
|
||||||
Если Не РезультатОбработкиОшибки.ПисьмоОтправлено Тогда
|
Если Не РезультатОбработкиОшибки.ПисьмоОтправлено Тогда
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОтправленоПисем = ОтправленоПисем + 1;
|
ОтправленоПисем = ОтправленоПисем + 1;
|
||||||
@@ -320,7 +353,37 @@
|
|||||||
ВсеПолученныеПисьма.Добавить(ВыборкаПисьма.Ссылка);
|
ВсеПолученныеПисьма.Добавить(ВыборкаПисьма.Ссылка);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если РезультатОтправки.Количество() <> Письма.Количество() Тогда
|
||||||
|
|
||||||
|
Для Каждого ОтправляемоеПисьмо Из Письма Цикл
|
||||||
|
|
||||||
|
Если РезультатОтправки[ОтправляемоеПисьмо] = Неопределено Тогда
|
||||||
|
|
||||||
|
ДанныеПервогоНеотправленногоПисьма = СсылкаНаПисьмоПоОтправляемомуПочтовомуСообщению(ДанныеПисем, ОтправляемоеПисьмо);
|
||||||
|
|
||||||
|
Если ДанныеПервогоНеотправленногоПисьма <> Неопределено Тогда
|
||||||
|
|
||||||
|
ПараметрыОбработкиОшибки = ПараметрыОбработкиОшибкиОтправки();
|
||||||
|
ПараметрыОбработкиОшибки.ПисьмоОбъект = ДанныеПервогоНеотправленногоПисьма.Ключ.ПолучитьОбъект();
|
||||||
|
ПараметрыОбработкиОшибки.Ссылка = ДанныеПервогоНеотправленногоПисьма.Ключ;
|
||||||
|
ПараметрыОбработкиОшибки.ПредставлениеПисьма = ДанныеПервогоНеотправленногоПисьма.Значение.ПредставлениеПисьма;
|
||||||
|
ПараметрыОбработкиОшибки.КоличествоПопыток = ДанныеПервогоНеотправленногоПисьма.Значение.КоличествоПопыток;
|
||||||
|
ПараметрыОбработкиОшибки.ИнкрементироватьКоличествоПопыток = Истина;
|
||||||
|
ПараметрыОбработкиОшибки.СообщатьПользователю = Интерактивно;
|
||||||
|
ПараметрыОбработкиОшибки.ТекстОшибки = НСтр("ru = 'Непредвиденная ошибка при отправке письма'");
|
||||||
|
ПараметрыОбработкиОшибки.ВыполнятьЗаписьВЖурналРегистрации = Ложь;
|
||||||
|
|
||||||
|
РезультатОбработкиОшибки = ОбработатьОшибкуОтправкиПисьма(ПараметрыОбработкиОшибки, Новый Массив);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ТекстыОшибок) Тогда
|
Если ЗначениеЗаполнено(ТекстыОшибок) Тогда
|
||||||
ВызватьИсключение СтрСоединить(ТекстыОшибок, Символы.ПС);
|
ВызватьИсключение СтрСоединить(ТекстыОшибок, Символы.ПС);
|
||||||
@@ -330,6 +393,22 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция СсылкаНаПисьмоПоОтправляемомуПочтовомуСообщению(ДанныеПисем, ОтправляемоеПисьмо)
|
||||||
|
|
||||||
|
Для Каждого ДанныеПисьма Из ДанныеПисем Цикл
|
||||||
|
|
||||||
|
Если ДанныеПисьма.Значение.Письмо = ОтправляемоеПисьмо Тогда
|
||||||
|
|
||||||
|
Возврат ДанныеПисьма;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Неопределено;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция РасширениеДляЗашифрованныхФайлов()
|
Функция РасширениеДляЗашифрованныхФайлов()
|
||||||
|
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
||||||
@@ -398,6 +477,8 @@
|
|||||||
Параметры.Вставить("КоличествоПопыток", 0);
|
Параметры.Вставить("КоличествоПопыток", 0);
|
||||||
Параметры.Вставить("ИнкрементироватьКоличествоПопыток" , Ложь);
|
Параметры.Вставить("ИнкрементироватьКоличествоПопыток" , Ложь);
|
||||||
Параметры.Вставить("СообщатьПользователю", Ложь);
|
Параметры.Вставить("СообщатьПользователю", Ложь);
|
||||||
|
Параметры.Вставить("ТекстОшибки", "");
|
||||||
|
Параметры.Вставить("ВыполнятьЗаписьВЖурналРегистрации", Истина);
|
||||||
|
|
||||||
Возврат Параметры;
|
Возврат Параметры;
|
||||||
|
|
||||||
@@ -421,20 +502,43 @@
|
|||||||
РезультатАнализа = РезультатАнализаОшибочныхПолучателей(ПараметрыОбработкиОшибки.ПисьмоОбъект, ОшибочныеПолучатели);
|
РезультатАнализа = РезультатАнализаОшибочныхПолучателей(ПараметрыОбработкиОшибки.ПисьмоОбъект, ОшибочныеПолучатели);
|
||||||
ВсеАдресатыПисьмаОтвергнутыСервером = РезультатАнализа.ВсеАдресатыПисьмаОтвергнутыСервером;
|
ВсеАдресатыПисьмаОтвергнутыСервером = РезультатАнализа.ВсеАдресатыПисьмаОтвергнутыСервером;
|
||||||
ПредставлениеОшибочныхАдресатов = РезультатАнализа.ПредставлениеОшибочныхАдресатов;
|
ПредставлениеОшибочныхАдресатов = РезультатАнализа.ПредставлениеОшибочныхАдресатов;
|
||||||
|
ЭтоПроблемаОтвергнутыхСерверомПочтовыхАдресов = РезультатАнализа.ЭтоПроблемаОтвергнутыхСерверомПочтовыхАдресов;
|
||||||
|
|
||||||
Если Не ВсеАдресатыПисьмаОтвергнутыСервером Тогда
|
Если ЭтоПроблемаОтвергнутыхСерверомПочтовыхАдресов Тогда
|
||||||
ШаблонСообщенияОбОшибке = НСтр("ru = 'Следующие адресаты письма ""%1"" не приняты почтовым сервером:
|
|
||||||
|%2. Письмо отправлено остальным адресатам.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
Если Не ВсеАдресатыПисьмаОтвергнутыСервером Тогда
|
||||||
|
ШаблонСообщенияОбОшибке = НСтр("ru = 'Следующие адресаты письма ""%1"" не приняты почтовым сервером:
|
||||||
|
|%2. Письмо отправлено остальным адресатам.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
Иначе
|
||||||
|
ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось отправить письмо ""%1"".
|
||||||
|
|Следующие адресаты письма не приняты почтовым сервером:
|
||||||
|
|%2.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке,
|
||||||
|
ПараметрыОбработкиОшибки.ПредставлениеПисьма,
|
||||||
|
ПредставлениеОшибочныхАдресатов);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось отправить письмо ""%1"".
|
ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось отправить письмо ""%1"".
|
||||||
|Следующие адресаты письма не приняты почтовым сервером:
|
|По причине: %2.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|%2.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
|
||||||
|
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке,
|
||||||
|
ПараметрыОбработкиОшибки.ПредставлениеПисьма,
|
||||||
|
ПараметрыОбработкиОшибки.ТекстОшибки)
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке,
|
|
||||||
ПараметрыОбработкиОшибки.ПредставлениеПисьма, ПредставлениеОшибочныхАдресатов);
|
|
||||||
|
|
||||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,
|
Если ПараметрыОбработкиОшибки.ВыполнятьЗаписьВЖурналРегистрации Тогда
|
||||||
ПараметрыОбработкиОшибки.Ссылка, ТекстСообщенияОбОшибке);
|
|
||||||
|
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(),
|
||||||
|
УровеньЖурналаРегистрации.Ошибка,
|
||||||
|
ПараметрыОбработкиОшибки.Ссылка.Метаданные(),
|
||||||
|
ПараметрыОбработкиОшибки.Ссылка,
|
||||||
|
ТекстСообщенияОбОшибке);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Результат.ТекстСообщения = ТекстСообщенияОбОшибке;
|
Результат.ТекстСообщения = ТекстСообщенияОбОшибке;
|
||||||
|
|
||||||
@@ -442,15 +546,8 @@
|
|||||||
ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияОбОшибке, ПараметрыОбработкиОшибки.Ссылка);
|
ОбщегоНазначения.СообщитьПользователю(ТекстСообщенияОбОшибке, ПараметрыОбработкиОшибки.Ссылка);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ВсеАдресатыПисьмаОтвергнутыСервером Тогда
|
Если ВсеАдресатыПисьмаОтвергнутыСервером
|
||||||
|
Или Не ЭтоПроблемаОтвергнутыхСерверомПочтовыхАдресов Тогда
|
||||||
ПисьмоОбъект = ПараметрыОбработкиОшибки.ПисьмоОбъект; // ДокументОбъект.ЭлектронноеПисьмоИсходящее
|
|
||||||
|
|
||||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(),
|
|
||||||
УровеньЖурналаРегистрации.Ошибка,
|
|
||||||
ПисьмоОбъект.Ссылка.Метаданные(),
|
|
||||||
ПараметрыОбработкиОшибки.Ссылка,
|
|
||||||
ТекстСообщенияОбОшибке);
|
|
||||||
|
|
||||||
Если ПараметрыОбработкиОшибки.ИнкрементироватьКоличествоПопыток Тогда
|
Если ПараметрыОбработкиОшибки.ИнкрементироватьКоличествоПопыток Тогда
|
||||||
|
|
||||||
@@ -674,7 +771,9 @@
|
|||||||
| ТОГДА ИСТИНА
|
| ТОГДА ИСТИНА
|
||||||
| ИНАЧЕ ЭлектронноеПисьмоИсходящее.ДатаАктуальностиОтправки > &ТекущаяДата
|
| ИНАЧЕ ЭлектронноеПисьмоИсходящее.ДатаАктуальностиОтправки > &ТекущаяДата
|
||||||
| КОНЕЦ
|
| КОНЕЦ
|
||||||
| И ЕСТЬNULL(НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.КоличествоПопыток, 0) < 5
|
| И ЕСТЬNULL(НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.КоличествоПопыток, 0) < 5
|
||||||
|
|УПОРЯДОЧИТЬ ПО
|
||||||
|
| ЕСТЬNULL(НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.КоличествоПопыток, 0)
|
||||||
|ИТОГИ ПО
|
|ИТОГИ ПО
|
||||||
| УчетнаяЗапись";
|
| УчетнаяЗапись";
|
||||||
|
|
||||||
@@ -793,14 +892,14 @@
|
|||||||
|
|
||||||
ЕстьОшибки = Истина;
|
ЕстьОшибки = Истина;
|
||||||
ТекстСообщенияОбОшибке = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(
|
ТекстСообщенияОбОшибке = РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(
|
||||||
ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка());
|
ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Не удалось подключиться к почте %1 по причине:
|
НСтр("ru = 'Не удалось подключиться к почте %1 по причине:
|
||||||
|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
|%2'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||||
ДанныеУчетнойЗаписи.Ссылка,
|
ДанныеУчетнойЗаписи.Ссылка,
|
||||||
ТекстСообщенияОбОшибке);
|
ТекстСообщенияОбОшибке);
|
||||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(),
|
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(),
|
||||||
УровеньЖурналаРегистрации.Ошибка, , , ТекстСообщенияОбОшибке);
|
УровеньЖурналаРегистрации.Ошибка, , , ТекстСообщенияОбОшибке);
|
||||||
Возврат;
|
Возврат;
|
||||||
|
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
@@ -1009,7 +1108,7 @@
|
|||||||
Продолжить;
|
Продолжить;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
ПараметрыОтбора = Новый Структура;
|
ПараметрыОтбора = Новый Структура;
|
||||||
Если Не ДанныеУчетнойЗаписи.ДатаЗагрузкиПисем = Дата(1,1,1) Тогда
|
Если Не ДанныеУчетнойЗаписи.ДатаЗагрузкиПисем = Дата(1,1,1) Тогда
|
||||||
ПараметрыОтбора.Вставить("ПослеДатыОтправления",
|
ПараметрыОтбора.Вставить("ПослеДатыОтправления",
|
||||||
ДатаОтбораЗагрузкиПисемПоПротоколуIMAP(ДанныеУчетнойЗаписи.ДатаЗагрузкиПисем));
|
ДатаОтбораЗагрузкиПисемПоПротоколуIMAP(ДанныеУчетнойЗаписи.ДатаЗагрузкиПисем));
|
||||||
@@ -1020,23 +1119,24 @@
|
|||||||
Попытка
|
Попытка
|
||||||
ЗаголовкиПисемДляЗагрузки = Почта.ПолучитьЗаголовки(ПараметрыОтбора);
|
ЗаголовкиПисемДляЗагрузки = Почта.ПолучитьЗаголовки(ПараметрыОтбора);
|
||||||
Исключение
|
Исключение
|
||||||
|
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось получить заголовки писем для папки ""%1"" учетной записи ""%2"", по причине: %3'"),
|
||||||
|
ИмяАктивнойПапки, ДанныеУчетнойЗаписи.АдресЭлектроннойПочты,
|
||||||
|
РаботаСПочтовымиСообщениями.РасширенноеПредставлениеОшибки(ИнформацияОбОшибке(), ОбщегоНазначения.КодОсновногоЯзыка(), Ложь));
|
||||||
|
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,
|
||||||
|
Метаданные.Справочники.ПапкиЭлектронныхПисем,, ТекстСообщения);
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
КоличествоПисемКЗагрузке = ЗаголовкиПисемДляЗагрузки.Количество();
|
КоличествоПисемКЗагрузке = ЗаголовкиПисемДляЗагрузки.Количество();
|
||||||
|
|
||||||
Если КоличествоПисемКЗагрузке = 0 Тогда
|
Если КоличествоПисемКЗагрузке = 0 Тогда
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТекстСообщения = СтрШаблон(НСтр("ru = 'Начало получения писем из папки ""%1"" учетной записи ""%2"". Писем к загрузке: %3'"),
|
ТекстСообщения = СтрШаблон(НСтр("ru = 'Начало получения писем из папки ""%1"" учетной записи ""%2"". Писем к загрузке: %3'"),
|
||||||
ИмяАктивнойПапки, ДанныеУчетнойЗаписи.АдресЭлектроннойПочты, КоличествоПисемКЗагрузке);
|
ИмяАктивнойПапки, ДанныеУчетнойЗаписи.АдресЭлектроннойПочты, КоличествоПисемКЗагрузке);
|
||||||
|
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
|
||||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(),
|
Метаданные.Справочники.ПапкиЭлектронныхПисем,, ТекстСообщения);
|
||||||
УровеньЖурналаРегистрации.Информация,
|
|
||||||
Метаданные.Справочники.ПапкиЭлектронныхПисем,
|
|
||||||
,
|
|
||||||
ТекстСообщения);
|
|
||||||
|
|
||||||
ЗаголовкиСПустымИдентификатором = Новый Массив;
|
ЗаголовкиСПустымИдентификатором = Новый Массив;
|
||||||
ТаблицаИдентификаторов.Очистить();
|
ТаблицаИдентификаторов.Очистить();
|
||||||
|
|||||||
@@ -134,59 +134,62 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого СтрокаСписка Из СтрокиСписка Цикл
|
|
||||||
СтрокаСписка = СтрокиСписка[СтрокаСписка.Ключ];
|
|
||||||
Если СтрокаСписка.Оформление.Получить("СостояниеОригиналаПервичногоДокумента") = Неопределено
|
|
||||||
Или СтрокаСписка.Оформление.Получить("СостояниеОригиналПолучен") = Неопределено Тогда
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
Прервать;
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Ключи = СтрокиСписка.ПолучитьКлючи(); // Массив из ДокументСсылка, Массив из РегистрСведенийКлючЗаписи
|
|
||||||
Ссылки = Новый Массив;
|
Ссылки = Новый Массив;
|
||||||
ИмяКлючевогоПоля = "Ссылка";
|
ИмяКлючевогоПоля = "Ссылка";
|
||||||
Для Каждого Ключ Из Ключи Цикл
|
|
||||||
ЭтоСсылка = ОбщегоНазначения.ЭтоСсылка(ТипЗнч(Ключ));
|
Для Каждого СтрокаСписка Из СтрокиСписка Цикл
|
||||||
Если ЭтоСсылка Тогда
|
СтрокаСписка = СтрокиСписка[СтрокаСписка.Ключ];
|
||||||
Ссылки.Добавить(Ключ);
|
Если Не СтрокаСписка.Данные.Свойство("Ссылка")
|
||||||
Иначе
|
Или (СтрокаСписка.Оформление.Получить("СостояниеОригиналаПервичногоДокумента") = Неопределено
|
||||||
Ссылки.Добавить(Ключ[ИмяКлючевогоПоля]);
|
И СтрокаСписка.Оформление.Получить("СостояниеОригиналПолучен") = Неопределено) Тогда
|
||||||
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
Ссылки.Добавить(СтрокаСписка.Данные[ИмяКлючевогоПоля]);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.Текст = "ВЫБРАТЬ
|
Запрос.Текст = "ВЫБРАТЬ
|
||||||
| СостоянияОригиналовПервичныхДокументов.Состояние КАК СостояниеОригиналаПервичногоДокумента,
|
| СостоянияОригиналовПервичныхДокументов.Состояние КАК СостояниеОригиналаПервичногоДокумента,
|
||||||
| СостоянияОригиналовПервичныхДокументов.ОбщееСостояние КАК ОбщееСостояние,
|
| СостоянияОригиналовПервичныхДокументов.ОбщееСостояние КАК ОбщееСостояние,
|
||||||
| ВЫБОР
|
| ВЫБОР
|
||||||
| КОГДА СостоянияОригиналовПервичныхДокументов.Состояние = ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен)
|
| КОГДА СостоянияОригиналовПервичныхДокументов.Состояние = ЗНАЧЕНИЕ(Справочник.СостоянияОригиналовПервичныхДокументов.ОригиналПолучен)
|
||||||
| ТОГДА 1
|
| ТОГДА 1
|
||||||
| ИНАЧЕ 0
|
| ИНАЧЕ 0
|
||||||
| КОНЕЦ КАК СостояниеОригиналПолучен,
|
| КОНЕЦ КАК СостояниеОригиналПолучен,
|
||||||
| СостоянияОригиналовПервичныхДокументов.Владелец КАК Ссылка
|
| СостоянияОригиналовПервичныхДокументов.Владелец КАК Ссылка
|
||||||
|ИЗ
|
|ИЗ
|
||||||
| РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов
|
| РегистрСведений.СостоянияОригиналовПервичныхДокументов КАК СостоянияОригиналовПервичныхДокументов
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
| СостоянияОригиналовПервичныхДокументов.ОбщееСостояние
|
| СостоянияОригиналовПервичныхДокументов.ОбщееСостояние
|
||||||
| И СостоянияОригиналовПервичныхДокументов.Владелец В(&Ссылка)";
|
| И СостоянияОригиналовПервичныхДокументов.Владелец В(&Ссылка)";
|
||||||
Запрос.УстановитьПараметр("Ссылка",Ссылки);
|
|
||||||
|
Запрос.УстановитьПараметр("Ссылка", Ссылки);
|
||||||
|
|
||||||
Выборка = Запрос.Выполнить().Выбрать();
|
Выборка = Запрос.Выполнить().Выбрать();
|
||||||
Для Каждого СтрокаСписка Из СтрокиСписка Цикл
|
Если Не СтрокаСписка.Оформление.Получить("СостояниеОригиналаПервичногоДокумента") = Неопределено Тогда
|
||||||
СтрокаСписка = СтрокиСписка[СтрокаСписка.Ключ];
|
Для Каждого Строка Из СтрокиСписка Цикл
|
||||||
Выборка.Сбросить();
|
Строка = СтрокиСписка[Строка.Ключ];
|
||||||
Если Выборка.НайтиСледующий(СтрокаСписка.Данные["Ссылка"], "Ссылка") Тогда
|
Выборка.Сбросить();
|
||||||
СтрокаСписка.Данные["СостояниеОригиналаПервичногоДокумента"] = Выборка.СостояниеОригиналаПервичногоДокумента;
|
Если Выборка.НайтиСледующий(Строка.Данные["Ссылка"], "Ссылка") Тогда
|
||||||
СтрокаСписка.Оформление["СостояниеОригиналаПервичногоДокумента"].УстановитьЗначениеПараметра("ЦветТекста",
|
|
||||||
ЦветаСтиля.ГиперссылкаЦвет);
|
Строка.Данные["СостояниеОригиналаПервичногоДокумента"] = Выборка.СостояниеОригиналаПервичногоДокумента;
|
||||||
СтрокаСписка.Данные["СостояниеОригиналПолучен"] = Выборка.СостояниеОригиналПолучен;
|
Строка.Оформление["СостояниеОригиналаПервичногоДокумента"].УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ГиперссылкаЦвет);
|
||||||
Иначе
|
Иначе
|
||||||
СтрокаСписка.Данные["СостояниеОригиналаПервичногоДокумента"] = НСтр("ru = '<Неизвестно>'");
|
Строка.Данные["СостояниеОригиналаПервичногоДокумента"] = НСтр("ru = '<Неизвестно>'");
|
||||||
СтрокаСписка.Оформление["СостояниеОригиналаПервичногоДокумента"].УстановитьЗначениеПараметра("ЦветТекста",
|
Строка.Оформление["СостояниеОригиналаПервичногоДокумента"].УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
|
||||||
ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЦикла;
|
||||||
КонецЦикла;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не СтрокаСписка.Оформление.Получить("СостояниеОригиналПолучен") = Неопределено Тогда
|
||||||
|
Для Каждого Строка Из СтрокиСписка Цикл
|
||||||
|
Строка = СтрокиСписка[Строка.Ключ];
|
||||||
|
Выборка.Сбросить();
|
||||||
|
Если Выборка.НайтиСледующий(Строка.Данные["Ссылка"], "Ссылка") Тогда
|
||||||
|
Строка.Данные["СостояниеОригиналПолучен"] = Выборка.СостояниеОригиналПолучен;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// НоваяСтрока = ТаблицаУчетаОригиналов.Добавить();
|
// НоваяСтрока = ТаблицаУчетаОригиналов.Добавить();
|
||||||
// НоваяСтрока.ОбъектМетаданных = Метаданные.Документы._ДемоРеализацияТоваров;
|
// НоваяСтрока.ОбъектМетаданных = Метаданные.Документы.РеализацияТоваров;
|
||||||
// НоваяСтрока.Идентификатор = "РасходнаяНакладная";
|
// НоваяСтрока.Идентификатор = "РасходнаяНакладная";
|
||||||
//
|
//
|
||||||
Процедура ЗаполнитьТаблицуУчетаОригиналов(ТаблицаУчетаОригиналов) Экспорт
|
Процедура ЗаполнитьТаблицуУчетаОригиналов(ТаблицаУчетаОригиналов) Экспорт
|
||||||
|
|||||||
@@ -2096,6 +2096,15 @@
|
|||||||
Соответствие.Вставить("SendReport","ОтправлятьОтчет");
|
Соответствие.Вставить("SendReport","ОтправлятьОтчет");
|
||||||
Соответствие.Вставить("IncludeDetailErrorDescriptionInReport","ВключатьПодробныйТекстОшибкиВОтчет");
|
Соответствие.Вставить("IncludeDetailErrorDescriptionInReport","ВключатьПодробныйТекстОшибкиВОтчет");
|
||||||
Соответствие.Вставить("IncludeInfobaseInformationInReport","ВключатьСведенияОбИнформационнойБазеВОтчет");
|
Соответствие.Вставить("IncludeInfobaseInformationInReport","ВключатьСведенияОбИнформационнойБазеВОтчет");
|
||||||
|
|
||||||
|
Соответствие.Вставить("ErrorMessageDisplayVariant","ВариантОтображенияСообщенияОбОшибке");
|
||||||
|
Соответствие.Вставить("ErrorProcessingServiceURL","АдресСервисаОбработкиОшибок");
|
||||||
|
Соответствие.Вставить("SendReportOnClient","ОтправлятьОтчетНаКлиенте");
|
||||||
|
Соответствие.Вставить("SendReportOnServer","ОтправлятьОтчетНаСервере");
|
||||||
|
Соответствие.Вставить("IncludeDetailErrorDescriptionInReportOnClient","ВключатьПодробныйТекстОшибкиВОтчетНаКлиенте");
|
||||||
|
Соответствие.Вставить("IncludeDetailErrorDescriptionInReportOnServer","ВключатьПодробныйТекстОшибкиВОтчетНаСервере");
|
||||||
|
Соответствие.Вставить("IncludeInfobaseInformationInReportOnClient","ВключатьСведенияОбИнформационнойБазеВОтчетНаКлиенте");
|
||||||
|
Соответствие.Вставить("IncludeInfobaseInformationInReportOnServer","ВключатьСведенияОбИнформационнойБазеВОтчетНаСервере");
|
||||||
Значение = Соответствие.Получить(Ключ);
|
Значение = Соответствие.Получить(Ключ);
|
||||||
Если Значение = Неопределено Тогда
|
Если Значение = Неопределено Тогда
|
||||||
Возврат Ключ
|
Возврат Ключ
|
||||||
@@ -3962,6 +3971,7 @@
|
|||||||
УстановитьПривилегированныйРежим(Истина);
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
ОбщиеНастройки = Параметры.ОбработкаОшибок.ПолучитьОбщиеНастройки();
|
ОбщиеНастройки = Параметры.ОбработкаОшибок.ПолучитьОбщиеНастройки();
|
||||||
УстановитьПривилегированныйРежим(Ложь);
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
|
||||||
ДополнительнаяИнформация = Новый Структура;
|
ДополнительнаяИнформация = Новый Структура;
|
||||||
Если ЗначениеЗаполнено(ОбщиеНастройки.ДополнительнаяИнформацияОтчета) Тогда
|
Если ЗначениеЗаполнено(ОбщиеНастройки.ДополнительнаяИнформацияОтчета) Тогда
|
||||||
// Считаем, что внутри json. Если нет, то кто-то установил руками. Тогда ничего не меняем - так и должно быть.
|
// Считаем, что внутри json. Если нет, то кто-то установил руками. Тогда ничего не меняем - так и должно быть.
|
||||||
@@ -3977,6 +3987,7 @@
|
|||||||
ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет));
|
ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет));
|
||||||
ЗаписатьJSON(ЗаписьJSON, ДополнительнаяИнформация);
|
ЗаписатьJSON(ЗаписьJSON, ДополнительнаяИнформация);
|
||||||
ОбщиеНастройки.ДополнительнаяИнформацияОтчета = ЗаписьJSON.Закрыть();
|
ОбщиеНастройки.ДополнительнаяИнформацияОтчета = ЗаписьJSON.Закрыть();
|
||||||
|
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
Параметры.ОбработкаОшибок.УстановитьОбщиеНастройки(ОбщиеНастройки);
|
Параметры.ОбработкаОшибок.УстановитьОбщиеНастройки(ОбщиеНастройки);
|
||||||
УстановитьПривилегированныйРежим(Ложь);
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
@@ -3991,76 +4002,60 @@
|
|||||||
|
|
||||||
РезультатОбработки = Новый Структура;
|
РезультатОбработки = Новый Структура;
|
||||||
|
|
||||||
Параметры = Новый Структура;
|
Если БезопасныйРежим() = Истина Тогда
|
||||||
Параметры.Вставить("КодВыполнен", Ложь);
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
Параметры.Вставить("ОбработкаОшибок", Неопределено);
|
|
||||||
Параметры.Вставить("РежимОтправкиИнформацииОбОшибке", Неопределено);
|
|
||||||
Параметры.Вставить("ВариантОтображенияСообщенияОбОшибке", Неопределено);
|
|
||||||
КодДляВыполнения = "Параметры.ОбработкаОшибок = ОбработкаОшибок;
|
|
||||||
|Параметры.КодВыполнен = Истина;
|
|
||||||
|Параметры.РежимОтправкиИнформацииОбОшибке = РежимОтправкиИнформацииОбОшибке;
|
|
||||||
|Параметры.ВариантОтображенияСообщенияОбОшибке = ВариантОтображенияСообщенияОбОшибке;";
|
|
||||||
// Инициализируем менеджер обработки ошибок.
|
|
||||||
// АПК:280-выкл обработка исключения не требуется
|
|
||||||
Попытка
|
|
||||||
ОбщегоНазначения.ВыполнитьВБезопасномРежиме(КодДляВыполнения, Параметры);
|
|
||||||
Исключение
|
|
||||||
// Исключение не выбрасываем.
|
|
||||||
КонецПопытки;
|
|
||||||
Если Параметры.КодВыполнен Тогда
|
|
||||||
Попытка
|
|
||||||
Если БезопасныйРежим() = Истина Тогда
|
|
||||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
|
||||||
КонецЕсли;
|
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
|
||||||
ОбщиеНастройки = Параметры.ОбработкаОшибок.ПолучитьОбщиеНастройки();
|
|
||||||
ПеречислениеРежимОтправкиИнформацииОбОшибке = Параметры.РежимОтправкиИнформацииОбОшибке;
|
|
||||||
ПеречислениеВариантОтображенияСообщенияОбОшибке = Параметры.ВариантОтображенияСообщенияОбОшибке;
|
|
||||||
УстановитьПривилегированныйРежим(Ложь);
|
|
||||||
Если ОбщиеНастройки.АдресСервисаРегистрацииОшибок = СохраненныеПараметры.АдресСервисаРегистрацииОшибок
|
|
||||||
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно Тогда
|
|
||||||
ОбщиеНастройки.АдресСервисаРегистрацииОшибок = ПолученныеПараметры.АдресСервисаРегистрацииОшибок;
|
|
||||||
КонецЕсли;
|
|
||||||
// АПК:1036-выкл
|
|
||||||
Если ОбщиеНастройки.ОтправлятьОчет = ПеречислениеРежимОтправкиИнформацииОбОшибке[СохраненныеПараметры.ОтправлятьОтчет]
|
|
||||||
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно Тогда
|
|
||||||
ОбщиеНастройки.ОтправлятьОчет = ПеречислениеРежимОтправкиИнформацииОбОшибке[ПолученныеПараметры.ОтправлятьОтчет];
|
|
||||||
КонецЕсли;
|
|
||||||
// АПК:1036-вкл
|
|
||||||
Если ОбщиеНастройки.ВариантОтображенияСообщения = ПеречислениеВариантОтображенияСообщенияОбОшибке[СохраненныеПараметры.ВариантОтображенияСообщенияОбОшибке]
|
|
||||||
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно Тогда
|
|
||||||
ОбщиеНастройки.ВариантОтображенияСообщения = ПеречислениеВариантОтображенияСообщенияОбОшибке[ПолученныеПараметры.ВариантОтображенияСообщенияОбОшибке];
|
|
||||||
// Текст сообщения.
|
|
||||||
ПараметрыДляТекстаСообщения = Новый Структура("ОбщиеНастройки", ОбщиеНастройки);
|
|
||||||
КодДляВыполнения = "СтрокаСообщения = Новый ФорматированнаяСтрока(НСтр(""ru = 'К сожалению, возникла непредвиденная ситуация'""), ШрифтыСтиля.ОченьКрупныйШрифтТекста);
|
|
||||||
|ТекстыСообщенияОбОшибке = Новый ТекстыСообщенияОбОшибке(СтрокаСообщения, СтрокаСообщения);
|
|
||||||
|Параметры.ОбщиеНастройки.ТекстыСообщенийОбОшибках.Вставить(КатегорияОшибки.ПрочаяОшибка, ТекстыСообщенияОбОшибке);";
|
|
||||||
ОбщегоНазначения.ВыполнитьВБезопасномРежиме(КодДляВыполнения, ПараметрыДляТекстаСообщения);
|
|
||||||
КонецЕсли;
|
|
||||||
Если ОбщиеНастройки.ВключатьПодробныйТекстОшибкиВОтчет = ПеречислениеРежимОтправкиИнформацииОбОшибке[СохраненныеПараметры.ВключатьПодробныйТекстОшибкиВОтчет]
|
|
||||||
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно Тогда
|
|
||||||
ОбщиеНастройки.ВключатьПодробныйТекстОшибкиВОтчет = ПеречислениеРежимОтправкиИнформацииОбОшибке[ПолученныеПараметры.ВключатьПодробныйТекстОшибкиВОтчет];
|
|
||||||
КонецЕсли;
|
|
||||||
Если ОбщиеНастройки.ВключатьСведенияОбИнформационнойБазеВОтчет = ПеречислениеРежимОтправкиИнформацииОбОшибке[СохраненныеПараметры.ВключатьСведенияОбИнформационнойБазеВОтчет]
|
|
||||||
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно Тогда
|
|
||||||
ОбщиеНастройки.ВключатьСведенияОбИнформационнойБазеВОтчет = ПеречислениеРежимОтправкиИнформацииОбОшибке[ПолученныеПараметры.ВключатьСведенияОбИнформационнойБазеВОтчет];
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
|
||||||
Параметры.ОбработкаОшибок.УстановитьОбщиеНастройки(ОбщиеНастройки);
|
|
||||||
УстановитьПривилегированныйРежим(Ложь);
|
|
||||||
|
|
||||||
РезультатОбработки.Вставить("УстановитьНастройкиОбработкиОшибокПринудительно", ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно);
|
|
||||||
РезультатОбработки.Вставить("ВариантОтображенияСообщенияОбОшибке", ПолученныеПараметры.ВариантОтображенияСообщенияОбОшибке);
|
|
||||||
РезультатОбработки.Вставить("АдресСервисаРегистрацииОшибок", ПолученныеПараметры.АдресСервисаРегистрацииОшибок);
|
|
||||||
РезультатОбработки.Вставить("ОтправлятьОтчет", ПолученныеПараметры.ОтправлятьОтчет);
|
|
||||||
РезультатОбработки.Вставить("ВключатьПодробныйТекстОшибкиВОтчет", ПолученныеПараметры.ВключатьПодробныйТекстОшибкиВОтчет);
|
|
||||||
РезультатОбработки.Вставить("ВключатьСведенияОбИнформационнойБазеВОтчет", ПолученныеПараметры.ВключатьСведенияОбИнформационнойБазеВОтчет);
|
|
||||||
Исключение
|
|
||||||
// Исключение не выбрасываем.
|
|
||||||
КонецПопытки;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
// АПК:280-вкл
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
ОбщиеНастройки = ОбработкаОшибок.ПолучитьОбщиеНастройки();
|
||||||
|
ПеречислениеРежимОтправкиИнформацииОбОшибке = РежимОтправкиИнформацииОбОшибке;
|
||||||
|
ПеречислениеВариантОтображенияСообщенияОбОшибке = ВариантОтображенияСообщенияОбОшибке;
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
// Сравниваем с сохраненными параметрами, чтобы убедиться, что руками пользователь ничего не менял.
|
||||||
|
Если ПолученныеПараметры.Свойство("АдресСервисаРегистрацииОшибок")
|
||||||
|
И (ОбщиеНастройки.АдресСервисаОбработкиОшибок = СохраненныеПараметры.АдресСервисаРегистрацииОшибок
|
||||||
|
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно) Тогда
|
||||||
|
ОбщиеНастройки.АдресСервисаОбработкиОшибок = ПолученныеПараметры.АдресСервисаРегистрацииОшибок;
|
||||||
|
РезультатОбработки.Вставить("АдресСервисаРегистрацииОшибок", ПолученныеПараметры.АдресСервисаРегистрацииОшибок);
|
||||||
|
КонецЕсли;
|
||||||
|
Если ПолученныеПараметры.Свойство("ОтправлятьОтчет")
|
||||||
|
И (ОбщиеНастройки.ОтправлятьОтчетНаКлиенте = ПеречислениеРежимОтправкиИнформацииОбОшибке[СохраненныеПараметры.ОтправлятьОтчет]
|
||||||
|
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно) Тогда
|
||||||
|
ОбщиеНастройки.ОтправлятьОтчетНаКлиенте = ПеречислениеРежимОтправкиИнформацииОбОшибке[ПолученныеПараметры.ОтправлятьОтчет];
|
||||||
|
РезультатОбработки.Вставить("ОтправлятьОтчет", ПолученныеПараметры.ОтправлятьОтчет);
|
||||||
|
КонецЕсли;
|
||||||
|
Если ПолученныеПараметры.Свойство("ВариантОтображенияСообщенияОбОшибке")
|
||||||
|
И (ОбщиеНастройки.ВариантОтображенияСообщения = ПеречислениеВариантОтображенияСообщенияОбОшибке[СохраненныеПараметры.ВариантОтображенияСообщенияОбОшибке]
|
||||||
|
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно) Тогда
|
||||||
|
ОбщиеНастройки.ВариантОтображенияСообщения = ПеречислениеВариантОтображенияСообщенияОбОшибке[ПолученныеПараметры.ВариантОтображенияСообщенияОбОшибке];
|
||||||
|
// Текст сообщения.
|
||||||
|
ПараметрыДляТекстаСообщения = Новый Структура("ОбщиеНастройки", ОбщиеНастройки);
|
||||||
|
СтрокаСообщения = СтроковыеФункции.ФорматированнаяСтрока(
|
||||||
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = '<span style=""font:%1"">К сожалению, возникла непредвиденная ситуация</span>'"),
|
||||||
|
"ШрифтОченьКрупныйШрифтТекста"));
|
||||||
|
ТекстыСообщенияОбОшибке = Новый ТекстыСообщенияОбОшибке(СтрокаСообщения, СтрокаСообщения);
|
||||||
|
ОбщиеНастройки.ТекстыСообщенийОбОшибках.Вставить(КатегорияОшибки.ПрочаяОшибка, ТекстыСообщенияОбОшибке);
|
||||||
|
РезультатОбработки.Вставить("ВариантОтображенияСообщенияОбОшибке", ПолученныеПараметры.ВариантОтображенияСообщенияОбОшибке);
|
||||||
|
КонецЕсли;
|
||||||
|
Если ПолученныеПараметры.Свойство("ВключатьПодробныйТекстОшибкиВОтчет")
|
||||||
|
И (ОбщиеНастройки.ВключатьПодробныйТекстОшибкиВОтчетНаКлиенте = ПеречислениеРежимОтправкиИнформацииОбОшибке[СохраненныеПараметры.ВключатьПодробныйТекстОшибкиВОтчет]
|
||||||
|
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно) Тогда
|
||||||
|
ОбщиеНастройки.ВключатьПодробныйТекстОшибкиВОтчетНаКлиенте = ПеречислениеРежимОтправкиИнформацииОбОшибке[ПолученныеПараметры.ВключатьПодробныйТекстОшибкиВОтчет];
|
||||||
|
РезультатОбработки.Вставить("ВключатьПодробныйТекстОшибкиВОтчет", ПолученныеПараметры.ВключатьПодробныйТекстОшибкиВОтчет);
|
||||||
|
КонецЕсли;
|
||||||
|
Если ПолученныеПараметры.Свойство("ВключатьСведенияОбИнформационнойБазеВОтчет")
|
||||||
|
И (ОбщиеНастройки.ВключатьСведенияОбИнформационнойБазеВОтчетНаКлиенте = ПеречислениеРежимОтправкиИнформацииОбОшибке[СохраненныеПараметры.ВключатьСведенияОбИнформационнойБазеВОтчет]
|
||||||
|
ИЛИ ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно) Тогда
|
||||||
|
ОбщиеНастройки.ВключатьСведенияОбИнформационнойБазеВОтчетНаКлиенте = ПеречислениеРежимОтправкиИнформацииОбОшибке[ПолученныеПараметры.ВключатьСведенияОбИнформационнойБазеВОтчет];
|
||||||
|
РезультатОбработки.Вставить("ВключатьСведенияОбИнформационнойБазеВОтчет", ПолученныеПараметры.ВключатьСведенияОбИнформационнойБазеВОтчет);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
ОбработкаОшибок.УстановитьОбщиеНастройки(ОбщиеНастройки);
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
|
||||||
|
РезультатОбработки.Вставить("УстановитьНастройкиОбработкиОшибокПринудительно", ПолученныеПараметры.УстановитьНастройкиОбработкиОшибокПринудительно);
|
||||||
|
|
||||||
Возврат РезультатОбработки;
|
Возврат РезультатОбработки;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|||||||
@@ -1921,7 +1921,7 @@
|
|||||||
|
|
||||||
Если ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
Если ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
||||||
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии(
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии(
|
||||||
ПодписьДляПроверки, МенеджерКриптографииДляПроверки, Ложь);
|
ПодписьДляПроверки, МенеджерКриптографииДляПроверки, Сертификат = Неопределено);
|
||||||
Если ПустаяСтрока(ОшибкаПроверкиПодписи) И СвойстваПодписи.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.ОбычнаяCMS
|
Если ПустаяСтрока(ОшибкаПроверкиПодписи) И СвойстваПодписи.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.ОбычнаяCMS
|
||||||
И СвойстваПодписи.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES Тогда
|
И СвойстваПодписи.ТипПодписи <> Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES Тогда
|
||||||
Попытка
|
Попытка
|
||||||
@@ -1932,13 +1932,14 @@
|
|||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиИзДвоичныхДанных(ПодписьДляПроверки, Ложь);
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиИзДвоичныхДанных(ПодписьДляПроверки, Сертификат = Неопределено);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СвойстваСертификата = Неопределено;
|
СвойстваСертификата = Неопределено;
|
||||||
Если РезультатСтруктура <> Неопределено Тогда
|
Если РезультатСтруктура <> Неопределено Тогда
|
||||||
ЗаполнитьЗначенияСвойств(РезультатСтруктура, СвойстваПодписи);
|
ЗаполнитьЗначенияСвойств(РезультатСтруктура, СвойстваПодписи);
|
||||||
Если ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует(Сертификат) Тогда
|
Если Не ЗначениеЗаполнено(РезультатСтруктура.Сертификат)
|
||||||
|
И ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует(Сертификат) Тогда
|
||||||
СвойстваСертификата = СвойстваСертификата(Сертификат);
|
СвойстваСертификата = СвойстваСертификата(Сертификат);
|
||||||
РезультатСтруктура.Сертификат = Сертификат.Выгрузить();
|
РезультатСтруктура.Сертификат = Сертификат.Выгрузить();
|
||||||
РезультатСтруктура.Отпечаток = СвойстваСертификата.Отпечаток;
|
РезультатСтруктура.Отпечаток = СвойстваСертификата.Отпечаток;
|
||||||
|
|||||||
@@ -2168,6 +2168,24 @@
|
|||||||
|
|
||||||
#Область СлужебныйПрограммныйИнтерфейс
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
|
// Открывает ссылку с поиском по ошибкам при работе с электронной подписью
|
||||||
|
// и вариантами их решения.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// СтрокаПоиска - Строка - строка для поиска.
|
||||||
|
//
|
||||||
|
Процедура ОткрытьПоискПоОшибкамПриРаботеСЭлектроннойПодписью(СтрокаПоиска = "") Экспорт
|
||||||
|
|
||||||
|
НавигационнаяСсылка = "";
|
||||||
|
ЭлектроннаяПодписьКлиентСерверЛокализация.ПриОпределенииСсылкиНаПоискПоОшибкамПриРаботеСЭлектроннойПодписью(
|
||||||
|
НавигационнаяСсылка, СтрокаПоиска);
|
||||||
|
|
||||||
|
Если Не ПустаяСтрока(НавигационнаяСсылка) Тогда
|
||||||
|
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигационнаяСсылка);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
// Открывает форму просмотра подписи ЭП.
|
// Открывает форму просмотра подписи ЭП.
|
||||||
Процедура ОткрытьПодпись(ТекущиеДанные) Экспорт
|
Процедура ОткрытьПодпись(ТекущиеДанные) Экспорт
|
||||||
|
|
||||||
@@ -2206,9 +2224,9 @@
|
|||||||
|
|
||||||
|
|
||||||
// Сохраняет подпись на компьютер.
|
// Сохраняет подпись на компьютер.
|
||||||
Процедура СохранитьПодпись(АдресПодписи) Экспорт
|
Процедура СохранитьПодпись(АдресПодписи, ИмяФайлаПодписи = "") Экспорт
|
||||||
|
|
||||||
ЭлектроннаяПодписьСлужебныйКлиент.СохранитьПодпись(АдресПодписи);
|
ЭлектроннаяПодписьСлужебныйКлиент.СохранитьПодпись(АдресПодписи, ИмяФайлаПодписи);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,97 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Copyright (c) 2024, ООО 1С-Софт
|
||||||
|
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||||
|
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||||
|
// Текст лицензии доступен по ссылке:
|
||||||
|
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Процедура ПриПолученииФильтраДляВыбораПодписей(Фильтр) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Фильтр = НСтр("ru = 'Файлы подписи (*.p7s, *.sig%1), МЧД (*.xml, *.zip)|*.p7s;*.sig%2;*.xml;*.zip'");
|
||||||
|
КонецЕсли;
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриПолученииСпискаВыбораМашиночитаемыхДоверенностей(Форма, ТекущиеДанные, СписокВыбора) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Доверенности = Форма.Доверенности;
|
||||||
|
Если ЗначениеЗаполнено(ТекущиеДанные.ПоляОтбора) Тогда
|
||||||
|
ПоляОтбора = СтрРазделить(ТекущиеДанные.ПоляОтбора, ";");
|
||||||
|
|
||||||
|
Для Каждого Доверенность Из Доверенности Цикл
|
||||||
|
Для Каждого Элемент Из ПоляОтбора Цикл
|
||||||
|
Если СтрНайти(Доверенность.ПоляОтбора, Элемент) <> 0 Тогда
|
||||||
|
СписокВыбора.Добавить(Доверенность.НомерДоверенности, Доверенность.МашиночитаемаяДоверенность);
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриВыбореМашиночитаемойДоверенности(ОбработчикЗавершения, ТекущиеДанные) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СвойстваПодписи = ПолучитьИзВременногоХранилища(ТекущиеДанные.АдресСвойствПодписи);
|
||||||
|
|
||||||
|
ПараметрыФормы = Новый Структура;
|
||||||
|
ПараметрыФормы.Вставить("СертификатПредставителя", СвойстваПодписи.Сертификат);
|
||||||
|
ПараметрыФормы.Вставить("НаДату", СвойстваПодписи.ДатаПодписи);
|
||||||
|
ПараметрыФормы.Вставить("ТолькоДействующие", Истина);
|
||||||
|
ПараметрыФормы.Вставить("РежимВыбора", Истина);
|
||||||
|
|
||||||
|
МодульМашиночитаемыеДоверенностиФНСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МашиночитаемыеДоверенностиФНСКлиент");
|
||||||
|
МодульМашиночитаемыеДоверенностиФНСКлиент.ОткрытьСписокМЧД(ПараметрыФормы, ОбработчикЗавершения);
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриОпределенииФайловМашиночитаемыхДоверенностей(ФайлыМашиночитаемыхДоверенностей,
|
||||||
|
КоллекцияПодписей) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МашиночитаемыеДоверенности = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого Подпись Из КоллекцияПодписей Цикл
|
||||||
|
Для Каждого МашиночитаемаяДоверенность Из Подпись.МашиночитаемаяДоверенность Цикл
|
||||||
|
Если МашиночитаемыеДоверенности.Найти(МашиночитаемаяДоверенность.Значение) = Неопределено Тогда
|
||||||
|
МашиночитаемыеДоверенности.Добавить(МашиночитаемаяДоверенность.Значение);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если МашиночитаемыеДоверенности.Количество() > 0 Тогда
|
||||||
|
МодульМашиночитаемыеДоверенностиФНССлужебныйВызовСервера = ОбщегоНазначенияКлиент.ОбщийМодуль(
|
||||||
|
"МашиночитаемыеДоверенностиФНССлужебныйВызовСервера");
|
||||||
|
ФайлыМашиночитаемыхДоверенностей = МодульМашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ФайлыДоверенностей(
|
||||||
|
МашиночитаемыеДоверенности, Ложь);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="398cd724-3c08-49b3-a5b4-4186f1d6b32d">
|
||||||
|
<name>ЭлектроннаяПодписьКлиентЛокализация</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Электронная подпись клиент локализация</value>
|
||||||
|
</synonym>
|
||||||
|
<clientManagedApplication>true</clientManagedApplication>
|
||||||
|
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||||
|
</mdclass:CommonModule>
|
||||||
@@ -201,6 +201,7 @@
|
|||||||
СвойстваПодписи.Вставить("ПодписьВерна");
|
СвойстваПодписи.Вставить("ПодписьВерна");
|
||||||
СвойстваПодписи.Вставить("ДатаПроверкиПодписи");
|
СвойстваПодписи.Вставить("ДатаПроверкиПодписи");
|
||||||
СвойстваПодписи.Вставить("КомуВыданСертификат");
|
СвойстваПодписи.Вставить("КомуВыданСертификат");
|
||||||
|
СвойстваПодписи.Вставить("ИмяФайлаПодписи");
|
||||||
СвойстваПодписи.Вставить("ТребуетсяПроверка");
|
СвойстваПодписи.Вставить("ТребуетсяПроверка");
|
||||||
СвойстваПодписи.Вставить("УстановившийПодпись");
|
СвойстваПодписи.Вставить("УстановившийПодпись");
|
||||||
СвойстваПодписи.Вставить("ТипПодписи");
|
СвойстваПодписи.Вставить("ТипПодписи");
|
||||||
|
|||||||
@@ -314,6 +314,17 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриОпределенииСсылкиНаПоискПоОшибкамПриРаботеСЭлектроннойПодписью(НавигационнаяСсылка, СтрокаПоиска = "") Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
НавигационнаяСсылка = "https://edo.1c.ru/handbook"
|
||||||
|
+ ?(ПустаяСтрока(СтрокаПоиска), "", "//?q=" + СтрокаПоиска);
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
// Локализация
|
// Локализация
|
||||||
|
|
||||||
#Область ШаблоныКонвертаXML
|
#Область ШаблоныКонвертаXML
|
||||||
@@ -670,6 +681,22 @@
|
|||||||
// Аккредитация удостоверяющего центра прекращена.
|
// Аккредитация удостоверяющего центра прекращена.
|
||||||
Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
||||||
|
|
||||||
|
Если СтрНачинаетсяС(КонтекстПроверки.ЗначенияПоиска, "1024001434049")
|
||||||
|
И ЗначениеЗаполнено(ДатаПрекращенияАккредитацииУЦ)
|
||||||
|
И ДатаПрекращенияАккредитацииУЦ - КонтекстПроверки.РазницаСУниверсальнымВременем = Дата(2024, 7, 20, 21, 0, 0) Тогда
|
||||||
|
|
||||||
|
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
|
||||||
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.РазрешитьПодписание = Ложь;
|
||||||
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Сертификат не действует с %1, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, прекращена.'"),
|
||||||
|
Формат(ДатаПрекращенияАккредитацииУЦ, "ДЛФ=DT"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||||
|
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
||||||
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат");
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат РезультатПроверкиУдостоверяющегоЦентра;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДанныеУдостоверяющегоЦентра.РазрешенныйНеаккредитованный Тогда
|
Если ДанныеУдостоверяющегоЦентра.РазрешенныйНеаккредитованный Тогда
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Действует = Истина;
|
РезультатПроверкиУдостоверяющегоЦентра.Действует = Истина;
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
@@ -682,6 +709,8 @@
|
|||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Сертификат не действует с %1, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, прекращена.'"),
|
НСтр("ru = 'Сертификат не действует с %1, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, прекращена.'"),
|
||||||
Формат(ДатаПрекращенияАккредитацииУЦ, "ДЛФ=DT"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
Формат(ДатаПрекращенияАккредитацииУЦ, "ДЛФ=DT"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||||
|
|
||||||
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.РазрешитьПодписание = Ложь;
|
||||||
|
|
||||||
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
||||||
|
|
||||||
@@ -689,12 +718,12 @@
|
|||||||
|
|
||||||
Если ВозможенПеревыпуск Тогда
|
Если ВозможенПеревыпуск Тогда
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат или добавьте удостоверяющий центр %2 в <a href = ""%3"">список разрешенных</a> неаккредитованных УЦ.'"),
|
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат. Если юридическая значимость подписей не требуется, добавьте удостоверяющий центр %2 в <a href = ""%3"">список разрешенных</a> неаккредитованных УЦ.'"),
|
||||||
"ПодатьЗаявлениеНаСертификат", КонтекстПроверки.НаименованиеУдостоверяющегоЦентра,
|
"ПодатьЗаявлениеНаСертификат", КонтекстПроверки.НаименованиеУдостоверяющегоЦентра,
|
||||||
"ДобавитьУдостоверяющийЦентрВСписокРазрешенныхНеаккредитованных");
|
"ДобавитьУдостоверяющийЦентрВСписокРазрешенныхНеаккредитованных");
|
||||||
Иначе
|
Иначе
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a> или добавьте удостоверяющий центр %2 в <a href = ""%3"">список разрешенных</a> неаккредитованных УЦ.'"),
|
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>. Если юридическая значимость подписей не требуется, добавьте удостоверяющий центр %2 в <a href = ""%3"">список разрешенных</a> неаккредитованных УЦ.'"),
|
||||||
СсылкаНаСтатьюОбУдостоверяющихЦентрах(), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра,
|
СсылкаНаСтатьюОбУдостоверяющихЦентрах(), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра,
|
||||||
"ДобавитьУдостоверяющийЦентрВСписокРазрешенныхНеаккредитованных");
|
"ДобавитьУдостоверяющийЦентрВСписокРазрешенныхНеаккредитованных");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -0,0 +1,271 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Copyright (c) 2024, ООО 1С-Софт
|
||||||
|
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||||
|
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||||
|
// Текст лицензии доступен по ссылке:
|
||||||
|
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
// При создании на сервере.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Форма - ФормаКлиентскогоПриложения
|
||||||
|
//
|
||||||
|
Процедура ПриСозданииНаСервере(Форма) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Форма.ИмяФормы = "ОбщаяФорма.ДобавлениеЭлектроннойПодписиИзФайла" Тогда
|
||||||
|
Форма.Элементы.ПодписиМашиночитаемаяДоверенность.Видимость = Истина;
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Форма.ИмяФормы = "ОбщаяФорма.СохранениеВместеСЭлектроннойПодписью" Тогда
|
||||||
|
Форма.Элементы.ТаблицаПодписейМашиночитаемаяДоверенность.Видимость = Истина;
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
Процедура ПриЗагрузкеМашиночитаемыхДоверенностей(Форма) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Подписи = Форма.Подписи;
|
||||||
|
Доверенности = Форма.Доверенности;
|
||||||
|
|
||||||
|
МодульМашиночитаемыеДоверенностиСлужебный = ОбщегоНазначения.ОбщийМодуль(
|
||||||
|
"МашиночитаемыеДоверенностиФНССлужебный");
|
||||||
|
|
||||||
|
Для Каждого Подпись Из Подписи Цикл
|
||||||
|
|
||||||
|
Если ТипЗнч(Подпись.МашиночитаемаяДоверенность) = Тип("Строка") И ЗначениеЗаполнено(
|
||||||
|
Подпись.МашиночитаемаяДоверенность) Тогда
|
||||||
|
|
||||||
|
Найдено = Доверенности.НайтиСтроки(Новый Структура("НомерДоверенности", Подпись.НомерДоверенности));
|
||||||
|
|
||||||
|
ФайлыДоверенности = ПолучитьИзВременногоХранилища(Найдено[0].ФайлыДоверенности);
|
||||||
|
Результат = МодульМашиночитаемыеДоверенностиСлужебный.ЗагрузитьДоверенностиВИнформационнуюБазу(
|
||||||
|
ФайлыДоверенности);
|
||||||
|
|
||||||
|
МашиночитаемаяДоверенность = Результат.Доверенности[0];
|
||||||
|
|
||||||
|
СвойстваПодписи = ПолучитьИзВременногоХранилища(Подпись.АдресСвойствПодписи);
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиСлужебный.НовыйРезультатПроверкиПодписиПоМЧД(
|
||||||
|
МашиночитаемаяДоверенность);
|
||||||
|
ПоместитьВоВременноеХранилище(СвойстваПодписи, Подпись.АдресСвойствПодписи);
|
||||||
|
|
||||||
|
Подпись.МашиночитаемаяДоверенность = МашиночитаемаяДоверенность;
|
||||||
|
Найдено = Подписи.НайтиСтроки(Новый Структура("НомерДоверенности", Подпись.НомерДоверенности));
|
||||||
|
Для Каждого Строка Из Найдено Цикл
|
||||||
|
Строка.МашиночитаемаяДоверенность = МашиночитаемаяДоверенность;
|
||||||
|
СвойстваПодписи = ПолучитьИзВременногоХранилища(Строка.АдресСвойствПодписи);
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиСлужебный.НовыйРезультатПроверкиПодписиПоМЧД(
|
||||||
|
МашиночитаемаяДоверенность);
|
||||||
|
ПоместитьВоВременноеХранилище(СвойстваПодписи, Строка.АдресСвойствПодписи);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриЗаполненииМашиночитаемыхДоверенностей(Форма, ПодписанныйОбъект = Неопределено) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Подписи = Форма.Подписи;
|
||||||
|
Доверенности = Форма.Доверенности;
|
||||||
|
|
||||||
|
МодульМашиночитаемыеДоверенностиФНС = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНС");
|
||||||
|
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНССлужебный");
|
||||||
|
|
||||||
|
Для Каждого ТекущаяСтрока Из Подписи Цикл
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность = Неопределено;
|
||||||
|
|
||||||
|
СвойстваПодписи = ПолучитьИзВременногоХранилища(ТекущаяСтрока.АдресСвойствПодписи);
|
||||||
|
Сертификат = СвойстваПодписи.Сертификат;
|
||||||
|
|
||||||
|
ОтборПоСертификату = МодульМашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(Сертификат, "Представитель");
|
||||||
|
ПоляОтбора = Новый Массив;
|
||||||
|
Для Каждого Элемент Из ОтборПоСертификату Цикл
|
||||||
|
Если Элемент.Ключ = "ПредставительИНН" Или Элемент.Ключ = "ПредставительИННФЛ" Тогда
|
||||||
|
Если Не ЗначениеЗаполнено(ТекущаяСтрока.МашиночитаемаяДоверенность) Тогда
|
||||||
|
Для Каждого Доверенность Из Доверенности Цикл
|
||||||
|
Если СтрНайти(Доверенность.ПоляОтбора, Элемент.Значение) Тогда
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность = Доверенность.МашиночитаемаяДоверенность;
|
||||||
|
ТекущаяСтрока.НомерДоверенности = Доверенность.НомерДоверенности;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
ПоляОтбора.Добавить(Элемент.Значение);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
ТекущаяСтрока.ПоляОтбора = СтрСоединить(ПоляОтбора, ";");
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ТекущаяСтрока.МашиночитаемаяДоверенность) Тогда
|
||||||
|
Результат = МодульМашиночитаемыеДоверенностиФНС.ДоверенностиСОтбором(
|
||||||
|
ОтборПоСертификату, "МашиночитаемаяДоверенность", СвойстваПодписи.ДатаПодписи);
|
||||||
|
Если Результат.Количество() > 0 Тогда
|
||||||
|
|
||||||
|
Для Каждого Доверенность Из Результат Цикл
|
||||||
|
Найдено = Доверенности.НайтиСтроки(Новый Структура("МашиночитаемаяДоверенность",
|
||||||
|
Доверенность.МашиночитаемаяДоверенность));
|
||||||
|
Если Найдено.Количество() > 0 Тогда
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность = Найдено[0].МашиночитаемаяДоверенность;
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ТекущаяСтрока.МашиночитаемаяДоверенность) Тогда
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность = Результат[0].МашиночитаемаяДоверенность;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ТекущаяСтрока.МашиночитаемаяДоверенность) Тогда
|
||||||
|
Если ПодписанныйОбъект = Неопределено Тогда
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.НовыйРезультатПроверкиПодписиПоМЧД(
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность);
|
||||||
|
ИначеЕсли МодульМашиночитаемыеДоверенностиФНССлужебный.ЭтоМашиночитаемаяДоверенность(
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность) Тогда
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность, ПодписанныйОбъект, СвойстваПодписи.Сертификат,
|
||||||
|
СвойстваПодписи.ДатаПодписи);
|
||||||
|
Иначе
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
Иначе
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПоместитьВоВременноеХранилище(СвойстваПодписи, ТекущаяСтрока.АдресСвойствПодписи);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриЗаполненииМашиночитаемойДоверенностиВСтроке(Форма, ИдентификаторСтроки, ПодписанныйОбъект) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Подписи = Форма.Подписи;
|
||||||
|
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНССлужебный");
|
||||||
|
ТекущаяСтрока = Подписи.НайтиПоИдентификатору(ИдентификаторСтроки);
|
||||||
|
СвойстваПодписи = ПолучитьИзВременногоХранилища(ТекущаяСтрока.АдресСвойствПодписи);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ТекущаяСтрока.МашиночитаемаяДоверенность) Тогда
|
||||||
|
Если ПодписанныйОбъект = Неопределено Тогда
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.НовыйРезультатПроверкиПодписиПоМЧД(
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность);
|
||||||
|
ИначеЕсли МодульМашиночитаемыеДоверенностиФНССлужебный.ЭтоМашиночитаемаяДоверенность(
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность) Тогда
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(
|
||||||
|
ТекущаяСтрока.МашиночитаемаяДоверенность, ПодписанныйОбъект, СвойстваПодписи.Сертификат,
|
||||||
|
СвойстваПодписи.ДатаПодписи);
|
||||||
|
Иначе
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
Иначе
|
||||||
|
СвойстваПодписи.РезультатПроверкиПодписиПоМЧД = Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
ПоместитьВоВременноеХранилище(СвойстваПодписи, ТекущаяСтрока.АдресСвойствПодписи);
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриДобавленииСтрокНаСервере(Форма, ПомещенныеФайлы, ДругиеФайлы, ОшибкиПриЗагрузкеДоверенностей, УникальныйИдентификатор) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Доверенности = Форма.Доверенности;
|
||||||
|
|
||||||
|
МодульМашиночитаемыеДоверенностиСлужебный = ОбщегоНазначения.ОбщийМодуль(
|
||||||
|
"МашиночитаемыеДоверенностиФНССлужебный");
|
||||||
|
|
||||||
|
СвойстваДоверенностей = МодульМашиночитаемыеДоверенностиСлужебный.СвойстваДоверенностейИзФайлов(
|
||||||
|
ПомещенныеФайлы, УникальныйИдентификатор);
|
||||||
|
Для Каждого СвойстваДоверенности Из СвойстваДоверенностей.Доверенности Цикл
|
||||||
|
|
||||||
|
НоваяСтрока = Доверенности.Добавить();
|
||||||
|
ЗаполнитьЗначенияСвойств(НоваяСтрока, СвойстваДоверенности);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ОшибкиПриЗагрузкеДоверенностей = СтрСоединить(СвойстваДоверенностей.ТекстыОшибок, Символы.ПС);
|
||||||
|
ДругиеФайлы = СвойстваДоверенностей.ДругиеФайлы;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриПроверкеПодписейПоМЧД(Подписи, ПодписанныйОбъект, РезультатыПроверок) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РезультатыПроверок = Новый Массив;
|
||||||
|
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль(
|
||||||
|
"МашиночитаемыеДоверенностиФНССлужебный");
|
||||||
|
Для Каждого Подпись Из Подписи Цикл
|
||||||
|
|
||||||
|
РезультатПроверкиДоверенностей = ПолучитьИзВременногоХранилища(Подпись.РезультатПроверкиПодписиПоМЧД);
|
||||||
|
НовыйРезультатПроверкиДоверенностей = Новый Массив;
|
||||||
|
Для Каждого Результат Из РезультатПроверкиДоверенностей Цикл
|
||||||
|
Если Не ЗначениеЗаполнено(Подпись.Сертификат) Тогда
|
||||||
|
НовыйРезультатПроверкиДоверенностей.Добавить(
|
||||||
|
МодульМашиночитаемыеДоверенностиФНССлужебный.НовыйРезультатПроверкиПодписиПоМЧД(Результат.МашиночитаемаяДоверенность));
|
||||||
|
Иначе
|
||||||
|
РезультатПроверкиПодписиПоМЧД = МодульМашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(
|
||||||
|
Результат.МашиночитаемаяДоверенность, ПодписанныйОбъект, Подпись.Сертификат, Подпись.ДатаПодписи);
|
||||||
|
НовыйРезультатПроверкиДоверенностей.Добавить(РезультатПроверкиПодписиПоМЧД);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
РезультатПроверки = Новый Структура("Индекс, РезультатПроверкиПодписиПоМЧД", Подпись.Индекс,
|
||||||
|
НовыйРезультатПроверкиДоверенностей);
|
||||||
|
МодульМашиночитаемыеДоверенностиФНССлужебный.ДобавитьИнформациюМЧД(РезультатПроверки,
|
||||||
|
Подпись.РезультатПроверкиПодписиПоМЧД);
|
||||||
|
РезультатыПроверок.Добавить(РезультатПроверки);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1d1248ce-c31a-41f9-85b2-0d97ae2bea82">
|
||||||
|
<name>ЭлектроннаяПодписьЛокализация</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Электронная подпись локализация</value>
|
||||||
|
</synonym>
|
||||||
|
<server>true</server>
|
||||||
|
<externalConnection>true</externalConnection>
|
||||||
|
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||||
|
</mdclass:CommonModule>
|
||||||
@@ -1000,6 +1000,18 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПроверитьПодписиПоМЧД(Подписи, ПодписанныйОбъект) Экспорт
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||||
|
Возврат Новый Массив;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РезультатыПроверок = Новый Массив;
|
||||||
|
ЭлектроннаяПодписьЛокализация.ПриПроверкеПодписейПоМЧД(Подписи, ПодписанныйОбъект, РезультатыПроверок);
|
||||||
|
Возврат РезультатыПроверок;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#Область ПоставляемыеДанные
|
#Область ПоставляемыеДанные
|
||||||
|
|
||||||
// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных
|
// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных
|
||||||
@@ -1515,6 +1527,7 @@
|
|||||||
СертификатСуществует = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует(Подпись.СертификатПодписи);
|
СертификатСуществует = ЭлектроннаяПодписьСлужебныйКлиентСервер.СертификатСуществует(Подпись.СертификатПодписи);
|
||||||
|
|
||||||
Если СертификатСуществует Тогда
|
Если СертификатСуществует Тогда
|
||||||
|
ПараметрыПодписи.Сертификат = Подпись.СертификатПодписи;
|
||||||
ПараметрыПодписи.ОписаниеСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Подпись.СертификатПодписи);
|
ПараметрыПодписи.ОписаниеСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Подпись.СертификатПодписи);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -2506,9 +2519,14 @@
|
|||||||
АдресСпискаОтзываВнутренний.АдресВнешний, АдресСпискаОтзываВнутренний.АдресВнутренний);
|
АдресСпискаОтзываВнутренний.АдресВнешний, АдресСпискаОтзываВнутренний.АдресВнутренний);
|
||||||
Исключение
|
Исключение
|
||||||
|
|
||||||
|
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(СертификатДляПроверки);
|
||||||
|
|
||||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Не удалось установить список отзыва %1 при проверке сертификата: %2'"),
|
НСтр("ru = 'Не удалось установить список отзыва при проверке сертификата: %1
|
||||||
АдресСпискаОтзываВнутренний.АдресВнутренний, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
|%2.'"),
|
||||||
|
|
||||||
|
ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
|
||||||
|
ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(СвойстваСертификата));
|
||||||
|
|
||||||
ЗаписьЖурналаРегистрации(
|
ЗаписьЖурналаРегистрации(
|
||||||
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'",
|
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'",
|
||||||
@@ -7491,7 +7509,7 @@
|
|||||||
РезультатЗагрузки.АдресФайла = Неопределено;
|
РезультатЗагрузки.АдресФайла = Неопределено;
|
||||||
РезультатЗагрузки.ИмяФайла = Неопределено;
|
РезультатЗагрузки.ИмяФайла = Неопределено;
|
||||||
РезультатЗагрузки.ДанныеФайла = Неопределено;
|
РезультатЗагрузки.ДанныеФайла = Неопределено;
|
||||||
РезультатЗагрузки.СообщениеОбОшибке = НСтр("ru = 'Список отзыва просрочен.'");
|
РезультатЗагрузки.СообщениеОбОшибке = НСтр("ru = 'Список отзыва просрочен. Обратитесь в удостоверяющий центр, выдавший сертификат.'");
|
||||||
Возврат;
|
Возврат;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -7839,8 +7857,22 @@
|
|||||||
ОписаниеОшибки = "";
|
ОписаниеОшибки = "";
|
||||||
|
|
||||||
ДанныеФайла = Результат.ДанныеФайла;
|
ДанныеФайла = Результат.ДанныеФайла;
|
||||||
|
|
||||||
|
СвойстваСпискаОтзыва = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСпискаОтзыва(ДанныеФайла);
|
||||||
|
|
||||||
|
Если СвойстваСпискаОтзыва = Неопределено Тогда
|
||||||
|
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Файл %1 не является списком отзыва.'"), Результат.АдресФайла);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(СвойстваСпискаОтзыва.ДатаОкончания) И СвойстваСпискаОтзыва.ДатаОкончания < ТекущаяУниверсальнаяДата() Тогда
|
||||||
|
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Список отзыва %1 просрочен. Обратитесь в удостоверяющий центр, выдавший сертификат.'"), Результат.АдресФайла);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".crl");
|
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(".crl");
|
||||||
ДанныеФайла.Записать(ИмяВременногоФайла);
|
ДанныеФайла.Записать(ИмяВременногоФайла);
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
ОбъектКомпоненты.ИмпортироватьСписокОтзываСертификатов(ИмяВременногоФайла, "CA");
|
ОбъектКомпоненты.ИмпортироватьСписокОтзываСертификатов(ИмяВременногоФайла, "CA");
|
||||||
РезультатУстановки = Истина;
|
РезультатУстановки = Истина;
|
||||||
|
|||||||
@@ -1092,7 +1092,7 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Сохраняет подпись на компьютер.
|
// Сохраняет подпись на компьютер.
|
||||||
Процедура СохранитьПодпись(АдресПодписи) Экспорт
|
Процедура СохранитьПодпись(АдресПодписи, ИмяФайлаПодписи = "") Экспорт
|
||||||
|
|
||||||
Оповещение = Новый ОписаниеОповещения("СохранитьПодписьПослеПолученияФайла", ЭтотОбъект, Неопределено);
|
Оповещение = Новый ОписаниеОповещения("СохранитьПодписьПослеПолученияФайла", ЭтотОбъект, Неопределено);
|
||||||
Фильтр = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Фильтр = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
@@ -1104,7 +1104,7 @@
|
|||||||
ПараметрыСохранения.Диалог.Фильтр = Фильтр;
|
ПараметрыСохранения.Диалог.Фильтр = Фильтр;
|
||||||
ПараметрыСохранения.Диалог.Заголовок = НСтр("ru = 'Выберите файл для сохранения подписи'");
|
ПараметрыСохранения.Диалог.Заголовок = НСтр("ru = 'Выберите файл для сохранения подписи'");
|
||||||
|
|
||||||
ФайловаяСистемаКлиент.СохранитьФайл(Оповещение, АдресПодписи, "", ПараметрыСохранения);
|
ФайловаяСистемаКлиент.СохранитьФайл(Оповещение, АдресПодписи, ИмяФайлаПодписи, ПараметрыСохранения);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -2202,13 +2202,14 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОшибкаПоКлассификатору <> Неопределено Тогда
|
|
||||||
ОбработатьОшибкуПоКлассификатору(ОписаниеОшибки, Контекст.ТребуетПроверкиНаКлиенте, Контекст, ОшибкаПоКлассификатору);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
ОписаниеОшибки = Строка(ИнформацияОбОшибке);
|
ОписаниеОшибки = Строка(ИнформацияОбОшибке);
|
||||||
|
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ОшибкаПоКлассификатору(ОписаниеОшибки);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОшибкаПоКлассификатору <> Неопределено Тогда
|
||||||
|
ОбработатьОшибкуПоКлассификатору(ОписаниеОшибки, Контекст.ТребуетПроверкиНаКлиенте, Контекст, ОшибкаПоКлассификатору);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Контекст.ОписаниеОшибкиНаКлиенте = ОписаниеОшибки;
|
Контекст.ОписаниеОшибкиНаКлиенте = ОписаниеОшибки;
|
||||||
@@ -2231,13 +2232,15 @@
|
|||||||
Если Не Результат.УстановкаВыполнена Тогда
|
Если Не Результат.УстановкаВыполнена Тогда
|
||||||
|
|
||||||
ТекстПредыдущейОшибки = Контекст.ДействияДляУстраненияОшибок.Получить("УстановитьСписокОтзываСертификата");
|
ТекстПредыдущейОшибки = Контекст.ДействияДляУстраненияОшибок.Получить("УстановитьСписокОтзываСертификата");
|
||||||
ПроверитьСертификатНаКлиентеПослеОшибкиПроверки(ТекстПредыдущейОшибки, Ложь, Контекст);
|
|
||||||
|
|
||||||
ТекстОшибкиУстановкиСпискаОтзыва = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ТекстОшибкиУстановкиСпискаОтзыва = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Не удалось установить список отзыва при проверке сертификата: %1'"), Результат.Сообщение);
|
НСтр("ru = 'Не удалось установить список отзыва при проверке сертификата: %1
|
||||||
|
|%2.'"), Результат.Сообщение, СвойстваСертификатаСтрокой(Контекст.СертификатКриптографии));
|
||||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||||
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
|
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
|
||||||
"Предупреждение", ТекстОшибкиУстановкиСпискаОтзыва,, Истина);
|
"Предупреждение", ТекстОшибкиУстановкиСпискаОтзыва,, Истина);
|
||||||
|
|
||||||
|
ПроверитьСертификатНаКлиентеПослеОшибкиПроверки(ТекстПредыдущейОшибки, Ложь, Контекст);
|
||||||
|
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -4238,6 +4241,13 @@
|
|||||||
|
|
||||||
Контекст.Вставить("КоллекцияПодписей", КоллекцияПодписей);
|
Контекст.Вставить("КоллекцияПодписей", КоллекцияПодписей);
|
||||||
|
|
||||||
|
МашиночитаемыеДоверенности = Новый Массив;
|
||||||
|
ЭлектроннаяПодписьКлиентЛокализация.ПриОпределенииФайловМашиночитаемыхДоверенностей(МашиночитаемыеДоверенности,
|
||||||
|
Контекст.КоллекцияПодписей);
|
||||||
|
|
||||||
|
Контекст.Вставить("МашиночитаемыеДоверенности", МашиночитаемыеДоверенности);
|
||||||
|
Контекст.Вставить("ВыгруженныеСертификаты", Новый Соответствие);
|
||||||
|
|
||||||
ПараметрыВыполнения = Новый Структура;
|
ПараметрыВыполнения = Новый Структура;
|
||||||
ПараметрыВыполнения.Вставить("ОписаниеДанных", Контекст.ОписаниеДанных);
|
ПараметрыВыполнения.Вставить("ОписаниеДанных", Контекст.ОписаниеДанных);
|
||||||
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
|
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
|
||||||
@@ -4307,11 +4317,11 @@
|
|||||||
|
|
||||||
Контекст.Вставить("ИменаФайлов", Новый Соответствие);
|
Контекст.Вставить("ИменаФайлов", Новый Соответствие);
|
||||||
Контекст.ИменаФайлов.Вставить(Контекст.СоставИмениФайлаДанных.Имя, Истина);
|
Контекст.ИменаФайлов.Вставить(Контекст.СоставИмениФайлаДанных.Имя, Истина);
|
||||||
|
|
||||||
Контекст.Вставить("Индекс", -1);
|
Контекст.Вставить("Индекс", -1);
|
||||||
|
|
||||||
СохранитьДанныеВместеСПодписьюЦиклНачало(Контекст);
|
СохранитьДанныеВместеСПодписьюЦиклНачало(Контекст);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
||||||
@@ -4326,6 +4336,7 @@
|
|||||||
СохранитьДанныеВместеСПодписьюПослеЦикла(Контекст);
|
СохранитьДанныеВместеСПодписьюПослеЦикла(Контекст);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Контекст.Индекс = Контекст.Индекс + 1;
|
Контекст.Индекс = Контекст.Индекс + 1;
|
||||||
Контекст.Вставить("ОписаниеПодписи", Контекст.КоллекцияПодписей[Контекст.Индекс]);
|
Контекст.Вставить("ОписаниеПодписи", Контекст.КоллекцияПодписей[Контекст.Индекс]);
|
||||||
|
|
||||||
@@ -4424,7 +4435,9 @@
|
|||||||
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
||||||
Процедура СохранитьДанныеВместеСПодписьюЦиклПослеСохраненияПодписи(Результат, Контекст) Экспорт
|
Процедура СохранитьДанныеВместеСПодписьюЦиклПослеСохраненияПодписи(Результат, Контекст) Экспорт
|
||||||
|
|
||||||
Если Контекст.СохранятьСертификатВместеСПодписью Тогда
|
Если Контекст.СохранятьСертификатВместеСПодписью И Контекст.ВыгруженныеСертификаты.Получить(
|
||||||
|
Контекст.ОписаниеПодписи.Отпечаток) = Неопределено Тогда
|
||||||
|
Контекст.Вставить("Счетчик", 1);
|
||||||
СохранитьДанныеСертификатаВместеСПодписьюЦиклНачало(Контекст);
|
СохранитьДанныеСертификатаВместеСПодписьюЦиклНачало(Контекст);
|
||||||
Иначе
|
Иначе
|
||||||
СохранитьДанныеВместеСПодписьюЦиклНачало(Контекст);
|
СохранитьДанныеВместеСПодписьюЦиклНачало(Контекст);
|
||||||
@@ -4465,6 +4478,7 @@
|
|||||||
Контекст.ИмяФайлаСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ИмяФайлаСертификата(Контекст.ИмяФайлаСертификатаБезРасширения,
|
Контекст.ИмяФайлаСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ИмяФайлаСертификата(Контекст.ИмяФайлаСертификатаБезРасширения,
|
||||||
"(" + Строка(Контекст.Счетчик) + ")", Контекст.ОписаниеПодписи.РасширениеСертификата, Ложь);
|
"(" + Строка(Контекст.Счетчик) + ")", Контекст.ОписаниеПодписи.РасширениеСертификата, Ложь);
|
||||||
|
|
||||||
|
Контекст.Счетчик = Контекст.Счетчик + 1;
|
||||||
СохранитьДанныеСертификатаВместеСПодписьюЦиклВнутреннийЦиклНачало(Контекст);
|
СохранитьДанныеСертификатаВместеСПодписьюЦиклВнутреннийЦиклНачало(Контекст);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -4494,6 +4508,7 @@
|
|||||||
|
|
||||||
СоставИмениФайлаСертификата = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(Контекст.ПолноеИмяФайлаСертификата);
|
СоставИмениФайлаСертификата = ОбщегоНазначенияКлиентСервер.РазложитьПолноеИмяФайла(Контекст.ПолноеИмяФайлаСертификата);
|
||||||
Контекст.ИменаФайлов.Вставить(СоставИмениФайлаСертификата.Имя, Ложь);
|
Контекст.ИменаФайлов.Вставить(СоставИмениФайлаСертификата.Имя, Ложь);
|
||||||
|
Контекст.ВыгруженныеСертификаты.Вставить(Контекст.ОписаниеПодписи.Отпечаток, Истина);
|
||||||
|
|
||||||
Если Контекст.Подключено Тогда
|
Если Контекст.Подключено Тогда
|
||||||
Описание = Новый ОписаниеПередаваемогоФайла(СоставИмениФайлаСертификата.Имя, Контекст.ОписаниеПодписи.АдресСертификата);
|
Описание = Новый ОписаниеПередаваемогоФайла(СоставИмениФайлаСертификата.Имя, Контекст.ОписаниеПодписи.АдресСертификата);
|
||||||
@@ -4518,13 +4533,52 @@
|
|||||||
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
||||||
Процедура СохранитьДанныеВместеСПодписьюПослеЦикла(Контекст)
|
Процедура СохранитьДанныеВместеСПодписьюПослеЦикла(Контекст)
|
||||||
|
|
||||||
|
Контекст.Вставить("ИндексДоверенности", -1);
|
||||||
|
СохранитьМашиночитаемыеДоверенностиЦиклНачало(Контекст);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
||||||
|
Процедура СохранитьМашиночитаемыеДоверенностиЦиклНачало(Контекст)
|
||||||
|
|
||||||
|
Если Контекст.МашиночитаемыеДоверенности.Количество() <= Контекст.ИндексДоверенности + 1 Тогда
|
||||||
|
СохранитьДанныеВместеСПодписьюПослеЦиклаСохраненияМашиночитаемыхДоверенностей(Контекст);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Контекст.ИндексДоверенности = Контекст.ИндексДоверенности + 1;
|
||||||
|
ВыгружаемаяДоверенность = Контекст.МашиночитаемыеДоверенности[Контекст.ИндексДоверенности];
|
||||||
|
|
||||||
|
Если Контекст.Подключено Тогда
|
||||||
|
Описание = Новый ОписаниеПередаваемогоФайла(ВыгружаемаяДоверенность.Имя, ВыгружаемаяДоверенность.Хранение);
|
||||||
|
Контекст.ПолучаемыеФайлы.Добавить(Описание);
|
||||||
|
СохранитьМашиночитаемыеДоверенностиЦиклНачало(Контекст);
|
||||||
|
Иначе
|
||||||
|
// Сохранение файла из программы на компьютер.
|
||||||
|
ФайловаяСистемаКлиент.СохранитьФайл(
|
||||||
|
Новый ОписаниеОповещения("СохранитьДанныеВместеСПодписьюПослеЦиклаСохраненияМашиночитаемойДоверенности", ЭтотОбъект, Контекст),
|
||||||
|
ВыгружаемаяДоверенность.Хранение, ВыгружаемаяДоверенность.Имя);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
||||||
|
Процедура СохранитьДанныеВместеСПодписьюПослеЦиклаСохраненияМашиночитаемойДоверенности(Результат, Контекст) Экспорт
|
||||||
|
|
||||||
|
СохранитьМашиночитаемыеДоверенностиЦиклНачало(Контекст);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
||||||
|
Процедура СохранитьДанныеВместеСПодписьюПослеЦиклаСохраненияМашиночитаемыхДоверенностей(Контекст)
|
||||||
|
|
||||||
Если Не Контекст.Подключено Тогда
|
Если Не Контекст.Подключено Тогда
|
||||||
Если Контекст.ОбработкаРезультата <> Неопределено Тогда
|
Если Контекст.ОбработкаРезультата <> Неопределено Тогда
|
||||||
ВыполнитьОбработкуОповещения(Контекст.ОбработкаРезультата, Истина);
|
ВыполнитьОбработкуОповещения(Контекст.ОбработкаРезультата, Истина);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Сохранение файла из программы на компьютер.
|
// Сохранение файла из программы на компьютер.
|
||||||
Если Контекст.ПолучаемыеФайлы.Количество() > 0 Тогда
|
Если Контекст.ПолучаемыеФайлы.Количество() > 0 Тогда
|
||||||
Контекст.Вставить("ПолучаемыеФайлы", Контекст.ПолучаемыеФайлы);
|
Контекст.Вставить("ПолучаемыеФайлы", Контекст.ПолучаемыеФайлы);
|
||||||
@@ -4551,7 +4605,7 @@
|
|||||||
Иначе
|
Иначе
|
||||||
СохранитьДанныеВместеСПодписьюПослеПолученияРазрешений(Ложь, Контекст);
|
СохранитьДанныеВместеСПодписьюПослеПолученияРазрешений(Ложь, Контекст);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
// Продолжение процедуры ЭлектроннаяПодписьКлиент.СохранитьДанныеВместеСПодписью.
|
||||||
@@ -8759,10 +8813,12 @@
|
|||||||
ЭлектроннаяПодписьСлужебныйВызовСервера.ЗарегистрироватьПодписаниеДанныхВЖурнале(
|
ЭлектроннаяПодписьСлужебныйВызовСервера.ЗарегистрироватьПодписаниеДанныхВЖурнале(
|
||||||
СвойстваТекущегоЭлементаДанных(Контекст, СвойстваПодписи));
|
СвойстваТекущегоЭлементаДанных(Контекст, СвойстваПодписи));
|
||||||
|
|
||||||
|
Контекст.ОписаниеДанных.Вставить("ТекущийЭлементНабораДанных", ЭлементДанных);
|
||||||
|
|
||||||
ПараметрыВыполнения = Новый Структура;
|
ПараметрыВыполнения = Новый Структура;
|
||||||
ПараметрыВыполнения.Вставить("ОписаниеДанных", Контекст.ОписаниеДанных);
|
ПараметрыВыполнения.Вставить("ОписаниеДанных", Контекст.ОписаниеДанных);
|
||||||
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
|
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
|
||||||
"ВыполнитьНаСторонеЦиклПослеЗаписиПодписи", ЭтотОбъект, Контекст));
|
"ВыполнитьНаСторонеЦиклПослеЗаписиПакетнойПодписи", ЭтотОбъект, Контекст));
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
ВыполнитьОбработкуОповещения(ЭлементДанных.Объект, ПараметрыВыполнения);
|
ВыполнитьОбработкуОповещения(ЭлементДанных.Объект, ПараметрыВыполнения);
|
||||||
@@ -8784,6 +8840,13 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ВыполнитьНаСторонеЦиклПослеЗаписиПакетнойПодписи(Результат, Контекст) Экспорт
|
||||||
|
|
||||||
|
// Заглушка для пакетного режима, не требуется выполнять цикл выполнения операций.
|
||||||
|
Контекст.Индекс = 0;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ПроверятьСертификатыОблачнойПодписью()
|
Функция ПроверятьСертификатыОблачнойПодписью()
|
||||||
|
|
||||||
Результат = ИспользоватьСервисОблачнойПодписи()
|
Результат = ИспользоватьСервисОблачнойПодписи()
|
||||||
@@ -9818,7 +9881,13 @@
|
|||||||
|
|
||||||
Если СвойстваСпискаОтзыва = Неопределено Тогда
|
Если СвойстваСпискаОтзыва = Неопределено Тогда
|
||||||
ОбработатьОшибкуУстановкиСпискаОтзыва(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ОбработатьОшибкуУстановкиСпискаОтзыва(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Файл %1 не является списком отзыва.'"), Результат.АдресФайла), Контекст);
|
НСтр("ru = 'Файл %1 не является списком отзыва.'"), Результат.АдресФайла), Результат, Истина);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(СвойстваСпискаОтзыва.ДатаОкончания) И СвойстваСпискаОтзыва.ДатаОкончания < ОбщегоНазначенияКлиент.ДатаУниверсальная() Тогда
|
||||||
|
ОбработатьОшибкуУстановкиСпискаОтзыва(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Список отзыва %1 просрочен. Обратитесь в удостоверяющий центр, выдавший сертификат.'"), Результат.АдресФайла), Результат, Истина);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
@@ -85,6 +85,7 @@
|
|||||||
// * ВозможенПеревыпуск - Булево - можно подать заявление на новый сертификат из программы.
|
// * ВозможенПеревыпуск - Булево - можно подать заявление на новый сертификат из программы.
|
||||||
// * Причина - Строка - причина ошибки для отображения в расширенной форме ошибки.
|
// * Причина - Строка - причина ошибки для отображения в расширенной форме ошибки.
|
||||||
// * Решение - Строка - рекомендация для отображения в расширенной форме ошибки.
|
// * Решение - Строка - рекомендация для отображения в расширенной форме ошибки.
|
||||||
|
// * РазрешитьПодписание - Булево - можно разрешить подписание в пользовательских настройках.
|
||||||
//
|
//
|
||||||
Функция ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата() Экспорт
|
Функция ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата() Экспорт
|
||||||
|
|
||||||
@@ -93,6 +94,7 @@
|
|||||||
Предупреждение.Вставить("ВозможенПеревыпуск", Ложь);
|
Предупреждение.Вставить("ВозможенПеревыпуск", Ложь);
|
||||||
Предупреждение.Вставить("Причина", "");
|
Предупреждение.Вставить("Причина", "");
|
||||||
Предупреждение.Вставить("Решение", "");
|
Предупреждение.Вставить("Решение", "");
|
||||||
|
Предупреждение.Вставить("РазрешитьПодписание", Истина);
|
||||||
Предупреждение.Вставить("ДополнительныеСведения", "");
|
Предупреждение.Вставить("ДополнительныеСведения", "");
|
||||||
|
|
||||||
Возврат Предупреждение;
|
Возврат Предупреждение;
|
||||||
@@ -4786,11 +4788,18 @@
|
|||||||
Буфер = АнализДанных.Буфер;
|
Буфер = АнализДанных.Буфер;
|
||||||
|
|
||||||
Если ОбщийБлок Тогда
|
Если ОбщийБлок Тогда
|
||||||
Смещение = Буфер.Размер - 2;
|
|
||||||
|
ЛишниеСимволыВКонце = 0;
|
||||||
|
Пока Буфер[Буфер.Размер - ЛишниеСимволыВКонце -1] <> 0 И ЛишниеСимволыВКонце < Буфер.Размер Цикл
|
||||||
|
ЛишниеСимволыВКонце = ЛишниеСимволыВКонце + 1;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Смещение = Буфер.Размер - ЛишниеСимволыВКонце - 2;
|
||||||
Если Смещение < 2 Тогда
|
Если Смещение < 2 Тогда
|
||||||
ПриОшибкеКодированияASN1(АнализДанных);
|
ПриОшибкеКодированияASN1(АнализДанных);
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
Смещение = АнализДанных.Смещение;
|
Смещение = АнализДанных.Смещение;
|
||||||
Если Смещение + 2 > АнализДанных.Родители[0].СмещениеСледующего Тогда
|
Если Смещение + 2 > АнализДанных.Родители[0].СмещениеСледующего Тогда
|
||||||
|
|||||||
@@ -126,7 +126,7 @@
|
|||||||
|
|
||||||
<td height="30">
|
<td height="30">
|
||||||
<p>
|
<p>
|
||||||
<span class="Text">Сохраните макет и закройте редактор, затем нажмите кнопку </span><span class="boldText">Завершить изменения<span class="Text">.</span>
|
<span class="Text">Сохраните макет и закройте редактор, затем нажмите </span><span class="boldText">Записать и закрыть<span class="Text">.</span>
|
||||||
</span></p>
|
</span></p>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr class="webclient"><td height="30">
|
</tr><tr class="webclient"><td height="30">
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
|
|
||||||
<td height="30">
|
<td height="30">
|
||||||
<p>
|
<p>
|
||||||
<span class="Text">Сохраните макет и закройте редактор, затем нажмите кнопку </span><span class="boldText">Завершить изменения<span class="Text">.</span>
|
<span class="Text">Сохраните макет и закройте редактор, затем нажмите </span><span class="boldText">Записать и закрыть<span class="Text">.</span>
|
||||||
</span></p>
|
</span></p>
|
||||||
</td>
|
</td>
|
||||||
</tr><tr><td height="30">
|
</tr><tr><td height="30">
|
||||||
|
|||||||
Loaded 100 of 210 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user