3_1_3_250
This commit is contained in:
1 parent
5c7c3489ca
commit
eff646d7ea
89 files changed
+7371
-4162
No files matched your search
@@ -11,13 +11,16 @@
|
||||
// Только для внутреннего использования.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура:
|
||||
// * ИспользоватьЭлектронныеПодписи - Булево
|
||||
// * ИспользоватьШифрование - Булево
|
||||
// * ПроверятьЭлектронныеПодписиНаСервере - Булево
|
||||
// * СоздаватьЭлектронныеПодписиНаСервере - Булево
|
||||
// * ЗаявлениеНаВыпускСертификатаДоступно - Булево
|
||||
// * ОписанияПрограмм - Массив из см. ОписаниеПрограмм
|
||||
// ФиксированнаяСтруктура:
|
||||
// * ИспользоватьЭлектронныеПодписи - Булево
|
||||
// * ИспользоватьШифрование - Булево
|
||||
// * ПроверятьЭлектронныеПодписиНаСервере - Булево
|
||||
// * СоздаватьЭлектронныеПодписиНаСервере - Булево
|
||||
// * ЗаявлениеНаВыпускСертификатаДоступно - Булево
|
||||
// * ОписанияПрограмм - ФиксированныйМассив из см. ОписаниеПрограммы
|
||||
// * ОписанияПрограммПоСсылке - ФиксированноеСоответствие:
|
||||
// ** Ключ - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
// ** Значение - см. ОписаниеПрограммы
|
||||
//
|
||||
Функция ОбщиеНастройки() Экспорт
|
||||
|
||||
@@ -73,37 +76,62 @@
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
ОписанияПрограмм = Новый Массив;
|
||||
ОписанияПрограммПоСсылке = Новый Соответствие;
|
||||
ПоставляемыеНастройки = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПоставляемыеНастройкиПрограмм();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Отбор = Новый Структура("ИмяПрограммы, ТипПрограммы", Выборка.ИмяПрограммы, Выборка.ТипПрограммы);
|
||||
Строки = ПоставляемыеНастройки.НайтиСтроки(Отбор);
|
||||
Идентификатор = ?(Строки.Количество() = 0, "", Строки[0].Идентификатор);
|
||||
Если Строки.Количество() = 0 Тогда
|
||||
Идентификатор = "";
|
||||
АлгоритмыПроверкиПодписи = Новый Массив;
|
||||
Иначе
|
||||
Идентификатор = Строки[0].Идентификатор;
|
||||
АлгоритмыПроверкиПодписи = Строки[0].АлгоритмыПроверкиПодписи;
|
||||
Если АлгоритмыПроверкиПодписи.Найти(Строки[0].АлгоритмПодписи) = Неопределено Тогда
|
||||
АлгоритмыПроверкиПодписи.Вставить(0, Строки[0].АлгоритмПодписи);
|
||||
КонецЕсли;
|
||||
Для Каждого АлгоритмПодписи Из Строки[0].АлгоритмыПодписи Цикл
|
||||
Если АлгоритмыПроверкиПодписи.Найти(АлгоритмПодписи) = Неопределено Тогда
|
||||
АлгоритмыПроверкиПодписи.Добавить(АлгоритмПодписи);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Описание = ОписаниеПрограмм();
|
||||
Описание = ОписаниеПрограммы();
|
||||
ЗаполнитьЗначенияСвойств(Описание, Выборка);
|
||||
Описание.Идентификатор = Идентификатор;
|
||||
ОписанияПрограмм.Добавить(Новый ФиксированнаяСтруктура(Описание));
|
||||
Описание.АлгоритмыПроверкиПодписи = АлгоритмыПроверкиПодписи;
|
||||
|
||||
ФиксированноеОписание = Новый ФиксированнаяСтруктура(Описание);
|
||||
ОписанияПрограмм.Добавить(ФиксированноеОписание);
|
||||
ОписанияПрограммПоСсылке.Вставить(Описание.Ссылка, ФиксированноеОписание);
|
||||
КонецЦикла;
|
||||
|
||||
ОбщиеНастройки.Вставить("ОписанияПрограмм", Новый ФиксированныйМассив(ОписанияПрограмм));
|
||||
ОбщиеНастройки.Вставить("ОписанияПрограммПоСсылке", Новый ФиксированноеСоответствие(ОписанияПрограммПоСсылке));
|
||||
ОбщиеНастройки.Вставить("ПоставляемыеПутиКМодулямПрограмм",
|
||||
Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПоставляемыеПутиКМодулямПрограмм());
|
||||
|
||||
ОбщиеНастройки.Вставить("ВерсияНастроек", Строка(Новый УникальныйИдентификатор));
|
||||
|
||||
Возврат Новый ФиксированнаяСтруктура(ОбщиеНастройки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
// * Наименование - Строка
|
||||
// * ИмяПрограммы - Строка
|
||||
// * ТипПрограммы - Число
|
||||
// * АлгоритмПодписи - Строка
|
||||
// * АлгоритмХеширования - Строка
|
||||
// * АлгоритмШифрования - Строка
|
||||
// * Идентификатор - Строка
|
||||
// Структура:
|
||||
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
|
||||
// * Наименование - Строка
|
||||
// * ИмяПрограммы - Строка
|
||||
// * ТипПрограммы - Число
|
||||
// * АлгоритмПодписи - Строка
|
||||
// * АлгоритмХеширования - Строка
|
||||
// * АлгоритмШифрования - Строка
|
||||
// * Идентификатор - Строка
|
||||
//
|
||||
Функция ОписаниеПрограмм() Экспорт
|
||||
Функция ОписаниеПрограммы() Экспорт
|
||||
|
||||
Описание = Новый Структура;
|
||||
Описание.Вставить("Ссылка");
|
||||
Описание.Вставить("Наименование");
|
||||
@@ -113,7 +141,10 @@
|
||||
Описание.Вставить("АлгоритмХеширования");
|
||||
Описание.Вставить("АлгоритмШифрования");
|
||||
Описание.Вставить("Идентификатор");
|
||||
Описание.Вставить("АлгоритмыПроверкиПодписи");
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТипыВладельцев(ТолькоСсылки = Ложь) Экспорт
|
||||
@@ -150,4 +181,74 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПутиКПрограммамНаСерверахLinux(ИмяКомпьютера) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("ИмяКомпьютера", ИмяКомпьютера);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ПутиКПрограмме.Программа,
|
||||
| ПутиКПрограмме.ПутьКПрограмме
|
||||
|ИЗ
|
||||
| РегистрСведений.ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux КАК ПутиКПрограмме
|
||||
|ГДЕ
|
||||
| ПутиКПрограмме.ИмяКомпьютера = &ИмяКомпьютера";
|
||||
|
||||
ПутиКПрограммамНаСерверахLinux = Новый Соответствие;
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
ОписаниеПути = Новый Структура;
|
||||
ОписаниеПути.Вставить("ПутьКПрограмме", Выборка.ПутьКПрограмме);
|
||||
ОписаниеПути.Вставить("Существует", ОдинИзМодулейСуществует(Выборка.ПутьКПрограмме));
|
||||
ПутиКПрограммамНаСерверахLinux.Вставить(Выборка.Программа, ОписаниеПути);
|
||||
КонецЦикла;
|
||||
|
||||
ОбщиеНастройки = ЭлектроннаяПодпись.ОбщиеНастройки();
|
||||
ТипПлатформыСтрокой = ЭлектроннаяПодписьСлужебныйКлиентСервер.ТипПлатформыСтрокой();
|
||||
|
||||
Для Каждого ОписаниеПрограммы Из ОбщиеНастройки.ОписанияПрограмм Цикл
|
||||
Если ПутиКПрограммамНаСерверахLinux.Получить(ОписаниеПрограммы.Ссылка) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Для Каждого ПутиКМодулямПрограмм Из ОбщиеНастройки.ПоставляемыеПутиКМодулямПрограмм Цикл
|
||||
Если Не СтрНачинаетсяС(ОписаниеПрограммы.Идентификатор, ПутиКМодулямПрограмм.Ключ) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ПутиКМодулямПрограммы = ПутиКМодулямПрограмм.Значение.Получить(ТипПлатформыСтрокой);
|
||||
Если ПутиКМодулямПрограммы = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ОписаниеПути = Новый Структура("ПутьКПрограмме, Существует", ПутиКМодулямПрограммы[0], Ложь);
|
||||
ПутиКПрограммамНаСерверахLinux.Вставить(ОписаниеПрограммы.Ссылка, ОписаниеПути);
|
||||
Для Каждого ПутиКМодулям Из ПутиКМодулямПрограммы Цикл
|
||||
Если Не ОдинИзМодулейСуществует(ПутиКМодулям) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ОписаниеПути.ПутьКПрограмме = ПутиКМодулям;
|
||||
ОписаниеПути.Существует = Истина;
|
||||
Прервать;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(ПутиКПрограммамНаСерверахLinux);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОдинИзМодулейСуществует(ПутиКМодулям)
|
||||
|
||||
МодулиПрограммы = СтрРазделить(ПутиКМодулям, ":");
|
||||
Результат = Ложь;
|
||||
Для Каждого МодульПрограммы Из МодулиПрограммы Цикл
|
||||
Файл = Новый Файл(МодульПрограммы);
|
||||
Если Файл.Существует() Тогда
|
||||
Результат = Истина;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
Reference in new issue
Block a user