3_1_7_61
This commit is contained in:
1 parent
05491df6f5
commit
514ae42c64
182 files changed
+5368
-2985
No files matched your search
@@ -49,7 +49,7 @@
|
|||||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение;
|
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущееЗначение;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка;
|
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
|
||||||
|
|
||||||
Для каждого Представление Из Параметры.Представления Цикл
|
Для каждого Представление Из Параметры.Представления Цикл
|
||||||
|
|
||||||
|
|||||||
@@ -54,8 +54,8 @@
|
|||||||
// который требуется для анализа наличия расширений и контроля динамического обновления,
|
// который требуется для анализа наличия расширений и контроля динамического обновления,
|
||||||
// а также из формы установки расширений конфигурации в режиме 1С:Предприятия.
|
// а также из формы установки расширений конфигурации в режиме 1С:Предприятия.
|
||||||
//
|
//
|
||||||
// Для сеанса запущенного без разделителей возвращается только состав неразделенных (общих)
|
// Для сеанса запущенного без разделителей исключаются расширения, предназначенные
|
||||||
// расширений, независимо от установленных разделителей.
|
// только для неразделенного режима (инструменты администратора сервиса).
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// ФиксированнаяСтруктура:
|
// ФиксированнаяСтруктура:
|
||||||
@@ -64,15 +64,6 @@
|
|||||||
//
|
//
|
||||||
Функция УстановленныеРасширения(ПриЗапуске = Ложь) Экспорт
|
Функция УстановленныеРасширения(ПриЗапуске = Ложь) Экспорт
|
||||||
|
|
||||||
Если ОбщегоНазначения.РазделениеВключено()
|
|
||||||
И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
|
||||||
|
|
||||||
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
|
|
||||||
Неразделенные = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
|
|
||||||
Иначе
|
|
||||||
Неразделенные = Ложь;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
РасширенияБазыДанных = РасширенияКонфигурации.Получить();
|
РасширенияБазыДанных = РасширенияКонфигурации.Получить();
|
||||||
Если ПриЗапуске Тогда
|
Если ПриЗапуске Тогда
|
||||||
РасширенияПриЗапуске = Новый Соответствие;
|
РасширенияПриЗапуске = Новый Соответствие;
|
||||||
@@ -121,11 +112,19 @@
|
|||||||
МодульОбновлениеКонфигурации = Неопределено;
|
МодульОбновлениеКонфигурации = Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Исключить из контроля расширения только для неразделенных пользователей,
|
||||||
|
// так как они не подключаются в областях и не вносят изменений
|
||||||
|
// в код конфигурации (это инструменты администратора сервиса).
|
||||||
|
НеразделенныйРежим = ОбщегоНазначения.РазделениеВключено()
|
||||||
|
И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
|
||||||
|
|
||||||
Для Каждого Расширение Из Расширения Цикл
|
Для Каждого Расширение Из Расширения Цикл
|
||||||
Если Неразделенные И Расширение.ОбластьДействия = ОбластьДействияРасширенияКонфигурации.РазделениеДанных Тогда
|
Если НеразделенныйРежим
|
||||||
|
И Расширение.ОбластьДействия = ОбластьДействияРасширенияКонфигурации.РазделениеДанных Тогда
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Если МодульОбновлениеКонфигурации <> Неопределено И МодульОбновлениеКонфигурации.ЭтоИсправление(Расширение) Тогда
|
Если МодульОбновлениеКонфигурации <> Неопределено
|
||||||
|
И МодульОбновлениеКонфигурации.ЭтоИсправление(Расширение) Тогда
|
||||||
Исправления.Добавить(Расширение);
|
Исправления.Добавить(Расширение);
|
||||||
Иначе
|
Иначе
|
||||||
Основные.Добавить(Расширение);
|
Основные.Добавить(Расширение);
|
||||||
|
|||||||
@@ -641,7 +641,7 @@
|
|||||||
Представление = Наименования[Язык.КодЯзыка][ИмяВида];
|
Представление = Наименования[Язык.КодЯзыка][ИмяВида];
|
||||||
Если ЗначениеЗаполнено(Представление) Тогда
|
Если ЗначениеЗаполнено(Представление) Тогда
|
||||||
|
|
||||||
Если Язык = Метаданные.ОсновнойЯзык Тогда
|
Если СтрСравнить(Язык.КодЯзыка, ОбщегоНазначения.КодОсновногоЯзыка()) = 0 Тогда
|
||||||
ВидКонтактнойИнформации.Наименование = Представление;
|
ВидКонтактнойИнформации.Наименование = Представление;
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
|
|||||||
@@ -1403,11 +1403,13 @@
|
|||||||
|
|
||||||
Если ОбъектыРасширений Тогда
|
Если ОбъектыРасширений Тогда
|
||||||
СвойстваРасширений = Новый Структура;
|
СвойстваРасширений = Новый Структура;
|
||||||
ИдентификаторыКлючейРасширений = ИдентификаторыКлючейРасширений();
|
РасширенияБазыДанных = Новый Массив;
|
||||||
|
ИдентификаторыКлючейРасширений = ИдентификаторыКлючейРасширений(РасширенияБазыДанных);
|
||||||
СвойстваРасширений.Вставить("ИменаПодключенныхРасширений",
|
СвойстваРасширений.Вставить("ИменаПодключенныхРасширений",
|
||||||
ИменаРасширений(ИсточникРасширенийКонфигурации.СеансАктивные, ИдентификаторыКлючейРасширений));
|
ИменаРасширений(ИсточникРасширенийКонфигурации.СеансАктивные, ИдентификаторыКлючейРасширений));
|
||||||
СвойстваРасширений.Вставить("ИменаНеподключенныхРасширений",
|
СвойстваРасширений.Вставить("ИменаНеподключенныхРасширений",
|
||||||
ИменаРасширений(ИсточникРасширенийКонфигурации.СеансОтключенные, ИдентификаторыКлючейРасширений));
|
ИменаРасширений(ИсточникРасширенийКонфигурации.СеансОтключенные, ИдентификаторыКлючейРасширений));
|
||||||
|
ДополнитьИменаНеподключенныхРасширенийВСеансеБезРазделителей(СвойстваРасширений, РасширенияБазыДанных);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СвойстваОбъектовМетаданных = СвойстваОбъектовМетаданных(ОбъектыРасширений,, ИдентификаторыКлючейРасширений);
|
СвойстваОбъектовМетаданных = СвойстваОбъектовМетаданных(ОбъектыРасширений,, ИдентификаторыКлючейРасширений);
|
||||||
@@ -1854,13 +1856,16 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ИдентификаторыКлючейРасширений()
|
Функция ИдентификаторыКлючейРасширений(РасширенияБазыДанных = Неопределено)
|
||||||
|
|
||||||
Расширения = РасширенияКонфигурации.Получить();
|
Расширения = РасширенияКонфигурации.Получить();
|
||||||
ИдентификаторыКлючейРасширений = Новый Соответствие;
|
ИдентификаторыКлючейРасширений = Новый Соответствие;
|
||||||
Для Каждого Расширение Из Расширения Цикл
|
Для Каждого Расширение Из Расширения Цикл
|
||||||
КлючРасширения = НРег(Расширение.Имя) + " " + Base64Строка(Расширение.ХешСумма);
|
КлючРасширения = НРег(Расширение.Имя) + " " + Base64Строка(Расширение.ХешСумма);
|
||||||
ИдентификаторыКлючейРасширений.Вставить(КлючРасширения, НРег(Расширение.УникальныйИдентификатор));
|
ИдентификаторыКлючейРасширений.Вставить(КлючРасширения, НРег(Расширение.УникальныйИдентификатор));
|
||||||
|
Если ТипЗнч(РасширенияБазыДанных) = Тип("Массив") Тогда
|
||||||
|
РасширенияБазыДанных.Добавить(Расширение);
|
||||||
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат ИдентификаторыКлючейРасширений;
|
Возврат ИдентификаторыКлючейРасширений;
|
||||||
@@ -2975,6 +2980,31 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Для процедуры ОбновитьДанные.
|
||||||
|
Процедура ДополнитьИменаНеподключенныхРасширенийВСеансеБезРазделителей(СвойстваРасширений, РасширенияБазыДанных)
|
||||||
|
|
||||||
|
Если Не СтандартныеПодсистемыСервер.ЭтоРазделенныйРежимСеансаБезРазделителей() Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИменаПодключенныхРасширений = СвойстваРасширений.ИменаПодключенныхРасширений;
|
||||||
|
ИменаНеподключенныхРасширений = СвойстваРасширений.ИменаНеподключенныхРасширений;
|
||||||
|
|
||||||
|
Для Каждого Расширение Из РасширенияБазыДанных Цикл
|
||||||
|
ИдентификаторРасширения = НРег(Расширение.УникальныйИдентификатор);
|
||||||
|
ИмяРасширенияДляПоиска = НРег(Расширение.Имя);
|
||||||
|
Если ИменаПодключенныхРасширений.Получить(ИдентификаторРасширения) <> Неопределено
|
||||||
|
Или ИменаПодключенныхРасширений.Получить(ИмяРасширенияДляПоиска) <> Неопределено
|
||||||
|
Или ИменаНеподключенныхРасширений.Получить(ИдентификаторРасширения) <> Неопределено
|
||||||
|
Или ИменаНеподключенныхРасширений.Получить(ИмяРасширенияДляПоиска) <> Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
ИменаНеподключенныхРасширений.Вставить(ИмяРасширенияДляПоиска, Расширение.Имя);
|
||||||
|
ИменаНеподключенныхРасширений.Вставить(НРег(ИдентификаторРасширения), Расширение.Имя);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
// Для функций ИдентификаторОбъектаМетаданныхПоПолномуИмени, ИдентификаторыОбъектовМетаданных.
|
// Для функций ИдентификаторОбъектаМетаданныхПоПолномуИмени, ИдентификаторыОбъектовМетаданных.
|
||||||
Функция ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных, ВызыватьИсключение, ОдинЭлемент)
|
Функция ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных, ВызыватьИсключение, ОдинЭлемент)
|
||||||
|
|
||||||
@@ -3509,7 +3539,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Свойства.ОбъектРасширений Тогда
|
Если Свойства.ОбъектРасширений Тогда
|
||||||
ОбъектРасширенияНеСуществует = Не Свойства.ПометкаУдаления;
|
ОбъектРасширенияНеСуществует = Свойства.ПометкаУдаления;
|
||||||
ИмяРасширения = "";
|
ИмяРасширения = "";
|
||||||
ИдентификаторРасширения = ?(СтрНачинаетсяС(Свойства.ИдентификаторРасширения, "? "),
|
ИдентификаторРасширения = ?(СтрНачинаетсяС(Свойства.ИдентификаторРасширения, "? "),
|
||||||
Сред(Свойства.ИдентификаторРасширения, 3), Свойства.ИдентификаторРасширения);
|
Сред(Свойства.ИдентификаторРасширения, 3), Свойства.ИдентификаторРасширения);
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<wrap>true</wrap>
|
<wrap>true</wrap>
|
||||||
<choiceButton>true</choiceButton>
|
<listChoiceMode>true</listChoiceMode>
|
||||||
<chooseType>true</chooseType>
|
<chooseType>true</chooseType>
|
||||||
<typeDomainEnabled>true</typeDomainEnabled>
|
<typeDomainEnabled>true</typeDomainEnabled>
|
||||||
<textEdit>true</textEdit>
|
<textEdit>true</textEdit>
|
||||||
@@ -581,6 +581,10 @@
|
|||||||
<event>OnReadAtServer</event>
|
<event>OnReadAtServer</event>
|
||||||
<name>ПриЧтенииНаСервере</name>
|
<name>ПриЧтенииНаСервере</name>
|
||||||
</handlers>
|
</handlers>
|
||||||
|
<handlers>
|
||||||
|
<event>BeforeWrite</event>
|
||||||
|
<name>ПередЗаписью</name>
|
||||||
|
</handlers>
|
||||||
<handlers>
|
<handlers>
|
||||||
<event>BeforeWriteAtServer</event>
|
<event>BeforeWriteAtServer</event>
|
||||||
<name>ПередЗаписьюНаСервере</name>
|
<name>ПередЗаписьюНаСервере</name>
|
||||||
|
|||||||
@@ -67,6 +67,31 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
|
||||||
|
|
||||||
|
Для Каждого Условие Из УсловияВидимости Цикл
|
||||||
|
|
||||||
|
ИндексСтроки = УсловияВидимости.Индекс(Условие);
|
||||||
|
Если Не ЗначениеЗаполнено(Условие.ВидСравнения) Тогда
|
||||||
|
|
||||||
|
ТекстСообщения = НСтр("ru = 'Укажите вид сравнения'");
|
||||||
|
Поле = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("УсловияВидимости[%1].ПредставлениеВидаСравнения", Формат(ИндексСтроки, "ЧГ=0;"));
|
||||||
|
|
||||||
|
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , Поле, , Отказ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(Условие.Поле) Тогда
|
||||||
|
ТекстСообщения = НСтр("ru = 'Выберите поле'");
|
||||||
|
Поле = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("УсловияВидимости[%1].ПредставлениеПоля", Формат(ИндексСтроки, "ЧГ=0;"));
|
||||||
|
|
||||||
|
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , Поле, , Отказ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область ОбработчикиСобытийЭлементовТаблицыФормыУсловияВидимости
|
#Область ОбработчикиСобытийЭлементовТаблицыФормыУсловияВидимости
|
||||||
@@ -94,6 +119,7 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура УсловияВидимостиВидСравненияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
Процедура УсловияВидимостиВидСравненияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -822,7 +822,7 @@
|
|||||||
|
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.УстановитьПараметр("Набор", ТекущийНабор);
|
Запрос.УстановитьПараметр("Набор", ТекущийНабор);
|
||||||
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык);
|
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
|
||||||
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
|
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
|
||||||
|
|
||||||
Если Не ПоказатьНеиспользуемыеРеквизиты Тогда
|
Если Не ПоказатьНеиспользуемыеРеквизиты Тогда
|
||||||
|
|||||||
@@ -48,9 +48,16 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
|
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
|
||||||
Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда
|
|
||||||
Возврат;
|
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||||
КонецЕсли;
|
Если ОбщегоНазначения.ЭтоОсновнойЯзык() Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
#Иначе
|
||||||
|
Если СтрСравнить(СтандартныеПодсистемыКлиент.ПараметрКлиента("КодОсновногоЯзыка"), ОбщегоНазначенияКлиент.КодОсновногоЯзыка()) = 0 Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
#КонецЕсли
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Данные.Родитель) Тогда
|
Если ЗначениеЗаполнено(Данные.Родитель) Тогда
|
||||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||||
|
|||||||
+5
@@ -14,12 +14,17 @@
|
|||||||
Сертификат = Параметры.Сертификат;
|
Сертификат = Параметры.Сертификат;
|
||||||
|
|
||||||
ЗаявлениеНаВыпускСертификатаДоступно = ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно;
|
ЗаявлениеНаВыпускСертификатаДоступно = ЭлектроннаяПодпись.ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно;
|
||||||
|
// Локализация
|
||||||
|
|
||||||
Если ЗаявлениеНаВыпускСертификатаДоступно И ЗначениеЗаполнено(Сертификат) Тогда
|
Если ЗаявлениеНаВыпускСертификатаДоступно И ЗначениеЗаполнено(Сертификат) Тогда
|
||||||
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||||
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
|
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
|
||||||
ВыпущенныеСертификаты = ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ВыпущенныеСертификаты(
|
ВыпущенныеСертификаты = ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ВыпущенныеСертификаты(
|
||||||
Сертификат);
|
Сертификат);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
ЕстьПеревыпущенные = ВыпущенныеСертификаты.Количество() > 0;
|
ЕстьПеревыпущенные = ВыпущенныеСертификаты.Количество() > 0;
|
||||||
Элементы.ДекорацияПеревыпущен.Видимость = ЕстьПеревыпущенные;
|
Элементы.ДекорацияПеревыпущен.Видимость = ЕстьПеревыпущенные;
|
||||||
|
|
||||||
|
|||||||
+11
@@ -1381,6 +1381,17 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>РезультатПроверкиУдостоверяющегоЦентра</name>
|
||||||
|
<id>26</id>
|
||||||
|
<valueType/>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</attributes>
|
||||||
<formCommands>
|
<formCommands>
|
||||||
<name>Подписать</name>
|
<name>Подписать</name>
|
||||||
<title>
|
<title>
|
||||||
|
|||||||
+24
-2
@@ -330,6 +330,13 @@
|
|||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
&НаСервереБезКонтекста
|
||||||
|
Функция ОшибкаСертификатПомеченКакОтозванный()
|
||||||
|
|
||||||
|
Возврат ЭлектроннаяПодписьСлужебный.ОшибкаСертификатПомеченКакОтозванный()
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПродолжитьОткрытие(Оповещение, ОбщиеВнутренниеДанные, КлиентскиеПараметры) Экспорт
|
Процедура ПродолжитьОткрытие(Оповещение, ОбщиеВнутренниеДанные, КлиентскиеПараметры) Экспорт
|
||||||
|
|
||||||
@@ -553,7 +560,17 @@
|
|||||||
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
|
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
|
||||||
НСтр("ru = 'Сертификат помечен в программе как отозванный.
|
НСтр("ru = 'Сертификат помечен в программе как отозванный.
|
||||||
|Выберите другой сертификат.'"));
|
|Выберите другой сертификат.'"));
|
||||||
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере);
|
ДополнительныеДанныеОшибки = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте", ОшибкаСертификатПомеченКакОтозванный());
|
||||||
|
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере,,ДополнительныеДанныеОшибки);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра)
|
||||||
|
И Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
||||||
|
ПредупреждениеОбОшибке = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
|
||||||
|
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки", ПредупреждениеОбОшибке.ТекстОшибки);
|
||||||
|
ДополнительныеДанныеОшибки = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте", ПредупреждениеОбОшибке);
|
||||||
|
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере,,ДополнительныеДанныеОшибки);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -748,7 +765,7 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ОбработатьОшибку(Оповещение, ОшибкаНаКлиенте, ОшибкаНаСервере, НеподписанныеДанные = Неопределено)
|
Процедура ОбработатьОшибку(Оповещение, ОшибкаНаКлиенте, ОшибкаНаСервере, НеподписанныеДанные = Неопределено, ДополнительныеДанные = Неопределено)
|
||||||
|
|
||||||
Если ОписаниеДанных.Свойство("ПрекратитьВыполнение") Тогда
|
Если ОписаниеДанных.Свойство("ПрекратитьВыполнение") Тогда
|
||||||
|
|
||||||
@@ -772,6 +789,11 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДополнительныеПараметры = Новый Структура;
|
ДополнительныеПараметры = Новый Структура;
|
||||||
|
Если ЗначениеЗаполнено(ДополнительныеДанные) Тогда
|
||||||
|
Для Каждого КлючИЗначение Из ДополнительныеДанные Цикл
|
||||||
|
ДополнительныеПараметры.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
Если НеподписанныеДанные <> Неопределено Тогда
|
Если НеподписанныеДанные <> Неопределено Тогда
|
||||||
ДополнительныеПараметры.Вставить("НеподписанныеДанные", НеподписанныеДанные);
|
ДополнительныеПараметры.Вставить("НеподписанныеДанные", НеподписанныеДанные);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
BIN
Binary file not shown.
+1
-1
@@ -809,7 +809,7 @@
|
|||||||
<usePurposes>MobileDevice</usePurposes>
|
<usePurposes>MobileDevice</usePurposes>
|
||||||
</forms>
|
</forms>
|
||||||
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
|
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
|
||||||
<name>КомпонентаExtraCryptoAPI_3_0_1_27</name>
|
<name>КомпонентаExtraCryptoAPI_3_0_1_28</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Компонента ExtraCryptoAPI</value>
|
<value>Компонента ExtraCryptoAPI</value>
|
||||||
|
|||||||
+376
-15
@@ -2286,10 +2286,10 @@
|
|||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
<items xsi:type="form:FormGroup">
|
<items xsi:type="form:FormGroup">
|
||||||
<name>ПриПроверкеОбнаруженыОшибки</name>
|
<name>ТехническиеПодробностиОшибки</name>
|
||||||
<id>275</id>
|
<id>275</id>
|
||||||
<items xsi:type="form:Decoration">
|
<items xsi:type="form:Decoration">
|
||||||
<name>КартинкаПриПроверкеОбнаруженыОшибки</name>
|
<name>КартинкаТехническиеПодробностиОшибки</name>
|
||||||
<id>279</id>
|
<id>279</id>
|
||||||
<title>
|
<title>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
@@ -2301,7 +2301,7 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</userVisible>
|
</userVisible>
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>КартинкаПредупреждениеРасширеннаяПодсказка1</name>
|
<name>КартинкаТехническиеПодробностиОшибкиРасширеннаяПодсказка</name>
|
||||||
<id>281</id>
|
<id>281</id>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
@@ -2311,7 +2311,7 @@
|
|||||||
</extInfo>
|
</extInfo>
|
||||||
</extendedTooltip>
|
</extendedTooltip>
|
||||||
<contextMenu>
|
<contextMenu>
|
||||||
<name>КартинкаПредупреждениеКонтекстноеМеню1</name>
|
<name>КартинкаТехническиеПодробностиОшибкиКонтекстноеМеню</name>
|
||||||
<id>280</id>
|
<id>280</id>
|
||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
@@ -2324,10 +2324,10 @@
|
|||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
<items xsi:type="form:FormGroup">
|
<items xsi:type="form:FormGroup">
|
||||||
<name>ГруппаПриПроверкеОбнаруженыОшибки</name>
|
<name>ГруппаТехническиеПодробностиОшибки</name>
|
||||||
<id>282</id>
|
<id>282</id>
|
||||||
<items xsi:type="form:FormField">
|
<items xsi:type="form:FormField">
|
||||||
<name>ТекстПриПроверкеОбнаруженыОшибки</name>
|
<name>ТекстТехническиеПодробностиОшибки</name>
|
||||||
<id>284</id>
|
<id>284</id>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
@@ -2339,7 +2339,7 @@
|
|||||||
</dataPath>
|
</dataPath>
|
||||||
<titleLocation>None</titleLocation>
|
<titleLocation>None</titleLocation>
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>СообщенияОбОшибкахРасширеннаяПодсказка1</name>
|
<name>ТекстТехническиеПодробностиОшибкиРасширеннаяПодсказка</name>
|
||||||
<id>286</id>
|
<id>286</id>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
@@ -2349,7 +2349,7 @@
|
|||||||
</extInfo>
|
</extInfo>
|
||||||
</extendedTooltip>
|
</extendedTooltip>
|
||||||
<contextMenu>
|
<contextMenu>
|
||||||
<name>СообщенияОбОшибкахКонтекстноеМеню1</name>
|
<name>ТекстТехническиеПодробностиОшибкиКонтекстноеМеню</name>
|
||||||
<id>285</id>
|
<id>285</id>
|
||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
@@ -2362,7 +2362,7 @@
|
|||||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||||
<handlers>
|
<handlers>
|
||||||
<event>Opening</event>
|
<event>Opening</event>
|
||||||
<name>ТекстПриПроверкеОбнаруженыОшибкиОткрытие</name>
|
<name>ТекстТехническиеПодробностиОшибкиОткрытие</name>
|
||||||
</handlers>
|
</handlers>
|
||||||
<height>7</height>
|
<height>7</height>
|
||||||
<horizontalStretch>true</horizontalStretch>
|
<horizontalStretch>true</horizontalStretch>
|
||||||
@@ -2383,7 +2383,7 @@
|
|||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
<items xsi:type="form:Decoration">
|
<items xsi:type="form:Decoration">
|
||||||
<name>НужнаПомощьПриПроверкеОбнаруженыОшибки</name>
|
<name>НужнаПомощьТехническиеПодробностиОшибки</name>
|
||||||
<id>287</id>
|
<id>287</id>
|
||||||
<title>
|
<title>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
@@ -2395,7 +2395,7 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</userVisible>
|
</userVisible>
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>НужнаПомощьРасширеннаяПодсказка1</name>
|
<name>НужнаПомощьТехническиеПодробностиОшибкиРасширеннаяПодсказка</name>
|
||||||
<id>289</id>
|
<id>289</id>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
@@ -2405,7 +2405,7 @@
|
|||||||
</extInfo>
|
</extInfo>
|
||||||
</extendedTooltip>
|
</extendedTooltip>
|
||||||
<contextMenu>
|
<contextMenu>
|
||||||
<name>НужнаПомощьКонтекстноеМеню1</name>
|
<name>НужнаПомощьТехническиеПодробностиОшибкиКонтекстноеМеню</name>
|
||||||
<id>288</id>
|
<id>288</id>
|
||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
@@ -2432,7 +2432,7 @@
|
|||||||
<value>При проверке обнаружены ошибки</value>
|
<value>При проверке обнаружены ошибки</value>
|
||||||
</title>
|
</title>
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>ГруппаСообщенияОбОшибкахРасширеннаяПодсказка1</name>
|
<name>ГруппаТехническиеПодробностиОшибкиРасширеннаяПодсказка</name>
|
||||||
<id>283</id>
|
<id>283</id>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
@@ -2458,10 +2458,10 @@
|
|||||||
</userVisible>
|
</userVisible>
|
||||||
<title>
|
<title>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>При проверке обнаружены ошибки</value>
|
<value>Технические подробности ошибки</value>
|
||||||
</title>
|
</title>
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>ПриПроверкеОбнаруженыОшибкиРасширеннаяПодсказка</name>
|
<name>ТехническиеПодробностиОшибкиРасширеннаяПодсказка</name>
|
||||||
<id>276</id>
|
<id>276</id>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
@@ -2648,6 +2648,367 @@ vasyapupkin@example.com завершена.</value>
|
|||||||
<scrollOnCompress>false</scrollOnCompress>
|
<scrollOnCompress>false</scrollOnCompress>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
|
<items xsi:type="form:FormGroup">
|
||||||
|
<name>ПриПроверкеОбнаруженыОшибки</name>
|
||||||
|
<id>393</id>
|
||||||
|
<items xsi:type="form:FormGroup">
|
||||||
|
<name>ГруппаОписаниеОшибки</name>
|
||||||
|
<id>395</id>
|
||||||
|
<items xsi:type="form:Decoration">
|
||||||
|
<name>КартинкаПриПроверкеОбнаруженыОшибки</name>
|
||||||
|
<id>397</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Картинка при проверке обнаружены ошибки</value>
|
||||||
|
</title>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>КартинкаПриПроверкеОбнаруженыОшибкиРасширеннаяПодсказка</name>
|
||||||
|
<id>399</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>КартинкаПриПроверкеОбнаруженыОшибкиКонтекстноеМеню</name>
|
||||||
|
<id>398</id>
|
||||||
|
<autoFill>true</autoFill>
|
||||||
|
</contextMenu>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:PictureDecorationExtInfo">
|
||||||
|
<picture xsi:type="core:PictureRef">
|
||||||
|
<picture>CommonPicture.Предупреждение32</picture>
|
||||||
|
</picture>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<items xsi:type="form:FormField">
|
||||||
|
<name>ТекстСообщенияОбОшибках</name>
|
||||||
|
<id>402</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<dataPath xsi:type="form:DataPath">
|
||||||
|
<segments>СообщенияОбОшибках</segments>
|
||||||
|
</dataPath>
|
||||||
|
<titleLocation>None</titleLocation>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ТекстСообщенияОбОшибкахРасширеннаяПодсказка</name>
|
||||||
|
<id>404</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>ТекстСообщенияОбОшибкахКонтекстноеМеню</name>
|
||||||
|
<id>403</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">
|
||||||
|
<width>40</width>
|
||||||
|
<height>2</height>
|
||||||
|
<horizontalStretch>true</horizontalStretch>
|
||||||
|
<verticalStretch>false</verticalStretch>
|
||||||
|
<wrap>true</wrap>
|
||||||
|
<multiLine>true</multiLine>
|
||||||
|
<chooseType>true</chooseType>
|
||||||
|
<typeDomainEnabled>true</typeDomainEnabled>
|
||||||
|
<textEdit>true</textEdit>
|
||||||
|
<backColor xsi:type="core:ColorRef">
|
||||||
|
<color>Style.FormBackColor</color>
|
||||||
|
</backColor>
|
||||||
|
<borderColor xsi:type="core:ColorRef">
|
||||||
|
<color>Style.FormBackColor</color>
|
||||||
|
</borderColor>
|
||||||
|
<textSize>Normal</textSize>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Описание ошибки</value>
|
||||||
|
</title>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ГруппаОписаниеОшибкиРасширеннаяПодсказка</name>
|
||||||
|
<id>396</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<type>UsualGroup</type>
|
||||||
|
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||||
|
<group>AlwaysHorizontal</group>
|
||||||
|
<behavior>Auto</behavior>
|
||||||
|
<showLeftMargin>true</showLeftMargin>
|
||||||
|
<united>true</united>
|
||||||
|
<throughAlign>Auto</throughAlign>
|
||||||
|
<currentRowUse>Auto</currentRowUse>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<items xsi:type="form:FormGroup">
|
||||||
|
<name>ГруппаВозможныеПричины</name>
|
||||||
|
<id>405</id>
|
||||||
|
<items xsi:type="form:Decoration">
|
||||||
|
<name>ДекорацияВозможныеПричины</name>
|
||||||
|
<id>407</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Декорация возможные причины</value>
|
||||||
|
</title>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ДекорацияВозможныеПричиныРасширеннаяПодсказка</name>
|
||||||
|
<id>409</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>ДекорацияВозможныеПричиныКонтекстноеМеню</name>
|
||||||
|
<id>408</id>
|
||||||
|
<autoFill>true</autoFill>
|
||||||
|
</contextMenu>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Возможные причины</value>
|
||||||
|
</title>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ГруппаВозможныеПричиныРасширеннаяПодсказка</name>
|
||||||
|
<id>406</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<type>UsualGroup</type>
|
||||||
|
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||||
|
<group>Vertical</group>
|
||||||
|
<behavior>Auto</behavior>
|
||||||
|
<controlRepresentation>Button</controlRepresentation>
|
||||||
|
<representation>NormalSeparation</representation>
|
||||||
|
<showLeftMargin>true</showLeftMargin>
|
||||||
|
<united>true</united>
|
||||||
|
<showTitle>auto</showTitle>
|
||||||
|
<throughAlign>Auto</throughAlign>
|
||||||
|
<currentRowUse>Auto</currentRowUse>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<items xsi:type="form:FormGroup">
|
||||||
|
<name>ГруппаСпособыУстранения</name>
|
||||||
|
<id>410</id>
|
||||||
|
<items xsi:type="form:Decoration">
|
||||||
|
<name>ДекорацияСпособыУстранения</name>
|
||||||
|
<id>412</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Декорация способы устранения</value>
|
||||||
|
</title>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ДекорацияСпособыУстраненияРасширеннаяПодсказка</name>
|
||||||
|
<id>414</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>ДекорацияСпособыУстраненияКонтекстноеМеню</name>
|
||||||
|
<id>413</id>
|
||||||
|
<autoFill>true</autoFill>
|
||||||
|
</contextMenu>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Способы устранения</value>
|
||||||
|
</title>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ГруппаСпособыУстраненияРасширеннаяПодсказка</name>
|
||||||
|
<id>411</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<type>UsualGroup</type>
|
||||||
|
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||||
|
<group>Vertical</group>
|
||||||
|
<behavior>Auto</behavior>
|
||||||
|
<controlRepresentation>Button</controlRepresentation>
|
||||||
|
<representation>NormalSeparation</representation>
|
||||||
|
<showLeftMargin>true</showLeftMargin>
|
||||||
|
<united>true</united>
|
||||||
|
<showTitle>auto</showTitle>
|
||||||
|
<throughAlign>Auto</throughAlign>
|
||||||
|
<currentRowUse>Auto</currentRowUse>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<items xsi:type="form:FormGroup">
|
||||||
|
<name>ГруппаДополнительныеСсылки</name>
|
||||||
|
<id>415</id>
|
||||||
|
<items xsi:type="form:Decoration">
|
||||||
|
<name>РекомендацииПоРешениюТиповыхПроблем</name>
|
||||||
|
<id>417</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Рекомендации по решению типовых проблем</value>
|
||||||
|
</title>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>РекомендацииПоРешениюТиповыхПроблемРасширеннаяПодсказка</name>
|
||||||
|
<id>419</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>РекомендацииПоРешениюТиповыхПроблемКонтекстноеМеню</name>
|
||||||
|
<id>418</id>
|
||||||
|
<autoFill>true</autoFill>
|
||||||
|
</contextMenu>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<groupHorizontalAlign>Left</groupHorizontalAlign>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<handlers>
|
||||||
|
<event>Click</event>
|
||||||
|
<name>НужнаПомощьНажатие</name>
|
||||||
|
</handlers>
|
||||||
|
<hyperlink>true</hyperlink>
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Дополнительные ссылки</value>
|
||||||
|
</title>
|
||||||
|
<verticalStretch>true</verticalStretch>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ГруппаДополнительныеСсылкиРасширеннаяПодсказка</name>
|
||||||
|
<id>416</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<type>UsualGroup</type>
|
||||||
|
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||||
|
<group>HorizontalIfPossible</group>
|
||||||
|
<verticalAlign>Bottom</verticalAlign>
|
||||||
|
<behavior>Auto</behavior>
|
||||||
|
<representation>NormalSeparation</representation>
|
||||||
|
<showLeftMargin>true</showLeftMargin>
|
||||||
|
<united>true</united>
|
||||||
|
<throughAlign>Auto</throughAlign>
|
||||||
|
<currentRowUse>Auto</currentRowUse>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>При проверке обнаружены ошибки</value>
|
||||||
|
</title>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ПриПроверкеОбнаруженыОшибкиРасширеннаяПодсказка</name>
|
||||||
|
<id>394</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<type>Page</type>
|
||||||
|
<extInfo xsi:type="form:PageGroupExtInfo">
|
||||||
|
<group>Vertical</group>
|
||||||
|
<showTitle>auto</showTitle>
|
||||||
|
<scrollOnCompress>false</scrollOnCompress>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
<userVisible>
|
<userVisible>
|
||||||
|
|||||||
+41
-19
@@ -213,13 +213,13 @@
|
|||||||
Процедура СообщенияОбОшибкахОткрытие(Элемент, СтандартнаяОбработка)
|
Процедура СообщенияОбОшибкахОткрытие(Элемент, СтандартнаяОбработка)
|
||||||
|
|
||||||
СтандартнаяОбработка = Ложь;
|
СтандартнаяОбработка = Ложь;
|
||||||
Элементы.Страницы.ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки;
|
Элементы.Страницы.ТекущаяСтраница = Элементы.ТехническиеПодробностиОшибки;
|
||||||
НастроитьЭлементыТекущейСтраницы();
|
НастроитьЭлементыТекущейСтраницы();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ТекстПриПроверкеОбнаруженыОшибкиОткрытие(Элемент, СтандартнаяОбработка)
|
Процедура ТекстТехническиеПодробностиОшибкиОткрытие(Элемент, СтандартнаяОбработка)
|
||||||
|
|
||||||
СтандартнаяОбработка = Ложь;
|
СтандартнаяОбработка = Ложь;
|
||||||
Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
||||||
@@ -252,8 +252,11 @@
|
|||||||
ПредыдущаяСтраница = Неопределено;
|
ПредыдущаяСтраница = Неопределено;
|
||||||
Если ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда
|
Если ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда
|
||||||
ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
||||||
ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Или ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда
|
ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Или ТекущаяСтраница = Элементы.ТехническиеПодробностиОшибки Тогда
|
||||||
ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
ПредыдущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
||||||
|
ИначеЕсли ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда
|
||||||
|
ПредыдущаяСтраница = Элементы.НастройкиАвторизацииПриложения;
|
||||||
|
ПроверкаЗавершиласьСОшибками = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПредыдущаяСтраница <> Неопределено Тогда
|
Если ПредыдущаяСтраница <> Неопределено Тогда
|
||||||
@@ -305,7 +308,7 @@
|
|||||||
ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница;
|
ТекущаяСтраница = Элементы.Страницы.ТекущаяСтраница;
|
||||||
|
|
||||||
СледующаяСтраница = Неопределено;
|
СледующаяСтраница = Неопределено;
|
||||||
Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Или ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда
|
Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Или ТекущаяСтраница = Элементы.ТехническиеПодробностиОшибки Тогда
|
||||||
ПроверитьЗаполнениеНаСтраницеНастройкаУчетнойЗаписи(Отказ);
|
ПроверитьЗаполнениеНаСтраницеНастройкаУчетнойЗаписи(Отказ);
|
||||||
Если Не Отказ И Не НастройкиЗаполнены Тогда
|
Если Не Отказ И Не НастройкиЗаполнены Тогда
|
||||||
ЗаполнитьНастройкиУчетнойЗаписи();
|
ЗаполнитьНастройкиУчетнойЗаписи();
|
||||||
@@ -380,7 +383,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПроверкаЗавершиласьСОшибками Тогда
|
Если ПроверкаЗавершиласьСОшибками Тогда
|
||||||
СледующаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
СледующаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки;
|
||||||
Иначе
|
Иначе
|
||||||
Если СпособНастройки = "Автоматически" Тогда
|
Если СпособНастройки = "Автоматически" Тогда
|
||||||
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
|
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||||
@@ -583,7 +586,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи
|
Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи
|
||||||
И ПроверкаЗавершиласьСОшибками Или ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки Тогда
|
И ПроверкаЗавершиласьСОшибками Или ТекущаяСтраница = Элементы.ТехническиеПодробностиОшибки Тогда
|
||||||
ЗаголовокКнопкиДалее = НСтр("ru = 'Повторить'");
|
ЗаголовокКнопкиДалее = НСтр("ru = 'Повторить'");
|
||||||
ИначеЕсли ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи
|
ИначеЕсли ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи
|
||||||
И СпособНастройки = "Автоматически" Тогда
|
И СпособНастройки = "Автоматически" Тогда
|
||||||
@@ -603,7 +606,8 @@
|
|||||||
Элементы.КнопкаДалее.КнопкаПоУмолчанию =ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи;
|
Элементы.КнопкаДалее.КнопкаПоУмолчанию =ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||||
Элементы.КнопкаДалее.Доступность = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И ПроверкаПропущена);
|
Элементы.КнопкаДалее.Доступность = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И ПроверкаПропущена);
|
||||||
Элементы.КнопкаДалее.Видимость = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И СпособНастройки = "Вручную")
|
Элементы.КнопкаДалее.Видимость = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И СпособНастройки = "Вручную")
|
||||||
И Не (ТекущаяСтраница = Элементы.Авторизация И Не ЭтоВебКлиент());
|
И Не (ТекущаяСтраница = Элементы.Авторизация И Не ЭтоВебКлиент())
|
||||||
|
И Не ТекущаяСтраница = Элементы.ПриПроверкеОбнаруженыОшибки;
|
||||||
|
|
||||||
// КнопкаНазад
|
// КнопкаНазад
|
||||||
Элементы.КнопкаНазад.Видимость = ТекущаяСтраница <> Элементы.НастройкаУчетнойЗаписи
|
Элементы.КнопкаНазад.Видимость = ТекущаяСтраница <> Элементы.НастройкаУчетнойЗаписи
|
||||||
@@ -1111,15 +1115,23 @@
|
|||||||
Если СтрНачинаетсяС(НРег(Элемент.Документ.URL), НРег(АдресПеренаправления)) Тогда
|
Если СтрНачинаетсяС(НРег(Элемент.Документ.URL), НРег(АдресПеренаправления)) Тогда
|
||||||
ПриПолученииОтветаПочтовогоСервера(Элемент.Документ.URL, НастройкиАвторизации.АдресПолученияКлюча);
|
ПриПолученииОтветаПочтовогоСервера(Элемент.Документ.URL, НастройкиАвторизации.АдресПолученияКлюча);
|
||||||
ПерейтиНаСледующуюСтраницу();
|
ПерейтиНаСледующуюСтраницу();
|
||||||
|
ИначеЕсли СтрНачинаетсяС(ВебСтраница, "{") И СтрЗаканчиваетсяНа(ВебСтраница, "}") Тогда
|
||||||
|
ПриПолученииОтветаПочтовогоСервера(ВебСтраница, НастройкиАвторизации.АдресПолученияКлюча);
|
||||||
|
ПерейтиНаСледующуюСтраницу();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
#КонецЕсли
|
#КонецЕсли
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура ПриПолученииОтветаПочтовогоСервера(СтрокаURI, АдресПолученияКлюча)
|
Процедура ПриПолученииОтветаПочтовогоСервера(СтрокаПараметров, АдресПолученияКлюча)
|
||||||
|
|
||||||
|
Если СтрНачинаетсяС(СтрокаПараметров, "{") Тогда
|
||||||
|
Ответ = РаботаСПочтовымиСообщениямиСлужебный.JSONВЗначение(СтрокаПараметров);
|
||||||
|
Иначе
|
||||||
|
Ответ = ПараметрыИзСтрокиURI(СтрокаПараметров);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Ответ = ПараметрыИзСтрокиURI(СтрокаURI);
|
|
||||||
КодАвторизации = Ответ["code"];
|
КодАвторизации = Ответ["code"];
|
||||||
КодОшибки = Ответ["error"];
|
КодОшибки = Ответ["error"];
|
||||||
ТекстОшибки = Ответ["error_description"];
|
ТекстОшибки = Ответ["error_description"];
|
||||||
@@ -1128,21 +1140,18 @@
|
|||||||
ТекстОшибки = РаскодироватьСтроку(ТекстОшибки, СпособКодированияСтроки.КодировкаURL);
|
ТекстОшибки = РаскодироватьСтроку(ТекстОшибки, СпособКодированияСтроки.КодировкаURL);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ИдентификаторЗапроса <> Ответ["state"] Тогда
|
|
||||||
СообщенияОбОшибках = НСтр("ru = 'Не удалось авторизоваться на сервере %1. Неверный идентификатор ответа.'");
|
|
||||||
ПроверкаЗавершиласьСОшибками = Истина;
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(КодОшибки) Тогда
|
Если ЗначениеЗаполнено(КодОшибки) Тогда
|
||||||
СообщенияОбОшибках = ОписаниеОшибкиАвторизацииПочтовогоСервера(КодОшибки, ТекстОшибки);
|
СообщенияОбОшибках = ОписаниеОшибкиАвторизацииПочтовогоСервера(КодОшибки, ТекстОшибки);
|
||||||
ПроверкаЗавершиласьСОшибками = Истина;
|
ПроверкаЗавершиласьСОшибками = Истина;
|
||||||
Возврат;
|
ИначеЕсли ИдентификаторЗапроса <> Ответ["state"] Тогда
|
||||||
|
СообщенияОбОшибках = НСтр("ru = 'Не удалось авторизоваться на почтовом сервере. Неверный идентификатор ответа.'");
|
||||||
|
ПроверкаЗавершиласьСОшибками = Истина;
|
||||||
|
ИначеЕсли Не ПолучитьКлючиДоступаКПочтовомуСерверу(КодАвторизации, АдресПолученияКлюча) Тогда
|
||||||
|
ПроверкаЗавершиласьСОшибками = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ПолучитьКлючиДоступаКПочтовомуСерверу(КодАвторизации, АдресПолученияКлюча) Тогда
|
Если ПроверкаЗавершиласьСОшибками Тогда
|
||||||
ПроверкаЗавершиласьСОшибками = Истина;
|
ЗаполнитьПояснения();
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -1516,4 +1525,17 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Процедура ЗаполнитьПояснения()
|
||||||
|
|
||||||
|
ПоясненияПоОшибке = РаботаСПочтовымиСообщениямиСлужебный.ПоясненияПоОшибке(СообщенияОбОшибках, , Истина);
|
||||||
|
|
||||||
|
ВозможныеПричины = РаботаСПочтовымиСообщениямиСлужебный.ФорматированныйСписок(ПоясненияПоОшибке.ВозможныеПричины);
|
||||||
|
СпособыУстранения = РаботаСПочтовымиСообщениямиСлужебный.ФорматированныйСписок(ПоясненияПоОшибке.СпособыУстранения);
|
||||||
|
|
||||||
|
Элементы.ДекорацияВозможныеПричины.Заголовок = ВозможныеПричины;
|
||||||
|
Элементы.ДекорацияСпособыУстранения.Заголовок = СпособыУстранения;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -3,27 +3,43 @@
|
|||||||
<p>Список можно открыть соответствующей командой в разделе <strong>Администрирование - Органайзер</strong>. </p>
|
<p>Список можно открыть соответствующей командой в разделе <strong>Администрирование - Органайзер</strong>. </p>
|
||||||
<p>В списке выводится:</p>
|
<p>В списке выводится:</p>
|
||||||
<ul><li><strong>Наименование</strong> учетной записи;
|
<ul><li><strong>Наименование</strong> учетной записи;
|
||||||
</li><li><strong>Имя пользователя</strong> - указывается имя отправителя писем, оно может отличаться от имени <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a> в программе;
|
</li>
|
||||||
</li><li><strong>Адрес электронной почты </strong>учетной записи в формате <a href="mailto:name@server.net">name@server.net</a>. </li></ul><p>Для учетных записей, получение и отправка с которых выполняется автоматически без участия пользователя, должен быть обязательно введен пароль. Также для корректной работы программы обязательно должна быть настроена системная учетная запись электронной почты.</p>
|
<li><strong>Имя пользователя</strong> - указывается имя отправителя писем, оно может отличаться от имени <a href="Catalog.Пользователи.Form.ФормаЭлемента/Help">пользователя</a> в программе;
|
||||||
|
</li>
|
||||||
|
<li><strong>Адрес электронной почты </strong>учетной записи в формате <a href="mailto:name@server.net">name@server.net</a>. </li></ul><p>Для учетных записей, получение и отправка с которых выполняется автоматически без участия пользователя, должен быть обязательно введен пароль. Также для корректной работы программы обязательно должна быть настроена системная учетная запись электронной почты.</p>
|
||||||
<h3>Системная учетная запись электронной почты</h3>
|
<h3>Системная учетная запись электронной почты</h3>
|
||||||
<ul><li>Программа поставляется с предопределенной учетной записью - системной учетной записью электронной почты. Она используется по умолчанию для рассылки различных уведомлений из программы, например, для автоматической отправки сообщений администратору по завершению обновления программы. Перед использованием этих возможностей необходимо <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">настроить</a> системную учетную запись.
|
<ul><li>Программа поставляется с предопределенной учетной записью - системной учетной записью электронной почты. Она используется по умолчанию для рассылки различных уведомлений из программы, например, для автоматической отправки сообщений администратору по завершению обновления программы. Перед использованием этих возможностей необходимо <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">настроить</a> системную учетную запись.
|
||||||
</li><li>Настройка системной учетной записи производится по соответствующей команде в разделе <strong>Администрирование - Органайзер</strong>. Также можно <img src="StdPicture.Change"></img><strong>Изменить</strong> ее в списке.</li></ul><h3>Ввод учетной записи электронной почты</h3>
|
</li>
|
||||||
|
<li>Настройка системной учетной записи производится по соответствующей команде в разделе <strong>Администрирование - Органайзер</strong>. Также можно <img src="StdPicture.Change"></img><strong>Изменить</strong> ее в списке.</li></ul><h3>Ввод учетной записи электронной почты</h3>
|
||||||
<ul><li>При попытке сохранения программа проверяет введенные учетные записи электронной почты (пытается отослать пробное сообщение). Учетные записи, не прошедшие проверку, не сохраняются.
|
<ul><li>При попытке сохранения программа проверяет введенные учетные записи электронной почты (пытается отослать пробное сообщение). Учетные записи, не прошедшие проверку, не сохраняются.
|
||||||
</li><li>Нажмите <strong>Создать</strong>, введите необходимые поля:
|
</li>
|
||||||
|
<li>Нажмите <strong>Создать</strong>, введите необходимые поля:
|
||||||
<ul><li>Укажите <strong>Адрес почты</strong> учетной записи в формате <a href="mailto:name@server.net">name@server.net</a>;
|
<ul><li>Укажите <strong>Адрес почты</strong> учетной записи в формате <a href="mailto:name@server.net">name@server.net</a>;
|
||||||
</li><li>Введите <strong>Пароль</strong> учетной записи;
|
</li>
|
||||||
</li><li>Установите с помощью флажков, как <strong>Использовать учетную запись</strong>:
|
<li>С помощью переключателя выберите способ авторизации:</li>
|
||||||
<ul><li><strong>Для отправки почты</strong>;
|
<ul><li><b>Ввести пароль</b>, в этом случае укажите в поле справа <strong>Пароль</strong> учетной записи;
|
||||||
</li><li><strong>Для получения почты</strong>;</li></ul></li><li>Укажите, <strong>Для кого учетная запись</strong>:
|
</li>
|
||||||
<ul><li><strong>Для всех</strong>;
|
<li><b>Авторизоваться на почтовом сервисе</b>, в этом случае программа выводит инструкцию авторизации, которая зависит от почтового сервиса. Следуйте инструкции программы.</li>
|
||||||
</li><li><strong>Только для меня</strong>.</li></ul></li><li>Укажите <strong>Имя отправителя</strong> (Ваше имя или название организации);
|
<ul><li>На почтовом сервисе потребуется указать данные о приложении, например, <b>callback URL</b>, который программа формирует автоматически.</li>
|
||||||
</li><li>С помощью переключателя определите способ создания учетной записи:
|
<li>Воспользовавшись указаниями почтового сервиса, зарегистрируйте приложение, получите данные для авторизации и заполните нужные поля, например: </li>
|
||||||
<ul><li><strong>Определить параметры подключения автоматически</strong> (рекомендуется);
|
<ul><ul><ul><li><b>ID приложения</b>;</li>
|
||||||
<ul><li>Нажмите <strong>Создать</strong>. Программа предпримет попытку автоматической настройки и проверки учетной записи. Следуйте указаниям программы. При этом если при автоматической настройке произошел сбой, можно попытаться настроить параметры вручную. </li></ul></li><li><strong>Настроить параметры подключения вручную</strong>;</li></ul></li><li>
|
<li><b>пароль приложения (client secret)</b>.</li></ul></ul></ul></ul></ul><li>Установите с помощью флажков, как <strong>Почта будет использоваться</strong>:
|
||||||
<p>Нажмите <strong>Далее</strong> для заполнения остальных параметров, при этом программа проставляет рекомендуемые параметры для большинства почтовых серверов. Их требуется только проверить и попытаться сохранить учетную запись заново.</p></li></ul></li></ul><h3>Настройка учетной записи электронной почты</h3>
|
<ul><li><strong>Для отправки писем</strong>;
|
||||||
|
</li>
|
||||||
|
<li><strong>Для получения писем</strong>;</li></ul></li>
|
||||||
|
<li>Укажите с помощью переключателя, кем будет использоваться почта:
|
||||||
|
<ul><li><strong>Всеми пользователями (общая почта)</strong></li>
|
||||||
|
<li><strong>Только мной</strong>.</li></ul></li>
|
||||||
|
<li>Укажите <strong>Имя отправителя</strong> (Ваше имя или название организации);
|
||||||
|
</li></ul></li>
|
||||||
|
<li>Нажмите <strong>Создать</strong>. Программа предпримет попытку автоматической настройки и проверки учетной записи. Следуйте указаниям программы. При этом если при автоматической настройке произошел сбой, можно попытаться настроить параметры вручную. </li>
|
||||||
|
<li>Если автоматически настроить почту не удалось, нажмите <b>На</b><strong>строить вручную</strong>.</li>
|
||||||
|
<ul><li>
|
||||||
|
<p>Нажмите <strong>Далее</strong> для заполнения остальных параметров, при этом программа проставляет рекомендуемые параметры для большинства почтовых серверов. Их требуется только проверить и попытаться сохранить учетную запись заново.</p></li></ul></ul><h3>Настройка учетной записи электронной почты</h3>
|
||||||
<ul><li>Нажмите <img src="StdPicture.Change" width="16" height="16"></img> <strong>Изменить</strong>, с помощью программы произведите необходимые <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">настройки</a>.</li></ul><h3>Проверка учетной записи электронной почты</h3>
|
<ul><li>Нажмите <img src="StdPicture.Change" width="16" height="16"></img> <strong>Изменить</strong>, с помощью программы произведите необходимые <a href="Catalog.УчетныеЗаписиЭлектроннойПочты.Form.ФормаЭлемента/Help">настройки</a>.</li></ul><h3>Проверка учетной записи электронной почты</h3>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<div>Выделите учетную запись в списке, нажмите <strong>Еще - Проверить учетную запись</strong> для проверки введенных параметров учетной записи. При этом отправляется стандартное почтовое отправление и проверяется возможность соединения с сервером входящих почтовых сообщений (если учетная запись используется для получения почты).</div>
|
<div>Выделите учетную запись в списке, нажмите <strong>Еще - Проверить учетную запись</strong> для проверки введенных параметров учетной записи. При этом отправляется стандартное почтовое отправление и проверяется возможность соединения с сервером входящих почтовых сообщений (если учетная запись используется для получения почты).</div>
|
||||||
</li><li>
|
</li>
|
||||||
|
<li>
|
||||||
<div>Если в учетной записи не прописан пароль, программа его запрашивает. При необходимости введите пароль.</div></li></ul><h3>См. также: </h3>
|
<div>Если в учетной записи не прописан пароль, программа его запрашивает. При необходимости введите пароль.</div></li></ul><h3>См. также: </h3>
|
||||||
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
||||||
@@ -1472,13 +1472,10 @@
|
|||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура СписокВыборПослеВыбораРежимаРедактирования(Результат, ПараметрыВыполнения) Экспорт
|
Процедура СписокВыборПослеВыбораРежимаРедактирования(Результат, ПараметрыВыполнения) Экспорт
|
||||||
РезультатОткрыть = "Открыть";
|
Если Результат = "Редактировать" Тогда
|
||||||
РезультатРедактировать = "Редактировать";
|
|
||||||
|
|
||||||
Если Результат = РезультатРедактировать Тогда
|
|
||||||
Обработчик = Новый ОписаниеОповещения("СписокВыборПослеРедактированияФайла", ЭтотОбъект, ПараметрыВыполнения);
|
Обработчик = Новый ОписаниеОповещения("СписокВыборПослеРедактированияФайла", ЭтотОбъект, ПараметрыВыполнения);
|
||||||
РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Обработчик, ПараметрыВыполнения.ДанныеФайла);
|
РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Обработчик, ПараметрыВыполнения.ДанныеФайла);
|
||||||
ИначеЕсли Результат = РезультатОткрыть Тогда
|
ИначеЕсли Результат = "Открыть" Тогда
|
||||||
РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыВыполнения.ДанныеФайла, Ложь);
|
РаботаСФайламиКлиент.ОткрытьФайл(ПараметрыВыполнения.ДанныеФайла, Ложь);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
+23
-11
@@ -189,15 +189,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
|
ЗаполнитьМультиязычныеРеквизиты();
|
||||||
Если ПустаяСтрока(Объект.ЗаголовокЯзык1) Тогда
|
|
||||||
Объект.ЗаголовокЯзык1 = Объект.Заголовок;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ПустаяСтрока(Объект.ЗаголовокЯзык2) Тогда
|
|
||||||
Объект.ЗаголовокЯзык2 = Объект.Заголовок;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда
|
Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда
|
||||||
ОбработкаПродолженияПриОшибкеЗаписи = ПараметрыЗаписи.ОбработкаПродолжения;
|
ОбработкаПродолженияПриОшибкеЗаписи = ПараметрыЗаписи.ОбработкаПродолжения;
|
||||||
@@ -674,6 +666,9 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Если ИндексСтраницы = 2 Тогда
|
Если ИндексСтраницы = 2 Тогда
|
||||||
|
|
||||||
|
ЗаполнитьМультиязычныеРеквизиты();
|
||||||
|
|
||||||
Если Не ПроверитьЗаполнение() Тогда
|
Если Не ПроверитьЗаполнение() Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -983,7 +978,7 @@
|
|||||||
НаборыСвойств, "ЭтоДополнительноеСведение", (ЭтоДополнительноеСведение = 1), Истина);
|
НаборыСвойств, "ЭтоДополнительноеСведение", (ЭтоДополнительноеСведение = 1), Истина);
|
||||||
|
|
||||||
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
|
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
|
||||||
НаборыСвойств, "ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык, Истина);
|
НаборыСвойств, "ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык(), Истина);
|
||||||
|
|
||||||
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
|
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(
|
||||||
НаборыСвойств, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина);
|
НаборыСвойств, "КодЯзыка", ТекущийЯзык().КодЯзыка, Истина);
|
||||||
@@ -1149,6 +1144,23 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ЗаполнитьМультиязычныеРеквизиты()
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Объект.ЗаголовокЯзык1) Тогда
|
||||||
|
Объект.ЗаголовокЯзык1 = Объект.Заголовок;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Объект.ЗаголовокЯзык2) Тогда
|
||||||
|
Объект.ЗаголовокЯзык2 = Объект.Заголовок;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПослеВыбораРеквизитовДляРазблокирования(РазблокируемыеРеквизиты, Контекст) Экспорт
|
Процедура ПослеВыбораРеквизитовДляРазблокирования(РазблокируемыеРеквизиты, Контекст) Экспорт
|
||||||
|
|
||||||
@@ -2419,7 +2431,7 @@
|
|||||||
"Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения");
|
"Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеСведения");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык);
|
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
|
||||||
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
|
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
|
||||||
|
|
||||||
НачатьТранзакцию();
|
НачатьТранзакцию();
|
||||||
|
|||||||
@@ -34,8 +34,8 @@
|
|||||||
СуффиксДополнительногоЯзыка1 = "Язык1";
|
СуффиксДополнительногоЯзыка1 = "Язык1";
|
||||||
СуффиксДополнительногоЯзыка2 = "Язык2";
|
СуффиксДополнительногоЯзыка2 = "Язык2";
|
||||||
|
|
||||||
Если СтрСравнить(Константы.ОсновнойЯзык.Получить(), ТекущийЯзык().КодЯзыка) <> 0 Тогда
|
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ЭтоОсновнойЯзык() Тогда
|
||||||
СуффиксОсновногоЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
|
СуффиксОсновногоЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
|
||||||
Если СуффиксОсновногоЯзыка = "Язык1" Тогда
|
Если СуффиксОсновногоЯзыка = "Язык1" Тогда
|
||||||
СуффиксДополнительногоЯзыка1 = "";
|
СуффиксДополнительногоЯзыка1 = "";
|
||||||
@@ -130,9 +130,9 @@
|
|||||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
|
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ХранениеВТабличнойЧасти Тогда
|
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
|
||||||
|
|
||||||
ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка;
|
Если ХранениеВТабличнойЧасти Тогда
|
||||||
|
|
||||||
Для каждого Представление Из Параметры.Представления Цикл
|
Для каждого Представление Из Параметры.Представления Цикл
|
||||||
|
|
||||||
@@ -151,9 +151,7 @@
|
|||||||
И (ИспользуетсяПервыйДополнительныйЯзык
|
И (ИспользуетсяПервыйДополнительныйЯзык
|
||||||
ИЛИ ИспользуетсяВторойДополнительныйЯзык) Тогда
|
ИЛИ ИспользуетсяВторойДополнительныйЯзык) Тогда
|
||||||
|
|
||||||
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
|
ОписаниеЯзыка = ОписаниеЯзыка(ОсновнойЯзык);
|
||||||
|
|
||||||
ОписаниеЯзыка = ОписаниеЯзыка(Константы.ОсновнойЯзык.Получить());
|
|
||||||
Если ПустаяСтрока(СуффиксОсновногоЯзыка) Тогда
|
Если ПустаяСтрока(СуффиксОсновногоЯзыка) Тогда
|
||||||
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
|
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
|
||||||
Иначе
|
Иначе
|
||||||
|
|||||||
@@ -85,6 +85,8 @@
|
|||||||
ОжиданиеСчетчик = ОжиданиеСчетчик + 1;
|
ОжиданиеСчетчик = ОжиданиеСчетчик + 1;
|
||||||
ПродолжитьОбратныйОтсчет();
|
ПродолжитьОбратныйОтсчет();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекущийЭлемент = Элементы.Колонки;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|||||||
@@ -323,6 +323,10 @@
|
|||||||
КонтейнерПодписи, ДобавкаВремени, ДатаСеанса);
|
КонтейнерПодписи, ДобавкаВремени, ДатаСеанса);
|
||||||
|
|
||||||
Контекст.Вставить("ПараметрыПодписи", ПараметрыПодписи);
|
Контекст.Вставить("ПараметрыПодписи", ПараметрыПодписи);
|
||||||
|
ДатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(ПараметрыПодписи);
|
||||||
|
Если ЗначениеЗаполнено(ДатаПодписи) Тогда
|
||||||
|
Контекст.Вставить("ДатаПодписи", ДатаПодписи);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Контекст.МенеджерКриптографии.НачатьПолучениеСертификатовИзПодписи(Новый ОписаниеОповещения(
|
Контекст.МенеджерКриптографии.НачатьПолучениеСертификатовИзПодписи(Новый ОписаниеОповещения(
|
||||||
"ВыбратьФайлПослеПолученияСертификатовИзПодписи", ЭтотОбъект, Контекст,
|
"ВыбратьФайлПослеПолученияСертификатовИзПодписи", ЭтотОбъект, Контекст,
|
||||||
@@ -432,8 +436,13 @@
|
|||||||
ТекущаяДатаСеанса = ТекущаяДатаСеанса();
|
ТекущаяДатаСеанса = ТекущаяДатаСеанса();
|
||||||
СвойстваПодписи = ПолучитьИзВременногоХранилища(АдресСвойствПодписи);
|
СвойстваПодписи = ПолучитьИзВременногоХранилища(АдресСвойствПодписи);
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(СвойстваПодписи.ДатаПодписи) Тогда
|
ДатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(СвойстваПодписи);
|
||||||
СвойстваПодписи.ДатаПодписи = ТекущаяДатаСеанса;
|
Если Не ЗначениеЗаполнено(ДатаПодписи) Тогда
|
||||||
|
Если Не ЗначениеЗаполнено(СвойстваПодписи.ДатаПодписи) Тогда
|
||||||
|
СвойстваПодписи.ДатаПодписи = ТекущаяДатаСеанса;
|
||||||
|
КонецЕсли;
|
||||||
|
Иначе
|
||||||
|
СвойстваПодписи.ДатаПодписи = ДатаПодписи;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СвойстваПодписи.ДатаПроверкиПодписи = ТекущаяДатаСеанса;
|
СвойстваПодписи.ДатаПроверкиПодписи = ТекущаяДатаСеанса;
|
||||||
@@ -488,6 +497,11 @@
|
|||||||
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДанныеПодписи);
|
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДанныеПодписи);
|
||||||
ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи,
|
ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи,
|
||||||
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
|
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
|
||||||
|
|
||||||
|
ДатаПодписиИзПараметровПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(ПараметрыПодписи);
|
||||||
|
Если ЗначениеЗаполнено(ДатаПодписиИзПараметровПодписи) Тогда
|
||||||
|
ДатаПодписи = ДатаПодписиИзПараметровПодписи;
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Сертификаты[0]);
|
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(Сертификаты[0]);
|
||||||
|
|||||||
@@ -1,35 +1,48 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
||||||
<p>Настройка параметров для использования средств электронной подписи и шифрования (криптографии). </p>
|
<p>Настройка параметров для использования средств электронной подписи и шифрования (криптографии). </p>
|
||||||
<p>Открывается по команде <strong>Настройки электронной подписи и шифрования</strong> раздела <strong>Администрирование - Общие настройки</strong>.</p>
|
<p>Открывается по команде <strong>Программы и сертификаты электронной подписи и шифрования</strong> раздела <strong>Администрирование - Общие настройки</strong>.</p>
|
||||||
<p>Для электронной подписи и шифрования требуется установить специальную стороннюю программу (криптопровайдер).</p>
|
<p>Для электронной подписи и шифрования требуется установить специальную стороннюю программу (криптопровайдер).</p>
|
||||||
<p>Для того чтобы подписывать данные, нужно включить флажок <strong>Электронная подпись</strong>, а для шифрования нужно включить флажок <strong>Шифрование</strong> в разделе <strong>Администрирование - Общие настройки</strong>. После этого становятся доступными соответствующие команды в программе.</p>
|
<p>Для того чтобы подписывать данные, нужно включить флажок <strong>Электронная подпись</strong>, а для шифрования нужно включить флажок <strong>Шифрование</strong> в разделе <strong>Администрирование - Общие настройки</strong>. После этого становятся доступными соответствующие команды в программе.</p>
|
||||||
<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для установки подписи необходимо иметь сертификат ключа электронной подписи. Сертификат можно получить в удостоверяющем центре. Например, в удостоверяющем центре фирмы 1С <a href="http://ca.1c.ru/">http://ca.1c.ru/</a>. Только удостоверяющий центр может выдать юридически значимый (квалифицированный сертификат).</p>
|
<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для установки подписи необходимо иметь сертификат ключа электронной подписи. Сертификат можно получить в удостоверяющем центре. Например, в удостоверяющем центре фирмы 1С <a href="http://ca.1c.ru/">http://ca.1c.ru/</a>. Только удостоверяющий центр может выдать юридически значимый (квалифицированный сертификат).</p>
|
||||||
<p>В случае использования распределенной информационной базы большую часть настроек можно изменить только в главном узле.</p>
|
<p>В случае использования распределенной информационной базы большую часть настроек можно изменить только в главном узле.</p>
|
||||||
<h3>Сертификаты</h3>
|
<h3>Сертификаты</h3>
|
||||||
<ul><li>Показывает все сертификаты, которые используются для подписания и шифрования данных, а также заявления на выпуск нового сертификата.
|
<ul><li>Показывает все сертификаты, которые используются для подписания и шифрования данных, а также заявления на выпуск нового сертификата.
|
||||||
</li><li>Можно установить отбор только своих сертификатов в поле <strong>Показать</strong>. По умолчанию показываются все сертификаты.
|
</li>
|
||||||
</li><li>Предусмотрен отбор по полю <strong>Состояние заявления</strong> ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено").
|
<li>Можно установить отбор только своих сертификатов в поле <strong>Показать</strong>. По умолчанию показываются все сертификаты.
|
||||||
</li><li><a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">Сертификат</a> можно <strong>Добавить</strong> из числа <strong>установленных на компьютере</strong>. Также это можно сделать в процессе подписания или шифрования данных.
|
</li>
|
||||||
</li><li>Также с помощью кнопки <strong>Добавить</strong> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
|
<li>Предусмотрен отбор по полю <strong>Состояние заявления</strong> ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено").
|
||||||
</li><li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Программы</h3>
|
</li>
|
||||||
|
<li><a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">Сертификат</a> можно <strong>Добавить</strong> из числа <strong>установленных на компьютере</strong>. Также это можно сделать в процессе подписания или шифрования данных.
|
||||||
|
</li>
|
||||||
|
<li>Также с помощью кнопки <strong>Добавить</strong> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
|
||||||
|
</li>
|
||||||
|
<li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Программы</h3>
|
||||||
<ul><li>Содержит список программ, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ).
|
<ul><li>Содержит список программ, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ).
|
||||||
</li><li>Эти программы не обязательно должны быть установлены на всех компьютерах. Более того, установка более одной программы на одном компьютере может вызвать конфликты между ними.
|
</li>
|
||||||
</li><li>После запуска в списке уже присутствуют две записи о программах, наиболее распространенных в России - ViPNet CSP и КриптоПро CSP.
|
<li>Эти программы не обязательно должны быть установлены на всех компьютерах. Более того, установка более одной программы на одном компьютере может вызвать конфликты между ними.
|
||||||
</li><li>Можно добавить записи о других программах (поставляются готовые настройки для Microsoft Enhanced CSP, ViPNet CSP, КриптоПро CSP, ЛИССИ CSP, Сигнал-КОМ CSP).
|
</li>
|
||||||
</li><li>Если требуется использовать программу отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.
|
<li>После запуска в списке уже присутствуют две записи о программах, наиболее распространенных в России - ViPNet CSP и КриптоПро CSP.
|
||||||
</li><li>В колонке <strong>Результат проверки</strong> отражаются сведения, по которым можно понять установлена ли программа на компьютере или нет или же установлена, но некорректно.<span lang="RU">
|
</li>
|
||||||
</span></li><li>Linux: <strong>Путь к программе (<Имя программы, соответствующей выделенной строке в списке>)</strong> - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.</li>
|
<li>Можно добавить записи о других программах (поставляются готовые настройки для Microsoft Enhanced CSP, ViPNet CSP, КриптоПро CSP, ЛИССИ CSP, Сигнал-КОМ CSP).
|
||||||
<li>В нижней части списка расположена ссылка <a href="http://its.1c.ru/db/metod81#content:5784:1">Инструкция по работе с программами электронной подписи и шифрования</a>. Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.
|
</li>
|
||||||
</li><li><strong>Проверять подписи и сертификаты на сервере</strong> - этот флажок виден только для серверных баз. Если его установить, тогда проверка электронной подписи и сертификата будет происходить на сервере, что позволяет не устанавливать программу на каждом компьютере, гдетребуется только такие операции.
|
<li>Если требуется использовать программу отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.
|
||||||
<ul><li>В записи о программе можно перейти к списку <strong>Пути к программе на серверах Linux</strong> - в котором нужно указать пути для тех компьютеров, на которых сервер 1С:Предприятия работает под управлением ОС Linux.</li></ul></li></ul><h3>Дополнительно</h3>
|
</li>
|
||||||
|
<li>В колонке <strong>Результат проверки</strong> отражаются сведения, по которым можно понять установлена ли программа на компьютере или нет или же установлена, но некорректно.<span lang="RU">
|
||||||
|
</span></li>
|
||||||
|
<li>Linux: <strong>Путь к программе (<Имя программы, соответствующей выделенной строке в списке>)</strong> - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.</li>
|
||||||
|
<ul><li>В записи о программе можно перейти к списку <strong>Пути к программе на серверах Linux</strong> - в котором нужно указать пути для тех компьютеров, на которых сервер 1С:Предприятия работает под управлением ОС Linux.</li></ul><li>В нижней части списка расположена ссылка <a href="http://its.1c.ru/db/metod81#content:5784:1">Инструкция по работе с программами электронной подписи и шифрования</a>. Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.</li></ul><h3>Дополнительно</h3>
|
||||||
<ul><li>Задайте <strong>Расширение для зашифрованных файлов</strong> при отправке по почте, при выполнении команды <strong>Сохранить как</strong> и при экспорте папки (по умолчанию <strong>.p7m</strong>).
|
<ul><li>Задайте <strong>Расширение для зашифрованных файлов</strong> при отправке по почте, при выполнении команды <strong>Сохранить как</strong> и при экспорте папки (по умолчанию <strong>.p7m</strong>).
|
||||||
</li><li>
|
</li>
|
||||||
|
<li>
|
||||||
<div>Напишите <strong>Расширение для файлов подписи</strong> (по умолчанию <strong>.p7s</strong>).</div>
|
<div>Напишите <strong>Расширение для файлов подписи</strong> (по умолчанию <strong>.p7s</strong>).</div>
|
||||||
</li><li>
|
</li>
|
||||||
|
<li>
|
||||||
<div>С помощью переключателя <strong>При сохранении данных в файл вместе с электронной подписью</strong> задайте поведение программы при выполнении команды <strong>Сохранить вместе с электронной подписью</strong>: </div>
|
<div>С помощью переключателя <strong>При сохранении данных в файл вместе с электронной подписью</strong> задайте поведение программы при выполнении команды <strong>Сохранить вместе с электронной подписью</strong>: </div>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<div><strong>Сохранять все подписи</strong> - все подписи сохраняются; </div>
|
<div><strong>Сохранять все подписи</strong> - все подписи сохраняются; </div>
|
||||||
</li><li>
|
</li>
|
||||||
<div><strong>Спрашивать</strong> - выбор сохраняемых подписей осуществляется из <a href="CommonForm.СохранениеВместеСЭлектроннойПодписью/Help">списка</a>.</div></li></ul></li><li>
|
<li>
|
||||||
|
<div><strong>Спрашивать</strong> - выбор сохраняемых подписей осуществляется из <a href="CommonForm.СохранениеВместеСЭлектроннойПодписью/Help">списка</a>.</div></li></ul></li>
|
||||||
|
<li>
|
||||||
<div>Включите флажок <strong>Сохранять сертификат</strong> для сохранения на компьютер сертификата вместе с файлом и электронной подписью.</div></li></ul><h3>См. также:</h3>
|
<div>Включите флажок <strong>Сохранять сертификат</strong> для сохранения на компьютер сертификата вместе с файлом и электронной подписью.</div></li></ul><h3>См. также:</h3>
|
||||||
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
||||||
@@ -401,6 +401,43 @@
|
|||||||
<horizontalAlign>Left</horizontalAlign>
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
|
<items xsi:type="form:Decoration">
|
||||||
|
<name>ПредупреждениеОписание2</name>
|
||||||
|
<id>222</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Чтобы использовать расширения области данных, требуется запустить сеанс с разделителями.
|
||||||
|
Изменения расширений для пользователей области данных вступят в силу при их следующем входе в программу.</value>
|
||||||
|
</title>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ПредупреждениеОписание2РасширеннаяПодсказка</name>
|
||||||
|
<id>224</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>ПредупреждениеОписание2КонтекстноеМеню</name>
|
||||||
|
<id>223</id>
|
||||||
|
<autoFill>true</autoFill>
|
||||||
|
</contextMenu>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<handlers>
|
||||||
|
<event>URLProcessing</event>
|
||||||
|
<name>ПредупреждениеОписаниеОбработкаНавигационнойСсылки</name>
|
||||||
|
</handlers>
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
<userVisible>
|
<userVisible>
|
||||||
@@ -434,140 +471,6 @@
|
|||||||
<currentRowUse>Auto</currentRowUse>
|
<currentRowUse>Auto</currentRowUse>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
<items xsi:type="form:FormGroup">
|
|
||||||
<name>ГруппаИнформация</name>
|
|
||||||
<id>184</id>
|
|
||||||
<items xsi:type="form:Decoration">
|
|
||||||
<name>ИнформацияКартинка</name>
|
|
||||||
<id>186</id>
|
|
||||||
<title>
|
|
||||||
<key>ru</key>
|
|
||||||
<value>Информация картинка</value>
|
|
||||||
</title>
|
|
||||||
<visible>true</visible>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
<userVisible>
|
|
||||||
<common>true</common>
|
|
||||||
</userVisible>
|
|
||||||
<extendedTooltip>
|
|
||||||
<name>ИнформацияКартинкаРасширеннаяПодсказка</name>
|
|
||||||
<id>188</id>
|
|
||||||
<type>Label</type>
|
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
|
||||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
|
||||||
<horizontalAlign>Left</horizontalAlign>
|
|
||||||
</extInfo>
|
|
||||||
</extendedTooltip>
|
|
||||||
<contextMenu>
|
|
||||||
<name>ИнформацияКартинкаКонтекстноеМеню</name>
|
|
||||||
<id>187</id>
|
|
||||||
<autoFill>true</autoFill>
|
|
||||||
</contextMenu>
|
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
|
||||||
<extInfo xsi:type="form:PictureDecorationExtInfo">
|
|
||||||
<picture xsi:type="core:PictureRef">
|
|
||||||
<picture>CommonPicture.Информация32</picture>
|
|
||||||
</picture>
|
|
||||||
</extInfo>
|
|
||||||
</items>
|
|
||||||
<items xsi:type="form:FormGroup">
|
|
||||||
<name>ГруппаИнформацияОписание</name>
|
|
||||||
<id>189</id>
|
|
||||||
<items xsi:type="form:Decoration">
|
|
||||||
<name>ИнформацияОписание</name>
|
|
||||||
<id>191</id>
|
|
||||||
<title>
|
|
||||||
<key>ru</key>
|
|
||||||
<value>Изменения расширений области данных, вступят в силу только для пользователей области данных и только при их следующем входе в программу.</value>
|
|
||||||
</title>
|
|
||||||
<visible>true</visible>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
<userVisible>
|
|
||||||
<common>true</common>
|
|
||||||
</userVisible>
|
|
||||||
<extendedTooltip>
|
|
||||||
<name>ИнформацияОписаниеРасширеннаяПодсказка</name>
|
|
||||||
<id>193</id>
|
|
||||||
<type>Label</type>
|
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
|
||||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
|
||||||
<horizontalAlign>Left</horizontalAlign>
|
|
||||||
</extInfo>
|
|
||||||
</extendedTooltip>
|
|
||||||
<contextMenu>
|
|
||||||
<name>ИнформацияОписаниеКонтекстноеМеню</name>
|
|
||||||
<id>192</id>
|
|
||||||
<autoFill>true</autoFill>
|
|
||||||
</contextMenu>
|
|
||||||
<type>Label</type>
|
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
|
||||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
|
||||||
<horizontalAlign>Left</horizontalAlign>
|
|
||||||
<verticalAlign>Center</verticalAlign>
|
|
||||||
<titleHeight>2</titleHeight>
|
|
||||||
</extInfo>
|
|
||||||
</items>
|
|
||||||
<visible>true</visible>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
<userVisible>
|
|
||||||
<common>true</common>
|
|
||||||
</userVisible>
|
|
||||||
<title>
|
|
||||||
<key>ru</key>
|
|
||||||
<value>Информация описание</value>
|
|
||||||
</title>
|
|
||||||
<extendedTooltip>
|
|
||||||
<name>ГруппаИнформацияОписаниеРасширеннаяПодсказка</name>
|
|
||||||
<id>190</id>
|
|
||||||
<type>Label</type>
|
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
|
||||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
|
||||||
<horizontalAlign>Left</horizontalAlign>
|
|
||||||
</extInfo>
|
|
||||||
</extendedTooltip>
|
|
||||||
<type>UsualGroup</type>
|
|
||||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
|
||||||
<group>Vertical</group>
|
|
||||||
<behavior>Auto</behavior>
|
|
||||||
<showLeftMargin>true</showLeftMargin>
|
|
||||||
<united>true</united>
|
|
||||||
<throughAlign>Auto</throughAlign>
|
|
||||||
<currentRowUse>Auto</currentRowUse>
|
|
||||||
</extInfo>
|
|
||||||
</items>
|
|
||||||
<visible>true</visible>
|
|
||||||
<enabled>true</enabled>
|
|
||||||
<userVisible>
|
|
||||||
<common>true</common>
|
|
||||||
</userVisible>
|
|
||||||
<title>
|
|
||||||
<key>ru</key>
|
|
||||||
<value>Информация</value>
|
|
||||||
</title>
|
|
||||||
<extendedTooltip>
|
|
||||||
<name>ГруппаИнформацияРасширеннаяПодсказка</name>
|
|
||||||
<id>185</id>
|
|
||||||
<type>Label</type>
|
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
|
||||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
|
||||||
<horizontalAlign>Left</horizontalAlign>
|
|
||||||
</extInfo>
|
|
||||||
</extendedTooltip>
|
|
||||||
<type>UsualGroup</type>
|
|
||||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
|
||||||
<group>HorizontalIfPossible</group>
|
|
||||||
<behavior>Auto</behavior>
|
|
||||||
<showLeftMargin>true</showLeftMargin>
|
|
||||||
<united>true</united>
|
|
||||||
<throughAlign>Auto</throughAlign>
|
|
||||||
<currentRowUse>Auto</currentRowUse>
|
|
||||||
</extInfo>
|
|
||||||
</items>
|
|
||||||
<items xsi:type="form:Table">
|
<items xsi:type="form:Table">
|
||||||
<name>СписокРасширений</name>
|
<name>СписокРасширений</name>
|
||||||
<id>19</id>
|
<id>19</id>
|
||||||
|
|||||||
@@ -22,10 +22,6 @@
|
|||||||
|
|
||||||
НавигационнаяСсылка = "e1cib/app/ОбщаяФорма.Расширения";
|
НавигационнаяСсылка = "e1cib/app/ОбщаяФорма.Расширения";
|
||||||
|
|
||||||
Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
|
|
||||||
ВызватьИсключение НСтр("ru = 'Недостаточно прав доступа. Обратитесь к администратору.'");
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
|
Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
|
||||||
Элементы.СписокРасширенийБезопасныйРежимФлаг.ТолькоПросмотр = Истина;
|
Элементы.СписокРасширенийБезопасныйРежимФлаг.ТолькоПросмотр = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -369,7 +365,8 @@
|
|||||||
// Обновление реквизита формы для условного форматирования.
|
// Обновление реквизита формы для условного форматирования.
|
||||||
ЭтоНеразделенныйПользовательВОбласти = ЭтоНеразделенныйПользовательВОбласти();
|
ЭтоНеразделенныйПользовательВОбласти = ЭтоНеразделенныйПользовательВОбласти();
|
||||||
|
|
||||||
Элементы.ГруппаИнформация.Видимость = ЭтоНеразделенныйПользовательВОбласти;
|
Элементы.ПредупреждениеОписание.Видимость = Не ЭтоНеразделенныйПользовательВОбласти;
|
||||||
|
Элементы.ПредупреждениеОписание2.Видимость = ЭтоНеразделенныйПользовательВОбласти;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -1543,19 +1540,7 @@
|
|||||||
&НаСервереБезКонтекста
|
&НаСервереБезКонтекста
|
||||||
Функция ЭтоНеразделенныйПользовательВОбласти()
|
Функция ЭтоНеразделенныйПользовательВОбласти()
|
||||||
|
|
||||||
СеансЗапущенБезРазделителей = Истина;
|
Возврат СтандартныеПодсистемыСервер.ЭтоРазделенныйРежимСеансаБезРазделителей();
|
||||||
|
|
||||||
Если ОбщегоНазначения.РазделениеВключено()
|
|
||||||
И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
|
||||||
|
|
||||||
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
|
|
||||||
СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат СеансЗапущенБезРазделителей
|
|
||||||
И ОбщегоНазначения.РазделениеВключено()
|
|
||||||
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
|
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -1267,6 +1267,9 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДанныеПечати = Неопределено Тогда
|
Если ДанныеПечати = Неопределено Тогда
|
||||||
|
Если Не ЗначениеЗаполнено(Образец) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
Объекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Образец);
|
Объекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Образец);
|
||||||
ОтображаемыеПоля = ЗаполнитьСписокОтображаемыхПолей(КоллекцияПолей);
|
ОтображаемыеПоля = ЗаполнитьСписокОтображаемыхПолей(КоллекцияПолей);
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
|
||||||
@@ -2292,6 +2295,12 @@
|
|||||||
Если Элементы.ПосмотретьПечатнуюФорму.Пометка Тогда
|
Если Элементы.ПосмотретьПечатнуюФорму.Пометка Тогда
|
||||||
Элементы.СтраницыМакетов.ТекущаяСтраница = Элементы.СтраницаМакет;
|
Элементы.СтраницыМакетов.ТекущаяСтраница = Элементы.СтраницаМакет;
|
||||||
Иначе
|
Иначе
|
||||||
|
Если Не ЗначениеЗаполнено(Образец) Тогда
|
||||||
|
Элементы[ИмяСпискаПолей()].ТекущаяСтрока = ЭтотОбъект[ИмяСпискаПолей()].ПолучитьЭлементы()[0].ПолучитьИдентификатор();
|
||||||
|
ОбщегоНазначенияКлиент.СообщитьПользователю(
|
||||||
|
НСтр("ru = 'Выберите образец, по данным которого будет формироваться печатная форма'"), , ИмяСпискаПолей() + "[0].Образец");
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
СформироватьПечатнуюФорму();
|
СформироватьПечатнуюФорму();
|
||||||
Элементы.СтраницыМакетов.ТекущаяСтраница = Элементы.СтраницаОбразец;
|
Элементы.СтраницыМакетов.ТекущаяСтраница = Элементы.СтраницаОбразец;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -2326,6 +2335,10 @@
|
|||||||
Для Каждого Область Из Элементы.ТабличныйДокумент.ПолучитьВыделенныеОбласти() Цикл
|
Для Каждого Область Из Элементы.ТабличныйДокумент.ПолучитьВыделенныеОбласти() Цикл
|
||||||
Если СтрНачинаетсяС(Область.Имя, "ШтампЭП") Тогда
|
Если СтрНачинаетсяС(Область.Имя, "ШтампЭП") Тогда
|
||||||
Область.Имя = "";
|
Область.Имя = "";
|
||||||
|
#Если ВебКлиент Тогда
|
||||||
|
// Требуется для обновления отображения
|
||||||
|
Область.Защита = Область.Защита;
|
||||||
|
#КонецЕсли
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
|||||||
@@ -406,6 +406,32 @@
|
|||||||
<representationInContextMenu>Auto</representationInContextMenu>
|
<representationInContextMenu>Auto</representationInContextMenu>
|
||||||
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
|
<locationInCommandBar>InCommandBarAndInAdditionalSubmenu</locationInCommandBar>
|
||||||
</items>
|
</items>
|
||||||
|
<items xsi:type="form:Button">
|
||||||
|
<name>УстановленныеИсправленияЗакрыть</name>
|
||||||
|
<id>110</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>УстановленныеИсправленияЗакрытьРасширеннаяПодсказка</name>
|
||||||
|
<id>111</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<commandName>Form.StandardCommand.Close</commandName>
|
||||||
|
<buttonImportance>Normal</buttonImportance>
|
||||||
|
<representation>Auto</representation>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<placementArea>UserCmds</placementArea>
|
||||||
|
<representationInContextMenu>Auto</representationInContextMenu>
|
||||||
|
</items>
|
||||||
<items xsi:type="form:Button">
|
<items xsi:type="form:Button">
|
||||||
<name>УстановленныеИсправленияСправка</name>
|
<name>УстановленныеИсправленияСправка</name>
|
||||||
<id>72</id>
|
<id>72</id>
|
||||||
@@ -1267,13 +1293,18 @@
|
|||||||
<attributes>
|
<attributes>
|
||||||
<name>Фильтр</name>
|
<name>Фильтр</name>
|
||||||
<id>3</id>
|
<id>3</id>
|
||||||
<valueType/>
|
<valueType>
|
||||||
|
<types>ValueList</types>
|
||||||
|
</valueType>
|
||||||
<view>
|
<view>
|
||||||
<common>true</common>
|
<common>true</common>
|
||||||
</view>
|
</view>
|
||||||
<edit>
|
<edit>
|
||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
|
<extInfo xsi:type="form:ValueListExtInfo">
|
||||||
|
<itemValueType/>
|
||||||
|
</extInfo>
|
||||||
</attributes>
|
</attributes>
|
||||||
<attributes>
|
<attributes>
|
||||||
<name>РазделениеВключено</name>
|
<name>РазделениеВключено</name>
|
||||||
@@ -1301,6 +1332,19 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>ПриОбновлении</name>
|
||||||
|
<id>11</id>
|
||||||
|
<valueType>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</attributes>
|
||||||
<formCommands>
|
<formCommands>
|
||||||
<name>СохранитьКак</name>
|
<name>СохранитьКак</name>
|
||||||
<title>
|
<title>
|
||||||
@@ -1330,6 +1374,12 @@
|
|||||||
<name>Исправления</name>
|
<name>Исправления</name>
|
||||||
<valueType/>
|
<valueType/>
|
||||||
</parameters>
|
</parameters>
|
||||||
|
<parameters>
|
||||||
|
<name>ПриОбновлении</name>
|
||||||
|
<valueType>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</valueType>
|
||||||
|
</parameters>
|
||||||
<commandInterface>
|
<commandInterface>
|
||||||
<navigationPanel/>
|
<navigationPanel/>
|
||||||
<commandBar/>
|
<commandBar/>
|
||||||
|
|||||||
@@ -25,11 +25,27 @@
|
|||||||
Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Состав исправлений настраивается администратором приложения.'");
|
Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Состав исправлений настраивается администратором приложения.'");
|
||||||
ИначеЕсли ЭтоПодчиненныйУзелРИБ Тогда
|
ИначеЕсли ЭтоПодчиненныйУзелРИБ Тогда
|
||||||
Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Управление составом исправлений выполняется в центральном узле.'");
|
Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Управление составом исправлений выполняется в центральном узле.'");
|
||||||
|
ИначеЕсли Параметры.ПриОбновлении Тогда
|
||||||
|
Элементы.ИнформацияОписание.Заголовок = НСтр("ru = 'Установленные исправления вступят в силу после перезапуска программы.'");
|
||||||
ИначеЕсли Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда
|
ИначеЕсли Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда
|
||||||
Элементы.ГруппаИнформация.Видимость = Ложь;
|
Элементы.ГруппаИнформация.Видимость = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если РазделениеВключено Или ЭтоПодчиненныйУзелРИБ Или Не ОбщегоНазначения.ЭтоWindowsКлиент() Тогда
|
Если ЗначениеЗаполнено(Параметры.Исправления) Тогда
|
||||||
|
Если ТипЗнч(Параметры.Исправления) = Тип("СписокЗначений") Тогда
|
||||||
|
Фильтр = Параметры.Исправления;
|
||||||
|
ИначеЕсли ТипЗнч(Параметры.Исправления) = Тип("Массив") Тогда
|
||||||
|
Фильтр.ЗагрузитьЗначения(Параметры.Исправления);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПриОбновлении = Параметры.ПриОбновлении;
|
||||||
|
Элементы.УстановленныеИсправленияЗакрыть.Видимость = ПриОбновлении;
|
||||||
|
|
||||||
|
Если РазделениеВключено
|
||||||
|
Или ЭтоПодчиненныйУзелРИБ
|
||||||
|
Или Не ОбщегоНазначения.ЭтоWindowsКлиент()
|
||||||
|
Или Параметры.ПриОбновлении Тогда
|
||||||
Элементы.ФормаУстановитьИсправление.Видимость = Ложь;
|
Элементы.ФормаУстановитьИсправление.Видимость = Ложь;
|
||||||
Элементы.ФормаУдалитьИсправление.Видимость = Ложь;
|
Элементы.ФормаУдалитьИсправление.Видимость = Ложь;
|
||||||
Элементы.УстановленныеИсправленияКонтекстноеМенюДобавить.Видимость = Ложь;
|
Элементы.УстановленныеИсправленияКонтекстноеМенюДобавить.Видимость = Ложь;
|
||||||
@@ -123,13 +139,15 @@
|
|||||||
Расширения = РасширенияКонфигурации.Получить();
|
Расширения = РасширенияКонфигурации.Получить();
|
||||||
УстановитьПривилегированныйРежим(Ложь);
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
|
||||||
|
ОписаниеИсправлений = ОписаниеУстановленныхИсправлений();
|
||||||
|
|
||||||
Для Каждого Расширение Из Расширения Цикл
|
Для Каждого Расширение Из Расширения Цикл
|
||||||
|
|
||||||
Если Не ОбновлениеКонфигурации.ЭтоИсправление(Расширение) Тогда
|
Если Не ОбновлениеКонфигурации.ЭтоИсправление(Расширение) Тогда
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Фильтр <> Неопределено И Фильтр.НайтиПоЗначению(Расширение.Имя) = Неопределено Тогда
|
Если Фильтр.Количество() <> 0 И Фильтр.НайтиПоЗначению(Расширение.Имя) = Неопределено Тогда
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -147,12 +165,40 @@
|
|||||||
НоваяСтрока.Описание = СвойстваИсправления.Description;
|
НоваяСтрока.Описание = СвойстваИсправления.Description;
|
||||||
НоваяСтрока.ПрименимоДля = ИсправлениеПрименимоДля(СвойстваИсправления);
|
НоваяСтрока.ПрименимоДля = ИсправлениеПрименимоДля(СвойстваИсправления);
|
||||||
Иначе
|
Иначе
|
||||||
|
Описание = ОписаниеИсправлений[Расширение.Имя];
|
||||||
НоваяСтрока.Статус = 1;
|
НоваяСтрока.Статус = 1;
|
||||||
|
НоваяСтрока.Описание = Описание;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Функция ОписаниеУстановленныхИсправлений()
|
||||||
|
|
||||||
|
Если Не ПриОбновлении Тогда
|
||||||
|
Возврат Новый Соответствие;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
|
||||||
|
ПараметрыМетода = Новый Массив;
|
||||||
|
ПараметрыМетода.Добавить(АдресХранилища);
|
||||||
|
ПараметрыМетода.Добавить(Фильтр.ВыгрузитьЗначения());
|
||||||
|
ПараметрыМетода.Добавить(Истина);
|
||||||
|
ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
|
||||||
|
"ОбновлениеКонфигурации.ОписанияНовыхПатчей",
|
||||||
|
ПараметрыМетода);
|
||||||
|
ФоновоеЗадание.ОжидатьЗавершенияВыполнения(Неопределено);
|
||||||
|
|
||||||
|
ОписаниеНовыхПатчей = ПолучитьИзВременногоХранилища(АдресХранилища);
|
||||||
|
Если ТипЗнч(ОписаниеНовыхПатчей) <> Тип("Соответствие") Тогда
|
||||||
|
ОписаниеНовыхПатчей = Новый Соответствие;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ОписаниеНовыхПатчей;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Функция ИсправлениеПрименимоДля(СвойстваИсправления)
|
Функция ИсправлениеПрименимоДля(СвойстваИсправления)
|
||||||
|
|
||||||
|
|||||||
@@ -166,6 +166,10 @@
|
|||||||
ИмяСтраницы = СвязиСтраниц[Параметры.ИмяСтраницы];
|
ИмяСтраницы = СвязиСтраниц[Параметры.ИмяСтраницы];
|
||||||
НайденнаяСтраница = Элементы.Найти(ИмяСтраницы);
|
НайденнаяСтраница = Элементы.Найти(ИмяСтраницы);
|
||||||
|
|
||||||
|
Если НайденнаяСтраница = Неопределено Тогда
|
||||||
|
НайденнаяСтраница = Элементы.Найти(Параметры.ИмяСтраницы);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если НайденнаяСтраница <> Неопределено Тогда
|
Если НайденнаяСтраница <> Неопределено Тогда
|
||||||
Элементы.СтраницыНастроек.ТекущаяСтраница = НайденнаяСтраница;
|
Элементы.СтраницыНастроек.ТекущаяСтраница = НайденнаяСтраница;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -1186,6 +1186,14 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Формула = ВариантыОтчетовСлужебныйКлиентСервер.ФормулаПоПутиКДанным(Отчет.КомпоновщикНастроек.Настройки, Строка(Строка.Поле));
|
||||||
|
|
||||||
|
Если ТипЗнч(Формула) <> Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных") Тогда
|
||||||
|
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗакрытииФормыНастроекДляТехническогоСпециалиста", ЭтотОбъект);
|
||||||
|
ОткрытьФормуНастроекДляТехническогоСпециалиста("СтраницаПользовательскихПолей", ОписаниеОповещения);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ВариантыОтчетовСлужебныйКлиент.ИзменитьФормулу(
|
ВариантыОтчетовСлужебныйКлиент.ИзменитьФормулу(
|
||||||
ЭтотОбъект, Отчет.КомпоновщикНастроек.Настройки, Строка(Строка.Поле));
|
ЭтотОбъект, Отчет.КомпоновщикНастроек.Настройки, Строка(Строка.Поле));
|
||||||
|
|
||||||
@@ -1853,24 +1861,9 @@
|
|||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПерейтиКНастройкамДляТехническогоСпециалиста(Команда)
|
Процедура ПерейтиКНастройкамДляТехническогоСпециалиста(Команда)
|
||||||
ПараметрыФормы = Новый Структура;
|
|
||||||
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыФормы, ФормаПараметры, Истина);
|
|
||||||
ПараметрыФормы.Вставить("КлючВарианта", Строка(КлючТекущегоВарианта));
|
|
||||||
ПараметрыФормы.Вставить("Вариант", Отчет.КомпоновщикНастроек.Настройки);
|
|
||||||
ПараметрыФормы.Вставить("ПользовательскиеНастройки", Отчет.КомпоновщикНастроек.ПользовательскиеНастройки);
|
|
||||||
ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета);
|
|
||||||
ПараметрыФормы.Вставить("ВариантНаименование", ВариантНаименование);
|
|
||||||
ПараметрыФормы.Вставить("ИдентификаторЭлементаСтруктурыНастроек", ИдентификаторЭлементаСтруктурыНастроек);
|
|
||||||
ПараметрыФормы.Вставить("ИмяСтраницы", Элементы.СтраницыНастроек.ТекущаяСтраница.Имя);
|
|
||||||
ПараметрыФормы.Вставить("ПредставлениеВарианта", ВариантНаименование);
|
|
||||||
ПараметрыФормы.Вставить("ВариантМодифицирован", ВариантИзменен);
|
|
||||||
ПараметрыФормы.Вставить("ПользовательскиеНастройкиМодифицированы",
|
|
||||||
ВариантИзменен Или ПользовательскиеНастройкиМодифицированы);
|
|
||||||
|
|
||||||
ОткрытьФорму(НастройкиОтчета.ПолноеИмя + ".ФормаВарианта", ПараметрыФормы, ВладелецФормы);
|
ОткрытьФормуНастроекДляТехническогоСпециалиста(Элементы.СтраницыНастроек.ТекущаяСтраница.Имя);
|
||||||
|
|
||||||
РезультатВыбораСформирован = Истина;
|
|
||||||
Закрыть();
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -7454,6 +7447,9 @@
|
|||||||
Для Каждого Запись Из ПомеченныеНаУдаление Цикл
|
Для Каждого Запись Из ПомеченныеНаУдаление Цикл
|
||||||
СвойствоЭлементаСтруктуры = СвойствоЭлементаСтруктурыНастроек(
|
СвойствоЭлементаСтруктуры = СвойствоЭлементаСтруктурыНастроек(
|
||||||
КомпоновщикНастроек, Запись.КлючСвойстваЭлементаСтруктуры, Запись.ИдентификаторЭлементаСтруктуры, РасширенныйРежим);
|
КомпоновщикНастроек, Запись.КлючСвойстваЭлементаСтруктуры, Запись.ИдентификаторЭлементаСтруктуры, РасширенныйРежим);
|
||||||
|
Если СвойствоЭлементаСтруктуры = Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ЭлементНастройки = СвойствоЭлементаСтруктуры.ПолучитьОбъектПоИдентификатору(Запись.ИдентификаторЭлемента);
|
ЭлементНастройки = СвойствоЭлементаСтруктуры.ПолучитьОбъектПоИдентификатору(Запись.ИдентификаторЭлемента);
|
||||||
Если ЭлементНастройки = Неопределено Тогда
|
Если ЭлементНастройки = Неопределено Тогда
|
||||||
@@ -7671,4 +7667,43 @@
|
|||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОткрытьФормуНастроекДляТехническогоСпециалиста(ИмяСтраницы, ОбработчикЗавершения = Неопределено)
|
||||||
|
|
||||||
|
ПараметрыФормы = Новый Структура;
|
||||||
|
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыФормы, ФормаПараметры, Истина);
|
||||||
|
ПараметрыФормы.Вставить("КлючВарианта", Строка(КлючТекущегоВарианта));
|
||||||
|
ПараметрыФормы.Вставить("Вариант", Отчет.КомпоновщикНастроек.Настройки);
|
||||||
|
ПараметрыФормы.Вставить("ПользовательскиеНастройки", Отчет.КомпоновщикНастроек.ПользовательскиеНастройки);
|
||||||
|
ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета);
|
||||||
|
ПараметрыФормы.Вставить("ВариантНаименование", ВариантНаименование);
|
||||||
|
ПараметрыФормы.Вставить("ИдентификаторЭлементаСтруктурыНастроек", ИдентификаторЭлементаСтруктурыНастроек);
|
||||||
|
ПараметрыФормы.Вставить("ИмяСтраницы", ИмяСтраницы);
|
||||||
|
ПараметрыФормы.Вставить("ПредставлениеВарианта", ВариантНаименование);
|
||||||
|
ПараметрыФормы.Вставить("ВариантМодифицирован", ВариантИзменен);
|
||||||
|
ПараметрыФормы.Вставить("ПользовательскиеНастройкиМодифицированы",
|
||||||
|
ВариантИзменен Или ПользовательскиеНастройкиМодифицированы);
|
||||||
|
|
||||||
|
Если ОбработчикЗавершения <> Неопределено Тогда
|
||||||
|
РежимОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОткрытьФорму(НастройкиОтчета.ПолноеИмя + ".ФормаВарианта", ПараметрыФормы, ВладелецФормы, , , , ОбработчикЗавершения, РежимОкна);
|
||||||
|
|
||||||
|
Если ОбработчикЗавершения = Неопределено Тогда
|
||||||
|
РезультатВыбораСформирован = Истина;
|
||||||
|
Закрыть();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПриЗакрытииФормыНастроекДляТехническогоСпециалиста(Результат, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Если ТипЗнч(Результат) = Тип("Структура") Тогда
|
||||||
|
ОбновитьФорму(Результат);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -1886,7 +1886,7 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КлючТекущихПользовательскихНастроек = ОписаниеНастроек.КлючНастроек; // Строка
|
УстановитьТекущиеПользовательскиеНастройки(ОписаниеНастроек.КлючНастроек);
|
||||||
ПредставлениеТекущихПользовательскихНастроек = ОписаниеНастроек.Представление;
|
ПредставлениеТекущихПользовательскихНастроек = ОписаниеНастроек.Представление;
|
||||||
|
|
||||||
Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(ОписаниеНастроек.Настройки);
|
Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(ОписаниеНастроек.Настройки);
|
||||||
@@ -3706,7 +3706,8 @@
|
|||||||
Элементы.ГруппаСохранениеВыборВариантаОтчета.Видимость = Не ОбщегоНазначения.РазделениеВключено()
|
Элементы.ГруппаСохранениеВыборВариантаОтчета.Видимость = Не ОбщегоНазначения.РазделениеВключено()
|
||||||
Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
|
Или ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
|
||||||
|
|
||||||
Элементы.ИзменитьСоставБыстрыхНастроек.Видимость = ПоказыватьКомандыИзмененияВарианта;
|
Элементы.ИзменитьСоставБыстрыхНастроек.Видимость = ПоказыватьКомандыИзмененияВарианта
|
||||||
|
И Не ОбщегоНазначения.ЭтоМобильныйКлиент();
|
||||||
|
|
||||||
ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский
|
ЭтоПредопределенныйВариант = Не НастройкиОтчета.Пользовательский
|
||||||
И ЗначениеЗаполнено(НастройкиОтчета.ПредопределенныйСсылка);
|
И ЗначениеЗаполнено(НастройкиОтчета.ПредопределенныйСсылка);
|
||||||
|
|||||||
@@ -145,7 +145,7 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Для вызова из формы восстановления связи с главным узлом
|
// Для вызова из формы восстановления связи с главным узлом
|
||||||
// см. общую форму ВосстановлениеСвязиСГлавнымУзлом
|
// см. ОбщаяФорма.ВосстановлениеСвязиСГлавнымУзлом.
|
||||||
//
|
//
|
||||||
Процедура ПриПодтвержденииОтключенияСвязиСГлавнымУзлом() Экспорт
|
Процедура ПриПодтвержденииОтключенияСвязиСГлавнымУзлом() Экспорт
|
||||||
|
|
||||||
|
|||||||
@@ -95,6 +95,14 @@
|
|||||||
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.АналитическийОтчетПоАнкетированию);
|
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.АналитическийОтчетПоАнкетированию);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
|
// См. РассылкаОтчетовПереопределяемый.ОпределитьИсключаемыеОтчеты
|
||||||
|
Процедура ПриОпределенииИсключаемыхОтчетов(ИсключаемыеОтчеты) Экспорт
|
||||||
|
|
||||||
|
ИсключаемыеОтчеты.Добавить(Метаданные.Отчеты.АнализОпроса);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|||||||
@@ -4766,9 +4766,11 @@
|
|||||||
|
|
||||||
Языки = Новый Массив;
|
Языки = Новый Массив;
|
||||||
|
|
||||||
|
КодТекущегоЯзыка = ?(ТипЗнч(ТекущийЯзык()) = Тип("Строка"), ТекущийЯзык(), ТекущийЯзык().КодЯзыка);
|
||||||
|
|
||||||
Исключения = Новый Массив;
|
Исключения = Новый Массив;
|
||||||
Исключения.Добавить(ТекущийЯзык());
|
Исключения.Добавить(КодТекущегоЯзыка);
|
||||||
Исключения.Добавить(Метаданные.ОсновнойЯзык);
|
Исключения.Добавить(ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
|
||||||
Для Каждого Язык Из Метаданные.Языки Цикл
|
Для Каждого Язык Из Метаданные.Языки Цикл
|
||||||
|
|
||||||
|
|||||||
@@ -227,7 +227,7 @@
|
|||||||
Результат.Колонки.Добавить("ПолноеИмя", ВариантыОтчетов.ОписаниеТиповСтрока(510));
|
Результат.Колонки.Добавить("ПолноеИмя", ВариантыОтчетов.ОписаниеТиповСтрока(510));
|
||||||
Результат.Колонки.Добавить("Представление", ВариантыОтчетов.ОписаниеТиповСтрока(150));
|
Результат.Колонки.Добавить("Представление", ВариантыОтчетов.ОписаниеТиповСтрока(150));
|
||||||
|
|
||||||
Если ТекущийЯзык() = Метаданные.ОсновнойЯзык Тогда
|
Если ОбщегоНазначения.ЭтоОсновнойЯзык() Тогда
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
@@ -2163,7 +2163,14 @@
|
|||||||
|
|
||||||
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсов");
|
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсов");
|
||||||
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеОбщегоИтога");
|
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеОбщегоИтога");
|
||||||
|
#Если ВебКлиент Тогда
|
||||||
|
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||||
|
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.20.1859") > 0 Тогда
|
||||||
|
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсовОбщегоИтога");
|
||||||
|
КонецЕсли;
|
||||||
|
#Иначе
|
||||||
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсовОбщегоИтога");
|
НеиспользуемыеОбласти.Добавить("ИспользоватьВЗаголовкеПолейРесурсовОбщегоИтога");
|
||||||
|
#КонецЕсли
|
||||||
|
|
||||||
Возврат НеиспользуемыеОбласти;
|
Возврат НеиспользуемыеОбласти;
|
||||||
|
|
||||||
@@ -3575,6 +3582,10 @@
|
|||||||
|
|
||||||
Для Каждого Формула Из Формулы Цикл
|
Для Каждого Формула Из Формулы Цикл
|
||||||
|
|
||||||
|
Если ТипЗнч(Формула) <> Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных") Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если СокрЛП(Выражение) = Формула.ПолучитьВыражениеДетальныхЗаписей() Тогда
|
Если СокрЛП(Выражение) = Формула.ПолучитьВыражениеДетальныхЗаписей() Тогда
|
||||||
Возврат Формула;
|
Возврат Формула;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -3589,6 +3600,15 @@
|
|||||||
|
|
||||||
Формула = ВариантыОтчетовСлужебныйКлиентСервер.ФормулаПоПутиКДанным(Настройки, ПутьКДанным);
|
Формула = ВариантыОтчетовСлужебныйКлиентСервер.ФормулаПоПутиКДанным(Настройки, ПутьКДанным);
|
||||||
|
|
||||||
|
Если ТипЗнч(Формула) <> Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных") Тогда
|
||||||
|
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Редактирование поля ""%1""доступно в форме настроек для технического специалиста на закладке ""Пользовательские поля""'"),
|
||||||
|
Формула.Заголовок);
|
||||||
|
|
||||||
|
ПоказатьПредупреждение(Неопределено, ТекстСообщения);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыРедактированияФормулы = КонструкторФормулКлиент.ПараметрыРедактированияФормулы();
|
ПараметрыРедактированияФормулы = КонструкторФормулКлиент.ПараметрыРедактированияФормулы();
|
||||||
ПараметрыРедактированияФормулы.Операнды = Форма.НастройкиОтчета.АдресСхемы;
|
ПараметрыРедактированияФормулы.Операнды = Форма.НастройкиОтчета.АдресСхемы;
|
||||||
ПараметрыРедактированияФормулы.ИмяКоллекцииСКДОперандов = ИмяКоллекции;
|
ПараметрыРедактированияФормулы.ИмяКоллекцииСКДОперандов = ИмяКоллекции;
|
||||||
@@ -3665,7 +3685,6 @@
|
|||||||
|
|
||||||
Формула = ДополнительныеПараметры.Формула;
|
Формула = ДополнительныеПараметры.Формула;
|
||||||
Формула.УстановитьВыражениеДетальныхЗаписей(Выражение);
|
Формула.УстановитьВыражениеДетальныхЗаписей(Выражение);
|
||||||
Формула.УстановитьПредставлениеВыражений(ПредставлениеВыражения, "");
|
|
||||||
Формула.Заголовок = ?(ЗначениеЗаполнено(Заголовок), Заголовок, ПредставлениеВыражения);
|
Формула.Заголовок = ?(ЗначениеЗаполнено(Заголовок), Заголовок, ПредставлениеВыражения);
|
||||||
|
|
||||||
ОписаниеФормулы = ДополнительныеПараметры.КоллекцияПолей.НайтиПоле(Новый ПолеКомпоновкиДанных(Формула.ПутьКДанным));
|
ОписаниеФормулы = ДополнительныеПараметры.КоллекцияПолей.НайтиПоле(Новый ПолеКомпоновкиДанных(Формула.ПутьКДанным));
|
||||||
|
|||||||
@@ -561,6 +561,11 @@
|
|||||||
|
|
||||||
Если ПараметрыВыполнения.БезРасширений Тогда
|
Если ПараметрыВыполнения.БезРасширений Тогда
|
||||||
ПараметрыВыполнения.БезРасширений = ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения);
|
ПараметрыВыполнения.БезРасширений = ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения);
|
||||||
|
|
||||||
|
ИначеЕсли Не ПараметрыВыполнения.СРасширениямиБазыДанных
|
||||||
|
И СтандартныеПодсистемыСервер.ЭтоРазделенныйРежимСеансаБезРазделителей() Тогда
|
||||||
|
|
||||||
|
ПараметрыВыполнения.СРасширениямиБазыДанных = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыЭкспортнойПроцедуры = ПараметрыПроцедуры;
|
ПараметрыЭкспортнойПроцедуры = ПараметрыПроцедуры;
|
||||||
|
|||||||
@@ -47,9 +47,6 @@
|
|||||||
// Для регистрации условий следует использовать процедуру
|
// Для регистрации условий следует использовать процедуру
|
||||||
// ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды.
|
// ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды.
|
||||||
// Условия объединяются по "И".
|
// Условия объединяются по "И".
|
||||||
// * ИзменяетВыбранныеОбъекты - Булево - определяет доступность команды, когда у пользователя нет прав на
|
|
||||||
// изменение объекта. Если Истина, то в описанной выше ситуации кнопка будет недоступна.
|
|
||||||
// Значение по умолчанию - Истина.
|
|
||||||
//
|
//
|
||||||
// Настройки процесса выполнения:
|
// Настройки процесса выполнения:
|
||||||
// * МножественныйВыбор - Булево
|
// * МножественныйВыбор - Булево
|
||||||
|
|||||||
@@ -691,6 +691,8 @@
|
|||||||
МодульКалендарныеГрафикиСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
МодульКалендарныеГрафикиСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОбновлениеИнформационнойБазыСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
||||||
|
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует(
|
Если ОбщегоНазначения.ПодсистемаСуществует(
|
||||||
"СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
|
"СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
|
||||||
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль(
|
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль(
|
||||||
@@ -706,13 +708,16 @@
|
|||||||
МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
МодульРаботаСФайламиСлужебныйВМоделиСервиса.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УдалениеПомеченныхОбъектов") Тогда
|
||||||
|
МодульУдалениеПомеченныхОбъектовСлужебный = ОбщегоНазначения.ОбщийМодуль("УдалениеПомеченныхОбъектовСлужебный");
|
||||||
|
МодульУдалениеПомеченныхОбъектовСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
||||||
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
|
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
|
||||||
МодульЭлектроннаяПодписьСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
МодульЭлектроннаяПодписьСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОбновлениеИнформационнойБазыСлужебный.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий.
|
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииИспользованияРегламентныхЗаданий.
|
||||||
@@ -847,6 +852,12 @@
|
|||||||
МодульРаботаСАдресами.ПриДобавленииКлассификаторов(Классификаторы);
|
МодульРаботаСАдресами.ПриДобавленииКлассификаторов(Классификаторы);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись")
|
||||||
|
И Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") <> Неопределено Тогда
|
||||||
|
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
|
||||||
|
МодульЭлектроннаяПодписьСлужебный.ПриДобавленииКлассификаторов(Классификаторы);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора.
|
// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора.
|
||||||
@@ -877,6 +888,13 @@
|
|||||||
ДополнительныеПараметры);
|
ДополнительныеПараметры);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись")
|
||||||
|
И Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") <> Неопределено Тогда
|
||||||
|
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
|
||||||
|
МодульЭлектроннаяПодписьСлужебный.ПриЗагрузкеКлассификатора(Идентификатор, Версия, Адрес, Обработан,
|
||||||
|
ДополнительныеПараметры);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// См. РаботаСКлассификаторамиВМоделиСервисаПереопределяемый.ПриОбработкеОбластиДанных.
|
// См. РаботаСКлассификаторамиВМоделиСервисаПереопределяемый.ПриОбработкеОбластиДанных.
|
||||||
@@ -4334,6 +4352,25 @@
|
|||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область РассылкаОтчетов
|
||||||
|
|
||||||
|
// См. РассылкаОтчетовПереопределяемый.ОпределитьИсключаемыеОтчеты
|
||||||
|
Процедура ПриОпределенииИсключаемыхОтчетов(ИсключаемыеОтчеты) Экспорт
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||||
|
МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
|
||||||
|
МодульУправлениеДоступомСлужебный.ПриОпределенииИсключаемыхОтчетов(ИсключаемыеОтчеты);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Анкетирование") Тогда
|
||||||
|
МодульАнкетирование = ОбщегоНазначения.ОбщийМодуль("Анкетирование");
|
||||||
|
МодульАнкетирование.ПриОпределенииИсключаемыхОтчетов(ИсключаемыеОтчеты);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
#Область РаботаСФайлами
|
#Область РаботаСФайлами
|
||||||
|
|
||||||
// См. РаботаСФайламиСлужебный.ПриОпределенииОбъектовИсключенияСинхронизацииФайлов.
|
// См. РаботаСФайламиСлужебный.ПриОпределенииОбъектовИсключенияСинхронизацииФайлов.
|
||||||
|
|||||||
@@ -238,7 +238,7 @@
|
|||||||
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
|
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Отбор.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
|
Отбор.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
|
||||||
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
|
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
|
||||||
Если НайденныеСтроки.Количество() > 0 Тогда
|
Если НайденныеСтроки.Количество() > 0 Тогда
|
||||||
Для каждого ИмяРеквизита Из Реквизиты Цикл
|
Для каждого ИмяРеквизита Из Реквизиты Цикл
|
||||||
@@ -314,7 +314,7 @@
|
|||||||
ИмяРеквизита = Реквизит.Имя;
|
ИмяРеквизита = Реквизит.Имя;
|
||||||
|
|
||||||
Отбор = Новый Структура();
|
Отбор = Новый Структура();
|
||||||
Отбор.Вставить("КодЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
|
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор);
|
НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор);
|
||||||
|
|
||||||
Если НайденныеСтроки.Количество() > 0 Тогда
|
Если НайденныеСтроки.Количество() > 0 Тогда
|
||||||
@@ -328,7 +328,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Представление = Объект.Представления.Добавить();
|
Представление = Объект.Представления.Добавить();
|
||||||
Представление.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
|
Представление.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Представление[ИмяРеквизита] = Объект[ИмяРеквизита];
|
Представление[ИмяРеквизита] = Объект[ИмяРеквизита];
|
||||||
@@ -467,7 +467,7 @@
|
|||||||
Возврат Истина;
|
Возврат Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Константы.ОсновнойЯзык.Установить(Метаданные.ОсновнойЯзык.КодЯзыка);
|
Константы.ОсновнойЯзык.Установить(ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
|
|
||||||
@@ -1977,7 +1977,7 @@
|
|||||||
ДанныеОбъекта.СсылкаНаПоследнийОбработанныйОбъекты,
|
ДанныеОбъекта.СсылкаНаПоследнийОбработанныйОбъекты,
|
||||||
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя).ПустаяСсылка());
|
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя).ПустаяСсылка());
|
||||||
|
|
||||||
ШаблонПолейЗапроса = "ДанныеОбъекта.%1%2 КАК %1%2"; // @Qurey-part1
|
ШаблонПолейЗапроса = "ДанныеОбъекта.%1%2 КАК %1%2";
|
||||||
|
|
||||||
ЗначенияЯзыковыхКонстант = ДанныеДляИзмененияМультиязычныхРеквизитов.НастройкиИзмененияЯзыков;
|
ЗначенияЯзыковыхКонстант = ДанныеДляИзмененияМультиязычныхРеквизитов.НастройкиИзмененияЯзыков;
|
||||||
МультиязычныеРеквизиты = ДанныеОбъекта.ЯзыковыеПоля;
|
МультиязычныеРеквизиты = ДанныеОбъекта.ЯзыковыеПоля;
|
||||||
|
|||||||
@@ -3030,7 +3030,7 @@
|
|||||||
// Строка - версия.
|
// Строка - версия.
|
||||||
//
|
//
|
||||||
// Пример:
|
// Пример:
|
||||||
// ВерсияКонфигурацииИБ = ВерсияИБ(Метаданные.Имя);
|
// ВерсияКонфигурацииИБ = ОбновлениеИнформационнойБазы.ВерсияИБ(Метаданные.Имя);
|
||||||
//
|
//
|
||||||
Функция ВерсияИБ(Знач ИдентификаторБиблиотеки) Экспорт
|
Функция ВерсияИБ(Знач ИдентификаторБиблиотеки) Экспорт
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||||
|
|
||||||
Описание.Имя = "БиблиотекаСинхронизацииДанных";
|
Описание.Имя = "БиблиотекаСинхронизацииДанных";
|
||||||
Описание.Версия = "1.0.1.19";
|
Описание.Версия = "1.0.1.23";
|
||||||
Описание.ИдентификаторИнтернетПоддержки = "DSL";
|
Описание.ИдентификаторИнтернетПоддержки = "DSL";
|
||||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.1.1";
|
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "1.0.1.1";
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||||
|
|
||||||
Описание.Имя = "СтандартныеПодсистемы";
|
Описание.Имя = "СтандартныеПодсистемы";
|
||||||
Описание.Версия = "3.1.7.34";
|
Описание.Версия = "3.1.7.61";
|
||||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||||
|
|||||||
@@ -2385,8 +2385,8 @@
|
|||||||
Попытка
|
Попытка
|
||||||
|
|
||||||
Если РежимОбновленияДанных = "ПереходСДругойПрограммы" Тогда
|
Если РежимОбновленияДанных = "ПереходСДругойПрограммы" Тогда
|
||||||
ИтерацииОбновления = ИтерацииОбновления();
|
|
||||||
ПерейтиСДругойПрограммы(ИтерацииОбновления);
|
ПерейтиСДругойПрограммы(ИтерацииОбновления);
|
||||||
|
ИтерацииОбновления = ИтерацииОбновления();
|
||||||
|
|
||||||
РежимОбновленияДанных = РежимОбновленияДанных();
|
РежимОбновленияДанных = РежимОбновленияДанных();
|
||||||
ОперативноеОбновление = Ложь;
|
ОперативноеОбновление = Ложь;
|
||||||
|
|||||||
@@ -497,8 +497,11 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекущийСеанс = ПолучитьТекущийСеансИнформационнойБазы().ПолучитьФоновоеЗадание();
|
||||||
|
ЭтоФоновоеЗадание = (ТекущийСеанс <> Неопределено);
|
||||||
|
|
||||||
ТекстДляАсинхронногоВызова = "";
|
ТекстДляАсинхронногоВызова = "";
|
||||||
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() И ВФоне Тогда
|
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() И (ВФоне Или ЭтоФоновоеЗадание) Тогда
|
||||||
ТекстДляАсинхронногоВызова = НСтр("ru = 'Обновление параметров работы расширений после установки или
|
ТекстДляАсинхронногоВызова = НСтр("ru = 'Обновление параметров работы расширений после установки или
|
||||||
|удаления патчей завершилось с ошибкой.'")
|
|удаления патчей завершилось с ошибкой.'")
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -561,8 +564,12 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ОписанияНовыхПатчей(АдресХранилища, ТекущиеИсправления) Экспорт
|
Процедура ОписанияНовыхПатчей(АдресХранилища, ТекущиеИсправления, ДляОбновления = Ложь) Экспорт
|
||||||
Описания = Новый Массив;
|
Если ДляОбновления Тогда
|
||||||
|
Описания = Новый Соответствие;
|
||||||
|
Иначе
|
||||||
|
Описания = Новый Массив;
|
||||||
|
КонецЕсли;
|
||||||
Для Каждого Исправление Из ТекущиеИсправления Цикл
|
Для Каждого Исправление Из ТекущиеИсправления Цикл
|
||||||
Если Метаданные.ОбщиеМакеты.Найти(Исправление) = Неопределено Тогда
|
Если Метаданные.ОбщиеМакеты.Найти(Исправление) = Неопределено Тогда
|
||||||
Продолжить;
|
Продолжить;
|
||||||
@@ -583,12 +590,21 @@
|
|||||||
Строка = Макет.ПолучитьСтроку(НомерСтроки);
|
Строка = Макет.ПолучитьСтроку(НомерСтроки);
|
||||||
ОписаниеПатча = ОписаниеПатча + Символы.ПС + Строка;
|
ОписаниеПатча = ОписаниеПатча + Символы.ПС + Строка;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
Описания.Добавить(Исправление + ": " + ОписаниеПатча);
|
Если ДляОбновления Тогда
|
||||||
|
Описания.Вставить(Исправление, ОписаниеПатча);
|
||||||
|
Иначе
|
||||||
|
Описания.Добавить(Исправление + ": " + ОписаниеПатча);
|
||||||
|
КонецЕсли;
|
||||||
Прервать;
|
Прервать;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
ОписаниеСтрокой = СтрСоединить(Описания, Символы.ПС);
|
|
||||||
ПоместитьВоВременноеХранилище(ОписаниеСтрокой, АдресХранилища);
|
Если ДляОбновления Тогда
|
||||||
|
ПоместитьВоВременноеХранилище(Описания, АдресХранилища);
|
||||||
|
Иначе
|
||||||
|
ОписаниеСтрокой = СтрСоединить(Описания, Символы.ПС);
|
||||||
|
ПоместитьВоВременноеХранилище(ОписаниеСтрокой, АдресХранилища);
|
||||||
|
КонецЕсли;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Вызывается при завершении обновления конфигурации через COM-соединение.
|
// Вызывается при завершении обновления конфигурации через COM-соединение.
|
||||||
|
|||||||
@@ -299,14 +299,13 @@
|
|||||||
|
|
||||||
// Открывает форму со списком установленных исправлений.
|
// Открывает форму со списком установленных исправлений.
|
||||||
//
|
//
|
||||||
// Параметры:
|
Процедура ПоказатьУстановленныеИсправления(Параметры = Неопределено, РежимОткрытия = Неопределено) Экспорт
|
||||||
// Исправления - СписокЗначений - список имен установленных исправлений, которые необходимо отобразить.
|
|
||||||
// Если не указан, отображаются все исправления.
|
|
||||||
//
|
|
||||||
Процедура ПоказатьУстановленныеИсправления(Исправления = Неопределено) Экспорт
|
|
||||||
|
|
||||||
ПараметрыФормы = Новый Структура("Исправления", Исправления);
|
Если Параметры = Неопределено Тогда
|
||||||
ОткрытьФорму("ОбщаяФорма.УстановленныеИсправления", ПараметрыФормы);
|
Параметры = Новый Структура;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОткрытьФорму("ОбщаяФорма.УстановленныеИсправления", Параметры,,,,,, РежимОткрытия);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -43,11 +43,19 @@
|
|||||||
ВызватьИсключение НСтр("ru='Не указаны получатели сообщения'");
|
ВызватьИсключение НСтр("ru='Не указаны получатели сообщения'");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПолучателиПользователиИБ = ТипЗнч(Получатели[0]) = Тип("СправочникСсылка.Пользователи");
|
Если ТипЗнч(Получатели[0]) = Тип("СправочникСсылка.Пользователи") Тогда
|
||||||
Если ПолучателиПользователиИБ Тогда
|
ПолучателиПоСсылкам = ПользователиСистемыВзаимодействия(Получатели);
|
||||||
Получатели = ПользователиСистемыВзаимодействия(Получатели);
|
Получатели = Новый Массив;
|
||||||
|
Для Каждого КлючИЗначение Из ПолучателиПоСсылкам Цикл
|
||||||
|
Получатель = КлючИЗначение.Значение;
|
||||||
|
Если ТипЗнч(Получатель) = Тип("ПользовательСистемыВзаимодействия") Тогда
|
||||||
|
Получатели.Добавить(Получатель);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Получатели = Получатели; // Массив Из ПользовательСистемыВзаимодействия
|
||||||
|
|
||||||
Если ОбсуждениеКонтекст <> Неопределено
|
Если ОбсуждениеКонтекст <> Неопределено
|
||||||
И ТипЗнч(ОбсуждениеКонтекст) <> Тип("ИдентификаторОбсужденияСистемыВзаимодействия") Тогда
|
И ТипЗнч(ОбсуждениеКонтекст) <> Тип("ИдентификаторОбсужденияСистемыВзаимодействия") Тогда
|
||||||
|
|
||||||
@@ -77,7 +85,7 @@
|
|||||||
ИначеЕсли ОбсуждениеКонтекст = Неопределено Тогда
|
ИначеЕсли ОбсуждениеКонтекст = Неопределено Тогда
|
||||||
|
|
||||||
Если Получатели.Количество() = 1 Тогда
|
Если Получатели.Количество() = 1 Тогда
|
||||||
Участник = ЭлементСоответствия(Получатели, 0).Значение;
|
Участник = Получатели[0];
|
||||||
Обсуждение = НеГрупповоеОбсуждениеМеждуПользователями(Автор.Идентификатор, Участник.Идентификатор);
|
Обсуждение = НеГрупповоеОбсуждениеМеждуПользователями(Автор.Идентификатор, Участник.Идентификатор);
|
||||||
Иначе
|
Иначе
|
||||||
Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
|
Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
|
||||||
@@ -288,7 +296,7 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Соответствие из КлючИЗначение:
|
// Соответствие из КлючИЗначение:
|
||||||
// * Ключ - СправочникСсылка.Пользователи
|
// * Ключ - СправочникСсылка.Пользователи
|
||||||
// * Значение - см. ПользовательСистемыВзаимодействия
|
// * Значение - ПользовательСистемыВзаимодействия
|
||||||
//
|
//
|
||||||
Функция ПользователиСистемыВзаимодействия(ПользователиИнформационнойБазы) Экспорт
|
Функция ПользователиСистемыВзаимодействия(ПользователиИнформационнойБазы) Экспорт
|
||||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
|
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
|
||||||
@@ -381,11 +389,22 @@
|
|||||||
УстановитьПривилегированныйРежим(Ложь);
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
Исключение
|
Исключение
|
||||||
Ошибка = ИнформацияОбОшибке();
|
Ошибка = ИнформацияОбОшибке();
|
||||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ОписаниеОшибки = ?(Не ЗначениеЗаполнено(ОшибкаПолучениеИдентификатораСВ), "",
|
||||||
НСтр("ru='При создании пользователя %1 произошла ошибка.'"),
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
Пользователь);
|
НСтр("ru = 'При получении идентификатора пользователя системы взаимодействия
|
||||||
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС + ОшибкаПолучениеИдентификатораСВ
|
|для пользователя %1 (%2) произошла ошибка:
|
||||||
+ Символы.ПС + ПодробноеПредставлениеОшибки(Ошибка);
|
|%3'"),
|
||||||
|
Строка(Пользователь),
|
||||||
|
Строка(ИдентификаторПользователяИнформационнойБазы),
|
||||||
|
ОшибкаПолучениеИдентификатораСВ)
|
||||||
|
+ Символы.ПС + Символы.ПС);
|
||||||
|
ОписаниеОшибки = ОписаниеОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'При создании пользователя системы взаимодействия
|
||||||
|
|для пользователя %1 (%2) произошла ошибка:
|
||||||
|
|%3'"),
|
||||||
|
Строка(Пользователь),
|
||||||
|
Строка(ИдентификаторПользователяИнформационнойБазы),
|
||||||
|
ПодробноеПредставлениеОшибки(Ошибка));
|
||||||
ЗаписьЖурналаРегистрации(ОбсужденияСлужебный.СобытиеЖурналаРегистрации(),
|
ЗаписьЖурналаРегистрации(ОбсужденияСлужебный.СобытиеЖурналаРегистрации(),
|
||||||
УровеньЖурналаРегистрации.Ошибка,,,
|
УровеньЖурналаРегистрации.Ошибка,,,
|
||||||
ОписаниеОшибки);
|
ОписаниеОшибки);
|
||||||
@@ -492,16 +511,26 @@
|
|||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
Функция ЭтоОшибкаУстановкиСоединенияССерверомВзаимодействия(ИнформацияОбОшибке)
|
// Только для повышения производительности не должно влиять на функциональность,
|
||||||
|
// так как работает негарантированно.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ИнформацияОбОшибке - ИнформацияОбОшибке
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево
|
||||||
|
//
|
||||||
|
Функция ЭтоОшибкаУстановкиСоединенияССерверомВзаимодействия(ИнформацияОбОшибке) Экспорт
|
||||||
|
|
||||||
// Только для повышения производительности не влияет на функциональность.
|
СтрокиНаРазныхЯзыках = Новый Массив;
|
||||||
|
|
||||||
// АПК:1297-выкл - не локализуется, строки на других языках уже строго определены.
|
// АПК:1297-выкл - не локализуется, строки на других языках уже строго определены.
|
||||||
// АПК:1405-выкл - не локализуется, строки на других языках уже строго определены.
|
// АПК:1405-выкл - не локализуется, строки на других языках уже строго определены.
|
||||||
// АПК:1036-выкл - не локализуется, строки на других языках уже строго определены.
|
// АПК:1036-выкл - не локализуется, строки на других языках уже строго определены.
|
||||||
СтрокаНаРазныхЯзыках =
|
|
||||||
|
СтрокиНаРазныхЯзыках.Добавить(
|
||||||
"az = 'Qarşılıqlı fəaliyyət sistmei qeydə alınmayıb';
|
"az = 'Qarşılıqlı fəaliyyət sistmei qeydə alınmayıb';
|
||||||
|en = 'The collaboration system is not registered';
|
|en = 'The collaboration system is not registered';
|
||||||
|hy = 'Փոխազդեցության համակարգը գրանցված չէ';
|
|hy = 'Փոխազդեցության համակարգը գրանցված չէ';
|
||||||
@@ -522,21 +551,52 @@
|
|||||||
|ru = 'Система взаимодействия не зарегистрирована';
|
|ru = 'Система взаимодействия не зарегистрирована';
|
||||||
|tr = 'Etkileşim sistemine kayıtlı değil';
|
|tr = 'Etkileşim sistemine kayıtlı değil';
|
||||||
|uk = 'Система взаємодії не зареєстрована';
|
|uk = 'Система взаємодії не зареєстрована';
|
||||||
|fr = 'Le système d’interaction n’est pas enregistré'"; // @Non-NLS
|
|fr = 'Le système d’interaction n’est pas enregistré'"); // @Non-NLS
|
||||||
|
|
||||||
|
СтрокиНаРазныхЯзыках.Добавить(
|
||||||
|
"az = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|en = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|hy = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|bg = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|hu = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|vi = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|el = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|ka = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|el = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|it = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|kk = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|zh = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|lv = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|lt = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|de = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|pl = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|ro = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|ru = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|tr = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|uk = 'Невозможно установить соединение с сервером системы взаимодействия';
|
||||||
|
|fr = 'Невозможно установить соединение с сервером системы взаимодействия'"); // @Non-NLS
|
||||||
|
|
||||||
// АПК:1036-вкл
|
// АПК:1036-вкл
|
||||||
// АПК:1405-вкл
|
// АПК:1405-вкл
|
||||||
// АПК:1297-вкл
|
// АПК:1297-вкл
|
||||||
|
|
||||||
//@skip-check bsl-nstr-string-literal-format
|
Для Каждого СтрокаНаРазныхЯзыках Из СтрокиНаРазныхЯзыках Цикл
|
||||||
СтрокаПоиска = НСтр(СтрокаНаРазныхЯзыках);
|
//@skip-check bsl-nstr-string-literal-format
|
||||||
Если Не ЗначениеЗаполнено(СтрокаПоиска) Тогда
|
СтрокаПоиска = НСтр(СтрокаНаРазныхЯзыках);
|
||||||
Возврат Ложь;
|
Если ЗначениеЗаполнено(СтрокаПоиска)
|
||||||
КонецЕсли;
|
И СтрНачинаетсяС(КраткоеПредставлениеОшибки(ИнформацияОбОшибке), СтрокаПоиска) Тогда
|
||||||
|
Возврат Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат СтрНачинаетсяС(КраткоеПредставлениеОшибки(ИнформацияОбОшибке), СтрокаПоиска);
|
Возврат Ложь;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
Процедура ОбновитьОписаниеПользователяВСистемеВзаимодействия(ПользовательСВ, ОписаниеПользователя)
|
Процедура ОбновитьОписаниеПользователяВСистемеВзаимодействия(ПользовательСВ, ОписаниеПользователя)
|
||||||
|
|
||||||
Фотография = ОписаниеПользователя.Фотография;
|
Фотография = ОписаниеПользователя.Фотография;
|
||||||
@@ -585,9 +645,9 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ПолучателиПриемник - КоллекцияИдентификаторовПользователейСистемыВзаимодействия
|
// ПолучателиПриемник - КоллекцияИдентификаторовПользователейСистемыВзаимодействия
|
||||||
// ПолучателиИсточник - Массив из СправочникСсылка.Пользователи
|
// ПолучателиИсточник - КоллекцияИдентификаторовПользователейСистемыВзаимодействия
|
||||||
// - Массив из ПользовательСистемыВзаимодействия
|
// - Массив из ПользовательСистемыВзаимодействия
|
||||||
//
|
//
|
||||||
Процедура ДобавитьПолучателей(ПолучателиПриемник, ПолучателиИсточник)
|
Процедура ДобавитьПолучателей(ПолучателиПриемник, ПолучателиИсточник)
|
||||||
|
|
||||||
@@ -595,42 +655,15 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПолучателиПользователиИБ = (ТипЗнч(ПолучателиИсточник[0]) = Тип("СправочникСсылка.Пользователи"));
|
Для Каждого Получатель Из ПолучателиИсточник Цикл
|
||||||
Если ПолучателиПользователиИБ Тогда
|
Если ТипЗнч(Получатель) = Тип("ИдентификаторПользователяСистемыВзаимодействия") Тогда
|
||||||
Для каждого Получатель Из ПолучателиИсточник Цикл
|
ПолучателиПриемник.Добавить(Получатель);
|
||||||
|
ИначеЕсли ТипЗнч(Получатель) = Тип("ПользовательСистемыВзаимодействия") Тогда
|
||||||
Если Получатель.Значение <> Неопределено Тогда
|
ПолучателиПриемник.Добавить(Получатель.Идентификатор);
|
||||||
ПолучателиПриемник.Добавить(Получатель.Значение.Идентификатор);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Иначе
|
|
||||||
Для каждого Получатель Из ПолучателиИсточник Цикл // ИдентификаторПользователяСистемыВзаимодействия, ПользовательСистемыВзаимодействия
|
|
||||||
Если ТипЗнч(Получатель) = Тип("ИдентификаторПользователяСистемыВзаимодействия") Тогда
|
|
||||||
ПолучателиПриемник.Добавить(Получатель);
|
|
||||||
Иначе
|
|
||||||
ПолучателиПриемник.Добавить(Получатель.Идентификатор);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Функция ЭлементСоответствия(Соответствие, Индекс)
|
|
||||||
|
|
||||||
Сч = 0;
|
|
||||||
Для каждого КлючЗначение Из Соответствие Цикл
|
|
||||||
Если Сч = Индекс Тогда
|
|
||||||
Возврат КлючЗначение;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Сч = Сч + 1;
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат Неопределено;
|
КонецПроцедуры
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Автор - ИдентификаторПользователяСистемыВзаимодействия
|
// Автор - ИдентификаторПользователяСистемыВзаимодействия
|
||||||
|
|||||||
@@ -1665,7 +1665,7 @@
|
|||||||
Функция АдресЭлектроннойПочтыСоответствуетТребованиям(Знач Адрес, РазрешитьЛокальныеАдреса = Ложь) Экспорт
|
Функция АдресЭлектроннойПочтыСоответствуетТребованиям(Знач Адрес, РазрешитьЛокальныеАдреса = Ложь) Экспорт
|
||||||
|
|
||||||
// Допустимые символы для email.
|
// Допустимые символы для email.
|
||||||
Буквы = "abcdefghijklmnopqrstuvwxyz";
|
Буквы = "abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
|
||||||
Цифры = "0123456789";
|
Цифры = "0123456789";
|
||||||
СпецСимволы = ".@_-:+";
|
СпецСимволы = ".@_-:+";
|
||||||
|
|
||||||
@@ -2204,7 +2204,22 @@
|
|||||||
// Расписание - РасписаниеРегламентногоЗадания - исходное расписание.
|
// Расписание - РасписаниеРегламентногоЗадания - исходное расписание.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Структура - расписание в виде структуры.
|
// Структура:
|
||||||
|
// * ВремяЗавершения - Дата
|
||||||
|
// * ВремяКонца - Дата
|
||||||
|
// * ВремяНачала - Дата
|
||||||
|
// * ДатаКонца - Дата
|
||||||
|
// * ДатаНачала - Дата
|
||||||
|
// * ДеньВМесяце - Дата
|
||||||
|
// * ДеньНеделиВМесяце - Число
|
||||||
|
// * ДниНедели - Число
|
||||||
|
// * ИнтервалЗавершения - Число
|
||||||
|
// * Месяцы - Массив из Число
|
||||||
|
// * ПаузаПовтора - Число
|
||||||
|
// * ПериодНедель - Число
|
||||||
|
// * ПериодПовтораВТечениеДня - Число
|
||||||
|
// * ПериодПовтораДней - Число
|
||||||
|
// * ДетальныеРасписанияДня - Массив из см. РасписаниеВСтруктуру
|
||||||
//
|
//
|
||||||
Функция РасписаниеВСтруктуру(Знач Расписание) Экспорт
|
Функция РасписаниеВСтруктуру(Знач Расписание) Экспорт
|
||||||
|
|
||||||
@@ -3406,11 +3421,13 @@
|
|||||||
// Строка - код языка.
|
// Строка - код языка.
|
||||||
//
|
//
|
||||||
Функция КодОсновногоЯзыка() Экспорт
|
Функция КодОсновногоЯзыка() Экспорт
|
||||||
#Если НЕ ТонкийКлиент И НЕ ВебКлиент И НЕ МобильныйКлиент Тогда
|
|
||||||
Возврат Метаданные.ОсновнойЯзык.КодЯзыка;
|
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||||
|
Возврат ОбщегоНазначения.КодОсновногоЯзыка();
|
||||||
#Иначе
|
#Иначе
|
||||||
Возврат СтандартныеПодсистемыКлиент.ПараметрКлиента("КодОсновногоЯзыка");
|
Возврат СтандартныеПодсистемыКлиент.ПараметрКлиента("КодОсновногоЯзыка");
|
||||||
#КонецЕсли
|
#КонецЕсли
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Устарела. Следует использовать ОбщегоНазначенияКлиент.ПредставлениеЛокальнойДатыСоСмещением
|
// Устарела. Следует использовать ОбщегоНазначенияКлиент.ПредставлениеЛокальнойДатыСоСмещением
|
||||||
|
|||||||
@@ -895,6 +895,11 @@
|
|||||||
Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) И Подменю.Вид = ВидГруппыФормы.Подменю Тогда
|
Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) И Подменю.Вид = ВидГруппыФормы.Подменю Тогда
|
||||||
КомандаФормы.Картинка = Подменю.Картинка;
|
КомандаФормы.Картинка = Подменю.Картинка;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) Тогда
|
||||||
|
КомандаФормы.Картинка = СведенияОПодменю.КартинкаПодменю;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если СтрДлина(КомандаФормы.Заголовок) <= 35 И Подменю.Отображение <> ОтображениеКнопки.Картинка Тогда
|
Если СтрДлина(КомандаФормы.Заголовок) <= 35 И Подменю.Отображение <> ОтображениеКнопки.Картинка Тогда
|
||||||
КомандаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст;
|
КомандаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст;
|
||||||
Иначе
|
Иначе
|
||||||
@@ -953,6 +958,7 @@
|
|||||||
// * ГруппаПоУмолчанию - ГруппаФормы
|
// * ГруппаПоУмолчанию - ГруппаФормы
|
||||||
// * ПоследняяКоманда - КомандаФормы
|
// * ПоследняяКоманда - КомандаФормы
|
||||||
// * КомандыСУсловиямиВидимости - Массив
|
// * КомандыСУсловиямиВидимости - Массив
|
||||||
|
// * КартинкаПодменю - Картинка
|
||||||
//
|
//
|
||||||
Функция СведенияОВсехПодменю()
|
Функция СведенияОВсехПодменю()
|
||||||
|
|
||||||
@@ -965,6 +971,7 @@
|
|||||||
СведенияОВсехПодменю.Колонки.Добавить("ГруппаПоУмолчанию");
|
СведенияОВсехПодменю.Колонки.Добавить("ГруппаПоУмолчанию");
|
||||||
СведенияОВсехПодменю.Колонки.Добавить("ПоследняяКоманда");
|
СведенияОВсехПодменю.Колонки.Добавить("ПоследняяКоманда");
|
||||||
СведенияОВсехПодменю.Колонки.Добавить("КомандыСУсловиямиВидимости", Новый ОписаниеТипов("Массив"));
|
СведенияОВсехПодменю.Колонки.Добавить("КомандыСУсловиямиВидимости", Новый ОписаниеТипов("Массив"));
|
||||||
|
СведенияОВсехПодменю.Колонки.Добавить("КартинкаПодменю");
|
||||||
|
|
||||||
Возврат СведенияОВсехПодменю;
|
Возврат СведенияОВсехПодменю;
|
||||||
|
|
||||||
@@ -1104,6 +1111,7 @@
|
|||||||
Функция ЗарегистрироватьПодменю(Элементы, СведенияОВсехПодменю, ИмяПодменю, ШаблонНового = Неопределено, КоманднаяПанель = Неопределено, ПодменюПоУмолчанию = Неопределено)
|
Функция ЗарегистрироватьПодменю(Элементы, СведенияОВсехПодменю, ИмяПодменю, ШаблонНового = Неопределено, КоманднаяПанель = Неопределено, ПодменюПоУмолчанию = Неопределено)
|
||||||
ВыведеноКоманд = 0;
|
ВыведеноКоманд = 0;
|
||||||
Группы = Новый Структура;
|
Группы = Новый Структура;
|
||||||
|
КартинкаПодменю = Неопределено;
|
||||||
Если ЗначениеЗаполнено(ИмяПодменю) Тогда
|
Если ЗначениеЗаполнено(ИмяПодменю) Тогда
|
||||||
Подменю = Элементы.Найти(ИмяПодменю);
|
Подменю = Элементы.Найти(ИмяПодменю);
|
||||||
Если Подменю = Неопределено Тогда
|
Если Подменю = Неопределено Тогда
|
||||||
@@ -1115,10 +1123,18 @@
|
|||||||
Подменю.Заголовок = ШаблонНового.Заголовок;
|
Подменю.Заголовок = ШаблонНового.Заголовок;
|
||||||
Если Подменю.Вид = ВидГруппыФормы.Подменю Тогда
|
Если Подменю.Вид = ВидГруппыФормы.Подменю Тогда
|
||||||
Подменю.Картинка = ШаблонНового.Картинка;
|
Подменю.Картинка = ШаблонНового.Картинка;
|
||||||
|
КартинкаПодменю = Подменю.Картинка;
|
||||||
Подменю.Отображение = ШаблонНового.Отображение;
|
Подменю.Отображение = ШаблонНового.Отображение;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
ГруппаПоУмолчанию = Подменю;
|
ГруппаПоУмолчанию = Подменю;
|
||||||
|
Если Подменю.Вид = ВидГруппыФормы.Подменю Тогда
|
||||||
|
КартинкаПодменю = Подменю.Картинка;
|
||||||
|
ИначеЕсли ШаблонНового <> Неопределено Тогда
|
||||||
|
КартинкаПодменю = ШаблонНового.Картинка;
|
||||||
|
ИначеЕсли ПодменюПоУмолчанию <> Неопределено Тогда
|
||||||
|
КартинкаПодменю = ПодменюПоУмолчанию.КартинкаПодменю;
|
||||||
|
КонецЕсли;
|
||||||
ВыведеноКоманд = КоличествоКомандВГруппе(ГруппаПоУмолчанию);
|
ВыведеноКоманд = КоличествоКомандВГруппе(ГруппаПоУмолчанию);
|
||||||
Для Каждого Группа Из Подменю.ПодчиненныеЭлементы Цикл
|
Для Каждого Группа Из Подменю.ПодчиненныеЭлементы Цикл
|
||||||
Если ТипЗнч(Группа) <> Тип("ГруппаФормы") Тогда
|
Если ТипЗнч(Группа) <> Тип("ГруппаФормы") Тогда
|
||||||
@@ -1171,6 +1187,7 @@
|
|||||||
Результат.ГруппаПоУмолчанию = ГруппаПоУмолчанию;
|
Результат.ГруппаПоУмолчанию = ГруппаПоУмолчанию;
|
||||||
Результат.Группы = Группы;
|
Результат.Группы = Группы;
|
||||||
Результат.ВыведеноКоманд = ВыведеноКоманд;
|
Результат.ВыведеноКоманд = ВыведеноКоманд;
|
||||||
|
Результат.КартинкаПодменю = КартинкаПодменю;
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -1249,7 +1266,7 @@
|
|||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИдентификаторОбъектаМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданныхПоставщика);
|
ИдентификаторОбъектаМетаданных = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОбъектМетаданныхПоставщика, Ложь);
|
||||||
Если ТипЗнч(ИдентификаторОбъектаМетаданных) <> Отбор Тогда
|
Если ТипЗнч(ИдентификаторОбъектаМетаданных) <> Отбор Тогда
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -4870,6 +4870,8 @@
|
|||||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВладелецКИ);
|
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВладелецКИ);
|
||||||
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
|
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
|
||||||
|
|
||||||
|
ПочтаДляВосстановленияПароля = "";
|
||||||
|
|
||||||
НачатьТранзакцию();
|
НачатьТранзакцию();
|
||||||
Попытка
|
Попытка
|
||||||
|
|
||||||
@@ -4882,7 +4884,6 @@
|
|||||||
|
|
||||||
СтрокаСПочтой = КонтактнаяИнформацияПользователя[0];
|
СтрокаСПочтой = КонтактнаяИнформацияПользователя[0];
|
||||||
|
|
||||||
ПочтаДляВосстановленияПароля = "";
|
|
||||||
Если ЗначениеЗаполнено(СтрокаСПочтой.Значение) Тогда
|
Если ЗначениеЗаполнено(СтрокаСПочтой.Значение) Тогда
|
||||||
ПочтаДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.АдресЭлектроннойПочты(СтрокаСПочтой.Значение);
|
ПочтаДляВосстановленияПароля = МодульУправлениеКонтактнойИнформацией.АдресЭлектроннойПочты(СтрокаСПочтой.Значение);
|
||||||
Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(ПочтаДляВосстановленияПароля) Тогда
|
Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(ПочтаДляВосстановленияПароля) Тогда
|
||||||
@@ -4929,6 +4930,14 @@
|
|||||||
|
|
||||||
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
|
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
|
||||||
Метаданные.Справочники.Пользователи, ПользовательСсылка, ТекстСообщения);
|
Метаданные.Справочники.Пользователи, ПользовательСсылка, ТекстСообщения);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ПочтаДляВосстановленияПароля)
|
||||||
|
И СтрНайти(ТекстСообщения, ПочтаДляВосстановленияПароля) > 0 Тогда
|
||||||
|
Уточнение = НСтр("ru = 'Адрес электронной почты %1 занят другим пользователем и не может быть использован для восстановления пароля.'");
|
||||||
|
Уточнение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Уточнение, ПочтаДляВосстановленияПароля);
|
||||||
|
ОбновлениеИнформационнойБазы.ЗарегистрироватьПроблемуСДанными(ПользовательСсылка, Уточнение);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|||||||
@@ -1709,7 +1709,7 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПоясненияПоОшибке(ТекстОшибки, Знач КодЯзыка = Неопределено) Экспорт
|
Функция ПоясненияПоОшибке(ТекстОшибки, Знач КодЯзыка = Неопределено, ДляПомощникаНастройки = Ложь) Экспорт
|
||||||
|
|
||||||
Если КодЯзыка = Неопределено Тогда
|
Если КодЯзыка = Неопределено Тогда
|
||||||
КодЯзыка = ТекущийЯзык().КодЯзыка;
|
КодЯзыка = ТекущийЯзык().КодЯзыка;
|
||||||
@@ -1773,9 +1773,14 @@
|
|||||||
СпособыУстранения.Добавить(НСтр("ru = 'Проверьте подключение к Интернету.'"));
|
СпособыУстранения.Добавить(НСтр("ru = 'Проверьте подключение к Интернету.'"));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СпособыУстранения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
Если ДляПомощникаНастройки Тогда
|
||||||
"ru = 'Попробуйте перенастроить почту (кнопка <a href=\""%1\"">Перенастроить</a> в настройках почты).'"),
|
СпособыУстранения.Добавить(НСтр("ru = 'Проверьте введенные настройки.'"));
|
||||||
"Перенастроить"));
|
Иначе
|
||||||
|
СпособыУстранения.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||||
|
"ru = 'Попробуйте перенастроить почту (кнопка <a href=\""%1\"">Перенастроить</a> в настройках почты).'"),
|
||||||
|
"Перенастроить"));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
СпособыУстранения.Добавить(НСтр("ru = 'Обратитесь к администратору локальной сети.'"));
|
СпособыУстранения.Добавить(НСтр("ru = 'Обратитесь к администратору локальной сети.'"));
|
||||||
СпособыУстранения.Добавить(НСтр("ru = 'Обратитесь к администратору почтового сервера.'"));
|
СпособыУстранения.Добавить(НСтр("ru = 'Обратитесь к администратору почтового сервера.'"));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -876,7 +876,7 @@
|
|||||||
|
|
||||||
#Если ВебКлиент Тогда
|
#Если ВебКлиент Тогда
|
||||||
Если ПараметрыВыполнения.ДанныеФайла.Расширение <> "mxl" Тогда
|
Если ПараметрыВыполнения.ДанныеФайла.Расширение <> "mxl" Тогда
|
||||||
Текст = НСтр("ru = 'Сохраните файл на компьютер, после чего распечатать его при помощи приложения, предназначенного для работы с данным файлом.'");
|
Текст = НСтр("ru = 'Сохраните файл на компьютер, после чего распечатайте его при помощи приложения, предназначенного для работы с данным файлом.'");
|
||||||
ПоказатьПредупреждение(, Текст);
|
ПоказатьПредупреждение(, Текст);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -10503,7 +10503,8 @@
|
|||||||
Процедура ВыбратьРежимИРедактироватьФайл(ОбработчикРезультата, ДанныеФайла, ДоступностьКомандыРедактировать) Экспорт
|
Процедура ВыбратьРежимИРедактироватьФайл(ОбработчикРезультата, ДанныеФайла, ДоступностьКомандыРедактировать) Экспорт
|
||||||
|
|
||||||
ПерсональныеНастройки = ПерсональныеНастройкиРаботыСФайлами();
|
ПерсональныеНастройки = ПерсональныеНастройкиРаботыСФайлами();
|
||||||
РезультатОткрыть = ПерсональныеНастройки.ВариантОткрытияФайла;
|
РезультатОткрыть = ?(ДанныеФайла.ФайлРедактируетТекущийПользователь И ДоступностьКомандыРедактировать,
|
||||||
|
"Редактировать", ПерсональныеНастройки.ВариантОткрытияФайла);
|
||||||
|
|
||||||
СпособОткрытия = ПерсональныеНастройки.ТекстовыеФайлыСпособОткрытия;
|
СпособОткрытия = ПерсональныеНастройки.ТекстовыеФайлыСпособОткрытия;
|
||||||
Если СпособОткрытия = ПредопределенноеЗначение("Перечисление.СпособыОткрытияФайлаНаПросмотр.ВоВстроенномРедакторе") Тогда
|
Если СпособОткрытия = ПредопределенноеЗначение("Перечисление.СпособыОткрытияФайлаНаПросмотр.ВоВстроенномРедакторе") Тогда
|
||||||
|
|||||||
@@ -368,8 +368,8 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Отчеты отправлены ''%1'' (%2) от %3. %4'"),
|
НСтр("ru = 'Отчеты отправлены ''%1'' от %2. %3'"),
|
||||||
ПредставлениеПолучателя, АдресПолучателя, ПредставлениеОтправителя, ДополнительныеСведения);
|
ПредставлениеПолучателя, ПредставлениеОтправителя, ДополнительныеСведения);
|
||||||
|
|
||||||
ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения);
|
ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения);
|
||||||
Исключение
|
Исключение
|
||||||
@@ -396,6 +396,26 @@
|
|||||||
// Доставка.
|
// Доставка.
|
||||||
Если ВыполнитьДоставку(ПараметрыЖурнала, ПараметрыДоставки, ОбщиеВложения) Тогда
|
Если ВыполнитьДоставку(ПараметрыЖурнала, ПараметрыДоставки, ОбщиеВложения) Тогда
|
||||||
РассылкаВыполнена = Истина;
|
РассылкаВыполнена = Истина;
|
||||||
|
|
||||||
|
Если ПараметрыДоставки.Получатели <> Неопределено Тогда
|
||||||
|
ПредставлениеПолучателя = Новый Массив;
|
||||||
|
Для каждого ПолучательРассылки Из ПараметрыДоставки.Получатели Цикл
|
||||||
|
ПредставлениеПолучателя.Добавить(Строка(ПолучательРассылки.Ключ) + " (" + ПолучательРассылки.Значение + ")");
|
||||||
|
КонецЦикла;
|
||||||
|
ПредставлениеПолучателя = СтрСоединить(ПредставлениеПолучателя, Символы.ПС);
|
||||||
|
|
||||||
|
ДополнительныеСведения = "";
|
||||||
|
Если ОтправлятьСкрытыеКопииОтправителю Тогда
|
||||||
|
ДополнительныеСведения = НСтр("ru = 'Копия направлена отправителю.'");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Отчеты отправлены %1 получателям от %2. %3
|
||||||
|
|%4'"),
|
||||||
|
ПараметрыДоставки.Получатели.Количество(), ПредставлениеОтправителя,
|
||||||
|
ДополнительныеСведения, ПредставлениеПолучателя);
|
||||||
|
ЗаписьЖурнала(ПараметрыЖурнала,, ТекстСообщения);
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,10 @@
|
|||||||
|
|
||||||
// Исключаемые отчеты используются в качестве исключающего фильтра при выборе отчетов.
|
// Исключаемые отчеты используются в качестве исключающего фильтра при выборе отчетов.
|
||||||
Функция ИсключаемыеОтчеты() Экспорт
|
Функция ИсключаемыеОтчеты() Экспорт
|
||||||
|
|
||||||
МассивМетаданных = Новый Массив;
|
МассивМетаданных = Новый Массив;
|
||||||
|
|
||||||
|
ИнтеграцияПодсистемБСП.ПриОпределенииИсключаемыхОтчетов(МассивМетаданных);
|
||||||
РассылкаОтчетовПереопределяемый.ОпределитьИсключаемыеОтчеты(МассивМетаданных);
|
РассылкаОтчетовПереопределяемый.ОпределитьИсключаемыеОтчеты(МассивМетаданных);
|
||||||
|
|
||||||
Результат = Новый Массив;
|
Результат = Новый Массив;
|
||||||
@@ -68,6 +71,7 @@
|
|||||||
ИсключаемыеОтчеты = Новый ФиксированныйМассив(Результат);
|
ИсключаемыеОтчеты = Новый ФиксированныйМассив(Результат);
|
||||||
|
|
||||||
Возврат ИсключаемыеОтчеты;
|
Возврат ИсключаемыеОтчеты;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -1051,22 +1051,14 @@
|
|||||||
Если Задание <> Неопределено Тогда
|
Если Задание <> Неопределено Тогда
|
||||||
ЕстьИзменения = Ложь;
|
ЕстьИзменения = Ложь;
|
||||||
|
|
||||||
ОбновитьЗначениеСвойстваЗадания(Задание,
|
ОбновитьЗначениеСвойстваЗадания(Задание, "Наименование", Параметры, ЕстьИзменения);
|
||||||
"Наименование", Параметры, ЕстьИзменения);
|
ОбновитьЗначениеСвойстваЗадания(Задание, "Использование", Параметры, ЕстьИзменения);
|
||||||
ОбновитьЗначениеСвойстваЗадания(Задание,
|
ОбновитьЗначениеСвойстваЗадания(Задание, "Ключ", Параметры, ЕстьИзменения);
|
||||||
"Использование", Параметры, ЕстьИзменения);
|
ОбновитьЗначениеСвойстваЗадания(Задание, "ИмяПользователя", Параметры, ЕстьИзменения);
|
||||||
ОбновитьЗначениеСвойстваЗадания(Задание,
|
ОбновитьЗначениеСвойстваЗадания(Задание, "ИнтервалПовтораПриАварийномЗавершении", Параметры, ЕстьИзменения);
|
||||||
"Ключ", Параметры, ЕстьИзменения);
|
ОбновитьЗначениеСвойстваЗадания(Задание, "КоличествоПовторовПриАварийномЗавершении", Параметры, ЕстьИзменения);
|
||||||
ОбновитьЗначениеСвойстваЗадания(Задание,
|
ОбновитьЗначениеСвойстваЗадания(Задание, "Параметры", Параметры, ЕстьИзменения);
|
||||||
"ИмяПользователя", Параметры, ЕстьИзменения);
|
ОбновитьЗначениеСвойстваЗадания(Задание, "Расписание", Параметры, ЕстьИзменения);
|
||||||
ОбновитьЗначениеСвойстваЗадания(Задание,
|
|
||||||
"ИнтервалПовтораПриАварийномЗавершении", Параметры, ЕстьИзменения);
|
|
||||||
ОбновитьЗначениеСвойстваЗадания(Задание,
|
|
||||||
"КоличествоПовторовПриАварийномЗавершении", Параметры, ЕстьИзменения);
|
|
||||||
ОбновитьЗначениеСвойстваЗадания(Задание,
|
|
||||||
"Параметры", Параметры, ЕстьИзменения);
|
|
||||||
ОбновитьЗначениеСвойстваЗадания(Задание,
|
|
||||||
"Расписание", Параметры, ЕстьИзменения);
|
|
||||||
|
|
||||||
Если ЕстьИзменения Тогда
|
Если ЕстьИзменения Тогда
|
||||||
Задание.Записать();
|
Задание.Записать();
|
||||||
@@ -1167,7 +1159,13 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Задание[ИмяСвойства] = ПараметрыЗадания[ИмяСвойства];
|
Если ТипЗнч(Задание[ИмяСвойства]) = Тип("РасписаниеРегламентногоЗадания")
|
||||||
|
И ТипЗнч(ПараметрыЗадания[ИмяСвойства]) = Тип("Структура") Тогда
|
||||||
|
ЗаполнитьЗначенияСвойств(Задание[ИмяСвойства], ПараметрыЗадания[ИмяСвойства]);
|
||||||
|
Иначе
|
||||||
|
Задание[ИмяСвойства] = ПараметрыЗадания[ИмяСвойства];
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ЕстьИзменения = Истина;
|
ЕстьИзменения = Истина;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -1495,6 +1495,22 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция УровеньЖурналаРегистрацииОшибкиСВ(ИнформацияОбОшибке)
|
||||||
|
|
||||||
|
УровеньЖурнала = УровеньЖурналаРегистрации.Ошибка;
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Обсуждения") Тогда
|
||||||
|
Возврат УровеньЖурнала;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МодульОбсуждения = ОбщегоНазначения.ОбщийМодуль("Обсуждения");
|
||||||
|
Если МодульОбсуждения.ЭтоОшибкаУстановкиСоединенияССерверомВзаимодействия(ИнформацияОбОшибке) Тогда
|
||||||
|
УровеньЖурнала = УровеньЖурналаРегистрации.Предупреждение;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат УровеньЖурнала;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Служебный - Булево - если Истина и имя текущего пользователя пустое,
|
// Служебный - Булево - если Истина и имя текущего пользователя пустое,
|
||||||
// тогда создать служебного пользователя и установить регламентному заданию.
|
// тогда создать служебного пользователя и установить регламентному заданию.
|
||||||
@@ -1531,7 +1547,7 @@
|
|||||||
ЗаписьЖурналаРегистрации(
|
ЗаписьЖурналаРегистрации(
|
||||||
НСтр("ru = 'Серверные оповещения.Ошибка регистрации пользователя в системе взаимодействия'",
|
НСтр("ru = 'Серверные оповещения.Ошибка регистрации пользователя в системе взаимодействия'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка()),
|
ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||||
УровеньЖурналаРегистрации.Ошибка,,,
|
УровеньЖурналаРегистрацииОшибкиСВ(ИнформацияОбОшибке),,,
|
||||||
ТекстОшибки);
|
ТекстОшибки);
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
@@ -1621,38 +1637,60 @@
|
|||||||
|
|
||||||
Функция ИдентификаторЛичногоОбсуждения(ИдентификаторПользователяИБ = Неопределено)
|
Функция ИдентификаторЛичногоОбсуждения(ИдентификаторПользователяИБ = Неопределено)
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
Если ИдентификаторПользователяИБ = Неопределено Тогда
|
Если ИдентификаторПользователяИБ = Неопределено Тогда
|
||||||
ИдентификаторПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
|
УникальныйИдентификатор = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
|
||||||
|
Иначе
|
||||||
|
УникальныйИдентификатор = ИдентификаторПользователяИБ;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КлючЛичногоОбсуждения = "СерверныеОповещения" + "_" + НРег(ИдентификаторПользователяИБ);
|
КлючЛичногоОбсуждения = "СерверныеОповещения" + "_" + НРег(УникальныйИдентификатор);
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
ИдентификаторТекущегоПользователя = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
|
ОбновлятьУчастниковОбсуждения = Ложь;
|
||||||
Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(КлючЛичногоОбсуждения);
|
Если ИдентификаторПользователяИБ = Неопределено Тогда
|
||||||
Создано = Ложь;
|
ИдентификаторТекущегоПользователя = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
|
||||||
Если Обсуждение = Неопределено Тогда
|
ОбновлятьУчастниковОбсуждения = Истина;
|
||||||
Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
|
Иначе
|
||||||
Обсуждение.Отображаемое = Ложь;
|
|
||||||
Обсуждение.Ключ = КлючЛичногоОбсуждения;
|
|
||||||
Обсуждение.Участники.Добавить(ИдентификаторТекущегоПользователя);
|
|
||||||
Попытка
|
Попытка
|
||||||
Обсуждение.Записать();
|
ИдентификаторТекущегоПользователя = СистемаВзаимодействия.ПолучитьИдентификаторПользователя(УникальныйИдентификатор);
|
||||||
Создано = Истина;
|
ОбновлятьУчастниковОбсуждения = Истина;
|
||||||
Исключение
|
Исключение
|
||||||
Создано = Ложь;
|
ИдентификаторТекущегоПользователя = СистемаВзаимодействия.ИдентификаторТекущегоПользователя();
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
Если Не Создано Тогда
|
|
||||||
СуществующееОбсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(КлючЛичногоОбсуждения);
|
|
||||||
Если СуществующееОбсуждение <> Неопределено Тогда
|
|
||||||
Обсуждение = СуществующееОбсуждение;
|
|
||||||
Иначе
|
|
||||||
Обсуждение.Записать();
|
|
||||||
Создано = Истина;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Если Не Создано И Обсуждение.Отображаемое Тогда
|
НомерПопытки = 1;
|
||||||
|
Создано = Ложь;
|
||||||
|
Пока Истина Цикл
|
||||||
|
Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(КлючЛичногоОбсуждения);
|
||||||
|
Если Обсуждение <> Неопределено Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
НовоеОбсуждение = СистемаВзаимодействия.СоздатьОбсуждение();
|
||||||
|
НовоеОбсуждение.Отображаемое = Ложь;
|
||||||
|
НовоеОбсуждение.Ключ = КлючЛичногоОбсуждения;
|
||||||
|
НовоеОбсуждение.Участники.Добавить(ИдентификаторТекущегоПользователя);
|
||||||
|
Попытка
|
||||||
|
НовоеОбсуждение.Записать();
|
||||||
|
Обсуждение = НовоеОбсуждение;
|
||||||
|
Создано = Истина;
|
||||||
|
Прервать;
|
||||||
|
Исключение
|
||||||
|
НомерПопытки = НомерПопытки + 1;
|
||||||
|
Если НомерПопытки > 10 Тогда
|
||||||
|
ВызватьИсключение;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПопытки;
|
||||||
|
КонецЦикла;
|
||||||
|
Если Не Создано
|
||||||
|
И (Обсуждение.Отображаемое
|
||||||
|
Или ОбновлятьУчастниковОбсуждения
|
||||||
|
И (Обсуждение.Участники.Количество() <> 1
|
||||||
|
Или Не Обсуждение.Участники.Содержит(ИдентификаторТекущегоПользователя))) Тогда
|
||||||
Обсуждение.Отображаемое = Ложь;
|
Обсуждение.Отображаемое = Ложь;
|
||||||
|
Если ОбновлятьУчастниковОбсуждения Тогда
|
||||||
|
Обсуждение.Участники.Очистить();
|
||||||
|
Обсуждение.Участники.Добавить(ИдентификаторТекущегоПользователя);
|
||||||
|
КонецЕсли;
|
||||||
Обсуждение.Записать();
|
Обсуждение.Записать();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Исключение
|
Исключение
|
||||||
@@ -1666,9 +1704,10 @@
|
|||||||
ЗаписьЖурналаРегистрации(
|
ЗаписьЖурналаРегистрации(
|
||||||
НСтр("ru = 'Серверные оповещения.Ошибка создания личного обсуждения'",
|
НСтр("ru = 'Серверные оповещения.Ошибка создания личного обсуждения'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка()),
|
ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||||
УровеньЖурналаРегистрации.Ошибка,,, ТекстОшибки);
|
УровеньЖурналаРегистрацииОшибкиСВ(ИнформацияОбОшибке),,, ТекстОшибки);
|
||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
|
||||||
Возврат Обсуждение.Идентификатор;
|
Возврат Обсуждение.Идентификатор;
|
||||||
|
|
||||||
@@ -1678,6 +1717,7 @@
|
|||||||
|
|
||||||
КлючОбщегоОбсуждения = "СерверныеОповещения";
|
КлючОбщегоОбсуждения = "СерверныеОповещения";
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
Попытка
|
Попытка
|
||||||
Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(КлючОбщегоОбсуждения);
|
Обсуждение = СистемаВзаимодействия.ПолучитьОбсуждение(КлючОбщегоОбсуждения);
|
||||||
Создано = Ложь;
|
Создано = Ложь;
|
||||||
@@ -1711,10 +1751,11 @@
|
|||||||
ЗаписьЖурналаРегистрации(
|
ЗаписьЖурналаРегистрации(
|
||||||
НСтр("ru = 'Серверные оповещения.Ошибка создания общего обсуждения'",
|
НСтр("ru = 'Серверные оповещения.Ошибка создания общего обсуждения'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка()),
|
ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||||
УровеньЖурналаРегистрации.Ошибка,,,
|
УровеньЖурналаРегистрацииОшибкиСВ(ИнформацияОбОшибке),,,
|
||||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
|
||||||
Возврат Обсуждение.Идентификатор;
|
Возврат Обсуждение.Идентификатор;
|
||||||
|
|
||||||
@@ -1750,7 +1791,7 @@
|
|||||||
ЗаписьЖурналаРегистрации(
|
ЗаписьЖурналаРегистрации(
|
||||||
НСтр("ru = 'Серверные оповещения.Ошибка отправки сообщения'",
|
НСтр("ru = 'Серверные оповещения.Ошибка отправки сообщения'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка()),
|
ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||||
УровеньЖурналаРегистрации.Предупреждение,,, ТекстОшибки);
|
УровеньЖурналаРегистрацииОшибкиСВ(ИнформацияОбОшибке),,, ТекстОшибки);
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
@@ -1793,7 +1834,7 @@
|
|||||||
ЗаписьЖурналаРегистрации(
|
ЗаписьЖурналаРегистрации(
|
||||||
НСтр("ru = 'Серверные оповещения.Ошибка очистки устаревших сообщений'",
|
НСтр("ru = 'Серверные оповещения.Ошибка очистки устаревших сообщений'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка()),
|
ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||||
УровеньЖурналаРегистрации.Ошибка,,,
|
УровеньЖурналаРегистрацииОшибкиСВ(ИнформацияОбОшибке),,,
|
||||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
|
|||||||
@@ -355,6 +355,8 @@
|
|||||||
|
|
||||||
Процедура ПослеОшибкиПодключенияОбработчикаНовыхЛичныхСообщений(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
Процедура ПослеОшибкиПодключенияОбработчикаНовыхЛичныхСообщений(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
|
||||||
Контекст.СостояниеПолучения.НачатоПодключениеОбработчикаНовыхЛичныхСообщений = Ложь;
|
Контекст.СостояниеПолучения.НачатоПодключениеОбработчикаНовыхЛичныхСообщений = Ложь;
|
||||||
|
|
||||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||||
@@ -373,6 +375,8 @@
|
|||||||
|
|
||||||
Процедура ПриОшибкеПолученияНовогоЛичногоСообщенияСистемыВзаимодействия(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
Процедура ПриОшибкеПолученияНовогоЛичногоСообщенияСистемыВзаимодействия(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
|
||||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||||
НСтр("ru = 'Серверные оповещения.Ошибка получения нового личного сообщения'",
|
НСтр("ru = 'Серверные оповещения.Ошибка получения нового личного сообщения'",
|
||||||
ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
|
ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
|
||||||
@@ -390,6 +394,8 @@
|
|||||||
|
|
||||||
Процедура ПослеОшибкиПодключенияОбработчикаНовыхОбщихСообщений(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
Процедура ПослеОшибкиПодключенияОбработчикаНовыхОбщихСообщений(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
|
||||||
Контекст.СостояниеПолучения.НачатоПодключениеОбработчикаНовыхОбщихСообщений = Ложь;
|
Контекст.СостояниеПолучения.НачатоПодключениеОбработчикаНовыхОбщихСообщений = Ложь;
|
||||||
|
|
||||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||||
@@ -408,6 +414,8 @@
|
|||||||
|
|
||||||
Процедура ПриОшибкеПолученияНовогоОбщегоСообщенияСистемыВзаимодействия(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
Процедура ПриОшибкеПолученияНовогоОбщегоСообщенияСистемыВзаимодействия(ИнформацияОбОшибке, СтандартнаяОбработка, Контекст) Экспорт
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
|
||||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||||
НСтр("ru = 'Серверные оповещения.Ошибка получения нового общего сообщения'",
|
НСтр("ru = 'Серверные оповещения.Ошибка получения нового общего сообщения'",
|
||||||
ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
|
ОбщегоНазначенияКлиент.КодОсновногоЯзыка()),
|
||||||
|
|||||||
@@ -672,12 +672,38 @@
|
|||||||
// Вызывает исключение с требованием перезапустить сеанс из-за обновления расширений программы.
|
// Вызывает исключение с требованием перезапустить сеанс из-за обновления расширений программы.
|
||||||
Процедура ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы() Экспорт
|
Процедура ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы() Экспорт
|
||||||
|
|
||||||
ТекстОшибки = НСтр("ru = 'Расширения программы обновлены, требуется перезапустить сеанс.'");
|
Если ЭтоРазделенныйРежимСеансаБезРазделителей() Тогда
|
||||||
|
ТекстОшибки =
|
||||||
|
НСтр("ru = 'Для выполнения требуемых действий следует
|
||||||
|
|запустить сеанс с установленными разделителями.
|
||||||
|
|
|
||||||
|
|Расширения области данных не подключаются при входе
|
||||||
|
|в область данных в сеансе, запущенном без разделителей.'");
|
||||||
|
Иначе
|
||||||
|
ТекстОшибки = НСтр("ru = 'Расширения программы обновлены, требуется перезапустить сеанс.'");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
УстановитьТребуетсяПерезапускСеанса(ТекстОшибки);
|
УстановитьТребуетсяПерезапускСеанса(ТекстОшибки);
|
||||||
ВызватьИсключение ТекстОшибки;
|
ВызватьИсключение ТекстОшибки;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево
|
||||||
|
//
|
||||||
|
Функция ЭтоРазделенныйРежимСеансаБезРазделителей() Экспорт
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.РазделениеВключено()
|
||||||
|
Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
|
||||||
|
Или Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
||||||
|
Возврат Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
|
||||||
|
Возврат МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Устанавливает параметр сеанса необходимости перезапуска с текстом
|
// Устанавливает параметр сеанса необходимости перезапуска с текстом
|
||||||
// краткого представления ошибки для проверки в исключении попытки.
|
// краткого представления ошибки для проверки в исключении попытки.
|
||||||
//
|
//
|
||||||
@@ -923,10 +949,11 @@
|
|||||||
|
|
||||||
// Для определения предопределенных элементов в подсистемах Свойства и КонтактнаяИнформация
|
// Для определения предопределенных элементов в подсистемах Свойства и КонтактнаяИнформация
|
||||||
// зачитываются реквизиты ИмяПредопределенногоНабора и ИмяПредопределенногоВида.
|
// зачитываются реквизиты ИмяПредопределенногоНабора и ИмяПредопределенногоВида.
|
||||||
ЗначенияРеквизитов = Новый Структура("ИмяПредопределенногоНабора, ИмяПредопределенногоВида", "", "");
|
ЗначенияРеквизитов = Новый Структура("ИмяПредопределенногоНабора,ИмяПредопределенногоВида,ИмяПредопределенныхДанных",
|
||||||
|
"", "", "");
|
||||||
ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, Элемент);
|
ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, Элемент);
|
||||||
|
|
||||||
Если (Элемент.ИмяПредопределенныхДанных = ""
|
Если (ЗначенияРеквизитов.ИмяПредопределенныхДанных = ""
|
||||||
И ЗначенияРеквизитов.ИмяПредопределенногоНабора = ""
|
И ЗначенияРеквизитов.ИмяПредопределенногоНабора = ""
|
||||||
И ЗначенияРеквизитов.ИмяПредопределенногоВида = "") Тогда
|
И ЗначенияРеквизитов.ИмяПредопределенногоВида = "") Тогда
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
@@ -1087,6 +1114,7 @@
|
|||||||
| #ТаблицаПланаОбмена КАК ПланОбмена
|
| #ТаблицаПланаОбмена КАК ПланОбмена
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
| ПланОбмена.РегистрироватьИзменения
|
| ПланОбмена.РегистрироватьИзменения
|
||||||
|
| И НЕ ПланОбмена.ЭтотУзел
|
||||||
| И НЕ ПланОбмена.ПометкаУдаления";
|
| И НЕ ПланОбмена.ПометкаУдаления";
|
||||||
|
|
||||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТаблицаПланаОбмена", "ПланОбмена." + ИмяПланаОбмена);
|
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ТаблицаПланаОбмена", "ПланОбмена." + ИмяПланаОбмена);
|
||||||
@@ -1499,10 +1527,10 @@
|
|||||||
Отбор = Новый Структура("Пользователь", ИмяПользователя);
|
Отбор = Новый Структура("Пользователь", ИмяПользователя);
|
||||||
Выборка = ХранилищеСистемныхНастроек.Выбрать(Отбор);
|
Выборка = ХранилищеСистемныхНастроек.Выбрать(Отбор);
|
||||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
|
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
|
||||||
КлючПоискаРусский = "НастройкиОкна";
|
КлючПоискаРусский = "НастройкиОкна"; // @Non-NLS
|
||||||
КлючПоискаАнглийский = "WindowSettings";
|
КлючПоискаАнглийский = "WindowSettings";
|
||||||
Иначе
|
Иначе
|
||||||
КлючПоискаРусский = "НастройкиОкнаТонкогоКлиента";
|
КлючПоискаРусский = "НастройкиОкнаТонкогоКлиента"; // @Non-NLS
|
||||||
КлючПоискаАнглийский = "ThinClientWindowSettings";
|
КлючПоискаАнглийский = "ThinClientWindowSettings";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Пока Истина Цикл
|
Пока Истина Цикл
|
||||||
@@ -3818,14 +3846,14 @@
|
|||||||
ТипыНастроек = Новый Массив;
|
ТипыНастроек = Новый Массив;
|
||||||
// Русский вариант.
|
// Русский вариант.
|
||||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
|
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
|
||||||
ТипыНастроек.Добавить("/НастройкиОкна");
|
ТипыНастроек.Добавить("/НастройкиОкна"); // @Non-NLS
|
||||||
ТипыНастроек.Добавить("/Такси/НастройкиОкна");
|
ТипыНастроек.Добавить("/Такси/НастройкиОкна"); // @Non-NLS
|
||||||
Иначе
|
Иначе
|
||||||
ТипыНастроек.Добавить("/НастройкиОкнаТонкогоКлиента");
|
ТипыНастроек.Добавить("/НастройкиОкнаТонкогоКлиента"); // @Non-NLS
|
||||||
ТипыНастроек.Добавить("/Такси/НастройкиОкнаТонкогоКлиента");
|
ТипыНастроек.Добавить("/Такси/НастройкиОкнаТонкогоКлиента"); // @Non-NLS
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ТипыНастроек.Добавить("/НастройкиОкнаВебКлиента");
|
ТипыНастроек.Добавить("/НастройкиОкнаВебКлиента"); // @Non-NLS
|
||||||
ТипыНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента");
|
ТипыНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента"); // @Non-NLS
|
||||||
// Английский вариант.
|
// Английский вариант.
|
||||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
|
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(РежимСовместимости, "8.3.18.0") < 0 Тогда
|
||||||
ТипыНастроек.Добавить("/WindowSettings");
|
ТипыНастроек.Добавить("/WindowSettings");
|
||||||
|
|||||||
@@ -120,9 +120,7 @@
|
|||||||
ОписаниеРегламентногоЗадания = СведенияОРегламентномЗаданииУдаленияПомеченных.Расписание;
|
ОписаниеРегламентногоЗадания = СведенияОРегламентномЗаданииУдаленияПомеченных.Расписание;
|
||||||
Расписание = Новый РасписаниеРегламентногоЗадания;
|
Расписание = Новый РасписаниеРегламентногоЗадания;
|
||||||
ЗаполнитьЗначенияСвойств(Расписание, ОписаниеРегламентногоЗадания);
|
ЗаполнитьЗначенияСвойств(Расписание, ОписаниеРегламентногоЗадания);
|
||||||
// АПК: 574 - выкл Процедура не поддерживается на мобильном клиенте.
|
Диалог = Новый ДиалогРасписанияРегламентногоЗадания(Расписание); // АПК: 574 Процедура не поддерживается на мобильном клиенте.
|
||||||
Диалог = Новый ДиалогРасписанияРегламентногоЗадания(Расписание);
|
|
||||||
// АПК: 574 - вкл
|
|
||||||
Диалог.Показать(Обработчик);
|
Диалог.Показать(Обработчик);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -231,15 +229,15 @@
|
|||||||
|
|
||||||
Процедура РегламентныеЗаданияПослеИзмененияРасписания(Расписание, ПараметрыВыполнения) Экспорт
|
Процедура РегламентныеЗаданияПослеИзмененияРасписания(Расписание, ПараметрыВыполнения) Экспорт
|
||||||
Если Расписание = Неопределено Тогда
|
Если Расписание = Неопределено Тогда
|
||||||
Расписание = ПараметрыВыполнения.СтароеРасписание;
|
Возврат;
|
||||||
УдалениеПомеченныхИспользование = Ложь;
|
|
||||||
Иначе
|
|
||||||
УдалениеПомеченныхИспользование = Истина;
|
|
||||||
Изменения = Новый Структура("Расписание", Расписание);
|
|
||||||
Изменения.Вставить("Использование", Истина);
|
|
||||||
УдалениеПомеченныхОбъектовСлужебныйВызовСервера.УстановитьРежимУдалятьПоРасписанию(Изменения);
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
УдалениеПомеченныхИспользование = Истина;
|
||||||
|
Изменения = Новый Структура;
|
||||||
|
Изменения.Вставить("Расписание", Расписание);
|
||||||
|
Изменения.Вставить("Использование", Истина);
|
||||||
|
УдалениеПомеченныхОбъектовСлужебныйВызовСервера.УстановитьРежимУдалятьПоРасписанию(Изменения);
|
||||||
|
|
||||||
Оповестить("ИзменилсяРежимАвтоматическиУдалятьПомеченныеОбъекты");
|
Оповестить("ИзменилсяРежимАвтоматическиУдалятьПомеченныеОбъекты");
|
||||||
|
|
||||||
Если ПараметрыВыполнения.Свойство("ОповещениеОбИзменении") И ПараметрыВыполнения.ОповещениеОбИзменении <> Неопределено Тогда
|
Если ПараметрыВыполнения.Свойство("ОповещениеОбИзменении") И ПараметрыВыполнения.ОповещениеОбИзменении <> Неопределено Тогда
|
||||||
|
|||||||
@@ -38,14 +38,26 @@
|
|||||||
|
|
||||||
// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.
|
// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.
|
||||||
Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт
|
Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт
|
||||||
ШаблоныЗаданий.Добавить("УдалениеПомеченных");
|
|
||||||
|
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов.Имя);
|
||||||
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.Имя);
|
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.Имя);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков.
|
||||||
|
Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт
|
||||||
|
|
||||||
|
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов.ИмяМетода);
|
||||||
|
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.ИмяМетода);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.
|
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.
|
||||||
Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт
|
Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт
|
||||||
|
|
||||||
ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.УдаляемыеОбъекты);
|
ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.УдаляемыеОбъекты);
|
||||||
ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.НеудаленныеОбъекты);
|
ИсключенияПоискаСсылок.Добавить(Метаданные.РегистрыСведений.НеудаленныеОбъекты);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
|
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#Область СлужебныйПрограммныйИнтерфейс
|
#Область СлужебныйПрограммныйИнтерфейс
|
||||||
|
|
||||||
// Устанавливает режим автоматического удаления помеченных объектов
|
// Устанавливает режим автоматического удаления помеченных объектов.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Изменения - Структура:
|
// Изменения - Структура:
|
||||||
@@ -18,31 +18,19 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Булево
|
// Булево
|
||||||
//
|
//
|
||||||
Функция УстановитьРежимУдалятьПоРасписанию(Изменения) Экспорт
|
Процедура УстановитьРежимУдалятьПоРасписанию(Изменения) Экспорт
|
||||||
|
|
||||||
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
|
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
|
||||||
ВызватьИсключение НСтр("ru = 'Недостаточно прав для совершения операции.'");
|
ВызватьИсключение НСтр("ru = 'Недостаточно прав для совершения операции.'");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
УдалятьПомеченныеОбъекты = Изменения.Использование;
|
Параметры = Новый Структура;
|
||||||
|
Параметры.Вставить("Использование", Изменения.Использование);
|
||||||
|
Параметры.Вставить("Расписание", Изменения.Расписание);
|
||||||
|
ИдентификаторЗадания = РегламентныеЗаданияСервер.УникальныйИдентификатор(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов);
|
||||||
|
РегламентныеЗаданияСервер.ИзменитьЗадание(ИдентификаторЗадания, Параметры);
|
||||||
|
|
||||||
Отбор = Новый Структура;
|
КонецПроцедуры
|
||||||
Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов);
|
|
||||||
Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
|
|
||||||
|
|
||||||
Для Каждого Задание Из Задания Цикл
|
|
||||||
|
|
||||||
Параметры = Новый Структура;
|
|
||||||
Параметры.Вставить("Использование", УдалятьПомеченныеОбъекты);
|
|
||||||
Параметры.Вставить("Расписание", Изменения.Расписание);
|
|
||||||
РегламентныеЗаданияСервер.ИзменитьЗадание(Задание, Параметры);
|
|
||||||
|
|
||||||
Возврат Истина;
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Возврат Ложь;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
// Возвращает расписание регламентного задания.
|
// Возвращает расписание регламентного задания.
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -537,11 +537,13 @@
|
|||||||
ТекущиеСвойстваПользователей = ТекущиеСвойстваПользователей(МассивПользователей);
|
ТекущиеСвойстваПользователей = ТекущиеСвойстваПользователей(МассивПользователей);
|
||||||
|
|
||||||
// Параметры проверки в цикле.
|
// Параметры проверки в цикле.
|
||||||
ВсеРоли = ПользователиСлужебный.ВсеРоли().Соответствие;
|
ВсеРоли = ПользователиСлужебный.ВсеРоли().Соответствие;
|
||||||
ИдентификаторыПользователейИБ = ТекущиеСвойстваПользователей.ИдентификаторыПользователейИБ;
|
ИдентификаторыПользователейИБ = ТекущиеСвойстваПользователей.ИдентификаторыПользователейИБ;
|
||||||
НовыеРолиПользователей = ТекущиеСвойстваПользователей.РолиПользователей;
|
НовыеРолиПользователей = ТекущиеСвойстваПользователей.РолиПользователей;
|
||||||
Администраторы = ТекущиеСвойстваПользователей.Администраторы;
|
Администраторы = ТекущиеСвойстваПользователей.Администраторы;
|
||||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||||
|
НеобходимоОбновлениеИБ = ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы();
|
||||||
|
ИдентификаторТекущегоПользователяИБ = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
|
||||||
|
|
||||||
ОбязательныеРолиАдминистратора = Новый Соответствие;
|
ОбязательныеРолиАдминистратора = Новый Соответствие;
|
||||||
ОбязательныеРолиАдминистратора.Вставить("ПолныеПрава", Истина);
|
ОбязательныеРолиАдминистратора.Вставить("ПолныеПрава", Истина);
|
||||||
@@ -562,12 +564,6 @@
|
|||||||
ИдентификаторПользователяИБ = ОписаниеПользователя.ИдентификаторПользователяИБ;
|
ИдентификаторПользователяИБ = ОписаниеПользователя.ИдентификаторПользователяИБ;
|
||||||
НовыйАдминистраторИБ = Ложь;
|
НовыйАдминистраторИБ = Ложь;
|
||||||
|
|
||||||
Отказ = Ложь;
|
|
||||||
ИнтеграцияПодсистемБСП.ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ);
|
|
||||||
Если Отказ Тогда
|
|
||||||
Продолжить;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
// Поиск пользователя ИБ.
|
// Поиск пользователя ИБ.
|
||||||
Если ТипЗнч(ИдентификаторПользователяИБ) = Тип("УникальныйИдентификатор") Тогда
|
Если ТипЗнч(ИдентификаторПользователяИБ) = Тип("УникальныйИдентификатор") Тогда
|
||||||
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
|
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
|
||||||
@@ -581,6 +577,17 @@
|
|||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если НеобходимоОбновлениеИБ
|
||||||
|
И ИдентификаторПользователяИБ = ИдентификаторТекущегоПользователяИБ Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Отказ = Ложь;
|
||||||
|
ИнтеграцияПодсистемБСП.ПриОбновленииРолейПользователяИБ(ИдентификаторПользователяИБ, Отказ);
|
||||||
|
Если Отказ Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Отбор = Новый Структура("Пользователь", ТекущийПользователь);
|
Отбор = Новый Структура("Пользователь", ТекущийПользователь);
|
||||||
НовыеРоли = НовыеРолиПользователей.Скопировать(
|
НовыеРоли = НовыеРолиПользователей.Скопировать(
|
||||||
НовыеРолиПользователей.НайтиСтроки(Отбор), "Роль, РольСсылка");
|
НовыеРолиПользователей.НайтиСтроки(Отбор), "Роль, РольСсылка");
|
||||||
@@ -795,7 +802,10 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ТранзакцияАктивна() Или ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
|
Если МонопольныйРежим()
|
||||||
|
Или Не ТранзакцияАктивна()
|
||||||
|
Или ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
|
||||||
|
|
||||||
ИзменитьРегламентноеЗаданиеОбновленияДоступа(ВключитьЗадание);
|
ИзменитьРегламентноеЗаданиеОбновленияДоступа(ВключитьЗадание);
|
||||||
|
|
||||||
ИначеЕсли ВключитьЗадание Тогда
|
ИначеЕсли ВключитьЗадание Тогда
|
||||||
@@ -2408,6 +2418,15 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Обработчики событий подсистемы РассылкаОтчетов.
|
||||||
|
|
||||||
|
// См. РассылкаОтчетовПереопределяемый.ОпределитьИсключаемыеОтчеты
|
||||||
|
Процедура ПриОпределенииИсключаемыхОтчетов(ИсключаемыеОтчеты) Экспорт
|
||||||
|
|
||||||
|
ИсключаемыеОтчеты.Добавить(Метаданные.Отчеты.ПраваДоступа);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
// Обработчики событий подсистемы КонтрольВеденияУчета.
|
// Обработчики событий подсистемы КонтрольВеденияУчета.
|
||||||
|
|
||||||
// См. ИнтеграцияПодсистемБСП.ПриОпределенииОбъектовИсключаемыхИзПроверки
|
// См. ИнтеграцияПодсистемБСП.ПриОпределенииОбъектовИсключаемыхИзПроверки
|
||||||
@@ -2906,33 +2925,18 @@
|
|||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь());
|
Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь());
|
||||||
Запрос.Текст =
|
Запрос.Текст =
|
||||||
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|
"ВЫБРАТЬ
|
||||||
| ЗначенияПоУмолчанию.ТипЗначенийДоступа КАК ТипЗначений,
|
| ЗначенияПоУмолчанию.ТипЗначенийДоступа КАК ТипЗначений
|
||||||
| ЗначенияПоУмолчанию.ВсеРазрешеныБезИсключений КАК ВсеРазрешеныБезИсключений
|
|
||||||
|ПОМЕСТИТЬ ЗначенияПоУмолчаниюДляПользователя
|
|
||||||
|ИЗ
|
|ИЗ
|
||||||
| РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию
|
| РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияПоУмолчанию
|
||||||
|ГДЕ
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
|
||||||
| ИСТИНА В
|
| ПО (ГруппыДоступаПользователи.Ссылка = ЗначенияПоУмолчанию.ГруппаДоступа)
|
||||||
| (ВЫБРАТЬ ПЕРВЫЕ 1
|
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
|
||||||
| ИСТИНА
|
| ПО (ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей)
|
||||||
| ИЗ
|
| И (СоставыГруппПользователей.Пользователь = &ТекущийПользователь)
|
||||||
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
|
|
||||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
|
|
||||||
| ПО
|
|
||||||
| ГруппыДоступаПользователи.Ссылка = ЗначенияПоУмолчанию.ГруппаДоступа
|
|
||||||
| И ГруппыДоступаПользователи.Пользователь = СоставыГруппПользователей.ГруппаПользователей
|
|
||||||
| И СоставыГруппПользователей.Пользователь = &ТекущийПользователь)
|
|
||||||
|;
|
|
||||||
|
|
|
||||||
|////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|
|
||||||
| ЗначенияПоУмолчанию.ТипЗначений
|
|
||||||
|ИЗ
|
|
||||||
| ЗначенияПоУмолчаниюДляПользователя КАК ЗначенияПоУмолчанию
|
|
||||||
|
|
|
|
||||||
|СГРУППИРОВАТЬ ПО
|
|СГРУППИРОВАТЬ ПО
|
||||||
| ЗначенияПоУмолчанию.ТипЗначений
|
| ЗначенияПоУмолчанию.ТипЗначенийДоступа
|
||||||
|
|
|
|
||||||
|ИМЕЮЩИЕ
|
|ИМЕЮЩИЕ
|
||||||
| МИНИМУМ(ЗначенияПоУмолчанию.ВсеРазрешеныБезИсключений) = ИСТИНА";
|
| МИНИМУМ(ЗначенияПоУмолчанию.ВсеРазрешеныБезИсключений) = ИСТИНА";
|
||||||
@@ -6296,7 +6300,6 @@
|
|||||||
ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ИдентификаторыРолей";
|
ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ИдентификаторыРолей";
|
||||||
ЗначениеСеанса = УправлениеДоступомСлужебныйПовтИсп.ИдентификаторыРолейСеанса();
|
ЗначениеСеанса = УправлениеДоступомСлужебныйПовтИсп.ИдентификаторыРолейСеанса();
|
||||||
|
|
||||||
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ЗаблокироватьДляИзмененияВФайловойИБ();
|
|
||||||
ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра);
|
ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра);
|
||||||
|
|
||||||
Если ТекущееЗначение.ХешСумма = ЗначениеСеанса.ХешСумма Тогда
|
Если ТекущееЗначение.ХешСумма = ЗначениеСеанса.ХешСумма Тогда
|
||||||
@@ -24760,7 +24763,8 @@
|
|||||||
СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы();
|
СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Исключение
|
Исключение
|
||||||
Если ЭтоСеансФоновогоЗадания() Тогда
|
Если ЭтоСеансФоновогоЗадания()
|
||||||
|
Или СтандартныеПодсистемыСервер.ЭтоРазделенныйРежимСеансаБезРазделителей() Тогда
|
||||||
ВызватьИсключение;
|
ВызватьИсключение;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
|||||||
@@ -1717,6 +1717,10 @@
|
|||||||
|
|
||||||
// Проверим, все ли макеты были сформированы.
|
// Проверим, все ли макеты были сформированы.
|
||||||
Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
|
Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
|
||||||
|
Если Не ПечатнаяФорма.ОфисныеДокументы = Неопределено Тогда
|
||||||
|
ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПечатнаяФорма.ТабличныйДокумент = Неопределено Тогда
|
Если ПечатнаяФорма.ТабличныйДокумент = Неопределено Тогда
|
||||||
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
|
НСтр("ru = 'В обработчике печати не был сформирован табличный документ для: %1'"),
|
||||||
@@ -3002,6 +3006,17 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ИсправитьПризнакПроверкаПроведенияПередПечатью(КомандыПечати, ОбъектМетаданных)
|
||||||
|
|
||||||
|
Если Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
|
||||||
|
Если ОбъектМетаданных.Проведение = Метаданные.СвойстваОбъектов.Проведение.Запретить Тогда
|
||||||
|
КомандыПечати.ЗаполнитьЗначения(Ложь, "ПроверкаПроведенияПередПечатью");
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
Функция УникальныйИдентификаторКомандыПечати(КомандаПечати)
|
Функция УникальныйИдентификаторКомандыПечати(КомандаПечати)
|
||||||
|
|
||||||
Параметры = Новый Массив;
|
Параметры = Новый Массив;
|
||||||
@@ -3079,6 +3094,7 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КомандыПечати.Сортировать("Порядок Возр, Представление Возр");
|
КомандыПечати.Сортировать("Порядок Возр, Представление Возр");
|
||||||
|
ИсправитьПризнакПроверкаПроведенияПередПечатью(КомандыПечати, ОбъектМетаданных);
|
||||||
УстановитьНастройкиКомандПечати(КомандыПечати, Источник.СсылкаМетаданных);
|
УстановитьНастройкиКомандПечати(КомандыПечати, Источник.СсылкаМетаданных);
|
||||||
ОпределитьВидимостьКомандПечатиПоФункциональнымОпциям(КомандыПечати);
|
ОпределитьВидимостьКомандПечатиПоФункциональнымОпциям(КомандыПечати);
|
||||||
|
|
||||||
@@ -5585,12 +5601,12 @@
|
|||||||
ЗначенияСвойствОбъектов = МодульУправлениеСвойствами.ЗначенияСвойств(Объекты, , , , КодЯзыка);
|
ЗначенияСвойствОбъектов = МодульУправлениеСвойствами.ЗначенияСвойств(Объекты, , , , КодЯзыка);
|
||||||
|
|
||||||
Для Каждого ЗначенияСвойствОбъекта Из ЗначенияСвойствОбъектов Цикл
|
Для Каждого ЗначенияСвойствОбъекта Из ЗначенияСвойствОбъектов Цикл
|
||||||
ИмяСвойства = ЗначенияСвойствОбъекта.ИмяСвойства;
|
Свойство = ЗначенияСвойствОбъекта.Свойство;
|
||||||
Объект = ЗначенияСвойствОбъекта.ВладелецСвойств;
|
Объект = ЗначенияСвойствОбъекта.ВладелецСвойств;
|
||||||
|
|
||||||
НайденныеСтроки = Данные.НайтиСтроки(Новый Структура("Ссылка", Объект));
|
НайденныеСтроки = Данные.НайтиСтроки(Новый Структура("Ссылка", Объект));
|
||||||
Для Каждого СтрокаТаблицы Из НайденныеСтроки Цикл
|
Для Каждого СтрокаТаблицы Из НайденныеСтроки Цикл
|
||||||
СтрокаТаблицы[ИмяСвойства] = ЗначенияСвойствОбъекта.Значение;
|
СтрокаТаблицы[ИдентификаторыДляФормул[Свойство]] = ЗначенияСвойствОбъекта.Значение;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
|||||||
@@ -985,6 +985,18 @@
|
|||||||
ВладелецСвойств = ОбъектыСоСвойствами;
|
ВладелецСвойств = ОбъектыСоСвойствами;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПолучатьДопРеквизиты Тогда
|
||||||
|
ПолучатьДопРеквизиты = ИспользоватьДопРеквизиты(ВладелецСвойств);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПолучатьДопСведения Тогда
|
||||||
|
ПолучатьДопСведения = ИспользоватьДопСведения(ВладелецСвойств);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ПолучатьДопРеквизиты И Не ПолучатьДопСведения Тогда
|
||||||
|
Возврат Новый ТаблицаЗначений;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если Свойства = Неопределено Тогда
|
Если Свойства = Неопределено Тогда
|
||||||
Свойства = СвойстваОбъекта(ВладелецСвойств, ПолучатьДопРеквизиты, ПолучатьДопСведения);
|
Свойства = СвойстваОбъекта(ВладелецСвойств, ПолучатьДопРеквизиты, ПолучатьДопСведения);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1825,19 +1837,10 @@
|
|||||||
КлючНаборовСвойств = НачалоКлюча + Лев(КлючНазначения + "00000000000000000000000000000000", 32);
|
КлючНаборовСвойств = НачалоКлюча + Лев(КлючНазначения + "00000000000000000000000000000000", 32);
|
||||||
|
|
||||||
НовыйКлюч = НовыйКлючНазначения(Форма.КлючНазначенияИспользования, НачалоКлюча, КлючНаборовСвойств);
|
НовыйКлюч = НовыйКлючНазначения(Форма.КлючНазначенияИспользования, НачалоКлюча, КлючНаборовСвойств);
|
||||||
Если НовыйКлюч = Неопределено Тогда
|
Если НовыйКлюч <> Неопределено Тогда
|
||||||
// Ключ уже дополнен.
|
Форма.КлючНазначенияИспользования = НовыйКлюч;
|
||||||
НовыйКлюч = Форма.КлючНазначенияИспользования;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
НовыйКлючПоложения = НовыйКлючНазначения(Форма.КлючСохраненияПоложенияОкна, НачалоКлюча, КлючНаборовСвойств);
|
|
||||||
Если НовыйКлючПоложения = Неопределено Тогда
|
|
||||||
// Ключ уже дополнен.
|
|
||||||
НовыйКлючПоложения = Форма.КлючСохраненияПоложенияОкна;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(Форма, НовыйКлюч, НовыйКлючПоложения);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция РезультатВычисленияУсловия(Форма, ОписаниеОбъекта, Параметры)
|
Функция РезультатВычисленияУсловия(Форма, ОписаниеОбъекта, Параметры)
|
||||||
@@ -1924,8 +1927,13 @@
|
|||||||
ТипОбъекта = ТипЗнч(ОписаниеОбъекта.Ссылка);
|
ТипОбъекта = ТипЗнч(ОписаниеОбъекта.Ссылка);
|
||||||
|
|
||||||
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипОбъекта);
|
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипОбъекта);
|
||||||
|
ТабличнаяЧасть = МетаданныеОбъекта.ТабличныеЧасти.Найти("ДополнительныеРеквизиты");
|
||||||
|
Если ТабличнаяЧасть = Неопределено Тогда
|
||||||
|
ОтключитьДополнительныеРеквизитыНаФорме(Форма, ДополнительныеПараметры);
|
||||||
|
Возврат Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОбщегоНазначения.ВидОбъектаПоТипу(ТипОбъекта) = "Справочник" Тогда
|
Если ОбщегоНазначения.ВидОбъектаПоТипу(ТипОбъекта) = "Справочник" Тогда
|
||||||
ТабличнаяЧасть = МетаданныеОбъекта.ТабличныеЧасти.Найти("ДополнительныеРеквизиты");
|
|
||||||
Если Не МетаданныеОбъекта.Иерархический
|
Если Не МетаданныеОбъекта.Иерархический
|
||||||
Или МетаданныеОбъекта.ВидИерархии <> Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда
|
Или МетаданныеОбъекта.ВидИерархии <> Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда
|
||||||
ЭтоГруппа = Ложь;
|
ЭтоГруппа = Ложь;
|
||||||
|
|||||||
@@ -205,6 +205,11 @@
|
|||||||
НоваяСтрока.Порядок = "До";
|
НоваяСтрока.Порядок = "До";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Обработчик = Обработчики.Добавить();
|
||||||
|
Обработчик.Версия = "3.1.7.53";
|
||||||
|
Обработчик.РежимВыполнения = "Оперативно";
|
||||||
|
Обработчик.Процедура = "УправлениеСвойствамиСлужебный.ОчиститьНеиспользуемыеНастройки";
|
||||||
|
|
||||||
Обработчик = Обработчики.Добавить();
|
Обработчик = Обработчики.Добавить();
|
||||||
Обработчик.Версия = "*";
|
Обработчик.Версия = "*";
|
||||||
Обработчик.РежимВыполнения = "Отложенно";
|
Обработчик.РежимВыполнения = "Отложенно";
|
||||||
@@ -872,7 +877,7 @@
|
|||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.УстановитьПараметр("Свойства", Свойства);
|
Запрос.УстановитьПараметр("Свойства", Свойства);
|
||||||
Запрос.УстановитьПараметр("НаборыСвойств", НаборыСвойств);
|
Запрос.УстановитьПараметр("НаборыСвойств", НаборыСвойств);
|
||||||
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ТекущийЯзык() = Метаданные.ОсновнойЯзык);
|
Запрос.УстановитьПараметр("ЭтоОсновнойЯзык", ОбщегоНазначения.ЭтоОсновнойЯзык());
|
||||||
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
|
Запрос.УстановитьПараметр("КодЯзыка", ТекущийЯзык().КодЯзыка);
|
||||||
|
|
||||||
Запрос.Текст =
|
Запрос.Текст =
|
||||||
@@ -1788,6 +1793,68 @@
|
|||||||
Строка = СтрСоединить(СтрРазделить(Строка, НедопустимыеСимволы, Истина));
|
Строка = СтрСоединить(СтрРазделить(Строка, НедопустимыеСимволы, Истина));
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ОчиститьНеиспользуемыеНастройки() Экспорт
|
||||||
|
|
||||||
|
Отбор = Новый Структура;
|
||||||
|
Отбор.Вставить("КлючНастроек", "КлючНазначенияИспользованияФормы");
|
||||||
|
УдалитьНастройкуИзХранилища(Отбор);
|
||||||
|
|
||||||
|
Отбор.КлючНастроек = "КлючСохраненияПоложенияОкнаФормы";
|
||||||
|
УдалитьНастройкуИзХранилища(Отбор);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура УдалитьНастройкуИзХранилища(Отбор)
|
||||||
|
|
||||||
|
ВыборкаНастроек = ХранилищеСистемныхНастроек.Выбрать(Отбор);
|
||||||
|
Пока СледующаяНастройка(ВыборкаНастроек) Цикл
|
||||||
|
Попытка
|
||||||
|
КлючОбъекта = ВыборкаНастроек.КлючОбъекта;
|
||||||
|
Если СтрНачинаетсяС(КлючОбъекта, "КлючНаборовСвойств") Тогда
|
||||||
|
ОбщегоНазначения.ХранилищеСистемныхНастроекУдалить(ВыборкаНастроек.КлючОбъекта,
|
||||||
|
ВыборкаНастроек.КлючНастроек,
|
||||||
|
ВыборкаНастроек.Пользователь);
|
||||||
|
КонецЕсли;
|
||||||
|
Исключение
|
||||||
|
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||||
|
ТекстОшибки = НСтр("ru = 'При очистке настроек в обработчике %1
|
||||||
|
|возникла ошибка:
|
||||||
|
|%2'");
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки,
|
||||||
|
"УправлениеСвойствамиСлужебный.ОчиститьНеиспользуемыеНастройки",
|
||||||
|
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||||
|
ЗаписьЖурналаРегистрации(
|
||||||
|
ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
|
||||||
|
УровеньЖурналаРегистрации.Предупреждение,,,
|
||||||
|
ТекстОшибки);
|
||||||
|
КонецПопытки;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция СледующаяНастройка(Выборка)
|
||||||
|
|
||||||
|
ЕстьСледующий = Ложь;
|
||||||
|
Попытка
|
||||||
|
ЕстьСледующий = Выборка.Следующий();
|
||||||
|
Исключение
|
||||||
|
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||||
|
ТекстОшибки = НСтр("ru = 'При чтении настроек в обработчике %1
|
||||||
|
|возникла ошибка:
|
||||||
|
|%2'");
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки,
|
||||||
|
"УправлениеСвойствамиСлужебный.ОчиститьНеиспользуемыеНастройки",
|
||||||
|
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||||
|
ЗаписьЖурналаРегистрации(
|
||||||
|
ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
|
||||||
|
УровеньЖурналаРегистрации.Предупреждение,,,
|
||||||
|
ТекстОшибки);
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Возврат ЕстьСледующий;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Вспомогательные процедуры и функции.
|
// Вспомогательные процедуры и функции.
|
||||||
|
|
||||||
|
|||||||
@@ -1059,6 +1059,7 @@
|
|||||||
| И (ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщения
|
| И (ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщения
|
||||||
| ИЛИ ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщенияОтправкаIMAP
|
| ИЛИ ИдентификаторыПисемКЗагрузке.ИдентификаторПисьма = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщенияОтправкаIMAP
|
||||||
| ИЛИ ИдентификаторыПисемКЗагрузке.ИдентификаторОригинальногоПисьмаMicrosoft = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщения)
|
| ИЛИ ИдентификаторыПисемКЗагрузке.ИдентификаторОригинальногоПисьмаMicrosoft = ЭлектронноеПисьмоИсходящее.ИдентификаторСообщения)
|
||||||
|
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
| ЭлектронноеПисьмоВходящее.Ссылка ЕСТЬ NULL
|
| ЭлектронноеПисьмоВходящее.Ссылка ЕСТЬ NULL
|
||||||
| И ЭлектронноеПисьмоИсходящее.Ссылка ЕСТЬ NULL";
|
| И ЭлектронноеПисьмоИсходящее.Ссылка ЕСТЬ NULL";
|
||||||
|
|||||||
@@ -554,10 +554,7 @@
|
|||||||
//
|
//
|
||||||
Функция ДатаПодписания(Подпись, ПривестиКЧасовомуПоясуСеанса = Истина) Экспорт
|
Функция ДатаПодписания(Подпись, ПривестиКЧасовомуПоясуСеанса = Истина) Экспорт
|
||||||
|
|
||||||
ЧтениеДанных = Новый ЧтениеДанных(Подпись);
|
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписанияУниверсальная(Подпись);
|
||||||
РезультатЧтения = ЧтениеДанных.Прочитать();
|
|
||||||
Буфер = РезультатЧтения.ПолучитьБуферДвоичныхДанных();
|
|
||||||
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписанияУниверсальная(Буфер);
|
|
||||||
|
|
||||||
Если ДатаПодписания = Неопределено Тогда
|
Если ДатаПодписания = Неопределено Тогда
|
||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
@@ -1008,8 +1005,8 @@
|
|||||||
// до которого требуется усовершенствование. Если фактический ТипПодписи
|
// до которого требуется усовершенствование. Если фактический ТипПодписи
|
||||||
// тот же или выше, тогда никаких действий произведено не будет.
|
// тот же или выше, тогда никаких действий произведено не будет.
|
||||||
//
|
//
|
||||||
// ДобавитьАрхивнуюМеткуВремени - Булево - если указано Истина и ТипПодписи указан архивная,
|
// ДобавитьАрхивнуюМеткуВремени - Булево - если указано Истина и фактический ТипПодписи архивная,
|
||||||
// и фактический ТипПодписи архивная, тогда будет добавлена метка времени.
|
// тогда будет добавлена метка времени.
|
||||||
//
|
//
|
||||||
// МенеджерКриптографии - Неопределено - получить менеджер криптографии для проверки
|
// МенеджерКриптографии - Неопределено - получить менеджер криптографии для проверки
|
||||||
// электронных подписей, как настроил администратор.
|
// электронных подписей, как настроил администратор.
|
||||||
@@ -1048,9 +1045,8 @@
|
|||||||
Попытка
|
Попытка
|
||||||
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(Подпись);
|
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(Подпись);
|
||||||
Исключение
|
Исключение
|
||||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru='При чтении данных подписи: %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
НСтр("ru='Не удалось прочитать данные подписи: %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||||
Результат.ТекстОшибки = ОписаниеОшибки;
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
@@ -1062,87 +1058,86 @@
|
|||||||
|
|
||||||
Результат.СвойстваПодписи = СвойстваПодписи;
|
Результат.СвойстваПодписи = СвойстваПодписи;
|
||||||
|
|
||||||
УсовершенствованиеПроизошло = Ложь;
|
|
||||||
ОписаниеОшибки = "";
|
|
||||||
ИнформацияОбОшибке = Неопределено;
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени)
|
Если ЗначениеЗаполнено(ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени)
|
||||||
И ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени < ТекущаяДатаСеанса() Тогда
|
И ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени < ТекущаяДатаСеанса() Тогда
|
||||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru='Истек срок действия подписи: %1'"), ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени);
|
НСтр("ru='Истек срок действия подписи: %1'"), ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени);
|
||||||
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОписаниеОшибки = "" Тогда
|
ОписаниеОшибки = "";
|
||||||
РезультатПроверкиСертификата = ПроверитьСертификат(МенеджерКриптографии, ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени, ОписаниеОшибки);
|
РезультатПроверкиСертификата = ПроверитьСертификат(МенеджерКриптографии,
|
||||||
Если РезультатПроверкиСертификата Тогда
|
ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени, ОписаниеОшибки);
|
||||||
Если ЗначениеЗаполнено(ТипПодписи)
|
Если РезультатПроверкиСертификата Тогда
|
||||||
И ЭлектроннаяПодписьСлужебныйКлиентСервер.ПодлежитУсовершенствованию(ПараметрыПодписиКриптографии.ТипПодписи, ТипПодписи) Тогда
|
Если ЗначениеЗаполнено(ТипПодписи) И ЭлектроннаяПодписьСлужебныйКлиентСервер.ПодлежитУсовершенствованию(
|
||||||
Попытка
|
ПараметрыПодписиКриптографии.ТипПодписи, ТипПодписи) Тогда
|
||||||
ДвоичныеДанныеРезультата = МенеджерКриптографии.УсовершенствоватьПодпись(Подпись,
|
Попытка
|
||||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ТипПодписиКриптографии(ТипПодписи));
|
ДвоичныеДанныеРезультата = МенеджерКриптографии.УсовершенствоватьПодпись(Подпись,
|
||||||
УсовершенствованиеПроизошло = Истина;
|
ЭлектроннаяПодписьСлужебныйКлиентСервер.ТипПодписиКриптографии(ТипПодписи));
|
||||||
Исключение
|
Исключение
|
||||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
КонецПопытки;
|
НСтр("ru='Не удалось усовершенствовать подпись: %1'"), КраткоеПредставлениеОшибки(
|
||||||
ИначеЕсли ДобавитьАрхивнуюМеткуВремени И (ПараметрыПодписиКриптографии.ТипПодписи = Перечисления.ТипыПодписиКриптографии.АрхивнаяCAdESAv3
|
ИнформацияОбОшибке()));
|
||||||
Или ПараметрыПодписиКриптографии.ТипПодписи = Перечисления.ТипыПодписиКриптографии.CAdESAv2) Тогда
|
Возврат Результат;
|
||||||
Попытка
|
КонецПопытки;
|
||||||
ДвоичныеДанныеРезультата = МенеджерКриптографии.ДобавитьАрхивнуюМеткуВремени(Подпись);
|
ИначеЕсли ДобавитьАрхивнуюМеткуВремени И (ПараметрыПодписиКриптографии.ТипПодписи
|
||||||
УсовершенствованиеПроизошло = Истина;
|
= Перечисления.ТипыПодписиКриптографии.АрхивнаяCAdESAv3 Или ПараметрыПодписиКриптографии.ТипПодписи
|
||||||
Исключение
|
= Перечисления.ТипыПодписиКриптографии.CAdESAv2) Тогда
|
||||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
Попытка
|
||||||
КонецПопытки;
|
ДвоичныеДанныеРезультата = МенеджерКриптографии.ДобавитьАрхивнуюМеткуВремени(Подпись);
|
||||||
КонецЕсли;
|
Исключение
|
||||||
Иначе
|
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
НСтр("ru='Не удалось добавить архивную метку времени в подпись: %1'"), КраткоеПредставлениеОшибки(
|
||||||
НСтр("ru='При проверке сертификата: %1'"), ОписаниеОшибки);
|
ИнформацияОбОшибке()));
|
||||||
КонецЕсли;
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецПопытки;
|
||||||
|
Иначе // Есть подписи, которые не нужно усовершенствовать, но нужно заполнить их свойства, они уже прочитаны выше.
|
||||||
Если ИнформацияОбОшибке <> Неопределено Тогда
|
Результат.Успех = Истина;
|
||||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru='При усовершенствовании подписи: %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если УсовершенствованиеПроизошло Тогда
|
|
||||||
Попытка
|
|
||||||
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДвоичныеДанныеРезультата);
|
|
||||||
Исключение
|
|
||||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru='При чтении данных усовершенствованной подписи: %1'"),
|
|
||||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
|
||||||
Результат.ТекстОшибки = ОписаниеОшибки;
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецПопытки;
|
|
||||||
|
|
||||||
ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи,
|
|
||||||
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
|
|
||||||
РезультатПроверкиСертификата = ПроверитьСертификат(МенеджерКриптографии,
|
|
||||||
ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени, ОписаниеОшибки);
|
|
||||||
Если РезультатПроверкиСертификата Тогда
|
|
||||||
СвойстваПодписи.Подпись = ДвоичныеДанныеРезультата;
|
|
||||||
СвойстваПодписи.ТипПодписи = ПараметрыПодписиКриптографии.ТипПодписи;
|
|
||||||
СвойстваПодписи.СрокДействияПоследнейМеткиВремени = ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени;
|
|
||||||
Иначе
|
|
||||||
СвойстваСертификата = СвойстваСертификата(ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени);
|
|
||||||
СведенияОСертификате = ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(СвойстваСертификата);
|
|
||||||
|
|
||||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru='При проверке сертификата после усовершенствования: %1
|
|
||||||
|%2'"), ОписаниеОшибки, СведенияОСертификате);
|
|
||||||
|
|
||||||
ВызватьИсключение ОписаниеОшибки;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ОписаниеОшибки <> "" Тогда
|
|
||||||
Результат.ТекстОшибки = ОписаниеОшибки;
|
|
||||||
Иначе
|
Иначе
|
||||||
Результат.Успех = Истина;
|
СвойстваСертификата = СвойстваСертификата(ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени);
|
||||||
|
СведенияОСертификате = ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(
|
||||||
|
СвойстваСертификата);
|
||||||
|
|
||||||
|
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='Не действует сертификат подписи: %1
|
||||||
|
|%2'"), ОписаниеОшибки, СведенияОСертификате);
|
||||||
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Результат.СвойстваПодписи = СвойстваПодписи;
|
Попытка
|
||||||
|
КонтейнерПодписи = МенеджерКриптографии.ПолучитьКонтейнерПодписейКриптографии(ДвоичныеДанныеРезультата);
|
||||||
|
Исключение
|
||||||
|
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='Не удалось прочитать данные усовершенствованной подписи: %1'"), КраткоеПредставлениеОшибки(
|
||||||
|
ИнформацияОбОшибке()));
|
||||||
|
Возврат Результат;
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(
|
||||||
|
КонтейнерПодписи, ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
|
||||||
|
РезультатПроверкиСертификата = ПроверитьСертификат(МенеджерКриптографии,
|
||||||
|
ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени, ОписаниеОшибки);
|
||||||
|
|
||||||
|
Если РезультатПроверкиСертификата Тогда
|
||||||
|
СвойстваПодписи.Подпись = ДвоичныеДанныеРезультата;
|
||||||
|
СвойстваПодписи.ТипПодписи = ПараметрыПодписиКриптографии.ТипПодписи;
|
||||||
|
СвойстваПодписи.СрокДействияПоследнейМеткиВремени = ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени;
|
||||||
|
Результат.СвойстваПодписи = СвойстваПодписи;
|
||||||
|
Иначе
|
||||||
|
СвойстваСертификата = СвойстваСертификата(ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени);
|
||||||
|
СведенияОСертификате = ЭлектроннаяПодписьСлужебныйКлиентСервер.СведенияОСертификатеСтрокой(
|
||||||
|
СвойстваСертификата);
|
||||||
|
|
||||||
|
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='Не действует сертификат полученной метки времени: %1
|
||||||
|
|%2'"), ОписаниеОшибки, СведенияОСертификате);
|
||||||
|
|
||||||
|
ВызватьИсключение ОписаниеОшибки;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат.Успех = Истина;
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -1184,27 +1179,17 @@
|
|||||||
|
|
||||||
Результат = Новый Структура("Успех, ТекстОшибки, СвойстваПодписи", Ложь);
|
Результат = Новый Структура("Успех, ТекстОшибки, СвойстваПодписи", Ложь);
|
||||||
|
|
||||||
СвойстваПодписи = УстановленныеПодписи(ПодписанныйОбъект, ПорядковыйНомер)[0];
|
УстановленныеПодписи = УстановленныеПодписи(ПодписанныйОбъект, ПорядковыйНомер);
|
||||||
Подпись = СвойстваПодписи.Подпись;
|
|
||||||
|
|
||||||
Если МенеджерКриптографии = Неопределено Тогда
|
|
||||||
|
|
||||||
ПараметрыСоздания = ЭлектроннаяПодписьСлужебный.ПараметрыСозданияМенеджераКриптографии();
|
|
||||||
ПараметрыСоздания.АлгоритмПодписи =
|
|
||||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмСформированнойПодписи(Подпись);
|
|
||||||
|
|
||||||
МенеджерКриптографии = ЭлектроннаяПодписьСлужебный.МенеджерКриптографии(
|
|
||||||
"ПродлениеСрокаДействияПодписи", ПараметрыСоздания);
|
|
||||||
|
|
||||||
Если МенеджерКриптографии = Неопределено Тогда
|
|
||||||
Результат.ТекстОшибки = ПараметрыСоздания.ОписаниеОшибки;
|
|
||||||
Возврат Результат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
МенеджерКриптографии.АдресаСерверовМетокВремени = ОбщиеНастройки().АдресаСерверовМетокВремени;
|
|
||||||
|
|
||||||
|
Если УстановленныеПодписи.Количество() = 0 Тогда
|
||||||
|
Результат.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось найти подпись с порядковым номером %1 у %2'"), ПорядковыйНомер, ПодписанныйОбъект);
|
||||||
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
СвойстваПодписи = УстановленныеПодписи[0];
|
||||||
|
Подпись = СвойстваПодписи.Подпись;
|
||||||
|
|
||||||
Результат = УсовершенствоватьПодпись(Подпись, ТипПодписи, ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии);
|
Результат = УсовершенствоватьПодпись(Подпись, ТипПодписи, ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии);
|
||||||
|
|
||||||
Если Результат.СвойстваПодписи = Неопределено Тогда
|
Если Результат.СвойстваПодписи = Неопределено Тогда
|
||||||
@@ -1455,7 +1440,10 @@
|
|||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДатаПодписания = ДатаПодписания(ПодписьДляПроверки);
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных(ПодписьДляПроверки);
|
||||||
|
ДатаПодписания = ?(ЗначениеЗаполнено(СвойстваПодписи.ДатаШтампаВремени),
|
||||||
|
СвойстваПодписи.ДатаШтампаВремени, СвойстваПодписи.ДатаПодписания);
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
|
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
|
||||||
ДатаПодписания = НаДату;
|
ДатаПодписания = НаДату;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1471,17 +1459,45 @@
|
|||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
ДатаПодписания = ДатаПодписания(ПодписьДляПроверки);
|
Если ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
КонтейнерПодписи = МенеджерКриптографииДляПроверки.ПолучитьКонтейнерПодписейКриптографии(ПодписьДляПроверки);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='При чтении данных подписи: %1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||||
|
Если ВызыватьИсключение Тогда
|
||||||
|
ВызватьИсключение;
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат Ложь;
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
ПараметрыПодписиКриптографии = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(КонтейнерПодписи,
|
||||||
|
ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ТекущаяДатаСеанса());
|
||||||
|
|
||||||
|
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(ПараметрыПодписиКриптографии);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных(ПодписьДляПроверки);
|
||||||
|
ДатаПодписания = ?(ЗначениеЗаполнено(СвойстваПодписи.ДатаШтампаВремени),
|
||||||
|
СвойстваПодписи.ДатаШтампаВремени, СвойстваПодписи.ДатаПодписания);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
|
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
|
||||||
ДатаПодписания = НаДату;
|
ДатаПодписания = НаДату;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ВызыватьИсключение Тогда
|
Если ВызыватьИсключение Тогда
|
||||||
ОписаниеОшибки = Null;
|
ОписаниеОшибки = Null;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ПроверитьСертификат(МенеджерКриптографииДляПроверки, Сертификат, ОписаниеОшибки, ДатаПодписания);
|
ДополнительныеПараметры = ЭлектроннаяПодписьСлужебный.ДополнительныеПараметрыПроверкиСертификата();
|
||||||
|
ДополнительныеПараметры.ДляПроверкиПодписи = Истина;
|
||||||
|
Возврат ЭлектроннаяПодписьСлужебный.ПроверитьСертификат(МенеджерКриптографии, Сертификат, ОписаниеОшибки, НаДату, ДополнительныеПараметры);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -1895,11 +1911,7 @@
|
|||||||
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
|
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
|
||||||
Метаданные.РегламентныеЗадания.ПродлениеДостоверностиПодписей);
|
Метаданные.РегламентныеЗадания.ПродлениеДостоверностиПодписей);
|
||||||
|
|
||||||
Если Не ИспользоватьЭлектронныеПодписи() Тогда
|
Если Не ИспользоватьЭлектронныеПодписи() Или Не ДоступнаУсовершенствованнаяПодпись() Тогда
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Не ДоступнаУсовершенствованнаяПодпись() Тогда
|
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -2069,7 +2081,14 @@
|
|||||||
НоваяЗапись.УстановившийПодпись = Пользователи.АвторизованныйПользователь();
|
НоваяЗапись.УстановившийПодпись = Пользователи.АвторизованныйПользователь();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДатаПодписи = ДатаПодписания(СвойстваПодписи.Подпись);
|
ДатаПодписиИзПараметровПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(
|
||||||
|
СвойстваПодписи);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ДатаПодписиИзПараметровПодписи) Тогда
|
||||||
|
ДатаПодписи = ДатаПодписиИзПараметровПодписи;
|
||||||
|
Иначе
|
||||||
|
ДатаПодписи = ДатаПодписания(СвойстваПодписи.Подпись);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДатаПодписи <> Неопределено Тогда
|
Если ДатаПодписи <> Неопределено Тогда
|
||||||
НоваяЗапись.ДатаПодписи = ДатаПодписи;
|
НоваяЗапись.ДатаПодписи = ДатаПодписи;
|
||||||
|
|||||||
@@ -1044,15 +1044,19 @@
|
|||||||
//
|
//
|
||||||
Процедура ДатаПодписания(Оповещение, Подпись, ПривестиКЧасовомуПоясуСеанса = Истина) Экспорт
|
Процедура ДатаПодписания(Оповещение, Подпись, ПривестиКЧасовомуПоясуСеанса = Истина) Экспорт
|
||||||
|
|
||||||
ПараметрыОповещения = Новый Структура;
|
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписанияУниверсальная(Подпись);
|
||||||
ПараметрыОповещения.Вставить("Оповещение", Оповещение);
|
|
||||||
ПараметрыОповещения.Вставить("ПривестиКЧасовомуПоясуСеанса", ПривестиКЧасовомуПоясуСеанса);
|
|
||||||
|
|
||||||
ЧтениеДанных = Новый ЧтениеДанных(Подпись);
|
Если ДатаПодписания = Неопределено Тогда
|
||||||
ЧтениеДанных.НачатьЧтениеВБуферДвоичныхДанных(Новый ОписаниеОповещения(
|
ВыполнитьОбработкуОповещения(Оповещение, Неопределено);
|
||||||
"ДатаПодписанияПослеЧтенияВБуферДвоичныхДанных",
|
Возврат;
|
||||||
ЭлектроннаяПодписьСлужебныйКлиент,
|
КонецЕсли;
|
||||||
ПараметрыОповещения));
|
|
||||||
|
Если ПривестиКЧасовомуПоясуСеанса Тогда
|
||||||
|
ДатаПодписания = ДатаПодписания + (ОбщегоНазначенияКлиент.ДатаСеанса()
|
||||||
|
- ОбщегоНазначенияКлиент.ДатаУниверсальная());
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ВыполнитьОбработкуОповещения(Оповещение, ДатаПодписания);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,9 @@
|
|||||||
Структура.Вставить("КомуВыданСертификат");
|
Структура.Вставить("КомуВыданСертификат");
|
||||||
Структура.Вставить("ТипПодписи");
|
Структура.Вставить("ТипПодписи");
|
||||||
Структура.Вставить("СрокДействияПоследнейМеткиВремени");
|
Структура.Вставить("СрокДействияПоследнейМеткиВремени");
|
||||||
|
Структура.Вставить("ДатаПодписиИзМетки");
|
||||||
|
Структура.Вставить("НеподтвержденнаяДатаПодписи");
|
||||||
|
|
||||||
Структура.Вставить("ОписаниеСертификата");
|
Структура.Вставить("ОписаниеСертификата");
|
||||||
|
|
||||||
Структура.Вставить("ОшибкаПриАвтоматическомПродлении", Ложь);
|
Структура.Вставить("ОшибкаПриАвтоматическомПродлении", Ложь);
|
||||||
|
|||||||
@@ -151,6 +151,63 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Неопределено, Структура - данные удостоверяющего центра:
|
||||||
|
// * Государственный - Булево
|
||||||
|
// * ПериодыДействия - Неопределено, Массив из Структура:
|
||||||
|
// **ДатаС - Дата
|
||||||
|
// **ДатаПо - Дата, Неопределено
|
||||||
|
// * ДатаОкончанияДействия - Неопределено, Дата
|
||||||
|
// * ДатаОбновления - Неопределено, Дата
|
||||||
|
//
|
||||||
|
Функция ДанныеУдостоверяющегоЦентра(ЗначенияПоиска, АккредитованныеУдостоверяющиеЦентры) Экспорт
|
||||||
|
|
||||||
|
Результат = Неопределено;
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НайденПериодДействия = Неопределено;
|
||||||
|
НайденаДатаОкончанияДействия = Неопределено;
|
||||||
|
МассивПолейПоиска = СтрРазделить(ЗначенияПоиска, ",");
|
||||||
|
Государственный = Ложь;
|
||||||
|
|
||||||
|
Для Каждого ЗначениеПоиска Из МассивПолейПоиска Цикл
|
||||||
|
|
||||||
|
ПодготовленноеЗначениеПоиска = ПодготовитьЗначениеПоиска(ЗначениеПоиска);
|
||||||
|
|
||||||
|
Если НайденПериодДействия = Неопределено Тогда
|
||||||
|
НайденПериодДействия = АккредитованныеУдостоверяющиеЦентры.ПериодыДействия.Получить(ПодготовленноеЗначениеПоиска);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если НайденаДатаОкончанияДействия = Неопределено Тогда
|
||||||
|
НайденаДатаОкончанияДействия = АккредитованныеУдостоверяющиеЦентры.ДатыОкончанияДействия.Получить(ПодготовленноеЗначениеПоиска);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не Государственный И АккредитованныеУдостоверяющиеЦентры.ГосударственныеУЦ.Получить(ПодготовленноеЗначениеПоиска) <> Неопределено Тогда
|
||||||
|
Государственный = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если НайденПериодДействия = Неопределено Тогда
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат = Новый Структура;
|
||||||
|
Результат.Вставить("Государственный", Государственный);
|
||||||
|
Результат.Вставить("ПериодыДействия", НайденПериодДействия);
|
||||||
|
Результат.Вставить("ДатаОкончанияДействия", НайденаДатаОкончанияДействия);
|
||||||
|
Результат.Вставить("ДатаОбновления", АккредитованныеУдостоверяющиеЦентры.ДатаОбновления);
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Локализация
|
// Локализация
|
||||||
Функция ПредставлениеСубъекта(Знач Сертификат, Знач Отчество)
|
Функция ПредставлениеСубъекта(Знач Сертификат, Знач Отчество)
|
||||||
|
|
||||||
@@ -239,62 +296,6 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры) Экспорт
|
|
||||||
|
|
||||||
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
|
|
||||||
Возврат Неопределено;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
НайденПериодДействия = Неопределено;
|
|
||||||
НайденаДатаОкончанияДействия = Неопределено;
|
|
||||||
МассивПолейПоиска = СтрРазделить(ПоляПоиска, ",");
|
|
||||||
Государственный = Ложь;
|
|
||||||
|
|
||||||
Для Каждого ПолеПоиска Из МассивПолейПоиска Цикл
|
|
||||||
|
|
||||||
ПодготовленноеПолеПоиска = ПодготовитьПолеПоиска(ПолеПоиска);
|
|
||||||
|
|
||||||
Если НайденПериодДействия = Неопределено Тогда
|
|
||||||
НайденПериодДействия = АккредитованныеУдостоверяющиеЦентры.ПериодыДействия.Получить(ПодготовленноеПолеПоиска);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если НайденаДатаОкончанияДействия = Неопределено Тогда
|
|
||||||
НайденаДатаОкончанияДействия = АккредитованныеУдостоверяющиеЦентры.ДатыОкончанияДействия.Получить(ПодготовленноеПолеПоиска);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Не Государственный И АккредитованныеУдостоверяющиеЦентры.ГосударственныеУЦ.Получить(ПодготовленноеПолеПоиска) <> Неопределено Тогда
|
|
||||||
Государственный = Истина;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Если НайденПериодДействия = Неопределено Тогда
|
|
||||||
Возврат Неопределено;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Результат = Новый Структура;
|
|
||||||
Результат.Вставить("Государственный", Государственный);
|
|
||||||
Результат.Вставить("ПериодыДействия", НайденПериодДействия);
|
|
||||||
Результат.Вставить("ДатаОкончанияДействия", НайденаДатаОкончанияДействия);
|
|
||||||
Результат.Вставить("ДатаПроверкиОбновления", АккредитованныеУдостоверяющиеЦентры.ДатаПроверкиОбновления);
|
|
||||||
|
|
||||||
Возврат Результат;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция ПодготовитьПолеПоиска(Знач ПолеПоиска) Экспорт
|
|
||||||
|
|
||||||
ПолеПоиска = ВРег(ПолеПоиска);
|
|
||||||
ПолеПоиска = СтрЗаменить(ПолеПоиска, """", "");
|
|
||||||
ПолеПоиска = СтрЗаменить(ПолеПоиска, "«", "");
|
|
||||||
ПолеПоиска = СтрЗаменить(ПолеПоиска, "»", "");
|
|
||||||
ПолеПоиска = СтрЗаменить(ПолеПоиска, "“", "");
|
|
||||||
ПолеПоиска = СтрЗаменить(ПолеПоиска, "”", "");
|
|
||||||
|
|
||||||
Возврат ПолеПоиска;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция КонтекстПроверкиУдостоверяющегоЦентраСертификата() Экспорт
|
Функция КонтекстПроверкиУдостоверяющегоЦентраСертификата() Экспорт
|
||||||
|
|
||||||
Структура = Новый Структура;
|
Структура = Новый Структура;
|
||||||
@@ -310,30 +311,43 @@
|
|||||||
|
|
||||||
Функция ДанныеДляПроверкиУдостоверяющегоЦентра(Сертификат) Экспорт
|
Функция ДанныеДляПроверкиУдостоверяющегоЦентра(Сертификат) Экспорт
|
||||||
|
|
||||||
Результат = Новый Структура("ПоляПоиска, НаименованиеУдостоверяющегоЦентра");
|
Результат = Новый Структура("ЗначенияПоиска, НаименованиеУдостоверяющегоЦентра");
|
||||||
|
|
||||||
СвойстваИздателя = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваИздателяСертификата(Сертификат);
|
СвойстваИздателя = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваИздателяСертификата(Сертификат);
|
||||||
|
|
||||||
Результат.НаименованиеУдостоверяющегоЦентра = СвойстваИздателя.ОбщееИмя;
|
Результат.НаименованиеУдостоверяющегоЦентра = СвойстваИздателя.ОбщееИмя;
|
||||||
|
|
||||||
ПоляПоиска = Новый Массив;
|
ЗначенияПоиска = Новый Массив;
|
||||||
|
|
||||||
Если СвойстваИздателя.Свойство("ОГРН") И ЗначениеЗаполнено(СвойстваИздателя.ОГРН) Тогда
|
Если СвойстваИздателя.Свойство("ОГРН") И ЗначениеЗаполнено(СвойстваИздателя.ОГРН) Тогда
|
||||||
ПоляПоиска.Добавить(СвойстваИздателя.ОГРН);
|
ЗначенияПоиска.Добавить(СвойстваИздателя.ОГРН);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(СвойстваИздателя.ОбщееИмя) Тогда
|
Если ЗначениеЗаполнено(СвойстваИздателя.ОбщееИмя) Тогда
|
||||||
ПоляПоиска.Добавить(СвойстваИздателя.ОбщееИмя);
|
ЗначенияПоиска.Добавить(СвойстваИздателя.ОбщееИмя);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПоляПоиска.Количество() > 0 Тогда
|
Если ЗначенияПоиска.Количество() > 0 Тогда
|
||||||
Результат.ПоляПоиска = СтрСоединить(ПоляПоиска, ",");
|
Результат.ЗначенияПоиска = СтрСоединить(ЗначенияПоиска, ",");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПодготовитьЗначениеПоиска(Знач ЗначениеПоиска) Экспорт
|
||||||
|
|
||||||
|
ЗначениеПоиска = ВРег(ЗначениеПоиска);
|
||||||
|
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, """", "");
|
||||||
|
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, "«", "");
|
||||||
|
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, "»", "");
|
||||||
|
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, "“", "");
|
||||||
|
ЗначениеПоиска = СтрЗаменить(ЗначениеПоиска, "”", "");
|
||||||
|
|
||||||
|
Возврат ЗначениеПоиска;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Только для внутреннего использования.
|
// Только для внутреннего использования.
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию
|
// см. ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию
|
||||||
@@ -351,7 +365,7 @@
|
|||||||
РезультатПроверкиУдостоверяющегоЦентра.Государственный = ДанныеУдостоверяющегоЦентра.Государственный;
|
РезультатПроверкиУдостоверяющегоЦентра.Государственный = ДанныеУдостоверяющегоЦентра.Государственный;
|
||||||
|
|
||||||
НаДату = КонтекстПроверки.НаДату;
|
НаДату = КонтекстПроверки.НаДату;
|
||||||
ДатаДляСравнения = НаДату + КонтекстПроверки.ДобавкаВремени;
|
ДатаДляСравнения = НаДату - КонтекстПроверки.ДобавкаВремени;
|
||||||
|
|
||||||
Количество = ДанныеУдостоверяющегоЦентра.ПериодыДействия.Количество();
|
Количество = ДанныеУдостоверяющегоЦентра.ПериодыДействия.Количество();
|
||||||
|
|
||||||
@@ -370,7 +384,7 @@
|
|||||||
|
|
||||||
Если ДатаДляСравнения > ПериодДействия.ДатаПо Тогда
|
Если ДатаДляСравнения > ПериодДействия.ДатаПо Тогда
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
|
РезультатПроверкиУдостоверяющегоЦентра.Действует = Ложь;
|
||||||
ДатаПрекращенияАккредитацииУЦ = ПериодДействия.ДатаПо;
|
ДатаПрекращенияАккредитацииУЦ = ПериодДействия.ДатаПо + КонтекстПроверки.ДобавкаВремени;
|
||||||
Прервать;
|
Прервать;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -383,14 +397,14 @@
|
|||||||
ЭтоИндивидуальныйПредприниматель = ЗначениеЗаполнено(СвойстваСубъекта.ОГРНИП);
|
ЭтоИндивидуальныйПредприниматель = ЗначениеЗаполнено(СвойстваСубъекта.ОГРНИП);
|
||||||
ЭтоФизическоеЛицо = Не ЭтоЮридическоеЛицо И Не ЭтоИндивидуальныйПредприниматель;
|
ЭтоФизическоеЛицо = Не ЭтоЮридическоеЛицо И Не ЭтоИндивидуальныйПредприниматель;
|
||||||
|
|
||||||
ДатаПрекращенияДействия = ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ();
|
ДатаПрекращенияДействия = ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ() + КонтекстПроверки.ДобавкаВремени;
|
||||||
|
|
||||||
// Аккредитация удостоверяющего центра прекращена.
|
// Аккредитация удостоверяющего центра прекращена.
|
||||||
Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
Если Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
||||||
|
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Сертификат не действует с %1, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, прекращена.'"),
|
НСтр("ru = 'Сертификат не действует с %1, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, прекращена.'"),
|
||||||
Формат(ДатаПрекращенияАккредитацииУЦ, "ДЛФ=D"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
Формат(ДатаПрекращенияАккредитацииУЦ, "ДЛФ=DT"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||||
|
|
||||||
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
||||||
|
|
||||||
@@ -404,7 +418,7 @@
|
|||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
|
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
|
||||||
СсылкаНаСтатьюОбУдостоверяющихЦентрах());
|
СсылкаНаСтатьюОбУдостоверяющихЦентрах());
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки =
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки =
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки +" "+ РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина;
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки +" "+ РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина;
|
||||||
@@ -425,16 +439,23 @@
|
|||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = Ложь;
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = Ложь;
|
||||||
|
|
||||||
Если НаДату < ДатаПрекращенияДействия Тогда
|
Если НаДату < ДатаПрекращенияДействия Тогда
|
||||||
ТекстОшибки = НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как не будут действовать сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами %2.'");
|
Если ЭтоИндивидуальныйПредприниматель Тогда
|
||||||
|
ТекстОшибки = НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как не будут действовать сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами индивидуальным предпринимателям.'");
|
||||||
|
Иначе
|
||||||
|
ТекстОшибки = НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как не будут действовать сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами юридическим лицам и их сотрудникам.'");
|
||||||
|
КонецЕсли;
|
||||||
ДатаПредупреждения = ДатаПрекращенияДействия;
|
ДатаПредупреждения = ДатаПрекращенияДействия;
|
||||||
Иначе
|
Иначе
|
||||||
ТекстОшибки = НСтр("ru = 'Сертификат не действует c %1, так как с этой даты не действуют сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами %2.'");
|
Если ЭтоИндивидуальныйПредприниматель Тогда
|
||||||
|
ТекстОшибки = НСтр("ru = 'Сертификат не действует c %1, так как с этой даты не действуют сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами индивидуальным предпринимателям.'");
|
||||||
|
Иначе
|
||||||
|
ТекстОшибки = НСтр("ru = 'Сертификат не действует c %1, так как с этой даты не действуют сертификаты, выданные коммерческими аккредитованными удостоверяющими центрами юридическим лицам и их сотрудникам.'");
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
ТекстОшибки,
|
ТекстОшибки,
|
||||||
Формат(ДатаПрекращенияДействия, "ДЛФ=D"),
|
Формат(ДатаПрекращенияДействия, "ДЛФ=DT"));
|
||||||
?(ЭтоИндивидуальныйПредприниматель, НСтр("ru = 'индивидуальным предпринимателям'"), НСтр("ru = 'юридическим лицам и их сотрудникам'")));
|
|
||||||
|
|
||||||
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
Если Не КонтекстПроверки.ЭтоПроверкаПодписи Тогда
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
@@ -457,26 +478,32 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Аккредитация удостоверяющего центра скоро закончится.
|
// Аккредитация удостоверяющего центра скоро закончится.
|
||||||
Если ЗначениеЗаполнено(ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия)
|
Если ЗначениеЗаполнено(ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия) Тогда
|
||||||
И (ДатаПредупреждения = Неопределено Или ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия < ДатаПредупреждения) Тогда
|
|
||||||
|
|
||||||
ДатаПредупреждения = ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия;
|
ДатаОкончанияДействия = ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия + КонтекстПроверки.ДобавкаВремени;
|
||||||
|
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Если ДатаОкончанияДействия > НаДату
|
||||||
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, будет прекращена.'"),
|
И (ДатаПредупреждения = Неопределено Или ДатаОкончанияДействия < ДатаПредупреждения) Тогда
|
||||||
Формат(ДанныеУдостоверяющегоЦентра.ДатаОкончанияДействия, "ДЛФ=D"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
|
||||||
|
|
||||||
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
|
ДатаПредупреждения = ДатаОкончанияДействия;
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
|
|
||||||
|
|
||||||
Если ВозможенПеревыпуск Тогда
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как аккредитация удостоверяющего центра %2, выдавшего сертификат, будет прекращена.'"),
|
||||||
|
Формат(ДатаОкончанияДействия, "ДЛФ=DT"), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра);
|
||||||
|
|
||||||
|
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
|
||||||
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
|
||||||
|
|
||||||
|
Если ВозможенПеревыпуск Тогда
|
||||||
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат");
|
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат");
|
||||||
Иначе
|
Иначе
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
|
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"),
|
||||||
СсылкаНаСтатьюОбУдостоверяющихЦентрах());
|
СсылкаНаСтатьюОбУдостоверяющихЦентрах());
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Срок действия сертификата скоро закончится.
|
// Срок действия сертификата скоро закончится.
|
||||||
@@ -485,7 +512,7 @@
|
|||||||
|
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как срок действия сертификата закончится.'"),
|
НСтр("ru = 'После %1 нельзя будет подписывать документы этим сертификатом, так как срок действия сертификата закончится.'"),
|
||||||
Формат(СвойстваСертификата.ДействителенДо, "ДЛФ=D"));
|
Формат(СвойстваСертификата.ДействителенДо, "ДЛФ=DT"));
|
||||||
|
|
||||||
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
|
ВозможенПеревыпуск = ВозможенПеревыпускСертификата(НаДату, ЭтоФизическоеЛицо, ДатаПрекращенияДействия);
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ВозможенПеревыпуск = ВозможенПеревыпуск;
|
||||||
@@ -512,11 +539,10 @@
|
|||||||
|
|
||||||
Функция ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ()
|
Функция ДатаПрекращенияДействияСертификатовВыданныхКоммерческимиУЦ()
|
||||||
|
|
||||||
Возврат Дата(2023, 1, 1);
|
Возврат Дата(2023, 1, 1) - 3*60*60; // Универсальное время относительно московского.
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
Функция СсылкаНаСтатьюОбУдостоверяющихЦентрах() Экспорт
|
Функция СсылкаНаСтатьюОбУдостоверяющихЦентрах() Экспорт
|
||||||
|
|
||||||
Возврат "https://its.1c.ru/db/eldocs#content:110:hdoc";
|
Возврат "https://its.1c.ru/db/eldocs#content:110:hdoc";
|
||||||
|
|||||||
@@ -396,24 +396,27 @@
|
|||||||
//
|
//
|
||||||
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
|
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
|
||||||
|
|
||||||
|
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
||||||
|
|
||||||
|
// Локализация
|
||||||
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено
|
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено
|
||||||
Или ЭлектроннаяПодписьСлужебныйПовтИсп.АккредитованныеУдостоверяющиеЦентры() = Неопределено Тогда
|
Или ЭлектроннаяПодписьСлужебныйПовтИсп.АккредитованныеУдостоверяющиеЦентры() = Неопределено Тогда
|
||||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
|
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
|
||||||
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
|
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
|
||||||
СертификатКриптографии);
|
СертификатКриптографии);
|
||||||
|
|
||||||
Если ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска = Неопределено Тогда
|
Если ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска = Неопределено Тогда
|
||||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйПовтИсп.ДанныеУдостоверяющегоЦентра(
|
ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйПовтИсп.ДанныеУдостоверяющегоЦентра(
|
||||||
ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска);
|
ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска);
|
||||||
|
|
||||||
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
|
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
|
||||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
|
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
|
||||||
@@ -423,7 +426,7 @@
|
|||||||
КонтекстПроверки.ДобавкаВремени = ДобавкаВремени();
|
КонтекстПроверки.ДобавкаВремени = ДобавкаВремени();
|
||||||
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
|
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
|
||||||
|
|
||||||
Результат = МодульЭлектроннаяПодписьКлиентСерверЛокализация.РезультатПроверкиУдостоверяющегоЦентраСертификата(
|
Результат = МодульЭлектроннаяПодписьКлиентСерверЛокализация.РезультатПроверкиУдостоверяющегоЦентраСертификата(
|
||||||
СертификатКриптографии, КонтекстПроверки);
|
СертификатКриптографии, КонтекстПроверки);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Результат.Предупреждение.Причина) Тогда
|
Если ЗначениеЗаполнено(Результат.Предупреждение.Причина) Тогда
|
||||||
@@ -434,6 +437,8 @@
|
|||||||
Результат.Предупреждение.Решение = СтроковыеФункции.ФорматированнаяСтрока(Результат.Предупреждение.Решение);
|
Результат.Предупреждение.Решение = СтроковыеФункции.ФорматированнаяСтрока(Результат.Предупреждение.Решение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -892,6 +897,13 @@
|
|||||||
|
|
||||||
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ПродлениеДостоверностиПодписей.ИмяМетода);
|
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ПродлениеДостоверностиПодписей.ИмяМетода);
|
||||||
|
|
||||||
|
Если Метаданные.Обработки.Найти("ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата") <> Неопределено Тогда
|
||||||
|
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата =
|
||||||
|
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||||
|
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
|
||||||
|
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам)
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// См. ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных.
|
// См. ЗагрузкаДанныхИзФайлаПереопределяемый.ПриОпределенииСправочниковДляЗагрузкиДанных.
|
||||||
@@ -979,7 +991,8 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры);
|
МодульЭлектроннаяПодписьСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйЛокализация");
|
||||||
|
МодульЭлектроннаяПодписьСлужебныйЛокализация.ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -994,14 +1007,14 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка - идентификатор классификатора.
|
// Строка - идентификатор классификатора.
|
||||||
//
|
//
|
||||||
Функция ИдентификаторКлассификатора() Экспорт
|
Функция ИдентификаторКлассификатора()
|
||||||
|
|
||||||
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
|
|
||||||
Возврат Неопределено;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
МодульЭлектроннаяПодписьСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйЛокализация");
|
МодульЭлектроннаяПодписьСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйЛокализация");
|
||||||
Возврат МодульЭлектроннаяПодписьСлужебныйЛокализация.ИдентификаторКлассификатора();
|
Если МодульЭлектроннаяПодписьСлужебныйЛокализация <> Неопределено Тогда
|
||||||
|
Возврат МодульЭлектроннаяПодписьСлужебныйЛокализация.ИдентификаторКлассификатора();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Неопределено;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -1018,17 +1031,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт
|
|
||||||
|
|
||||||
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
МодульЭлектроннаяПодписьСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебныйЛокализация");
|
|
||||||
МодульЭлектроннаяПодписьСлужебныйЛокализация.ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
// Возвращает дополнительные параметры создания менеджера криптографии.
|
// Возвращает дополнительные параметры создания менеджера криптографии.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@@ -1444,42 +1446,41 @@
|
|||||||
Процедура ЗаполнитьСписокТиповПодписейКриптографии(СписокВыбора, Операция = Неопределено, ТипПодписи = Неопределено) Экспорт
|
Процедура ЗаполнитьСписокТиповПодписейКриптографии(СписокВыбора, Операция = Неопределено, ТипПодписи = Неопределено) Экспорт
|
||||||
|
|
||||||
СписокВыбора.Очистить();
|
СписокВыбора.Очистить();
|
||||||
Если (ТипПодписи = Неопределено Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES) И Операция <> "Усовершенствование" Тогда
|
Если Операция <> "Усовершенствование"
|
||||||
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES,
|
И (Не ЗначениеЗаполнено(ТипПодписи) Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES) Тогда
|
||||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Базовая подпись (%1)
|
|
||||||
|становится недействительной после окончания срока действия сертификата подписанта (обычно в течение 1 года).'"),
|
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='Базовая подпись (%1)
|
||||||
|
|становится недействительной после окончания срока действия сертификата подписанта (обычно в течение 1 года).'"),
|
||||||
"CAdES-BES"));
|
"CAdES-BES"));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||||
|
|
||||||
ДобавитьТипПодписи = Ложь;
|
ДобавитьТипПодписи = Ложь;
|
||||||
|
|
||||||
Если РазделениеВключено Тогда
|
Если РазделениеВключено Тогда
|
||||||
ЭтоМодельСервисаСДоступнымУсовершенствованием =
|
ЭтоМодельСервисаСДоступнымУсовершенствованием = ЭлектроннаяПодпись.ОбщиеНастройки().ЭтоМодельСервисаСДоступнымУсовершенствованием;
|
||||||
ЭлектроннаяПодпись.ОбщиеНастройки().ЭтоМодельСервисаСДоступнымУсовершенствованием;
|
|
||||||
ДобавитьТипПодписи = ЭтоМодельСервисаСДоступнымУсовершенствованием Или Не Операция = "Настройки";
|
ДобавитьТипПодписи = ЭтоМодельСервисаСДоступнымУсовершенствованием Или Не Операция = "Настройки";
|
||||||
Иначе
|
Иначе
|
||||||
Если ТипПодписи = Неопределено
|
Если Не ЗначениеЗаполнено(ТипПодписи) Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST
|
||||||
Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST
|
И Операция <> "Усовершенствование" Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES Тогда
|
||||||
И Операция <> "Усовершенствование"
|
|
||||||
Или ТипПодписи = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES Тогда
|
|
||||||
ДобавитьТипПодписи = Истина;
|
ДобавитьТипПодписи = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДобавитьТипПодписи Тогда
|
Если ДобавитьТипПодписи Тогда
|
||||||
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST,
|
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST,
|
||||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Подпись с меткой доверенного времени (%1)
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|действует после окончания срока действия сертификата подписанта.'"),
|
НСтр("ru='Подпись с меткой доверенного времени (%1)
|
||||||
"CAdES-T"));
|
|действует после окончания срока действия сертификата подписанта.'"), "CAdES-T"));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Операция = Неопределено
|
Если Операция = Неопределено Или Не (РазделениеВключено И Операция = "Настройки") Тогда
|
||||||
Или Не (РазделениеВключено И Операция = "Настройки")
|
|
||||||
Тогда
|
|
||||||
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.АрхивнаяCAdESAv3,
|
СписокВыбора.Добавить(Перечисления.ТипыПодписиКриптографии.АрхивнаяCAdESAv3,
|
||||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Архивная подпись (%1)
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|содержит полный набор доказательств подлинности, в том числе цепочку сертификатов, и автоматически продлевается.'"),
|
НСтр("ru='Архивная подпись (%1)
|
||||||
"CAdES-A"));
|
|содержит полный набор доказательств подлинности, в том числе цепочку сертификатов, и автоматически продлевается.'"),
|
||||||
|
"CAdES-A"));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -2304,8 +2305,7 @@
|
|||||||
Прервать;
|
Прервать;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Выборка = РезультатЗапроса.Выбрать();
|
Выборка = РезультатЗапроса.Выбрать();
|
||||||
УсовершенствоватьРегламентнымЗаданием(
|
УсовершенствоватьРегламентнымЗаданием(Выборка, ПараметрыВыполнения);
|
||||||
Выборка, ПараметрыВыполнения);
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -2638,18 +2638,21 @@
|
|||||||
|
|
||||||
Если Результат.Успех Тогда
|
Если Результат.Успех Тогда
|
||||||
Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда
|
Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда
|
||||||
|
|
||||||
Результат.СвойстваПодписи.ПодписанныйОбъект = Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект;
|
Результат.СвойстваПодписи.ПодписанныйОбъект = Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект;
|
||||||
Результат.СвойстваПодписи.ПорядковыйНомер = Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер;
|
Результат.СвойстваПодписи.ПорядковыйНомер = Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер;
|
||||||
ПредставлениеОшибки = ОбновитьУсовершенствованнуюПодпись(
|
ПредставлениеОшибки = ОбновитьУсовершенствованнуюПодпись(Результат.СвойстваПодписи);
|
||||||
Результат.СвойстваПодписи);
|
|
||||||
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
Если ЗначениеЗаполнено(ПредставлениеОшибки) Тогда
|
||||||
Результат.Успех = Ложь;
|
Результат.Успех = Ложь;
|
||||||
Результат.ТекстОшибки = ПредставлениеОшибки;
|
Результат.ТекстОшибки = ПредставлениеОшибки;
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(Результат.СвойстваПодписи.Подпись) Тогда
|
Если ЗначениеЗаполнено(Результат.СвойстваПодписи.Подпись) Тогда
|
||||||
ЗарегистрироватьУсовершенствованиеПодписиВЖурнале(Результат.СвойстваПодписи);
|
ЗарегистрироватьУсовершенствованиеПодписиВЖурнале(Результат.СвойстваПодписи);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
@@ -2676,13 +2679,14 @@
|
|||||||
Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда
|
Если Параметры.ЭлементДанныхДляСервера.Свойство("ПодписанныйОбъект") Тогда
|
||||||
РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодписьОбъекта(Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект,
|
РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодписьОбъекта(Параметры.ЭлементДанныхДляСервера.ПодписанныйОбъект,
|
||||||
Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер, Параметры.ТипПодписи,
|
Параметры.ЭлементДанныхДляСервера.ПорядковыйНомер, Параметры.ТипПодписи,
|
||||||
Параметры.ДобавитьАрхивнуюМеткуВремени, Параметры.ИдентификаторФормы, МенеджерКриптографии);
|
Параметры.ДобавитьАрхивнуюМеткуВремени, Параметры.ИдентификаторФормы, МенеджерКриптографии);
|
||||||
Иначе
|
Иначе
|
||||||
РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодпись(Подпись,
|
РезультатЗапроса = ЭлектроннаяПодпись.УсовершенствоватьПодпись(Подпись, Параметры.ТипПодписи,
|
||||||
Параметры.ТипПодписи,
|
|
||||||
Параметры.ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии);
|
Параметры.ДобавитьАрхивнуюМеткуВремени, МенеджерКриптографии);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЗаполнитьЗначенияСвойств(Результат, РезультатЗапроса);
|
ЗаполнитьЗначенияСвойств(Результат, РезультатЗапроса);
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не Результат.Успех Тогда
|
Если Не Результат.Успех Тогда
|
||||||
@@ -3812,6 +3816,10 @@
|
|||||||
И Не СертификатПеревыпущен(Форма.Сертификат);
|
И Не СертификатПеревыпущен(Форма.Сертификат);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Форма, "РезультатПроверкиУдостоверяющегоЦентра") Тогда
|
||||||
|
Форма.РезультатПроверкиУдостоверяющегоЦентра = РезультатПроверкиУдостоверяющегоЦентраСертификата(Сертификат);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Форма.СертификатНаСервереОписаниеОшибки = Новый Структура;
|
Форма.СертификатНаСервереОписаниеОшибки = Новый Структура;
|
||||||
|
|
||||||
Если Не ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
Если Не ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
||||||
|
|||||||
@@ -359,10 +359,14 @@
|
|||||||
Если Параметры.Операция = "Подписание" Тогда
|
Если Параметры.Операция = "Подписание" Тогда
|
||||||
МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = Параметры.ЗначениеПароля;
|
МенеджерКриптографии.ПарольДоступаКЗакрытомуКлючу = Параметры.ЗначениеПароля;
|
||||||
Попытка
|
Попытка
|
||||||
Если ЭлектроннаяПодпись.ДоступнаУсовершенствованнаяПодпись() И ЗначениеЗаполнено(Параметры.ТипПодписи) Тогда
|
Если ЭлектроннаяПодпись.ДоступнаУсовершенствованнаяПодпись() Тогда
|
||||||
МенеджерКриптографии.АдресаСерверовМетокВремени = ЭлектроннаяПодпись.ОбщиеНастройки().АдресаСерверовМетокВремени;
|
НастройкиПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.НастройкиСозданияПодписи(Параметры.ТипПодписи,
|
||||||
|
ЭлектроннаяПодпись.ОбщиеНастройки().АдресаСерверовМетокВремени);
|
||||||
|
Если ЗначениеЗаполнено(НастройкиПодписи.АдресаСерверовМетокВремени) Тогда
|
||||||
|
МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени;
|
||||||
|
КонецЕсли;
|
||||||
ДвоичныеДанныеРезультата = МенеджерКриптографии.Подписать(Данные, СертификатКриптографии,
|
ДвоичныеДанныеРезультата = МенеджерКриптографии.Подписать(Данные, СертификатКриптографии,
|
||||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ТипПодписиКриптографии(Параметры.ТипПодписи));
|
НастройкиПодписи.ТипПодписи);
|
||||||
Иначе
|
Иначе
|
||||||
ДвоичныеДанныеРезультата = МенеджерКриптографии.Подписать(Данные, СертификатКриптографии);
|
ДвоичныеДанныеРезультата = МенеджерКриптографии.Подписать(Данные, СертификатКриптографии);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -294,25 +294,6 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Продолжение процедуры ДатаПодписания.
|
|
||||||
Процедура ДатаПодписанияПослеЧтенияВБуферДвоичныхДанных(БуферДанныхПодписи, Контекст) Экспорт
|
|
||||||
|
|
||||||
ДатаПодписания = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписанияУниверсальная(БуферДанныхПодписи);
|
|
||||||
|
|
||||||
Если ДатаПодписания = Неопределено Тогда
|
|
||||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Неопределено);
|
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Контекст.ПривестиКЧасовомуПоясуСеанса Тогда
|
|
||||||
ДатаПодписания = ДатаПодписания + (ОбщегоНазначенияКлиент.ДатаСеанса()
|
|
||||||
- ОбщегоНазначенияКлиент.ДатаУниверсальная());
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, ДатаПодписания);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
// Продолжение процедуры НайтиДействительныеЛичныеСертификаты.
|
// Продолжение процедуры НайтиДействительныеЛичныеСертификаты.
|
||||||
Процедура НайтиДействительныеЛичныеСертификаты(Оповещение, Отбор = Неопределено) Экспорт
|
Процедура НайтиДействительныеЛичныеСертификаты(Оповещение, Отбор = Неопределено) Экспорт
|
||||||
|
|
||||||
@@ -1240,24 +1221,75 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Контекст.Свойство("ПроверитьСертификатНаКлиенте") Тогда
|
МенеджерДляПолученияДатыПодписи = Контекст.МенеджерКриптографии;
|
||||||
МенеджерКриптографии = Контекст.МенеджерКриптографии;
|
Если Не Контекст.Свойство("ПроверитьСертификатНаКлиенте") Тогда
|
||||||
Иначе
|
|
||||||
// Проверка сертификата на сервере и на клиенте.
|
// Проверка сертификата на сервере и на клиенте.
|
||||||
МенеджерКриптографии = Неопределено;
|
Контекст.Вставить("МенеджерКриптографии", Неопределено);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Контекст.Вставить("Сертификат", Сертификат);
|
Контекст.Вставить("Сертификат", Сертификат);
|
||||||
Контекст.Вставить("МенеджерКриптографии", МенеджерКриптографии);
|
|
||||||
|
|
||||||
ЭлектроннаяПодписьКлиент.ДатаПодписания(
|
Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись
|
||||||
Новый ОписаниеОповещения("ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания", ЭтотОбъект, Контекст),
|
И ТипЗнч(МенеджерДляПолученияДатыПодписи) = Тип("МенеджерКриптографии") Тогда
|
||||||
Контекст.ДанныеПодписи);
|
Оповещение = Новый ОписаниеОповещения(
|
||||||
|
"ПроверитьПодписьНаКлиентеПослеПолученияКонтейнераПодписи", ЭтотОбъект, Контекст,
|
||||||
|
"ПроверитьПодписьНаКлиентеПослеОшибкиПолученияКонтейнераПодписиНаКлиенте", ЭтотОбъект);
|
||||||
|
МенеджерДляПолученияДатыПодписи.НачатьПолучениеКонтейнераПодписейКриптографии(Оповещение, Контекст.ДанныеПодписи);
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваПодписиИзДвоичныхДанных(Контекст.ДанныеПодписи);
|
||||||
|
|
||||||
|
Если Не СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().РазделениеВключено
|
||||||
|
И ТипЗнч(МенеджерДляПолученияДатыПодписи) = Тип("МенеджерКриптографии") Тогда
|
||||||
|
|
||||||
|
Если СвойстваПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")
|
||||||
|
И СвойстваПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST")
|
||||||
|
И СвойстваПодписи.ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS")
|
||||||
|
И СвойстваПодписи.ТипПодписи <> Неопределено Тогда
|
||||||
|
|
||||||
|
ТекстОповещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = '%1: Для проверки подписей этого типа требуется версия платформы 1С:Предприятие выше 8.3.20.1838 или 8.3.21.1302.'"),
|
||||||
|
СвойстваПодписи.ТипПодписи);
|
||||||
|
ПоказатьОповещениеПользователя(НСтр("ru = 'Для корректной проверки подписей требуется обновление платформы.'"),,
|
||||||
|
ТекстОповещения,БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное,
|
||||||
|
"ОбновлениеПлатформыДляПроверкиПодписей");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ДатаПодписания = ?(ЗначениеЗаполнено(СвойстваПодписи.ДатаШтампаВремени),
|
||||||
|
СвойстваПодписи.ДатаШтампаВремени, СвойстваПодписи.ДатаПодписания);
|
||||||
|
|
||||||
|
ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания(ДатаПодписания, Контекст);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Продолжение процедуры ПроверитьПодпись.
|
// Продолжение процедуры ПроверитьПодпись.
|
||||||
Процедура ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания(ДатаПодписания, Контекст) Экспорт
|
Процедура ПроверитьПодписьНаКлиентеПослеПолученияКонтейнераПодписи(КонтейнерПодписи, Контекст) Экспорт
|
||||||
|
|
||||||
|
ДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса();
|
||||||
|
ДобавкаВремени = ДатаСеанса - ОбщегоНазначенияКлиент.ДатаУниверсальная();
|
||||||
|
ПараметрыПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыПодписиКриптографии(
|
||||||
|
КонтейнерПодписи, ДобавкаВремени, ДатаСеанса);
|
||||||
|
ДатаПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДатаПодписиИзПараметровПодписи(ПараметрыПодписи);
|
||||||
|
ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания(ДатаПодписи, Контекст);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Продолжение процедуры ПроверитьПодпись.
|
||||||
|
Процедура ПроверитьПодписьНаКлиентеПослеОшибкиПолученияКонтейнераПодписиНаКлиенте(ИнформацияОбОшибке, СтандартнаяОбработка,
|
||||||
|
Контекст) Экспорт
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
|
||||||
|
ВыполнитьОбработкуОповещения(Контекст.Оповещение, ТекстОшибки);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Продолжение процедуры ПроверитьПодпись.
|
||||||
|
Процедура ПроверитьПодписьНаКлиентеПослеПолученияДатыПодписания(ДатаПодписания, Контекст)
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
|
Если Не ЗначениеЗаполнено(ДатаПодписания) Тогда
|
||||||
ДатаПодписания = Контекст.НаДату;
|
ДатаПодписания = Контекст.НаДату;
|
||||||
@@ -1617,8 +1649,11 @@
|
|||||||
|
|
||||||
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
|
Функция РезультатПроверкиУдостоверяющегоЦентраСертификата(СертификатКриптографии, НаДату = Неопределено, ЭтоПроверкаПодписи = Ложь) Экспорт
|
||||||
|
|
||||||
|
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
||||||
|
|
||||||
|
// Локализация
|
||||||
Если Не ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаПроверкаПоСпискуУЦ Тогда
|
Если Не ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаПроверкаПоСпискуУЦ Тогда
|
||||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль(
|
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль(
|
||||||
@@ -1627,17 +1662,15 @@
|
|||||||
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
|
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
|
||||||
СертификатКриптографии);
|
СертификатКриптографии);
|
||||||
|
|
||||||
Если ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска = Неопределено Тогда
|
Если ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска = Неопределено Тогда
|
||||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ДанныеУдостоверяющегоЦентра(
|
ДанныеУдостоверяющегоЦентра = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ДанныеУдостоверяющегоЦентра(
|
||||||
ДанныеДляПроверкиУдостоверяющегоЦентра.ПоляПоиска);
|
ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска);
|
||||||
|
|
||||||
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
|
Если ДанныеУдостоверяющегоЦентра = Неопределено Тогда
|
||||||
|
Возврат Результат;
|
||||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатПроверкиУдостоверяющегоЦентраПоУмолчанию();
|
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
|
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
|
||||||
@@ -1660,6 +1693,8 @@
|
|||||||
Результат.Предупреждение.Решение);
|
Результат.Предупреждение.Решение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -2479,6 +2514,8 @@
|
|||||||
ДополнительныеДанные.Вставить("НеподписанныеДанные");
|
ДополнительныеДанные.Вставить("НеподписанныеДанные");
|
||||||
ДополнительныеДанные.Вставить("Сертификат");
|
ДополнительныеДанные.Вставить("Сертификат");
|
||||||
ДополнительныеДанные.Вставить("Подпись");
|
ДополнительныеДанные.Вставить("Подпись");
|
||||||
|
ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверокНаКлиенте");
|
||||||
|
ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверокНаСервере");
|
||||||
|
|
||||||
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
|
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
|
||||||
ЗаполнитьЗначенияСвойств(ПараметрыФормы, ДополнительныеПараметры);
|
ЗаполнитьЗначенияСвойств(ПараметрыФормы, ДополнительныеПараметры);
|
||||||
@@ -4127,7 +4164,14 @@
|
|||||||
МодульСервисКриптографииКлиент.Подписать(Оповещение, Данные, СертификатДляПодписи, , ПараметрыОперации);
|
МодульСервисКриптографииКлиент.Подписать(Оповещение, Данные, СертификатДляПодписи, , ПараметрыОперации);
|
||||||
Иначе
|
Иначе
|
||||||
Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
Если ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаУсовершенствованнаяПодпись Тогда
|
||||||
НастройкиПодписи = НастройкиПодписания(Контекст.ОписаниеДанных.ТипПодписи);
|
Попытка
|
||||||
|
НастройкиПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.НастройкиСозданияПодписи(
|
||||||
|
Контекст.ОписаниеДанных.ТипПодписи,
|
||||||
|
ЭлектроннаяПодписьКлиент.ОбщиеНастройки().АдресаСерверовМетокВремени);
|
||||||
|
Исключение
|
||||||
|
ВыполнитьНаСторонеЦиклПослеОшибкиОперацииНаКлиенте(ИнформацияОбОшибке(), Ложь, Контекст);
|
||||||
|
Возврат;
|
||||||
|
КонецПопытки;
|
||||||
Если ЗначениеЗаполнено(НастройкиПодписи.АдресаСерверовМетокВремени) Тогда
|
Если ЗначениеЗаполнено(НастройкиПодписи.АдресаСерверовМетокВремени) Тогда
|
||||||
МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени;
|
МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -4179,9 +4223,10 @@
|
|||||||
АдресРезультата = Неопределено;
|
АдресРезультата = Неопределено;
|
||||||
|
|
||||||
Если Контекст.Операция = "Подписание" Тогда
|
Если Контекст.Операция = "Подписание" Тогда
|
||||||
|
|
||||||
|
ПараметрыДляСервера.Вставить("ТипПодписи", Контекст.ОписаниеДанных.ТипПодписи);
|
||||||
ПараметрыДляСервера.Вставить("Комментарий", Контекст.Форма.Комментарий);
|
ПараметрыДляСервера.Вставить("Комментарий", Контекст.Форма.Комментарий);
|
||||||
ПараметрыДляСервера.Вставить("ЗначениеПароля", Контекст.ЗначениеПароля);
|
ПараметрыДляСервера.Вставить("ЗначениеПароля", Контекст.ЗначениеПароля);
|
||||||
ПараметрыДляСервера.Вставить("ТипПодписи", Контекст.ОписаниеДанных.ТипПодписи);
|
|
||||||
|
|
||||||
Если Контекст.ЭлементДанных.Свойство("Объект")
|
Если Контекст.ЭлементДанных.Свойство("Объект")
|
||||||
И Не ТипЗнч(Контекст.ЭлементДанных.Объект) = Тип("ОписаниеОповещения") Тогда
|
И Не ТипЗнч(Контекст.ЭлементДанных.Объект) = Тип("ОписаниеОповещения") Тогда
|
||||||
@@ -6827,39 +6872,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция НастройкиПодписания(ТипПодписи)
|
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(ТипПодписи) Тогда
|
|
||||||
Возврат Неопределено;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Результат = Новый Структура("ТипПодписи, АдресаСерверовМетокВремени");
|
|
||||||
Результат.АдресаСерверовМетокВремени = Новый Массив;
|
|
||||||
Результат.ТипПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТипПодписиКриптографии(ТипПодписи);
|
|
||||||
|
|
||||||
Если ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST")
|
|
||||||
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.СПолнымНаборомПроверочныхДанныхCAdESC")
|
|
||||||
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.РасширеннаяДолгосрочнаяCAdESXLongType2")
|
|
||||||
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.АрхивнаяCAdESAv3") Тогда
|
|
||||||
|
|
||||||
АдресаСерверовМетокВремени = ЭлектроннаяПодписьКлиент.ОбщиеНастройки().АдресаСерверовМетокВремени;
|
|
||||||
Если АдресаСерверовМетокВремени.Количество() = 0 Тогда
|
|
||||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru='Для подписания в формате %1 заполните адреса серверов штампов времени.'"), ТипПодписи);
|
|
||||||
КонецЕсли;
|
|
||||||
Результат.АдресаСерверовМетокВремени = АдресаСерверовМетокВремени;
|
|
||||||
|
|
||||||
ИначеЕсли ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")
|
|
||||||
И ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
|
||||||
|
|
||||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru='Тип подписи криптографии %1 не поддерживается.'"), ТипПодписи);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат Результат;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
#Область ДобавлениеСертификата
|
#Область ДобавлениеСертификата
|
||||||
|
|
||||||
// Продолжение процедуры ЭлектроннаяПодписьКлиент.ДобавитьСертификат.
|
// Продолжение процедуры ЭлектроннаяПодписьКлиент.ДобавитьСертификат.
|
||||||
@@ -7841,7 +7853,6 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|
||||||
// Описание
|
// Описание
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска) Экспорт
|
Функция ДанныеУдостоверяющегоЦентра(ЗначенияПоиска) Экспорт
|
||||||
|
|
||||||
АккредитованныеУдостоверяющиеЦентры = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.АккредитованныеУдостоверяющиеЦентры();
|
АккредитованныеУдостоверяющиеЦентры = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.АккредитованныеУдостоверяющиеЦентры();
|
||||||
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
|
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
|
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектроннаяПодписьКлиентСерверЛокализация");
|
||||||
Возврат МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры);
|
Возврат МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ЗначенияПоиска, АккредитованныеУдостоверяющиеЦентры);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -992,7 +992,7 @@
|
|||||||
// * УстановившийПодпись - СправочникСсылка.Пользователи
|
// * УстановившийПодпись - СправочникСсылка.Пользователи
|
||||||
// * Комментарий - Строка
|
// * Комментарий - Строка
|
||||||
// * ИмяФайлаПодписи - Строка
|
// * ИмяФайлаПодписи - Строка
|
||||||
// * ДатаПодписи - Дата
|
// * ДатаПодписи - Дата - дата подписи неподтвержденная
|
||||||
// * ДатаПроверкиПодписи - Дата
|
// * ДатаПроверкиПодписи - Дата
|
||||||
// * ПодписьВерна - Булево
|
// * ПодписьВерна - Булево
|
||||||
// * Сертификат - ДвоичныеДанные
|
// * Сертификат - ДвоичныеДанные
|
||||||
@@ -1000,6 +1000,8 @@
|
|||||||
// * КомуВыданСертификат - Строка
|
// * КомуВыданСертификат - Строка
|
||||||
// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии
|
// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии
|
||||||
// * СрокДействияПоследнейМеткиВремени - Дата
|
// * СрокДействияПоследнейМеткиВремени - Дата
|
||||||
|
// * ДатаПодписиИзМетки - Дата
|
||||||
|
// * НеподтвержденнаяДатаПодписи - Дата
|
||||||
//
|
//
|
||||||
Функция СвойстваПодписи(ДвоичныеДанныеПодписи, СвойстваСертификата, Комментарий,
|
Функция СвойстваПодписи(ДвоичныеДанныеПодписи, СвойстваСертификата, Комментарий,
|
||||||
АвторизованныйПользователь, ИмяФайлаПодписи = "", ПараметрыПодписи = Неопределено) Экспорт
|
АвторизованныйПользователь, ИмяФайлаПодписи = "", ПараметрыПодписи = Неопределено) Экспорт
|
||||||
@@ -1016,12 +1018,17 @@
|
|||||||
СвойстваПодписи.Вставить("Сертификат", СвойстваСертификата.ДвоичныеДанные);
|
СвойстваПодписи.Вставить("Сертификат", СвойстваСертификата.ДвоичныеДанные);
|
||||||
СвойстваПодписи.Вставить("Отпечаток", СвойстваСертификата.Отпечаток);
|
СвойстваПодписи.Вставить("Отпечаток", СвойстваСертификата.Отпечаток);
|
||||||
СвойстваПодписи.Вставить("КомуВыданСертификат", СвойстваСертификата.КомуВыдан);
|
СвойстваПодписи.Вставить("КомуВыданСертификат", СвойстваСертификата.КомуВыдан);
|
||||||
|
|
||||||
СвойстваПодписи.Вставить("ТипПодписи");
|
СвойстваПодписи.Вставить("ТипПодписи");
|
||||||
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени");
|
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени");
|
||||||
|
СвойстваПодписи.Вставить("ДатаПодписиИзМетки");
|
||||||
|
СвойстваПодписи.Вставить("НеподтвержденнаяДатаПодписи");
|
||||||
|
|
||||||
Если ПараметрыПодписи <> Неопределено Тогда
|
Если ПараметрыПодписи <> Неопределено Тогда
|
||||||
СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи);
|
СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи);
|
||||||
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени", ПараметрыПодписи.СрокДействияПоследнейМеткиВремени);
|
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени", ПараметрыПодписи.СрокДействияПоследнейМеткиВремени);
|
||||||
|
СвойстваПодписи.Вставить("ДатаПодписиИзМетки", ПараметрыПодписи.ДатаПодписиИзМетки);
|
||||||
|
СвойстваПодписи.Вставить("НеподтвержденнаяДатаПодписи", ПараметрыПодписи.НеподтвержденнаяДатаПодписи);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат СвойстваПодписи;
|
Возврат СвойстваПодписи;
|
||||||
@@ -1055,6 +1062,25 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Только для внутреннего использования.
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Дата, Неопределено
|
||||||
|
//
|
||||||
|
Функция ДатаПодписиИзПараметровПодписи(ПараметрыПодписи) Экспорт
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
|
||||||
|
ПараметрыПодписи, "ДатаПодписиИзМетки", Неопределено)) Тогда
|
||||||
|
Возврат ПараметрыПодписи.ДатаПодписиИзМетки;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
|
||||||
|
ПараметрыПодписи, "НеподтвержденнаяДатаПодписи", Неопределено)) Тогда
|
||||||
|
Возврат ПараметрыПодписи.НеподтвержденнаяДатаПодписи;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Неопределено;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Только для внутреннего использования.
|
// Только для внутреннего использования.
|
||||||
//
|
//
|
||||||
@@ -1178,6 +1204,41 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Только для внутреннего использования.
|
||||||
|
Функция НастройкиСозданияПодписи(ТипПодписи, АдресаСерверовМетокВремени) Экспорт
|
||||||
|
|
||||||
|
Результат = Новый Структура("ТипПодписи, АдресаСерверовМетокВремени");
|
||||||
|
Результат.АдресаСерверовМетокВремени = АдресаСерверовМетокВремени;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ТипПодписи) Тогда
|
||||||
|
Результат.ТипПодписи = ТипПодписиКриптографии(
|
||||||
|
ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES"));
|
||||||
|
Возврат Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST")
|
||||||
|
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.СПолнымНаборомПроверочныхДанныхCAdESC")
|
||||||
|
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.РасширеннаяДолгосрочнаяCAdESXLongType2")
|
||||||
|
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.АрхивнаяCAdESAv3") Тогда
|
||||||
|
|
||||||
|
Если Результат.АдресаСерверовМетокВремени.Количество() = 0 Тогда
|
||||||
|
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='Для создания подписи типа ""%1"" заполните адреса серверов штампов времени.'"), ТипПодписи);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")
|
||||||
|
И ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='Создание подписи типа ""%1"" не поддерживается.'"), ТипПодписи);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат.ТипПодписи = ТипПодписиКриптографии(ТипПодписи);
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Только для внутреннего использования.
|
// Только для внутреннего использования.
|
||||||
Функция ПодлежитУсовершенствованию(ТипПодписи, НовыйТипПодписи) Экспорт
|
Функция ПодлежитУсовершенствованию(ТипПодписи, НовыйТипПодписи) Экспорт
|
||||||
|
|
||||||
@@ -1310,30 +1371,375 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Только для внутреннего использования.
|
// Только для внутреннего использования.
|
||||||
Функция ДатаПодписанияУниверсальная(БуферДвоичныхДанныхПодписи) Экспорт
|
Функция ДатаПодписанияУниверсальная(Данные) Экспорт
|
||||||
|
|
||||||
ДатаПодписания = Неопределено;
|
ДвоичныеДанные = ДвоичныеДанныеИзДанных(Данные,
|
||||||
|
"ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписи");
|
||||||
|
|
||||||
|
АнализДанных = НовыйАнализДанных(ДвоичныеДанные);
|
||||||
|
|
||||||
|
// SEQUENCE (PKCS #7 ContentInfo).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// OBJECT IDENTIFIER (contentType).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 6);
|
||||||
|
// 1.2.840.113549.1.7.2 signedData (PKCS #7).
|
||||||
|
ПроверитьДанныеБлока(АнализДанных, "2A864886F70D010702");
|
||||||
|
ПропуститьРодительскийБлок(АнализДанных);
|
||||||
|
// [0]CS (content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 2, 0);
|
||||||
|
// SEQUENCE (content SignedData).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// INTEGER (version Version).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 2);
|
||||||
|
// SET (digestAlgorithms DigestAlgorithmIdentifiers).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 17);
|
||||||
|
// SEQUENCE (contentInfo ContentInfo).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 16);
|
||||||
|
// [0]CS (certificates [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL).
|
||||||
|
ПропуститьБлок(АнализДанных, 2, 0, Ложь);
|
||||||
|
// [1]CS (crls [1] IMPLICIT CertificateRevocationLists OPTIONAL).
|
||||||
|
ПропуститьБлок(АнализДанных, 2, 1, Ложь);
|
||||||
|
// SET (signerInfos SET OF SignerInfo).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 17);
|
||||||
|
// SEQUENCE (signerInfo SignerInfo).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// INTEGER (version Version).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 2);
|
||||||
|
// SEQUENCE (issuerAndSerialNumber IssuerAndSerialNumber).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 16);
|
||||||
|
// SEQUENCE (digestAlgorithm DigestAlgorithmIdentifier).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 16);
|
||||||
|
// [0]CS (authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 2, 0);
|
||||||
|
|
||||||
|
Если АнализДанных.ЕстьОшибка Тогда
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СмещениеСледующего = АнализДанных.Родители[0].СмещениеСледующего;
|
||||||
|
Пока АнализДанных.Смещение < СмещениеСледующего Цикл
|
||||||
|
|
||||||
|
// SEQUENCE (Attributes).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
|
||||||
|
Если АнализДанных.ЕстьОшибка Тогда
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// OBJECT IDENTIFIER
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 6);
|
||||||
|
|
||||||
|
РазмерДанных = АнализДанных.Родители[0].РазмерДанных;
|
||||||
|
Если РазмерДанных = 0 Тогда
|
||||||
|
ПриОшибкеСтруктурыДанных(АнализДанных);
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если РазмерДанных = 9 Тогда
|
||||||
|
Буфер = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение, РазмерДанных); // БуферДвоичныхДанных
|
||||||
|
СтрокаБуфера = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер);
|
||||||
|
Если СтрокаБуфера = "2A864886F70D010905" Тогда // 1.2.840.113549.1.9.5 signingTime
|
||||||
|
|
||||||
|
ДатаПодписания = ПрочитатьДатуПодписанияИзБуфера(АнализДанных.Буфер, АнализДанных.Смещение + 11);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ДатаПодписания) Тогда
|
||||||
|
Возврат ДатаПодписания;
|
||||||
|
Иначе
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Позиция = 0;
|
|
||||||
Для Каждого Байт Из БуферДвоичныхДанныхПодписи Цикл
|
|
||||||
Если Байт = 15 И ЭтоЗаголовокДаты(БуферДвоичныхДанныхПодписи, Позиция) Тогда
|
|
||||||
ДатаСтрокой = ДатаСтрокой(БуферДвоичныхДанныхПодписи, Позиция);
|
|
||||||
Если ЭтоЦифры(ДатаСтрокой) Тогда
|
|
||||||
Попытка
|
|
||||||
ДатаПодписания = Дата("20" + ДатаСтрокой); // Универсальное время.
|
|
||||||
Прервать;
|
|
||||||
Исключение
|
|
||||||
ДатаПодписания = Неопределено;
|
|
||||||
КонецПопытки;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Позиция = Позиция + 1;
|
ПропуститьРодительскийБлок(АнализДанных); // OBJECT IDENTIFIER
|
||||||
|
ПропуститьРодительскийБлок(АнализДанных); // SEQUENCE
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Неопределено;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Только для внутреннего использования.
|
||||||
|
Функция СвойстваПодписиИзДвоичныхДанных(Данные) Экспорт
|
||||||
|
|
||||||
|
СвойстваПодписи = Новый Структура("ТипПодписи, ДатаПодписания, ДатаШтампаВремени",
|
||||||
|
ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS"), Неопределено, Неопределено);
|
||||||
|
|
||||||
|
ДвоичныеДанные = ДвоичныеДанныеИзДанных(Данные,
|
||||||
|
"ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписи");
|
||||||
|
|
||||||
|
АнализДанных = НовыйАнализДанных(ДвоичныеДанные);
|
||||||
|
|
||||||
|
// SEQUENCE (PKCS #7 ContentInfo).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// OBJECT IDENTIFIER (contentType).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 6);
|
||||||
|
// 1.2.840.113549.1.7.2 signedData (PKCS #7).
|
||||||
|
ПроверитьДанныеБлока(АнализДанных, "2A864886F70D010702");
|
||||||
|
ПропуститьРодительскийБлок(АнализДанных);
|
||||||
|
// [0]CS (content [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 2, 0);
|
||||||
|
// SEQUENCE (content SignedData).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// INTEGER (version Version).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 2);
|
||||||
|
// SET (digestAlgorithms DigestAlgorithmIdentifiers).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 17);
|
||||||
|
// SEQUENCE (contentInfo ContentInfo).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 16);
|
||||||
|
// [0]CS (certificates [0] IMPLICIT ExtendedCertificatesAndCertificates OPTIONAL).
|
||||||
|
ПропуститьБлок(АнализДанных, 2, 0, Ложь);
|
||||||
|
// [1]CS (crls [1] IMPLICIT CertificateRevocationLists OPTIONAL).
|
||||||
|
ПропуститьБлок(АнализДанных, 2, 1, Ложь);
|
||||||
|
// SET (signerInfos SET OF SignerInfo).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 17);
|
||||||
|
// SEQUENCE (signerInfo SignerInfo).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// INTEGER (version Version).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 2);
|
||||||
|
// SEQUENCE (issuerAndSerialNumber IssuerAndSerialNumber).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 16);
|
||||||
|
// SEQUENCE (digestAlgorithm DigestAlgorithmIdentifier).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 16);
|
||||||
|
// [0]CS (authenticatedAttributes [0] IMPLICIT Attributes OPTIONAL).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 2, 0);
|
||||||
|
|
||||||
|
Если АнализДанных.ЕстьОшибка Тогда
|
||||||
|
Возврат СвойстваПодписи;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЕстьДайджестСообщения = Ложь; // 1.2.840.113549.1.9.4
|
||||||
|
ЕстьТипКонтента = Ложь; // 1.2.840.113549.1.9.3
|
||||||
|
ЕстьВеткаСертификата = Ложь; // 1.2.840.113549.1.9.16.2.47 или 1.2.840.113549.1.9.16.2.12
|
||||||
|
|
||||||
|
СмещениеСледующего = АнализДанных.Родители[0].СмещениеСледующего;
|
||||||
|
Пока АнализДанных.Смещение < СмещениеСледующего И Не АнализДанных.ЕстьОшибка Цикл
|
||||||
|
|
||||||
|
// SEQUENCE (Attributes).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
|
||||||
|
Если АнализДанных.ЕстьОшибка Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// OBJECT IDENTIFIER
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 6);
|
||||||
|
|
||||||
|
РазмерДанных = АнализДанных.Родители[0].РазмерДанных;
|
||||||
|
Если РазмерДанных = 0 Тогда
|
||||||
|
ПриОшибкеСтруктурыДанных(АнализДанных);
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если РазмерДанных = 9 Тогда
|
||||||
|
Буфер = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение, РазмерДанных); // БуферДвоичныхДанных
|
||||||
|
СтрокаБуфера = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер);
|
||||||
|
|
||||||
|
Если СтрокаБуфера = "2A864886F70D010904" Тогда // 1.2.840.113549.1.9.4 messageDigest
|
||||||
|
ЕстьДайджестСообщения = Истина;
|
||||||
|
ИначеЕсли СтрокаБуфера = "2A864886F70D010903" Тогда // 1.2.840.113549.1.9.3 contentType
|
||||||
|
ЕстьТипКонтента = Истина;
|
||||||
|
ИначеЕсли СтрокаБуфера = "2A864886F70D010905" Тогда // 1.2.840.113549.1.9.5 signingTime
|
||||||
|
|
||||||
|
ДатаПодписания = ПрочитатьДатуПодписанияИзБуфера(АнализДанных.Буфер, АнализДанных.Смещение + 11);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ДатаПодписания) Тогда
|
||||||
|
СвойстваПодписи.ДатаПодписания = ДатаПодписания;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли РазмерДанных = 11 Тогда
|
||||||
|
Буфер = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение, РазмерДанных); // БуферДвоичныхДанных
|
||||||
|
СтрокаБуфера = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер);
|
||||||
|
|
||||||
|
Если СтрокаБуфера = "2A864886F70D010910022F" Тогда // 1.2.840.113549.1.9.16.2.47 signingCertificateV2
|
||||||
|
ЕстьВеткаСертификата = Истина;
|
||||||
|
ИначеЕсли СтрокаБуфера = "2A864886F70D010910020C" Тогда // 1.2.840.113549.1.9.16.2.12 signingCertificate
|
||||||
|
ЕстьВеткаСертификата = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПропуститьРодительскийБлок(АнализДанных); // OBJECT IDENTIFIER
|
||||||
|
ПропуститьРодительскийБлок(АнализДанных); // SEQUENCE
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если ЕстьВеткаСертификата И ЕстьДайджестСообщения И ЕстьТипКонтента Тогда
|
||||||
|
СвойстваПодписи.ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES");
|
||||||
|
Иначе
|
||||||
|
Возврат СвойстваПодписи;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПропуститьРодительскийБлок(АнализДанных); // [0]CS
|
||||||
|
|
||||||
|
// SEQUENCE (digestEncryptionAlgorithm AlgorithmIdentifier).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 16);
|
||||||
|
// signature SignatureValue
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 4);
|
||||||
|
// [1]CS (unsignedAttrs [1] IMPLICIT UnsignedAttributes OPTIONAL).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 2, 1);
|
||||||
|
|
||||||
|
ЕстьВеткаМеткиВремени = Ложь; // 1.2.840.113549.1.9.16.2.14
|
||||||
|
ЕстьВеткаОписаниеСертификатов = Ложь; // 1.2.840.113549.1.9.16.2.21
|
||||||
|
ЕстьВеткаОписаниеОтзыва = Ложь; // 1.2.840.113549.1.9.16.2.22
|
||||||
|
ЕстьВеткаЗначениеСертификатов = Ложь; // 1.2.840.113549.1.9.16.2.23
|
||||||
|
ЕстьВеткаЗначениеОтзыва = Ложь; // 1.2.840.113549.1.9.16.2.24
|
||||||
|
ЕстьВеткаСписокСерверовОтзыва = Ложь; // 1.2.840.113549.1.9.16.2.26
|
||||||
|
ЕстьВеткаАрхива = Ложь; // 0.4.0.1733.2.5
|
||||||
|
|
||||||
|
СмещениеСледующего = АнализДанных.Родители[0].СмещениеСледующего;
|
||||||
|
Пока АнализДанных.Смещение < СмещениеСледующего И Не АнализДанных.ЕстьОшибка Цикл
|
||||||
|
|
||||||
|
// SEQUENCE (Attributes).
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
|
||||||
|
Если АнализДанных.ЕстьОшибка Тогда
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
// OBJECT IDENTIFIER
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 6);
|
||||||
|
|
||||||
|
РазмерДанных = АнализДанных.Родители[0].РазмерДанных;
|
||||||
|
Если РазмерДанных = 0 Тогда
|
||||||
|
ПриОшибкеСтруктурыДанных(АнализДанных);
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если РазмерДанных = 11 Тогда
|
||||||
|
|
||||||
|
Буфер = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение, РазмерДанных); // БуферДвоичныхДанных
|
||||||
|
СтрокаБуфера = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер);
|
||||||
|
Если СтрокаБуфера = "2A864886F70D010910020E" Тогда // 1.2.840.113549.1.9.16.2.14 timeStampToken
|
||||||
|
|
||||||
|
ЕстьВеткаМеткиВремени = Истина;
|
||||||
|
|
||||||
|
РазмерДанных = АнализДанных.Родители[1].РазмерДанных - 13;
|
||||||
|
|
||||||
|
// SET
|
||||||
|
Буфер = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение + 11, РазмерДанных);
|
||||||
|
ДатаШтампаВремени = ПрочитатьДатуИзШтампаВремени(Буфер);
|
||||||
|
Если ЗначениеЗаполнено(ДатаШтампаВремени) Тогда
|
||||||
|
СвойстваПодписи.ДатаШтампаВремени = ДатаШтампаВремени;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли СтрокаБуфера = "2A864886F70D0109100215" Тогда // 1.2.840.113549.1.9.16.2.21 certificateRefs
|
||||||
|
ЕстьВеткаОписаниеСертификатов = Истина;
|
||||||
|
ИначеЕсли СтрокаБуфера = "2A864886F70D0109100216" Тогда // 1.2.840.113549.1.9.16.2.22 revocationRefs
|
||||||
|
ЕстьВеткаОписаниеОтзыва = Истина;
|
||||||
|
ИначеЕсли СтрокаБуфера = "2A864886F70D0109100217" Тогда // 1.2.840.113549.1.9.16.2.23 certValues
|
||||||
|
ЕстьВеткаЗначениеСертификатов = Истина;
|
||||||
|
ИначеЕсли СтрокаБуфера = "2A864886F70D0109100218" Тогда // 1.2.840.113549.1.9.16.2.24 revocationValues
|
||||||
|
ЕстьВеткаЗначениеОтзыва = Истина;
|
||||||
|
ИначеЕсли СтрокаБуфера = "2A864886F70D010910021A" Тогда // 1.2.840.113549.1.9.16.2.26 certCRLTimestamp
|
||||||
|
ЕстьВеткаСписокСерверовОтзыва = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если РазмерДанных = 6 Тогда
|
||||||
|
Буфер = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение, РазмерДанных); // БуферДвоичныхДанных
|
||||||
|
СтрокаБуфера = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер);
|
||||||
|
Если СтрокаБуфера = "04008D450204" Тогда // 0.4.0.1733.2.4 archiveTimestampV3 attribute
|
||||||
|
ЕстьВеткаАрхива = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПропуститьРодительскийБлок(АнализДанных); // OBJECT IDENTIFIER
|
||||||
|
ПропуститьРодительскийБлок(АнализДанных); // SEQUENCE
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если ЕстьВеткаАрхива Тогда
|
||||||
|
ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.АрхивнаяCAdESAv3");
|
||||||
|
ИначеЕсли ЕстьВеткаМеткиВремени И ЕстьВеткаОписаниеСертификатов И ЕстьВеткаОписаниеОтзыва
|
||||||
|
И ЕстьВеткаЗначениеСертификатов И ЕстьВеткаЗначениеОтзыва И ЕстьВеткаСписокСерверовОтзыва Тогда
|
||||||
|
ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.РасширеннаяДолгосрочнаяCAdESXLongType2");
|
||||||
|
ИначеЕсли ЕстьВеткаМеткиВремени И ЕстьВеткаОписаниеСертификатов И ЕстьВеткаОписаниеОтзыва Тогда
|
||||||
|
ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.СПолнымНаборомПроверочныхДанныхCAdESC");
|
||||||
|
ИначеЕсли ЕстьВеткаМеткиВремени Тогда
|
||||||
|
ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.СМеткойДоверенногоВремениCAdEST");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СвойстваПодписи.ТипПодписи = ТипПодписи;
|
||||||
|
|
||||||
|
Возврат СвойстваПодписи;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПрочитатьДатуПодписанияИзБуфера(Буфер, Смещение)
|
||||||
|
|
||||||
|
ТипДаты = ПолучитьHexСтрокуИзБуфераДвоичныхДанных(Буфер.Прочитать(Смещение, 2));
|
||||||
|
Если ТипДаты = "170D" Тогда // UTCTime
|
||||||
|
БуферДаты = Буфер.Прочитать(Смещение + 2, 12);
|
||||||
|
ПредставлениеДаты = "20" + ПолучитьСтрокуИзБуфераДвоичныхДанных(БуферДаты);
|
||||||
|
Иначе // GeneralizedTime
|
||||||
|
БуферДаты = Буфер.Прочитать(Смещение + 2, 14);
|
||||||
|
ПредставлениеДаты = ПолучитьСтрокуИзБуфераДвоичныхДанных(БуферДаты);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ОписаниеТипа = Новый ОписаниеТипов("Дата");
|
||||||
|
ДатаПодписания = ОписаниеТипа.ПривестиЗначение(ПредставлениеДаты);
|
||||||
Возврат ДатаПодписания;
|
Возврат ДатаПодписания;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Для функции СвойстваПодписиИзДвоичныхДанных.
|
||||||
|
Функция ПрочитатьДатуИзШтампаВремени(Буфер)
|
||||||
|
|
||||||
|
АнализДанных = Новый Структура;
|
||||||
|
АнализДанных.Вставить("ЕстьОшибка", Ложь);
|
||||||
|
АнализДанных.Вставить("ЭтоОшибкаКодированияASN1", Ложь); // Возможно данные повреждены.
|
||||||
|
АнализДанных.Вставить("ЭтоОшибкаСтруктурыДанных", Ложь); // Не найден ожидаемый элемент данных.
|
||||||
|
АнализДанных.Вставить("Смещение", 0);
|
||||||
|
АнализДанных.Вставить("Родители", Новый Массив);
|
||||||
|
АнализДанных.Вставить("Буфер", Буфер);
|
||||||
|
|
||||||
|
// SET
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 17);
|
||||||
|
// SEQUENCE
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// OBJECT IDENTIFIER signedData
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 6);
|
||||||
|
// [0]
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 2, 0);
|
||||||
|
// SEQUENCE
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// INTEGER (version Version).
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 2);
|
||||||
|
// SET
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 17);
|
||||||
|
// SEQUENCE
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// OBJECT IDENTIFIER
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 6);
|
||||||
|
// [0]
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 2, 0);
|
||||||
|
// OCTET STRING
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 4);
|
||||||
|
// SEQUENCE
|
||||||
|
ПропуститьНачалоБлока(АнализДанных, 0, 16);
|
||||||
|
// INTEGER
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 2);
|
||||||
|
// OBJECT IDENTIFIER
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 6);
|
||||||
|
// SEQUENCE
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 16);
|
||||||
|
// INTEGER
|
||||||
|
ПропуститьБлок(АнализДанных, 0, 2);
|
||||||
|
|
||||||
|
Если АнализДанных.ЕстьОшибка Тогда
|
||||||
|
ДатаШтампа = Неопределено;
|
||||||
|
Иначе
|
||||||
|
// GeneralizedTime
|
||||||
|
БуферДаты = АнализДанных.Буфер.Прочитать(АнализДанных.Смещение + 2, 14);
|
||||||
|
ПредставлениеДаты = ПолучитьСтрокуИзБуфераДвоичныхДанных(БуферДаты);
|
||||||
|
ОписаниеТипа = Новый ОписаниеТипов("Дата");
|
||||||
|
ДатаШтампа = ОписаниеТипа.ПривестиЗначение(ПредставлениеДаты);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ДатаШтампа;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Находит в XML содержимое находящееся в теге.
|
// Находит в XML содержимое находящееся в теге.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
@@ -2041,15 +2447,15 @@
|
|||||||
Функция СведенияОСертификатеСтрокой(СвойстваСертификата) Экспорт
|
Функция СведенияОСертификатеСтрокой(СвойстваСертификата) Экспорт
|
||||||
|
|
||||||
СведенияОСертификате = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
СведенияОСертификате = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Сертификат: %1
|
НСтр("ru = 'Сертификат: %1
|
||||||
|Кем выдан: %2
|
|Кем выдан: %2
|
||||||
|Владелец: %3
|
|Владелец: %3
|
||||||
|Действителен: с %4 по %5'"),
|
|Действителен: с %4 по %5'"),
|
||||||
Строка(СвойстваСертификата.СерийныйНомер),
|
Строка(СвойстваСертификата.СерийныйНомер),
|
||||||
СвойстваСертификата.КемВыдан,
|
СвойстваСертификата.КемВыдан,
|
||||||
СвойстваСертификата.КомуВыдан,
|
СвойстваСертификата.КомуВыдан,
|
||||||
Формат(СвойстваСертификата.ДатаНачала, "ДЛФ=D"),
|
Формат(СвойстваСертификата.ДатаНачала, "ДЛФ=D"),
|
||||||
Формат(СвойстваСертификата.ДатаОкончания, "ДЛФ=D"));
|
Формат(СвойстваСертификата.ДатаОкончания, "ДЛФ=D"));
|
||||||
|
|
||||||
Возврат СведенияОСертификате;
|
Возврат СведенияОСертификате;
|
||||||
|
|
||||||
@@ -2111,59 +2517,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Для процедуры ДатаПодписанияУниверсальная.
|
|
||||||
Функция ЭтоЦифры(Строка)
|
|
||||||
|
|
||||||
Для НомерСимвола = 1 По СтрДлина(Строка) Цикл
|
|
||||||
ТекущийСимвол = Сред(Строка, НомерСимвола, 1);
|
|
||||||
Если ТекущийСимвол < "0" Или ТекущийСимвол > "9" Тогда
|
|
||||||
Возврат Ложь;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Возврат Истина;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
// Для процедуры ДатаПодписанияУниверсальная.
|
|
||||||
Функция ЭтоЗаголовокДаты(БуферДвоичныхДанных, Позиция)
|
|
||||||
|
|
||||||
Если БуферДвоичныхДанных.Размер - Позиция < 3 Тогда
|
|
||||||
Возврат Ложь;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
БуферЗаголовка = БуферДвоичныхДанных.Прочитать(Позиция, 3);
|
|
||||||
|
|
||||||
Если БуферЗаголовка.Размер = 3
|
|
||||||
И БуферЗаголовка[1] = 23
|
|
||||||
И БуферЗаголовка[2] = 13 Тогда
|
|
||||||
|
|
||||||
Возврат Истина;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат Ложь;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
// Для процедуры ДатаПодписанияУниверсальная.
|
|
||||||
Функция ДатаСтрокой(БуферДвоичныхДанных, Позиция)
|
|
||||||
|
|
||||||
ПредставлениеДаты = "";
|
|
||||||
|
|
||||||
Если БуферДвоичныхДанных.Размер - (Позиция + 3) < 12 Тогда
|
|
||||||
Возврат ПредставлениеДаты;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
БуферДаты = БуферДвоичныхДанных.Прочитать(Позиция + 3, 12);
|
|
||||||
|
|
||||||
Для Каждого Байт Из БуферДаты Цикл
|
|
||||||
ПредставлениеДаты = ПредставлениеДаты + Символ(Байт);
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Возврат ПредставлениеДаты;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
// Возвращает информацию об используемом компьютере.
|
// Возвращает информацию об используемом компьютере.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
|||||||
@@ -22,113 +22,16 @@
|
|||||||
// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора.
|
// См. РаботаСКлассификаторамиПереопределяемый.ПриЗагрузкеКлассификатора.
|
||||||
Процедура ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт
|
Процедура ЗагрузитьДанныеАккредитованныхУЦ(Версия, Адрес, Обработан, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
Если ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИмяАрхива = ПолучитьИмяВременногоФайла("zip");
|
ДанныеУЦ = ПрочитатьАрхивКлассификатора(Адрес, Версия);
|
||||||
ДвоичныеДанныеАрхива = ПолучитьИзВременногоХранилища(Адрес); // ДвоичныеДанные
|
|
||||||
ДвоичныеДанныеАрхива.Записать(ИмяАрхива);
|
|
||||||
|
|
||||||
КаталогОбновлений = ФайловаяСистема.СоздатьВременныйКаталог(
|
|
||||||
Строка(Новый УникальныйИдентификатор));
|
|
||||||
|
|
||||||
ЧтениеZipФайла = Новый ЧтениеZipФайла(ИмяАрхива);
|
|
||||||
ИмяФайлаПериодыДействия = Неопределено;
|
|
||||||
ИмяФайлаДатыОкончания = Неопределено;
|
|
||||||
|
|
||||||
Для Каждого ЭлементАрхива Из ЧтениеZipФайла.Элементы Цикл
|
|
||||||
Если СтрНачинаетсяС(ЭлементАрхива.Имя, "AccreditedCA") Тогда
|
|
||||||
ИмяФайлаПериодыДействия = ЭлементАрхива.Имя;
|
|
||||||
ЧтениеZipФайла.Извлечь(ЭлементАрхива, КаталогОбновлений);
|
|
||||||
Продолжить;
|
|
||||||
КонецЕсли;
|
|
||||||
Если СтрНачинаетсяС(ЭлементАрхива.Имя, "CAExpirationDateList") Тогда
|
|
||||||
ИмяФайлаДатыОкончания = ЭлементАрхива.Имя;
|
|
||||||
ЧтениеZipФайла.Извлечь(ЭлементАрхива, КаталогОбновлений);
|
|
||||||
Продолжить;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
ЧтениеZipФайла.Закрыть();
|
|
||||||
|
|
||||||
ДанныеУЦ = Константы.АккредитованныеУдостоверяющиеЦентры.Получить().Получить();
|
|
||||||
|
|
||||||
Если ДанныеУЦ = Неопределено Тогда
|
|
||||||
ДанныеУЦ = Новый Структура;
|
|
||||||
ДанныеУЦ.Вставить("ПериодыДействия", Новый Структура("Данные, Версия, ДатаОбновления", Новый Соответствие, 0, Дата(1,1,1)));
|
|
||||||
ДанныеУЦ.Вставить("ДатыОкончанияДействия", Новый Структура("Данные, Версия, ДатаОбновления", Новый Соответствие, 0, Дата(1,1,1)));
|
|
||||||
ДанныеУЦ.Вставить("ГосударственныеУЦ", Новый Соответствие);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ИмяФайлаДатыОкончания <> Неопределено Тогда
|
|
||||||
|
|
||||||
ЧтениеJSON = Новый ЧтениеJSON;
|
|
||||||
ЧтениеJSON.ОткрытьФайл(КаталогОбновлений + ИмяФайлаДатыОкончания);
|
|
||||||
ДатыОкончания = ПрочитатьJSON(ЧтениеJSON); // Структура
|
|
||||||
ЧтениеJSON.Закрыть();
|
|
||||||
|
|
||||||
// Подготовка соответствия для быстрого поиска.
|
|
||||||
Соответствие = Новый Соответствие;
|
|
||||||
Для Каждого УЦ Из ДатыОкончания Цикл
|
|
||||||
Соответствие.Вставить(УЦ.ОГРН, ПрочитатьДатуJSON(УЦ.ДатаОкончанияДействия, ФорматДатыJSON.ISO));
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
ДанныеУЦ.ДатыОкончанияДействия.Данные = Соответствие;
|
|
||||||
ДанныеУЦ.ДатыОкончанияДействия.Версия = Версия;
|
|
||||||
ДанныеУЦ.ДатыОкончанияДействия.ДатаОбновления = ТекущаяДатаСеанса();
|
|
||||||
Иначе
|
|
||||||
ДанныеУЦ.ДатыОкончанияДействия.Данные = Новый Соответствие;
|
|
||||||
ДанныеУЦ.ДатыОкончанияДействия.Версия = Версия;
|
|
||||||
ДанныеУЦ.ДатыОкончанияДействия.ДатаОбновления = ТекущаяДатаСеанса();
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ИмяФайлаПериодыДействия <> Неопределено Тогда
|
|
||||||
|
|
||||||
СписокУЦ = ПрочитатьФайлПериодовДействияУЦ(КаталогОбновлений + ИмяФайлаПериодыДействия);
|
|
||||||
|
|
||||||
// Подготовка соответствия для быстрого поиска.
|
|
||||||
Соответствие = Новый Соответствие;
|
|
||||||
ГосударственныеУЦ = Новый Соответствие;
|
|
||||||
Для Каждого УЦ Из СписокУЦ Цикл
|
|
||||||
|
|
||||||
Наименование = УЦ.Наименование; // Строка
|
|
||||||
Наименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьПолеПоиска(Наименование);
|
|
||||||
КраткоеНаименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьПолеПоиска(УЦ.КраткоеНаименование);
|
|
||||||
|
|
||||||
ПериодыДействияМассив = Новый Массив;
|
|
||||||
Для Каждого ТекущийПериод Из УЦ.ПериодыДействия Цикл
|
|
||||||
ПериодДействияСтруктура = Новый Структура("ДатаС, ДатаПо");
|
|
||||||
ПериодДействияСтруктура.ДатаС = ПрочитатьДатуJSON(ТекущийПериод.ДатаС, ФорматДатыJSON.ISO);
|
|
||||||
Если ЗначениеЗаполнено(ТекущийПериод.ДатаПо) Тогда
|
|
||||||
ПериодДействияСтруктура.ДатаПо = ПрочитатьДатуJSON(ТекущийПериод.ДатаПо, ФорматДатыJSON.ISO);
|
|
||||||
КонецЕсли;
|
|
||||||
ПериодыДействияМассив.Добавить(ПериодДействияСтруктура);
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
Соответствие.Вставить(УЦ.ОГРН, ПериодыДействияМассив);
|
|
||||||
Соответствие.Вставить(Наименование, ПериодыДействияМассив);
|
|
||||||
Соответствие.Вставить(КраткоеНаименование, ПериодыДействияМассив);
|
|
||||||
Если УЦ.Государственный Тогда
|
|
||||||
ГосударственныеУЦ.Вставить(УЦ.ОГРН, Истина);
|
|
||||||
ГосударственныеУЦ.Вставить(Наименование, Истина);
|
|
||||||
ГосударственныеУЦ.Вставить(КраткоеНаименование, Истина);
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
ДанныеУЦ.ПериодыДействия.Данные = Соответствие;
|
|
||||||
ДанныеУЦ.ГосударственныеУЦ = ГосударственныеУЦ;
|
|
||||||
ДанныеУЦ.ПериодыДействия.Версия = Версия;
|
|
||||||
ДанныеУЦ.ПериодыДействия.ДатаОбновления = ТекущаяДатаСеанса();
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ХранилищеЗначения = Новый ХранилищеЗначения(ДанныеУЦ, Новый СжатиеДанных(6));
|
ХранилищеЗначения = Новый ХранилищеЗначения(ДанныеУЦ, Новый СжатиеДанных(6));
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
Константы.АккредитованныеУдостоверяющиеЦентры.Установить(ХранилищеЗначения);
|
Константы.АккредитованныеУдостоверяющиеЦентры.Установить(ХранилищеЗначения);
|
||||||
|
|
||||||
ФайловаяСистема.УдалитьВременныйКаталог(КаталогОбновлений);
|
|
||||||
ФайловаяСистема.УдалитьВременныйФайл(ИмяАрхива);
|
|
||||||
|
|
||||||
Обработан = Истина;
|
Обработан = Истина;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -215,12 +118,17 @@
|
|||||||
ДанныеУдостоверяющихЦентров = Константы.АккредитованныеУдостоверяющиеЦентры.Получить().Получить();
|
ДанныеУдостоверяющихЦентров = Константы.АккредитованныеУдостоверяющиеЦентры.Получить().Получить();
|
||||||
|
|
||||||
Если ДанныеУдостоверяющихЦентров = Неопределено Тогда
|
Если ДанныеУдостоверяющихЦентров = Неопределено Тогда
|
||||||
Возврат Неопределено;
|
|
||||||
|
ДанныеУдостоверяющихЦентров = ДанныеУдостоверяющихЦентровИзМакета();
|
||||||
|
Если ДанныеУдостоверяющихЦентров = Неопределено Тогда
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Результат = Новый Структура;
|
Результат = Новый Структура;
|
||||||
Результат.Вставить("ПериодыДействия", ДанныеУдостоверяющихЦентров.ПериодыДействия.Данные);
|
Результат.Вставить("ПериодыДействия", ДанныеУдостоверяющихЦентров.ПериодыДействия.Данные);
|
||||||
Результат.Вставить("ДатаПроверкиОбновления", ДанныеУдостоверяющихЦентров.ПериодыДействия.ДатаОбновления);
|
Результат.Вставить("ДатаОбновления", ДанныеУдостоверяющихЦентров.ПериодыДействия.ДатаОбновления);
|
||||||
Результат.Вставить("ДатыОкончанияДействия", ДанныеУдостоверяющихЦентров.ДатыОкончанияДействия.Данные);
|
Результат.Вставить("ДатыОкончанияДействия", ДанныеУдостоверяющихЦентров.ДатыОкончанияДействия.Данные);
|
||||||
Результат.Вставить("ГосударственныеУЦ", ДанныеУдостоверяющихЦентров.ГосударственныеУЦ);
|
Результат.Вставить("ГосударственныеУЦ", ДанныеУдостоверяющихЦентров.ГосударственныеУЦ);
|
||||||
|
|
||||||
@@ -232,6 +140,162 @@
|
|||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Функция ПрочитатьАрхивКлассификатора(Знач Архив, Версия = 0)
|
||||||
|
|
||||||
|
ИмяАрхива = ПолучитьИмяВременногоФайла("zip");
|
||||||
|
Если ТипЗнч(Архив) = Тип("Строка") Тогда
|
||||||
|
Архив = ПолучитьИзВременногоХранилища(Архив); // ДвоичныеДанные
|
||||||
|
КонецЕсли;
|
||||||
|
Архив.Записать(ИмяАрхива);
|
||||||
|
|
||||||
|
КаталогОбновлений = ФайловаяСистема.СоздатьВременныйКаталог(
|
||||||
|
Строка(Новый УникальныйИдентификатор));
|
||||||
|
|
||||||
|
ЧтениеZipФайла = Новый ЧтениеZipФайла(ИмяАрхива);
|
||||||
|
ИмяФайлаПериодыДействия = Неопределено;
|
||||||
|
ИмяФайлаДатыОкончания = Неопределено;
|
||||||
|
|
||||||
|
Для Каждого ЭлементАрхива Из ЧтениеZipФайла.Элементы Цикл
|
||||||
|
Если СтрНачинаетсяС(ЭлементАрхива.Имя, "AccreditedCA") Тогда
|
||||||
|
ИмяФайлаПериодыДействия = ЭлементАрхива.Имя;
|
||||||
|
ЧтениеZipФайла.Извлечь(ЭлементАрхива, КаталогОбновлений);
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
Если СтрНачинаетсяС(ЭлементАрхива.Имя, "CAExpirationDateList") Тогда
|
||||||
|
ИмяФайлаДатыОкончания = ЭлементАрхива.Имя;
|
||||||
|
ЧтениеZipФайла.Извлечь(ЭлементАрхива, КаталогОбновлений);
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ЧтениеZipФайла.Закрыть();
|
||||||
|
|
||||||
|
ДанныеУЦ = Новый Структура;
|
||||||
|
ДанныеУЦ.Вставить("ПериодыДействия", Новый Структура("Данные, Версия, ДатаОбновления", Новый Соответствие, 0, Дата(1,1,1)));
|
||||||
|
ДанныеУЦ.Вставить("ДатыОкончанияДействия", Новый Структура("Данные, Версия, ДатаОбновления", Новый Соответствие, 0, Дата(1,1,1)));
|
||||||
|
ДанныеУЦ.Вставить("ГосударственныеУЦ", Новый Соответствие);
|
||||||
|
|
||||||
|
Если ИмяФайлаДатыОкончания <> Неопределено Тогда
|
||||||
|
ЧтениеJSON = Новый ЧтениеJSON;
|
||||||
|
ЧтениеJSON.ОткрытьФайл(КаталогОбновлений + ИмяФайлаДатыОкончания);
|
||||||
|
ДатыОкончания = ПрочитатьJSON(ЧтениеJSON); // Структура
|
||||||
|
ЧтениеJSON.Закрыть();
|
||||||
|
|
||||||
|
// Подготовка соответствия для быстрого поиска.
|
||||||
|
Соответствие = Новый Соответствие;
|
||||||
|
Для Каждого УЦ Из ДатыОкончания Цикл
|
||||||
|
Соответствие.Вставить(УЦ.ОГРН, ПрочитатьДатуJSON(УЦ.ДатаОкончанияДействия, ФорматДатыJSON.ISO));
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ДанныеУЦ.ДатыОкончанияДействия.Данные = Соответствие;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
ДанныеУЦ.ДатыОкончанияДействия.Данные = Новый Соответствие;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ДанныеУЦ.ДатыОкончанияДействия.Версия = Версия;
|
||||||
|
ДанныеУЦ.ДатыОкончанияДействия.ДатаОбновления = ТекущаяДатаСеанса();
|
||||||
|
|
||||||
|
Если ИмяФайлаПериодыДействия <> Неопределено Тогда
|
||||||
|
|
||||||
|
СписокУЦ = ПрочитатьФайлПериодовДействияУЦ(КаталогОбновлений + ИмяФайлаПериодыДействия);
|
||||||
|
|
||||||
|
// Подготовка соответствия для быстрого поиска.
|
||||||
|
Соответствие = Новый Соответствие;
|
||||||
|
ГосударственныеУЦ = Новый Соответствие;
|
||||||
|
Для Каждого УЦ Из СписокУЦ Цикл
|
||||||
|
|
||||||
|
Наименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьЗначениеПоиска(УЦ.Наименование);
|
||||||
|
КраткоеНаименование = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьЗначениеПоиска(УЦ.КраткоеНаименование);
|
||||||
|
|
||||||
|
ПериодыДействияМассив = Новый Массив;
|
||||||
|
Для Каждого ТекущийПериод Из УЦ.ПериодыДействия Цикл
|
||||||
|
ПериодДействияСтруктура = Новый Структура("ДатаС, ДатаПо");
|
||||||
|
ПериодДействияСтруктура.ДатаС = ПрочитатьДатуJSON(ТекущийПериод.ДатаС, ФорматДатыJSON.ISO);
|
||||||
|
Если ЗначениеЗаполнено(ТекущийПериод.ДатаПо) Тогда
|
||||||
|
ПериодДействияСтруктура.ДатаПо = ПрочитатьДатуJSON(ТекущийПериод.ДатаПо, ФорматДатыJSON.ISO);
|
||||||
|
КонецЕсли;
|
||||||
|
ПериодыДействияМассив.Добавить(ПериодДействияСтруктура);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Соответствие.Вставить(УЦ.ОГРН, ПериодыДействияМассив);
|
||||||
|
Соответствие.Вставить(Наименование, ПериодыДействияМассив);
|
||||||
|
Соответствие.Вставить(КраткоеНаименование, ПериодыДействияМассив);
|
||||||
|
Если УЦ.Государственный Тогда
|
||||||
|
ГосударственныеУЦ.Вставить(УЦ.ОГРН, Истина);
|
||||||
|
ГосударственныеУЦ.Вставить(Наименование, Истина);
|
||||||
|
ГосударственныеУЦ.Вставить(КраткоеНаименование, Истина);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ДанныеУЦ.ПериодыДействия.Данные = Соответствие;
|
||||||
|
ДанныеУЦ.ГосударственныеУЦ = ГосударственныеУЦ;
|
||||||
|
ДанныеУЦ.ПериодыДействия.Версия = Версия;
|
||||||
|
ДанныеУЦ.ПериодыДействия.ДатаОбновления = ТекущаяДатаСеанса();
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ФайловаяСистема.УдалитьВременныйКаталог(КаталогОбновлений);
|
||||||
|
ФайловаяСистема.УдалитьВременныйФайл(ИмяАрхива);
|
||||||
|
|
||||||
|
Возврат ДанныеУЦ;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ДанныеУдостоверяющихЦентровИзМакета()
|
||||||
|
|
||||||
|
ОбработкаПрограммыЭлектроннойПодписиИШифрования = Метаданные.Обработки.Найти(
|
||||||
|
"ПрограммыЭлектроннойПодписиИШифрования");
|
||||||
|
|
||||||
|
Если ОбработкаПрограммыЭлектроннойПодписиИШифрования = Неопределено Тогда
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТаблицаВерсий = Новый ТаблицаЗначений;
|
||||||
|
ТаблицаВерсий.Колонки.Добавить("ИмяМакета");
|
||||||
|
ТаблицаВерсий.Колонки.Добавить("РасширеннаяВерсия", ОбщегоНазначения.ОписаниеТипаСтрока(23));
|
||||||
|
|
||||||
|
Для Каждого Макет Из ОбработкаПрограммыЭлектроннойПодписиИШифрования.Макеты Цикл
|
||||||
|
Если Макет.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.ДвоичныеДанные Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
ИмяМакета = Макет.Имя;
|
||||||
|
НачалоИмениМакета = "КлассификаторАУЦ";
|
||||||
|
Если СтрНачинаетсяС(ВРег(ИмяМакета), ВРег(НачалоИмениМакета)) Тогда
|
||||||
|
Если Сред(ИмяМакета, СтрДлина(НачалоИмениМакета) + 1, 1) <> "_" Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Версия = Сред(ИмяМакета, СтрДлина(НачалоИмениМакета) + 1);
|
||||||
|
ЧастиВерсии = СтрРазделить(Версия, "_", Ложь);
|
||||||
|
Если ЧастиВерсии.Количество() <> 4 Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РасширенныеЧастиВерсии = Новый Массив;
|
||||||
|
Для Каждого ЧастьВерсии Из ЧастиВерсии Цикл
|
||||||
|
РасширенныеЧастиВерсии.Добавить(ВРег(Прав("0000" + ЧастьВерсии, 5)));
|
||||||
|
КонецЦикла;
|
||||||
|
СтрокаТаблицыВерсий = ТаблицаВерсий.Добавить();
|
||||||
|
СтрокаТаблицыВерсий.ИмяМакета = ИмяМакета;
|
||||||
|
СтрокаТаблицыВерсий.РасширеннаяВерсия = СтрСоединить(РасширенныеЧастиВерсии, "_");
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если ТаблицаВерсий.Количество() = 0 Тогда
|
||||||
|
Возврат Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТаблицаВерсий.Сортировать("РасширеннаяВерсия Убыв");
|
||||||
|
ДвоичныеДанныеКлассификатора = Обработки["ПрограммыЭлектроннойПодписиИШифрования"].ПолучитьМакет(
|
||||||
|
ТаблицаВерсий[0].ИмяМакета);
|
||||||
|
|
||||||
|
ДанныеУЦ = ПрочитатьАрхивКлассификатора(ДвоичныеДанныеКлассификатора);
|
||||||
|
|
||||||
|
Возврат ДанныеУЦ;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Прочитать файл периодов действия УЦ.
|
// Прочитать файл периодов действия УЦ.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
|
|||||||
@@ -117,8 +117,14 @@
|
|||||||
|
|
||||||
ОбщиеНастройки.Вставить("ВерсияНастроек", Строка(Новый УникальныйИдентификатор));
|
ОбщиеНастройки.Вставить("ВерсияНастроек", Строка(Новый УникальныйИдентификатор));
|
||||||
ОбщиеНастройки.Вставить("ДоступнаУсовершенствованнаяПодпись", ДоступнаУсовершенствованнаяПодпись());
|
ОбщиеНастройки.Вставить("ДоступнаУсовершенствованнаяПодпись", ДоступнаУсовершенствованнаяПодпись());
|
||||||
ОбщиеНастройки.Вставить("АдресаСерверовМетокВремени",
|
|
||||||
СтрРазделить(Константы.АдресаСерверовМетокВремени.Получить(), ", ;" + Символы.ПС));
|
АдресаСерверовМетокВремени = Константы.АдресаСерверовМетокВремени.Получить();
|
||||||
|
Если Не ПустаяСтрока(АдресаСерверовМетокВремени) Тогда
|
||||||
|
ОбщиеНастройки.Вставить("АдресаСерверовМетокВремени", СтрРазделить(АдресаСерверовМетокВремени, ", ;" + Символы.ПС));
|
||||||
|
Иначе
|
||||||
|
ОбщиеНастройки.Вставить("АдресаСерверовМетокВремени", Новый Массив);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ОбщиеНастройки.Вставить("УсовершенствоватьПодписиАвтоматически", Константы.УсовершенствоватьПодписиАвтоматически.Получить());
|
ОбщиеНастройки.Вставить("УсовершенствоватьПодписиАвтоматически", Константы.УсовершенствоватьПодписиАвтоматически.Получить());
|
||||||
ОбщиеНастройки.Вставить("ДобавлятьМеткиВремениАвтоматически", Константы.ДобавлятьМеткиВремениАвтоматически.Получить());
|
ОбщиеНастройки.Вставить("ДобавлятьМеткиВремениАвтоматически", Константы.ДобавлятьМеткиВремениАвтоматически.Получить());
|
||||||
ОбщиеНастройки.Вставить("УсовершенствоватьПодписиСДаты", Константы.УсовершенствоватьПодписиСДаты.Получить());
|
ОбщиеНастройки.Вставить("УсовершенствоватьПодписиСДаты", Константы.УсовершенствоватьПодписиСДаты.Получить());
|
||||||
@@ -357,7 +363,7 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ДанныеУдостоверяющегоЦентра(ПоляПоиска) Экспорт
|
Функция ДанныеУдостоверяющегоЦентра(ЗначенияПоиска) Экспорт
|
||||||
|
|
||||||
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
|
Если Метаданные.ОбщиеМодули.Найти("ЭлектроннаяПодписьСлужебныйЛокализация") = Неопределено Тогда
|
||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
@@ -368,7 +374,7 @@
|
|||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ПоляПоиска, АккредитованныеУдостоверяющиеЦентры);
|
Возврат ЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеУдостоверяющегоЦентра(ЗначенияПоиска, АккредитованныеУдостоверяющиеЦентры);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -124,7 +124,7 @@
|
|||||||
|
|
||||||
Результат = Новый Структура;
|
Результат = Новый Структура;
|
||||||
Результат.Вставить("IAMТокен", IAMТокен);
|
Результат.Вставить("IAMТокен", IAMТокен);
|
||||||
Результат.Вставить("СрокДействия", СрокДействия);
|
Результат.Вставить("СрокДействия", УниверсальноеВремя(СрокДействия));
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="04e6dcc4-e931-4993-9fa2-63c16d53dadf">
|
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f8a543bf-dde2-4d89-9a16-0480ccd4f52e">
|
||||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||||
<synonym>
|
<synonym>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Библиотека стандартных подсистем, редакция 3.1</value>
|
<value>Библиотека стандартных подсистем, редакция 3.1</value>
|
||||||
</synonym>
|
</synonym>
|
||||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="e0684ff5-8b8b-4c4c-b732-cc223a36898f"/>
|
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="b77d7cc3-a79c-4521-b3f4-352aae11d9c0"/>
|
||||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="c1d357b3-b1d8-4e35-9bef-d04649204724"/>
|
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="dc23da14-5c97-4b80-a436-cde5e2e29849"/>
|
||||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="34f44a6f-e3b4-410b-a8aa-1cfdeb4e14b5"/>
|
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e5520594-f145-4ce7-8cec-db3b253f9f46"/>
|
||||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="db747947-d3c4-4a68-8a82-6fe98b2afbdd"/>
|
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="74c72375-b1b6-4d4f-9b54-242f97245e95"/>
|
||||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="88661bbd-ac65-40eb-8fb0-e7c9677b744d"/>
|
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="109ad15a-c9c9-44f0-9358-a05cf289097e"/>
|
||||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="5d385f81-74af-428b-a642-3bc9e2152e92"/>
|
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="580be518-ea9d-4b5f-af75-693d46cc14d6"/>
|
||||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="a64857dd-da1d-40cd-ad96-cba4eda6d5c2"/>
|
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="eb7938d2-e277-45cf-a0f5-332adf911ef8"/>
|
||||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||||
<usePurposes>PersonalComputer</usePurposes>
|
<usePurposes>PersonalComputer</usePurposes>
|
||||||
<scriptVariant>Russian</scriptVariant>
|
<scriptVariant>Russian</scriptVariant>
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
||||||
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
||||||
<vendor>Фирма "1С"</vendor>
|
<vendor>Фирма "1С"</vendor>
|
||||||
<version>3.1.7.34</version>
|
<version>3.1.7.61</version>
|
||||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||||
<includeHelpInContents>true</includeHelpInContents>
|
<includeHelpInContents>true</includeHelpInContents>
|
||||||
<usedMobileApplicationFunctionalities>
|
<usedMobileApplicationFunctionalities>
|
||||||
@@ -1296,7 +1296,7 @@
|
|||||||
<xDTOPackages>XDTOPackage.DataArtefacts_Files_1_0_0_1</xDTOPackages>
|
<xDTOPackages>XDTOPackage.DataArtefacts_Files_1_0_0_1</xDTOPackages>
|
||||||
<xDTOPackages>XDTOPackage.DataArtefacts_ServiceUsers_1_0_0_1</xDTOPackages>
|
<xDTOPackages>XDTOPackage.DataArtefacts_ServiceUsers_1_0_0_1</xDTOPackages>
|
||||||
<xDTOPackages>XDTOPackage.DataDump_1_0_2_1</xDTOPackages>
|
<xDTOPackages>XDTOPackage.DataDump_1_0_2_1</xDTOPackages>
|
||||||
<xDTOPackages>XDTOPackage.EnterpriseData_1_10_3</xDTOPackages>
|
<xDTOPackages>XDTOPackage.EnterpriseData_1_10_8</xDTOPackages>
|
||||||
<xDTOPackages>XDTOPackage.EnterpriseData_1_2_3</xDTOPackages>
|
<xDTOPackages>XDTOPackage.EnterpriseData_1_2_3</xDTOPackages>
|
||||||
<xDTOPackages>XDTOPackage.EnterpriseData_1_3_20</xDTOPackages>
|
<xDTOPackages>XDTOPackage.EnterpriseData_1_3_20</xDTOPackages>
|
||||||
<xDTOPackages>XDTOPackage.EnterpriseData_1_4_20</xDTOPackages>
|
<xDTOPackages>XDTOPackage.EnterpriseData_1_4_20</xDTOPackages>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{6,1,1,00283a82-1e70-4ed0-9c2a-2c767ee98ccb,1,f2871eb4-339c-4e0c-be29-b62666e84f74,"3.1.7.34","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6752,1,0,04e6dcc4-e931-4993-9fa2-63c16d53dadf,04e6dcc4-e931-4993-9fa2-63c16d53dadf,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-Line truncated
|
{6,1,1,46f419e3-e501-4cf4-8600-91959348a5b6,1,efdf524d-54ac-4cb1-b611-bf318a3b7b71,"3.1.7.61","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6753,1,0,f8a543bf-dde2-4d89-9a16-0480ccd4f52e,f8a543bf-dde2-4d89-9a16-0480ccd4f52e,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-Line truncated
|
||||||
@@ -16,6 +16,14 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Значение < 0 Или Значение > 2 Тогда
|
||||||
|
ТекстОшибки = НСтр("ru = 'Недопустимое значение константы: %1. Допустимые значения:
|
||||||
|
|0 - не усовершенствовать подписи автоматически и не показывать команды для ручной обработки в интерфейсе;
|
||||||
|
|1 - усовершенствовать регламентным заданием;
|
||||||
|
|2 - усовершенствовать вручную (показывать команды в интерфейсе администратора и в текущих делах)'");
|
||||||
|
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, Значение);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ЭлектроннаяПодписьСлужебный.ИзменитьРегламентноеЗаданиеПродлениеДостоверностиПодписей(Значение);
|
ЭлектроннаяПодписьСлужебный.ИзменитьРегламентноеЗаданиеПродлениеДостоверностиПодписей(Значение);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Copyright (c) 2022, ООО 1С-Софт
|
||||||
|
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||||
|
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||||
|
// Текст лицензии доступен по ссылке:
|
||||||
|
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||||
|
|
||||||
|
#Область ОбработчикиСобытий
|
||||||
|
|
||||||
|
Процедура ПередЗаписью(Отказ)
|
||||||
|
|
||||||
|
Если ОбменДанными.Загрузка Тогда
|
||||||
|
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ДополнительныеСвойства.Вставить("ТекущееЗначение", Константы.ЭтоАвтономноеРабочееМесто.Получить());
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриЗаписи(Отказ)
|
||||||
|
|
||||||
|
Если ОбменДанными.Загрузка Тогда
|
||||||
|
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Истина;
|
||||||
|
ПредыдущееЗначение = ДополнительныеСвойства.ТекущееЗначение;
|
||||||
|
НовоеТекущее = Значение;
|
||||||
|
|
||||||
|
ОбменДаннымиПереопределяемый.ПриИзмененииОпцииАвтономногоРежимаРаботы(ПредыдущееЗначение, НовоеТекущее, СтандартнаяОбработка);
|
||||||
|
|
||||||
|
Если СтандартнаяОбработка = Ложь Тогда
|
||||||
|
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ДополнительныеСвойства.ТекущееЗначение <> Значение Тогда
|
||||||
|
|
||||||
|
ОбновитьПовторноИспользуемыеЗначения();
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Иначе
|
||||||
|
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
|
||||||
|
#КонецЕсли
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
Функция ВерсияКалендарей() Экспорт
|
Функция ВерсияКалендарей() Экспорт
|
||||||
|
|
||||||
Возврат 36;
|
Возврат 39;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
|
|
||||||
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
|
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
|
||||||
|
|
||||||
Возврат "3.1.7.12";
|
Возврат "3.1.7.57";
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -28,7 +28,9 @@
|
|||||||
<Item Calendar="01" Year="2021" DayType="Предпраздничный" Date="20211004" SwapDate=""/>
|
<Item Calendar="01" Year="2021" DayType="Предпраздничный" Date="20211004" SwapDate=""/>
|
||||||
<Item Calendar="01" Year="2021" DayType="Праздник" Date="20211005" SwapDate=""/>
|
<Item Calendar="01" Year="2021" DayType="Праздник" Date="20211005" SwapDate=""/>
|
||||||
<Item Calendar="01" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/>
|
<Item Calendar="01" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/>
|
||||||
|
<Item Calendar="01" Year="2022" DayType="Праздник" Date="20220503" SwapDate="20220505"/>
|
||||||
<Item Calendar="01" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
|
<Item Calendar="01" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
|
||||||
|
<Item Calendar="01" Year="2022" DayType="Суббота" Date="20220505" SwapDate="20220101"/>
|
||||||
<Item Calendar="01" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
<Item Calendar="01" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
||||||
<Item Calendar="01" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
<Item Calendar="01" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
||||||
<Item Calendar="01" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
|
<Item Calendar="01" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
|
||||||
@@ -169,8 +171,7 @@
|
|||||||
<Item Calendar="05" Year="2021" DayType="Праздник" Date="20210726" SwapDate=""/>
|
<Item Calendar="05" Year="2021" DayType="Праздник" Date="20210726" SwapDate=""/>
|
||||||
<Item Calendar="05" Year="2021" DayType="Предпраздничный" Date="20210914" SwapDate=""/>
|
<Item Calendar="05" Year="2021" DayType="Предпраздничный" Date="20210914" SwapDate=""/>
|
||||||
<Item Calendar="05" Year="2021" DayType="Праздник" Date="20210915" SwapDate=""/>
|
<Item Calendar="05" Year="2021" DayType="Праздник" Date="20210915" SwapDate=""/>
|
||||||
<Item Calendar="05" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/>
|
<Item Calendar="05" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/>
|
||||||
<Item Calendar="05" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
|
|
||||||
<Item Calendar="05" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
<Item Calendar="05" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
||||||
<Item Calendar="05" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
<Item Calendar="05" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
||||||
<Item Calendar="05" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
|
<Item Calendar="05" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
|
||||||
@@ -209,8 +210,7 @@
|
|||||||
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210719" SwapDate=""/>
|
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210719" SwapDate=""/>
|
||||||
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210720" SwapDate=""/>
|
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210720" SwapDate=""/>
|
||||||
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210721" SwapDate=""/>
|
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210721" SwapDate=""/>
|
||||||
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/>
|
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/>
|
||||||
<Item Calendar="06" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
|
|
||||||
<Item Calendar="06" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
<Item Calendar="06" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
||||||
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
||||||
<Item Calendar="06" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
|
<Item Calendar="06" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
|
||||||
@@ -258,8 +258,6 @@
|
|||||||
<Item Calendar="07" Year="2021" DayType="Праздник" Date="20210901" SwapDate=""/>
|
<Item Calendar="07" Year="2021" DayType="Праздник" Date="20210901" SwapDate=""/>
|
||||||
<Item Calendar="07" Year="2021" DayType="Праздник" Date="20210920" SwapDate=""/>
|
<Item Calendar="07" Year="2021" DayType="Праздник" Date="20210920" SwapDate=""/>
|
||||||
<Item Calendar="07" Year="2022" DayType="Нерабочий" Date="20220328" SwapDate=""/>
|
<Item Calendar="07" Year="2022" DayType="Нерабочий" Date="20220328" SwapDate=""/>
|
||||||
<Item Calendar="07" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/>
|
|
||||||
<Item Calendar="07" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
|
|
||||||
<Item Calendar="07" Year="2022" DayType="Нерабочий" Date="20220521" SwapDate=""/>
|
<Item Calendar="07" Year="2022" DayType="Нерабочий" Date="20220521" SwapDate=""/>
|
||||||
<Item Calendar="07" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
<Item Calendar="07" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
||||||
<Item Calendar="07" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
<Item Calendar="07" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
||||||
@@ -322,8 +320,11 @@
|
|||||||
<Item Calendar="08" Year="2021" DayType="Праздник" Date="20211229" SwapDate=""/>
|
<Item Calendar="08" Year="2021" DayType="Праздник" Date="20211229" SwapDate=""/>
|
||||||
<Item Calendar="08" Year="2022" DayType="Предпраздничный" Date="20220302" SwapDate=""/>
|
<Item Calendar="08" Year="2022" DayType="Предпраздничный" Date="20220302" SwapDate=""/>
|
||||||
<Item Calendar="08" Year="2022" DayType="Праздник" Date="20220303" SwapDate=""/>
|
<Item Calendar="08" Year="2022" DayType="Праздник" Date="20220303" SwapDate=""/>
|
||||||
|
<Item Calendar="08" Year="2022" DayType="Праздник" Date="20220614" SwapDate=""/>
|
||||||
<Item Calendar="08" Year="2022" DayType="Предпраздничный" Date="20220704" SwapDate=""/>
|
<Item Calendar="08" Year="2022" DayType="Предпраздничный" Date="20220704" SwapDate=""/>
|
||||||
<Item Calendar="08" Year="2022" DayType="Праздник" Date="20220705" SwapDate=""/>
|
<Item Calendar="08" Year="2022" DayType="Праздник" Date="20220705" SwapDate=""/>
|
||||||
|
<Item Calendar="08" Year="2022" DayType="Праздник" Date="20221218" SwapDate="20221219"/>
|
||||||
|
<Item Calendar="08" Year="2022" DayType="Воскресенье" Date="20221219" SwapDate="20221218"/>
|
||||||
<Item Calendar="08" Year="2022" DayType="Нерабочий" Date="20221228" SwapDate=""/>
|
<Item Calendar="08" Year="2022" DayType="Нерабочий" Date="20221228" SwapDate=""/>
|
||||||
<Item Calendar="09" Year="2016" DayType="Праздник" Date="20160503" SwapDate="20160504"/>
|
<Item Calendar="09" Year="2016" DayType="Праздник" Date="20160503" SwapDate="20160504"/>
|
||||||
<Item Calendar="09" Year="2016" DayType="Суббота" Date="20160504" SwapDate="20160503"/>
|
<Item Calendar="09" Year="2016" DayType="Суббота" Date="20160504" SwapDate="20160503"/>
|
||||||
@@ -360,9 +361,9 @@
|
|||||||
<Item Calendar="09" Year="2021" DayType="Суббота" Date="20210504" SwapDate="20210503"/>
|
<Item Calendar="09" Year="2021" DayType="Суббота" Date="20210504" SwapDate="20210503"/>
|
||||||
<Item Calendar="09" Year="2021" DayType="Нерабочий" Date="20210513" SwapDate=""/>
|
<Item Calendar="09" Year="2021" DayType="Нерабочий" Date="20210513" SwapDate=""/>
|
||||||
<Item Calendar="09" Year="2021" DayType="Нерабочий" Date="20210720" SwapDate=""/>
|
<Item Calendar="09" Year="2021" DayType="Нерабочий" Date="20210720" SwapDate=""/>
|
||||||
<Item Calendar="09" Year="2022" DayType="Нерабочий" Date="20220502" SwapDate="20220501"/>
|
<Item Calendar="09" Year="2022" DayType="Суббота" Date="20220502" SwapDate="20220503"/>
|
||||||
<Item Calendar="09" Year="2022" DayType="Праздник" Date="20220503" SwapDate="20220504"/>
|
<Item Calendar="09" Year="2022" DayType="Праздник" Date="20220503" SwapDate="20220504"/>
|
||||||
<Item Calendar="09" Year="2022" DayType="Суббота" Date="20220504" SwapDate="20220503"/>
|
<Item Calendar="09" Year="2022" DayType="Рабочий" Date="20220504" SwapDate="20220501"/>
|
||||||
<Item Calendar="09" Year="2022" DayType="Нерабочий" Date="20220709" SwapDate=""/>
|
<Item Calendar="09" Year="2022" DayType="Нерабочий" Date="20220709" SwapDate=""/>
|
||||||
<Item Calendar="11" Year="2016" DayType="Праздник" Date="20160822" SwapDate=""/>
|
<Item Calendar="11" Year="2016" DayType="Праздник" Date="20160822" SwapDate=""/>
|
||||||
<Item Calendar="11" Year="2017" DayType="Предпраздничный" Date="20170821" SwapDate=""/>
|
<Item Calendar="11" Year="2017" DayType="Предпраздничный" Date="20170821" SwapDate=""/>
|
||||||
@@ -584,8 +585,7 @@
|
|||||||
<Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220415" SwapDate=""/>
|
<Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220415" SwapDate=""/>
|
||||||
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220416" SwapDate="20220418"/>
|
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220416" SwapDate="20220418"/>
|
||||||
<Item Calendar="20" Year="2022" DayType="Суббота" Date="20220418" SwapDate="20220416"/>
|
<Item Calendar="20" Year="2022" DayType="Суббота" Date="20220418" SwapDate="20220416"/>
|
||||||
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220502" SwapDate="20220504"/>
|
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/>
|
||||||
<Item Calendar="20" Year="2022" DayType="Воскресенье" Date="20220504" SwapDate="20220501"/>
|
|
||||||
<Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
<Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
|
||||||
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
|
||||||
<Item Calendar="20" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
|
<Item Calendar="20" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
|
||||||
|
|||||||
+1
-1
@@ -3466,7 +3466,7 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ОтправитьЗаявлениеПослеПредупреждения(Контекст) Экспорт
|
Процедура ОтправитьЗаявлениеПослеПредупреждения(Результат, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
ОтправитьЗаявлениеВБумажномВидеПродолжение("Отправить", Неопределено);
|
ОтправитьЗаявлениеВБумажномВидеПродолжение("Отправить", Неопределено);
|
||||||
|
|
||||||
|
|||||||
+7
@@ -1386,6 +1386,13 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// См. ОчередьЗаданийПереопределяемый.ПриОпределенииПсевдонимовОбработчиков.
|
||||||
|
Процедура ПриОпределенииПсевдонимовОбработчиков(СоответствиеИменПсевдонимам) Экспорт
|
||||||
|
|
||||||
|
СоответствиеИменПсевдонимам.Вставить(Метаданные.РегламентныеЗадания.ОбновлениеСостоянияЗаявленияНаВыпускСертификата.ИмяМетода);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
Функция КоличествоЗаявленийВРаботе() Экспорт
|
Функция КоличествоЗаявленийВРаботе() Экспорт
|
||||||
|
|||||||
@@ -78,6 +78,7 @@
|
|||||||
Перем ТипВидСчета; // Тип("ВидСчета")
|
Перем ТипВидСчета; // Тип("ВидСчета")
|
||||||
Перем ТипТип; // Тип("Тип")
|
Перем ТипТип; // Тип("Тип")
|
||||||
Перем ТипСоответствие; // Тип("Соответствие").
|
Перем ТипСоответствие; // Тип("Соответствие").
|
||||||
|
Перем ТипОписаниеТипов; // Тип("ОписаниеТипов").
|
||||||
Перем ТипСтрока36;
|
Перем ТипСтрока36;
|
||||||
Перем ТипСтрока255;
|
Перем ТипСтрока255;
|
||||||
|
|
||||||
@@ -350,8 +351,9 @@
|
|||||||
|
|
||||||
СтекВыгрузкиОбъекта.Добавить(ИсточникСсылка);
|
СтекВыгрузкиОбъекта.Добавить(ИсточникСсылка);
|
||||||
|
|
||||||
// Циклическая ссылка на объект.
|
// Циклическая ссылка на объект и
|
||||||
ЗапоминатьВыгруженные = ОбъектВыгружаетсяПоСсылкеИзСамогоСебя;
|
// дополнительно учитываем настройку в правилах.
|
||||||
|
ЗапоминатьВыгруженные = ОбъектВыгружаетсяПоСсылкеИзСамогоСебя И (ПКО.ЗапоминатьВыгруженные);
|
||||||
|
|
||||||
ВыгруженныеОбъекты = ПКО.Выгруженные;
|
ВыгруженныеОбъекты = ПКО.Выгруженные;
|
||||||
ВсеОбъектыВыгружены = ПКО.ВсеОбъектыВыгружены;
|
ВсеОбъектыВыгружены = ПКО.ВсеОбъектыВыгружены;
|
||||||
@@ -3862,6 +3864,8 @@
|
|||||||
Результат = "УникальныйИдентификатор";
|
Результат = "УникальныйИдентификатор";
|
||||||
ИначеЕсли ТипЗначения = ТипВидДвиженияНакопления Тогда
|
ИначеЕсли ТипЗначения = ТипВидДвиженияНакопления Тогда
|
||||||
Результат = "ВидДвиженияНакопления";
|
Результат = "ВидДвиженияНакопления";
|
||||||
|
ИначеЕсли ТипЗначения = ТипОписаниеТипов Тогда // Для конвертации элементов ПВХ
|
||||||
|
Результат = "ОписаниеТипов";
|
||||||
Иначе
|
Иначе
|
||||||
Менеджер = Менеджеры[ТипЗначения];
|
Менеджер = Менеджеры[ТипЗначения];
|
||||||
Если Менеджер = Неопределено Тогда
|
Если Менеджер = Неопределено Тогда
|
||||||
@@ -3874,6 +3878,262 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
#Область РаботаСОписаниемТипов
|
||||||
|
|
||||||
|
Функция ОписаниеТиповВJSON(ЗначениеОписаниеТипов)
|
||||||
|
|
||||||
|
МассивТиповОписанияТипов = ЗначениеОписаниеТипов.Типы();
|
||||||
|
ЭтоСоставнойТип = (МассивТиповОписанияТипов.Количество() > 1);
|
||||||
|
|
||||||
|
ЗаписьJSON = Новый ЗаписьJSON;
|
||||||
|
ЗаписьJSON.УстановитьСтроку();
|
||||||
|
ЗаписьJSON.ЗаписатьНачалоОбъекта();
|
||||||
|
ЗаписьJSON.ЗаписатьИмяСвойства("TypeDescription");
|
||||||
|
|
||||||
|
ЗаписьJSON.ЗаписатьНачалоМассива();
|
||||||
|
|
||||||
|
ЗаписьJSON.ЗаписатьНачалоОбъекта();
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "multiple", Строка(ЭтоСоставнойТип));
|
||||||
|
ЗаписьJSON.ЗаписатьКонецОбъекта();
|
||||||
|
|
||||||
|
Для каждого ТипЗначенияОписанияТипов Из МассивТиповОписанияТипов Цикл
|
||||||
|
|
||||||
|
ТипОписания = ТипЗнч(ТипЗначенияОписанияТипов);
|
||||||
|
Если ТипОписания <> Тип("Тип") Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗаписьJSON.ЗаписатьНачалоОбъекта();
|
||||||
|
|
||||||
|
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначенияОписанияТипов);
|
||||||
|
Если ОбъектМетаданных = Неопределено Тогда
|
||||||
|
|
||||||
|
СериализоватьОписаниеПримитивногоТипа(ЗаписьJSON, ТипЗначенияОписанияТипов, ЗначениеОписаниеТипов);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
СериализоватьОписаниеСсылочногоТипа(ЗаписьJSON, ОбъектМетаданных);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗаписьJSON.ЗаписатьКонецОбъекта();
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ЗаписьJSON.ЗаписатьКонецМассива();
|
||||||
|
ЗаписьJSON.ЗаписатьКонецОбъекта(); // "TypeDescription"
|
||||||
|
|
||||||
|
Возврат ЗаписьJSON.Закрыть();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОписаниеТиповИзJSON(ТекстJSON)
|
||||||
|
|
||||||
|
ОписаниеТиповТипаЗначения = Новый ОписаниеТипов;
|
||||||
|
Если ПустаяСтрока(ТекстJSON) Тогда
|
||||||
|
|
||||||
|
Возврат ОписаниеТиповТипаЗначения;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МассивИменОписанийТипов = Новый Массив;
|
||||||
|
|
||||||
|
ЧтениеJSON = Новый ЧтениеJSON;
|
||||||
|
ЧтениеJSON.УстановитьСтроку(ТекстJSON);
|
||||||
|
|
||||||
|
КвалификаторСтрокиДлина = 0;
|
||||||
|
КвалификаторСтрокиДопустимаяДлина = ДопустимаяДлина.Переменная;
|
||||||
|
|
||||||
|
КвалификаторЧислаРазрядность = 0;
|
||||||
|
КвалификаторЧислаРазрядностьДробнойЧасти = 0;
|
||||||
|
КвалификаторЧислаДопустимыйЗнак = ДопустимыйЗнак.Любой;
|
||||||
|
|
||||||
|
КвалификаторДатыЧастиДаты = ЧастиДаты.ДатаВремя;
|
||||||
|
|
||||||
|
Пока ЧтениеJSON.Прочитать() Цикл
|
||||||
|
|
||||||
|
Если ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.ИмяСвойства Тогда
|
||||||
|
|
||||||
|
Если ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("TypeDescription") Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("multiple") Тогда
|
||||||
|
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
// Признак того, что это составной тип не используется
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("typeFeatures") Тогда
|
||||||
|
|
||||||
|
ИмяТипаСтрокой = "";
|
||||||
|
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
|
||||||
|
ИмяТипаСтрокой = СокрЛП(ЧтениеJSON.ТекущееЗначение);
|
||||||
|
Если ВРег(ИмяТипаСтрокой) = ВРег("String") Тогда
|
||||||
|
|
||||||
|
МассивИменОписанийТипов.Добавить(Тип("Строка"));
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ИмяТипаСтрокой) = ВРег("number") Тогда
|
||||||
|
|
||||||
|
МассивИменОписанийТипов.Добавить(Тип("Число"));
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ИмяТипаСтрокой) = ВРег("Date") Тогда
|
||||||
|
|
||||||
|
МассивИменОписанийТипов.Добавить(Тип("Дата"));
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ИмяТипаСтрокой) = ВРег("Boolean") Тогда
|
||||||
|
|
||||||
|
МассивИменОписанийТипов.Добавить(Тип("Булево"));
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
|
||||||
|
// Обязательно необходимо использовать попытку, т.к. при переименовании объектов,
|
||||||
|
// например, ДоговорЛизинга (2.4) в ДоговорАренды (2.5) возникает ошибка получения типа.
|
||||||
|
МассивИменОписанийТипов.Добавить(Тип(ИмяТипаСтрокой));
|
||||||
|
|
||||||
|
Исключение
|
||||||
|
|
||||||
|
// Необходимо пропустить исключение для типов, которые переименованы или удалены
|
||||||
|
ТекстКомментария = НСтр("ru ='Метаданные не обнаружены: %1.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
ТекстКомментария = СтрШаблон(ТекстКомментария, ИмяТипаСтрокой);
|
||||||
|
|
||||||
|
ЗаписьЖурналаРегистрацииОбменДанными(ТекстКомментария, УровеньЖурналаРегистрации.Предупреждение);
|
||||||
|
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("lengthStr") Тогда
|
||||||
|
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
КвалификаторСтрокиДлина = Число(ЧтениеJSON.ТекущееЗначение);
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("typeStr") Тогда
|
||||||
|
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
Если НЕ ПустаяСтрока(ЧтениеJSON.ТекущееЗначение) Тогда
|
||||||
|
|
||||||
|
КвалификаторСтрокиДопустимаяДлина = ДопустимаяДлина[ЧтениеJSON.ТекущееЗначение];
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("lengthInt") Тогда
|
||||||
|
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
КвалификаторЧислаРазрядность = Число(ЧтениеJSON.ТекущееЗначение);
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("decimal") Тогда
|
||||||
|
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
КвалификаторЧислаРазрядностьДробнойЧасти = Число(ЧтениеJSON.ТекущееЗначение);
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("sign") Тогда
|
||||||
|
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
Если ВРег(ЧтениеJSON.ТекущееЗначение) <> ВРег("any") Тогда
|
||||||
|
|
||||||
|
КвалификаторЧислаДопустимыйЗнак = ДопустимыйЗнак.Неотрицательный;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("typeDate") Тогда
|
||||||
|
|
||||||
|
ЧтениеJSON.Прочитать();
|
||||||
|
Если ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("Data") Тогда
|
||||||
|
|
||||||
|
КвалификаторДатыЧастиДаты = ЧастиДаты.Дата;
|
||||||
|
|
||||||
|
ИначеЕсли ВРег(ЧтениеJSON.ТекущееЗначение) = ВРег("Time") Тогда
|
||||||
|
|
||||||
|
КвалификаторДатыЧастиДаты = ЧастиДаты.Время;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.НачалоОбъекта
|
||||||
|
ИЛИ ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.НачалоМассива
|
||||||
|
ИЛИ ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.КонецОбъекта
|
||||||
|
ИЛИ ЧтениеJSON.ТипТекущегоЗначения = ТипЗначенияJSON.КонецМассива Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КвалификаторТипаСтрока = Новый КвалификаторыСтроки(КвалификаторСтрокиДлина, КвалификаторСтрокиДопустимаяДлина);
|
||||||
|
КвалификаторТипаЧисло = Новый КвалификаторыЧисла(КвалификаторЧислаРазрядность,КвалификаторЧислаРазрядностьДробнойЧасти,КвалификаторЧислаДопустимыйЗнак);
|
||||||
|
КвалификаторТипаДата = Новый КвалификаторыДаты(КвалификаторДатыЧастиДаты);
|
||||||
|
|
||||||
|
Возврат Новый ОписаниеТипов(МассивИменОписанийТипов, , , КвалификаторТипаЧисло, КвалификаторТипаСтрока, КвалификаторТипаДата);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, ИмяСвойства, ЗначениеСвойства)
|
||||||
|
|
||||||
|
ЗаписьJSON.ЗаписатьИмяСвойства(ИмяСвойства);
|
||||||
|
ЗаписьJSON.ЗаписатьЗначение(ЗначениеСвойства);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СериализоватьОписаниеПримитивногоТипа(ЗаписьJSON, ТипЗначенияОписанияТипов, ЗначениеОписаниеТипов)
|
||||||
|
|
||||||
|
Если ТипЗначенияОписанияТипов = Тип("Строка") Тогда
|
||||||
|
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", "string");
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "lengthStr", Строка(ЗначениеОписаниеТипов.КвалификаторыСтроки.Длина));
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeStr", Строка(ЗначениеОписаниеТипов.КвалификаторыСтроки.ДопустимаяДлина));
|
||||||
|
|
||||||
|
ИначеЕсли ТипЗначенияОписанияТипов = Тип("Число") Тогда
|
||||||
|
|
||||||
|
ДопустимыйЗнакЧисла = ЗначениеОписаниеТипов.КвалификаторыЧисла.ДопустимыйЗнак;
|
||||||
|
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", "number");
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "lengthInt", ЗначениеОписаниеТипов.КвалификаторыЧисла.Разрядность);
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "decimal", ЗначениеОписаниеТипов.КвалификаторыЧисла.РазрядностьДробнойЧасти);
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "sign", ?(ДопустимыйЗнакЧисла = ДопустимыйЗнак.Любой, "any", "non-negative"));
|
||||||
|
|
||||||
|
ИначеЕсли ТипЗначенияОписанияТипов = Тип("Дата") Тогда
|
||||||
|
|
||||||
|
ОписаниеЧастейДаты = "dateTime";
|
||||||
|
Если ЗначениеОписаниеТипов.КвалификаторыДаты.ЧастиДаты = ЧастиДаты.Дата Тогда
|
||||||
|
|
||||||
|
ОписаниеЧастейДаты = "data";
|
||||||
|
|
||||||
|
ИначеЕсли ЗначениеОписаниеТипов.КвалификаторыДаты.ЧастиДаты = ЧастиДаты.Время Тогда
|
||||||
|
|
||||||
|
ОписаниеЧастейДаты = "time";
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", "date");
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeDate", ОписаниеЧастейДаты);
|
||||||
|
|
||||||
|
ИначеЕсли ТипЗначенияОписанияТипов = Тип("Булево") Тогда
|
||||||
|
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", "boolean");
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура СериализоватьОписаниеСсылочногоТипа(ЗаписьJSON, ОбъектМетаданных)
|
||||||
|
|
||||||
|
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||||
|
ПолноеИмя = СтрЗаменить(ПолноеИмя, ".", "Ссылка.");
|
||||||
|
|
||||||
|
ДобавитьСвойствоИЗначениеJSON(ЗаписьJSON, "typeFeatures", ПолноеИмя);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -4072,7 +4332,6 @@
|
|||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
|
||||||
Если (Тип = ТипСтрока)
|
Если (Тип = ТипСтрока)
|
||||||
ИЛИ (Тип = ТипБулево)
|
ИЛИ (Тип = ТипБулево)
|
||||||
ИЛИ (Тип = ТипЧисло)
|
ИЛИ (Тип = ТипЧисло)
|
||||||
@@ -4084,6 +4343,10 @@
|
|||||||
|
|
||||||
Возврат XMLЗначение(Тип, Значение);
|
Возврат XMLЗначение(Тип, Значение);
|
||||||
|
|
||||||
|
ИначеЕсли (Тип = ТипОписаниеТипов) Тогда
|
||||||
|
|
||||||
|
Возврат ОписаниеТиповИзJSON(Значение);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
Возврат одПолучитьЗначениеПоСтроке(Значение, Тип, ИскатьПоСвойству);
|
Возврат одПолучитьЗначениеПоСтроке(Значение, Тип, ИскатьПоСвойству);
|
||||||
@@ -7688,6 +7951,10 @@
|
|||||||
// Нужно определять свойство по соответствию.
|
// Нужно определять свойство по соответствию.
|
||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
|
|
||||||
|
ИначеЕсли СтроковыйТипСвойства = "ОпределениеТипа" Тогда
|
||||||
|
|
||||||
|
Возврат Тип("ОписаниеТипов");
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Тип(СтроковыйТипСвойства);
|
Возврат Тип(СтроковыйТипСвойства);
|
||||||
@@ -9893,6 +10160,10 @@
|
|||||||
СтруктураСвойств = Менеджеры[ТипОбъекта];
|
СтруктураСвойств = Менеджеры[ТипОбъекта];
|
||||||
ИмяТипаОбъекта = СтруктураСвойств.ИмяТипа;
|
ИмяТипаОбъекта = СтруктураСвойств.ИмяТипа;
|
||||||
|
|
||||||
|
// Временный обход: запоминаем в таблицу значений движения документов
|
||||||
|
// по регистрам Бухгалтерии. После записи документа запишем движения.
|
||||||
|
//
|
||||||
|
ТаблицыОтложеннойЗаписиДвижений = Новый Соответствие;
|
||||||
|
|
||||||
Если ИмяТипаОбъекта = "Документ" Тогда
|
Если ИмяТипаОбъекта = "Документ" Тогда
|
||||||
|
|
||||||
@@ -10290,14 +10561,36 @@
|
|||||||
|
|
||||||
Если ИмяУзла = "ТабличнаяЧасть" Тогда
|
Если ИмяУзла = "ТабличнаяЧасть" Тогда
|
||||||
|
|
||||||
// Загрузка элементов из табличной части.
|
Если ЗагрузкаТабличнойЧастиПоддерживается(Объект, Имя) = Истина Тогда
|
||||||
ЗагрузитьТабличнуюЧасть(Объект, Имя, ИнформацияОТипах, ПараметрыОбъекта, Правило);
|
|
||||||
|
// Загрузка элементов из табличной части.
|
||||||
|
ЗагрузитьТабличнуюЧасть(Объект, Имя, ИнформацияОТипах, ПараметрыОбъекта, Правило);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ИначеЕсли ИмяУзла = "НаборЗаписей" Тогда
|
ИначеЕсли ИмяУзла = "НаборЗаписей" Тогда
|
||||||
|
|
||||||
// загрузка движений
|
// загрузка движений
|
||||||
ЗагрузитьДвижения(Объект, Имя, Не НеОчищать, ИнформацияОТипах, ПараметрыОбъекта, Правило);
|
ЗагрузитьДвижения(Объект, Имя, Не НеОчищать, ИнформацияОТипах, ПараметрыОбъекта, Правило);
|
||||||
|
|
||||||
|
// "Хозрасчетный","Международный"
|
||||||
|
Если Метаданные.РегистрыБухгалтерии.Найти(Имя) <> Неопределено Тогда
|
||||||
|
|
||||||
|
ЗагруженныеДвижения = Объект.Движения[Имя].Выгрузить();
|
||||||
|
Если ЗагруженныеДвижения.Количество() > 0 Тогда
|
||||||
|
|
||||||
|
// Обход ошибки платформы 30178033.
|
||||||
|
// Порядок субконто в записи регистра бухгалтерии не соответствует порядку,
|
||||||
|
// который указан в счете учета.
|
||||||
|
УстранитьОшибкуНазначенияВидаСубконто(ЗагруженныеДвижения);
|
||||||
|
|
||||||
|
ТаблицыОтложеннойЗаписиДвижений.Вставить(Имя, ЗагруженныеДвижения);
|
||||||
|
Объект.Движения[Имя].Очистить();
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИначеЕсли (ИмяУзла = "Объект") И (ФайлОбмена.ТипУзла = ТипУзлаXMLКонецЭлемента) Тогда
|
ИначеЕсли (ИмяУзла = "Объект") И (ФайлОбмена.ТипУзла = ТипУзлаXMLКонецЭлемента) Тогда
|
||||||
@@ -10455,6 +10748,8 @@
|
|||||||
|
|
||||||
ЗаписатьОбъектВИБ(Объект, ТипОбъекта, ЗаписатьОбъект, ОтправкаНазад);
|
ЗаписатьОбъектВИБ(Объект, ТипОбъекта, ЗаписатьОбъект, ОтправкаНазад);
|
||||||
|
|
||||||
|
ЗаписатьРегистрыБухгалтерии(Объект.Ссылка, ТаблицыОтложеннойЗаписиДвижений);
|
||||||
|
|
||||||
Если ЗаписатьОбъект
|
Если ЗаписатьОбъект
|
||||||
И Объект <> Неопределено
|
И Объект <> Неопределено
|
||||||
И Объект.Ссылка <> Неопределено Тогда
|
И Объект.Ссылка <> Неопределено Тогда
|
||||||
@@ -10621,6 +10916,28 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ЗагрузкаТабличнойЧастиПоддерживается(Объект, ИмяТабличнойЧасти)
|
||||||
|
|
||||||
|
МетаданныеОбъекта = Объект.Метаданные();
|
||||||
|
Если НЕ Метаданные.Справочники.Содержит(МетаданныеОбъекта)
|
||||||
|
И НЕ Метаданные.ПланыВидовХарактеристик.Содержит(МетаданныеОбъекта) Тогда
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ДляЭлемента = Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента;
|
||||||
|
Если Объект.ЭтоГруппа
|
||||||
|
И МетаданныеОбъекта.ТабличныеЧасти[ИмяТабличнойЧасти].Использование = ДляЭлемента Тогда
|
||||||
|
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура ВыполнитьПереходНаНовыйОбмен()
|
Процедура ВыполнитьПереходНаНовыйОбмен()
|
||||||
|
|
||||||
ИмяПланаОбмена = ИмяПланаОбмена();
|
ИмяПланаОбмена = ИмяПланаОбмена();
|
||||||
@@ -10640,6 +10957,143 @@
|
|||||||
ВызватьИсключение НСтр("ru = 'Синхронизация данных по старой настройке отменена.'");
|
ВызватьИсключение НСтр("ru = 'Синхронизация данных по старой настройке отменена.'");
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ЗаписатьРегистрыБухгалтерии(Регистратор, ТаблицыОтложеннойЗаписиДвижений)
|
||||||
|
|
||||||
|
Если НЕ ЗначениеЗаполнено(Регистратор.Ссылка) Тогда
|
||||||
|
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для каждого ОписаниеТаблицыДвижений Из ТаблицыОтложеннойЗаписиДвижений Цикл
|
||||||
|
|
||||||
|
ИмяРегистра = ОписаниеТаблицыДвижений.Ключ;
|
||||||
|
ТаблицаДвижений = ОписаниеТаблицыДвижений.Значение;
|
||||||
|
|
||||||
|
Если ТипЗнч(ТаблицаДвижений) <> Тип("ТаблицаЗначений")
|
||||||
|
ИЛИ ТаблицаДвижений.Количество() < 1 Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НаборЗаписейРегистра = РегистрыБухгалтерии[ИмяРегистра].СоздатьНаборЗаписей();
|
||||||
|
НаборЗаписейРегистра.Отбор.Регистратор.Установить(Регистратор, Истина);
|
||||||
|
Для каждого СтрокаТаблицы Из ТаблицаДвижений Цикл
|
||||||
|
|
||||||
|
ЗаписьНабора = НаборЗаписейРегистра.Добавить();
|
||||||
|
ЗаполнитьЗначенияСвойств(ЗаписьНабора, СтрокаТаблицы);
|
||||||
|
|
||||||
|
НомерСубконтоДт = 0;
|
||||||
|
Для каждого ОписаниеВидаСубконтоДт Из ЗаписьНабора.СчетДт.ВидыСубконто Цикл
|
||||||
|
|
||||||
|
НомерСубконтоДт = НомерСубконтоДт + 1;
|
||||||
|
ЗаписьНабора.СубконтоДт[ОписаниеВидаСубконтоДт.ВидСубконто] = СтрокаТаблицы["СубконтоДт" + Строка(НомерСубконтоДт)];
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
НомерСубконтоКт = 0;
|
||||||
|
Для каждого ОписаниеВидаСубконтоКт Из ЗаписьНабора.СчетКт.ВидыСубконто Цикл
|
||||||
|
|
||||||
|
НомерСубконтоКт = НомерСубконтоКт + 1;
|
||||||
|
ЗаписьНабора.СубконтоКт[ОписаниеВидаСубконтоКт.ВидСубконто] = СтрокаТаблицы["СубконтоКт" + Строка(НомерСубконтоКт)];
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписейРегистра, Истина, Ложь, Ложь);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПроверитьКоллекциюСубконто(СтрокаТаблицы, ЗначенияДоИсправления, Направление, ЕстьОшибка)
|
||||||
|
|
||||||
|
КоллекцияВидовСубконто = СтрокаТаблицы["Счет" + Направление].ВидыСубконто;
|
||||||
|
|
||||||
|
Для каждого ВидСубконтоИзКоллекции Из КоллекцияВидовСубконто Цикл
|
||||||
|
|
||||||
|
ТипСубконто = Направление + Строка(ВидСубконтоИзКоллекции.НомерСтроки);
|
||||||
|
|
||||||
|
ИмяСубконто = "Субконто" + ТипСубконто;
|
||||||
|
ИмяВидыСубконто = "ВидСубконто" + ТипСубконто;
|
||||||
|
|
||||||
|
ОписаниеСубконто = Новый Структура;
|
||||||
|
ОписаниеСубконто.Вставить("ЕстьОшибка", Ложь);
|
||||||
|
ОписаниеСубконто.Вставить("Субконто", СтрокаТаблицы[ИмяСубконто]);
|
||||||
|
ОписаниеСубконто.Вставить("ВидСубконто", СтрокаТаблицы[ИмяВидыСубконто]);
|
||||||
|
|
||||||
|
Если СтрокаТаблицы[ИмяВидыСубконто] <> ВидСубконтоИзКоллекции.ВидСубконто Тогда
|
||||||
|
|
||||||
|
ОписаниеСубконто.ЕстьОшибка = Истина;
|
||||||
|
|
||||||
|
СтрокаТаблицы[ИмяСубконто] = Неопределено;
|
||||||
|
СтрокаТаблицы[ИмяВидыСубконто] = ВидСубконтоИзКоллекции.ВидСубконто;
|
||||||
|
|
||||||
|
ЕстьОшибка = Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗначенияДоИсправления.Вставить(ТипСубконто, ОписаниеСубконто);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура УстранитьОшибкуНазначенияВидаСубконто(ЗагруженныеДвижения)
|
||||||
|
|
||||||
|
Для каждого СтрокаТаблицы Из ЗагруженныеДвижения Цикл
|
||||||
|
|
||||||
|
ЕстьОшибка = Ложь;
|
||||||
|
|
||||||
|
ЗначенияДоИсправления = Новый Соответствие;
|
||||||
|
|
||||||
|
ПроверитьКоллекциюСубконто(СтрокаТаблицы, ЗначенияДоИсправления, "Дт", ЕстьОшибка);
|
||||||
|
ПроверитьКоллекциюСубконто(СтрокаТаблицы, ЗначенияДоИсправления, "Кт", ЕстьОшибка);
|
||||||
|
|
||||||
|
Если ЕстьОшибка Тогда
|
||||||
|
|
||||||
|
Для каждого ЭлементСоответствия Из ЗначенияДоИсправления Цикл
|
||||||
|
|
||||||
|
ОписаниеСубконто = ЭлементСоответствия.Значение;
|
||||||
|
Если НЕ ОписаниеСубконто.ЕстьОшибка Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИмяВидаСубконтоИсправляемого = "ВидСубконто" + ЭлементСоответствия.Ключ;
|
||||||
|
|
||||||
|
Для каждого АльтернативныйЭлемент Из ЗначенияДоИсправления Цикл
|
||||||
|
|
||||||
|
АльтернативноеОписание = АльтернативныйЭлемент.Значение;
|
||||||
|
Если НЕ АльтернативноеОписание.ЕстьОшибка
|
||||||
|
ИЛИ ЭлементСоответствия.Ключ = АльтернативныйЭлемент.Ключ Тогда
|
||||||
|
|
||||||
|
Продолжить;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТипЗначенияСубконто = СтрокаТаблицы[ИмяВидаСубконтоИсправляемого].ТипЗначения;
|
||||||
|
Если СтрокаТаблицы[ИмяВидаСубконтоИсправляемого] = АльтернативноеОписание.ВидСубконто
|
||||||
|
И ТипЗначенияСубконто.СодержитТип(ТипЗнч(АльтернативноеОписание["Субконто"])) Тогда
|
||||||
|
|
||||||
|
СтрокаТаблицы["Субконто" + ЭлементСоответствия.Ключ] = АльтернативноеОписание["Субконто"];
|
||||||
|
Прервать;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область ПроцедурыВыгрузкиДанных
|
#Область ПроцедурыВыгрузкиДанных
|
||||||
@@ -11242,6 +11696,13 @@
|
|||||||
|
|
||||||
Значение = ОбъектДляПолученияДанных[ИмяСвойства];
|
Значение = ОбъектДляПолученияДанных[ИмяСвойства];
|
||||||
|
|
||||||
|
// Для ОписанияТипов дополнительно сериализуем значением в JSON
|
||||||
|
Если ПКС.ТипИсточника = "ОпределениеТипа" Тогда
|
||||||
|
|
||||||
|
Значение = ОписаниеТиповВJSON(Значение);
|
||||||
|
|
||||||
|
КонецЕсли
|
||||||
|
|
||||||
Исключение
|
Исключение
|
||||||
|
|
||||||
Если КодОшибки <> 14 Тогда
|
Если КодОшибки <> 14 Тогда
|
||||||
@@ -11679,6 +12140,10 @@
|
|||||||
|
|
||||||
Значение = Строка(Значение);
|
Значение = Строка(Значение);
|
||||||
|
|
||||||
|
ИначеЕсли ТипЗначения = ТипОписаниеТипов Тогда
|
||||||
|
|
||||||
|
Значение = Строка(Значение);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
СвойствоУстановлено = Ложь;
|
СвойствоУстановлено = Ложь;
|
||||||
@@ -14114,6 +14579,7 @@
|
|||||||
ТипВидСчета = Тип("ВидСчета");
|
ТипВидСчета = Тип("ВидСчета");
|
||||||
ТипТип = Тип("Тип");
|
ТипТип = Тип("Тип");
|
||||||
ТипСоответствие = Тип("Соответствие");
|
ТипСоответствие = Тип("Соответствие");
|
||||||
|
ТипОписаниеТипов = Тип("ОписаниеТипов");
|
||||||
|
|
||||||
ТипСтрока36 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(36));
|
ТипСтрока36 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(36));
|
||||||
ТипСтрока255 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(255));
|
ТипСтрока255 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(255));
|
||||||
@@ -15480,8 +15946,19 @@
|
|||||||
ПравилаОбмена.Прочитать();
|
ПравилаОбмена.Прочитать();
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));
|
|
||||||
|
Если ПравилаОбмена.Значение = "ОпределениеТипа" Тогда
|
||||||
|
|
||||||
|
СоответствиеТипа.Вставить(ИмяУзла, Тип("ОписаниеТипов")); // Необходимо привести JSON к ОписаниеТипов
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ПравилаОбмена.Прочитать();
|
ПравилаОбмена.Прочитать();
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЗагрузитьСоответствиеТиповДляОдногоТипа(ПравилаОбмена, СоответствиеТипа);
|
ЗагрузитьСоответствиеТиповДляОдногоТипа(ПравилаОбмена, СоответствиеТипа);
|
||||||
@@ -15512,8 +15989,19 @@
|
|||||||
ЗагрузитьОдинТипДанных(ПравилаОбмена, НовоеСоответствие, ПравилаОбмена.ЛокальноеИмя);
|
ЗагрузитьОдинТипДанных(ПравилаОбмена, НовоеСоответствие, ПравилаОбмена.ЛокальноеИмя);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));
|
|
||||||
|
Если ПравилаОбмена.Значение = "ОпределениеТипа" Тогда
|
||||||
|
|
||||||
|
СоответствиеТипа.Вставить(ИмяУзла, Тип("ОписаниеТипов")); // Необходимо привести JSON к ОписаниеТипов
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
СоответствиеТипа.Вставить(ИмяУзла, Тип(ПравилаОбмена.Значение));
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ПравилаОбмена.Прочитать();
|
ПравилаОбмена.Прочитать();
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|||||||
+5
-1
@@ -2160,7 +2160,11 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Проверим максимальный номер сборки из обработчиков модуля
|
// Проверим максимальный номер сборки из обработчиков модуля
|
||||||
НомераМаксимум = СтрРазделить(Максимум.Версия, ".");
|
Если ЗначениеЗаполнено(Максимум.Версия) Тогда
|
||||||
|
НомераМаксимум = СтрРазделить(Максимум.Версия, ".");
|
||||||
|
Иначе
|
||||||
|
НомераМаксимум = СтрРазделить(НоваяВерсияКонфигурации, ".");
|
||||||
|
КонецЕсли;
|
||||||
ПерваяЦифраМаксимум = НомераМаксимум[0];
|
ПерваяЦифраМаксимум = НомераМаксимум[0];
|
||||||
НомераМаксимум.Удалить(0);
|
НомераМаксимум.Удалить(0);
|
||||||
Максимум3Последних = Обработка.ВерсияЧислом(НомераМаксимум);
|
Максимум3Последних = Обработка.ВерсияЧислом(НомераМаксимум);
|
||||||
|
|||||||
@@ -1960,11 +1960,11 @@
|
|||||||
|
|
||||||
// Возвращает время прошедшее между указанными датами в формате "00:00:00".
|
// Возвращает время прошедшее между указанными датами в формате "00:00:00".
|
||||||
// Если задан параметр СтруктураВремени, то в нем возвращаются отдельные значения Часы, Минуты, Секунды.
|
// Если задан параметр СтруктураВремени, то в нем возвращаются отдельные значения Часы, Минуты, Секунды.
|
||||||
// если ВремяНач = 0 преобразовывает дату в формат времени возвращает СтруктуруВремени если попросить.
|
// если ВремяНачала = 0 преобразовывает дату в формат времени возвращает СтруктуруВремени если попросить.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ВремяКон - Дата - время окончания.
|
// ВремяОкончания - Дата - время окончания.
|
||||||
// ВремяНач - Дата - время начала.
|
// ВремяНачала - Дата - время начала.
|
||||||
// СтруктураВремени - Структура - составляющие части в отдельности:
|
// СтруктураВремени - Структура - составляющие части в отдельности:
|
||||||
// * Часы - Число
|
// * Часы - Число
|
||||||
// * Минуты - Число
|
// * Минуты - Число
|
||||||
@@ -1974,8 +1974,8 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка
|
// Строка
|
||||||
//
|
//
|
||||||
Функция РазностьВремени(ВремяКон, ВремяНач = 0, СтруктураВремени = Неопределено)
|
Функция РазностьВремени(ВремяОкончания, ВремяНачала = 0, СтруктураВремени = Неопределено)
|
||||||
Разность = ВремяКон - ВремяНач;
|
Разность = ВремяОкончания - ВремяНачала;
|
||||||
РазностьВремениСек = Макс(-Разность,Разность);
|
РазностьВремениСек = Макс(-Разность,Разность);
|
||||||
Часы = Цел(РазностьВремениСек/3600);
|
Часы = Цел(РазностьВремениСек/3600);
|
||||||
Минуты = Цел(РазностьВремениСек/60) - 60*Часы;
|
Минуты = Цел(РазностьВремениСек/60) - 60*Часы;
|
||||||
|
|||||||
@@ -50,7 +50,9 @@ TD {
|
|||||||
</li>
|
</li>
|
||||||
<li><strong>Шифрование</strong> - включите флажок, для того чтобы разрешить шифрование файлов.
|
<li><strong>Шифрование</strong> - включите флажок, для того чтобы разрешить шифрование файлов.
|
||||||
</li>
|
</li>
|
||||||
<li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Настройки электронной подписи и шифрования</a> - переход к настройке параметров подключения средств криптографии: электронной подписи и шифрования. </li>
|
<li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Сертификаты и программы электронной подписи и шифрования</a> - переход к настройке параметров подключения средств криптографии: электронной подписи и шифрования. </li>
|
||||||
|
<li><strong>Проверять подписи и сертификаты на сервере</strong> - В этом случае проверка электронной подписи и сертификата будет происходить на сервере или веб-сервере, что позволяет не устанавливать программу на каждом компьютере, где требуются только такие операции.</li>
|
||||||
|
<li><b>Подписывать и шифровать на сервере</b> - позволяет не устанавливать программу криптографии на компьютер пользователя для подписания, шифрования и расшифровки. В этом случае необходимо установить программу криптографии и сертификат с закрытым ключом на компьютере, где работает сервер 1С:Предприятия или веб-сервер.</li>
|
||||||
<a name="СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS"></a>
|
<a name="СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS"></a>
|
||||||
<li><b>Использовать сервис DSS</b> - включите флажок, для того чтобы разрешить использовать электронную подпись сервиса DSS и для операций криптографии сервиса DSS. После этого в списке <b>Настройки электронной подписи и шифрования</b> можно добавить учетные записи DSS, а также становятся доступными команды:</li>
|
<li><b>Использовать сервис DSS</b> - включите флажок, для того чтобы разрешить использовать электронную подпись сервиса DSS и для операций криптографии сервиса DSS. После этого в списке <b>Настройки электронной подписи и шифрования</b> можно добавить учетные записи DSS, а также становятся доступными команды:</li>
|
||||||
<li><a href="DataProcessor.УправлениеПодключениемDSS.Form.СписокЭкземпляровСервераDSS/Help">Серверы DSS</a> - переход к настройке серверов DSS.</li>
|
<li><a href="DataProcessor.УправлениеПодключениемDSS.Form.СписокЭкземпляровСервераDSS/Help">Серверы DSS</a> - переход к настройке серверов DSS.</li>
|
||||||
|
|||||||
@@ -8034,6 +8034,19 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>ОтменаСопоставления</name>
|
||||||
|
<id>65</id>
|
||||||
|
<valueType>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</attributes>
|
||||||
<formCommands>
|
<formCommands>
|
||||||
<name>ОбновитьИнформациюСопоставленияПолностью</name>
|
<name>ОбновитьИнформациюСопоставленияПолностью</name>
|
||||||
<title>
|
<title>
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
ЗавершитьВыполнениеДлительнойОперации(ИдентификаторЗадания);
|
ЗавершитьВыполнениеДлительнойОперации(ИдентификаторЗадания);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ПолученоСообщениеДляСопоставленияДанных Тогда
|
Если ПолученоСообщениеДляСопоставленияДанных И Не ОтменаСопоставления Тогда
|
||||||
Если (ЗакончитьСопоставлениеДанных И Не ПропуститьПолучениеДанных)
|
Если (ЗакончитьСопоставлениеДанных И Не ПропуститьПолучениеДанных)
|
||||||
Или (РезультатЗагрузкиДанных = "Предупреждение_СообщениеОбменаБылоРанееПринято")
|
Или (РезультатЗагрузкиДанных = "Предупреждение_СообщениеОбменаБылоРанееПринято")
|
||||||
Или УдалитьСообщениеДляСопоставления Тогда
|
Или УдалитьСообщениеДляСопоставления Тогда
|
||||||
@@ -310,6 +310,7 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура КомандаОтмена(Команда)
|
Процедура КомандаОтмена(Команда)
|
||||||
|
|
||||||
|
ОтменаСопоставления = Истина;
|
||||||
Закрыть();
|
Закрыть();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
+2
@@ -2147,6 +2147,8 @@
|
|||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИнтернетВебАдрес = СокрЛП(ИнтернетВебАдрес);
|
||||||
|
|
||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|||||||
BIN
Binary file not shown.
+9
@@ -19,4 +19,13 @@
|
|||||||
<usePurposes>PersonalComputer</usePurposes>
|
<usePurposes>PersonalComputer</usePurposes>
|
||||||
<usePurposes>MobileDevice</usePurposes>
|
<usePurposes>MobileDevice</usePurposes>
|
||||||
</forms>
|
</forms>
|
||||||
|
<templates uuid="766f2abe-1dfd-4e16-bffd-83f44d25d82a">
|
||||||
|
<name>КлассификаторАУЦ_1_0_0_0</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Классификатор АУЦ</value>
|
||||||
|
</synonym>
|
||||||
|
<comment>АПК:497 Не подлежит переводу, находится в локализованной части</comment>
|
||||||
|
<templateType>BinaryData</templateType>
|
||||||
|
</templates>
|
||||||
</mdclass:DataProcessor>
|
</mdclass:DataProcessor>
|
||||||
@@ -2209,6 +2209,15 @@
|
|||||||
|
|
||||||
Результат = Новый Структура("Всего, Успешно", 0, 0);
|
Результат = Новый Структура("Всего, Успешно", 0, 0);
|
||||||
|
|
||||||
|
Если ТипЗнч(СтруктураИменМетаданных) = Тип("Структура")
|
||||||
|
И Описание.ЭтоКонстанта
|
||||||
|
И НЕ СтруктураИменМетаданных.Свойство("Константы") Тогда
|
||||||
|
|
||||||
|
// Если нужно зарегистрировать все изменения, при этом в составе плана обмена нет констант.
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если СтруктураИменМетаданных <> Неопределено
|
Если СтруктураИменМетаданных <> Неопределено
|
||||||
И Описание.ЭтоКонстанта
|
И Описание.ЭтоКонстанта
|
||||||
И Не Описание.ЭтоКоллекция
|
И Не Описание.ЭтоКоллекция
|
||||||
|
|||||||
+3
@@ -839,6 +839,9 @@
|
|||||||
Процедура ПоказатьУстановленныеИсправления()
|
Процедура ПоказатьУстановленныеИсправления()
|
||||||
|
|
||||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
|
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
|
||||||
|
ПараметрыОткрытия = Новый Структура;
|
||||||
|
ПараметрыОткрытия.Вставить("Исправления", Исправления);
|
||||||
|
|
||||||
МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
|
МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
|
||||||
МодульОбновлениеКонфигурацииКлиент.ПоказатьУстановленныеИсправления(Исправления);
|
МодульОбновлениеКонфигурацииКлиент.ПоказатьУстановленныеИсправления(Исправления);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
+61
-1
@@ -99,12 +99,40 @@
|
|||||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||||
<group>HorizontalIfPossible</group>
|
<group>HorizontalIfPossible</group>
|
||||||
<behavior>Auto</behavior>
|
<behavior>Auto</behavior>
|
||||||
|
<representation>NormalSeparation</representation>
|
||||||
<showLeftMargin>true</showLeftMargin>
|
<showLeftMargin>true</showLeftMargin>
|
||||||
<united>true</united>
|
<united>true</united>
|
||||||
<throughAlign>Auto</throughAlign>
|
<throughAlign>Auto</throughAlign>
|
||||||
<currentRowUse>Auto</currentRowUse>
|
<currentRowUse>Auto</currentRowUse>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
|
<items xsi:type="form:Button">
|
||||||
|
<name>ФормаПроверитьНаличиеИсправлений</name>
|
||||||
|
<id>23</id>
|
||||||
|
<visible>true</visible>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ФормаПроверитьНаличиеИсправленийРасширеннаяПодсказка</name>
|
||||||
|
<id>24</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<type>Hyperlink</type>
|
||||||
|
<commandName>Form.Command.ПроверитьНаличиеИсправлений</commandName>
|
||||||
|
<buttonImportance>Normal</buttonImportance>
|
||||||
|
<representation>Auto</representation>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<placementArea>UserCmds</placementArea>
|
||||||
|
<representationInContextMenu>Auto</representationInContextMenu>
|
||||||
|
</items>
|
||||||
<items xsi:type="form:FormGroup">
|
<items xsi:type="form:FormGroup">
|
||||||
<name>ГруппаТехническаяИнформацияОРезультатахОбновления</name>
|
<name>ГруппаТехническаяИнформацияОРезультатахОбновления</name>
|
||||||
<id>10</id>
|
<id>10</id>
|
||||||
@@ -113,7 +141,7 @@
|
|||||||
<id>5</id>
|
<id>5</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>
|
||||||
@@ -351,6 +379,20 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>ОшибкаПриУстановкеПатчей</name>
|
||||||
|
<id>6</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>
|
||||||
@@ -413,6 +455,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>4</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>
|
||||||
|
|||||||
+151
@@ -51,6 +51,26 @@
|
|||||||
КаталогСкрипта = МодульОбновлениеКонфигурации.КаталогСкрипта();
|
КаталогСкрипта = МодульОбновлениеКонфигурации.КаталогСкрипта();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей")
|
||||||
|
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации")
|
||||||
|
И Не ОбщегоНазначения.РазделениеВключено()
|
||||||
|
И Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
|
||||||
|
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
|
||||||
|
МодульИнтернетПоддержкаПользователейКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиентСервер");
|
||||||
|
ВерсияБИП = МодульИнтернетПоддержкаПользователейКлиентСервер.ВерсияБиблиотеки();
|
||||||
|
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБИП, "2.6.3.0") < 0 Тогда
|
||||||
|
Элементы.ФормаПроверитьНаличиеИсправлений.Видимость = Ложь;
|
||||||
|
Иначе
|
||||||
|
ДанныеАутентификации = МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки();
|
||||||
|
|
||||||
|
Если ДанныеАутентификации = Неопределено Тогда
|
||||||
|
Элементы.ФормаПроверитьНаличиеИсправлений.Видимость = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
Иначе
|
||||||
|
Элементы.ФормаПроверитьНаличиеИсправлений.Видимость = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
@@ -153,4 +173,135 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПроверитьНаличиеИсправлений(Команда)
|
||||||
|
Результат = ДоступныеИсправленияНаСервере();
|
||||||
|
|
||||||
|
Если Результат = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Результат.Ошибка Тогда
|
||||||
|
ПоказатьПредупреждение(, Результат.КраткоеОписаниеОшибки);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||||
|
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||||
|
ПараметрыВопроса.Заголовок = НСтр("ru = 'Проверка наличия исправлений'");
|
||||||
|
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Информация;
|
||||||
|
|
||||||
|
Если Результат.КоличествоИсправлений = 0 Тогда
|
||||||
|
Сообщение = НСтр("ru = 'Доступных исправлений (патчей) не найдено.'");
|
||||||
|
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, Сообщение, РежимДиалогаВопрос.ОК, ПараметрыВопроса);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Сообщение = НСтр("ru = 'Найдено исправлений: %1. Выполнить установку?'");
|
||||||
|
Сообщение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Сообщение, Результат.КоличествоИсправлений);
|
||||||
|
|
||||||
|
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьДоступныеИсправленияПродолжение", ЭтотОбъект, Результат);
|
||||||
|
|
||||||
|
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Вопрос32;
|
||||||
|
ПараметрыВопроса.КнопкаПоУмолчанию = КодВозвратаДиалога.Да;
|
||||||
|
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОписаниеОповещения, Сообщение, РежимДиалогаВопрос.ДаНет, ПараметрыВопроса);
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Функция ДоступныеИсправленияНаСервере()
|
||||||
|
Результат = Неопределено;
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы") Тогда
|
||||||
|
МодульПолучениеОбновленийПрограммы = ОбщегоНазначения.ОбщийМодуль("ПолучениеОбновленийПрограммы");
|
||||||
|
Результат = МодульПолучениеОбновленийПрограммы.ИнформацияОДоступныхИсправлениях();
|
||||||
|
Если Результат <> Неопределено Тогда
|
||||||
|
Исправления = Результат.Исправления.ВыгрузитьКолонку("Наименование");
|
||||||
|
Результат.Вставить("КоличествоИсправлений", Результат.Исправления.Количество());
|
||||||
|
Результат.Вставить("Исправления", Исправления);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ПроверитьДоступныеИсправленияПродолжение(Результат, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
|
Если Результат = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Результат.Значение = КодВозвратаДиалога.Нет Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ДлительнаяОперация = ЗапускУстановкиИсправлений();
|
||||||
|
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
|
||||||
|
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбработатьРезультат", ЭтотОбъект, ДополнительныеПараметры);
|
||||||
|
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаСервере
|
||||||
|
Функция ЗапускУстановкиИсправлений()
|
||||||
|
|
||||||
|
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
|
||||||
|
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Установка доступных исправлений после ошибки обновления.'");
|
||||||
|
Возврат ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "ПолучениеОбновленийПрограммы.ЗагрузитьИУстановитьИсправления");
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОбработатьРезультат(Результат, ДополнительныеПараметры) Экспорт
|
||||||
|
Если Результат = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||||
|
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||||
|
ПараметрыВопроса.Заголовок = НСтр("ru = 'Установка исправлений'");
|
||||||
|
|
||||||
|
Если Результат.Статус = "Ошибка" Тогда
|
||||||
|
ПоказатьПредупреждение(, Результат.КраткоеПредставлениеОшибки);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РезультатУстановки = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
|
||||||
|
Если РезультатУстановки.Ошибка Тогда
|
||||||
|
ТекстОшибки = РезультатУстановки.КраткоеОписаниеОшибки
|
||||||
|
+ Символы.ПС + Символы.ПС + НСтр("ru = 'Технические подробности о проблеме см. в журнале регистрации.'");
|
||||||
|
|
||||||
|
Кнопки = Новый СписокЗначений;
|
||||||
|
Кнопки.Добавить("ЖурналРегистрации", НСтр("ru = 'Журнал регистрации'"));
|
||||||
|
Кнопки.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
|
||||||
|
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Предупреждение32;
|
||||||
|
ПараметрыВопроса.КнопкаПоУмолчанию = "Закрыть";
|
||||||
|
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьОшибкуУстановкиПатчей", ЭтотОбъект);
|
||||||
|
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(ОписаниеОповещения, ТекстОшибки, Кнопки, ПараметрыВопроса);
|
||||||
|
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыОткрытия = Новый Структура;
|
||||||
|
ПараметрыОткрытия.Вставить("Исправления", ДополнительныеПараметры.Исправления);
|
||||||
|
ПараметрыОткрытия.Вставить("ПриОбновлении", Истина);
|
||||||
|
МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
|
||||||
|
МодульОбновлениеКонфигурацииКлиент.ПоказатьУстановленныеИсправления(ПараметрыОткрытия, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОбработатьОшибкуУстановкиПатчей(Результат, ДополнительныеПараметры) Экспорт
|
||||||
|
Если Результат = Неопределено Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Результат.Значение = "ЖурналРегистрации" Тогда
|
||||||
|
ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации();
|
||||||
|
КонецЕсли;
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -838,8 +838,8 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура УстановитьВидимостьДополнительныхРеквизитов(НачальноеНомер, КонечныйНомер, Видимость)
|
Процедура УстановитьВидимостьДополнительныхРеквизитов(НачальныйНомер, КонечныйНомер, Видимость)
|
||||||
Для Сч = НачальноеНомер По КонечныйНомер Цикл
|
Для Сч = НачальныйНомер По КонечныйНомер Цикл
|
||||||
Элементы["ДеревоПомеченныхНаУдалениеРеквизит" + Сч].Видимость = Видимость;
|
Элементы["ДеревоПомеченныхНаУдалениеРеквизит" + Сч].Видимость = Видимость;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
Loaded 100 of 182 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user