Криптография при создании формы на сервере. Управляет видимостью элементов и команд в зависимости от наличия и
// Управляет видимостью элементов и команд в зависимости от наличия и
// использования электронной подписи и шифрования.
//
Процедура КриптографияПриСозданииФормыНаСервере(Форма, ЭтоФормаСписка = Истина, ТолькоКартинкаСтрок = Ложь) Экспорт
Элементы = Форма.Элементы;
ЭлектронноеПодписание = Ложь;
Шифрование = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
Если МодульЭлектроннаяПодписьСлужебный.ИспользоватьИнтерактивноеДобавлениеЭлектронныхПодписейИШифрование() Тогда
МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
ЭлектронноеПодписание = МодульЭлектроннаяПодпись.ИспользоватьЭлектронныеПодписи();
Шифрование = МодульЭлектроннаяПодпись.ИспользоватьШифрование();
КонецЕсли;
КонецЕсли;
Если ЭтоФормаСписка Тогда
Если ОбщегоНазначения.ЭтоСправочник(Метаданные.НайтиПоПолномуИмени(Форма.Список.ОсновнаяТаблица)) Тогда
ТаблицаФайлов = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(Форма.Список.ОсновнаяТаблица);
Доступна = ДоступнаЭлектроннаяПодпись(ТипЗнч(ТаблицаФайлов.ПустаяСсылка()));
Иначе
Доступна = Истина;
КонецЕсли;
Иначе
Доступна = ДоступнаЭлектроннаяПодпись(ТипЗнч(Форма.Объект.Ссылка));
КонецЕсли;
Используется = (ЭлектронноеПодписание Или Шифрование) И Доступна;
Если ЭтоФормаСписка Тогда
Элементы.СписокНомерКартинкиПодписанЗашифрован.Видимость = Используется;
КонецЕсли;
Если Не ТолькоКартинкаСтрок Тогда
Элементы.ФормаГруппаКомандЭлектроннаяПодписьИШифрование.Видимость = Используется;
Если ЭтоФормаСписка Тогда
Элементы.СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование.Видимость = Используется;
Иначе
Элементы.ГруппаЭлектронныеПодписи.Видимость = ЭлектронноеПодписание;
Элементы.ГруппаСертификатыШифрования.Видимость = Шифрование;
КонецЕсли;
КонецЕсли;
Если Не Используется Тогда
Возврат;
КонецЕсли;
Если Не ТолькоКартинкаСтрок Тогда
Элементы.ФормаГруппаКомандЭлектроннаяПодпись.Видимость = ЭлектронноеПодписание;
Элементы.ФормаГруппаКомандШифрование.Видимость = Шифрование;
Если ЭтоФормаСписка Тогда
Элементы.СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодпись.Видимость = ЭлектронноеПодписание;
Элементы.СписокКонтекстноеМенюГруппаКомандШифрование.Видимость = Шифрование;
КонецЕсли;
КонецЕсли;
Если ЭлектронноеПодписание И Шифрование Тогда
Заголовок = НСтр("ru = 'Электронная подпись и шифрование'");
Подсказка = НСтр("ru = 'Наличие электронной подписи или шифрования'");
Картинка = БиблиотекаКартинок["ПодписанЗашифрованЗаголовок"];
ИначеЕсли ЭлектронноеПодписание Тогда
Заголовок = НСтр("ru = 'Электронная подпись'");
Подсказка = НСтр("ru = 'Наличие электронной подписи'");
Картинка = БиблиотекаКартинок["ПодписанЭП"];
Иначе // Шифрование
Заголовок = НСтр("ru = 'Шифрование'");
Подсказка = НСтр("ru = 'Наличие шифрования'");
Картинка = БиблиотекаКартинок["Зашифрован"];
КонецЕсли;
Если ЭтоФормаСписка Тогда
Элементы.СписокНомерКартинкиПодписанЗашифрован.КартинкаШапки = Картинка;
Элементы.СписокНомерКартинкиПодписанЗашифрован.Подсказка = Подсказка;
КонецЕсли;
Если Не ТолькоКартинкаСтрок Тогда
Элементы.ФормаГруппаКомандЭлектроннаяПодписьИШифрование.Заголовок = Заголовок;
Элементы.ФормаГруппаКомандЭлектроннаяПодписьИШифрование.Подсказка = Заголовок;
Элементы.ФормаГруппаКомандЭлектроннаяПодписьИШифрование.Картинка = Картинка;
Если ЭтоФормаСписка Тогда
Элементы.СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование.Заголовок = Заголовок;
Элементы.СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование.Подсказка = Заголовок;
Элементы.СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование.Картинка = Картинка;
КонецЕсли;
КонецЕсли;
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
МодульЭлектроннаяПодписьСлужебный.ОформитьСписокПодписей(Форма, "ЭлектронныеПодписи");
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ФормаЗадачиПриСозданииНаСервере (БСП)
ФормаЭлементаПриСозданииНаСервере (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)