3_1_5_110
This commit is contained in:
1 parent
1dd0aae5bd
commit
4161ee88c2
910 files changed
+131083
-20319
No files matched your search
@@ -14,7 +14,7 @@
|
||||
// Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере.
|
||||
// Для существующего - в ПриЧтенииНаСервере.
|
||||
Если Объект.Ссылка.Пустая() Тогда
|
||||
ИнициализацияФормы();
|
||||
ИнициализироватьФорму();
|
||||
КонецЕсли;
|
||||
|
||||
ТекущийПользователь = Пользователи.ТекущийПользователь();
|
||||
@@ -89,7 +89,7 @@
|
||||
&НаСервере
|
||||
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||
|
||||
ИнициализацияФормы();
|
||||
ИнициализироватьФорму();
|
||||
|
||||
// СтандартныеПодсистемы.УправлениеДоступом
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
@@ -251,7 +251,7 @@
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ИнициализацияФормы()
|
||||
Процедура ИнициализироватьФорму()
|
||||
|
||||
НачальныйПризнакВыполнения = Объект.Выполнена;
|
||||
ПрочитатьРеквизитыБизнесПроцесса();
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
// Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере.
|
||||
// Для существующего - в ПриЧтенииНаСервере.
|
||||
Если Объект.Ссылка.Пустая() Тогда
|
||||
ИнициализацияФормы();
|
||||
ИнициализироватьФорму();
|
||||
КонецЕсли;
|
||||
|
||||
ТекущийПользователь = Пользователи.ТекущийПользователь();
|
||||
@@ -77,7 +77,7 @@
|
||||
&НаСервере
|
||||
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||
|
||||
ИнициализацияФормы();
|
||||
ИнициализироватьФорму();
|
||||
|
||||
// СтандартныеПодсистемы.УправлениеДоступом
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
@@ -262,7 +262,7 @@
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ИнициализацияФормы()
|
||||
Процедура ИнициализироватьФорму()
|
||||
|
||||
НачальныйПризнакВыполнения = Объект.Выполнена;
|
||||
ПрочитатьРеквизитыБизнесПроцесса();
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
// Для нового объекта выполняем код инициализации формы в ПриСозданииНаСервере.
|
||||
// Для существующего - в ПриЧтенииНаСервере.
|
||||
Если Объект.Ссылка.Пустая() Тогда
|
||||
ИнициализацияФормы();
|
||||
ИнициализироватьФорму();
|
||||
КонецЕсли;
|
||||
|
||||
// СтандартныеПодсистемы.РаботаСФайлами
|
||||
@@ -58,7 +58,7 @@
|
||||
&НаСервере
|
||||
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||
|
||||
ИнициализацияФормы();
|
||||
ИнициализироватьФорму();
|
||||
|
||||
// СтандартныеПодсистемы.УправлениеДоступом
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
@@ -489,7 +489,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ИнициализацияФормы()
|
||||
Процедура ИнициализироватьФорму()
|
||||
|
||||
НачальныйПризнакСтарта = Объект.Стартован;
|
||||
|
||||
|
||||
@@ -348,12 +348,10 @@
|
||||
"РезультатВыполнения,ДатаИсполнения,Исполнитель,Выполнена");
|
||||
|
||||
СтрокаФормат = ?(ЗадачаДанные.Выполнена,
|
||||
"%1, %2 " + НСтр("ru = 'выполнил(а) задачу'") + ":
|
||||
|%3
|
||||
|",
|
||||
"%1, %2 " + НСтр("ru = 'отклонил(а) задачу'") + ":
|
||||
|%3
|
||||
|");
|
||||
НСтр("ru = '%1, %2 выполнил(а) задачу:
|
||||
|%3'") + Символы.ПС,
|
||||
НСтр("ru = '%1, %2 отклонил(а) задачу:
|
||||
|%3'") + Символы.ПС);
|
||||
|
||||
Комментарий = СокрЛП(ЗадачаДанные.РезультатВыполнения);
|
||||
Комментарий = ?(ПустаяСтрока(Комментарий), "", Комментарий + Символы.ПС);
|
||||
@@ -366,17 +364,15 @@
|
||||
Функция РезультатВыполненияТочкиПроверить(Знач ЗадачаСсылка)
|
||||
|
||||
Если НЕ Подтверждено Тогда
|
||||
СтрокаФормат = "%1, %2 " + НСтр("ru = 'вернул(а) задачу на доработку'") + ":
|
||||
|%3
|
||||
|";
|
||||
СтрокаФормат = НСтр("ru = '%1, %2 вернул(а) задачу на доработку:
|
||||
|%3'") + Символы.ПС;
|
||||
|
||||
Иначе
|
||||
СтрокаФормат = ?(Выполнено,
|
||||
"%1, %2 " + НСтр("ru = 'подтвердил(а) выполнение задачи'") + ":
|
||||
|%3
|
||||
|",
|
||||
"%1, %2 " + НСтр("ru = 'подтвердил(а) отмену задачи'") + ":
|
||||
|%3
|
||||
|");
|
||||
НСтр("ru = '%1, %2 подтвердил(а) выполнение задачи:
|
||||
|%3'") + Символы.ПС,
|
||||
НСтр("ru = '%1, %2 подтвердил(а) отмену задачи:
|
||||
|%3'") + Символы.ПС);
|
||||
КонецЕсли;
|
||||
|
||||
ЗадачаДанные = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗадачаСсылка,
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
<key>ru</key>
|
||||
<value>Задание</value>
|
||||
</synonym>
|
||||
<comment>Описание задания</comment>
|
||||
<comment>АПК:58 - Описание задания</comment>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиЭлементовШапкиФормы
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>СтрокаПоиска</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Поиск слов в наименовании и описании отчета а также в наименованиях настроек отчета.</value>
|
||||
@@ -57,6 +58,10 @@
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
<inputHint>
|
||||
<key>ru</key>
|
||||
<value>Наименование, поле или автор отчета</value>
|
||||
</inputHint>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
@@ -2242,6 +2247,7 @@
|
||||
<name>ВыполнитьПоиск</name>
|
||||
</handler>
|
||||
</action>
|
||||
<representation>Picture</representation>
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
|
||||
@@ -117,8 +117,14 @@
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
Если ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияИзменениеВарианта()
|
||||
Или ИмяСобытия = "Запись_НаборКонстант" Тогда
|
||||
|
||||
ДеревоПодсистемТекущаяСтрока = -1;
|
||||
ПодключитьОбработчикОжидания("ДеревоПодсистемОбработчикАктивизацииСтроки", 0.1, Истина);
|
||||
|
||||
ИначеЕсли ИмяСобытия = ВариантыОтчетовКлиент.ИмяСобытияОбновленияВариантовОтчетовИзФайлов() Тогда
|
||||
|
||||
УстановитьОтборПоОбновленнымИзФайловОтчетов(Параметр);
|
||||
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -254,40 +260,40 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СохранитьВариантОтчетаВФайл(Команда)
|
||||
ВариантОтчета = Элементы.Список.ТекущаяСтрока;
|
||||
Если Не ЗначениеЗаполнено(ВариантОтчета) Тогда
|
||||
ВыбранныеВариантыОтчетов = Элементы.Список.ВыделенныеСтроки;
|
||||
|
||||
Если ВыбранныеВариантыОтчетов.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыСохранения = Новый Структура(ВариантыОтчетовКлиентСервер.СвойстваСохраненияВариантаОтчета());
|
||||
ПараметрыСохранения.ВариантОтчета = ВариантОтчета;
|
||||
|
||||
ОткрытьФорму(
|
||||
"ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.СохранениеВариантаОтчетаВФайл",
|
||||
ПараметрыСохранения,
|
||||
Новый Структура("ВыбранныеВариантыОтчетов", ВыбранныеВариантыОтчетов),
|
||||
ЭтотОбъект);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьВариантОтчетаИзФайла(Команда)
|
||||
Ссылка = Элементы.Список.ТекущаяСтрока;
|
||||
ВыбранныеВариантыОтчетов = Элементы.Список.ВыделенныеСтроки;
|
||||
|
||||
Если ТипЗнч(Ссылка) <> Тип("СправочникСсылка.ВариантыОтчетов") Тогда
|
||||
Если ВыбранныеВариантыОтчетов.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваВариантаОтчета = ВариантыОтчетовКлиент.СвойстваВариантаОтчетаОснования();
|
||||
СвойстваВариантаОтчета.Ссылка = Ссылка;
|
||||
СвойстваВариантаОтчета.ПредставлениеВарианта = Строка(Ссылка);
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения(
|
||||
"ОбновитьВариантОтчетаИзФайла", ВариантыОтчетовКлиент, СвойстваВариантаОтчета);
|
||||
СвойстваВариантаОтчета.Ссылка = ВыбранныеВариантыОтчетов[0];
|
||||
СвойстваВариантаОтчета.ПредставлениеВарианта = Строка(ВыбранныеВариантыОтчетов[0]);
|
||||
|
||||
ПараметрыЗагрузки = ФайловаяСистемаКлиент.ПараметрыЗагрузкиФайла();
|
||||
ПараметрыЗагрузки.Диалог.Фильтр = НСтр("ru = 'Архив ZIP (*.zip)|*.zip'");
|
||||
ПараметрыЗагрузки.ИдентификаторФормы = УникальныйИдентификатор;
|
||||
|
||||
ФайловаяСистемаКлиент.ЗагрузитьФайл(Обработчик, ПараметрыЗагрузки);
|
||||
Обработчик = Новый ОписаниеОповещения(
|
||||
ВариантыОтчетовКлиент.ИмяСобытияОбновленияВариантовОтчетовИзФайлов(),
|
||||
ВариантыОтчетовКлиент,
|
||||
СвойстваВариантаОтчета);
|
||||
|
||||
ФайловаяСистемаКлиент.ЗагрузитьФайлы(Обработчик, ПараметрыЗагрузки);
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -347,8 +353,8 @@
|
||||
// Строка - Число
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Неопределено
|
||||
// Структура:
|
||||
// - Неопределено
|
||||
// - Структура:
|
||||
// * Варианты - Структура:
|
||||
// ** Массив - Массив из ДанныеФормыЭлементДерева
|
||||
// ** Всего - Число
|
||||
@@ -448,14 +454,7 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Ответ - КодВозвратаДиалога
|
||||
// ПараметрыРазмещения - Структура:
|
||||
// * Варианты - Структура:
|
||||
// ** Массив - Массив из ДанныеФормыЭлементДерева
|
||||
// ** Всего - Число
|
||||
// ** Представление - Строка
|
||||
// * Действие - Строка
|
||||
// * Приемник - ДанныеФормыЭлементДерева
|
||||
// * Источник - ДанныеФормыЭлементДерева
|
||||
// ПараметрыРазмещения - см. ПараметрыРазмещения
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ДеревоПодсистемПеретаскиваниеЗавершение(Ответ, ПараметрыРазмещения) Экспорт
|
||||
@@ -837,4 +836,33 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// ОписаниеВариантовОтчетов - см. ВариантыОтчетов.СвойстваВариантовОтчетовИзФайлов
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура УстановитьОтборПоОбновленнымИзФайловОтчетов(ОписаниеВариантовОтчетов)
|
||||
|
||||
ОбновленныеВариантыОтчетов = Новый СписокЗначений;
|
||||
|
||||
Для Каждого ОписаниеВариантаОтчета Из ОписаниеВариантовОтчетов Цикл
|
||||
ОбновленныеВариантыОтчетов.Добавить(ОписаниеВариантаОтчета.Ссылка);
|
||||
КонецЦикла;
|
||||
|
||||
ДочерниеПодсистемы = ДеревоПодсистем.ПолучитьЭлементы();
|
||||
|
||||
Если ДочерниеПодсистемы.Количество() > 0 Тогда
|
||||
Элементы.ДеревоПодсистем.ТекущаяСтрока = ДочерниеПодсистемы[0].ПолучитьИдентификатор();
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьСодержимоеСписка();
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
|
||||
Список,
|
||||
"Ссылка",
|
||||
ОбновленныеВариантыОтчетов,
|
||||
ВидСравненияКомпоновкиДанных.ВСписке,,,
|
||||
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -144,7 +144,7 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Невозможно перейти в списку для %1'"), ВидКонтактнойИнформацииСсылка);
|
||||
НСтр("ru = 'Невозможно перейти к списку %1'"), ВидКонтактнойИнформацииСсылка);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -157,6 +157,14 @@
|
||||
Отказ = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ВидКИСТакимНаименованиемУжеСуществует(ТекущийОбъект) Тогда
|
||||
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Вид контактной информации с наименованием %1 уже существует. Необходимо задать другое наименование.'"),
|
||||
Строка(ТекущийОбъект.Наименование));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Формирование идентификатора для формул дополнительного реквизита (сведения).
|
||||
Если Не ЗначениеЗаполнено(ТекущийОбъект.ИдентификаторДляФормул)
|
||||
Или ПараметрыЗаписи.Свойство("КогдаИдентификаторДляФормулУжеИспользуется") Тогда
|
||||
@@ -471,6 +479,31 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ВидКИСТакимНаименованиемУжеСуществует(ТекущийОбъект)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ ПЕРВЫЕ 1
|
||||
| ВидыКонтактнойИнформации.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации
|
||||
|ГДЕ
|
||||
| ВидыКонтактнойИнформации.Наименование = &Наименование
|
||||
| И ВидыКонтактнойИнформации.Родитель = &Родитель
|
||||
| И ВидыКонтактнойИнформации.Ссылка <> &Ссылка";
|
||||
|
||||
Запрос.УстановитьПараметр("Наименование", ТекущийОбъект.Наименование);
|
||||
Запрос.УстановитьПараметр("Родитель", ТекущийОбъект.Родитель);
|
||||
Запрос.УстановитьПараметр("Ссылка", ТекущийОбъект.Ссылка);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
Возврат Не РезультатЗапроса.Пустой();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ИдентификаторДляФормулУжеИспользуется(Знач ИдентификаторДляФормул, Знач ТекущийВидКонтактнойИнформации, Знач Родитель)
|
||||
|
||||
|
||||
@@ -51,29 +51,14 @@
|
||||
|
||||
// СтандартныеПодсистемы.ПоискИУдалениеДублей
|
||||
|
||||
// Анализирует пары ссылок справочника на возможность замены одной на другую
|
||||
// во всех местах использования с прикладной точки зрения.
|
||||
// Проверки на запрет замены групп и ссылок разных типов производятся автоматически при начале замены.
|
||||
//
|
||||
// Параметры:
|
||||
// ПарыЗамен - Соответствие из КлючИЗначение:
|
||||
// * Ключ - ЛюбаяСсылка - что будет заменено
|
||||
// * Значение - ЛюбаяСсылка - на что будет заменено
|
||||
// Параметры - Структура - набор флагов, описывающих действие с заменяемыми элементами.
|
||||
// Содержит необязательные реквизиты:
|
||||
// * СпособУдаления - Строка - может принимать значения:
|
||||
// "Непосредственно" - Если после замены ссылка нигде не используется,
|
||||
// то она будет удалена непосредственно
|
||||
// "Пометка" - Если после замены ссылка не используется, то
|
||||
// она будет помечена на удаление.
|
||||
// Любые другие значения говорят о том, что заменяемая ссылка не будет изменена.
|
||||
// ПарыЗамен - см. ПоискИУдалениеДублейПереопределяемый.ПриОпределенииВозможностиЗаменыЭлементов.ПарыЗамен
|
||||
// ПараметрыЗамены - см. ПоискИУдалениеДублейПереопределяемый.ПриОпределенииВозможностиЗаменыЭлементов.ПараметрыЗамены
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение:
|
||||
// * Ключ - ЛюбаяСсылка - исходная ссылка
|
||||
// * Значение - Строка - описание, почему замена недопустима. Если все замены допустимы, то возвращается пустое соответствие
|
||||
// см. ПоискИУдалениеДублейПереопределяемый.ПриОпределенииВозможностиЗаменыЭлементов.НедопустимыеЗамены
|
||||
//
|
||||
Функция ВозможностьЗаменыЭлементов(Знач ПарыЗамен, Знач Параметры = Неопределено) Экспорт
|
||||
Функция ВозможностьЗаменыЭлементов(Знач ПарыЗамен, Знач ПараметрыЗамены = Неопределено) Экспорт
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Для Каждого КлючЗначение Из ПарыЗамен Цикл
|
||||
@@ -97,34 +82,9 @@
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
// Вызывается для определения прикладных параметров поиска дублей.
|
||||
//
|
||||
// Параметры:
|
||||
//
|
||||
// ПараметрыПоиска - Структура - предлагаемые параметры поиска. Содержит поля:
|
||||
//
|
||||
// * ПравилаПоиска - ТаблицаЗначений - предлагаемые правила сравнения для объектов.
|
||||
// Может быть изменена для установки новых вариантов. Содержит колонки:
|
||||
// ** Реквизит - Строка - имя реквизита для сравнения.
|
||||
// ** Правило - Строка - правило сравнения: "Равно" - сравнение по равенству, "Подобно" -подобие строк,
|
||||
// "" - пустая строка - не сравнивать.
|
||||
//
|
||||
// * КомпоновщикОтбора - КомпоновщикНастроекКомпоновкиДанных - инициализированный компоновщик для
|
||||
// предварительного отбора. Может быть изменен, например, для
|
||||
// усиления отборов.
|
||||
//
|
||||
// * ОграниченияСравнения - Массив - предназначен для заполнения описания прикладных правил-ограничений.
|
||||
// Должен быть дополнен структурами с полями:
|
||||
// ** Представление - Строка - описание правила-ограничения для пользователя.
|
||||
// ** ДополнительныеПоля - Строка - список дополнительных реквизитов запятую, необходимых для
|
||||
// дополнительного анализа.
|
||||
//
|
||||
// * КоличествоЭлементовДляСравнения - Число - количество кандидатов в дубли, передаваемых одним вызовом
|
||||
// обработчику.
|
||||
//
|
||||
// ДополнительныеПараметры - Произвольный - значение, переданное при вызове программного интерфейса
|
||||
// ОбщегоНазначения.НайтиДублиЭлементов.
|
||||
// При вызове пользователем из обработки "ПоискИЗаменаДублей" равно Неопределено.
|
||||
// ПараметрыПоиска - см. ПоискИУдалениеДублейПереопределяемый.ПриОпределенииПараметровПоискаДублей.ПараметрыПоиска
|
||||
// ДополнительныеПараметры - см. ПоискИУдалениеДублейПереопределяемый.ПриОпределенииПараметровПоискаДублей.ДополнительныеПараметры
|
||||
//
|
||||
Процедура ПараметрыПоискаДублей(ПараметрыПоиска, ДополнительныеПараметры = Неопределено) Экспорт
|
||||
|
||||
@@ -162,6 +122,8 @@
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
// АПК:362-выкл Проектное решение
|
||||
|
||||
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
|
||||
@@ -176,10 +138,80 @@
|
||||
#КонецЕсли
|
||||
КонецПроцедуры
|
||||
|
||||
// АПК:362-вкл
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов
|
||||
//
|
||||
// Параметры:
|
||||
// Настройки - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлементов.Настройки
|
||||
//
|
||||
Процедура ПриНастройкеНачальногоЗаполненияЭлементов(Настройки) Экспорт
|
||||
|
||||
Настройки.ПриНачальномЗаполненииЭлемента = Ложь;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов
|
||||
//
|
||||
// Параметры:
|
||||
// КодыЯзыков - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.КодыЯзыков
|
||||
// Элементы - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.Элементы
|
||||
// ТабличныеЧасти - см. ОбновлениеИнформационнойБазыПереопределяемый.ПриНачальномЗаполненииЭлементов.ТабличныеЧасти
|
||||
//
|
||||
Процедура ПриНачальномЗаполненииЭлементов(КодыЯзыков, Элементы, ТабличныеЧасти) Экспорт
|
||||
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "СправочникПользователи";
|
||||
Элемент.Наименование = НСтр("ru = 'Контактная информация справочника ""Пользователи""'");
|
||||
Элемент.ЭтоГруппа = Истина;
|
||||
Элемент.Используется = Истина;
|
||||
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "EmailПользователя";
|
||||
Элемент.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
|
||||
Элемент.Наименование = НСтр("ru = 'Электронная почта'");
|
||||
Элемент.МожноИзменятьСпособРедактирования = Истина;
|
||||
Элемент.РазрешитьВводНесколькихЗначений = Истина;
|
||||
Элемент.Родитель = Справочники.ВидыКонтактнойИнформации.СправочникПользователи;
|
||||
Элемент.ИдентификаторДляФормул = "ЭлектроннаяПочта";
|
||||
Элемент.ВидРедактирования = "ПолеВвода";
|
||||
Элемент.Используется = Истина;
|
||||
Элемент.РеквизитДопУпорядочивания = 2;
|
||||
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "ТелефонПользователя";
|
||||
Элемент.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
|
||||
Элемент.Наименование = НСтр("ru = 'Телефон'");
|
||||
Элемент.МожноИзменятьСпособРедактирования = Истина;
|
||||
Элемент.РазрешитьВводНесколькихЗначений = Истина;
|
||||
Элемент.Родитель = Справочники.ВидыКонтактнойИнформации.СправочникПользователи;
|
||||
Элемент.ИдентификаторДляФормул = "Телефон";
|
||||
Элемент.Используется = Истина;
|
||||
Элемент.ВидРедактирования = "ПолеВводаИДиалог";
|
||||
Элемент.РеквизитДопУпорядочивания = 1;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлемента
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - СправочникОбъект.ВидыКонтактнойИнформации - заполняемый объект.
|
||||
// Данные - СтрокаТаблицыЗначений - данные заполнения объекта.
|
||||
// ДополнительныеПараметры - Структура:
|
||||
// * ПредопределенныеДанные - ТаблицаЗначений - данные заполненные в процедуре ПриНачальномЗаполненииЭлементов.
|
||||
//
|
||||
Процедура ПриНачальномЗаполненииЭлемента(Объект, Данные, ДополнительныеПараметры) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#Область ИдентификаторДляФормул
|
||||
@@ -475,8 +507,16 @@
|
||||
ОбъектовОбработано = 0;
|
||||
|
||||
Пока ВидКонтактнойИнформацииСсылка.Следующий() Цикл
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.ВидыКонтактнойИнформации");
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВидКонтактнойИнформацииСсылка.Ссылка);
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
ВидКонтактнойИнформации = ВидКонтактнойИнформацииСсылка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ВидыКонтактнойИнформации
|
||||
|
||||
// Исправление наименований на разных языках
|
||||
@@ -580,5 +620,4 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#КонецЕсли
|
||||
+13
-14
@@ -5,14 +5,12 @@
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
Если ТипЗнч(Параметры.ОбновляемыеКомпоненты) <> Тип("Массив")
|
||||
Или Параметры.ОбновляемыеКомпоненты.Количество() = 0 Тогда
|
||||
Если ТипЗнч(Параметры.ОбновляемыеКомпоненты) <> Тип("Массив") Или Параметры.ОбновляемыеКомпоненты.Количество() = 0 Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Некорректное значение параметра формы ОбновляемыеКомпоненты.'");
|
||||
КонецЕсли;
|
||||
|
||||
@@ -21,13 +19,14 @@
|
||||
|
||||
ТекстПояснения = "";
|
||||
ПредложитьОбновление = Ложь;
|
||||
РеквизитыКомпонент = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(Параметры.ОбновляемыеКомпоненты, "Идентификатор, Версия, ОбновлятьСПортала1СИТС");
|
||||
Для Каждого ОбновляемаяКомпонента Из Параметры.ОбновляемыеКомпоненты Цикл
|
||||
ПараметрОбновляемыеКомпоненты = Параметры.ОбновляемыеКомпоненты; // Массив из СправочникСсылка.ВнешниеКомпоненты
|
||||
РеквизитыКомпонент = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ПараметрОбновляемыеКомпоненты,
|
||||
"Идентификатор, Версия, ОбновлятьСПортала1СИТС");
|
||||
Для Каждого ОбновляемаяКомпонента Из ПараметрОбновляемыеКомпоненты Цикл
|
||||
Реквизиты = РеквизитыКомпонент[ОбновляемаяКомпонента];
|
||||
ТекстПояснения = ТекстПояснения
|
||||
+ ВнешниеКомпонентыСлужебный.ПредставлениеКомпоненты(Реквизиты.Идентификатор, Реквизиты. Версия)
|
||||
+ ?(Реквизиты.ОбновлятьСПортала1СИТС, "", " - " + НСтр("ru = 'обновление отключено'") + ".")
|
||||
+ Символы.ПС;
|
||||
ТекстПояснения = ТекстПояснения + ВнешниеКомпонентыСлужебный.ПредставлениеКомпоненты(Реквизиты.Идентификатор,
|
||||
Реквизиты.Версия) + ?(Реквизиты.ОбновлятьСПортала1СИТС, "", " - " + НСтр("ru = 'обновление отключено'")
|
||||
+ ".") + Символы.ПС;
|
||||
|
||||
ПредложитьОбновление = ПредложитьОбновление Или Реквизиты.ОбновлятьСПортала1СИТС;
|
||||
Если Реквизиты.ОбновлятьСПортала1СИТС Тогда
|
||||
@@ -39,8 +38,7 @@
|
||||
|
||||
Элементы.ДекорацияПояснение.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1
|
||||
|Проверить и загрузить обновление компоненты?'"),
|
||||
ТекстПояснения);
|
||||
|Проверить и загрузить обновление компоненты?'"), ТекстПояснения);
|
||||
|
||||
Элементы.ПодключитьИнтернетПоддержку.Видимость = Не ДанныеАутентификацииПорталаСохранены;
|
||||
Элементы.Закрыть.Видимость = Ложь;
|
||||
@@ -72,7 +70,8 @@
|
||||
Процедура ПодключитьИнтернетПоддержку(Команда = Неопределено)
|
||||
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
|
||||
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент");
|
||||
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
|
||||
"ИнтернетПоддержкаПользователейКлиент");
|
||||
Оповещение = Новый ОписаниеОповещения("ПослеПодключенияИнтернетПоддержки", ЭтотОбъект);
|
||||
МодульИнтернетПоддержкаПользователейКлиент.ПодключитьИнтернетПоддержкуПользователей(Оповещение, ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
@@ -139,8 +138,8 @@
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыПроцедуры = Новый Структура;
|
||||
ПараметрыПроцедуры.Вставить("ОбновляемыеКомпоненты", ОбновляемыеКомпоненты.ВыгрузитьЗначения());
|
||||
ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыОбновленияКомпонентСПортала();
|
||||
ПараметрыПроцедуры.ОбновляемыеКомпоненты = ОбновляемыеКомпоненты.ВыгрузитьЗначения();
|
||||
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление внешней компоненты.'");
|
||||
|
||||
@@ -115,9 +115,9 @@
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыПроцедуры = Новый Структура;
|
||||
ПараметрыПроцедуры.Вставить("Идентификатор", Идентификатор);
|
||||
ПараметрыПроцедуры.Вставить("Версия", Версия);
|
||||
ПараметрыПроцедуры = ВнешниеКомпонентыСлужебный.ПараметрыКомпонентаСПортала();
|
||||
ПараметрыПроцедуры.Идентификатор = Идентификатор;
|
||||
ПараметрыПроцедуры.Версия = Версия;
|
||||
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Получение внешней компоненты.'");
|
||||
|
||||
@@ -966,7 +966,8 @@
|
||||
Если ТипЗнч(Параметры.ТекущаяСтрока) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда
|
||||
|
||||
Если ХранимыеПараметры.ИспользоватьГруппы Тогда
|
||||
Элементы.ГруппыВнешнихПользователей.ТекущаяСтрока = ХранимыеПараметры.ТекущаяСтрока;
|
||||
ТекущиеХранимыеПараметры = ХранимыеПараметры; // Структура
|
||||
Элементы.ГруппыВнешнихПользователей.ТекущаяСтрока = ТекущиеХранимыеПараметры.ТекущаяСтрока;
|
||||
Иначе
|
||||
Параметры.ТекущаяСтрока = Неопределено;
|
||||
КонецЕсли;
|
||||
@@ -1182,7 +1183,7 @@
|
||||
// ДополнительныеПараметры - Структура:
|
||||
// * ПараметрыПеретаскивания - Массив из СправочникСсылка.ВнешниеПользователи
|
||||
// * Строка - СправочникСсылка.ГруппыВнешнихПользователей
|
||||
// * Перемещение - ДействиеПеретаскивания
|
||||
// * Перемещение - Булево
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ГруппыВнешнихПользователейПеретаскиваниеОбработкаВопроса(Ответ, ДополнительныеПараметры) Экспорт
|
||||
|
||||
@@ -1513,7 +1513,10 @@
|
||||
ИначеЕсли Параметры.Свойство("ИдентификаторПользователяИБ")
|
||||
И ЗначениеЗаполнено(Параметры.ИдентификаторПользователяИБ) Тогда
|
||||
|
||||
Если Объект.ИдентификаторПользователяИБ <> Параметры.ИдентификаторПользователяИБ Тогда
|
||||
Объект.ИдентификаторПользователяИБ = Параметры.ИдентификаторПользователяИБ;
|
||||
Модифицированность = Истина;
|
||||
КонецЕсли;
|
||||
ПрочитанныеСвойства = Пользователи.СвойстваПользователяИБ(Объект.ИдентификаторПользователяИБ);
|
||||
Если ПрочитанныеСвойства <> Неопределено Тогда
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
Запрос.УстановитьПараметр("ПользовательГрупп", Параметры.ПользовательГрупп);
|
||||
Запрос.УстановитьПараметр("Ответственный", Пользователи.АвторизованныйПользователь());
|
||||
Запрос.УстановитьПараметр("ПолноправныйОтветственный", Пользователи.ЭтоПолноправныйПользователь());
|
||||
Запрос.УстановитьПараметр("ГруппаДоступаАдминистраторы",
|
||||
УправлениеДоступом.ГруппаДоступаАдминистраторы());
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Запрос.Текст =
|
||||
@@ -49,7 +51,7 @@
|
||||
| ТОГДА ЛОЖЬ
|
||||
| КОГДА ГруппыДоступа.Профиль.ПометкаУдаления
|
||||
| ТОГДА ЛОЖЬ
|
||||
| КОГДА ГруппыДоступа.Ссылка = ЗНАЧЕНИЕ(Справочник.ГруппыДоступа.Администраторы)
|
||||
| КОГДА ГруппыДоступа.Ссылка = &ГруппаДоступаАдминистраторы
|
||||
| ТОГДА &ПолноправныйОтветственный
|
||||
| И ТИПЗНАЧЕНИЯ(&ПользовательГрупп) = ТИП(Справочник.Пользователи)
|
||||
| КОГДА &ПолноправныйОтветственный = ЛОЖЬ
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда
|
||||
// Скрытие группы доступа Администраторы.
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
|
||||
Список, "Ссылка", Справочники.ГруппыДоступа.Администраторы,
|
||||
Список, "Ссылка", УправлениеДоступом.ГруппаДоступаАдминистраторы(),
|
||||
ВидСравненияКомпоновкиДанных.НеРавно, , Истина);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -2120,6 +2120,32 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПрофильАдминистратор</name>
|
||||
<id>9</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.ПрофилиГруппДоступа</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ГруппаДоступаАдминистраторы</name>
|
||||
<id>10</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.ГруппыДоступа</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Подобрать</name>
|
||||
<title>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
Элементы.КонтекстноеМенюПользователиПодобрать.Доступность = НЕ ТолькоПросмотр;
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено()
|
||||
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы
|
||||
И Объект.Ссылка = ГруппаДоступаАдминистраторы
|
||||
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда
|
||||
|
||||
МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса");
|
||||
@@ -51,7 +51,7 @@
|
||||
ВыполненаПроцедураПриСозданииНаСервере = Истина;
|
||||
|
||||
Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
|
||||
Если Не Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы
|
||||
Если Не Объект.Ссылка = ГруппаДоступаАдминистраторы
|
||||
И Не УправлениеДоступомСлужебный.ЭтоПрофильОткрытиеВнешнихОтчетовИОбработок(Объект.Профиль) Тогда
|
||||
|
||||
ТолькоПросмотр = Истина;
|
||||
@@ -76,12 +76,12 @@
|
||||
|
||||
Если ОтветНаВопросПриОткрытииФормы = "УстановитьПрофильАдминистратор" Тогда
|
||||
ОтветНаВопросПриОткрытииФормы = Неопределено;
|
||||
Объект.Профиль = ПредопределенноеЗначение("Справочник.ПрофилиГруппДоступа.Администратор");
|
||||
Объект.Профиль = ПрофильАдминистратор;
|
||||
Модифицированность = Истина;
|
||||
|
||||
ИначеЕсли Не ТолькоПросмотр
|
||||
И Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы")
|
||||
И Объект.Профиль <> ПредопределенноеЗначение("Справочник.ПрофилиГруппДоступа.Администратор") Тогда
|
||||
И Объект.Ссылка = ГруппаДоступаАдминистраторы
|
||||
И Объект.Профиль <> ПрофильАдминистратор Тогда
|
||||
|
||||
Отказ = Истина;
|
||||
ПоказатьВопрос(
|
||||
@@ -148,7 +148,7 @@
|
||||
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
|
||||
|
||||
Если СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().РазделениеВключено
|
||||
И Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы")
|
||||
И Объект.Ссылка = ГруппаДоступаАдминистраторы
|
||||
И ПарольПользователяСервиса = Неопределено Тогда
|
||||
|
||||
Отказ = Истина;
|
||||
@@ -173,7 +173,9 @@
|
||||
|
||||
ТекущийОбъект.Пользователи.Очистить();
|
||||
|
||||
Если ТекущийОбъект.Ссылка <> Справочники.ГруппыДоступа.Администраторы
|
||||
ГруппаДоступаАдминистраторы = ГруппаДоступаАдминистраторы;
|
||||
|
||||
Если ТекущийОбъект.Ссылка <> ГруппаДоступаАдминистраторы
|
||||
И ЗначениеЗаполнено(ТекущийОбъект.Пользователь) Тогда
|
||||
|
||||
Если ИспользованиеПерсональногоДоступа Тогда
|
||||
@@ -185,13 +187,13 @@
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТекущийОбъект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
|
||||
Если ТекущийОбъект.Ссылка = ГруппаДоступаАдминистраторы Тогда
|
||||
Объект.Родитель = Неопределено;
|
||||
Объект.Ответственный = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено()
|
||||
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
|
||||
И Объект.Ссылка = ГруппаДоступаАдминистраторы Тогда
|
||||
|
||||
ТекущийОбъект.ДополнительныеСвойства.Вставить(
|
||||
"ПарольПользователяСервиса", ПарольПользователяСервиса);
|
||||
@@ -377,7 +379,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка наличия только пользователей в предопределенной группе Администраторы.
|
||||
Если Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы
|
||||
Если Объект.Ссылка = ГруппаДоступаАдминистраторы
|
||||
И ТипЗнч(ТекущаяСтрока.Пользователь) <> Тип("СправочникСсылка.Пользователи") Тогда
|
||||
|
||||
Если ТипЗнч(ТекущаяСтрока.Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
|
||||
@@ -428,7 +430,7 @@
|
||||
КонецЦикла;
|
||||
|
||||
Если НЕ ОбщегоНазначения.РазделениеВключено()
|
||||
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
|
||||
И Объект.Ссылка = ГруппаДоступаАдминистраторы Тогда
|
||||
|
||||
ОписаниеОшибки = "";
|
||||
УправлениеДоступомСлужебный.ПроверитьНаличиеПользователяИБВГруппеДоступаАдминистраторы(
|
||||
@@ -683,7 +685,7 @@
|
||||
|
||||
Если ЗначениеЗаполнено(Текст) Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Если Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы") Тогда
|
||||
Если Объект.Ссылка = ГруппаДоступаАдминистраторы Тогда
|
||||
ДанныеВыбора = УправлениеДоступомСлужебныйВызовСервера.СформироватьДанныеВыбораПользователя(
|
||||
Текст, Ложь, Ложь);
|
||||
Иначе
|
||||
@@ -699,7 +701,7 @@
|
||||
|
||||
Если ЗначениеЗаполнено(Текст) Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Если Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы") Тогда
|
||||
Если Объект.Ссылка = ГруппаДоступаАдминистраторы Тогда
|
||||
ДанныеВыбора = УправлениеДоступомСлужебныйВызовСервера.СформироватьДанныеВыбораПользователя(
|
||||
Текст, Ложь, Ложь);
|
||||
Иначе
|
||||
@@ -959,7 +961,10 @@
|
||||
&НаСервере
|
||||
Процедура НачальнаяНастройкаПриЧтенииИСоздании(ТекущийОбъект)
|
||||
|
||||
Если ТекущийОбъект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
|
||||
ПрофильАдминистратор = УправлениеДоступом.ПрофильАдминистратор();
|
||||
ГруппаДоступаАдминистраторы = УправлениеДоступом.ГруппаДоступаАдминистраторы();
|
||||
|
||||
Если ТекущийОбъект.Ссылка = ГруппаДоступаАдминистраторы Тогда
|
||||
ЗапретитьИзменениеВсегоКромеСоставаУчастников();
|
||||
|
||||
Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
|
||||
@@ -1216,7 +1221,7 @@
|
||||
|
||||
ВыборИПодборВнешнихПользователей = Ложь;
|
||||
|
||||
Если Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы") Тогда
|
||||
Если Объект.Ссылка = ГруппаДоступаАдминистраторы Тогда
|
||||
ВыполнитьОбработкуОповещения(ОбработкаПродолжения, ВыборИПодборВнешнихПользователей);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -1320,7 +1325,7 @@
|
||||
ПараметрыФормы.Вставить("РасширенныйПодбор", Истина);
|
||||
ПараметрыФормы.Вставить("ПараметрыРасширеннойФормыПодбора", ПараметрыРасширеннойФормыПодбора());
|
||||
ПараметрыФормы.Вставить("ВыборГруппПользователей", Истина);
|
||||
ИначеЕсли Объект.Ссылка <> ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы") Тогда
|
||||
ИначеЕсли Объект.Ссылка <> ГруппаДоступаАдминистраторы Тогда
|
||||
Если ВыборИПодборВнешнихПользователей Тогда
|
||||
ПараметрыФормы.Вставить("ВыборГруппВнешнихПользователей", Истина);
|
||||
Иначе
|
||||
@@ -1366,7 +1371,7 @@
|
||||
ПараметрыРасширеннойФормыПодбора = Новый Структура;
|
||||
ПараметрыРасширеннойФормыПодбора.Вставить("ЗаголовокФормыПодбора", ЗаголовокФормыПодбора);
|
||||
ПараметрыРасширеннойФормыПодбора.Вставить("ВыбранныеПользователи", ВыбранныеПользователи);
|
||||
Если Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы") Тогда
|
||||
Если Объект.Ссылка = ГруппаДоступаАдминистраторы Тогда
|
||||
ПараметрыРасширеннойФормыПодбора.Вставить("ПодборГруппНевозможен");
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -122,18 +122,15 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Устанавливает пометку удаления группам доступа, если установлена
|
||||
// пометка удаления у профиля группы доступа. Требуется, например,
|
||||
// при удалении предопределенных профилей групп доступа,
|
||||
// т.к. платформа не вызывает обработчики объектов при
|
||||
// установке пометки удаления бывшим предопределенным
|
||||
// элементам в процессе обновления конфигурации базы данных.
|
||||
//
|
||||
// Параметры:
|
||||
// ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись,
|
||||
// устанавливается Истина, иначе не изменяется.
|
||||
//
|
||||
Процедура ПометитьНаУдалениеГруппыДоступаПомеченныхПрофилей(ЕстьИзменения = Неопределено) Экспорт
|
||||
// См. УправлениеДоступом.ГруппаДоступаАдминистраторы
|
||||
Функция ГруппаДоступаАдминистраторы(ПрофильАдминистратор = Неопределено) Экспорт
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПрофильАдминистратор) Тогда
|
||||
ПрофильАдминистратор = УправлениеДоступом.ПрофильАдминистратор();
|
||||
КонецЕсли;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
@@ -142,14 +139,167 @@
|
||||
|ИЗ
|
||||
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|
||||
|ГДЕ
|
||||
| ГруппыДоступа.Профиль <> ЗНАЧЕНИЕ(Справочник.ПрофилиГруппДоступа.Администратор)
|
||||
| ГруппыДоступа.Профиль = &ПрофильАдминистратор
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Ссылка
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ГруппыДоступа.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|
||||
|ГДЕ
|
||||
| ГруппыДоступа.ИмяПредопределенныхДанных = &ИмяПредопределенныхДанных
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Ссылка";
|
||||
Запрос.УстановитьПараметр("ПрофильАдминистратор", ПрофильАдминистратор);
|
||||
Запрос.УстановитьПараметр("ИмяПредопределенныхДанных", "Администраторы");
|
||||
|
||||
РезультатыЗапроса = Запрос.ВыполнитьПакет();
|
||||
ВыборкаПоПрофилю = РезультатыЗапроса[0].Выбрать();
|
||||
ВыборкаПоПредопределенному = РезультатыЗапроса[1].Выбрать();
|
||||
|
||||
Если ВыборкаПоПрофилю.Следующий()
|
||||
И ВыборкаПоПредопределенному.Следующий()
|
||||
И ВыборкаПоПрофилю.Количество() = 1
|
||||
И ВыборкаПоПредопределенному.Количество() = 1
|
||||
И ВыборкаПоПрофилю.Ссылка = ВыборкаПоПредопределенному.Ссылка Тогда
|
||||
|
||||
Возврат ВыборкаПоПрофилю.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Справочник.ГруппыДоступа");
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
РезультатыЗапроса = Запрос.ВыполнитьПакет();
|
||||
ВыборкаПоПрофилю = РезультатыЗапроса[0].Выбрать();
|
||||
ВыборкаПоПредопределенному = РезультатыЗапроса[1].Выбрать();
|
||||
Если ВыборкаПоПрофилю.Следующий() Тогда
|
||||
ГруппаДоступаОбъект = ВыборкаПоПрофилю.Ссылка.ПолучитьОбъект();
|
||||
Если ГруппаДоступаОбъект.ИмяПредопределенныхДанных <> "Администраторы" Тогда
|
||||
ГруппаДоступаОбъект.ИмяПредопределенныхДанных = "Администраторы";
|
||||
КонецЕсли;
|
||||
ИначеЕсли ВыборкаПоПредопределенному.Следующий() Тогда
|
||||
ГруппаДоступаОбъект = ВыборкаПоПредопределенному.Ссылка.ПолучитьОбъект();
|
||||
ГруппаДоступаОбъект.Профиль = ПрофильАдминистратор;
|
||||
Иначе
|
||||
ГруппаДоступаПоНаименованию = ГруппаДоступаПоНаименованию(
|
||||
НСтр("ru = 'Администраторы'", ОбщегоНазначения.КодОсновногоЯзыка()));
|
||||
Если ЗначениеЗаполнено(ГруппаДоступаПоНаименованию) Тогда
|
||||
ГруппаДоступаОбъект = ГруппаДоступаПоНаименованию.ПолучитьОбъект();
|
||||
Иначе
|
||||
ГруппаДоступаОбъект = СоздатьЭлемент();
|
||||
КонецЕсли;
|
||||
ГруппаДоступаОбъект.Профиль = ПрофильАдминистратор;
|
||||
ГруппаДоступаОбъект.ИмяПредопределенныхДанных = "Администраторы";
|
||||
КонецЕсли;
|
||||
Если ГруппаДоступаОбъект.Модифицированность() Тогда
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ГруппаДоступаОбъект, Ложь, Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектыДляОтвязки = Новый Соответствие;
|
||||
Пока ВыборкаПоПрофилю.Следующий() Цикл
|
||||
Если ВыборкаПоПрофилю.Ссылка <> ГруппаДоступаОбъект.Ссылка Тогда
|
||||
ОбъектыДляОтвязки.Вставить(ВыборкаПоПрофилю.Ссылка);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Пока ВыборкаПоПредопределенному.Следующий() Цикл
|
||||
Если ВыборкаПоПредопределенному.Ссылка <> ГруппаДоступаОбъект.Ссылка Тогда
|
||||
ОбъектыДляОтвязки.Вставить(ВыборкаПоПредопределенному.Ссылка);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Для Каждого КлючИЗначение Из ОбъектыДляОтвязки Цикл
|
||||
ТекущийГруппаДоступаОбъект = КлючИЗначение.Ключ.ПолучитьОбъект();
|
||||
ТекущийГруппаДоступаОбъект.Профиль = Неопределено;
|
||||
ТекущийГруппаДоступаОбъект.ИмяПредопределенныхДанных = "";
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ТекущийГруппаДоступаОбъект, Ложь, Ложь);
|
||||
КонецЦикла;
|
||||
Для Каждого КлючИЗначение Из ОбъектыДляОтвязки Цикл
|
||||
ТекущийГруппаДоступаОбъект = КлючИЗначение.Ключ.ПолучитьОбъект();
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ТекущийГруппаДоступаОбъект);
|
||||
КонецЦикла;
|
||||
|
||||
ГруппаДоступаОбъект.Наименование = НСтр("ru = 'Администраторы'",
|
||||
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ГруппаДоступаОбъект);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
Возврат ГруппаДоступаОбъект.Ссылка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Для функции ГруппаДоступаАдминистраторы.
|
||||
Функция ГруппаДоступаПоНаименованию(Наименование)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("Наименование", Наименование);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ ПЕРВЫЕ 1
|
||||
| ГруппыДоступа.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|
||||
|ГДЕ
|
||||
| ГруппыДоступа.Наименование = &Наименование
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Ссылка";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Если Выборка.Следующий() Тогда
|
||||
Возврат Выборка.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает пометку удаления группам доступа, если установлена
|
||||
// пометка удаления у профиля группы доступа. Требуется, например,
|
||||
// при удалении предопределенных профилей групп доступа,
|
||||
// т.к. платформа не вызывает обработчики объектов при
|
||||
// установке пометки удаления бывшим предопределенным
|
||||
// элементам в процессе обновления конфигурации базы данных.
|
||||
//
|
||||
// Параметры:
|
||||
// ЕстьИзменения - Булево - возвращаемое значение. Если производилась запись,
|
||||
// устанавливается Истина, иначе не изменяется.
|
||||
//
|
||||
Процедура ПометитьНаУдалениеГруппыДоступаПомеченныхПрофилей(ЕстьИзменения = Неопределено) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("ПрофильАдминистратор", УправлениеДоступом.ПрофильАдминистратор());
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ГруппыДоступа.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|
||||
|ГДЕ
|
||||
| ГруппыДоступа.Профиль <> &ПрофильАдминистратор
|
||||
| И ГруппыДоступа.Профиль.ПометкаУдаления
|
||||
| И НЕ ГруппыДоступа.ПометкаУдаления
|
||||
| И НЕ ГруппыДоступа.Предопределенный";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.ГруппыДоступа");
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
ГруппаДоступаОбъект = Выборка.Ссылка.ПолучитьОбъект();
|
||||
ГруппаДоступаОбъект.ПометкаУдаления = Истина;
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ГруппаДоступаОбъект);
|
||||
@@ -158,6 +308,11 @@
|
||||
ПользователиДляОбновления = ПользователиДляОбновленияРолей(Неопределено, ГруппаДоступаОбъект);
|
||||
УправлениеДоступом.ОбновитьРолиПользователей(ПользователиДляОбновления);
|
||||
ЕстьИзменения = Истина;
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -194,6 +349,8 @@
|
||||
КонецЦикла;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("ПрофильАдминистратор", УправлениеДоступом.ПрофильАдминистратор());
|
||||
Запрос.УстановитьПараметр("ГруппаДоступаАдминистраторы", УправлениеДоступом.ГруппаДоступаАдминистраторы());
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ГруппыДоступа.Ссылка КАК Ссылка
|
||||
@@ -201,8 +358,8 @@
|
||||
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|
||||
|ГДЕ
|
||||
| НЕ(ГруппыДоступа.Профиль <> &Профиль
|
||||
| И НЕ(&Профиль = ЗНАЧЕНИЕ(Справочник.ПрофилиГруппДоступа.Администратор)
|
||||
| И ГруппыДоступа.Ссылка = ЗНАЧЕНИЕ(Справочник.ГруппыДоступа.Администраторы)))";
|
||||
| И НЕ(&Профиль = &ПрофильАдминистратор
|
||||
| И ГруппыДоступа.Ссылка = &ГруппаДоступаАдминистраторы))";
|
||||
|
||||
Запрос.УстановитьПараметр("Профиль", Профиль.Ссылка);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
@@ -211,10 +368,10 @@
|
||||
// Проверка необходимости/возможности обновления группы доступа.
|
||||
ГруппаДоступа = Выборка.Ссылка.ПолучитьОбъект();
|
||||
|
||||
Если ГруппаДоступа.Ссылка = Администраторы
|
||||
И ГруппаДоступа.Профиль <> Справочники.ПрофилиГруппДоступа.Администратор Тогда
|
||||
Если ГруппаДоступа.Ссылка = УправлениеДоступом.ГруппаДоступаАдминистраторы()
|
||||
И ГруппаДоступа.Профиль <> УправлениеДоступом.ПрофильАдминистратор() Тогда
|
||||
// Установка профиля Администратор, если не задан.
|
||||
ГруппаДоступа.Профиль = Справочники.ПрофилиГруппДоступа.Администратор;
|
||||
ГруппаДоступа.Профиль = УправлениеДоступом.ПрофильАдминистратор();
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка состава видов доступа.
|
||||
@@ -447,6 +604,69 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РолиДляОбновленияПрав(СтарыеЗначения, ЭлементДанных) Экспорт
|
||||
|
||||
Если СтарыеЗначения = Неопределено Тогда
|
||||
СтарыеЗначения = Новый Структура("Ссылка, Профиль, ПометкаУдаления")
|
||||
КонецЕсли;
|
||||
|
||||
// Обновление ролей для добавленных, оставшихся и удаленных пользователей.
|
||||
Запрос = Новый Запрос;
|
||||
|
||||
Запрос.УстановитьПараметр("НовыйПрофиль",
|
||||
?(ТипЗнч(ЭлементДанных) <> Тип("УдалениеОбъекта") И Не ЭлементДанных.ПометкаУдаления,
|
||||
ЭлементДанных.Профиль, Справочники.ПрофилиГруппДоступа.ПустаяСсылка()));
|
||||
|
||||
Запрос.УстановитьПараметр("СтарыйПрофиль",
|
||||
?(ЭлементДанных.Ссылка = СтарыеЗначения.Ссылка И Не СтарыеЗначения.ПометкаУдаления,
|
||||
СтарыеЗначения.Профиль, Справочники.ПрофилиГруппДоступа.ПустаяСсылка()));
|
||||
|
||||
Если ТипЗнч(ЭлементДанных) = Тип("УдалениеОбъекта")
|
||||
Или ЭлементДанных.ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления Тогда
|
||||
|
||||
// Выбор всех ролей старого или нового профилей группы доступа.
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||
| РолиПрофилей.Роль КАК Роль
|
||||
|ИЗ
|
||||
| Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофилей
|
||||
|ГДЕ
|
||||
| РолиПрофилей.Ссылка В (&СтарыйПрофиль, &НовыйПрофиль)";
|
||||
Иначе
|
||||
// Выбор изменений состава ролей группы доступа.
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Данные.Роль КАК Роль
|
||||
|ИЗ
|
||||
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||
| РолиПрофилей.Роль КАК Роль,
|
||||
| -1 КАК ВидИзмененияСтроки
|
||||
| ИЗ
|
||||
| Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофилей
|
||||
| ГДЕ
|
||||
| РолиПрофилей.Ссылка = &СтарыйПрофиль
|
||||
|
|
||||
| ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
| ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||
| РолиПрофилей.Роль,
|
||||
| 1
|
||||
| ИЗ
|
||||
| Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофилей
|
||||
| ГДЕ
|
||||
| РолиПрофилей.Ссылка = &НовыйПрофиль) КАК Данные
|
||||
|
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| Данные.Роль
|
||||
|
|
||||
|ИМЕЮЩИЕ
|
||||
| СУММА(Данные.ВидИзмененияСтроки) <> 0";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Роль");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ГруппыДоступаПрофиля(Профили) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
@@ -560,23 +780,28 @@
|
||||
// Процедуры и функции для поддержки обмена данными в РИБ.
|
||||
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Параметры:
|
||||
// ЭлементДанных - СправочникОбъект.ГруппыДоступа
|
||||
//
|
||||
Процедура ВосстановитьСоставУчастниковГруппыДоступаАдминистраторы(ЭлементДанных) Экспорт
|
||||
|
||||
Если ЭлементДанных.ИмяПредопределенныхДанных <> "Администраторы" Тогда
|
||||
ГруппаДоступаАдминистраторы = УправлениеДоступом.ГруппаДоступаАдминистраторы();
|
||||
Если ЭлементДанных.Ссылка <> ГруппаДоступаАдминистраторы Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЭлементДанных.Пользователи.Очистить();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("ИмяПредопределенныхДанных", "Администраторы");
|
||||
Запрос.УстановитьПараметр("ГруппаДоступаАдминистраторы", ГруппаДоступаАдминистраторы);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||
| ГруппыДоступаПользователи.Пользователь
|
||||
|ИЗ
|
||||
| Справочник.ГруппыДоступа.Пользователи КАК ГруппыДоступаПользователи
|
||||
|ГДЕ
|
||||
| ГруппыДоступаПользователи.Ссылка.ИмяПредопределенныхДанных = &ИмяПредопределенныхДанных";
|
||||
| ГруппыДоступаПользователи.Ссылка = &ГруппаДоступаАдминистраторы";
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Если ЭлементДанных.Пользователи.Найти(Выборка.Пользователь, "Пользователь") = Неопределено Тогда
|
||||
@@ -589,14 +814,16 @@
|
||||
// Только для внутреннего использования.
|
||||
Процедура УдалитьУчастниковГруппыДоступаАдминистраторыБезПользователяИБ() Экспорт
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
ГруппаДоступаАдминистраторы = УправлениеДоступом.ГруппаДоступаАдминистраторы();
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.ГруппыДоступа");
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Администраторы);
|
||||
Блокировка.Заблокировать();
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", ГруппаДоступаАдминистраторы);
|
||||
|
||||
ГруппаДоступаАдминистраторы = Администраторы.ПолучитьОбъект();
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
ГруппаДоступаАдминистраторы = ГруппаДоступаАдминистраторы.ПолучитьОбъект();
|
||||
|
||||
Индекс = ГруппаДоступаАдминистраторы.Пользователи.Количество() - 1;
|
||||
Пока Индекс >= 0 Цикл
|
||||
@@ -671,9 +898,13 @@
|
||||
КонецЕсли;
|
||||
|
||||
ПользователиДляОбновления = ПользователиДляОбновленияРолей(СтарыеЗначения, ЭлементДанных);
|
||||
|
||||
ЗарегистрироватьСсылки("Пользователи", ПользователиДляОбновления);
|
||||
|
||||
Если УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
|
||||
РолиДляОбновления = РолиДляОбновленияПрав(СтарыеЗначения, ЭлементДанных);
|
||||
ЗарегистрироватьСсылки("Роли", РолиДляОбновления);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Только для внутреннего использования.
|
||||
@@ -700,8 +931,16 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
|
||||
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеНаборовГруппДоступа(
|
||||
"ОбновитьВспомогательныеДанныеГруппДоступаИзмененныхПриЗагрузке");
|
||||
Описание = "ОбновитьВспомогательныеДанныеГруппДоступаИзмененныхПриЗагрузке";
|
||||
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеНаборовГруппДоступа(Описание);
|
||||
СоставИзмененийРолей = ЗарегистрированныеСсылки("Роли");
|
||||
Если СоставИзмененийРолей.Количество() = 1
|
||||
И СоставИзмененийРолей[0] = Неопределено Тогда
|
||||
СоставИзмененийРолей = Неопределено;
|
||||
КонецЕсли;
|
||||
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеДоступаПриИзмененииПрофиляГруппыДоступа(Описание,
|
||||
СоставИзмененийРолей, Истина);
|
||||
ЗарегистрироватьСсылки("Роли", Null);
|
||||
КонецЕсли;
|
||||
|
||||
ЗарегистрироватьСсылки("ГруппыДоступа", Null);
|
||||
@@ -869,7 +1108,7 @@
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "Администраторы";
|
||||
Элемент.Наименование = НСтр("ru = 'Администраторы'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Профиль = Справочники.ПрофилиГруппДоступа.Администратор;
|
||||
Элемент.Профиль = УправлениеДоступом.ПрофильАдминистратор();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -879,9 +1118,9 @@
|
||||
|
||||
Процедура ЗаполнитьПрофильГруппыДоступаАдминистраторы() Экспорт
|
||||
|
||||
Объект = Администраторы.ПолучитьОбъект();
|
||||
Если Объект.Профиль <> Справочники.ПрофилиГруппДоступа.Администратор Тогда
|
||||
Объект.Профиль = Справочники.ПрофилиГруппДоступа.Администратор;
|
||||
Объект = УправлениеДоступом.ГруппаДоступаАдминистраторы().ПолучитьОбъект();
|
||||
Если Объект.Профиль <> УправлениеДоступом.ПрофильАдминистратор() Тогда
|
||||
Объект.Профиль = УправлениеДоступом.ПрофильАдминистратор();
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1078,6 +1317,18 @@
|
||||
ИначеЕсли ВидСсылок = "Пользователи" Тогда
|
||||
ДопустимыеТипы = Новый ОписаниеТипов("СправочникСсылка.Пользователи,СправочникСсылка.ВнешниеПользователи");
|
||||
ИмяПараметраРаботыПрограммы = "СтандартныеПодсистемы.УправлениеДоступом.ПользователиИзмененныеПриЗагрузке";
|
||||
|
||||
ИначеЕсли ВидСсылок = "Роли" Тогда
|
||||
ДопустимыеТипы = Новый ОписаниеТипов("СправочникСсылка.ИдентификаторыОбъектовМетаданных,СправочникСсылка.ИдентификаторыОбъектовРасширений");
|
||||
ИмяПараметраРаботыПрограммы = "СтандартныеПодсистемы.УправлениеДоступом.РолиИзмененныеПриЗагрузке";
|
||||
|
||||
ИначеЕсли ВидСсылок = "ОграничиватьДоступНаУровнеЗаписей" Тогда
|
||||
ДопустимыеТипы = Новый ОписаниеТипов("Булево");
|
||||
ИмяПараметраРаботыПрограммы = "СтандартныеПодсистемы.УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписейИзменениеПриЗагрузке";
|
||||
|
||||
ИначеЕсли ВидСсылок = "ИспользуемыеВидыДоступа" Тогда
|
||||
ДопустимыеТипы = Метаданные.ОпределяемыеТипы.ЗначениеДоступа;
|
||||
ИмяПараметраРаботыПрограммы = "СтандартныеПодсистемы.УправлениеДоступом.ИспользуемыеВидыДоступаИзмененныеПриЗагрузке";
|
||||
Иначе
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Недопустимое значение ""%1"" параметра ВидСсылок функции СвойстваВидаСсылок.'"),
|
||||
|
||||
@@ -42,10 +42,10 @@
|
||||
Индекс = Индекс - 1;
|
||||
КонецЦикла;
|
||||
|
||||
Если Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
|
||||
Если Ссылка = УправлениеДоступом.ГруппаДоступаАдминистраторы() Тогда
|
||||
|
||||
// Всегда предопределенный профиль Администратор.
|
||||
Профиль = Справочники.ПрофилиГруппДоступа.Администратор;
|
||||
Профиль = УправлениеДоступом.ПрофильАдминистратор();
|
||||
|
||||
// Не может быть персональной группой доступа.
|
||||
Пользователь = Неопределено;
|
||||
@@ -76,7 +76,7 @@
|
||||
КонецЦикла;
|
||||
|
||||
// Нельзя устанавливать предопределенный профиль Администратор произвольной группе доступа.
|
||||
ИначеЕсли Профиль = Справочники.ПрофилиГруппДоступа.Администратор Тогда
|
||||
ИначеЕсли Профиль = УправлениеДоступом.ПрофильАдминистратор() Тогда
|
||||
ВызватьИсключение
|
||||
НСтр("ru = 'Предопределенный профиль Администратор может быть только
|
||||
|у предопределенной группы доступа Администраторы.'");
|
||||
@@ -152,6 +152,12 @@
|
||||
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(Ссылка);
|
||||
КонецЕсли;
|
||||
|
||||
Если УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
|
||||
СоставИзмененийРолей = Справочники.ГруппыДоступа.РолиДляОбновленияПрав(СтарыеЗначения, ЭтотОбъект);
|
||||
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеДоступаПриИзмененииПрофиляГруппыДоступа(
|
||||
"ГруппаДоступаПриИзмененииПрофиля", СоставИзмененийРолей, Профиль <> СтарыеЗначения.Профиль);
|
||||
КонецЕсли;
|
||||
|
||||
Если Справочники.ГруппыДоступа.ИзменилисьВидыИлиЗначенияДоступа(СтарыеЗначения, ЭтотОбъект)
|
||||
Или ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления
|
||||
Или НаличиеУчастников <> СтароеНаличиеУчастников Тогда
|
||||
@@ -249,7 +255,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено()
|
||||
И Ссылка = Справочники.ГруппыДоступа.Администраторы
|
||||
И Ссылка = УправлениеДоступом.ГруппаДоступаАдминистраторы()
|
||||
И Не СеансЗапущенБезРазделителей
|
||||
И ДополнительныеСвойства.Свойство("ПарольПользователяСервиса") Тогда
|
||||
|
||||
@@ -263,7 +269,7 @@
|
||||
ПользователиДляОбновления =
|
||||
Справочники.ГруппыДоступа.ПользователиДляОбновленияРолей(СтарыеЗначения, ЭтотОбъект);
|
||||
|
||||
Если Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
|
||||
Если Ссылка = УправлениеДоступом.ГруппаДоступаАдминистраторы() Тогда
|
||||
// Добавление пользователей, связанных с пользователямиИБ, имеющих роль ПолныеПрава.
|
||||
|
||||
Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
|
||||
|
||||
@@ -184,18 +184,16 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОшибки =
|
||||
НСтр("ru = 'Недостаточно прав доступа.
|
||||
|
|
||||
|В состав участников групп пользователей можно добавлять и удалять только
|
||||
|новых (добавленных) пользователей, у которых включен признак Подготовлен.
|
||||
|
|
||||
|Запрещено добавлять и удалять существующих пользователей:'");
|
||||
СоставПользователей = РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Наименование");
|
||||
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
ТекстОшибки = ТекстОшибки + Символы.ПС + Выборка.Наименование;
|
||||
КонецЦикла;
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Недостаточно прав доступа для изменения:
|
||||
|%1
|
||||
|
|
||||
|В состав участников групп пользователей можно включать и исключать
|
||||
|только новых пользователей, которые еще не одобрены администратором
|
||||
|(то есть администратор еще не разрешил вход в программу).'"),
|
||||
СтрСоединить(СоставПользователей, Символы.ПС));
|
||||
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
|
||||
|
||||
@@ -57,6 +57,8 @@
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
// АПК:362-выкл Проектное решение
|
||||
|
||||
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
|
||||
@@ -71,4 +73,6 @@
|
||||
#КонецЕсли
|
||||
КонецПроцедуры
|
||||
|
||||
// АПК:362-вкл
|
||||
|
||||
#КонецОбласти
|
||||
@@ -57,6 +57,8 @@
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
// АПК:362-выкл Проектное решение
|
||||
|
||||
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
|
||||
@@ -71,5 +73,7 @@
|
||||
#КонецЕсли
|
||||
КонецПроцедуры
|
||||
|
||||
// АПК:362-вкл
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -428,10 +428,10 @@
|
||||
// Процедура обновляет данные справочника по метаданным конфигурации.
|
||||
//
|
||||
// Параметры:
|
||||
// ЕстьИзменения - Булево - (возвращаемое значение) в этот параметр возвращается
|
||||
// ЕстьИзменения - Булево - возвращаемое значение. В этот параметр возвращается
|
||||
// значение Истина, если производилась запись, иначе не изменяется.
|
||||
//
|
||||
// ЕстьУдаленные - Булево - (возвращаемое значение) в этот параметр возвращается
|
||||
// ЕстьУдаленные - Булево - возвращаемое значение. В этот параметр возвращается
|
||||
// значение Истина, если хотя бы один элемент справочника был помечен
|
||||
// на удаление, иначе не изменяется.
|
||||
//
|
||||
@@ -483,24 +483,23 @@
|
||||
// Процедура обновляет данные справочника по метаданным конфигурации.
|
||||
//
|
||||
// Параметры:
|
||||
// ЕстьИзменения - Булево - (возвращаемое значение) - в этот параметр возвращается
|
||||
// ЕстьИзменения - Булево - возвращаемое значение. В этот параметр возвращается
|
||||
// значение Истина, если производилась запись, иначе не изменяется.
|
||||
//
|
||||
// ЕстьУдаленные - Булево - (возвращаемое значение) - в этот параметр возвращается
|
||||
// ЕстьУдаленные - Булево - возвращаемое значение. В этот параметр возвращается
|
||||
// значение Истина, если хотя бы один элемент справочника был помечен
|
||||
// на удаление, иначе не изменяется.
|
||||
//
|
||||
// ТолькоПроверка - Булево - не производить никаких изменений, а выполнить только установку
|
||||
// параметров ЕстьИзменения, ЕстьУдаленные, ЕстьКритичныеИзменения, СписокКритичныхИзменений.
|
||||
//
|
||||
// ЕстьКритичныеИзменения - (возвращаемое значение) - в этот параметр возвращается
|
||||
// ЕстьКритичныеИзменения - Булево - возвращаемое значение. В этот параметр возвращается
|
||||
// значение Истина, если найдены критичные изменения, иначе не изменяется.
|
||||
// Критичные изменения (только для не помеченных на удаление):
|
||||
// - изменении реквизита ПолноеИмя,
|
||||
// - добавление нового элемента справочника.
|
||||
// В общем случае, критичные изменения требуют монопольный режим.
|
||||
// Критичные изменения (только для непомеченных на удаление):
|
||||
// изменении реквизита ПолноеИмя или добавление нового элемента справочника.
|
||||
// В общем случае критичные изменения требуют монопольный режим.
|
||||
//
|
||||
// СписокКритичныхИзменений - Строка (возвращаемое значение) - содержит полные имена
|
||||
// СписокКритичныхИзменений - Строка - возвращаемое значение. Содержит полные имена
|
||||
// объектов метаданных, которые добавлены или требуется добавить,
|
||||
// а также объектов метаданных, полные имена которых изменены или требуется изменить.
|
||||
//
|
||||
@@ -697,6 +696,9 @@
|
||||
|
||||
ИначеЕсли ТипЗнч(Описание.Ключ) = Тип("Тип") Тогда
|
||||
Результат.Вставить(Идентификатор, Метаданные.НайтиПоТипу(Описание.Ключ));
|
||||
|
||||
ИначеЕсли СтрНачинаетсяС(Описание.Ключ, "Роль.") Тогда
|
||||
Результат.Вставить(Идентификатор, Метаданные.Роли.Найти(СтрРазделить(Описание.Ключ, ".")[1]));
|
||||
Иначе
|
||||
Результат.Вставить(Идентификатор, Метаданные.НайтиПоПолномуИмени(Описание.Ключ));
|
||||
КонецЕсли;
|
||||
@@ -1444,15 +1446,22 @@
|
||||
Выгрузка.Колонки.Добавить("ЭтоНовый", Новый ОписаниеТипов("Булево"));
|
||||
|
||||
// Упорядочение идентификаторов перед обработкой.
|
||||
Для каждого Строка Из Выгрузка Цикл
|
||||
Для Каждого Строка Из Выгрузка Цикл
|
||||
Если Не ЗначениеЗаполнено(Строка.Ссылка) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Данные справочника %1 повреждены.
|
||||
|В конфигураторе в меню ""Администрирование""
|
||||
|выполните ""Тестирование и исправление..."".'"),
|
||||
?(ОбъектыРасширений, "ИдентификаторыОбъектовРасширений", "ИдентификаторыОбъектовМетаданных"));
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
Если ТипЗнч(Строка.ХранилищеКлюча) = Тип("ХранилищеЗначения") Тогда
|
||||
Строка.КлючОбъектаМетаданных = Строка.ХранилищеКлюча.Получить();
|
||||
Иначе
|
||||
Строка.КлючОбъектаМетаданных = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Строка.БезКлючаОбъектаМетаданных = Строка.КлючОбъектаМетаданных = Неопределено
|
||||
ИЛИ Строка.КлючОбъектаМетаданных = Тип("Неопределено");
|
||||
Или Строка.КлючОбъектаМетаданных = Тип("Неопределено");
|
||||
КонецЦикла;
|
||||
|
||||
Выгрузка.Индексы.Добавить("Ссылка");
|
||||
@@ -1460,7 +1469,7 @@
|
||||
|
||||
СвойстваКоллекций = СтандартныеПодсистемыПовтИсп.СвойстваКоллекцийОбъектовМетаданных(ОбъектыРасширений);
|
||||
|
||||
Для каждого СвойстваКоллекции Из СвойстваКоллекций Цикл
|
||||
Для Каждого СвойстваКоллекции Из СвойстваКоллекций Цикл
|
||||
ИдентификаторКоллекции = ИдентификаторКоллекции(СвойстваКоллекции.Идентификатор, ОбъектыРасширений);
|
||||
Строка = Выгрузка.Найти(ИдентификаторКоллекции, "Ссылка");
|
||||
Если Строка = Неопределено Тогда
|
||||
@@ -1523,6 +1532,7 @@
|
||||
Переименование.НовоеПолноеИмя = НовоеПолноеИмя;
|
||||
КонецЕсли;
|
||||
Строка.ПолноеИмя = НовоеПолноеИмя;
|
||||
Строка.Обновлен = Истина;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -2248,7 +2258,11 @@
|
||||
|
||||
Функция МетаданныеНайтиПоПолномуИмени(ПолноеИмя)
|
||||
|
||||
Если СтрНачинаетсяС(ПолноеИмя, "Роль.") Тогда
|
||||
ОбъектМетаданных = Метаданные.Роли.Найти(СтрРазделить(ПолноеИмя, ".")[1]);
|
||||
Иначе
|
||||
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
|
||||
+24
@@ -1253,6 +1253,30 @@
|
||||
<value></value>
|
||||
</code>
|
||||
</items>
|
||||
<items id="51a9bff2-c716-4f86-bbfa-861b026ee9fd">
|
||||
<name>РегистрСведенийИспользуемыеВидыДоступа</name>
|
||||
<code xsi:type="core:StringValue">
|
||||
<value></value>
|
||||
</code>
|
||||
</items>
|
||||
<items id="bdd8a5af-48f3-48f5-b5ef-e03497baf600">
|
||||
<name>РегистрСведенийИспользуемыеВидыДоступаПоТаблицам</name>
|
||||
<code xsi:type="core:StringValue">
|
||||
<value></value>
|
||||
</code>
|
||||
</items>
|
||||
<items id="27eb08f4-c296-4ef9-9941-bceec60b4b02">
|
||||
<name>РегистрСведенийКэшПереводов</name>
|
||||
<code xsi:type="core:StringValue">
|
||||
<value></value>
|
||||
</code>
|
||||
</items>
|
||||
<items id="f674dc60-7b2e-4976-83a1-ae630aad4b4b">
|
||||
<name>РегистрСведенийСертификатыПользователяDSS</name>
|
||||
<code xsi:type="core:StringValue">
|
||||
<value></value>
|
||||
</code>
|
||||
</items>
|
||||
</predefined>
|
||||
<predefinedDataUpdate>DontAutoUpdate</predefinedDataUpdate>
|
||||
<editType>InDialog</editType>
|
||||
|
||||
@@ -117,10 +117,10 @@
|
||||
// Процедура обновляет данные справочника по метаданным конфигурации.
|
||||
//
|
||||
// Параметры:
|
||||
// ЕстьИзменения - Булево - (возвращаемое значение) в этот параметр возвращается
|
||||
// ЕстьИзменения - Булево - возвращаемое значение. В этот параметр возвращается
|
||||
// значение Истина, если производилась запись, иначе не изменяется.
|
||||
//
|
||||
// ЕстьУдаленные - Булево - (возвращаемое значение) в этот параметр возвращается
|
||||
// ЕстьУдаленные - Булево - возвращаемое значение. В этот параметр возвращается
|
||||
// значение Истина, если хотя бы один элемент справочника был помечен
|
||||
// на удаление, иначе не изменяется.
|
||||
//
|
||||
|
||||
@@ -557,7 +557,7 @@
|
||||
<name>ЗагрузитьКлассификатор</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Загрузить классификатор</value>
|
||||
<value>Загрузить классификатор...</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<toolTip>
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<key>ru</key>
|
||||
<value>Справочник БИК</value>
|
||||
</synonym>
|
||||
<comment>АПК:58</comment>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Catalog.КлассификаторБанков.StandardAttribute.Description</inputByString>
|
||||
<inputByString>Catalog.КлассификаторБанков.StandardAttribute.Code</inputByString>
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
// параметрах дополнительных реквизитов и сведений.
|
||||
//
|
||||
// Параметры:
|
||||
// ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись,
|
||||
// ЕстьИзменения - Булево - возвращаемое значение. Если производилась запись,
|
||||
// устанавливается Истина, иначе не изменяется.
|
||||
//
|
||||
Процедура ОбновитьСоставНаименованийПредопределенныхНаборов(ЕстьИзменения = Неопределено) Экспорт
|
||||
|
||||
@@ -78,8 +78,8 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обработчик обновления на версию 3.1.4.294:
|
||||
// - заполняет реквизит "ТипПредопределеннойПапки" в справочнике "Папки электронных писем"
|
||||
// Обработчик обновления на версию 3.1.5.108:
|
||||
// - заполняет реквизит "ТипПредопределеннойПапки" в справочнике "Папки электронных писем".
|
||||
//
|
||||
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
|
||||
|
||||
@@ -172,5 +172,4 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#КонецЕсли
|
||||
@@ -1185,12 +1185,13 @@
|
||||
ХранимыеПараметры.Вставить("ИспользоватьГруппы", ПолучитьФункциональнуюОпцию("ИспользоватьГруппыПользователей"));
|
||||
КонецЕсли;
|
||||
|
||||
Если ХранимыеПараметры.Свойство("ТекущаяСтрока") Тогда
|
||||
ТекущиеХранимыеПараметры = ХранимыеПараметры; // Структура
|
||||
Если ТекущиеХранимыеПараметры.Свойство("ТекущаяСтрока") Тогда
|
||||
|
||||
Если ТипЗнч(ХранимыеПараметры.ТекущаяСтрока) = Тип("СправочникСсылка.ГруппыПользователей") Тогда
|
||||
Если ТипЗнч(ТекущиеХранимыеПараметры.ТекущаяСтрока) = Тип("СправочникСсылка.ГруппыПользователей") Тогда
|
||||
|
||||
Если ХранимыеПараметры.ИспользоватьГруппы Тогда
|
||||
Элементы.ГруппыПользователей.ТекущаяСтрока = ХранимыеПараметры.ТекущаяСтрока;
|
||||
Элементы.ГруппыПользователей.ТекущаяСтрока = ТекущиеХранимыеПараметры.ТекущаяСтрока;
|
||||
Иначе
|
||||
Параметры.ТекущаяСтрока = Неопределено;
|
||||
КонецЕсли;
|
||||
@@ -1341,9 +1342,9 @@
|
||||
// Параметры:
|
||||
// Ответ - КодВозвратаДиалога
|
||||
// ДополнительныеПараметры - Структура:
|
||||
// * ПараметрыПеретаскивания - ПараметрыПеретаскивания
|
||||
// * ПараметрыПеретаскивания - Массив из СправочникСсылка.Пользователи
|
||||
// * Строка - Строка
|
||||
// * Перемещение - ДействиеПеретаскивания
|
||||
// * Перемещение - Булево
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ГруппыПользователейПеретаскиваниеЗавершение(Ответ, ДополнительныеПараметры) Экспорт
|
||||
|
||||
@@ -2071,7 +2071,10 @@
|
||||
ИначеЕсли Параметры.Свойство("ИдентификаторПользователяИБ")
|
||||
И ЗначениеЗаполнено(Параметры.ИдентификаторПользователяИБ) Тогда
|
||||
|
||||
Если Объект.ИдентификаторПользователяИБ <> Параметры.ИдентификаторПользователяИБ Тогда
|
||||
Объект.ИдентификаторПользователяИБ = Параметры.ИдентификаторПользователяИБ;
|
||||
Модифицированность = Истина;
|
||||
КонецЕсли;
|
||||
ПрочитанныеСвойства = Пользователи.СвойстваПользователяИБ(Объект.ИдентификаторПользователяИБ);
|
||||
Если ПрочитанныеСвойства <> Неопределено Тогда
|
||||
|
||||
|
||||
@@ -62,10 +62,9 @@
|
||||
//
|
||||
// Параметры:
|
||||
// ПараметрыВыгрузки - Структура:
|
||||
// - ДляПисемВПапке - Справочник.ПапкиЭлектронныхПисем - письма, которые находятся в этой папке
|
||||
// будут обработаны.
|
||||
// - ВключаяПодчиненные - Булево - признак, того что должны обрабатываться письма в подчиненных папках.
|
||||
// - ТаблицаПравил - ТаблицаЗначений - таблица правил, которые должны быть применены.
|
||||
// * ДляПисемВПапке - СправочникСсылка.ПапкиЭлектронныхПисем - письма, которые находятся в этой папке будут обработаны.
|
||||
// * ВключаяПодчиненные - Булево - признак, того что должны обрабатываться письма в подчиненных папках.
|
||||
// * ТаблицаПравил - ТаблицаЗначений - таблица правил, которые должны быть применены.
|
||||
// АдресХранилища - Строка - сообщение о результате применения правил.
|
||||
//
|
||||
Процедура ПрименитьПравила(ПараметрыВыгрузки, АдресХранилища) Экспорт
|
||||
|
||||
+1
-1
@@ -235,7 +235,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// ОписаниеОшибки - ДанныеФормыКоллекция:
|
||||
// ОписаниеОшибок - ДанныеФормыКоллекция:
|
||||
// * Ошибки - Массив из Структура
|
||||
// ОшибкаНаСервере - Булево
|
||||
//
|
||||
|
||||
@@ -231,6 +231,7 @@
|
||||
// ТаблицаЗначений - выполненные изменения данных производственных календарей:
|
||||
// * КодПроизводственногоКалендаря - Строка - код измененного календаря,
|
||||
// * Год - Число - год, за который календарь был изменен.
|
||||
//
|
||||
Функция ОбновитьДанныеПроизводственныхКалендарей(Знач ТаблицаДанных) Экспорт
|
||||
|
||||
ТаблицаИзменений = ТаблицаИзмененийПроизводственныхКалендарей();
|
||||
@@ -359,12 +360,13 @@
|
||||
// КодБазовогоКалендаря - Строка - код базового календаря
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - Результат заполнения производственного календаря по умолчанию:
|
||||
// * КодПроизводственногоКалендаря - Строка -
|
||||
// * ВидДня - ПеречислениеСсылка.ВидыДнейПроизводственногоКалендаря -
|
||||
// * Год - Число -
|
||||
// * Дата - Дата -
|
||||
// * ДатаПереноса - Дата -
|
||||
// ТаблицаЗначений - результат заполнения производственного календаря по умолчанию:
|
||||
// * КодПроизводственногоКалендаря - Строка
|
||||
// * ВидДня - ПеречислениеСсылка.ВидыДнейПроизводственногоКалендаря
|
||||
// * Год - Число
|
||||
// * Дата - Дата
|
||||
// * ДатаПереноса - Дата
|
||||
//
|
||||
Функция РезультатЗаполненияПроизводственногоКалендаряПоУмолчанию(КодКалендаря, НомерГода, Знач КодБазовогоКалендаря = Неопределено) Экспорт
|
||||
|
||||
ВидыДней = Новый Соответствие;
|
||||
@@ -524,11 +526,11 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений:
|
||||
// * КодПроизводственногоКалендаря
|
||||
// * ВидДня
|
||||
// * Год
|
||||
// * Дата
|
||||
// * ДатаПереноса.
|
||||
// * КодПроизводственногоКалендаря - Строка
|
||||
// * ВидДня - ПеречислениеСсылка.ВидыДнейПроизводственногоКалендаря
|
||||
// * Год - Число
|
||||
// * Дата - Дата
|
||||
// * ДатаПереноса - Дата
|
||||
//
|
||||
Функция ДанныеПроизводственныхКалендарейИзXML(Знач ДанныеXML, ТаблицаКалендарей, КодыКалендарей = Неопределено, ФормироватьПолныйНабор = Истина) Экспорт
|
||||
|
||||
@@ -981,7 +983,7 @@
|
||||
// Параметры:
|
||||
// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - текущий элемент справочника.
|
||||
// НомерГода - Число - номер года, за который необходимо записать производственный календарь.
|
||||
// ДанныеПроизводственногоКалендаря - ТаблицаЗначений - см. Справочник.ПроизводственныеКалендари.ДанныеПроизводственногоКалендаря.
|
||||
// ДанныеПроизводственногоКалендаря - см. Справочник.ПроизводственныеКалендари.ДанныеПроизводственногоКалендаря.
|
||||
//
|
||||
Процедура ЗаписатьДанныеПроизводственногоКалендаря(ПроизводственныйКалендарь, НомерГода, ДанныеПроизводственногоКалендаря) Экспорт
|
||||
|
||||
@@ -1013,6 +1015,7 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие - соответствие видов дня и цветов оформления.
|
||||
//
|
||||
Функция ЦветаОформленияВидовДнейПроизводственногоКалендаря() Экспорт
|
||||
|
||||
ЦветаОформления = Новый Соответствие;
|
||||
@@ -1032,6 +1035,7 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СписокЗначений - список, содержащий значение перечисления и его синоним в качестве представления.
|
||||
//
|
||||
Функция СписокВидовДня() Экспорт
|
||||
|
||||
СписокВидовДня = Новый СписокЗначений;
|
||||
@@ -1048,7 +1052,8 @@
|
||||
// для использования, например, в качестве шаблона.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - Список производственных календарей
|
||||
// Массив - список производственных календарей
|
||||
//
|
||||
Функция СписокПроизводственныхКалендарей() Экспорт
|
||||
|
||||
Запрос = Новый Запрос(
|
||||
|
||||
@@ -11,10 +11,34 @@
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
|
||||
|
||||
Если УпрощенныйИнтерфейс() Тогда
|
||||
КлючВарианта = "ПраваПользователейНаТаблицы";
|
||||
|
||||
Отбор = Новый Структура;
|
||||
Отбор.Вставить("ГруппаДоступа", ПараметрКоманды);
|
||||
Отбор.Вставить("ВходВПрограммуРазрешен", Истина);
|
||||
|
||||
ПараметрыОтчета = Новый Структура;
|
||||
ПараметрыОтчета.Вставить("СформироватьПриОткрытии", Истина);
|
||||
ПараметрыОтчета.Вставить("Отбор", Отбор);
|
||||
ПараметрыОтчета.Вставить("КлючВарианта", КлючВарианта);
|
||||
ПараметрыОтчета.Вставить("КлючНазначенияИспользования", КлючВарианта);
|
||||
|
||||
ОткрытьФорму("Отчет.АнализПравДоступа.Форма", ПараметрыОтчета, ЭтотОбъект);
|
||||
|
||||
Иначе
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("Профиль", ПараметрКоманды);
|
||||
ОткрытьФорму("Справочник.ГруппыДоступа.ФормаСписка", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция УпрощенныйИнтерфейс()
|
||||
|
||||
Возврат УправлениеДоступомСлужебный.УпрощенныйИнтерфейсНастройкиПравДоступа();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -15,6 +15,12 @@
|
||||
ТолькоПросмотр = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
БезРедактированияПоставляемыхЗначений = ТолькоПросмотр
|
||||
Или Не Объект.Ссылка.Пустая()
|
||||
И Справочники.ПрофилиГруппДоступа.ЗапретИзмененияПрофиля(Объект, Элементы.Родитель.ТолькоПросмотр);
|
||||
|
||||
Элементы.Наименование.ТолькоПросмотр = БезРедактированияПоставляемыхЗначений;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
// Скрытие профиля Администратор.
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
|
||||
Список, "Ссылка", Справочники.ПрофилиГруппДоступа.Администратор,
|
||||
Список, "Ссылка", УправлениеДоступом.ПрофильАдминистратор(),
|
||||
ВидСравненияКомпоновкиДанных.НеРавно, , Истина);
|
||||
|
||||
Элементы.Список.ВыборГруппИЭлементов = Параметры.ВыборГруппИЭлементов;
|
||||
|
||||
@@ -27,16 +27,17 @@
|
||||
// Установка постоянной доступности свойств.
|
||||
|
||||
// Определение необходимости настройки ограничений доступа.
|
||||
Если НЕ УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда
|
||||
Если Не УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда
|
||||
Элементы.ВидыИЗначенияДоступа.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
// Определение возможности редактирования элементов формы (перезапись доступна).
|
||||
БезРедактированияПоставляемыхЗначений = ТолькоПросмотр
|
||||
ИЛИ НЕ Объект.Ссылка.Пустая() И Справочники.ПрофилиГруппДоступа.ЗапретИзмененияПрофиля(Объект);
|
||||
Или Не Объект.Ссылка.Пустая()
|
||||
И Справочники.ПрофилиГруппДоступа.ЗапретИзмененияПрофиля(Объект, Элементы.Родитель.ТолькоПросмотр);
|
||||
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
Если Объект.Ссылка = Справочники.ПрофилиГруппДоступа.Администратор
|
||||
Если Объект.Ссылка = УправлениеДоступом.ПрофильАдминистратор()
|
||||
И Не Пользователи.ЭтоПолноправныйПользователь(, Не РазделениеВключено) Тогда
|
||||
ТолькоПросмотр = Истина;
|
||||
КонецЕсли;
|
||||
@@ -668,7 +669,7 @@
|
||||
ПараметрыДействия.Вставить("КоллекцияРолей", КоллекцияРолей);
|
||||
|
||||
ПараметрыДействия.Вставить("СкрытьРольПолныеПрава",
|
||||
Объект.Ссылка <> Справочники.ПрофилиГруппДоступа.Администратор);
|
||||
Объект.Ссылка <> УправлениеДоступом.ПрофильАдминистратор());
|
||||
|
||||
ПараметрыДействия.Вставить("НазначениеРолей",
|
||||
УправлениеДоступомСлужебныйКлиентСервер.НазначениеПрофиля(Объект));
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -37,6 +37,7 @@
|
||||
РолиАдминистратора.Добавить("Роль.АдминистраторСистемы");
|
||||
ИдентификаторыРолей = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(РолиАдминистратора);
|
||||
ОбработанныеРоли = Новый Соответствие;
|
||||
ПрофильАдминистратор = УправлениеДоступом.ПрофильАдминистратор();
|
||||
Индекс = Роли.Количество();
|
||||
Пока Индекс > 0 Цикл
|
||||
Индекс = Индекс - 1;
|
||||
@@ -46,7 +47,7 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ОбработанныеРоли.Вставить(Роль, Истина);
|
||||
Если Ссылка = Справочники.ПрофилиГруппДоступа.Администратор Тогда
|
||||
Если Ссылка = ПрофильАдминистратор Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Если Роль = ИдентификаторыРолей["Роль.ПолныеПрава"]
|
||||
@@ -206,12 +207,13 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбъектКопирования.Ссылка = Справочники.ПрофилиГруппДоступа.Администратор Тогда
|
||||
ИдентификаторПоставляемыхДанных = Неопределено;
|
||||
|
||||
Если Не ОбъектКопирования.ДополнительныеСвойства.Свойство("ПропуститьОчисткуРолей")
|
||||
И ОбъектКопирования.Ссылка = УправлениеДоступом.ПрофильАдминистратор() Тогда
|
||||
Роли.Очистить();
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторПоставляемыхДанных = Неопределено;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -224,8 +226,11 @@
|
||||
Функция ОбновитьРолиПользователейПриИзмененииРолейПрофиля()
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("Профиль", Ссылка);
|
||||
Запрос.УстановитьПараметр("СтарыеРолиПрофиля", ?(Ссылка = СтарыеЗначения.Ссылка,
|
||||
Запрос.УстановитьПараметр("Профиль", ?(ПометкаУдаления,
|
||||
Справочники.ПрофилиГруппДоступа.ПустаяСсылка(), Ссылка));
|
||||
|
||||
Запрос.УстановитьПараметр("СтарыеРолиПрофиля",
|
||||
?(Ссылка = СтарыеЗначения.Ссылка И Не СтарыеЗначения.ПометкаУдаления,
|
||||
СтарыеЗначения.Роли.Выгрузить(), Роли.Выгрузить(Новый Массив)));
|
||||
|
||||
Запрос.Текст =
|
||||
@@ -270,14 +275,14 @@
|
||||
"ВЫБРАТЬ
|
||||
| ПраваРолейРасширений.ОбъектМетаданных КАК ОбъектМетаданных,
|
||||
| ПраваРолейРасширений.Роль КАК Роль,
|
||||
| ПраваРолейРасширений.Добавление КАК Добавление,
|
||||
| ПраваРолейРасширений.Изменение КАК Изменение,
|
||||
| ПраваРолейРасширений.ЧтениеБезОграничения КАК ЧтениеБезОграничения,
|
||||
| ПраваРолейРасширений.ДобавлениеБезОграничения КАК ДобавлениеБезОграничения,
|
||||
| ПраваРолейРасширений.ИзменениеБезОграничения КАК ИзменениеБезОграничения,
|
||||
| ПраваРолейРасширений.Просмотр КАК Просмотр,
|
||||
| ПраваРолейРасширений.ИнтерактивноеДобавление КАК ИнтерактивноеДобавление,
|
||||
| ПраваРолейРасширений.Редактирование КАК Редактирование,
|
||||
| ПраваРолейРасширений.ПравоДобавление КАК ПравоДобавление,
|
||||
| ПраваРолейРасширений.ПравоИзменение КАК ПравоИзменение,
|
||||
| ПраваРолейРасширений.ПравоЧтениеБезОграничения КАК ПравоЧтениеБезОграничения,
|
||||
| ПраваРолейРасширений.ПравоДобавлениеБезОграничения КАК ПравоДобавлениеБезОграничения,
|
||||
| ПраваРолейРасширений.ПравоИзменениеБезОграничения КАК ПравоИзменениеБезОграничения,
|
||||
| ПраваРолейРасширений.ПравоПросмотр КАК ПравоПросмотр,
|
||||
| ПраваРолейРасширений.ПравоИнтерактивноеДобавление КАК ПравоИнтерактивноеДобавление,
|
||||
| ПраваРолейРасширений.ПравоРедактирование КАК ПравоРедактирование,
|
||||
| ПраваРолейРасширений.ВидИзмененияСтроки КАК ВидИзмененияСтроки
|
||||
|ПОМЕСТИТЬ ПраваРолейРасширений
|
||||
|ИЗ
|
||||
@@ -288,14 +293,14 @@
|
||||
|ВЫБРАТЬ
|
||||
| ПраваРолейРасширений.ОбъектМетаданных КАК ОбъектМетаданных,
|
||||
| ПраваРолейРасширений.Роль КАК Роль,
|
||||
| ПраваРолейРасширений.Добавление КАК Добавление,
|
||||
| ПраваРолейРасширений.Изменение КАК Изменение,
|
||||
| ПраваРолейРасширений.ЧтениеБезОграничения КАК ЧтениеБезОграничения,
|
||||
| ПраваРолейРасширений.ДобавлениеБезОграничения КАК ДобавлениеБезОграничения,
|
||||
| ПраваРолейРасширений.ИзменениеБезОграничения КАК ИзменениеБезОграничения,
|
||||
| ПраваРолейРасширений.Просмотр КАК Просмотр,
|
||||
| ПраваРолейРасширений.ИнтерактивноеДобавление КАК ИнтерактивноеДобавление,
|
||||
| ПраваРолейРасширений.Редактирование КАК Редактирование
|
||||
| ПраваРолейРасширений.ПравоДобавление КАК ПравоДобавление,
|
||||
| ПраваРолейРасширений.ПравоИзменение КАК ПравоИзменение,
|
||||
| ПраваРолейРасширений.ПравоЧтениеБезОграничения КАК ПравоЧтениеБезОграничения,
|
||||
| ПраваРолейРасширений.ПравоДобавлениеБезОграничения КАК ПравоДобавлениеБезОграничения,
|
||||
| ПраваРолейРасширений.ПравоИзменениеБезОграничения КАК ПравоИзменениеБезОграничения,
|
||||
| ПраваРолейРасширений.ПравоПросмотр КАК ПравоПросмотр,
|
||||
| ПраваРолейРасширений.ПравоИнтерактивноеДобавление КАК ПравоИнтерактивноеДобавление,
|
||||
| ПраваРолейРасширений.ПравоРедактирование КАК ПравоРедактирование
|
||||
|ПОМЕСТИТЬ ПраваРолей
|
||||
|ИЗ
|
||||
| ПраваРолейРасширений КАК ПраваРолейРасширений
|
||||
@@ -307,14 +312,14 @@
|
||||
|ВЫБРАТЬ
|
||||
| ПраваРолей.ОбъектМетаданных,
|
||||
| ПраваРолей.Роль,
|
||||
| ПраваРолей.Добавление,
|
||||
| ПраваРолей.Изменение,
|
||||
| ПраваРолей.ЧтениеБезОграничения,
|
||||
| ПраваРолей.ДобавлениеБезОграничения,
|
||||
| ПраваРолей.ИзменениеБезОграничения,
|
||||
| ПраваРолей.Просмотр,
|
||||
| ПраваРолей.ИнтерактивноеДобавление,
|
||||
| ПраваРолей.Редактирование
|
||||
| ПраваРолей.ПравоДобавление,
|
||||
| ПраваРолей.ПравоИзменение,
|
||||
| ПраваРолей.ПравоЧтениеБезОграничения,
|
||||
| ПраваРолей.ПравоДобавлениеБезОграничения,
|
||||
| ПраваРолей.ПравоИзменениеБезОграничения,
|
||||
| ПраваРолей.ПравоПросмотр,
|
||||
| ПраваРолей.ПравоИнтерактивноеДобавление,
|
||||
| ПраваРолей.ПравоРедактирование
|
||||
|ИЗ
|
||||
| РегистрСведений.ПраваРолей КАК ПраваРолей
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ ПраваРолейРасширений КАК ПраваРолейРасширений
|
||||
@@ -326,11 +331,18 @@
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||
| ПраваРолей.ОбъектМетаданных
|
||||
| ПраваРолей.ОбъектМетаданных КАК ОбъектМетаданных
|
||||
|ИЗ
|
||||
| ПраваРолей КАК ПраваРолей
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИзмененныеРоли КАК ИзмененныеРоли
|
||||
| ПО ПраваРолей.Роль = ИзмененныеРоли.Роль";
|
||||
| ПО ПраваРолей.Роль = ИзмененныеРоли.Роль
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ИзмененныеРоли.Роль КАК Роль
|
||||
|ИЗ
|
||||
| ИзмененныеРоли КАК ИзмененныеРоли";
|
||||
|
||||
Запрос.Текст = Запрос.Текст + "
|
||||
|;
|
||||
@@ -341,8 +353,16 @@
|
||||
Запрос.УстановитьПараметр("ПраваРолейРасширений", УправлениеДоступомСлужебный.ПраваРолейРасширений());
|
||||
РезультатыЗапросов = Запрос.ВыполнитьПакет();
|
||||
|
||||
Если НЕ ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей")
|
||||
И НЕ РезультатыЗапросов[1].Пустой() Тогда
|
||||
Если УправлениеДоступомСлужебный.ОграничиватьДоступНаУровнеЗаписейУниверсально()
|
||||
И Не РезультатыЗапросов[5].Пустой() Тогда
|
||||
|
||||
ИзмененныеРоли = РезультатыЗапросов[5].Выгрузить().ВыгрузитьКолонку("Роль");
|
||||
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеДоступаПриИзмененииРолейПрофиля(
|
||||
"ОбновитьРолиПользователейПриИзмененииРолейПрофиля", ИзмененныеРоли);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей")
|
||||
И Не РезультатыЗапросов[5].Пустой() Тогда
|
||||
|
||||
ПользователиДляОбновленияРолей = Справочники.ГруппыДоступа.ПользователиДляОбновленияРолейПоПрофилю(Ссылка);
|
||||
УправлениеДоступом.ОбновитьРолиПользователей(ПользователиДляОбновленияРолей);
|
||||
|
||||
@@ -151,12 +151,13 @@
|
||||
</type>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Для профилей, поставляемых в составе конфигурации, содержит идентификатор по которому можно найти описание поставляемого профиля.</value>
|
||||
<value>Для профилей и папок профилей, поставляемых в составе конфигурации, содержит идентификатор по которому можно найти описание поставляемого профиля или папки профиля.</value>
|
||||
</toolTip>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<indexing>Index</indexing>
|
||||
<use>ForFolderAndItem</use>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="db497857-33d3-49a1-b328-dfc62c973ecb">
|
||||
|
||||
@@ -11,11 +11,7 @@
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
// Вызывается непосредственно до записи объекта в базу данных.
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Если ЭтоГруппа Тогда
|
||||
Если ОбменДанными.Загрузка Или ЭтоГруппа Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -23,7 +19,7 @@
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
РегламентныеЗаданияСервер.ЗаблокироватьРегламентноеЗадание(РегламентноеЗадание);
|
||||
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(РегламентноеЗадание);
|
||||
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(РегламентноеЗадание); // АПК:453 задание запускается от имени пользователя, выбранного в форме рассылки.
|
||||
|
||||
Если Задание = Неопределено Тогда
|
||||
// Из-за выполнения индивидуального регламентного задания непосредственно в необходимой области модели сервиса.
|
||||
@@ -65,7 +61,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(РегламентноеЗадание);
|
||||
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(РегламентноеЗадание); // АПК:453 задание запускается от имени пользователя, выбранного в форме рассылки.
|
||||
Если Задание <> Неопределено Тогда
|
||||
Задание.Удалить();
|
||||
КонецЕсли;
|
||||
@@ -94,7 +90,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(РегламентноеЗадание);
|
||||
Задание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору(РегламентноеЗадание); // АПК:453 задание запускается от имени пользователя, выбранного в форме рассылки.
|
||||
Если Задание <> Неопределено Тогда
|
||||
ЗаданиеИзменено = Ложь;
|
||||
|
||||
|
||||
@@ -115,6 +115,7 @@
|
||||
<lang>ru</lang>
|
||||
</pages>
|
||||
</help>
|
||||
<dataLockFields>Catalog.РассылкиОтчетов.Attribute.ТипПолучателейРассылки</dataLockFields>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<objectPresentation>
|
||||
|
||||
@@ -181,9 +181,10 @@
|
||||
Элемент.КраткоеПредставление = НСтр("ru = '000000001'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.ТипыОсновногоОбъектаАдресации = ПланыВидовХарактеристик.ОбъектыАдресацииЗадач.ВсеОбъектыАдресации;
|
||||
|
||||
Элемент.Назначение = ТабличныеЧасти.Назначение.Скопировать();
|
||||
ЭлементТЧ = Элемент.Назначение.Добавить();
|
||||
Назначение = ТабличныеЧасти.Назначение.Скопировать(); // ТаблицаЗначений
|
||||
ЭлементТЧ = Назначение.Добавить();
|
||||
ЭлементТЧ.ТипПользователей = Справочники.Пользователи.ПустаяСсылка();
|
||||
Элемент.Назначение = Назначение;
|
||||
|
||||
БизнесПроцессыИЗадачиПереопределяемый.ПриНачальномЗаполненииРолейИсполнителей(КодыЯзыков, Элементы, ТабличныеЧасти);
|
||||
|
||||
@@ -192,7 +193,7 @@
|
||||
// Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриНастройкеНачальногоЗаполненияЭлемента
|
||||
//
|
||||
// Параметры:
|
||||
// Объект - заполняемый объект.
|
||||
// Объект - СправочникОбъект.РолиИсполнителей - заполняемый объект.
|
||||
// Данные - СтрокаТаблицыЗначений - данные заполнения объекта.
|
||||
// ДополнительныеПараметры - Структура:
|
||||
// * ПредопределенныеДанные - ТаблицаЗначений - данные заполненные в процедуре ПриНачальномЗаполненииЭлементов.
|
||||
|
||||
+171
@@ -127,6 +127,10 @@
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>СертификатыНедоступныНаСервереЗначок</name>
|
||||
<id>797</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сертификаты недоступны на сервере значок</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -251,6 +255,112 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаАвторизацииОблачнойПодписи</name>
|
||||
<id>858</id>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ТребуетсяАутентификацияОблачнойПодписиЗначок</name>
|
||||
<id>860</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Требуется аутентификация облачной подписи значок</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТребуетсяАутентификацияОблачнойПодписиЗначокРасширеннаяПодсказка</name>
|
||||
<id>862</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТребуетсяАутентификацияОблачнойПодписиЗначокКонтекстноеМеню</name>
|
||||
<id>861</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:PictureDecorationExtInfo">
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.Предупреждение</picture>
|
||||
</picture>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ТребуетсяАутентификацияОблачнойПодписиНадпись</name>
|
||||
<id>863</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Чтобы отобразить сертификаты необходимо авторизоваться на сервере облачной подписи</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТребуетсяАутентификацияОблачнойПодписиНадписьРасширеннаяПодсказка</name>
|
||||
<id>865</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТребуетсяАутентификацияОблачнойПодписиНадписьКонтекстноеМеню</name>
|
||||
<id>864</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<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>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаАвторизацииОблачнойПодписиРасширеннаяПодсказка</name>
|
||||
<id>859</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">
|
||||
<name>Сертификаты</name>
|
||||
<id>217</id>
|
||||
@@ -689,6 +799,9 @@
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<enableDrag>true</enableDrag>
|
||||
<rowPictureDataPath xsi:type="form:DataPath">
|
||||
<segments>Сертификаты.ТипРазмещения</segments>
|
||||
</rowPictureDataPath>
|
||||
<autoMaxCardHeight>true</autoMaxCardHeight>
|
||||
<rowFilter xsi:type="core:UndefinedValue"/>
|
||||
</items>
|
||||
@@ -2136,6 +2249,22 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ТипРазмещения</name>
|
||||
<id>8</id>
|
||||
<valueType>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>10</precision>
|
||||
</numberQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СертификатНаименование</name>
|
||||
@@ -2535,6 +2664,48 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СписокУчетныхЗаписей</name>
|
||||
<id>28</id>
|
||||
<valueType>
|
||||
<types>ValueList</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<extInfo xsi:type="form:ValueListExtInfo">
|
||||
<itemValueType/>
|
||||
</extInfo>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СертификатОблачнойПодписи</name>
|
||||
<id>29</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ЕстьОблачнаяПодпись</name>
|
||||
<id>30</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Далее</name>
|
||||
<title>
|
||||
|
||||
+182
-10
@@ -28,6 +28,13 @@
|
||||
Если Параметры.Свойство("Организация") Тогда
|
||||
СертификатПараметрыРеквизитов.Вставить("Организация", Параметры.Организация);
|
||||
КонецЕсли;
|
||||
ВыполнятьНаСервере = Параметры.ВыполнятьНаСервере;
|
||||
|
||||
ЕстьОблачнаяПодпись = ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи();
|
||||
Если ЕстьОблачнаяПодпись Тогда
|
||||
МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
|
||||
Элементы.Сертификаты.КартинкаСтрок = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ТипыСертификатов");
|
||||
КонецЕсли;
|
||||
|
||||
ОтборПоОрганизации = Параметры.ОтборПоОрганизации;
|
||||
|
||||
@@ -62,10 +69,18 @@
|
||||
Заголовок = НСтр("ru = 'Добавление сертификата для подписания данных'");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
||||
Если ЭлектроннаяПодпись.СоздаватьЭлектронныеПодписиНаСервере()
|
||||
И ВыполнятьНаСервере <> Ложь
|
||||
Или ЕстьОблачнаяПодпись Тогда
|
||||
|
||||
Если ВыполнятьНаСервере = Истина Тогда
|
||||
Элементы.ГруппаСертификаты.Заголовок =
|
||||
НСтр("ru = 'Личные сертификаты на сервере'");
|
||||
Иначе
|
||||
Элементы.ГруппаСертификаты.Заголовок =
|
||||
НСтр("ru = 'Личные сертификаты на компьютере и сервере'");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьОрганизации = Не Метаданные.ОпределяемыеТипы.Организация.Тип.СодержитТип(Тип("Строка"));
|
||||
Элементы.СертификатОрганизация.Видимость = ЕстьОрганизации;
|
||||
@@ -240,6 +255,27 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ТребуетсяАутентификацияОблачнойПодписиНадписьНажатие(Элемент)
|
||||
|
||||
ОповещениеСледующее = Новый ОписаниеОповещения("ТребуетсяАутентификацияОблачнойПодписиНадписьПослеАутентификации", ЭтотОбъект);
|
||||
ПараметрыОперации = Новый Структура();
|
||||
ПараметрыОперации.Вставить("СписокУчетныхЗаписей", СписокУчетныхЗаписей.ВыгрузитьЗначения());
|
||||
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
МодульСервисКриптографииDSSКлиент.ПроверкаАутентификацииПользователя(ОповещениеСледующее, Неопределено, ПараметрыОперации);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ТребуетсяАутентификацияОблачнойПодписиНадписьПослеАутентификации(РезультатВызова, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если РезультатВызова.Выполнено Тогда
|
||||
ОбновитьСписокСертификатов();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовТаблицыФормыСертификаты
|
||||
@@ -281,7 +317,18 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТекущиеДанные.ТипРазмещения = 3 Тогда
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
ОтпечатокСертификата = Новый Структура();
|
||||
ОтпечатокСертификата.Вставить("Отпечаток", МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(ТекущиеДанные.Отпечаток));
|
||||
|
||||
ПараметрыОперации = Новый Структура("ЭтоЗаявление", ТекущиеДанные.ЭтоЗаявление);
|
||||
ОповещениеСледующее = Новый ОписаниеОповещения("ОткрытьСертификатОблачнойПодписи", ЭтотОбъект, ПараметрыОперации);
|
||||
МодульСервисКриптографииDSSКлиент.НайтиСертификат(ОповещениеСледующее, ОтпечатокСертификата);
|
||||
Иначе
|
||||
ЭлектроннаяПодписьКлиент.ОткрытьСертификат(ТекущиеДанные.Отпечаток, Не ТекущиеДанные.ЭтоЗаявление);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -341,7 +388,24 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если СертификатВОблачномСервисе Тогда
|
||||
Если СертификатОблачнойПодписи Тогда
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
МодульСервисКриптографииDSSСлужебныйВызовСервера = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSСлужебныйВызовСервера");
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
|
||||
ОтпечатокСертификата = МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(ОтпечатокВыбранногоСертификата);
|
||||
НастройкиПользователя = МодульСервисКриптографииDSSСлужебныйВызовСервера.ПолучитьНастройкиПользователяПоСертификату(ОтпечатокСертификата);
|
||||
|
||||
ПараметрыОперации = Новый Структура();
|
||||
ПараметрыОперации.Вставить("УчетнаяЗапись", НастройкиПользователя.Ссылка);
|
||||
ПараметрыОперации.Вставить("ОтпечатокСертификата", ОтпечатокСертификата);
|
||||
|
||||
МодульСервисКриптографииDSSКлиент.ПроверитьСертификат(
|
||||
Новый ОписаниеОповещения("ВыбратьПослеПроверкиСертификатаОблачнойПодписи", ЭтотОбъект, ПараметрыОперации),
|
||||
НастройкиПользователя,
|
||||
ПолучитьИзВременногоХранилища(СертификатАдрес));
|
||||
|
||||
ИначеЕсли СертификатВОблачномСервисе Тогда
|
||||
|
||||
МодульСервисКриптографииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииКлиент");
|
||||
МодульСервисКриптографииКлиент.ПроверитьСертификат(
|
||||
@@ -401,6 +465,43 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры Выбрать.
|
||||
&НаКлиенте
|
||||
Процедура ВыбратьПослеПроверкиСертификатаОблачнойПодписи(Результат, Контекст) Экспорт
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
Если Не Результат.Выполнено Тогда
|
||||
ОписаниеОшибки = Результат.Ошибка;
|
||||
ИначеЕсли Не Результат.Результат Тогда
|
||||
ОписаниеОшибки = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТекстОшибкиСервисаСертификатНедействителен();
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
Если ДляШифрованияИРасшифровки = Истина Тогда
|
||||
ЗаголовокФормы = НСтр("ru = 'Проверка шифрования и расшифровки'");
|
||||
Иначе
|
||||
ЗаголовокФормы = НСтр("ru = 'Проверка установки электронной подписи'");
|
||||
КонецЕсли;
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
|
||||
ЗаголовокФормы, "", Новый Структура("ОписаниеОшибки", ОписаниеОшибки), Новый Структура);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Сертификат) Тогда
|
||||
ДополнительныеПараметры.Вставить("ЭтоНовый");
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписатьСертификатВСправочникОблачнаяПодпись(Контекст.УчетнаяЗапись);
|
||||
|
||||
ОповеститьОбИзменении(Сертификат);
|
||||
Оповестить("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования",
|
||||
ДополнительныеПараметры, Сертификат);
|
||||
|
||||
ОповеститьОВыборе(Сертификат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры Выбрать.
|
||||
&НаКлиенте
|
||||
Процедура ВыбратьПослеПроверкиСертификатаВМоделиСервиса(Результат, Контекст) Экспорт
|
||||
|
||||
@@ -524,8 +625,18 @@
|
||||
Контекст = Новый Структура;
|
||||
Контекст.Вставить("Оповещение", Оповещение);
|
||||
|
||||
Если ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере()
|
||||
И ВыполнятьНаСервере = Истина Тогда
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("СвойстваСертификатовНаКлиенте", Новый Массив);
|
||||
Результат.Вставить("ОшибкаПолученияСертификатовНаКлиенте", Новый Структура);
|
||||
|
||||
ОбновитьСписокСертификатовПродолжение(Результат, Контекст);
|
||||
Иначе
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьСвойстваСертификатовНаКлиенте(Новый ОписаниеОповещения(
|
||||
"ОбновитьСписокСертификатовПродолжение", ЭтотОбъект, Контекст), Истина, ПоказыватьВсе);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -548,8 +659,12 @@
|
||||
|
||||
ОшибкаПолученияСертификатовНаСервере = Новый Структура;
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ОтборПоОрганизации", ОтборПоОрганизации);
|
||||
ДополнительныеПараметры.Вставить("ВыполнятьНаСервере", ВыполнятьНаСервере);
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.ОбновитьСписокСертификатов(Сертификаты, СвойстваСертификатовНаКлиенте,
|
||||
ДобавлениеВСписок, Истина, ОшибкаПолученияСертификатовНаСервере, ПоказыватьВсе, ОтборПоОрганизации);
|
||||
ДобавлениеВСписок, Истина, ОшибкаПолученияСертификатовНаСервере, ПоказыватьВсе, ДополнительныеПараметры);
|
||||
|
||||
Если ЗначениеЗаполнено(ОтпечатокВыбранногоСертификата)
|
||||
И ( Элементы.Сертификаты.ТекущаяСтрока = Неопределено
|
||||
@@ -570,6 +685,15 @@
|
||||
Элементы.ГруппаСертификатыНедоступныНаСервере.Видимость =
|
||||
ЗначениеЗаполнено(ОшибкаПолученияСертификатовНаСервере);
|
||||
|
||||
ВидимостьАутентификации = Ложь;
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
СписокУчетныхЗаписей.ЗагрузитьЗначения(МодульСервисКриптографииDSSСлужебный.УчетныеЗаписиБезСертификатов());
|
||||
ВидимостьАутентификации = СписокУчетныхЗаписей.Количество() > 0;
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ГруппаАвторизацииОблачнойПодписи.Видимость = ВидимостьАутентификации;
|
||||
|
||||
Если Элементы.Сертификаты.ТекущаяСтрока = Неопределено Тогда
|
||||
ОтпечатокВыбранногоСертификата = "";
|
||||
Иначе
|
||||
@@ -579,6 +703,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОткрытьСертификатОблачнойПодписи(РезультатПоиска, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если РезультатПоиска.Выполнено Тогда
|
||||
ЭлектроннаяПодписьКлиент.ОткрытьСертификат(РезультатПоиска.ДанныеСертификата.Сертификат, Не ДополнительныеПараметры.ЭтоЗаявление);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПерейтиКВыборуТекущегоСертификата(Оповещение)
|
||||
|
||||
@@ -606,6 +739,7 @@
|
||||
СертификатНаКлиенте = ТекущиеДанные.НаКлиенте;
|
||||
СертификатНаСервере = ТекущиеДанные.НаСервере;
|
||||
СертификатВОблачномСервисе = ТекущиеДанные.ВОблачномСервисе;
|
||||
СертификатОблачнойПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(ТекущиеДанные.ТипРазмещения) = "ОблачнаяПодпись";
|
||||
|
||||
Контекст = Новый Структура;
|
||||
Контекст.Вставить("Оповещение", Оповещение);
|
||||
@@ -624,7 +758,16 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТекущиеДанные.ВОблачномСервисе Тогда
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(ТекущиеДанные.ТипРазмещения) = "ОблачнаяПодпись" Тогда
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(ТекущиеДанные.Отпечаток));
|
||||
МодульСервисКриптографииDSSКлиент.НайтиСертификат(Новый ОписаниеОповещения(
|
||||
"ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачнойПодписи", ЭтотОбъект, Контекст), СтруктураПоиска);
|
||||
|
||||
ИначеЕсли ТекущиеДанные.ВОблачномСервисе Тогда
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", Base64Значение(ТекущиеДанные.Отпечаток));
|
||||
МодульХранилищеСертификатовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХранилищеСертификатовКлиент");
|
||||
@@ -678,22 +821,42 @@
|
||||
&НаКлиенте
|
||||
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачномСервисе(РезультатПоиска, Контекст) Экспорт
|
||||
|
||||
ТекущиеДанные = Элементы.Сертификаты.ТекущиеДанные;
|
||||
|
||||
Если ЕстьОблачнаяПодпись Тогда
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
|
||||
ОбработкаСледующая = Новый ОписаниеОповещения("ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачнойПодписи", ЭтотОбъект, Контекст);
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(ТекущиеДанные.Отпечаток));
|
||||
МодульСервисКриптографииDSSКлиент.НайтиСертификат(ОбработкаСледующая, СтруктураПоиска);
|
||||
Иначе
|
||||
ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачнойПодписи(РезультатПоиска, Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПерейтиКВыборуТекущегоСертификата.
|
||||
&НаКлиенте
|
||||
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачнойПодписи(РезультатПоиска, Контекст) Экспорт
|
||||
|
||||
Если Не РезультатПоиска.Выполнено Тогда
|
||||
Контекст.Результат.ОписаниеОшибки = РезультатПоиска.ОписаниеОшибки.Описание;
|
||||
Контекст.Результат.ОписаниеОшибки = РезультатПоиска.Ошибка;
|
||||
Контекст.Результат.ОбновитьСписокСертификатов = Истина;
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(РезультатПоиска.Сертификат) Тогда
|
||||
Контекст.Результат.ОписаниеОшибки = НСтр("ru = 'Сертификат отсутствует в облачном сервисе (возможно удален).'");
|
||||
Если Не ЗначениеЗаполнено(РезультатПоиска.ДанныеСертификата) Тогда
|
||||
Контекст.Результат.ОписаниеОшибки = НСтр("ru = 'Сертификат отсутствует на сервере облачной подписи (возможно удален).'");
|
||||
Контекст.Результат.ОбновитьСписокСертификатов = Истина;
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.Вставить("СертификатКриптографии", РезультатПоиска.Сертификат);
|
||||
ПерейтиКВыборуТекущегоСертификатаПослеВыгрузкиСертификата(РезультатПоиска.Сертификат.Сертификат, Контекст);
|
||||
Контекст.Вставить("СертификатКриптографии", РезультатПоиска.ДанныеСертификата);
|
||||
ПерейтиКВыборуТекущегоСертификатаПослеВыгрузкиСертификата(РезультатПоиска.ДанныеСертификата.Сертификат, Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -768,7 +931,7 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если СертификатВОблачномСервисе Тогда
|
||||
Если СертификатВОблачномСервисе ИЛИ СертификатОблачнойПодписи Тогда
|
||||
Элементы.ГруппаУсиленнаяЗащитаЗакрытогоКлюча.Видимость = Ложь;
|
||||
Иначе
|
||||
Элементы.ГруппаУсиленнаяЗащитаЗакрытогоКлюча.Видимость = Истина;
|
||||
@@ -796,4 +959,13 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаписатьСертификатВСправочникОблачнаяПодпись(УчетнаяЗапись)
|
||||
|
||||
СертификатУсиленнаяЗащитаЗакрытогоКлюча = Ложь;
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.ЗаписатьСертификатВСправочник(ЭтотОбъект, УчетнаяЗапись, Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+1
@@ -703,6 +703,7 @@
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<width>35</width>
|
||||
<windowOpeningMode>LockOwner</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoTitle>true</autoTitle>
|
||||
|
||||
+32
@@ -690,6 +690,9 @@
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<enableDrag>true</enableDrag>
|
||||
<rowPictureDataPath xsi:type="form:DataPath">
|
||||
<segments>Сертификаты.ТипРазмещения</segments>
|
||||
</rowPictureDataPath>
|
||||
<autoMaxCardHeight>true</autoMaxCardHeight>
|
||||
<rowFilter xsi:type="core:UndefinedValue"/>
|
||||
</items>
|
||||
@@ -1695,6 +1698,22 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ТипРазмещения</name>
|
||||
<id>8</id>
|
||||
<valueType>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>10</precision>
|
||||
</numberQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СертификатНаименование</name>
|
||||
@@ -1931,6 +1950,19 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>УчетнаяЗапись</name>
|
||||
<id>14</id>
|
||||
<valueType>
|
||||
<types>CatalogRef</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Далее</name>
|
||||
<title>
|
||||
|
||||
+50
-1
@@ -49,6 +49,11 @@
|
||||
ОпределяемыйТипОрганизацияНастроен = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
|
||||
Элементы.Сертификаты.КартинкаСтрок = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ТипыСертификатов");
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.СертификатПользователь.Подсказка =
|
||||
Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.Реквизиты.Пользователь.Подсказка;
|
||||
|
||||
@@ -225,7 +230,23 @@
|
||||
|
||||
Элементы.Далее.Доступность = Ложь;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьЭлектроннуюПодписьВМоделиСервиса() И ТекущиеДанные.ВОблачномСервисе Тогда
|
||||
УчетнаяЗапись = Неопределено;
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиентСервер.РазмещениеСертификата(ТекущиеДанные.ТипРазмещения) = "ОблачнаяПодпись" Тогда
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
МодульСервисКриптографииDSSСлужебныйВызовСервера = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSСлужебныйВызовСервера");
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
|
||||
ОтпечатокСертификата = МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(ТекущиеДанные.Отпечаток);
|
||||
НастройкиПользователя = МодульСервисКриптографииDSSСлужебныйВызовСервера.ПолучитьНастройкиПользователяПоСертификату(ОтпечатокСертификата);
|
||||
УчетнаяЗапись = НастройкиПользователя.Ссылка;
|
||||
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", ОтпечатокСертификата);
|
||||
|
||||
МодульСервисКриптографииDSSКлиент.НайтиСертификат(Новый ОписаниеОповещения(
|
||||
"ДалееПослеПоискаСертификатаОблачнаяПодпись", ЭтотОбъект, УчетнаяЗапись), СтруктураПоиска);
|
||||
|
||||
ИначеЕсли ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьЭлектроннуюПодписьВМоделиСервиса() И ТекущиеДанные.ВОблачномСервисе Тогда
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", Base64Значение(ТекущиеДанные.Отпечаток));
|
||||
МодульХранилищеСертификатовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХранилищеСертификатовКлиент");
|
||||
@@ -261,6 +282,30 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры Далее.
|
||||
&НаКлиенте
|
||||
Процедура ДалееПослеПоискаСертификатаОблачнаяПодпись(Результат, Контекст) Экспорт
|
||||
|
||||
Если Не Результат.Выполнено Тогда
|
||||
Контекст = Новый Структура;
|
||||
Контекст.Вставить("ОписаниеОшибки", Результат.Ошибка);
|
||||
ОбновитьСписокСертификатов(Новый ОписаниеОповещения(
|
||||
"ДалееПослеОбновленияСпискаСертификатов", ЭтотОбъект, Контекст));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Результат.ДанныеСертификата) Тогда
|
||||
Контекст = Новый Структура;
|
||||
Контекст.Вставить("ОписаниеОшибки", НСтр("ru = 'Сертификат отсутствует в облачном сервисе (возможно удален).'"));
|
||||
ОбновитьСписокСертификатов(Новый ОписаниеОповещения(
|
||||
"ДалееПослеОбновленияСпискаСертификатов", ЭтотОбъект, Контекст));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДалееПослеВыгрузкиСертификата(Результат.ДанныеСертификата.Сертификат, Результат.ДанныеСертификата);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры Далее.
|
||||
&НаКлиенте
|
||||
Процедура ДалееПослеВыгрузкиСертификата(ВыгруженныеДанные, СертификатКриптографии) Экспорт
|
||||
@@ -476,7 +521,11 @@
|
||||
&НаСервере
|
||||
Процедура ЗаписатьСертификатВСправочник()
|
||||
|
||||
Если ЗначениеЗаполнено(УчетнаяЗапись) Тогда
|
||||
ЭлектроннаяПодписьСлужебный.ЗаписатьСертификатВСправочник(ЭтотОбъект, УчетнаяЗапись, Истина);
|
||||
Иначе
|
||||
ЭлектроннаяПодписьСлужебный.ЗаписатьСертификатВСправочник(ЭтотОбъект, , Истина);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
+10
@@ -189,4 +189,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СброситьПарольСертификата(СертификатСсылка) Экспорт // АПК:78 - исключение для безопасного хранения паролей.
|
||||
|
||||
ХранилищеПаролей = ОбщиеВнутренниеДанные.Получить("ХранилищеПаролей");
|
||||
Если ХранилищеПаролей <> Неопределено Тогда
|
||||
ХранилищеПаролей.Вставить(СертификатСсылка, Неопределено);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+16
-2
@@ -1219,9 +1219,24 @@
|
||||
СертификатыПереопределяемый.Пользователь КАК Пользователь,
|
||||
СертификатыПереопределяемый.ПользовательОповещенОСрокеДействия КАК ПользовательОповещенОСрокеДействия,
|
||||
СертификатыПереопределяемый.Предопределенный КАК Предопределенный,
|
||||
СертификатыПереопределяемый.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|
||||
СертификатыПереопределяемый.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных,
|
||||
ВЫБОР
|
||||
КОГДА ПрограммыЭлектроннойПодписиИШифрованияПереопределяемый.ЭтоПрограммаОблачногоСервиса
|
||||
ТОГДА 4
|
||||
КОГДА СертификатыПереопределяемый.Программа = НЕОПРЕДЕЛЕНО
|
||||
ИЛИ СертификатыПереопределяемый.Программа = ЗНАЧЕНИЕ(Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка)
|
||||
ИЛИ НЕ ПрограммыЭлектроннойПодписиИШифрованияПереопределяемый.Ссылка ЕСТЬ NULL
|
||||
ТОГДА 1
|
||||
ИНАЧЕ 3
|
||||
КОНЕЦ + ВЫБОР
|
||||
КОГДА СертификатыПереопределяемый.ПометкаУдаления
|
||||
ТОГДА 4
|
||||
ИНАЧЕ 0
|
||||
КОНЕЦ КАК ТипРазмещения
|
||||
ИЗ
|
||||
Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК СертификатыПереопределяемый
|
||||
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыЭлектроннойПодписиИШифрованияПереопределяемый
|
||||
ПО СертификатыПереопределяемый.Программа = ПрограммыЭлектроннойПодписиИШифрованияПереопределяемый.Ссылка
|
||||
ГДЕ
|
||||
&ДополнительноеУсловие
|
||||
{ГДЕ
|
||||
@@ -1234,7 +1249,6 @@
|
||||
СоставыГруппПользователейПереопределяемый.Пользователь = СертификатыПереопределяемый.Пользователь
|
||||
И СоставыГруппПользователейПереопределяемый.ГруппаПользователей В (&ГруппаПользователей)))}</queryText>
|
||||
<mainTable>Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования</mainTable>
|
||||
<dynamicDataRead>true</dynamicDataRead>
|
||||
<autoFillAvailableFields>true</autoFillAvailableFields>
|
||||
<customQuery>true</customQuery>
|
||||
<autoSaveUserSettings>true</autoSaveUserSettings>
|
||||
|
||||
+1
-2
@@ -2,8 +2,7 @@
|
||||
<p>Предназначен для подбора сертификата электронной подписи.</p>
|
||||
<p>Открывается по кнопке <strong>Подобрать</strong> из окна <a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ШифрованиеДанных/Help">Шифрование данных</a>.</p>
|
||||
<p>В списке выводится:</p>
|
||||
<ul><li><strong>Представление</strong> - полное наименование сертификата;
|
||||
</li><li><strong>Фирма</strong> - организация, которой выдан сертификат;
|
||||
<ul><li><strong>Представление</strong> - полное наименование сертификата; </li><li><strong>Фирма</strong> - организация, которой выдан сертификат;
|
||||
</li><li><strong>Пользователь</strong> - пользователь, который является владельцем подписи;
|
||||
</li><li><strong>Кем выдан</strong> - организация, которая выдала сертификат.</li></ul><h3>Отборы</h3>
|
||||
<ul><li>Если <a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования/Help">сертификатов</a> много, то можно отобрать нужные:
|
||||
|
||||
+6
@@ -35,6 +35,12 @@
|
||||
|
||||
ГруппаПользователейПриИзмененииНаСервере();
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
|
||||
Элементы.Список.КартинкаСтрок = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ТипыСертификатов");;
|
||||
Элементы.Список.ПутьКДаннымКартинкиСтроки = "Список.ТипРазмещения";
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
|
||||
+173
-20
@@ -74,10 +74,8 @@
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>Vertical</group>
|
||||
<behavior>Auto</behavior>
|
||||
<representation>NormalSeparation</representation>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
@@ -146,7 +144,6 @@
|
||||
<event>ChoiceProcessing</event>
|
||||
<name>СертификатОбработкаВыбора</name>
|
||||
</handlers>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<dropListButton>false</dropListButton>
|
||||
@@ -226,6 +223,7 @@
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ЗапомнитьПароль</segments>
|
||||
</dataPath>
|
||||
<skipOnInput>true</skipOnInput>
|
||||
<titleLocation>Right</titleLocation>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
@@ -513,6 +511,37 @@
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<showTitle>auto</showTitle>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКонтейнер</name>
|
||||
<id>468</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Контейнер</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКонтейнерРасширеннаяПодсказка</name>
|
||||
<id>469</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>
|
||||
@@ -532,6 +561,7 @@
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Комментарий</segments>
|
||||
</dataPath>
|
||||
<skipOnInput>true</skipOnInput>
|
||||
<titleHeight>2</titleHeight>
|
||||
<extendedTooltip>
|
||||
<name>КомментарийРасширеннаяПодсказка</name>
|
||||
@@ -554,7 +584,6 @@
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<height>1</height>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
@@ -564,6 +593,38 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКонтейнер1</name>
|
||||
<id>470</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Контейнер1</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКонтейнер1РасширеннаяПодсказка</name>
|
||||
<id>471</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>
|
||||
@@ -573,6 +634,7 @@
|
||||
<key>ru</key>
|
||||
<value>Подписание и комментарий</value>
|
||||
</title>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаПодписаниеИКомментарийРасширеннаяПодсказка</name>
|
||||
<id>453</id>
|
||||
@@ -588,18 +650,50 @@
|
||||
<group>Vertical</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКоманды</name>
|
||||
<id>456</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКомандыПодтверждения</name>
|
||||
<id>458</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команды подтверждения</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомандыПодтвержденияРасширеннаяПодсказка</name>
|
||||
<id>459</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>
|
||||
<commandBarLocation>Bottom</commandBarLocation>
|
||||
<showCommandBar>true</showCommandBar>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаОсновныеКоманды</name>
|
||||
<id>460</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>Подписать</name>
|
||||
<id>307</id>
|
||||
<id>462</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -607,7 +701,7 @@
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПодписатьРасширеннаяПодсказка</name>
|
||||
<id>308</id>
|
||||
<id>463</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -625,7 +719,7 @@
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>Отмена</name>
|
||||
<id>303</id>
|
||||
<id>464</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отмена</value>
|
||||
@@ -637,7 +731,7 @@
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ОтменаРасширеннаяПодсказка</name>
|
||||
<id>304</id>
|
||||
<id>465</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -654,7 +748,7 @@
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСправка</name>
|
||||
<id>448</id>
|
||||
<id>466</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -662,7 +756,7 @@
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСправкаРасширеннаяПодсказка</name>
|
||||
<id>449</id>
|
||||
<id>467</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -678,6 +772,67 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Основные команды</value>
|
||||
</title>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<groupHorizontalAlign>Right</groupHorizontalAlign>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаОсновныеКомандыРасширеннаяПодсказка</name>
|
||||
<id>461</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команды</value>
|
||||
</title>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомандыРасширеннаяПодсказка</name>
|
||||
<id>457</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>
|
||||
<commandBarLocation>None</commandBarLocation>
|
||||
<showCommandBar>false</showCommandBar>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
@@ -696,7 +851,7 @@
|
||||
<event>OnClose</event>
|
||||
<name>ПриЗакрытии</name>
|
||||
</handlers>
|
||||
<width>45</width>
|
||||
<width>56</width>
|
||||
<windowOpeningMode>LockOwner</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoUrl>true</autoUrl>
|
||||
@@ -851,7 +1006,7 @@
|
||||
<name>СертификатПрограмма</name>
|
||||
<id>9</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.ПрограммыЭлектроннойПодписиИШифрования</types>
|
||||
<types>DefinedType.ПрограммаЭлектроннойПодписи</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
@@ -949,9 +1104,7 @@
|
||||
<attributes>
|
||||
<name>ВыполнятьНаСервере</name>
|
||||
<id>19</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
|
||||
+8
-4
@@ -7,10 +7,14 @@
|
||||
</li><li>Если <strong>Сертификат</strong> не выбран - выберите его из списка. Если при следующем открытии сертификат будет среди установленных на компьютере, повторный выбор не потребуется.
|
||||
</li><li>При выборе из выпадающего списка будут показаны только сертификаты, у которых поле <strong>Пользователь</strong> не заполнено или совпадает с текущим пользователем сеанса, а поле <strong>Программа</strong> заполнено. Если при открытии окна <strong>Подписание</strong> был указан отбор по организации, то в выпадающем списке не будет сертификатов, у которых поле <strong>Организация</strong> не совпадает с организацией, указанной в отборе. Если при открытии окна <strong>Подписание</strong> был указан конкретный список сертификатов, то будет показан только этот список.
|
||||
</li><li>При выборе из списка личных сертификатов (установленных на компьютере и на сервере) путем нажатия <strong>Показать все</strong>, показываются все сертификаты без учета полей <strong>Пользователь</strong> и <strong>Программа</strong>. Если при открытии окна <strong>Подписание</strong> был указан отбор по организации, то в списке не будет сертификатов, у которых поле <strong>Организация</strong> не совпадает с организацией, указанной в отборе. Но будут показаны все сертификаты, которых еще нет в списке (то есть те, которые есть только в хранилище сертификатов операционный системы компьютера или сервера).
|
||||
</li><li>Введите <strong>Пароль</strong> к закрытому ключу (указанный при установке или создании сертификата).
|
||||
</li><li>Включите флажок <strong>Запомнить пароль</strong>, для того чтобы не вводить пароль в следующий раз.
|
||||
</li><li>Введите <strong>Пароль</strong> к закрытому ключу (указанный при установке или создании сертификата) <span style="font-size: 7.5pt;">или <b style="mso-bidi-font-weight: normal;">Пин-код</b>, если местом хранения сертификата является сервис
|
||||
облачной подписи.</span>
|
||||
|
||||
|
||||
</li><li>Включите флажок <strong>Запомнить пароль</strong>, для того чтобы не вводить пароль <span style="font-size: 7.5pt; mso-fareast-font-family: "Times New Roman"; mso-bidi-font-family: "Times New Roman"; mso-ansi-language: RU; mso-fareast-language: RU; mso-bidi-language: AR-SA;">(пин-код
|
||||
для облачной подписи) </span>в следующий раз.
|
||||
</li><li>В некоторых случаях можно ввести <strong>Комментарий к подписи</strong> - дополнительную информацию о подписи.
|
||||
</li><li>Для выполнения подписи нажмите <strong>Подписать</strong>.
|
||||
</li><li>Данные будут подписаны с использованием указанного сертификата.
|
||||
</li><li>Созданная электронная подпись хранится в программе. Подписанный объект становится недоступным для редактирования и отображается в списках со значком <img src="CommonPicture.ПодписанЭП"></img>.</li></ul><h3>См. также:</h3>
|
||||
<ul style="MARGIN-RIGHT: 0px" dir="ltr"><li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Настройки электронной подписи и шифрования</a>.</li></ul></body></html>
|
||||
</li><li>Созданная электронная подпись хранится в программе. Подписанный объект становится недоступным для редактирования и отображается в списках со значком <img src="CommonPicture.ПодписанЭП"></img>.</li><ul type="disc"></ul></ul><h3></h3><h3>См. также:</h3>
|
||||
<ul style="margin-right: 0px;" dir="ltr"><li><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Настройки электронной подписи и шифрования</a>.</li></ul></body></html>
|
||||
+158
-9
@@ -23,6 +23,17 @@
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.НастроитьФормуПодписанияШифрованияРасшифровки(ЭтотОбъект);
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSПодтверждениеСервер");
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодготовитьГруппуПодтверждения(ЭтотОбъект, "Подписание",
|
||||
"ГруппаПодписаниеИКомментарий",
|
||||
"ГруппаКонтейнер",
|
||||
"ГруппаКонтейнер1",
|
||||
"ГруппаКомандыПодтверждения");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодтверждениеПриИзмененииСертификата(ЭтотОбъект, Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -36,6 +47,11 @@
|
||||
ТекущийЭлемент = Элементы[ИмяПоляАктивизироватьПоУмолчанию];
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриОткрытии(ЭтотОбъект, Отказ, ЗначениеЗаполнено(Пароль) И ЗапомнитьПароль, ОписаниеДанных);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -50,6 +66,30 @@
|
||||
|
||||
Если ВРег(ИмяСобытия) = ВРег("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ПодключитьОбработчикОжидания("ПриИзмененииСпискаСертификатов", 0.1, Истина);
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеВыполнитьОсновнуюОперацию") И Источник = УникальныйИдентификатор Тогда
|
||||
Если Параметр.Выполнено Тогда
|
||||
ДанныеПакета = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметр, "ДанныеПакета");
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.УстановитьСвойстваОблачнойПодписи(ОписаниеДанных, Новый Структура("ДанныеПакета", ДанныеПакета));
|
||||
СвойстваОблачнойПодписи = ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьСвойстваОблачнойПодписи(ОписаниеДанных);
|
||||
ОповещениеПриПодтверждении = СвойстваОблачнойПодписи.ОповещениеПриПодтверждении;
|
||||
|
||||
Если ОповещениеПриПодтверждении = Неопределено Тогда
|
||||
ПодписатьДанные(Новый ОписаниеОповещения("ПодписатьЗавершение", ЭтотОбъект));
|
||||
Иначе
|
||||
ВыполнитьОбработкуОповещения(ОповещениеПриПодтверждении, ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеАвторизация") И Источник = УникальныйИдентификатор Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьОтпечаткиСертификатовНаКлиенте(
|
||||
Новый ОписаниеОповещения("СертификатОбработкаВыбораЗавершение", ЭтотОбъект));
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеПодготовитьДанные") И Источник = УникальныйИдентификатор Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьДанныеДляОблачнойПодписи(
|
||||
Параметр.ОбработчикСледующий, Параметр.КонтекстФормы,
|
||||
Параметр.ОписаниеДанных, Параметр.Данные, Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -80,7 +120,14 @@
|
||||
|
||||
СертификатПриИзмененииНаСервере(ОтпечаткиСертификатовНаКлиенте);
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект, ВнутренниеДанные, СвойстваПароля);
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект, ВнутренниеДанные, СвойстваПароля, Новый Структура("ПриОткрытии", Истина));
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверитьНаОшибкуСертификата(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ФильтроватьСписокСпособов(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элементы.Сертификат, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -101,6 +148,7 @@
|
||||
Если ТипЗнч(ОтборСертификатов) <> Тип("СписокЗначений") Тогда
|
||||
ПараметрыФормы.Вставить("ОтборПоОрганизации", ОтборСертификатов);
|
||||
КонецЕсли;
|
||||
ПараметрыФормы.Вставить("ВыполнятьНаСервере", ВыполнятьНаСервере);
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ВыборСертификатаДляПодписанияИлиРасшифровки(ПараметрыФормы, Элемент);
|
||||
|
||||
@@ -149,6 +197,13 @@
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект, ВнутренниеДанные, СвойстваПароля);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элементы.Сертификат, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверитьНаОшибкуСертификата(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ФильтроватьСписокСпособов(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -203,20 +258,28 @@
|
||||
&НаКлиенте
|
||||
Процедура Подписать(Команда)
|
||||
|
||||
Если Не Элементы.Подписать.Доступность Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеДанных.Вставить("ПользовательНажалКнопкуПодписать", Истина);
|
||||
|
||||
Если Не ПроверитьЗаполнение() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверкаПередВыполнениемОперации(ЭтотОбъект, СвойстваПароля.Значение) Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ВыполнитьНачальнуюОперациюСервиса(ЭтотОбъект, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Если Не Элементы.Подписать.Доступность Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.Подписать.Доступность = Ложь;
|
||||
|
||||
ПодписатьДанные(Новый ОписаниеОповещения("ПодписатьЗавершение", ЭтотОбъект));
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры Подписать.
|
||||
@@ -274,24 +337,44 @@
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ПриОткрытии", Истина);
|
||||
Если СвойстваПароля <> Неопределено Тогда
|
||||
ДополнительныеПараметры.Вставить("ПриУстановкеПароляИзДругойОперации", Истина);
|
||||
КонецЕсли;
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект,
|
||||
ВнутренниеДанные, СвойстваПароля, ДополнительныеПараметры);
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = Неопределено;
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
КонецЕсли;
|
||||
|
||||
Если БезПодтверждения
|
||||
И ( ДополнительныеПараметры.ПарольУказан
|
||||
Или ДополнительныеПараметры.УсиленнаяЗащитаЗакрытогоКлюча
|
||||
Или ОблачныйПарольПодтвержден) Тогда
|
||||
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент <> Неопределено Тогда
|
||||
Если НЕ МодульСервисКриптографииDSSПодтверждениеКлиент.ОблачнаяПодписьТребуетПодтверждения(ЭтотОбъект, ДополнительныеПараметры.ПарольУказан) Тогда
|
||||
ОбработкаПослеПредупреждения = Неопределено;
|
||||
ПодписатьДанные(Новый ОписаниеОповещения("ПродолжитьОткрытиеПослеПодписанияДанных", ЭтотОбъект, Контекст));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ОбработкаПослеПредупреждения = Неопределено;
|
||||
ПодписатьДанные(Новый ОписаниеОповещения("ПродолжитьОткрытиеПослеПодписанияДанных", ЭтотОбъект, Контекст));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Открыть();
|
||||
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент <> Неопределено Тогда
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверкаВыполненияНачальнойОперации(ЭтотОбъект, БезПодтверждения И ДополнительныеПараметры.ПарольУказан) Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ВыполнитьНачальнуюОперациюСервиса(ЭтотОбъект, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ПродолжитьОткрытиеЗавершение(Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -356,9 +439,7 @@
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьПодписаниеЗавершение(Результат, Контекст) Экспорт
|
||||
|
||||
Если Результат = Истина Тогда
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработкаЗавершения, Истина);
|
||||
КонецЕсли;
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработкаЗавершения, Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -393,11 +474,24 @@
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.СертификатПриИзмененииНаСервере(ЭтотОбъект, ОтпечаткиСертификатовНаКлиенте);
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSПодтверждениеСервер");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодтверждениеПриИзмененииСертификата(ЭтотОбъект, Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПодписатьДанные(Оповещение)
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.УстановитьСвойстваОблачнойПодписи(ОписаниеДанных,
|
||||
Новый Структура("УчетнаяЗапись, ДанныеПодтверждения", ЭтотОбъект.НастройкиПользователя, ЭтотОбъект.ДанныеПодтверждения));
|
||||
Иначе
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.УстановитьСвойстваОблачнойПодписи(ОписаниеДанных,
|
||||
Новый Структура("УчетнаяЗапись, ДанныеПодтверждения"));
|
||||
КонецЕсли;
|
||||
|
||||
Контекст = Новый Структура;
|
||||
Контекст.Вставить("Оповещение", Оповещение);
|
||||
Контекст.Вставить("ОшибкаНаКлиенте", Новый Структура);
|
||||
@@ -489,7 +583,9 @@
|
||||
|
||||
Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения);
|
||||
|
||||
Если ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
||||
Если ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере()
|
||||
И ВыполнятьНаСервере <> Ложь Тогда
|
||||
|
||||
Если ЗначениеЗаполнено(СертификатНаСервереОписаниеОшибки) Тогда
|
||||
Результат = Новый Структура("Ошибка", СертификатНаСервереОписаниеОшибки);
|
||||
СертификатНаСервереОписаниеОшибки = Новый Структура;
|
||||
@@ -523,6 +619,10 @@
|
||||
Иначе
|
||||
Если Результат <> Неопределено Тогда
|
||||
Контекст.ОшибкаНаСервере = Результат.Ошибка;
|
||||
Если ВыполнятьНаСервере = Истина Тогда
|
||||
ПодписатьДанныеПослеВыполненияНаСторонеКлиента(Новый Структура, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Попытка подписания на клиенте.
|
||||
@@ -635,4 +735,53 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область ПодключаемыеОбработчики
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработкаКоманды(Команда)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаКоманды(ЭтотОбъект, Команда, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеПриИзменении(Элемент)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элемент, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработчикОжидания()
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаОжидания(ЭтотОбъект, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеНачалоВыбора(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
+14
-1
@@ -4298,7 +4298,7 @@
|
||||
<name>Программа</name>
|
||||
<id>4</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.ПрограммыЭлектроннойПодписиИШифрования</types>
|
||||
<types>DefinedType.ПрограммаЭлектроннойПодписи</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
@@ -4575,6 +4575,19 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ЭтоПрограммаОблачнойПодписи</name>
|
||||
<id>22</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Проверить</name>
|
||||
<title>
|
||||
|
||||
+329
-13
@@ -128,20 +128,36 @@
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваСертификата = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Сертификат,
|
||||
"ДанныеСертификата, Программа, УсиленнаяЗащитаЗакрытогоКлюча");
|
||||
"ДанныеСертификата, Программа, УсиленнаяЗащитаЗакрытогоКлюча, Отпечаток");
|
||||
|
||||
Программа = СвойстваСертификата.Программа;
|
||||
АдресСертификата = ПоместитьВоВременноеХранилище(
|
||||
СвойстваСертификата.ДанныеСертификата.Получить(), УникальныйИдентификатор);
|
||||
СертификатУсиленнаяЗащитаЗакрытогоКлюча = СвойстваСертификата.УсиленнаяЗащитаЗакрытогоКлюча;
|
||||
ЭтоПрограммаОблачнойПодписи = ТипЗнч(Программа) = ЭлектроннаяПодписьСлужебный.ПолучитьТипОблачнойПодписи()
|
||||
И ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи();
|
||||
ЭтоПрограммаОблачногоСервиса = Программа = ЭлектроннаяПодписьСлужебный.ПрограммаОблачногоСервиса();
|
||||
|
||||
Если Программа.ЭтоПрограммаОблачногоСервиса Тогда
|
||||
ЭтоПрограммаОблачногоСервиса = Истина;
|
||||
Если ЭтоПрограммаОблачнойПодписи Тогда
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
ДанныеСертификата = МодульСервисКриптографииDSSСлужебный.ПолучитьДанныеСертификатаПоОтпечатку(
|
||||
МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(СвойстваСертификата.Отпечаток));
|
||||
Если ДанныеСертификата = Неопределено ИЛИ ДанныеСертификата.УчетнаяЗапись <> Программа Тогда
|
||||
ВызватьИсключение МодульСервисКриптографииDSSСлужебный.ПолучитьОписаниеОшибки(Неопределено, "ЧужойСертификат");
|
||||
КонецЕсли;
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSПодтверждениеСервер");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодготовитьГруппуПодтверждения(ЭтотОбъект, "Проверка", "", "");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодтверждениеПриИзмененииСертификата(ЭтотОбъект, Сертификат);
|
||||
|
||||
ИначеЕсли ЭтоПрограммаОблачногоСервиса Тогда
|
||||
Элементы.ГруппаВводаПароля.Видимость = Ложь;
|
||||
|
||||
ИначеЕсли Не СтандартныеПроверки
|
||||
И Не ВводитьПароль Тогда
|
||||
|
||||
Элементы.ГруппаВводаПароля.Видимость = Ложь;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьВидимостьНаСервере();
|
||||
@@ -164,6 +180,11 @@
|
||||
Отказ = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоПрограммаОблачнойПодписи Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриОткрытии(ЭтотОбъект, Отказ, ЗначениеЗаполнено(Пароль) И ЗапомнитьПароль);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -319,6 +340,7 @@
|
||||
КлиентскиеПараметры.Вставить("Результат");
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ПриОткрытии", Истина);
|
||||
Если КлиентскиеПараметры.Свойство("УказанКонтекстДругойОперации") Тогда
|
||||
|
||||
СвойстваСертификата = ОбщиеВнутренниеДанные;
|
||||
@@ -560,7 +582,11 @@
|
||||
ПроверитьЗаконныйСертификатНаКлиенте(Контекст);
|
||||
|
||||
// Наличие сертификата в личном списке.
|
||||
Если ЭтоПрограммаОблачногоСервиса Тогда
|
||||
Если ЭтоОперацияОблачнойПодписи() Тогда
|
||||
ОповещениеСледующее = Новый ОписаниеОповещения("ПроверитьНаСторонеКлиентаПослеАвторизацииВОблачнойПодписи", ЭтотОбъект, Контекст);
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
МодульСервисКриптографииDSSКлиент.ПроверкаАутентификацииПользователя(ОповещениеСледующее, Программа);
|
||||
ИначеЕсли ЭтоПрограммаОблачногоСервиса Тогда
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", Контекст.СертификатКриптографии.Отпечаток);
|
||||
МодульХранилищеСертификатовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХранилищеСертификатовКлиент");
|
||||
@@ -1056,6 +1082,24 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеДополнительнойПроверки(Неопределен, Контекст) Экспорт
|
||||
|
||||
ПараметрыВыполнения = ПараметрыВыполненияКонтекста.Получить(Контекст);
|
||||
ПараметрыВыполненияКонтекста.Удалить(Контекст);
|
||||
|
||||
УстановитьЭлемент(ЭтотОбъект, Контекст.ЭлементСписка.Имя, Ложь,
|
||||
ПараметрыВыполнения.ОписаниеОшибки,
|
||||
ПараметрыВыполнения.ЭтоПредупреждение <> Истина,
|
||||
ОбъединятьРезультаты);
|
||||
|
||||
ПроверитьНаСторонеКлиентаЦиклНачало(Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаЦиклНачало(Контекст)
|
||||
@@ -1098,22 +1142,294 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область ПроверкаНаКлиентеОблачнаяПодпись
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеДополнительнойПроверки(Неопределен, Контекст) Экспорт
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеАвторизацииВОблачнойПодписи(РезультатВызова, Контекст) Экспорт
|
||||
|
||||
ПараметрыВыполнения = ПараметрыВыполненияКонтекста.Получить(Контекст);
|
||||
ПараметрыВыполненияКонтекста.Удалить(Контекст);
|
||||
Если Не РезультатВызова.Выполнено Тогда
|
||||
ОписаниеОшибки = РезультатВызова.Ошибка;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьЭлемент(ЭтотОбъект, Контекст.ЭлементСписка.Имя, Ложь,
|
||||
ПараметрыВыполнения.ОписаниеОшибки,
|
||||
ПараметрыВыполнения.ЭтоПредупреждение <> Истина,
|
||||
ОбъединятьРезультаты);
|
||||
// Если не авторизовались, проверки прекращаются.
|
||||
Если Не ПустаяСтрока(ОписаниеОшибки) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПроверитьНаСторонеКлиентаЦиклНачало(Контекст);
|
||||
ЭтотОбъект.НастройкиПользователя = РезультатВызова.НастройкиПользователя;
|
||||
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(Контекст.СертификатКриптографии.Отпечаток));
|
||||
МодульСервисКриптографииDSSКлиент.НайтиСертификат(Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеПоискаСертификатаОблачнойПодписи", ЭтотОбъект, Контекст), СтруктураПоиска);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеПоискаСертификатаОблачнойПодписи(РезультатВызова, Контекст) Экспорт
|
||||
|
||||
ОписаниеОшибки = "";
|
||||
Если НЕ ОперацияАктивна() Тогда
|
||||
ОписаниеОшибки = НСтр("ru = 'Форма проверки закрыта.'");
|
||||
ИначеЕсли Не РезультатВызова.Выполнено Тогда
|
||||
ОписаниеОшибки = РезультатВызова.Ошибка;
|
||||
ИначеЕсли Не ЗначениеЗаполнено(РезультатВызова.ДанныеСертификата) Тогда
|
||||
ОписаниеОшибки = НСтр("ru = 'Сертификат отсутствует в сервисе ""Облачная подпись"" (возможно удален).'");
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПустаяСтрока(ОписаниеОшибки) Тогда
|
||||
ОписаниеОшибки = ОписаниеОшибки + Символы.ПС
|
||||
+ НСтр("ru = 'Проверка подписания, созданной подписи и расшифровки не могут быть выполнены.'");
|
||||
КонецЕсли;
|
||||
УстановитьЭлемент(ЭтотОбъект, "НаличиеСертификата", Ложь, ОписаниеОшибки, , ОбъединятьРезультаты);
|
||||
|
||||
// Если не нашли сертификат в хранилище сертификатов, проверки прекращаются.
|
||||
Если Не ПустаяСтрока(ОписаниеОшибки) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка данных сертификата.
|
||||
Контекст.Вставить("НастройкиПользователя", ЭтотОбъект.НастройкиПользователя);
|
||||
ОбработчикСледующий = Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеПроверкиСертификатаОблачнойПодписи", ЭтотОбъект, Контекст);
|
||||
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
МодульСервисКриптографииDSSКлиент.ПроверитьСертификат(ОбработчикСледующий, Контекст.НастройкиПользователя, РезультатВызова.ДанныеСертификата.Сертификат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеПроверкиСертификатаОблачнойПодписи(Результат, Контекст) Экспорт
|
||||
|
||||
Если НЕ ОперацияАктивна() Тогда
|
||||
ОписаниеОшибки = НСтр("ru = 'Форма проверки закрыта.'");
|
||||
ИначеЕсли Результат.Выполнено И Результат.Результат Тогда
|
||||
ОписаниеОшибки = "";
|
||||
Иначе
|
||||
ОписаниеОшибки = Результат.Ошибка;
|
||||
КонецЕсли;
|
||||
УстановитьЭлемент(ЭтотОбъект, "ДанныеСертификата", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
|
||||
// Наличие программы
|
||||
Если ЗначениеЗаполнено(Программа) Тогда
|
||||
ПроверитьНаСторонеКлиентаОблачнаяПодпись("ОблачнаяПодпись", Контекст);
|
||||
Иначе
|
||||
ОписаниеОшибки = НСтр("ru = 'Программа для использования закрытого ключа не указана в сертификате.'");
|
||||
ПроверитьНаСторонеКлиентаПослеСозданияМенеджераКриптографии(ОписаниеОшибки, Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаОблачнаяПодпись(Результат, Контекст)
|
||||
|
||||
Контекст.Вставить("МенеджерКриптографии", Неопределено);
|
||||
|
||||
Если НЕ ОперацияАктивна() Тогда
|
||||
ОписаниеОшибки = НСтр("ru = 'Форма проверки закрыта.'");
|
||||
ИначеЕсли ТипЗнч(Результат) = Тип("Строка") И Результат = "ОблачнаяПодпись" Тогда
|
||||
Контекст.МенеджерКриптографии = Результат;
|
||||
ОписаниеОшибки = "";
|
||||
Иначе
|
||||
ОписаниеОшибки = Результат + Символы.ПС + Символы.ПС
|
||||
+ НСтр("ru = 'Проверка подписания, созданной подписи, шифрования и
|
||||
|расшифровки не могут быть выполнены.'");
|
||||
КонецЕсли;
|
||||
УстановитьЭлемент(ЭтотОбъект, "НаличиеПрограммы", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
|
||||
Если Контекст.МенеджерКриптографии = Неопределено Тогда
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// Подписание.
|
||||
Если ПроверкиНаКлиенте.НаличиеСертификата Тогда
|
||||
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
|
||||
ОбработчикСледующий = Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеПодписанияОблачнаяПодпись", ЭтотОбъект, Контекст,
|
||||
"ПроверитьНаСторонеКлиентаПослеОшибкиПодписания", ЭтотОбъект);
|
||||
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(Контекст.СертификатКриптографии.Отпечаток));
|
||||
|
||||
ЗначениеПинКода = ?(ЗначениеЗаполнено(СвойстваПароля.Значение), СвойстваПароля.Значение, Неопределено);
|
||||
ПараметрыОперации = Новый Структура;
|
||||
ПараметрыОперации.Вставить("ПинКод", МодульСервисКриптографииDSSКлиент.ПодготовитьОбъектПароля(ЗначениеПинКода));
|
||||
|
||||
МодульСервисКриптографииDSSКлиент.Подписать(
|
||||
ОбработчикСледующий,
|
||||
Контекст.НастройкиПользователя,
|
||||
Контекст.ДанныеСертификата,
|
||||
,
|
||||
СтруктураПоиска,
|
||||
ПараметрыОперации);
|
||||
|
||||
Иначе
|
||||
ПроверитьНаСторонеКлиентаПослеПодписания(Неопределено, Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеПодписанияОблачнаяПодпись(РезультатВызова, Контекст) Экспорт
|
||||
|
||||
ОписаниеОшибки = Неопределено;
|
||||
|
||||
Если НЕ ОперацияАктивна() Тогда
|
||||
ОписаниеОшибки = НСтр("ru = 'Форма проверки закрыта.'");
|
||||
ИначеЕсли РезультатВызова <> Неопределено Тогда
|
||||
Если Не РезультатВызова.Выполнено Тогда
|
||||
ОписаниеОшибки = РезультатВызова.Ошибка;
|
||||
Иначе
|
||||
ДанныеПодписи = РезультатВызова.Результат;
|
||||
ОписаниеОшибки = "";
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
ПарольПринят = Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
|
||||
// Проверка подписи.
|
||||
Если ПроверкиНаКлиенте.НаличиеСертификата И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
ОбработчикСледующий = Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеПроверкиПодписиОблачнаяПодпись", ЭтотОбъект, Контекст,
|
||||
"ПроверитьНаСторонеКлиентаПослеОшибкиПроверкиПодписи", ЭтотОбъект);
|
||||
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
МодульСервисКриптографииDSSКлиент.ПроверитьПодпись(ОбработчикСледующий,
|
||||
Контекст.НастройкиПользователя,
|
||||
ДанныеПодписи,
|
||||
Контекст.ДанныеСертификата,
|
||||
"CMS");
|
||||
Иначе
|
||||
ПроверитьНаСторонеКлиентаПослеПроверкиПодписиОблачнаяПодпись(Неопределено, Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеПроверкиПодписиОблачнаяПодпись(РезультатВызова, Контекст) Экспорт
|
||||
|
||||
ОписаниеОшибки = Неопределено;
|
||||
|
||||
Если НЕ ОперацияАктивна() Тогда
|
||||
ОписаниеОшибки = НСтр("ru = 'Форма проверки закрыта.'");
|
||||
ИначеЕсли РезультатВызова <> Неопределено Тогда
|
||||
Если Не РезультатВызова.Выполнено Тогда
|
||||
ОписаниеОшибки = РезультатВызова.Ошибка;
|
||||
Иначе
|
||||
ОписаниеОшибки = "";
|
||||
КонецЕсли;
|
||||
УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
КонецЕсли;
|
||||
|
||||
// Шифрование.
|
||||
Если НЕ ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
ОбработчикСледующий = Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеШифрованияОблачнаяПодпись", ЭтотОбъект, Контекст,
|
||||
"ПроверитьНаСторонеКлиентаПослеОшибкиШифрования", ЭтотОбъект);
|
||||
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
МодульСервисКриптографииDSSКлиент.Зашифровать(ОбработчикСледующий,
|
||||
Контекст.НастройкиПользователя,
|
||||
Контекст.ДанныеСертификата,
|
||||
Контекст.ДанныеСертификата);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеШифрованияОблачнаяПодпись(РезультатВызова, Контекст) Экспорт
|
||||
|
||||
ОписаниеОшибки = Неопределено;
|
||||
Если НЕ ОперацияАктивна() Тогда
|
||||
ОписаниеОшибки = НСтр("ru = 'Форма проверки закрыта.'");
|
||||
ИначеЕсли РезультатВызова <> Неопределено Тогда
|
||||
Если Не РезультатВызова.Выполнено Тогда
|
||||
ОписаниеОшибки = РезультатВызова.Ошибка;
|
||||
Иначе
|
||||
ОписаниеОшибки = "";
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
УстановитьЭлемент(ЭтотОбъект, "Шифрование", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
|
||||
// Расшифровка.
|
||||
Если ПроверкиНаКлиенте.НаличиеСертификата И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
ОбработчикСледующий = Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеРасшифровкиОблачнаяПодпись", ЭтотОбъект, Контекст,
|
||||
"ПроверитьНаСторонеКлиентаПослеОшибкиРасшифровки", ЭтотОбъект);
|
||||
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(Контекст.СертификатКриптографии.Отпечаток));
|
||||
|
||||
ЗначениеПинКода = ?(ЗначениеЗаполнено(СвойстваПароля.Значение), СвойстваПароля.Значение, Неопределено);
|
||||
ПараметрыОперации = Новый Структура;
|
||||
ПараметрыОперации.Вставить("ПинКод", МодульСервисКриптографииDSSКлиент.ПодготовитьОбъектПароля(ЗначениеПинКода));
|
||||
|
||||
МодульСервисКриптографииDSSКлиент.Расшифровать(ОбработчикСледующий, Контекст.НастройкиПользователя, РезультатВызова.Результат, , СтруктураПоиска, ПараметрыОперации);
|
||||
Иначе
|
||||
ПроверитьНаСторонеКлиентаПослеРасшифровкиОблачнаяПодпись(Неопределено, Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеРасшифровкиОблачнаяПодпись(РезультатВызова, Контекст) Экспорт
|
||||
|
||||
ОписаниеОшибки = Неопределено;
|
||||
Если НЕ ОперацияАктивна() Тогда
|
||||
ОписаниеОшибки = НСтр("ru = 'Форма проверки закрыта.'");
|
||||
ИначеЕсли РезультатВызова <> Неопределено Тогда
|
||||
Если Не РезультатВызова.Выполнено Тогда
|
||||
ОписаниеОшибки = РезультатВызова.Ошибка;
|
||||
Иначе
|
||||
ОписаниеОшибки = "";
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеРасшифрованныеДанные(РезультатВызова.Результат, ОписаниеОшибки);
|
||||
КонецЕсли;
|
||||
УстановитьЭлемент(ЭтотОбъект, "Расшифровка", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
КонецЕсли;
|
||||
|
||||
ПроверитьНаСторонеКлиентаДополнительныеПроверки(Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ЭтоОперацияОблачнойПодписи()
|
||||
|
||||
Результат = ТипЗнч(Программа) = ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьТипОблачнойПодписи();
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ОперацияАктивна()
|
||||
|
||||
Результат = Открыта();
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПроверкаНаСервере
|
||||
|
||||
+161
-29
@@ -48,6 +48,7 @@
|
||||
<name>ПредставлениеДанныхНажатие</name>
|
||||
</handlers>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<hyperlink>true</hyperlink>
|
||||
</extInfo>
|
||||
</items>
|
||||
@@ -72,12 +73,11 @@
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<group>Vertical</group>
|
||||
<behavior>Auto</behavior>
|
||||
<representation>NormalSeparation</representation>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
@@ -159,6 +159,9 @@
|
||||
<choiceHistoryOnInput>DontUse</choiceHistoryOnInput>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаПароль</name>
|
||||
<id>455</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Пароль</name>
|
||||
<id>316</id>
|
||||
@@ -205,15 +208,13 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>Страницы</name>
|
||||
<id>416</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>СтраницаЗапоминаниеПароля</name>
|
||||
<id>418</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ЗапомнитьПароль</name>
|
||||
<id>324</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Запомнить на время сеанса</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -261,11 +262,11 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Страница запоминание пароля</value>
|
||||
<value>Пароль</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>СтраницаЗапоминаниеПароляРасширеннаяПодсказка</name>
|
||||
<id>419</id>
|
||||
<name>ГруппаПарольРасширеннаяПодсказка</name>
|
||||
<id>456</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -273,13 +274,19 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Page</type>
|
||||
<extInfo xsi:type="form:PageGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<showTitle>auto</showTitle>
|
||||
<scrollOnCompress>false</scrollOnCompress>
|
||||
<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>416</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>СтраницаПояснениеУсиленногоПароля</name>
|
||||
<id>438</id>
|
||||
@@ -475,6 +482,38 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКонтейнер</name>
|
||||
<id>457</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Контейнер</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКонтейнерРасширеннаяПодсказка</name>
|
||||
<id>458</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>
|
||||
@@ -502,18 +541,50 @@
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<showTitle>auto</showTitle>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКоманды</name>
|
||||
<id>459</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКомандыПодтверждения</name>
|
||||
<id>461</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команды</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомандыПодтвержденияРасширеннаяПодсказка</name>
|
||||
<id>462</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>
|
||||
<commandBarLocation>Bottom</commandBarLocation>
|
||||
<showCommandBar>true</showCommandBar>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаОсновныеКоманды</name>
|
||||
<id>463</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаРасшифровать</name>
|
||||
<id>307</id>
|
||||
<id>465</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -521,7 +592,7 @@
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаРасшифроватьРасширеннаяПодсказка</name>
|
||||
<id>308</id>
|
||||
<id>466</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -539,7 +610,7 @@
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаЗакрыть</name>
|
||||
<id>303</id>
|
||||
<id>467</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отмена</value>
|
||||
@@ -551,7 +622,7 @@
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаЗакрытьРасширеннаяПодсказка</name>
|
||||
<id>304</id>
|
||||
<id>468</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -568,7 +639,7 @@
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСправка</name>
|
||||
<id>448</id>
|
||||
<id>469</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -576,7 +647,7 @@
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСправкаРасширеннаяПодсказка</name>
|
||||
<id>449</id>
|
||||
<id>470</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -592,6 +663,67 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Основные команды</value>
|
||||
</title>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<groupHorizontalAlign>Right</groupHorizontalAlign>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаОсновныеКомандыРасширеннаяПодсказка</name>
|
||||
<id>464</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команды</value>
|
||||
</title>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомандыРасширеннаяПодсказка</name>
|
||||
<id>460</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>
|
||||
<commandBarLocation>Bottom</commandBarLocation>
|
||||
<showCommandBar>true</showCommandBar>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
@@ -610,7 +742,7 @@
|
||||
<event>OnClose</event>
|
||||
<name>ПриЗакрытии</name>
|
||||
</handlers>
|
||||
<width>45</width>
|
||||
<width>56</width>
|
||||
<windowOpeningMode>LockOwner</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoUrl>true</autoUrl>
|
||||
@@ -766,7 +898,7 @@
|
||||
<name>СертификатПрограмма</name>
|
||||
<id>9</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.ПрограммыЭлектроннойПодписиИШифрования</types>
|
||||
<types>DefinedType.ПрограммаЭлектроннойПодписи</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
|
||||
+2
-1
@@ -9,7 +9,8 @@
|
||||
<div>В поле <strong>Пароль</strong> введите пароль для выбранного сертификата.</div>
|
||||
</li><li>
|
||||
<div>Включите флажок <strong>Запомнить пароль</strong>, для того чтобы не вводить пароль в следующий раз.</div>
|
||||
</li><li>
|
||||
</li>
|
||||
<li>
|
||||
<div>Нажмите <strong>Расшифровать</strong>.</div></li></ul><h3>См. также:</h3>
|
||||
<ul><li>
|
||||
<div><a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">Настройки электронной подписи и шифрования</a>.</div></li></ul></body></html>
|
||||
+155
-7
@@ -31,6 +31,16 @@
|
||||
Элементы.ПояснениеУсиленногоПароля.Заголовок = НСтр("ru = 'Нажмите ОК, чтобы перейти к вводу пароля.'");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSПодтверждениеСервер");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодготовитьГруппуПодтверждения(ЭтотОбъект, "Расшифрование",
|
||||
"ГруппаРасшифровка",
|
||||
"ГруппаКонтейнер",
|
||||
,
|
||||
"ГруппаКомандыПодтверждения");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодтверждениеПриИзмененииСертификата(ЭтотОбъект, Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -44,6 +54,11 @@
|
||||
ТекущийЭлемент = Элементы[ИмяПоляАктивизироватьПоУмолчанию];
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриОткрытии(ЭтотОбъект, Отказ, ЗначениеЗаполнено(Пароль) И ЗапомнитьПароль, ОписаниеДанных);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -58,6 +73,28 @@
|
||||
|
||||
Если ВРег(ИмяСобытия) = ВРег("Запись_СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ПодключитьОбработчикОжидания("ПриИзмененииСпискаСертификатов", 0.1, Истина);
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеВыполнитьОсновнуюОперацию") И Источник = УникальныйИдентификатор Тогда
|
||||
Если Параметр.Выполнено Тогда
|
||||
СвойстваОблачнойПодписи = ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьСвойстваОблачнойПодписи(ОписаниеДанных);
|
||||
ОповещениеПриПодтверждении = СвойстваОблачнойПодписи.ОповещениеПриПодтверждении;
|
||||
Если ОповещениеПриПодтверждении = Неопределено Тогда
|
||||
РасшифроватьДанные(Новый ОписаниеОповещения("РасшифроватьЗавершение", ЭтотОбъект));
|
||||
Иначе
|
||||
ВыполнитьОбработкуОповещения(ОповещениеПриПодтверждении, ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеАвторизация") И Источник = УникальныйИдентификатор Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьОтпечаткиСертификатовНаКлиенте(
|
||||
Новый ОписаниеОповещения("СертификатПриИзмененииЗавершение", ЭтотОбъект),
|
||||
ЗначениеЗаполнено(ОтборОтпечатков));
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеПодготовитьДанные") И Источник = УникальныйИдентификатор Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьДанныеДляОблачнойПодписи(
|
||||
Параметр.ОбработчикСледующий, Параметр.КонтекстФормы,
|
||||
Параметр.ОписаниеДанных, Параметр.Данные, Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -89,7 +126,14 @@
|
||||
|
||||
СертификатПриИзмененииНаСервере(ОтпечаткиСертификатовНаКлиенте);
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект, ВнутренниеДанные, СвойстваПароля);
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект, ВнутренниеДанные, СвойстваПароля, Новый Структура("ПриОткрытии", Истина));
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверитьНаОшибкуСертификата(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ФильтроватьСписокСпособов(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элементы.Сертификат, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -107,6 +151,7 @@
|
||||
ПараметрыФормы.Вставить("ВыбранныйСертификат", Сертификат);
|
||||
ПараметрыФормы.Вставить("ДляШифрованияИРасшифровки", Истина);
|
||||
ПараметрыФормы.Вставить("ВернутьПароль", Истина);
|
||||
ПараметрыФормы.Вставить("ВыполнятьНаСервере", ВыполнятьНаСервере);
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ВыборСертификатаДляПодписанияИлиРасшифровки(ПараметрыФормы, Элемент);
|
||||
|
||||
@@ -139,6 +184,7 @@
|
||||
ПараметрыФормы.Вставить("ОтпечатокВыбранногоСертификата", ВыбранноеЗначение);
|
||||
ПараметрыФормы.Вставить("ДляШифрованияИРасшифровки", Истина);
|
||||
ПараметрыФормы.Вставить("ВернутьПароль", Истина);
|
||||
ПараметрыФормы.Вставить("ВыполнятьНаСервере", ВыполнятьНаСервере);
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ВыборСертификатаДляПодписанияИлиРасшифровки(ПараметрыФормы, Элемент);
|
||||
Возврат;
|
||||
@@ -150,6 +196,11 @@
|
||||
Новый ОписаниеОповещения("СертификатОбработкаВыбораЗавершение", ЭтотОбъект, ВыбранноеЗначение),
|
||||
ЗначениеЗаполнено(ОтборОтпечатков));
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элементы.Сертификат, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры СертификатОбработкаВыбора.
|
||||
@@ -169,6 +220,13 @@
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ОбработатьПарольВФорме(ЭтотОбъект, ВнутренниеДанные, СвойстваПароля);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элементы.Сертификат, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверитьНаОшибкуСертификата(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ФильтроватьСписокСпособов(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -237,17 +295,25 @@
|
||||
&НаКлиенте
|
||||
Процедура Расшифровать(Команда)
|
||||
|
||||
Если Не Элементы.ФормаРасшифровать.Доступность Тогда
|
||||
Если Не ПроверитьЗаполнение() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПроверитьЗаполнение() Тогда
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверкаПередВыполнениемОперации(ЭтотОбъект, СвойстваПароля.Значение) Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ВыполнитьНачальнуюОперациюСервиса(ЭтотОбъект, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
Если Не Элементы.ФормаРасшифровать.Доступность Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ФормаРасшифровать.Доступность = Ложь;
|
||||
|
||||
РасшифроватьДанные(Новый ОписаниеОповещения("РасшифроватьЗавершение", ЭтотОбъект));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -305,7 +371,13 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = Неопределено;
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
ДополнительныеПараметры.Вставить("ПриОткрытии", Истина);
|
||||
Если СвойстваПароля <> Неопределено Тогда
|
||||
ДополнительныеПараметры.Вставить("ПриУстановкеПароляИзДругойОперации", Истина);
|
||||
КонецЕсли;
|
||||
@@ -324,13 +396,27 @@
|
||||
Или ДополнительныеПараметры.УсиленнаяЗащитаЗакрытогоКлюча
|
||||
Или ОблачныйПарольПодтвержден) Тогда
|
||||
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент <> Неопределено Тогда
|
||||
Если НЕ МодульСервисКриптографииDSSПодтверждениеКлиент.ОблачнаяПодписьТребуетПодтверждения(ЭтотОбъект, ДополнительныеПараметры.ПарольУказан) Тогда
|
||||
ОбработкаПослеПредупреждения = Неопределено;
|
||||
РасшифроватьДанные(Новый ОписаниеОповещения("ПродолжитьОткрытиеПослеРасшифровкиДанных", ЭтотОбъект, Контекст));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ОбработкаПослеПредупреждения = Неопределено;
|
||||
РасшифроватьДанные(Новый ОписаниеОповещения("ПродолжитьОткрытиеПослеРасшифровкиДанных", ЭтотОбъект, Контекст));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Открыть();
|
||||
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент <> Неопределено Тогда
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверкаВыполненияНачальнойОперации(ЭтотОбъект, БезПодтверждения И ДополнительныеПараметры.ПарольУказан) Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ВыполнитьНачальнуюОперациюСервиса(ЭтотОбъект, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ПродолжитьОткрытиеЗавершение(Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -395,9 +481,7 @@
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьРасшифровкуЗавершение(Результат, Контекст) Экспорт
|
||||
|
||||
Если Результат = Истина Тогда
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработкаЗавершения, Истина);
|
||||
КонецЕсли;
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработкаЗавершения, Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -433,11 +517,24 @@
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.СертификатПриИзмененииНаСервере(ЭтотОбъект, ОтпечаткиСертификатовНаКлиенте,, Истина);
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSПодтверждениеСервер");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодтверждениеПриИзмененииСертификата(ЭтотОбъект, Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура РасшифроватьДанные(Оповещение)
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.УстановитьСвойстваОблачнойПодписи(ОписаниеДанных,
|
||||
Новый Структура("УчетнаяЗапись, ДанныеПодтверждения", ЭтотОбъект.НастройкиПользователя, ЭтотОбъект.ДанныеПодтверждения));
|
||||
Иначе
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.УстановитьСвойстваОблачнойПодписи(ОписаниеДанных,
|
||||
Новый Структура("УчетнаяЗапись, ДанныеПодтверждения"));
|
||||
КонецЕсли;
|
||||
|
||||
Контекст = Новый Структура;
|
||||
Контекст.Вставить("Оповещение", Оповещение);
|
||||
Контекст.Вставить("ОшибкаНаКлиенте", Новый Структура);
|
||||
@@ -500,7 +597,9 @@
|
||||
ПараметрыВыполнения.Вставить("ЗначениеПароля", СвойстваПароля.Значение);
|
||||
Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения);
|
||||
|
||||
Если ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
||||
Если ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере()
|
||||
И ВыполнятьНаСервере <> Ложь Тогда
|
||||
|
||||
Если ЗначениеЗаполнено(СертификатНаСервереОписаниеОшибки) Тогда
|
||||
Результат = Новый Структура("Ошибка", СертификатНаСервереОписаниеОшибки);
|
||||
СертификатНаСервереОписаниеОшибки = Новый Структура;
|
||||
@@ -535,6 +634,10 @@
|
||||
Иначе
|
||||
Если Результат <> Неопределено Тогда
|
||||
Контекст.ОшибкаНаСервере = Результат.Ошибка;
|
||||
Если ВыполнятьНаСервере = Истина Тогда
|
||||
РасшифроватьДанныеПослеВыполненияНаСторонеКлиента(Новый Структура, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Попытка подписания на клиенте.
|
||||
@@ -703,4 +806,49 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработкаКоманды(Команда)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаКоманды(ЭтотОбъект, Команда, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеПриИзменении(Элемент)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элемент, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработчикОжидания()
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаОжидания(ЭтотОбъект, ОписаниеДанных, СвойстваПароля.Значение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеНачалоВыбора(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+761
@@ -0,0 +1,761 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список пользователей</value>
|
||||
</title>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаДанные</name>
|
||||
<id>42</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаАвтор</name>
|
||||
<id>32</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>СпособВыбора</name>
|
||||
<id>36</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>СпособВыбора</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
<name>СпособВыбораПриИзменении</name>
|
||||
</handlers>
|
||||
<extendedTooltip>
|
||||
<name>СпособВыбораРасширеннаяПодсказка</name>
|
||||
<id>38</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СпособВыбораКонтекстноеМеню</name>
|
||||
<id>37</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>RadioButtonField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
|
||||
<choiceList>
|
||||
<presentation>
|
||||
<key>ru</key>
|
||||
<value>Только для меня</value>
|
||||
</presentation>
|
||||
<value xsi:type="core:StringValue">
|
||||
<value>ТолькоДляМеня</value>
|
||||
</value>
|
||||
</choiceList>
|
||||
<orientation>Vertical</orientation>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Автор</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаАвторРасширеннаяПодсказка</name>
|
||||
<id>33</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:FormGroup">
|
||||
<name>ГруппаСписок</name>
|
||||
<id>34</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>СпособВыбораСписок</name>
|
||||
<id>39</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>СпособВыбора</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
<name>СпособВыбораПриИзменении</name>
|
||||
</handlers>
|
||||
<extendedTooltip>
|
||||
<name>СпособВыбораСписокРасширеннаяПодсказка</name>
|
||||
<id>41</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СпособВыбораСписокКонтекстноеМеню</name>
|
||||
<id>40</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>RadioButtonField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
|
||||
<choiceList>
|
||||
<presentation>
|
||||
<key>ru</key>
|
||||
<value>Добавить пользователей</value>
|
||||
</presentation>
|
||||
<value xsi:type="core:StringValue">
|
||||
<value>СписокПользователей</value>
|
||||
</value>
|
||||
</choiceList>
|
||||
<orientation>Vertical</orientation>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Table">
|
||||
<name>ТаблицаПользователей</name>
|
||||
<id>7</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Таблица пользователей</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ТаблицаПользователей</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<excludedCommands>Change</excludedCommands>
|
||||
<excludedCommands>Copy</excludedCommands>
|
||||
<excludedCommands>Delete</excludedCommands>
|
||||
<excludedCommands>EndEdit</excludedCommands>
|
||||
<excludedCommands>MoveDown</excludedCommands>
|
||||
<excludedCommands>MoveUp</excludedCommands>
|
||||
<excludedCommands>OutputList</excludedCommands>
|
||||
<excludedCommands>ShowRowRearrangement</excludedCommands>
|
||||
<excludedCommands>SortListAsc</excludedCommands>
|
||||
<excludedCommands>SortListDesc</excludedCommands>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПользователиПометка</name>
|
||||
<id>23</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ТаблицаПользователей.Пометка</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ПользователиПометкаРасширеннаяПодсказка</name>
|
||||
<id>25</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПользователиПометкаКонтекстноеМеню</name>
|
||||
<id>24</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>CheckBoxField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПользователиПользователь</name>
|
||||
<id>20</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ТаблицаПользователей.Пользователь</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ПользователиПользовательРасширеннаяПодсказка</name>
|
||||
<id>22</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПользователиПользовательКонтекстноеМеню</name>
|
||||
<id>21</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<readOnly>true</readOnly>
|
||||
<editMode>Auto</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ТаблицаПользователейКоманднаяПанель</name>
|
||||
<id>9</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПользователиПометитьВсе</name>
|
||||
<id>26</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПользователиПометитьВсеРасширеннаяПодсказка</name>
|
||||
<id>27</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.ПометитьВсе</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПользователиОтменитьПометку</name>
|
||||
<id>28</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПользователиОтменитьПометкуРасширеннаяПодсказка</name>
|
||||
<id>29</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.ОтменитьПометку</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<searchStringAddition>
|
||||
<name>ТаблицаПользователейСтрокаПоиска</name>
|
||||
<id>11</id>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаПользователейСтрокаПоискаРасширеннаяПодсказка</name>
|
||||
<id>13</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаПользователейСтрокаПоискаКонтекстноеМеню</name>
|
||||
<id>12</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>ТаблицаПользователей</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchStringAddition>
|
||||
<viewStatusAddition>
|
||||
<name>ТаблицаПользователейСостояниеПросмотра</name>
|
||||
<id>14</id>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаПользователейСостояниеПросмотраРасширеннаяПодсказка</name>
|
||||
<id>16</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаПользователейСостояниеПросмотраКонтекстноеМеню</name>
|
||||
<id>15</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>ViewStatusAddition</type>
|
||||
<source>ТаблицаПользователей</source>
|
||||
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</viewStatusAddition>
|
||||
<searchControlAddition>
|
||||
<name>ТаблицаПользователейУправлениеПоиском</name>
|
||||
<id>17</id>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаПользователейУправлениеПоискомРасширеннаяПодсказка</name>
|
||||
<id>19</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаПользователейУправлениеПоискомКонтекстноеМеню</name>
|
||||
<id>18</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>ТаблицаПользователей</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</searchControlAddition>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаПользователейРасширеннаяПодсказка</name>
|
||||
<id>10</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаПользователейКонтекстноеМеню</name>
|
||||
<id>8</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<autoMaxRowsCount>true</autoMaxRowsCount>
|
||||
<selectionMode>MultiRow</selectionMode>
|
||||
<headerHeight>1</headerHeight>
|
||||
<footerHeight>1</footerHeight>
|
||||
<horizontalScrollBar>AutoUse</horizontalScrollBar>
|
||||
<verticalScrollBar>AutoUse</verticalScrollBar>
|
||||
<horizontalLines>true</horizontalLines>
|
||||
<verticalLines>true</verticalLines>
|
||||
<useAlternationRowColorBWA>false</useAlternationRowColorBWA>
|
||||
<autoInsertNewRow>true</autoInsertNewRow>
|
||||
<searchOnInput>Auto</searchOnInput>
|
||||
<initialListView>Auto</initialListView>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<enableDrag>true</enableDrag>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
<autoMaxCardHeight>true</autoMaxCardHeight>
|
||||
<rowFilter xsi:type="core:UndefinedValue"/>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаСписокРасширеннаяПодсказка</name>
|
||||
<id>35</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>43</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>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКоманды</name>
|
||||
<id>1</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ОК</name>
|
||||
<id>30</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<defaultItem>true</defaultItem>
|
||||
<extendedTooltip>
|
||||
<name>ОКРасширеннаяПодсказка</name>
|
||||
<id>31</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.ОК</commandName>
|
||||
<representation>Auto</representation>
|
||||
<defaultButton>true</defaultButton>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>Отмена</name>
|
||||
<id>5</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ОтменаРасширеннаяПодсказка</name>
|
||||
<id>6</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.Cancel</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команды</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомандыРасширеннаяПодсказка</name>
|
||||
<id>2</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<windowOpeningMode>LockOwner</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>auto</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>ТаблицаПользователей</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Таблица пользователей</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>ValueTable</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<columns>
|
||||
<name>Пользователь</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пользователь</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.Пользователи</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Пометка</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пометка</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Основной</name>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СпособВыбора</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Способ выбора</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>РежимПросмотра</name>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>ПометитьВсе</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пометить все</value>
|
||||
</title>
|
||||
<id>1</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Пометить все</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>StdPicture.CheckAll</picture>
|
||||
</picture>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ПометитьВсе</name>
|
||||
</handler>
|
||||
</action>
|
||||
<representation>Picture</representation>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<associatedTableElementId xsi:type="core:StringValue">
|
||||
<value>ТаблицаПользователей</value>
|
||||
</associatedTableElementId>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ОтменитьПометку</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отменить пометку</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Отменить пометку</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>StdPicture.UncheckAll</picture>
|
||||
</picture>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ОтменитьПометку</name>
|
||||
</handler>
|
||||
</action>
|
||||
<representation>Picture</representation>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<associatedTableElementId xsi:type="core:StringValue">
|
||||
<value>ТаблицаПользователей</value>
|
||||
</associatedTableElementId>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ОК</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>ОК</value>
|
||||
</title>
|
||||
<id>3</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>ОК</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ОК</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<parameters>
|
||||
<name>Пользователи</name>
|
||||
<valueType/>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>Пользователь</name>
|
||||
<valueType>
|
||||
<types>CatalogRef.Пользователи</types>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>РежимПросмотра</name>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
</form:Form>
|
||||
+192
@@ -0,0 +1,192 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2021, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ОбработчикиСобытийФормы
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
ПользователиСертификата = Параметры.Пользователи;
|
||||
ВладелецСертификата = Параметры.Пользователь;
|
||||
РежимПросмотра = Параметры.РежимПросмотра;
|
||||
|
||||
Если ПользователиСертификата = Неопределено Тогда
|
||||
ПользователиСертификата = Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПользователиСертификата.Количество() > 0
|
||||
ИЛИ ВладелецСертификата <> Пользователи.ТекущийПользователь()
|
||||
ИЛИ НЕ ЗначениеЗаполнено(ВладелецСертификата) Тогда
|
||||
СпособВыбора = "СписокПользователей";
|
||||
Иначе
|
||||
СпособВыбора = "ТолькоДляМеня";
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьПолныйСписок(ПользователиСертификата, ВладелецСертификата);
|
||||
УправлениеФормой(ЭтотОбъект);
|
||||
НастроитьУсловноеОформление();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СпособВыбораПриИзменении(Элемент)
|
||||
|
||||
УправлениеФормой(ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОК(Команда)
|
||||
|
||||
Если РежимПросмотра Тогда
|
||||
Результат = Неопределено;
|
||||
Иначе
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Пользователи", Новый Массив);
|
||||
Результат.Вставить("Пользователь", ПредопределенноеЗначение("Справочник.Пользователи.ПустаяСсылка"));
|
||||
|
||||
Если СпособВыбора = "СписокПользователей" Тогда
|
||||
Для Каждого СтрокаПользователя Из ТаблицаПользователей Цикл
|
||||
Если СтрокаПользователя.Пометка Тогда
|
||||
Результат.Пользователи.Добавить(СтрокаПользователя.Пользователь);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
Результат.Пользователь = ПользователиКлиент.ТекущийПользователь();
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Закрыть(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОтменитьПометку(Команда)
|
||||
|
||||
ИзменитьПометкиСписка(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПометитьВсе(Команда)
|
||||
|
||||
ИзменитьПометкиСписка(Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ИзменитьПометкиСписка(ЗначениеПометки)
|
||||
|
||||
Для Каждого СтрокаПользователя Из ТаблицаПользователей Цикл
|
||||
СтрокаПользователя.Пометка = ЗначениеПометки;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура НастроитьУсловноеОформление()
|
||||
|
||||
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
|
||||
|
||||
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("BackColor");
|
||||
ЭлементЦветаОформления.Значение = ЦветаСтиля.ДобавленныйРеквизитФон;
|
||||
ЭлементЦветаОформления.Использование = Истина;
|
||||
|
||||
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
||||
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ТаблицаПользователей.Основной");
|
||||
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
|
||||
ЭлементОтбораДанных.ПравоеЗначение = Истина;
|
||||
ЭлементОтбораДанных.Использование = Истина;
|
||||
|
||||
ЭлементПоляОформления = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
|
||||
ЭлементПоляОформления.Поле = Новый ПолеКомпоновкиДанных("ТаблицаПользователей");
|
||||
ЭлементПоляОформления.Использование = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьПолныйСписок(ПользователиСертификата, ВладелецСертификата)
|
||||
|
||||
МассивПользователей = Новый Массив;
|
||||
Если ПользователиСертификата <> Неопределено Тогда
|
||||
МассивПользователей = ПользователиСертификата;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ВладелецСертификата)
|
||||
И СпособВыбора = "СписокПользователей" Тогда
|
||||
МассивПользователей.Добавить(ВладелецСертификата);
|
||||
КонецЕсли;
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||
| Пользователи.Ссылка КАК Пользователь,
|
||||
| ВЫБОР
|
||||
| КОГДА Пользователи.Ссылка В (&Пользователи)
|
||||
| ТОГДА ИСТИНА
|
||||
| ИНАЧЕ ЛОЖЬ
|
||||
| КОНЕЦ КАК Пометка,
|
||||
| ВЫБОР
|
||||
| КОГДА Пользователи.Ссылка = &ВладелецСертификата
|
||||
| ТОГДА ИСТИНА
|
||||
| ИНАЧЕ ЛОЖЬ
|
||||
| КОНЕЦ КАК Основной
|
||||
|ИЗ
|
||||
| Справочник.Пользователи КАК Пользователи
|
||||
|ГДЕ
|
||||
| (НЕ Пользователи.ПометкаУдаления
|
||||
| И НЕ Пользователи.Недействителен
|
||||
| И (НЕ Пользователи.Служебный
|
||||
| И Пользователи.ИдентификаторПользователяИБ <> &ПустойИдентификаторПользователяИБ
|
||||
| ИЛИ Пользователи.Ссылка = &ТекущийПользователь)
|
||||
| ИЛИ Пользователи.Ссылка В (&Пользователи))
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Пользователи.Наименование";
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Запрос.УстановитьПараметр("Пользователи", МассивПользователей);
|
||||
Запрос.УстановитьПараметр("ТекущийПользователь", Пользователи.АвторизованныйПользователь());
|
||||
Запрос.УстановитьПараметр("ПустойИдентификаторПользователяИБ", Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));
|
||||
Запрос.УстановитьПараметр("ВладелецСертификата", ВладелецСертификата);
|
||||
|
||||
ТаблицаПользователей.Загрузить(Запрос.Выполнить().Выгрузить());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Процедура УправлениеФормой(КонтекстФормы)
|
||||
|
||||
ЭлементыФормы = КонтекстФормы.Элементы;
|
||||
|
||||
Если КонтекстФормы.РежимПросмотра Тогда
|
||||
ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр = Истина;
|
||||
ЭлементыФормы.СпособВыбора.ТолькоПросмотр = Истина;
|
||||
ЭлементыФормы.СпособВыбораСписок.ТолькоПросмотр = Истина;
|
||||
Иначе
|
||||
ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр = НЕ КонтекстФормы.СпособВыбора = "СписокПользователей";
|
||||
КонецЕсли;
|
||||
|
||||
ЭлементыФормы.ПользователиПометитьВсе.Доступность = НЕ ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр;
|
||||
ЭлементыФормы.ПользователиОтменитьПометку.Доступность = НЕ ЭлементыФормы.ТаблицаПользователей.ТолькоПросмотр;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+180
-77
@@ -747,10 +747,9 @@
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<width>37</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
@@ -759,23 +758,20 @@
|
||||
<choiceHistoryOnInput>DontUse</choiceHistoryOnInput>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГоризонтальнаяГруппа</name>
|
||||
<id>259</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Пользователь</name>
|
||||
<id>171</id>
|
||||
<name>Пользователи</name>
|
||||
<id>273</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.Пользователь</segments>
|
||||
<segments>ПредставлениеПользователей</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ПользовательРасширеннаяПодсказка</name>
|
||||
<id>173</id>
|
||||
<name>ПользователиРасширеннаяПодсказка</name>
|
||||
<id>275</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -784,8 +780,8 @@
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПользовательКонтекстноеМеню</name>
|
||||
<id>172</id>
|
||||
<name>ПользователиКонтекстноеМеню</name>
|
||||
<id>274</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
@@ -794,14 +790,19 @@
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<width>37</width>
|
||||
<handlers>
|
||||
<event>StartChoice</event>
|
||||
<name>ПользователиНачалоВыбора</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>Opening</event>
|
||||
<name>ПользователиОткрытие</name>
|
||||
</handlers>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<choiceButton>true</choiceButton>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
@@ -851,35 +852,6 @@
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Горизонтальная группа</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГоризонтальнаяГруппаРасширеннаяПодсказка</name>
|
||||
<id>260</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>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Поля</value>
|
||||
@@ -904,36 +876,6 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Горизонтальная группа 1</value>
|
||||
</title>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<extendedTooltip>
|
||||
<name>ГоризонтальнаяГруппа1РасширеннаяПодсказка</name>
|
||||
<id>211</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:FormGroup">
|
||||
<name>ДляЭлектроннойПодписиИРасшифровки</name>
|
||||
<id>221</id>
|
||||
@@ -976,7 +918,9 @@
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<choiceButton>false</choiceButton>
|
||||
<createButton>true</createButton>
|
||||
<listChoiceMode>true</listChoiceMode>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
@@ -1026,7 +970,6 @@
|
||||
<key>ru</key>
|
||||
<value>Настройки закрытого ключа (для создания электронных подписей или расшифровки данных)</value>
|
||||
</title>
|
||||
<width>60</width>
|
||||
<extendedTooltip>
|
||||
<name>ДляЭлектроннойПодписиИРасшифровкиРасширеннаяПодсказка</name>
|
||||
<id>222</id>
|
||||
@@ -1048,6 +991,36 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Горизонтальная группа 1</value>
|
||||
</title>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<extendedTooltip>
|
||||
<name>ГоризонтальнаяГруппа1РасширеннаяПодсказка</name>
|
||||
<id>211</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>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
@@ -1157,6 +1130,59 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСменитьПинКод</name>
|
||||
<id>269</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСменитьПинКодРасширеннаяПодсказка</name>
|
||||
<id>270</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.СменитьПинКод</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСброситьПароль</name>
|
||||
<id>271</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСброситьПарольРасширеннаяПодсказка</name>
|
||||
<id>272</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.СброситьПароль</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1315,6 +1341,10 @@
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>NotificationProcessing</event>
|
||||
<name>ОбработкаОповещения</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnOpen</event>
|
||||
<name>ПриОткрытии</name>
|
||||
@@ -1505,6 +1535,35 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СертификатОблачнойПодписи</name>
|
||||
<id>11</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПредставлениеПользователей</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пользователи</value>
|
||||
</title>
|
||||
<id>12</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>СертификатОтозван</name>
|
||||
<title>
|
||||
@@ -1657,6 +1716,50 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>СменитьПинКод</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сменить пин-код</value>
|
||||
</title>
|
||||
<id>8</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Сменить пин код</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>СменитьПинКод</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>СброситьПароль</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сбросить пароль в памяти</value>
|
||||
</title>
|
||||
<id>9</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Сбросить пароль</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>СброситьПароль</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel>
|
||||
<cmiFragmentRecord>
|
||||
|
||||
+243
-5
@@ -14,6 +14,14 @@
|
||||
ЭлектроннаяПодписьСлужебный.НастроитьПояснениеВводаПароля(ЭтотОбъект,
|
||||
Элементы.УсиленнаяЗащитаЗакрытогоКлюча.Имя);
|
||||
|
||||
СертификатОблачнойПодписи = ИнформацияОблачнойПодписи(Объект.Программа);
|
||||
ЗаполнитьСписокПрограммСервер();
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяОблачнаяПодпись")
|
||||
И ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
Элементы.Программа.Заголовок = НСтр("ru = 'Программа или сервис'");
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -56,6 +64,8 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОформитьСписокПользователей();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
@@ -86,6 +96,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
Если ИмяСобытия = "Запись_ПрограммыЭлектроннойПодписиИШифрования"
|
||||
ИЛИ ИмяСобытия = "Запись_УчетнойЗаписиDSS" Тогда
|
||||
ЗаполнитьСписокПрограммСервер();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
|
||||
|
||||
@@ -129,6 +149,22 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПользователиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ОткрытьСписокПользователей(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПользователиОткрытие(Элемент, СтандартнаяОбработка)
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ОткрытьСписокПользователей(Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -216,6 +252,28 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СброситьПароль(Команда)
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.СброситьПарольВПамяти(Объект.Ссылка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СменитьПинКод(Команда)
|
||||
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
|
||||
ПредставлениеОтпечатка = МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(Объект.Отпечаток);
|
||||
ОписаниеСледующее = Новый ОписаниеОповещения("ПослеСменыПинКода", ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSКлиент.СменитьПинКодСертификата(
|
||||
ОписаниеСледующее,
|
||||
Объект.Программа,
|
||||
Новый Структура("Отпечаток", ПредставлениеОтпечатка));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -262,17 +320,20 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
|
||||
Если Объект.Добавил <> Пользователи.ТекущийПользователь()
|
||||
И Объект.Пользователь <> Пользователи.ТекущийПользователь() Тогда
|
||||
ЭтоАвтор = Объект.Добавил = Пользователи.ТекущийПользователь();
|
||||
СертификатДоступен = СертификатДоступенПользователю();
|
||||
|
||||
Если НЕ ЭтоАвтор И НЕ СертификатДоступен Тогда
|
||||
// Обычный пользователь может изменять только свои сертификаты.
|
||||
ТолькоПросмотр = Истина;
|
||||
Иначе
|
||||
// Обычный пользователь не может изменить права доступа.
|
||||
Элементы.Добавил.ТолькоПросмотр = Истина;
|
||||
Если Объект.Добавил <> Пользователи.ТекущийПользователь() Тогда
|
||||
Если НЕ СертификатДоступен Тогда
|
||||
// Обычный пользователь не может изменять реквизит Пользователь,
|
||||
// если не он добавил сертификат.
|
||||
Элементы.Пользователь.ТолькоПросмотр = Истина;
|
||||
Элементы.Пользователи.ТолькоПросмотр = Истина;
|
||||
Элементы.Пользователи.КнопкаОткрытия = Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -361,8 +422,185 @@
|
||||
Процедура ОбновитьВидимостьЭлементаУсиленнаяЗащитаЗакрытогоКлюча(Форма)
|
||||
|
||||
Форма.Элементы.УсиленнаяЗащитаЗакрытогоКлюча.Видимость =
|
||||
Форма.Объект.Программа <> Форма.ПрограммаОблачногоСервиса;
|
||||
Форма.Объект.Программа <> Форма.ПрограммаОблачногоСервиса
|
||||
И НЕ Форма.СертификатОблачнойПодписи.ОблачнаяПодпись;
|
||||
|
||||
Форма.Элементы.ФормаСменитьПинКод.Видимость = Форма.СертификатОблачнойПодписи.ОблачнаяПодпись;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОформитьСписокПользователей()
|
||||
|
||||
КоличествоПользователей = Объект.Пользователи.Количество();
|
||||
Если КоличествоПользователей = 1 Тогда
|
||||
ПредставлениеПользователей = СокрЛП(Объект.Пользователи[0].Пользователь);
|
||||
ИначеЕсли КоличествоПользователей > 1 Тогда
|
||||
ПредставлениеПользователей = НСтр("ru = 'Несколько пользователей'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка())
|
||||
+ " (" + Формат(КоличествоПользователей, "ЧГ=0") + ")";
|
||||
ИначеЕсли ЗначениеЗаполнено(Объект.Пользователь) Тогда
|
||||
ПредставлениеПользователей = СокрЛП(Объект.Пользователь);
|
||||
Иначе
|
||||
ПредставлениеПользователей = НСтр("ru = 'Не указаны'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка());
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СписокПользователейЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если РезультатВыбора <> Неопределено И ТипЗнч(РезультатВыбора) = Тип("Структура") Тогда
|
||||
Объект.Пользователи.Очистить();
|
||||
Объект.Пользователь = РезультатВыбора.Пользователь;
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицуИзМассива(Объект.Пользователи, РезультатВыбора.Пользователи, "Пользователь");
|
||||
ОформитьСписокПользователей();
|
||||
Модифицированность = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеСменыПинКода(РезультатВызова, ДополнительныеПараметры) Экспорт
|
||||
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
|
||||
Если РезультатВызова.Выполнено Тогда
|
||||
ПоказатьПредупреждение(Неопределено,
|
||||
НСтр("ru = 'Смена пин-кода выполнена успешно.'", ОбщегоНазначенияКлиент.КодОсновногоЯзыка()), 30);
|
||||
|
||||
ИначеЕсли НЕ МодульСервисКриптографииDSSКлиентСервер.ЭтоОшибкаОтказа(РезультатВызова.Ошибка) Тогда
|
||||
МодульСервисКриптографииDSSКлиент.ВывестиОшибку(Неопределено, РезультатВызова.Ошибка);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОткрытьСписокПользователей(РежимПросмотра)
|
||||
|
||||
МассивПользователей = Новый Массив;
|
||||
Для Каждого СтрокаТаблицы Из Объект.Пользователи Цикл
|
||||
МассивПользователей.Добавить(СтрокаТаблицы.Пользователь);
|
||||
КонецЦикла;
|
||||
|
||||
ОповещениеЗавершения = Новый ОписаниеОповещения("СписокПользователейЗавершение", ЭтотОбъект);
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("Пользователь", Объект.Пользователь);
|
||||
ПараметрыФормы.Вставить("Пользователи", МассивПользователей);
|
||||
ПараметрыФормы.Вставить("РежимПросмотра", РежимПросмотра ИЛИ ТолькоПросмотр);
|
||||
|
||||
ОткрытьФорму("Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.СписокПользователей",
|
||||
ПараметрыФормы, ЭтотОбъект, , , , ОповещениеЗавершения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция СертификатДоступенПользователю()
|
||||
|
||||
ТекПользователь = Пользователи.ТекущийПользователь();
|
||||
НашлиСтроки = Объект.Пользователи.НайтиСтроки(Новый Структура("Пользователь", ТекПользователь));
|
||||
Результат = НашлиСтроки.Количество() > 0 ИЛИ Объект.Пользователь = ТекПользователь;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьСписокПрограммСервер()
|
||||
|
||||
СписокВыбора = Элементы.Программа.СписокВыбора;
|
||||
СписокВыбора.Очистить();
|
||||
ВесьСписок = ЗаполнитьСписокПрограмм(Объект.Программа);
|
||||
|
||||
Для каждого СтрокаСписка Из ВесьСписок Цикл
|
||||
НоваяСтрока = СписокВыбора.Добавить(СтрокаСписка.Значение);
|
||||
НоваяСтрока.Картинка = СтрокаСписка.Картинка;
|
||||
НоваяСтрока.Представление = СтрокаСписка.Представление;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ИнформацияОблачнойПодписи(ТекущаяПрограмма)
|
||||
|
||||
Результат = Новый Структура();
|
||||
Результат.Вставить("ОблачнаяПодпись", Ложь);
|
||||
Результат.Вставить("МенятьПинКод", Ложь);
|
||||
|
||||
Если ЗначениеЗаполнено(ТекущаяПрограмма)
|
||||
И ТипЗнч(ТекущаяПрограмма) = ЭлектроннаяПодписьСлужебный.ПолучитьТипОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSСлужебныйВызовСервера = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебныйВызовСервера");
|
||||
ДанныеУчетнойЗаписи = МодульСервисКриптографииDSSСлужебныйВызовСервера.ПолучитьНастройкиПользователя(ТекущаяПрограмма);
|
||||
Результат.ОблачнаяПодпись = Истина;
|
||||
Результат.МенятьПинКод = ДанныеУчетнойЗаписи.Политика.РежимПинКода <> "Запрещено";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ЗаполнитьСписокПрограмм(Знач ВыбраннаяПрограмма)
|
||||
|
||||
ДобавитьКартинку = ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() ИЛИ ЭлектроннаяПодписьСлужебный.ИспользоватьЭлектроннуюПодписьВМоделиСервиса();
|
||||
КартинкаКомпьютера = Новый Картинка;
|
||||
КартинкаСервиса = Новый Картинка;
|
||||
КартинкаОблака = Новый Картинка;
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
|
||||
КартинкаКомпьютера = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("КомпьютерКлиент");
|
||||
КартинкаСервиса = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ПодписьСервиса");
|
||||
КартинкаОблака = МодульСервисКриптографииDSS.ПолучитьКартинкуПодсистемы("ПодписьОблако");
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Новый СписокЗначений;
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.Ссылка КАК Ссылка,
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.ЭтоПрограммаОблачногоСервиса КАК ЭтоПрограммаОблачногоСервиса,
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.ТипПрограммы КАК ТипПрограммы,
|
||||
| ЛОЖЬ КАК ОблачнаяПодпись
|
||||
|ИЗ
|
||||
| Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыЭлектроннойПодписиИШифрования";
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
НоваяСтрока = Результат.Добавить(Выборка.Ссылка);
|
||||
Если Выборка.ЭтоПрограммаОблачногоСервиса И ДобавитьКартинку Тогда
|
||||
НоваяСтрока.Картинка = КартинкаСервиса;
|
||||
ИначеЕсли ДобавитьКартинку Тогда
|
||||
НоваяСтрока.Картинка = КартинкаКомпьютера;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
МодульСервисКриптографииDSS = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSS");
|
||||
МассивУчетныхЗаписей = МодульСервисКриптографииDSSСлужебный.ПолучитьВсеУчетныеЗаписи();
|
||||
|
||||
Для каждого СтрокаМассива Из МассивУчетныхЗаписей Цикл
|
||||
НоваяСтрока = Результат.Добавить(СтрокаМассива.Ссылка);
|
||||
Если ДобавитьКартинку Тогда
|
||||
НоваяСтрока.Картинка = КартинкаОблака;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.НайтиПоЗначению(ВыбраннаяПрограмма) = Неопределено Тогда
|
||||
ПредставлениеПрограммы = ?(ЗначениеЗаполнено(ВыбраннаяПрограмма),
|
||||
СокрЛ(ВыбраннаяПрограмма),
|
||||
НСтр("ru = 'Не выбрана'"));
|
||||
Результат.Добавить(ВыбраннаяПрограмма, ПредставлениеПрограммы);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+142
-13
@@ -200,6 +200,38 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКонтейнер</name>
|
||||
<id>538</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Контейнер</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКонтейнерРасширеннаяПодсказка</name>
|
||||
<id>539</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>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаСертификатыШифрования</name>
|
||||
<id>489</id>
|
||||
@@ -219,6 +251,7 @@
|
||||
<segments>СертификатыШифрования</segments>
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<skipOnInput>true</skipOnInput>
|
||||
<titleLocation>None</titleLocation>
|
||||
<excludedCommands>Change</excludedCommands>
|
||||
<excludedCommands>Copy</excludedCommands>
|
||||
@@ -305,6 +338,7 @@
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<skipOnInput>true</skipOnInput>
|
||||
<extendedTooltip>
|
||||
<name>СертификатыШифрованияДобавитьРасширеннаяПодсказка</name>
|
||||
<id>484</id>
|
||||
@@ -873,14 +907,47 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<commandBarLocation>Bottom</commandBarLocation>
|
||||
<showCommandBar>true</showCommandBar>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКомандыФормы</name>
|
||||
<id>526</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКомандыПодтверждения</name>
|
||||
<id>528</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команды</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомандыПодтвержденияРасширеннаяПодсказка</name>
|
||||
<id>529</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>530</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаЗашифровать</name>
|
||||
<id>307</id>
|
||||
<id>532</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -888,7 +955,7 @@
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаЗашифроватьРасширеннаяПодсказка</name>
|
||||
<id>308</id>
|
||||
<id>533</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -906,7 +973,7 @@
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаЗакрыть</name>
|
||||
<id>303</id>
|
||||
<id>534</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отмена</value>
|
||||
@@ -916,9 +983,10 @@
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<skipOnInput>true</skipOnInput>
|
||||
<extendedTooltip>
|
||||
<name>ФормаЗакрытьРасширеннаяПодсказка</name>
|
||||
<id>304</id>
|
||||
<id>535</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -935,7 +1003,7 @@
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСправка</name>
|
||||
<id>448</id>
|
||||
<id>536</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -943,7 +1011,7 @@
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСправкаРасширеннаяПодсказка</name>
|
||||
<id>449</id>
|
||||
<id>537</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -959,6 +1027,67 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Основные команды</value>
|
||||
</title>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<groupHorizontalAlign>Right</groupHorizontalAlign>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаОсновныеКомандыРасширеннаяПодсказка</name>
|
||||
<id>531</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>CommandBar</type>
|
||||
<extInfo xsi:type="form:CommandBarExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Команды</value>
|
||||
</title>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомандыФормыРасширеннаяПодсказка</name>
|
||||
<id>527</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>
|
||||
<commandBarLocation>Bottom</commandBarLocation>
|
||||
<showCommandBar>true</showCommandBar>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
@@ -1073,7 +1202,7 @@
|
||||
<name>СертификатПрограмма</name>
|
||||
<id>9</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.ПрограммыЭлектроннойПодписиИШифрования</types>
|
||||
<types>DefinedType.ПрограммаЭлектроннойПодписи</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
@@ -1335,7 +1464,7 @@
|
||||
<name>ПерваяПрограммаНаСервере</name>
|
||||
<id>19</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.ПрограммыЭлектроннойПодписиИШифрования</types>
|
||||
<types>DefinedType.ПрограммаЭлектроннойПодписи</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
|
||||
+174
-15
@@ -38,6 +38,16 @@
|
||||
ЗаполнитьПрограммуШифрованияНаСервере();
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSПодтверждениеСервер");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодготовитьГруппуПодтверждения(ЭтотОбъект, "Шифрование",
|
||||
"ПодборИзСправочника",
|
||||
"ГруппаКонтейнер",
|
||||
,
|
||||
"ГруппаКомандыПодтверждения");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодтверждениеПриИзмененииСертификата(ЭтотОбъект, ПолучитьОсновнойСертификат());
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -51,6 +61,11 @@
|
||||
ТекущийЭлемент = Элементы[ИмяПоляАктивизироватьПоУмолчанию];
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриОткрытии(ЭтотОбъект, Отказ, Ложь, ОписаниеДанных);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -77,6 +92,24 @@
|
||||
ПодключитьОбработчикОжидания("ПриИзмененииСпискаСертификатов", 0.1, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Если ВРег(ИмяСобытия) = ВРег("ПодтверждениеВыполнитьОсновнуюОперацию") И Источник = УникальныйИдентификатор Тогда
|
||||
Если Параметр.Выполнено Тогда
|
||||
СвойстваОблачнойПодписи = ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьСвойстваОблачнойПодписи(ОписаниеДанных);
|
||||
ОповещениеПриПодтверждении = СвойстваОблачнойПодписи.ОповещениеПриПодтверждении;
|
||||
Если ОповещениеПриПодтверждении = Неопределено Тогда
|
||||
ЗашифроватьДанные(Новый ОписаниеОповещения("ЗашифроватьЗавершение", ЭтотОбъект));
|
||||
Иначе
|
||||
ВыполнитьОбработкуОповещения(ОповещениеПриПодтверждении, ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ПодтверждениеПодготовитьДанные") И Источник = УникальныйИдентификатор Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПолучитьДанныеДляОблачнойПодписи(
|
||||
Параметр.ОбработчикСледующий, Параметр.КонтекстФормы,
|
||||
Параметр.ОписаниеДанных, Параметр.Данные, Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -105,13 +138,26 @@
|
||||
|
||||
СертификатПриИзмененииНаСервере(ОтпечаткиСертификатовНаКлиенте);
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверитьНаОшибкуСертификата(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ФильтроватьСписокСпособов(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элементы.Сертификат, ОписаниеДанных, "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СертификатНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
ЭлектроннаяПодписьКлиент.СертификатНачалоВыбораСПодтверждением(Элемент,
|
||||
Сертификат, СтандартнаяОбработка, Истина);
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("ВыбранныйСертификат", Сертификат);
|
||||
ПараметрыФормы.Вставить("ДляШифрованияИРасшифровки", Истина);
|
||||
ПараметрыФормы.Вставить("ВыполнятьНаСервере", ВыполнятьНаСервере);
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ВыборСертификатаДляПодписанияИлиРасшифровки(ПараметрыФормы, Элемент);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -143,6 +189,13 @@
|
||||
|
||||
СертификатПриИзмененииНаСервере(ОтпечаткиСертификатовНаКлиенте);
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверитьНаОшибкуСертификата(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ФильтроватьСписокСпособов(ЭтотОбъект);
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элементы.Сертификат, ОписаниеДанных, "");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -217,19 +270,21 @@
|
||||
&НаКлиенте
|
||||
Процедура Зашифровать(Команда)
|
||||
|
||||
Если Не Элементы.ФормаЗашифровать.Доступность Тогда
|
||||
Возврат;
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверкаПередВыполнениемОперации(ЭтотОбъект, "") Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ВыполнитьНачальнуюОперациюСервиса(ЭтотОбъект, ОписаниеДанных, "");
|
||||
КонецЕсли;
|
||||
|
||||
Если Не УказанНеизменяемыйНаборСертификатов
|
||||
И Не ПроверитьЗаполнение() Тогда
|
||||
|
||||
Иначе
|
||||
Если Не Элементы.ФормаЗашифровать.Доступность Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ФормаЗашифровать.Доступность = Ложь;
|
||||
|
||||
ЗашифроватьДанные(Новый ОписаниеОповещения("ЗашифроватьЗавершение", ЭтотОбъект));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -239,7 +294,7 @@
|
||||
|
||||
Элементы.ФормаЗашифровать.Доступность = Истина;
|
||||
|
||||
Если Результат = Истина Тогда
|
||||
Если Результат = Истина И Открыта() Тогда
|
||||
Закрыть(Истина);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -536,7 +591,8 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Контекст - Структура:
|
||||
// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
|
||||
// * ОписаниеПрограммы - Структура:
|
||||
// ** Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПрограммуШифрованияЦиклНачало(Контекст)
|
||||
@@ -566,8 +622,11 @@
|
||||
// Продолжение процедуры ЗаполнитьПрограммуШифрования.
|
||||
//
|
||||
// Параметры:
|
||||
// МенеджерКриптографии - МенеджерКриптографии
|
||||
// - Неопределено
|
||||
// Контекст - Структура:
|
||||
// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
|
||||
// * ОписаниеПрограммы - Структура:
|
||||
// ** Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПрограммуШифрованияПослеСозданияМенеджераКриптографии(МенеджерКриптографии, Контекст) Экспорт
|
||||
@@ -600,8 +659,11 @@
|
||||
// Продолжение процедуры ЗаполнитьПрограммуШифрования.
|
||||
//
|
||||
// Параметры:
|
||||
// ЗашифрованныеДанные - ДвоичныеДанные
|
||||
// - Неопределено
|
||||
// Контекст - Структура:
|
||||
// * ОписаниеПрограммы - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
|
||||
// * ОписаниеПрограммы - Структура:
|
||||
// ** Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПрограммуШифрованияПослеШифрования(ЗашифрованныеДанные, Контекст) Экспорт
|
||||
@@ -674,14 +736,34 @@
|
||||
&НаКлиенте
|
||||
Процедура ПродолжитьОткрытиеПослеЗаполненияПрограммы(Результат, Контекст) Экспорт
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = Неопределено;
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
КонецЕсли;
|
||||
|
||||
Если БезПодтверждения Тогда
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент <> Неопределено Тогда
|
||||
ТребуетПодтверждения = МодульСервисКриптографииDSSПодтверждениеКлиент.ОблачнаяПодписьТребуетПодтверждения(ЭтотОбъект);
|
||||
Если НЕ ТребуетПодтверждения Тогда
|
||||
ОбработкаПослеПредупреждения = Неопределено;
|
||||
ЗашифроватьДанные(Новый ОписаниеОповещения("ПродолжитьОткрытиеПослеШифрованияДанных", ЭтотОбъект, Контекст));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ОбработкаПослеПредупреждения = Неопределено;
|
||||
ЗашифроватьДанные(Новый ОписаниеОповещения("ПродолжитьОткрытиеПослеШифрованияДанных", ЭтотОбъект, Контекст));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Открыть();
|
||||
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент <> Неопределено Тогда
|
||||
Если МодульСервисКриптографииDSSПодтверждениеКлиент.ПроверкаВыполненияНачальнойОперации(ЭтотОбъект, БезПодтверждения) Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ВыполнитьНачальнуюОперациюСервиса(ЭтотОбъект, ОписаниеДанных, "");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ПродолжитьОткрытиеЗавершение(Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -746,9 +828,7 @@
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьШифрованиеЗавершение(Результат, Контекст) Экспорт
|
||||
|
||||
Если Результат = Истина Тогда
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработкаЗавершения, Истина);
|
||||
КонецЕсли;
|
||||
ВыполнитьОбработкуОповещения(Контекст.ОбработкаЗавершения, Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -780,11 +860,23 @@
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.СертификатПриИзмененииНаСервере(ЭтотОбъект, ОтпечаткиСертификатовНаКлиенте, Истина);
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSПодтверждениеСервер");
|
||||
МодульСервисКриптографииDSSПодтверждениеСервер.ПодтверждениеПриИзмененииСертификата(ЭтотОбъект, ПолучитьОсновнойСертификат());
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗашифроватьДанные(Оповещение)
|
||||
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиент.ЭтоОперацияОблачнойПодписи(ЭтотОбъект) Тогда
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.УстановитьСвойстваОблачнойПодписи(ОписаниеДанных,
|
||||
Новый Структура("УчетнаяЗапись", ЭтотОбъект.НастройкиПользователя));
|
||||
Иначе
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.УстановитьСвойстваОблачнойПодписи(ОписаниеДанных, Новый Структура("УчетнаяЗапись"));
|
||||
КонецЕсли;
|
||||
|
||||
Контекст = Новый Структура;
|
||||
Контекст.Вставить("Оповещение", Оповещение);
|
||||
Контекст.Вставить("ОшибкаНаКлиенте", Новый Структура);
|
||||
@@ -831,7 +923,9 @@
|
||||
ПараметрыВыполнения.Вставить("ИдентификаторФормы", Контекст.ИдентификаторФормы);
|
||||
Контекст.Вставить("ПараметрыВыполнения", ПараметрыВыполнения);
|
||||
|
||||
Если ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере() Тогда
|
||||
Если ЭлектроннаяПодписьКлиент.СоздаватьЭлектронныеПодписиНаСервере()
|
||||
И ВыполнятьНаСервере <> Ложь Тогда
|
||||
|
||||
Если ЗначениеЗаполнено(СертификатНаСервереОписаниеОшибки) Тогда
|
||||
Результат = Новый Структура("Ошибка", СертификатНаСервереОписаниеОшибки);
|
||||
СертификатНаСервереОписаниеОшибки = Новый Структура;
|
||||
@@ -865,6 +959,10 @@
|
||||
Иначе
|
||||
Если Результат <> Неопределено Тогда
|
||||
Контекст.ОшибкаНаСервере = Результат.Ошибка;
|
||||
Если ВыполнятьНаСервере = Истина Тогда
|
||||
ЗашифроватьДанныеПослеВыполненияНаСторонеКлиента(Новый Структура, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Попытка подписания на клиенте.
|
||||
@@ -1103,4 +1201,65 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьОсновнойСертификат()
|
||||
|
||||
Результат = Неопределено;
|
||||
Если УказанНеизменяемыйНаборСертификатов Тогда
|
||||
Если СертификатыШифрования.Количество() > 0 Тогда
|
||||
Результат = СертификатыШифрования[0].Сертификат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Результат = Сертификат;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработкаКоманды(Команда)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаКоманды(ЭтотОбъект, Команда, ОписаниеДанных, "");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеПриИзменении(Элемент)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеПриИзменении(ЭтотОбъект, Элемент, ОписаниеДанных, "");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеОбработчикОжидания()
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеОбработкаОжидания(ЭтотОбъект, ОписаниеДанных, "");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
//@skip-warning
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПодтверждениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
|
||||
МодульСервисКриптографииDSSПодтверждениеКлиент.ПодтверждениеНачалоВыбора(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1,7 +1,7 @@
|
||||
<!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>Предназначен для управления <a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаВыбора/Help">сертификатами</a> ключей электронной подписи и шифрования.</p>
|
||||
<p>Электронная подпись - реквизит любого электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для подписи необходимо иметь <a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">сертификат</a> ключа электронной подписи. Сертификат ключа электронной подписи можно получить с помощью криптографических сервисов (провайдеров) или операционной системы.</p>
|
||||
<p>Контроль неизменности электронного документа осуществляется в результате проверки соответствия электронной подписи документа и сертификата ключа электронной подписи. Если электронная подпись соответствует сертификату, то это является гарантией того, что документ не был изменен кем-либо с момента его подписания. Контроль неизменности электронного документа можно выполнить в любой момент времени.</p>
|
||||
<p>Электронная подпись - реквизит любого электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для подписи необходимо иметь <a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">сертификат</a> ключа электронной подписи. Сертификат ключа электронной подписи можно получить с помощью криптографических сервисов (провайдеров) или операционной системы.</p><p>
|
||||
Контроль неизменности электронного документа осуществляется в результате проверки соответствия электронной подписи документа и сертификата ключа электронной подписи. Если электронная подпись соответствует сертификату, то это является гарантией того, что документ не был изменен кем-либо с момента его подписания. Контроль неизменности электронного документа можно выполнить в любой момент времени.</p>
|
||||
<p>С помощью электронной подписи можно:</p>
|
||||
<ul><li>Подписывать объекты программы (например, поля <strong>Наименование</strong> и <strong>Краткое содержание</strong>);
|
||||
</li>
|
||||
|
||||
@@ -16,6 +16,26 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
|
||||
|
||||
Если ДанныеЗаполнения = Неопределено Тогда
|
||||
Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Программа = Неопределено Тогда
|
||||
Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Иначе
|
||||
|
||||
BIN
Binary file not shown.
+43
-1
@@ -396,7 +396,7 @@
|
||||
<value>Программа</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.ПрограммыЭлектроннойПодписиИШифрования</types>
|
||||
<types>DefinedType.ПрограммаЭлектроннойПодписи</types>
|
||||
</type>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
@@ -564,6 +564,39 @@
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<tabularSections uuid="0c38782c-6559-4f1c-88af-aa022285ffbd">
|
||||
<producedTypes>
|
||||
<objectType typeId="464fa35c-8333-4de7-8117-367e4fc712d4" valueTypeId="4b79bd44-b8f3-4214-9e85-23ace383f6d7"/>
|
||||
<rowType typeId="65d6beae-74b4-420b-927a-5b062b4c89e9" valueTypeId="4bbbef85-6048-43a6-b721-3f703b569ee0"/>
|
||||
</producedTypes>
|
||||
<name>Пользователи</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Пользователи</value>
|
||||
</synonym>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>LineNumber</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<attributes uuid="eed23203-924d-4092-a1a8-a7cdd72489e5">
|
||||
<name>Пользователь</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Пользователь</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.Пользователи</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
</attributes>
|
||||
</tabularSections>
|
||||
<forms uuid="b0deb957-624b-4bcb-824c-76aedf1affe9">
|
||||
<name>ФормаЭлемента</name>
|
||||
<synonym>
|
||||
@@ -716,6 +749,15 @@
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<forms uuid="3fa9aa34-382c-49fa-87d8-34bedcde5836">
|
||||
<name>СписокПользователей</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Список пользователей</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
|
||||
<name>КомпонентаXMLDSIG</name>
|
||||
<synonym>
|
||||
|
||||
@@ -32,22 +32,22 @@
|
||||
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "ФормаНапечатана";
|
||||
Элемент.Наименование = НСтр("ru='Форма напечатана'",ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Описание = НСтр("ru='Состояние, означающее, что печатная форма только печаталась.'") ;
|
||||
Элемент.Наименование = НСтр("ru='Форма напечатана'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Описание = НСтр("ru='Состояние, означающее, что печатная форма только печаталась.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Код = "000000001";
|
||||
Элемент.РеквизитДопУпорядочивания = "1";
|
||||
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "ОригиналыНеВсе";
|
||||
Элемент.Наименование = НСтр("ru='Оригиналы не все'",ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Описание = НСтр("ru='Общее состояние для документа, у которого оригиналы печатных форм находятся в разных состояниях.'");
|
||||
Элемент.Наименование = НСтр("ru='Оригиналы не все'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Описание = НСтр("ru='Общее состояние для документа, у которого оригиналы печатных форм находятся в разных состояниях.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Код = "000000002";
|
||||
Элемент.РеквизитДопУпорядочивания = "99998";
|
||||
|
||||
Элемент = Элементы.Добавить();
|
||||
Элемент.ИмяПредопределенныхДанных = "ОригиналПолучен";
|
||||
Элемент.Наименование = НСтр("ru='Оригинал получен'",ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Описание = НСтр("ru='Состояние, означающее, что подписанный оригинал печатной формы есть в наличии.'");
|
||||
Элемент.Наименование = НСтр("ru='Оригинал получен'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Описание = НСтр("ru='Состояние, означающее, что подписанный оригинал печатной формы есть в наличии.'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
Элемент.Код = "000000003";
|
||||
Элемент.РеквизитДопУпорядочивания = "99999";
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
// * НаименованиеПолное - Строка
|
||||
// * КодАльфа2 - Строка
|
||||
// * КодАльфа3 - Строка
|
||||
// * Ссылка - СправочникаСсылка.СтраныМира
|
||||
// * Ссылка - СправочникСсылка.СтраныМира
|
||||
// Неопределено - страна не существует.
|
||||
//
|
||||
Функция ДанныеСтраныМира(Знач КодСтраны = Неопределено, Знач Наименование = Неопределено) Экспорт
|
||||
@@ -245,9 +245,27 @@
|
||||
ДанныеКлассификатора = УправлениеКонтактнойИнформацией.ДанныеКлассификатораСтранМираПоКоду(СтранаМираСсылка.Ссылка.Код);
|
||||
|
||||
Если ДанныеКлассификатора <> Неопределено Тогда
|
||||
|
||||
Блокировка = Новый БлокировкаДанных();
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.СтраныМира");
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", СтранаМираСсылка.Ссылка);
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
СтранаМира = СтранаМираСсылка.Ссылка.ПолучитьОбъект();
|
||||
ЗаполнитьЗначенияСвойств(СтранаМира, ДанныеКлассификатора);
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(СтранаМира);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
Иначе
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(СтранаМираСсылка.Ссылка);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.9600.17239"></meta></head><body>
|
||||
<p>Основное назначение сценария - это выполнение <a href="CommonForm.СинхронизацияДанных/Help">синхронизации данных</a> автоматически по заданному расписанию. Сценарий необходим для задания расписания и порядка отправки и получения данных. </p>
|
||||
<p>Основное назначение сценария - это выполнение <a href="CommonForm.НастройкиСинхронизацииДанных/Help">синхронизации данных</a> автоматически по заданному расписанию. Сценарий необходим для задания расписания и порядка отправки и получения данных. </p>
|
||||
<p>Не рекомендуется выполнять только отправку данных или только получение данных, хотя сценарий позволяет это сделать. Рекомендуется выполнять полноценную синхронизацию данных в одном сценарии.</p>
|
||||
<h3>Настройка сценария синхронизации</h3>
|
||||
<ul><li>Введите <strong>Наименование</strong> сценария. Необходимо указать наименования баз данных, участвующих в синхронизации, редакцию программы, для того чтобы все пользователи могли понять назначение данного сценария.
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<p>Настройка сценария синхронизации данных состоит из следующих этапов:</p>
|
||||
<ul><li>Настроить расписание выполнения сценария синхронизации данных.
|
||||
</li><li>Выбрать информационные базы, для которых будет выполняться сценарий синхронизации данных.
|
||||
</li><li>Для каждой информационной базы выбрать способ подключения и выполняемое действие (отправка или получение).</li></ul></li><li>После того как настроен сценарий синхронизации данных, около <a href="CommonForm.СинхронизацияДанных/Help">настройки синхронизации данных</a> в списке появляется значок <img src="StdPicture.ScheduledJob" width="16" height="16"></img>. Синхронизация данных производится по расписанию с помощью <a href="DataProcessor.РегламентныеИФоновыеЗадания/Help">регламентного задания</a>.</li></ul><h3>Включение выгрузки и загрузки данных</h3>
|
||||
</li><li>Для каждой информационной базы выбрать способ подключения и выполняемое действие (отправка или получение).</li></ul></li><li>После того как настроен сценарий синхронизации данных, около <a href="CommonForm.НастройкиСинхронизацииДанных/Help">настройки синхронизации данных</a> в списке появляется значок <img src="StdPicture.ScheduledJob" width="16" height="16"></img>. Синхронизация данных производится по расписанию с помощью <a href="DataProcessor.РегламентныеИФоновыеЗадания/Help">регламентного задания</a>.</li></ul><h3>Включение выгрузки и загрузки данных</h3>
|
||||
<ul><li>
|
||||
<div>С помощью выпадающего меню <strong>Включить/Отключить</strong> можно управлять выгрузкой и загрузкой данных.</div>
|
||||
</li><li>
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УдалитьФайлНаКлиенте(ПутьКФайлу, ДополнительныеПараметры) Экспорт
|
||||
Процедура УдалитьФайлНаКлиенте(ПутьКФайлу, ДополнительныеПараметры)
|
||||
Результат = УдалитьФайл(ПутьКФайлу);
|
||||
Если Результат.Успешно Тогда
|
||||
ОбработатьУдалениеОчередногоФайлаЗавершение(ДополнительныеПараметры);
|
||||
@@ -310,7 +310,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработатьУдалениеОчередногоФайлаЗавершение(ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработатьУдалениеОчередногоФайлаЗавершение(ДополнительныеПараметры)
|
||||
|
||||
ОбработатьОчереднойФайлЗавершение(ДополнительныеПараметры);
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body>
|
||||
<p style="margin-top: 0cm; background-position: initial initial; background-repeat: initial initial;"><span style="font-size: 7.5pt; font-family: Verdana;">Предназначен для управления подключением к
|
||||
сервисам облачной подписи. Для подключения к сервису необходимо указать данные </span><span lang="EN-US" style="font-size: 7.5pt; font-family: Verdana;">web</span><span style="font-size: 7.5pt; font-family: Verdana;">-адресов
|
||||
и параметров подключения к нему. Это информация указывается в отдельном
|
||||
справочнике <b>серверы облачной подписи</b>.
|
||||
<o:p></o:p></span></p>
|
||||
|
||||
<p class="MsoNormal" style="margin-bottom: 6pt; background-position: initial initial; background-repeat: initial initial;"><span style="font-size: 7.5pt; font-family: Verdana;"> Справочник позволяет менять сервис, к которому
|
||||
может подключаться пользователь, менять способы авторизации и дополнительную
|
||||
информацию необходимую для работы с сервисом облачной подписи<o:p></o:p></span></p>
|
||||
|
||||
|
||||
</body></html>
|
||||
@@ -0,0 +1,142 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2021, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ДляВызоваИзДругихПодсистем
|
||||
|
||||
// Возвращает реквизиты объекта, которые не рекомендуется редактировать
|
||||
// с помощью обработки группового изменения реквизитов.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - список имен реквизитов объекта.
|
||||
//
|
||||
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
НеРедактируемыеРеквизиты = Новый Массив;
|
||||
НеРедактируемыеРеквизиты.Добавить("Логин");
|
||||
|
||||
Возврат НеРедактируемыеРеквизиты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// СтандартныеПодсистемы.ВариантыОтчетов
|
||||
|
||||
// Определяет список команд отчетов.
|
||||
//
|
||||
// Параметры:
|
||||
// КомандыОтчетов - ТаблицаЗначений - таблица с командами отчетов. Для изменения.
|
||||
// См. описание 1 параметра процедуры ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов().
|
||||
// Параметры - Структура - вспомогательные параметры. Для чтения.
|
||||
// См. описание 2 параметра процедуры ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов().
|
||||
//
|
||||
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
|
||||
|
||||
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.СостояниеУчетнойЗаписиDSS) Тогда
|
||||
Команда = КомандыОтчетов.Добавить();
|
||||
Команда.Представление = НСтр("ru = 'Состояние учетной записи'");
|
||||
Команда.МножественныйВыбор = Ложь;
|
||||
Команда.Обработчик = "СервисКриптографииDSSКлиент.ПоказатьОтчетСостояниеУчетнойЗаписи";
|
||||
Команда.ИмяПараметраФормы = "УчетнаяЗапись";
|
||||
Команда.РежимЗаписи = "ЗаписыватьТолькоНовые";
|
||||
Команда.Менеджер = "Отчет.СостояниеУчетнойЗаписиDSS";
|
||||
Команда.РежимЗаписи = "Запись";
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ВариантыОтчетов
|
||||
|
||||
// СтандартныеПодсистемы.УправлениеДоступом
|
||||
|
||||
// Параметры:
|
||||
// Ограничение - см. УправлениеДоступомПереопределяемый.ПриЗаполненииОграниченияДоступа.Ограничение.
|
||||
//
|
||||
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
|
||||
|
||||
Ограничение.Текст =
|
||||
"РазрешитьЧтениеИзменение
|
||||
|ГДЕ
|
||||
| ЭтоАвторизованныйПользователь(Автор)";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.УправлениеДоступом
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
|
||||
|
||||
Если НЕ (ЭлектроннаяПодпись.ИспользоватьЭлектронныеПодписи() ИЛИ ЭлектроннаяПодпись.ИспользоватьШифрование()) Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВызватьИсключение НСтр("ru = 'Не включен режим использования электронной подписи'");
|
||||
|
||||
ИначеЕсли НЕ ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВызватьИсключение СервисКриптографииDSSСлужебный.ПолучитьОписаниеОшибки(Неопределено, "ПодсистемаОтключена");
|
||||
|
||||
ИначеЕсли ВидФормы = "ФормаОбъекта" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Если Параметры.Свойство("Ключ") Тогда
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.ФормаУчетнойЗаписи;
|
||||
Иначе
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.ФормаУчетнойЗаписи;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ВидФормы = "ФормаВыбора" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.ВыборУчетнойЗаписи;
|
||||
|
||||
ИначеЕсли ВидФормы = "ФормаСписка" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.СписокУчетныхЗаписей;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПолучитьДанныеСсылки(СсылкаСправочника) Экспорт
|
||||
|
||||
Результат = Новый Структура("Владелец, Логин");
|
||||
|
||||
Если НЕ СервисКриптографииDSSСлужебный.ПроверитьПраво("УчетныеЗаписиDSS") Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||
| УчетныеЗаписиDSS.Владелец КАК Владелец,
|
||||
| УчетныеЗаписиDSS.Логин КАК Логин,
|
||||
| УчетныеЗаписиDSS.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.УчетныеЗаписиDSS КАК УчетныеЗаписиDSS
|
||||
|ГДЕ
|
||||
| УчетныеЗаписиDSS.Ссылка = &СсылкаСправочника";
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Запрос.УстановитьПараметр("СсылкаСправочника", СсылкаСправочника);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Если Выборка.Следующий() Тогда
|
||||
ЗаполнитьЗначенияСвойств(Результат, Выборка);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2021, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ДляВызоваИзДругихПодсистем
|
||||
|
||||
// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
|
||||
|
||||
// Возвращает реквизиты объекта, которые не рекомендуется редактировать
|
||||
// с помощью обработки группового изменения реквизитов.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - список имен реквизитов объекта.
|
||||
//
|
||||
Функция РеквизитыНеРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
НеРедактируемыеРеквизиты = Новый Массив;
|
||||
НеРедактируемыеРеквизиты.Добавить("Логин");
|
||||
НеРедактируемыеРеквизиты.Добавить("Автор");
|
||||
|
||||
Возврат НеРедактируемыеРеквизиты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Наименование = СокрЛП(Логин) + " на " + СокрЛП(Владелец);
|
||||
|
||||
Если НЕ ЭтоНовый() И НЕ Отказ Тогда
|
||||
ДанныеСсылки = Справочники.УчетныеЗаписиDSS.ПолучитьДанныеСсылки(Ссылка);
|
||||
|
||||
Если ДанныеСсылки.Владелец <> Владелец
|
||||
ИЛИ ДанныеСсылки.Логин <> Логин Тогда
|
||||
СервисКриптографииDSSСлужебный.ОчиститьСписокСертификатов(Ссылка);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриКопировании(ОбъектКопирования)
|
||||
|
||||
Логин = "";
|
||||
ПервичнаяАутентификация = Неопределено;
|
||||
СостояниеЗаявления = Перечисления.СостоянияЗаявленияУчетнойЗаписиDSS.НеПодготовлено;
|
||||
СодержаниеЗаявления = Неопределено;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
|
||||
|
||||
КлючиПроверки = СервисКриптографииDSSСлужебный.КлючиУникальностиСправочника("УчетныеЗаписиDSS");
|
||||
Если ЗначениеЗаполнено(КлючиПроверки) Тогда
|
||||
ДанныеКлюча = Новый Структура(КлючиПроверки);
|
||||
ЗаполнитьЗначенияСвойств(ДанныеКлюча, ЭтотОбъект);
|
||||
НашлиДубль = СервисКриптографииDSSСлужебный.ПроверитьДублированиеЛогинов(Ссылка, ДанныеКлюча);
|
||||
Если ЗначениеЗаполнено(НашлиДубль) Тогда
|
||||
ТекстСообщения = НСтр("ru = 'Обнаружена дублирующая запись в справочнике Учетные записи DSS:'") + " " + Логин;
|
||||
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Логин", "Объект", Отказ);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
|
||||
|
||||
Если ТипЗнч(ДанныеЗаполнения) = Тип("СправочникСсылка.ЭкземплярыСервераDSS") Тогда
|
||||
Владелец = ДанныеЗаполнения;
|
||||
КонецЕсли;
|
||||
|
||||
Автор = Пользователи.ТекущийПользователь();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Иначе
|
||||
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
|
||||
#КонецЕсли
|
||||
@@ -0,0 +1,255 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="440ecfe8-72fd-447b-8680-c4a8c43f2c72">
|
||||
<producedTypes>
|
||||
<objectType typeId="d6fb0b00-7d33-4234-a568-8dd02500dbca" valueTypeId="f2f67d5e-248d-4391-9dc8-78eb18ad4306"/>
|
||||
<refType typeId="91a4166a-f631-4402-902c-39617772e34f" valueTypeId="a7c2a238-46c4-450a-85f8-b3b59791ff9c"/>
|
||||
<selectionType typeId="9a519d3e-79d9-4a8f-90bc-e2967338138c" valueTypeId="e8dd002b-99c3-4818-85d0-0e31eceac672"/>
|
||||
<listType typeId="af286fdb-b2d4-40de-a1cc-581f997287df" valueTypeId="b8a98c40-dfa0-4a58-af8d-45cf7f18bd57"/>
|
||||
<managerType typeId="3eaa1dd7-f4f2-4bdf-bc93-8329a16629be" valueTypeId="372d4bae-328f-4e90-9775-56275dfdf1e4"/>
|
||||
</producedTypes>
|
||||
<name>УчетныеЗаписиDSS</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Учетные записи DSS</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Catalog.УчетныеЗаписиDSS.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>PredefinedDataName</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Predefined</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Ref</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>DeletionMark</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>IsFolder</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Owner</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Сервер</value>
|
||||
</synonym>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:ReferenceValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Parent</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Description</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Code</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<help>
|
||||
<pages>
|
||||
<lang>ru</lang>
|
||||
</pages>
|
||||
</help>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<objectPresentation>
|
||||
<key>ru</key>
|
||||
<value>Учетная запись облачной подписи</value>
|
||||
</objectPresentation>
|
||||
<listPresentation>
|
||||
<key>ru</key>
|
||||
<value>Учетные записи облачной подписи</value>
|
||||
</listPresentation>
|
||||
<levelCount>2</levelCount>
|
||||
<foldersOnTop>true</foldersOnTop>
|
||||
<owners>Catalog.ЭкземплярыСервераDSS</owners>
|
||||
<descriptionLength>100</descriptionLength>
|
||||
<codeType>String</codeType>
|
||||
<codeAllowedLength>Variable</codeAllowedLength>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
<attributes uuid="5afe3a0f-1bbc-4f04-87b3-f98d54b65a42">
|
||||
<name>Автор</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Автор</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.Пользователи</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="ee9e8f50-4d4f-43aa-99eb-cda2308c903e">
|
||||
<name>ВторичнаяАвторизация</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Вторичная авторизация</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>EnumRef.СпособыАвторизацииDSS</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="4ff043c1-6c0b-4889-a684-23da5a35b9c2">
|
||||
<name>ДополнительнаяИнформация</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Дополнительная информация</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="6fe56ecb-c969-4c03-8e6b-65395c29e817">
|
||||
<name>Комментарий</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Комментарий</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="48627a8d-b108-43b8-a58e-fd98e4220639">
|
||||
<name>Логин</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Логин</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>50</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="2a8eb62d-2795-48ab-ae02-68527996f411">
|
||||
<name>ПервичнаяАутентификация</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Первичная аутентификация</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>EnumRef.СпособыАвторизацииDSS</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="d3bf09be-0f21-4dc3-a525-1c4dc75928ea">
|
||||
<name>СодержаниеЗаявления</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Содержание заявления</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>ValueStorage</types>
|
||||
</type>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Содержит заявление, как оно была оформлено в момент создания закрытого ключа.</value>
|
||||
</toolTip>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="5ca880c5-7c34-4c31-a2b8-46265ddea7d4">
|
||||
<name>СостояниеЗаявления</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Состояние заявления</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>EnumRef.СостоянияЗаявленияУчетнойЗаписиDSS</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:ReferenceValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
</mdclass:Catalog>
|
||||
@@ -613,7 +613,8 @@
|
||||
Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда
|
||||
ПараметрыПриложения.Вставить(ИмяПараметра, Новый Массив);
|
||||
КонецЕсли;
|
||||
ПараметрыПриложения[ИмяПараметра].Добавить(ОписаниеОповещения);
|
||||
ОбработчикОжиданияПередЗаписьюВФорме = ПараметрыПриложения[ИмяПараметра]; // Массив
|
||||
ОбработчикОжиданияПередЗаписьюВФорме.Добавить(ОписаниеОповещения);
|
||||
|
||||
ПодключитьОбработчикОжидания("ВыполнитьПроверкуПередЗаписьюВФорме", 0.1, Истина);
|
||||
Возврат;
|
||||
|
||||
@@ -690,11 +690,6 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Печать файлов возможна только в Windows.'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВыделенныеСтроки = Элементы.Список.ВыделенныеСтроки;
|
||||
Если ВыделенныеСтроки.Количество() > 0 Тогда
|
||||
РаботаСФайламиКлиент.НапечататьФайлы(ВыделенныеСтроки, ЭтотОбъект.УникальныйИдентификатор);
|
||||
|
||||
@@ -834,13 +834,7 @@
|
||||
&НаКлиенте
|
||||
Процедура Печать(Команда)
|
||||
|
||||
Если Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Печать файлов возможна только в Windows.'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ЭтотОбъект.Объект.Ссылка)
|
||||
Или Записать() Тогда
|
||||
Если ЗначениеЗаполнено(ЭтотОбъект.Объект.Ссылка) Или Записать() Тогда
|
||||
Файлы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ЭтотОбъект.Объект.Ссылка);
|
||||
РаботаСФайламиКлиент.НапечататьФайлы(Файлы, ЭтотОбъект.УникальныйИдентификатор);
|
||||
КонецЕсли;
|
||||
@@ -1273,10 +1267,8 @@
|
||||
Модифицированность = Ложь;
|
||||
ОтобразитьИзменениеДанных(ЭтотОбъект.Объект.Ссылка, ВидИзмененияДанных.Изменение);
|
||||
ОповеститьОбИзменении(ЭтотОбъект.Объект.Ссылка);
|
||||
|
||||
Оповестить("Запись_Файл",
|
||||
Новый Структура("ЭтоНовый", ФайлБылСоздан),
|
||||
ЭтотОбъект.Объект.Ссылка);
|
||||
ОповеститьОбИзменении(ЭтотОбъект.Объект.ВладелецФайла);
|
||||
Оповестить("Запись_Файл", Новый Структура("ЭтоНовый", ФайлБылСоздан), ЭтотОбъект.Объект.Ссылка);
|
||||
|
||||
УстановитьДоступностьКомандСпискаЭП();
|
||||
УстановитьДоступностьКомандСпискаШифрования();
|
||||
|
||||
@@ -766,8 +766,7 @@
|
||||
// Очищает ответы и заполняет их вариантами ответов.
|
||||
//
|
||||
// Параметры:
|
||||
// ЭлементарныйВопрос - ПланВидовХарактеристик.ВопросыДляАнкетирования - вопрос для которого будут заполнены его
|
||||
// варианты ответов.
|
||||
// ЭлементарныйВопрос - ПланВидовХарактеристикСсылка.ВопросыДляАнкетирования.
|
||||
//
|
||||
&НаСервере
|
||||
Процедура ОчиститьЗаполнитьВариантыОтветов(ЭлементарныйВопрос)
|
||||
@@ -776,7 +775,7 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
НайденныеСтроки = Ответы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос",ЭлементарныйВопрос));
|
||||
НайденныеСтроки = Ответы.НайтиСтроки(Новый Структура("ЭлементарныйВопрос", ЭлементарныйВопрос));
|
||||
Для каждого НайденнаяСтрока Из НайденныеСтроки Цикл
|
||||
Ответы.Удалить(Ответы.Индекс(НайденнаяСтрока));
|
||||
КонецЦикла;
|
||||
|
||||
@@ -334,14 +334,14 @@
|
||||
Отказ = Истина;
|
||||
|
||||
СписокВыбора = Новый СписокЗначений;
|
||||
СписокВыбора.Добавить(НСтр("ru = 'Раздел'"));
|
||||
СписокВыбора.Добавить(НСтр("ru = 'Простой вопрос'"));
|
||||
СписокВыбора.Добавить(НСтр("ru = 'Комплексный вопрос'"));
|
||||
СписокВыбора.Добавить(НСтр("ru = 'Условный вопрос'"));
|
||||
СписокВыбора.Добавить(НСтр("ru = 'Табличный вопрос'"));
|
||||
СписокВыбора.Добавить("Раздел", НСтр("ru = 'Раздел'"));
|
||||
СписокВыбора.Добавить("Простой", НСтр("ru = 'Простой вопрос'"));
|
||||
СписокВыбора.Добавить("Комплексный", НСтр("ru = 'Комплексный вопрос'"));
|
||||
СписокВыбора.Добавить("Условный", НСтр("ru = 'Условный вопрос'"));
|
||||
СписокВыбора.Добавить("Табличный", НСтр("ru = 'Табличный вопрос'"));
|
||||
|
||||
ОбработчикОповещенияОЗакрытии = Новый ОписаниеОповещения("ВыборТипаДобавляемогоЭлементаПриЗавершении", ЭтотОбъект);
|
||||
СписокВыбора.ПоказатьВыборЭлемента(ОбработчикОповещенияОЗакрытии, НСтр("ru = 'Выберите тип добавляемого элемента.'"),СписокВыбора[0]);
|
||||
СписокВыбора.ПоказатьВыборЭлемента(ОбработчикОповещенияОЗакрытии, НСтр("ru = 'Выберите тип добавляемого элемента.'"), СписокВыбора[0]);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -579,10 +579,13 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Добавляет новую строку в дерево формы.
|
||||
// Родитель - СтрокаДереваАнкеты - элемент дерева значений формы, от которого отращивается новая ветка.
|
||||
// ТипСтроки - Строка - Тип строки дерева.
|
||||
//
|
||||
// Параметры:
|
||||
// Родитель - СтрокаДереваЗначений - элемент дерева значений формы, от которого отращивается новая ветка.
|
||||
// ТипСтроки - Строка - тип строки дерева.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - новая строка дерева.
|
||||
// Строка
|
||||
//
|
||||
&НаКлиенте
|
||||
Функция ДобавитьСтрокуДеревоАнкеты(Родитель,ТипСтроки,ТипВопроса = Неопределено)
|
||||
@@ -846,18 +849,18 @@
|
||||
// Добавляет вопрос в шаблон анкеты.
|
||||
//
|
||||
// Параметры:
|
||||
// ТекущиеДанные - ДанныеФормыЭлементДерева - данные текущей строки дерева.
|
||||
// ТипВопроса - Перечисления.ТипыВопросовШаблонаАнкет - тип добавляемого вопроса.
|
||||
// ТекущиеДанные - ДанныеФормыЭлементДерева.
|
||||
// ТипВопроса - ПеречислениеСсылка.ТипыВопросовШаблонаАнкеты.
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ДобавитьВопрос(ТекущиеДанные,ТипВопроса)
|
||||
Процедура ДобавитьВопрос(ТекущиеДанные, ТипВопроса)
|
||||
|
||||
Родитель = ПолучитьРодителяДеревоАнкеты(ТекущиеДанные,Ложь,ТипВопроса);
|
||||
Родитель = ПолучитьРодителяДеревоАнкеты(ТекущиеДанные, Ложь, ТипВопроса);
|
||||
Если Родитель.ТипСтроки = "Корень" Тогда
|
||||
ПоказатьПредупреждение(,НСтр("ru = 'Вопросы нельзя добавлять в корень анкеты.'"),15,НСтр("ru = 'Ошибка добавления'"));
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Вопросы нельзя добавлять в корень анкеты.'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ДобавитьСтрокуДеревоАнкеты(Родитель,"Вопрос",ТипВопроса);
|
||||
ДобавитьСтрокуДеревоАнкеты(Родитель, "Вопрос", ТипВопроса);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -995,23 +998,23 @@
|
||||
|
||||
Если НЕ ВыбранныйЭлемент = Неопределено Тогда
|
||||
|
||||
Если ВыбранныйЭлемент.Значение = НСтр("ru = 'Раздел'") Тогда
|
||||
Если ВыбранныйЭлемент.Значение = "Раздел" Тогда
|
||||
|
||||
ДобавитьРаздел(Команды.ДобавитьРаздел);
|
||||
|
||||
ИначеЕсли ВыбранныйЭлемент.Значение = НСтр("ru = 'Простой вопрос'") Тогда
|
||||
ИначеЕсли ВыбранныйЭлемент.Значение = "Простой" Тогда
|
||||
|
||||
ДобавитьПростойВопрос(Команды.ДобавитьПростойВопрос)
|
||||
|
||||
ИначеЕсли ВыбранныйЭлемент.Значение = НСтр("ru = 'Комплексный вопрос'") Тогда
|
||||
ИначеЕсли ВыбранныйЭлемент.Значение = "Комплексный" Тогда
|
||||
|
||||
ДобавитьКомплексныйВопрос(Команды.ДобавитьПростойВопрос)
|
||||
|
||||
ИначеЕсли ВыбранныйЭлемент.Значение = НСтр("ru = 'Условный вопрос'") Тогда
|
||||
ИначеЕсли ВыбранныйЭлемент.Значение = "Условный" Тогда
|
||||
|
||||
ДобавитьВопросСУсловием(Команды.ДобавитьВопросСУсловием)
|
||||
|
||||
ИначеЕсли ВыбранныйЭлемент.Значение = НСтр("ru = 'Табличный вопрос'") Тогда
|
||||
ИначеЕсли ВыбранныйЭлемент.Значение = "Табличный" Тогда
|
||||
|
||||
ДобавитьТабличныйВопрос(Команды.ДобавитьТабличныйВопрос);
|
||||
|
||||
|
||||
@@ -82,8 +82,10 @@
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
|
||||
Если ПоказыватьФормуВыбораШаблонов Тогда
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
|
||||
УстановитьВыборФормата();
|
||||
СформироватьПредставлениеВыбранныхФорматов();
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ПараметрыОтправки = КонструкторПараметровОтправки();
|
||||
ПараметрыОтправки.ДополнительныеПараметры.ПреобразовыватьHTMLДляФорматированногоДокумента = Ложь;
|
||||
@@ -116,7 +118,7 @@
|
||||
Если Элемент.ТекущиеДанные <> Неопределено Тогда
|
||||
ШаблонВыбран = Элемент.ТекущиеДанные.Имя <> "<БезШаблона>";
|
||||
Элементы.ФормаСформироватьИОтправить.Доступность = ШаблонВыбран;
|
||||
Если ШаблонВыбран Тогда
|
||||
Если ШаблонВыбран Или Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
|
||||
Если Элемент.ТекущиеДанные.ТипТекстаПисьма = ПредопределенноеЗначение("Перечисление.СпособыРедактированияЭлектронныхПисем.HTML") Тогда
|
||||
Элементы.СтраницыПредпросмотра.ТекущаяСтраница = Элементы.СтраницаФорматированныйДокумент;
|
||||
ПодключитьОбработчикОжидания("ОбновитьДанныеПредпросмотра", 0.2, Истина);
|
||||
|
||||
@@ -36,8 +36,7 @@
|
||||
Элементы.ФормаСоздатьШаблонСообщенияSMS.Видимость = Ложь;
|
||||
Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Заголовок = НСтр("ru='Создать'");
|
||||
ШаблонДля = ШаблоныСообщенийКлиентСервер.ИмяШаблонаЭлектронныхПисем();
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,
|
||||
"ШаблонДля", НСтр("ru = 'Электронного письма'"), ВидСравненияКомпоновкиДанных.Равно);
|
||||
УстановитьОтборВСпискеШаблонов(Список, ШаблонДля);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -49,8 +48,7 @@
|
||||
Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Видимость = Ложь;
|
||||
Элементы.ФормаСоздатьШаблонСообщенияSMS.Заголовок = НСтр("ru='Создать'");
|
||||
ШаблонДля = ШаблоныСообщенийКлиентСервер.ИмяШаблонаSMS();
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор,
|
||||
"ШаблонДля", НСтр("ru = 'Сообщения SMS'"), ВидСравненияКомпоновкиДанных.Равно);
|
||||
УстановитьОтборВСпискеШаблонов(Список, ШаблонДля);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -76,7 +74,7 @@
|
||||
&НаКлиенте
|
||||
Процедура ШаблонДляФильтрОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
|
||||
|
||||
УстановитьОтборВСпискеШаблонов(ВыбранноеЗначение);
|
||||
УстановитьОтборВСпискеШаблонов(Список, ВыбранноеЗначение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -160,15 +158,18 @@
|
||||
ОткрытьФорму("Справочник.ШаблоныСообщений.ФормаОбъекта", ПараметрыФормы, ЭтотОбъект);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьОтборВСпискеШаблонов(Знач ВыбранноеЗначение)
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Процедура УстановитьОтборВСпискеШаблонов(Список, Знач ЗначениеОтбора)
|
||||
|
||||
Если ВыбранноеЗначение = ШаблоныСообщенийКлиентСервер.ИмяШаблонаSMS() Тогда
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ШаблонДля", НСтр("ru = 'Сообщения SMS'"), ВидСравненияКомпоновкиДанных.Равно);
|
||||
ИначеЕсли ВыбранноеЗначение = ШаблоныСообщенийКлиентСервер.ИмяШаблонаЭлектронныхПисем() Тогда
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ШаблонДля", НСтр("ru = 'Электронного письма'"), ВидСравненияКомпоновкиДанных.Равно);
|
||||
Если ЗначениеОтбора = ШаблоныСообщенийКлиентСервер.ИмяШаблонаSMS() Тогда
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ПредназначенДляSMS", Истина, ВидСравненияКомпоновкиДанных.Равно);
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ПредназначенДляЭлектронныхПисем", Ложь, ВидСравненияКомпоновкиДанных.Равно);
|
||||
ИначеЕсли ЗначениеОтбора = ШаблоныСообщенийКлиентСервер.ИмяШаблонаЭлектронныхПисем() Тогда
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ПредназначенДляSMS", Ложь, ВидСравненияКомпоновкиДанных.Равно);
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ПредназначенДляЭлектронныхПисем", Истина, ВидСравненияКомпоновкиДанных.Равно);
|
||||
Иначе
|
||||
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "ШаблонДля");
|
||||
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "ПредназначенДляSMS");
|
||||
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "ПредназначенДляЭлектронныхПисем");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1662,7 +1662,8 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Ссылка - ДокументСсылка - ссылка на владельца присоединенных файлов.
|
||||
// ТипТекстаПисьма - Перечисление.СпособыРедактированияЭлектронныхПисем - для определения необходимости выполнения преобразований.
|
||||
// ТипТекстаПисьма - ПеречислениеСсылка.СпособыРедактированияЭлектронныхПисем - для определения необходимости
|
||||
// выполнения преобразований.
|
||||
// ТаблицаСоответствийИменВложенийИдентификаторам - ТаблицаЗначений - позволяет определить какому вложению
|
||||
// соответствует какая картинка.
|
||||
// УникальныйИдентификатор - УникальныйИдентификатор - уникальный идентификатор формы из которого выполняется сохранение.
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body>
|
||||
<p style="margin-top: 0cm; background-position: initial initial; background-repeat: initial initial;"><span style="font-size: 7.5pt; font-family: Verdana;">Предназначен для хранения настроек подключения
|
||||
к сервисам облачной подписи (КриптоПро </span><span lang="EN-US" style="font-size: 7.5pt; font-family: Verdana;">DSS</span><span style="font-size: 7.5pt; font-family: Verdana;">)<o:p></o:p></span></p>
|
||||
|
||||
<p style="margin-top: 0cm; background-position: initial initial; background-repeat: initial initial;"><span style="font-size: 7.5pt; font-family: Verdana;"> Сервис
|
||||
облачной подписи – это сервис на базе КриптоПро </span><span lang="EN-US" style="font-size: 7.5pt; font-family: Verdana;">DSS</span><span style="font-size: 7.5pt; font-family: Verdana;"> предоставляемый
|
||||
провайдером. Данный сервис позволяет хранить сертификаты и закрытые ключи к ним
|
||||
в «Облаке». С помощью «облачных» сертификатов пользователь может задействовать функции
|
||||
подписания, шифрования, расшифровки данных практически с любого компьютера. Для
|
||||
использования этого функционала не требуется установки криптопровайдеров и
|
||||
сертификатов на локальный компьютер, достаточно предоставить данные для
|
||||
авторизации на настроенном сервисе.<o:p></o:p></span></p>
|
||||
|
||||
<p class="MsoNormal" style="margin-bottom: 6pt; background-position: initial initial; background-repeat: initial initial;"><span style="font-size: 7.5pt; font-family: Verdana;"> К каждому серверу облачной подписи
|
||||
привязываются реестр учетных записей этого сервиса, указываемые в справочнике
|
||||
«Учетные записи облачной подписи»<o:p></o:p></span></p>
|
||||
|
||||
<p class="MsoNormal"><o:p> </o:p></p>
|
||||
|
||||
|
||||
</body></html>
|
||||
@@ -0,0 +1,87 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2021, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Область ДляВызоваИзДругихПодсистем
|
||||
|
||||
// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
|
||||
|
||||
// Возвращает реквизиты объекта, которые разрешается редактировать
|
||||
// с помощью обработки группового изменения реквизитов.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив - список имен реквизитов объекта.
|
||||
//
|
||||
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
РедактируемыеРеквизиты = Новый Массив;
|
||||
|
||||
Возврат РедактируемыеРеквизиты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
|
||||
|
||||
// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
|
||||
|
||||
// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из Строка - массив имен реквизитов, образующих естественный ключ.
|
||||
//
|
||||
Функция ПоляЕстественногоКлюча() Экспорт
|
||||
|
||||
Результат = Новый Массив;
|
||||
Результат.Добавить("АдресСервера");
|
||||
Результат.Добавить("ИдентификаторЦИ");
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Конец ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
|
||||
|
||||
Если НЕ (ЭлектроннаяПодпись.ИспользоватьЭлектронныеПодписи() ИЛИ ЭлектроннаяПодпись.ИспользоватьШифрование()) Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВызватьИсключение НСтр("ru = 'Не включен режим использования электронной подписи'");
|
||||
|
||||
ИначеЕсли НЕ ЭлектроннаяПодписьСлужебный.ИспользоватьСервисОблачнойПодписи() Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВызватьИсключение СервисКриптографииDSSСлужебный.ПолучитьОписаниеОшибки(Неопределено, "ПодсистемаОтключена");
|
||||
|
||||
ИначеЕсли ВидФормы = "ФормаОбъекта" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.ФормаЭкземпляраСервераDSS;
|
||||
|
||||
ИначеЕсли ВидФормы = "ФормаВыбора" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.ВыборЭкземпляровСервераDSS;
|
||||
|
||||
ИначеЕсли ВидФормы = "ФормаСписка" Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ВыбраннаяФорма = Метаданные.Обработки.УправлениеПодключениемDSS.Формы.СписокЭкземпляровСервераDSS;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2021, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ПриКопировании(ОбъектКопирования)
|
||||
|
||||
ВнутреннийИдентификатор = "";
|
||||
ИдентификаторЦИ = "";
|
||||
Используется = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ВнутреннийИдентификатор)
|
||||
И НЕ ДополнительныеСвойства.Свойство("ПоставляемыеДанные") Тогда
|
||||
ТекстСообщения = НСтр("ru = 'Поставляемые серверы облачной подписи предназначены для программного изменения.'");
|
||||
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "АдресСервера", "Объект", Отказ);
|
||||
Отказ = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(Наименование) Тогда
|
||||
Наименование = СокрЛП(АдресСервера);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
|
||||
|
||||
КлючиПроверки = СервисКриптографииDSSСлужебный.КлючиУникальностиСправочника("ЭкземплярыСервераDSS");
|
||||
Если ЗначениеЗаполнено(КлючиПроверки)
|
||||
И НЕ ДополнительныеСвойства.Свойство("ПоставляемыеДанные") Тогда
|
||||
ДанныеКлюча = Новый Структура(КлючиПроверки);
|
||||
ЗаполнитьЗначенияСвойств(ДанныеКлюча, ЭтотОбъект);
|
||||
ЕстьПовтор = СервисКриптографииDSSСлужебный.ПроверитьДублированиеСерверов(Ссылка, ДанныеКлюча);
|
||||
Если ЗначениеЗаполнено(ЕстьПовтор) Тогда
|
||||
ТекстСообщения = НСтр("ru = 'Обнаружена дублирующая запись в справочнике Экземпляры сервера DSS:'") + " " + АдресСервера;
|
||||
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "АдресСервера", "Объект");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ИдВерсии = СервисКриптографииDSSКлиентСервер.ИдентификаторВерсииСервера(ВерсияАПИ);
|
||||
|
||||
Если ИдВерсии > 1 Тогда
|
||||
ПроверяемыеРеквизиты.Добавить("СервисАудита");
|
||||
ПроверяемыеРеквизиты.Добавить("СервисОбработкиДокументов");
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
|
||||
|
||||
ВсеВерсии = СервисКриптографииDSSКлиентСервер.ПоддерживаемыеВерсии();
|
||||
|
||||
ТаймАут = 120;
|
||||
ВерсияАПИ = ВсеВерсии[0];
|
||||
Используется = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Иначе
|
||||
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
|
||||
#КонецЕсли
|
||||
@@ -0,0 +1,429 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="041c364f-0498-494f-9e41-82cb416c0862">
|
||||
<producedTypes>
|
||||
<objectType typeId="a666d2bd-cbc7-42c9-8f91-eeceb502e963" valueTypeId="b4913d26-b034-48fb-a4e5-bb92510d37bd"/>
|
||||
<refType typeId="9b8af6f5-16d4-48ae-bc48-ac3c96b54e7a" valueTypeId="c74a9bd3-58c3-4ac5-9778-c8f04c55f016"/>
|
||||
<selectionType typeId="04105697-bbcf-4ff7-9b47-3251fdfb87f3" valueTypeId="22ab47dd-bc12-4133-8e73-100fcf9e5635"/>
|
||||
<listType typeId="444d4508-9130-42a1-91a3-65cd4fa0fe0f" valueTypeId="06ee5bfe-1f2b-4d4d-b268-1b17a3b347cb"/>
|
||||
<managerType typeId="56c20dae-daa1-4bcf-a409-6590e8221e4c" valueTypeId="8ae876a1-e3bf-4e57-9639-4e1cdc6a17df"/>
|
||||
</producedTypes>
|
||||
<name>ЭкземплярыСервераDSS</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Экземпляры сервера DSS</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Catalog.ЭкземплярыСервераDSS.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>PredefinedDataName</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Predefined</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Ref</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>DeletionMark</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>IsFolder</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Owner</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Parent</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Description</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Code</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<help>
|
||||
<pages>
|
||||
<lang>ru</lang>
|
||||
</pages>
|
||||
</help>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<objectPresentation>
|
||||
<key>ru</key>
|
||||
<value>Сервер облачной подписи</value>
|
||||
</objectPresentation>
|
||||
<listPresentation>
|
||||
<key>ru</key>
|
||||
<value>Серверы облачной подписи</value>
|
||||
</listPresentation>
|
||||
<levelCount>2</levelCount>
|
||||
<foldersOnTop>true</foldersOnTop>
|
||||
<descriptionLength>100</descriptionLength>
|
||||
<codeType>String</codeType>
|
||||
<codeAllowedLength>Variable</codeAllowedLength>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
<attributes uuid="913830c8-da01-4b7e-9d83-d406c2fefd49">
|
||||
<name>АдресСервера</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Адрес сервера</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>200</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="ca8c4c19-9f92-45a7-b5bd-1ae06e3c9171">
|
||||
<name>ТаймАут</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Тайм-аут (сек.)</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>4</precision>
|
||||
<nonNegative>true</nonNegative>
|
||||
</numberQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:NumberValue">
|
||||
<value>0</value>
|
||||
</fillValue>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="9f1c8979-2b3d-4a96-af6c-4577541696a3">
|
||||
<name>ШаблонПодтверждения</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Шаблон подтверждения</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>30</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="5adaafcf-3d67-418d-b47d-d0d8c65f1f46">
|
||||
<name>ИдентификаторЦИ</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Идентификатор ЦИ (центр идентификации)</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>50</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="8a0f16a1-63c4-4ea4-a2f1-7b08e75efbd5">
|
||||
<name>ИдентификаторСЭП</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Идентификатор СЭП</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>100</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="f68ec923-89c8-4c83-80a2-2d5e096dbbd8">
|
||||
<name>СервисАудита</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Сервис аудита</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>250</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="f278bdf8-543a-4427-b2f1-3670c61502ae">
|
||||
<name>СервисИдентификации</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Сервис идентификации</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>250</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="00ce0cd2-9840-49a0-b9df-dc64becd3e65">
|
||||
<name>СервисОбработкиДокументов</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Сервис обработки документов</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>250</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="db6f11c0-8530-43c1-811a-48797be89ec1">
|
||||
<name>СервисПодписи</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Сервис подписи</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>250</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="c2782a2b-f910-4d4d-ba1b-49ef7854bae0">
|
||||
<name>СервисПроверки</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Сервис проверки</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>200</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="293cda8c-1cc8-42c0-a68f-d22163aed4f1">
|
||||
<name>ВерсияАПИ</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Версия</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>10</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="5e48841c-0a65-457f-8952-fa97aae3207d">
|
||||
<name>Комментарий</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Комментарий</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="ee0275e4-a497-4623-9d2f-6308ea2e70ca">
|
||||
<name>Используется</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Используется</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Boolean</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:BooleanValue">
|
||||
<value>true</value>
|
||||
</fillValue>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="ec37d236-db36-44ef-afc2-267af1f40c1f">
|
||||
<name>АдресЛичногоКабинета</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Адрес личного кабинета</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>250</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="d835f08d-79c6-4e79-a7c1-f00dc05778b9">
|
||||
<name>ВнутреннийИдентификатор</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Внутренний идентификатор</value>
|
||||
</synonym>
|
||||
<comment>Данное поле заполняется программно, элементы с заполненным полем блокируются от изменения.</comment>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>40</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:StringValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<tabularSections uuid="32371dfd-c890-4bed-bd68-45db299c9caf">
|
||||
<producedTypes>
|
||||
<objectType typeId="40e49de1-d27b-4527-ad71-1e0f9f805cdd" valueTypeId="830a0cab-0cce-4d68-869e-8038548ffd48"/>
|
||||
<rowType typeId="66dedd9a-95bc-445e-8af0-10105db60300" valueTypeId="d4189e92-2fb9-4d06-91fd-68a3cc0d255d"/>
|
||||
</producedTypes>
|
||||
<name>ОграничениеАвторизации</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Ограничение авторизации</value>
|
||||
</synonym>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>LineNumber</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<attributes uuid="eeb298cf-8df3-41fe-bb48-9c83a24a8206">
|
||||
<name>СпособАвторизации</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Способ авторизации</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>EnumRef.СпособыАвторизацииDSS</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
</attributes>
|
||||
</tabularSections>
|
||||
</mdclass:Catalog>
|
||||
@@ -440,28 +440,6 @@
|
||||
</picture>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>Группа1</name>
|
||||
<id>24</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>Группа1РасширеннаяПодсказка</name>
|
||||
<id>25</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<extInfo xsi:type="form:ButtonGroupExtInfo">
|
||||
<commandSource>Form</commandSource>
|
||||
</extInfo>
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
Если Не ЗначениеЗаполнено(Справочники.ЯзыкиПечатныхФорм.НайтиПоКоду(КодЯзыка)) Тогда
|
||||
Язык = Справочники.ЯзыкиПечатныхФорм.СоздатьЭлемент();
|
||||
Язык.Код = КодЯзыка;
|
||||
Язык.Записать();
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Язык);
|
||||
КонецЕсли;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<key>ru</key>
|
||||
<value>Языки печатных форм</value>
|
||||
</synonym>
|
||||
<comment>АПК:1206</comment>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Catalog.ЯзыкиПечатныхФорм.StandardAttribute.Code</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
@@ -124,6 +125,7 @@
|
||||
<key>ru</key>
|
||||
<value>Порядок</value>
|
||||
</synonym>
|
||||
<comment>АПК:58</comment>
|
||||
<type>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
|
||||
@@ -626,6 +626,10 @@
|
||||
<metadata>ScheduledJob.СинхронизацияДанных</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>Constant.ЗагрузитьРасширенияИзменяющиеСтруктуруДанных</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>Constant.ДополнительныйЯзык1</metadata>
|
||||
<use>DontUse</use>
|
||||
|
||||
@@ -41,8 +41,29 @@
|
||||
Отбор = Новый Структура("Корреспондент", Корреспондент);
|
||||
ЗначенияЗаполнения = Новый Структура("Корреспондент", Корреспондент);
|
||||
|
||||
РезультатПроверки = ЭтоОбменВРежимеСервисаЧерезWS(Корреспондент);
|
||||
Если РезультатПроверки.РазделениеВключено Тогда
|
||||
|
||||
Если РезультатПроверки.ВидТранспортаПоУмолчанию = ПредопределенноеЗначение("Перечисление.ВидыТранспортаСообщенийОбмена.WS")
|
||||
Или РезультатПроверки.ВидТранспортаПоУмолчанию = ПредопределенноеЗначение("Перечисление.ВидыТранспортаСообщенийОбмена.WSПассивныйРежим") Тогда
|
||||
|
||||
РазрешенныеНастройкиТранспорта = Новый Массив;
|
||||
РазрешенныеНастройкиТранспорта.Добавить(РезультатПроверки.ВидТранспортаПоУмолчанию);
|
||||
|
||||
ПараметрыОткрытияФормы = Новый Структура;
|
||||
ПараметрыОткрытияФормы.Вставить("РазрешенныеНастройкиТранспорта", РазрешенныеНастройкиТранспорта);
|
||||
|
||||
Иначе
|
||||
|
||||
ТекстИсключения = НСтр("ru ='Настройка транспорта сообщений в режиме сервиса актуальна только для синхронизаций использующих ВЕБ-сервисы'");
|
||||
ВызватьИсключение ТекстИсключения;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОбменДаннымиКлиент.ОткрытьФормуЗаписиРегистраСведенийПоОтбору(Отбор,
|
||||
ЗначенияЗаполнения, "НастройкиТранспортаОбменаДанными", ПараметрыВыполненияКоманды.Источник);
|
||||
ЗначенияЗаполнения, "НастройкиТранспортаОбменаДанными", ПараметрыВыполненияКоманды.Источник, , ПараметрыОткрытияФормы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -57,4 +78,14 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ЭтоОбменВРежимеСервисаЧерезWS(Корреспондент)
|
||||
|
||||
РезультатПроверки = Новый Структура;
|
||||
РезультатПроверки.Вставить("РазделениеВключено", ОбщегоНазначения.РазделениеВключено());
|
||||
РезультатПроверки.Вставить("ВидТранспортаПоУмолчанию", РегистрыСведений.НастройкиТранспортаОбменаДанными.ВидТранспортаСообщенийОбменаПоУмолчанию(Корреспондент));
|
||||
|
||||
Возврат РезультатПроверки;
|
||||
|
||||
КонецФункции
|
||||
#КонецОбласти
|
||||
@@ -11,7 +11,10 @@
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.СинхронизацияДанных");
|
||||
ОткрытьФорму("ОбщаяФорма.НастройкиСинхронизацииДанных",,
|
||||
ПараметрыВыполненияКоманды.Источник,
|
||||
ПараметрыВыполненияКоманды.Уникальность,
|
||||
ПараметрыВыполненияКоманды.Окно);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
Loaded 100 of 910 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user