2_4_5_71
This commit is contained in:
1 parent
02245f1363
commit
9a30420561
69 files changed
+2315
-1182
No files matched your search
@@ -67,81 +67,19 @@
|
||||
Настройки.Колонки.Добавить("АлгоритмыХеширования", Новый ОписаниеТипов("Массив"));
|
||||
Настройки.Колонки.Добавить("АлгоритмыШифрования", Новый ОписаниеТипов("Массив"));
|
||||
|
||||
// ViPNet CSP
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'ViPNet CSP'");
|
||||
Настройка.ИмяПрограммы = "Infotecs Cryptographic Service Provider";
|
||||
Настройка.ТипПрограммы = 2;
|
||||
// Варианты: GOST R 34.10-2001, GOST 34.10-2012 256, GOST 34.11-2012 512.
|
||||
Настройка.АлгоритмПодписи = "GOST R 34.10-2001";
|
||||
// Варианты: GOST R 34.11-94, GOST 34.11-2012 256, GOST 34.11-2012 512.
|
||||
Настройка.АлгоритмХеширования = "GOST R 34.11-94";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89"; // Один вариант.
|
||||
Настройка.Идентификатор = "VipNet";
|
||||
Если Метаданные.Обработки.Найти("ПрограммыЭлектроннойПодписиИШифрования") <> Неопределено Тогда
|
||||
ОбработкаПрограммыЭлектроннойПодписиИШифрования = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||
"Обработка.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
ОбработкаПрограммыЭлектроннойПодписиИШифрования.ДобавитьПоставляемыеНастройкиПрограмм(Настройки);
|
||||
Иначе
|
||||
ДобавитьНастройкиMicrosoftEnhancedCSP(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-2001");
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST 34.10-2012 256");
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST 34.10-2012 512");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-94");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST 34.11-2012 256");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST 34.11-2012 512");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
Возврат Настройки;
|
||||
|
||||
// КриптоПро CSP
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'КриптоПро CSP'");
|
||||
Настройка.ИмяПрограммы = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
|
||||
Настройка.ТипПрограммы = 75;
|
||||
Настройка.АлгоритмПодписи = "GOST R 34.10-2001";
|
||||
Настройка.АлгоритмХеширования = "GOST R 34.11-94";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89";
|
||||
Настройка.Идентификатор = "CryptoPro";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-2001");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-94");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
|
||||
// ЛИССИ CSP
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'ЛИССИ CSP'");
|
||||
Настройка.ИмяПрограммы = "LISSI-CSP";
|
||||
Настройка.ТипПрограммы = 75;
|
||||
Настройка.АлгоритмПодписи = "GOST R 34.10-2001";
|
||||
Настройка.АлгоритмХеширования = "GOST R 34.11-94";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89";
|
||||
Настройка.Идентификатор = "Lissi";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-2001");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-94");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
|
||||
// Сигнал-КОМ CSP (RFC 4357)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'Сигнал-КОМ CSP (RFC 4357)'");
|
||||
Настройка.ИмяПрограммы = "Signal-COM CPGOST Cryptographic Provider";
|
||||
Настройка.ТипПрограммы = 75;
|
||||
Настройка.АлгоритмПодписи = "ECR3410-CP";
|
||||
Настройка.АлгоритмХеширования = "RUS-HASH-CP";
|
||||
Настройка.АлгоритмШифрования = "GOST28147";
|
||||
Настройка.Идентификатор = "SignalComCPGOST";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("ECR3410-CP");
|
||||
Настройка.АлгоритмыХеширования.Добавить("RUS-HASH-CP");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST28147");
|
||||
|
||||
// Сигнал-КОМ CSP (ITU-T X.509 v.3).
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'Сигнал-КОМ CSP (ITU-T X.509 v.3)'");
|
||||
Настройка.ИмяПрограммы = "Signal-COM ECGOST Cryptographic Provider";
|
||||
Настройка.ТипПрограммы = 129;
|
||||
Настройка.АлгоритмПодписи = "ECR3410";
|
||||
Настройка.АлгоритмХеширования = "RUS-HASH";
|
||||
Настройка.АлгоритмШифрования = "GOST28147";
|
||||
Настройка.Идентификатор = "SignalComECGOST";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("ECR3410");
|
||||
Настройка.АлгоритмыХеширования.Добавить("RUS-HASH");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST28147");
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьНастройкиMicrosoftEnhancedCSP(Настройки) Экспорт
|
||||
|
||||
// Microsoft Enhanced CSP
|
||||
Настройка = Настройки.Добавить();
|
||||
@@ -163,9 +101,206 @@
|
||||
Настройка.АлгоритмыШифрования.Добавить("DES");
|
||||
Настройка.АлгоритмыШифрования.Добавить("3DES");
|
||||
|
||||
Возврат Настройки;
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обновление информационной базы.
|
||||
|
||||
Процедура ЗаполнитьНачальныеНастройки(Программы = Неопределено, БезОблачнойПрограммы = Ложь) Экспорт
|
||||
|
||||
КонецФункции
|
||||
Если Программы = Неопределено Тогда
|
||||
Программы = Новый Соответствие;
|
||||
ДобавитьПрограммыНачальногоЗаполнения(Программы);
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеПрограмм = Новый Массив;
|
||||
Для Каждого КлючИЗначение Из Программы Цикл
|
||||
ОписаниеПрограмм.Добавить(ЭлектроннаяПодпись.НовоеОписаниеПрограммы(
|
||||
КлючИЗначение.Ключ, КлючИЗначение.Значение));
|
||||
КонецЦикла;
|
||||
|
||||
ЭлектроннаяПодпись.ЗаполнитьСписокПрограмм(ОписаниеПрограмм);
|
||||
|
||||
Если БезОблачнойПрограммы Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Метаданные.Обработки.Найти("ПрограммыЭлектроннойПодписиИШифрования") <> Неопределено Тогда
|
||||
ОбработкаПрограммыЭлектроннойПодписиИШифрования = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||
"Обработка.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
ОбработкаПрограммыЭлектроннойПодписиИШифрования.ОбновитьПрограммуОблачногоСервиса();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПрограммыНачальногоЗаполнения(Программы)
|
||||
|
||||
Если Метаданные.Обработки.Найти("ПрограммыЭлектроннойПодписиИШифрования") <> Неопределено Тогда
|
||||
ОбработкаПрограммыЭлектроннойПодписиИШифрования = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||
"Обработка.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
ОбработкаПрограммыЭлектроннойПодписиИШифрования.ДобавитьПрограммыНачальногоЗаполнения(Программы);
|
||||
Иначе
|
||||
Программы.Вставить("Microsoft Enhanced Cryptographic Provider v1.0", 1);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.Ссылка
|
||||
|ИЗ
|
||||
| Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыЭлектроннойПодписиИШифрования
|
||||
|ГДЕ
|
||||
| НЕ ПрограммыЭлектроннойПодписиИШифрования.ЭтоПрограммаОблачногоСервиса";
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, ВыборкаДетальныеЗаписи.Ссылка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
|
||||
|
||||
ОбработкаЗавершена = Истина;
|
||||
|
||||
ВыборкаДетальныеЗаписи = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь,
|
||||
"Справочник.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
|
||||
ОбъектовОбработано = 0;
|
||||
ПроблемныхОбъектов = 0;
|
||||
|
||||
ПоставляемыеНастройки = ПоставляемыеНастройкиПрограмм();
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
ОбновитьПредставлениеПрограммыОтложенно(ВыборкаДетальныеЗаписи.Ссылка,
|
||||
ОбъектовОбработано, ПроблемныхОбъектов, ПоставляемыеНастройки);
|
||||
КонецЦикла;
|
||||
|
||||
ДозаполнитьНачальныеНастройкиОтложенно(ОбъектовОбработано, ПроблемныхОбъектов);
|
||||
|
||||
Если Не ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ПрограммыЭлектроннойПодписиИШифрования") Тогда
|
||||
ОбработкаЗавершена = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Процедуре Справочники.ОбработатьДанныеДляПереходаНаНовуюВерсию.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые программы электронной подписи (пропущены): %1'"),
|
||||
ПроблемныхОбъектов);
|
||||
ВызватьИсключение ТекстСообщения;
|
||||
Иначе
|
||||
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
|
||||
Метаданные.НайтиПоПолномуИмени("Справочник.ПрограммыЭлектроннойПодписиИШифрования"),,
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Процедура Справочники.ОбработатьДанныеДляПереходаНаНовуюВерсию.ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию программ электронной подписи: %1'"),
|
||||
ОбъектовОбработано));
|
||||
КонецЕсли;
|
||||
|
||||
Параметры.ОбработкаЗавершена = ОбработкаЗавершена;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбновитьПредставлениеПрограммыОтложенно(Программа, ОбъектовОбработано, ПроблемныхОбъектов, ПоставляемыеНастройки)
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Справочник.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
Свойства = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Программа,
|
||||
"ИмяПрограммы, ТипПрограммы, Наименование, ЭтоПрограммаОблачногоСервиса");
|
||||
|
||||
Отбор = Новый Структура("ИмяПрограммы, ТипПрограммы", Свойства.ИмяПрограммы, Свойства.ТипПрограммы);
|
||||
Строки = ПоставляемыеНастройки.НайтиСтроки(Отбор);
|
||||
|
||||
Если Не Свойства.ЭтоПрограммаОблачногоСервиса
|
||||
И Строки.Количество() = 1
|
||||
И Строки[0].Представление <> Свойства.Наименование Тогда
|
||||
|
||||
ПрограммаОбъект = Программа.ПолучитьОбъект();
|
||||
ПрограммаОбъект.Наименование = Строки[0].Представление;
|
||||
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрограммаОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
|
||||
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось обновить программу ""%1"" по причине:
|
||||
|%2'"), Строка(Программа), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Предупреждение, , , ТекстСообщения);
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Программа.Ссылка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДозаполнитьНачальныеНастройкиОтложенно(ОбъектовОбработано, ПроблемныхОбъектов)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.ИмяПрограммы КАК ИмяПрограммы,
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.ТипПрограммы КАК ТипПрограммы
|
||||
|ИЗ
|
||||
| Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыЭлектроннойПодписиИШифрования
|
||||
|ГДЕ
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.ЭтоПрограммаОблачногоСервиса";
|
||||
|
||||
Программы = Новый Соответствие;
|
||||
ДобавитьПрограммыНачальногоЗаполнения(Программы);
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Справочник.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Если Программы.Получить(Выборка.ИмяПрограммы) = Выборка.ТипПрограммы Тогда
|
||||
Программы.Удалить(Выборка.ИмяПрограммы);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
ЗаполнитьНачальныеНастройки(Программы, Истина);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось дозаполнить начальные настройки программ по причине:
|
||||
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
ВызватьИсключение ТекстСообщения;
|
||||
КонецПопытки;
|
||||
|
||||
Если Метаданные.Обработки.Найти("ПрограммыЭлектроннойПодписиИШифрования") <> Неопределено Тогда
|
||||
ОбработкаПрограммыЭлектроннойПодписиИШифрования = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||
"Обработка.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
ОбработкаПрограммыЭлектроннойПодписиИШифрования.ОбновитьПрограммуОблачногоСервиса(Истина,
|
||||
ОбъектовОбработано, ПроблемныхОбъектов);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
#КонецЕсли
|
||||
@@ -22,13 +22,13 @@
|
||||
|
||||
Задание = РегламентныеЗадания.СоздатьРегламентноеЗадание(Метаданные.РегламентныеЗадания.РассылкаОтчетов);
|
||||
Задание.ИмяПользователя = РассылкаОтчетов.ИмяПользователяИБ(Автор);
|
||||
Задание.Использование = Ложь;
|
||||
Задание.Наименование = ПредставлениеЗаданияПоРассылке(Наименование);
|
||||
Задание.Использование = Ложь;
|
||||
Задание.Наименование = ПредставлениеЗаданияПоРассылке(Наименование);
|
||||
Задание.Записать();
|
||||
|
||||
РегламентноеЗадание = Задание.УникальныйИдентификатор;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
// Соответствие флага подготовленности рассылки и задания пометке удаления рассылки.
|
||||
|
||||
@@ -121,15 +121,13 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если РазрешенияПолучены <> Истина Тогда
|
||||
|
||||
ДанныеОбъекта = Новый Структура("Ссылка,ИспользоватьДляОтправки,СерверИсходящейПочты,ПортСервераИсходящейПочты,ИспользоватьДляПолучения,
|
||||
|ПротоколВходящейПочты,СерверВходящейПочты,ПортСервераВходящейПочты");
|
||||
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, Объект);
|
||||
|
||||
Запрос = СоздатьЗапросНаИспользованиеВнешнихРесурсов(ДанныеОбъекта);
|
||||
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПолучениеРазрешенийЗавершение", ЭтотОбъект, ПараметрыЗаписи);
|
||||
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
|
||||
ДанныеОбъекта = Новый Структура("Ссылка,ИспользоватьДляОтправки,СерверИсходящейПочты,ПортСервераИсходящейПочты,ИспользоватьДляПолучения,
|
||||
|ПротоколВходящейПочты,СерверВходящейПочты,ПортСервераВходящейПочты");
|
||||
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, Объект);
|
||||
Запрос = СоздатьЗапросНаИспользованиеВнешнихРесурсов(ДанныеОбъекта);
|
||||
МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент");
|
||||
МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(
|
||||
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Запрос), ЭтотОбъект, ОповещениеОЗакрытии);
|
||||
|
||||
-1
@@ -155,7 +155,6 @@
|
||||
КонецЕсли;
|
||||
|
||||
ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта", ПараметрыФормы);
|
||||
ОткрытьФорму("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ФормаОбъекта", ПараметрыФормы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -121,6 +121,7 @@
|
||||
Процедура ИнформационнаяБазаПеремещена(Команда)
|
||||
ИнформационнаяБазаПеремещенаНаСервере();
|
||||
СтандартныеПодсистемыКлиент.УстановитьРасширенныйЗаголовокПриложения();
|
||||
ОбновитьИнтерфейс();
|
||||
Закрыть();
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -128,6 +129,7 @@
|
||||
Процедура ЭтоКопияИнформационнойБазы(Команда)
|
||||
ЭтоКопияИнформационнойБазыНаСервере();
|
||||
СтандартныеПодсистемыКлиент.УстановитьРасширенныйЗаголовокПриложения();
|
||||
ОбновитьИнтерфейс();
|
||||
Закрыть();
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
ВладелецТокена = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.СклоненияПредставленийОбъектов");
|
||||
Токен = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецТокена, "ТокенДоступаКСервисуMorpher");
|
||||
Токен = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецТокена, "ТокенДоступаКСервисуMorpher", Истина);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
ВидДоступаКСервисуMorher = 0;
|
||||
|
||||
@@ -803,12 +803,10 @@
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Если ТекущийРазделСсылка = Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка() Тогда
|
||||
Если ТекущийРазделСсылка = Неопределено Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Раздел ""%1"" не подключен к подсистеме ""%2"".
|
||||
|См. модуль ВариантыОтчетовПереопределяемый, процедуру ОпределитьРазделыСВариантамиОтчетов.'"),
|
||||
Параметры.ПутьКПодсистеме,
|
||||
ВариантыОтчетовКлиентСервер.НаименованиеПодсистемы(Неопределено));
|
||||
НСтр("ru = 'Для панели отчетов указан несуществующий раздел ""%1"" (см. ВариантыОтчетовПереопределяемый.ОпределитьРазделыСВариантамиОтчетов).'"),
|
||||
Параметры.ПутьКПодсистеме);
|
||||
КонецЕсли;
|
||||
|
||||
КлючНазначенияИспользования = "Раздел_" + Строка(ТекущийРазделСсылка.УникальныйИдентификатор());
|
||||
|
||||
@@ -342,8 +342,6 @@
|
||||
Строка.Представление = ВРег(Строка.Представление);
|
||||
КонецЦикла;
|
||||
|
||||
НайденныеКонтакты.Индексы.Добавить("Представление");
|
||||
|
||||
// Для каждой строки проставим список найденных контактов.
|
||||
Для Каждого СтрокаТаблицы Из ТаблицаКонтактов Цикл
|
||||
Если Не ПустаяСтрока(СтрокаТаблицы.Адрес) Тогда
|
||||
|
||||
@@ -7535,7 +7535,7 @@
|
||||
ПараметрыПолучения.Вставить("ПутьДляСохранения", ПутьДляСохранения);
|
||||
ЗагруженныйФайл = МодульПолучениеФайловИзИнтернета.СкачатьФайлНаСервере(ОписаниеРегиона.Адрес, ПараметрыПолучения);
|
||||
Если Не ЗагруженныйФайл.Статус Тогда
|
||||
УдалитьВременныйФайл(ЗагруженныйФайл.Путь);
|
||||
УдалитьВременныйФайл(ВременныйКаталог);
|
||||
ВызватьИсключение ЗагруженныйФайл.СообщениеОбОшибке;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -252,6 +252,10 @@
|
||||
Возврат ПолучитьФункциональнуюОпцию("ИспользоватьПочтовыйКлиент");
|
||||
КонецФункции
|
||||
|
||||
Функция ИспользуетсяПрочиеВзаимодействия() Экспорт
|
||||
Возврат ПолучитьФункциональнуюОпцию("ИспользоватьПрочиеВзаимодействия");
|
||||
КонецФункции
|
||||
|
||||
Функция ОтправлятьПисьмаВФорматеHTML() Экспорт
|
||||
Возврат ПолучитьФункциональнуюОпцию("ОтправлятьПисьмаВФорматеHTML");
|
||||
КонецФункции
|
||||
@@ -343,6 +347,228 @@
|
||||
Блокировка.Добавить("РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты");
|
||||
КонецФункции
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Шаблоны сообщений
|
||||
|
||||
Процедура СоздатьПисьмо(Сообщение, УчетнаяЗапись) Экспорт
|
||||
|
||||
ПисьмоHTML = (Сообщение.ДополнительныеПараметры.ФорматПисьма = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML);
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
|
||||
Письмо = Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент();
|
||||
|
||||
Письмо.Автор = Пользователи.ТекущийПользователь();
|
||||
Письмо.Ответственный = Пользователи.ТекущийПользователь();
|
||||
Письмо.Дата = ТекущаяДатаСеанса();
|
||||
Письмо.Важность = Перечисления.ВариантыВажностиВзаимодействия.Обычная;
|
||||
Письмо.Кодировка = КодировкаТекста.UTF8;
|
||||
Письмо.ОтправительПредставление = Строка(УчетнаяЗапись);
|
||||
|
||||
Если ПисьмоHTML Тогда
|
||||
|
||||
Письмо.ТекстHTML = Сообщение.Текст;
|
||||
Письмо.Текст = ПолучитьОбычныйТекстИзHTML(Сообщение.Текст);
|
||||
|
||||
Иначе
|
||||
|
||||
Письмо.Текст = Сообщение.Текст;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Письмо.Тема = Сообщение.Тема;
|
||||
Письмо.ТипТекста = ?(ПисьмоHTML, Перечисления.ТипыТекстовЭлектронныхПисем.HTML, Перечисления.ТипыТекстовЭлектронныхПисем.ПростойТекст);
|
||||
Письмо.УчетнаяЗапись = УчетнаяЗапись;
|
||||
Письмо.ВзаимодействиеОснование = Неопределено;
|
||||
|
||||
// Заполним реквизиты ВключатьТелоИсходногоПисьма, ОтображатьТелоИсходногоПисьма, УведомитьОДоставке и УведомитьОПрочтении.
|
||||
НастройкиПользователя = ПолучитьПараметрыРаботыПользователяДляИсходящегоЭлектронногоПисьма(
|
||||
УчетнаяЗапись, Сообщение.ДополнительныеПараметры.ФорматПисьма, Истина);
|
||||
ЗаполнитьЗначенияСвойств(Письмо, НастройкиПользователя);
|
||||
|
||||
Письмо.УдалятьПослеОтправки = Ложь;
|
||||
Письмо.Комментарий = КомментарийПоНаименованиюШаблона(Сообщение.ДополнительныеПараметры.Наименование);
|
||||
|
||||
СписокПолучателейСпискомЗначений =( ТипЗнч(Сообщение.Получатель) = Тип("СписокЗначений"));
|
||||
Для Каждого ПолучательПисьма Из Сообщение.Получатель Цикл
|
||||
|
||||
НоваяСтрока = Письмо["ПолучателиПисьма"].Добавить();
|
||||
|
||||
Если СписокПолучателейСпискомЗначений Тогда
|
||||
НоваяСтрока.Адрес = ПолучательПисьма.Значение;
|
||||
НоваяСтрока.Представление = ПолучательПисьма.Представление;
|
||||
Иначе
|
||||
НоваяСтрока.Адрес = ПолучательПисьма.Адрес;
|
||||
НоваяСтрока.Представление = ПолучательПисьма.Представление;
|
||||
НоваяСтрока.Контакт = ПолучательПисьма.ИсточникКонтактнойИнформации;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Письмо.СписокПолучателейПисьма = ВзаимодействияКлиентСервер.ПолучитьПредставлениеСпискаАдресатов(Письмо.ПолучателиПисьма, Ложь);
|
||||
Письмо.СтатусПисьма = ?(ОбщегоНазначения.ИнформационнаяБазаФайловая(),
|
||||
Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Черновик,
|
||||
Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Исходящее);
|
||||
|
||||
Письмо.ЕстьВложения = (Сообщение.Вложения.Количество() > 0);
|
||||
РазмерВложений = 0;
|
||||
РазмерыВложений = Новый Соответствие;
|
||||
Для Каждого Вложение Из Сообщение.Вложения Цикл
|
||||
|
||||
Размер = ПолучитьИзВременногоХранилища(Вложение.АдресВоВременномХранилище).Размер() * 1.5;
|
||||
РазмерВложений = РазмерВложений + Размер;
|
||||
РазмерыВложений.Вставить(Вложение.АдресВоВременномХранилище, Размер);
|
||||
|
||||
// Если у идентификатора не английские символы, то письмо может быть некорректно обработано.
|
||||
Если ЗначениеЗаполнено(Вложение.Идентификатор) Тогда
|
||||
Идентификатор = СтроковыеФункцииКлиентСервер.СтрокаЛатиницей(Вложение.Идентификатор);
|
||||
Письмо.ТекстHTML = СтрЗаменить(Письмо.ТекстHTML, "cid:" + Вложение.Идентификатор, "cid:" + Идентификатор);
|
||||
Вложение.Идентификатор = Идентификатор;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Письмо.Размер = РазмерВложений + СтрДлина(Письмо.Тема) * 2
|
||||
+ ?(ПисьмоHTML, СтрДлина(Письмо.ТекстHTML), СтрДлина(Письмо.Текст)) * 2;
|
||||
|
||||
Письмо.Записать();
|
||||
|
||||
// Добавим вложения
|
||||
Для Каждого Вложение Из Сообщение.Вложения Цикл
|
||||
|
||||
МодульУправлениеЭлектроннойПочтой = ОбщегоНазначения.ОбщийМодуль("УправлениеЭлектроннойПочтой");
|
||||
Если ПустаяСтрока(Вложение.Идентификатор) Тогда
|
||||
|
||||
МодульУправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(Письмо.Ссылка,
|
||||
Вложение.АдресВоВременномХранилище, Вложение.Представление, РазмерыВложений[Вложение.АдресВоВременномХранилище]);
|
||||
|
||||
ИначеЕсли ПисьмоHTML Тогда
|
||||
|
||||
ПрисоединенныйФайл = МодульУправлениеЭлектроннойПочтой.ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(Письмо.Ссылка,
|
||||
Вложение.АдресВоВременномХранилище, Вложение.Представление, РазмерыВложений[Вложение.АдресВоВременномХранилище]);
|
||||
|
||||
Если ПрисоединенныйФайл <> Неопределено Тогда
|
||||
ПрисоединенныйФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
|
||||
ПрисоединенныйФайлОбъект.ИДФайлаЭлектронногоПисьма = Вложение.Идентификатор;
|
||||
ПрисоединенныйФайлОбъект.Записать();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если Сообщение.ДополнительныеПараметры.Свойство("Предмет") И ЗначениеЗаполнено(Сообщение.ДополнительныеПараметры.Предмет) Тогда
|
||||
Предмет = Сообщение.ДополнительныеПараметры.Предмет;
|
||||
Иначе
|
||||
Предмет = Письмо.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
Реквизиты = СтруктураРеквизитовВзаимодействияДляЗаписи(Предмет, Истина);
|
||||
ВзаимодействияВызовСервера.ЗаписьРегистрРеквизитыВзаимодействия(Письмо.Ссылка, Реквизиты);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
|
||||
ОтменитьТранзакцию();
|
||||
ТекстСообщения = НСтр("ru = 'Не удалось создать письмо : %Письмо% по причине: %Причина%'");
|
||||
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Письмо%", Письмо);
|
||||
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Ошибка,, Письмо, ТекстСообщения);
|
||||
Возврат;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Попытка
|
||||
ИдентификаторПисьма = ВыполнитьОтправкуПисьма(Письмо);
|
||||
Исключение
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Ошибка при отправке письма %1'"),КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
Возврат;
|
||||
КонецПопытки;
|
||||
|
||||
Если НЕ Письмо.УдалятьПослеОтправки Тогда
|
||||
|
||||
Попытка
|
||||
Письмо.ИдентификаторСообщения = ИдентификаторПисьма;
|
||||
Письмо.СтатусПисьма = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено;
|
||||
Письмо.ДатаОтправления = ТекущаяДатаСеанса();
|
||||
Письмо.Записать(РежимЗаписиДокумента.Запись);
|
||||
|
||||
ВзаимодействияВызовСервера.УстановитьПапкуЭлектронногоПисьма(
|
||||
Письмо.Ссылка, ОпределитьПапкуДляПисьма(Письмо.Ссылка));
|
||||
Исключение
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ошибка при записи письма после успешной отправки %1'"),
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
Иначе
|
||||
|
||||
Письмо.Прочитать();
|
||||
Письмо.Удалить();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СоздатьИОтправитьСообщениеSMS(Сообщение) Экспорт
|
||||
|
||||
СообщениеSMS = Документы.СообщениеSMS.СоздатьДокумент();
|
||||
|
||||
СообщениеSMS.Дата = ТекущаяДатаСеанса();
|
||||
СообщениеSMS.Автор = Пользователи.ТекущийПользователь();
|
||||
|
||||
СообщениеSMS.Ответственный = Пользователи.ТекущийПользователь();
|
||||
СообщениеSMS.Важность = Перечисления.ВариантыВажностиВзаимодействия.Обычная;
|
||||
|
||||
СообщениеSMS.ВзаимодействиеОснование = Неопределено;
|
||||
СообщениеSMS.ТекстСообщения = Сообщение.Текст;
|
||||
СообщениеSMS.Тема = ВзаимодействияКлиентСервер.ТемаПоТекстуСообщения(Сообщение.Текст);
|
||||
СообщениеSMS.ОтправлятьВТранслите = Сообщение.ДополнительныеПараметры.ПеревестиВТранслит;
|
||||
СообщениеSMS.Комментарий = КомментарийПоНаименованиюШаблона(Сообщение.ДополнительныеПараметры.Наименование);
|
||||
|
||||
Для каждого АдресатSMS Из Сообщение.Получатель Цикл
|
||||
|
||||
НоваяСтрока = СообщениеSMS.Адресаты.Добавить();
|
||||
Если ТипЗнч(АдресатSMS) = Тип("Структура") Тогда
|
||||
НоваяСтрока.Контакт = АдресатSMS.ИсточникКонтактнойИнформации;
|
||||
НоваяСтрока.ПредставлениеКонтакта = АдресатSMS.Представление;
|
||||
НоваяСтрока.КакСвязаться = АдресатSMS.НомерТелефона;
|
||||
НоваяСтрока.НомерДляОтправки = АдресатSMS.НомерТелефона;
|
||||
Иначе
|
||||
НоваяСтрока.Контакт = "";
|
||||
НоваяСтрока.ПредставлениеКонтакта = АдресатSMS.Представление;
|
||||
НоваяСтрока.КакСвязаться = АдресатSMS.Значение;
|
||||
НоваяСтрока.НомерДляОтправки = АдресатSMS.Значение;
|
||||
КонецЕсли;
|
||||
НоваяСтрока.ИдентификаторСообщения = "";
|
||||
НоваяСтрока.ТекстОшибки = "";
|
||||
НоваяСтрока.СостояниеСообщения = Перечисления.СостоянияСообщенияSMS.Черновик;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
|
||||
ОтправкаSMSПоДокументу(СообщениеSMS);
|
||||
Иначе
|
||||
ВзаимодействияКлиентСервер.УстановитьСостояниеИсходящееДокументСообщениеSMS(СообщениеSMS);
|
||||
КонецЕсли;
|
||||
|
||||
СообщениеSMS.Записать();
|
||||
|
||||
Если Сообщение.ДополнительныеПараметры.Свойство("Предмет") И ЗначениеЗаполнено(Сообщение.ДополнительныеПараметры.Предмет) Тогда
|
||||
Предмет = Сообщение.ДополнительныеПараметры.Предмет;
|
||||
Иначе
|
||||
Предмет = СообщениеSMS.Ссылка;
|
||||
КонецЕсли;
|
||||
Реквизиты = СтруктураРеквизитовВзаимодействияДляЗаписи(Предмет, Истина);
|
||||
ВзаимодействияВызовСервера.ЗаписьРегистрРеквизитыВзаимодействия(СообщениеSMS.Ссылка, Реквизиты);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обработчики событий подсистем конфигурации.
|
||||
|
||||
@@ -1971,6 +2197,7 @@
|
||||
ЗаполнитьЗначенияСвойств(Форма, СтруктураРеквизитов, "Предмет, Рассмотрено, РассмотретьПосле");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции работы с взаимодействиями.
|
||||
|
||||
@@ -8129,4 +8356,44 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Формирует структуру для записи в регистр сведений ПредметыПапкиВзаимодействий.
|
||||
//
|
||||
// Параметры:
|
||||
// Папка - Справочник.ПапкиЭлектронныхПисем - папка, имеет смысл для документов "Электронное письмо входящее"
|
||||
// и "Электронное письмо исходящее".
|
||||
// Предмет - СправочникСсылка, ДокументСсылка, указывает на предмет взаимодействия.
|
||||
// Рассмотрено - Булево - признак рассмотрения взаимодействия.
|
||||
// РассмотретьПосле - ДатаВремя - дата, до которой отложено рассмотрение взаимодействия.
|
||||
// РассчитыватьРассмотрено - Булево - признак необходимости расчета состояний папки и предмета.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - сформированная структура.
|
||||
//
|
||||
Функция СтруктураРеквизитовВзаимодействияДляЗаписи(Предмет, Рассмотрено)
|
||||
|
||||
СтруктураВозврата = ВзаимодействияКлиентСервер.ПустаяСтруктураРеквизитыВзаимодействия();
|
||||
|
||||
Если Предмет <> Неопределено Тогда
|
||||
СтруктураВозврата.Предмет = Предмет;
|
||||
КонецЕсли;
|
||||
|
||||
Если Рассмотрено <> Неопределено Тогда
|
||||
СтруктураВозврата.Рассмотрено = Рассмотрено;
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураВозврата.РассчитыватьРассмотрено = Истина;
|
||||
|
||||
Возврат СтруктураВозврата;
|
||||
|
||||
КонецФункции
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
// Шаблоны сообщений
|
||||
|
||||
Функция КомментарийПоНаименованиюШаблона(НаименованиеШаблона)
|
||||
|
||||
Возврат НСтр("ru = 'Создано и отправлено по шаблону'") + " - " + НаименованиеШаблона;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -780,6 +780,7 @@
|
||||
|
||||
ПараметрыКоманды = Новый Структура;
|
||||
ПараметрыКоманды.Вставить("ЭтаФорма", ПараметрыВыполнения.Форма);
|
||||
ПараметрыКоманды.Вставить("ДополнительнаяОбработкаСсылка", ВыполняемаяКоманда.Ссылка);
|
||||
|
||||
ВыполнитьКомандуВнешнегоОбъекта(ВнешнийОбъект, ВыполняемаяКоманда.Идентификатор, ПараметрыКоманды, Неопределено);
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -749,14 +749,14 @@
|
||||
Обработчик.ОбщиеДанные = Истина;
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "2.4.4.161";
|
||||
Обработчик.Версия = "2.4.5.48";
|
||||
Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеПроизводственныхКалендарей";
|
||||
Обработчик.РежимВыполнения = "Оперативно";
|
||||
Обработчик.ОбщиеДанные = Истина;
|
||||
|
||||
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "2.4.4.161";
|
||||
Обработчик.Версия = "2.4.5.48";
|
||||
Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеЗависимыеОтПроизводственныхКалендарей";
|
||||
Обработчик.ОчередьОтложеннойОбработки = 1;
|
||||
Обработчик.ПроцедураЗаполненияДанныхОбновления = "КалендарныеГрафики.ЗаполнитьДанныеОбновленияДанныхЗависимыхОтПроизводственныхКалендарей";
|
||||
|
||||
@@ -162,30 +162,30 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает подробные сведения о выявленных проблемах указанного вида проверки.
|
||||
// Возвращает подробные сведения о выявленных проблемах одного или нескольких интересующих видов проверки.
|
||||
//
|
||||
// Параметры:
|
||||
// ВидПроверок - СправочникСсылка.ВидыПроверок - ссылка на вид проверки.
|
||||
// - Строка - строковый идентификатор вида проверки Свойство1.
|
||||
// - Массив - строковые идентификаторы вида проверки Свойство1...СвойствоN.
|
||||
// ПоискПоТочномуСоответствию - Булево - Регулирует возможности точности. Если Истина, то поиск ведется
|
||||
// по переданным свойствам на равенство, остальные свойства должны быть равны
|
||||
// Неопределено (табличная часть дополнительных свойств должна быть пуста).
|
||||
// Если Ложь, то значения остальных свойств могут быть произвольными, главное
|
||||
// чтобы соответствующие свойства были равны свойствам структуры. По умолчанию Истина.
|
||||
// ПоискПоТочномуСоответствию - Булево - если Истина, то вид проверки определяется по точному соответствию со
|
||||
// всеми переданными значениям свойств в параметре ВидПроверок (см. пример № 2).
|
||||
// Если Ложь, то вид проверки определяется по указанным значениям свойств
|
||||
// и с любыми значениями неуказанных свойств в параметре ВидПроверок (см. пример № 3).
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - таблица проблем:
|
||||
// * ПроблемныйОбъект - ЛюбаяСсылка - Ссылка на объект "Источник" проблем.
|
||||
// * ПравилоПроверки - СправочникСсылка.ПравилаПроверкиУчета - Ссылка на выполненную проверку.
|
||||
// * УточнениеПроблемы - Строка - Строка-уточнение найденной проблемы.
|
||||
// * ВажностьПроблемы - ПеречислениеСсылка.ВажностьПроблемыУчета - Важность проблемы учета
|
||||
// "Информация", "Предупреждение", "Ошибка" и "ПолезныйСовет".
|
||||
// * Ответственный - СправочникСсылка.Пользователи - Заполнен если есть возможность
|
||||
// идентифицировать ответственного в проблемном объекте.
|
||||
// * ДополнительнаяИнформация - ХранилищеЗначений - Служебное свойство с дополнительными
|
||||
// сведениями, связанными с выявленной проблемой
|
||||
// * Выявлено - Дата - Серверное время идентификации проблемы.
|
||||
// ТаблицаЗначений - выявленные проблемы:
|
||||
// * ПроблемныйОбъект - ЛюбаяСсылка - ссылка на объект, с которым связана проблема.
|
||||
// * ВажностьПроблемы - ПеречислениеСсылка.ВажностьПроблемыУчета - важность проблемы учета
|
||||
// "Информация", "Предупреждение", "Ошибка", "ПолезныйСовет" и "ВажнаяИнформация".
|
||||
// * ПравилоПроверки - СправочникСсылка.ПравилаПроверкиУчета - выполненная проверка с описанием проблемы.
|
||||
// * ВидПроверок - СправочникСсылка.ВидыПроверок - вид проверки.
|
||||
// * УточнениеПроблемы - Строка - текстовое уточнение найденной проблемы.
|
||||
// * Ответственный - СправочникСсылка.Пользователи - заполнен, если по выявленной проблеме
|
||||
// алгоритм проверки определил конкретного ответственного.
|
||||
// * Выявлено - Дата - дата и время выявления проблемы.
|
||||
// * ДополнительнаяИнформация - ХранилищеЗначений - произвольные дополнительные сведения, связанные
|
||||
// с выявленной проблемой.
|
||||
//
|
||||
// Пример:
|
||||
// 1) Результат = ПодробнаяИнформацияПоВидамПроверок("СистемныеПроверки");
|
||||
@@ -194,6 +194,11 @@
|
||||
// ВидПроверок.Добавить(Организация);
|
||||
// ВидПроверок.Добавить(МесяцЗакрытия);
|
||||
// Результат = ПодробнаяИнформацияПоВидамПроверок(ВидПроверок);
|
||||
// 3) Выбрать все проблемы закрытия месяца по всем периодам для указанной организации:
|
||||
// ВидПроверок = Новый Массив;
|
||||
// ВидПроверок.Добавить("ЗакрытиеМесяца");
|
||||
// ВидПроверок.Добавить(Организация);
|
||||
// Результат = ПодробнаяИнформацияПоВидамПроверок(ВидПроверок, Ложь);
|
||||
//
|
||||
Функция ПодробнаяИнформацияПоВидамПроверок(ВидПроверок, ПоискПоТочномуСоответствию = Истина) Экспорт
|
||||
|
||||
@@ -201,7 +206,17 @@
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ВидПроверок", ВидПроверок, КонтрольВеденияУчетаСлужебный.ОписаниеТипаВидПроверки());
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ПоискПоТочномуСоответствию", ПоискПоТочномуСоответствию, Тип("Булево"));
|
||||
|
||||
ПодробнаяИнформация = Новый ТаблицаЗначений;
|
||||
ПодробнаяИнформация = Новый ТаблицаЗначений;
|
||||
КолонкиПодробнойИнформации = ПодробнаяИнформация.Колонки;
|
||||
КолонкиПодробнойИнформации.Добавить("ПроблемныйОбъект", ОбщегоНазначения.ОписаниеТипаВсеСсылки());
|
||||
КолонкиПодробнойИнформации.Добавить("ВажностьПроблемы", Новый ОписаниеТипов("ПеречислениеСсылка.ВажностьПроблемыУчета"));
|
||||
КолонкиПодробнойИнформации.Добавить("ПравилоПроверки", Новый ОписаниеТипов("СправочникСсылка.ПравилаПроверкиУчета"));
|
||||
КолонкиПодробнойИнформации.Добавить("ВидПроверки", Новый ОписаниеТипов("СправочникСсылка.ВидыПроверок"));
|
||||
КолонкиПодробнойИнформации.Добавить("УточнениеПроблемы", Новый ОписаниеТипов("Строка"));
|
||||
КолонкиПодробнойИнформации.Добавить("Ответственный", Новый ОписаниеТипов("СправочникСсылка.Пользователи"));
|
||||
КолонкиПодробнойИнформации.Добавить("Выявлено", Новый ОписаниеТипов("Дата"));
|
||||
КолонкиПодробнойИнформации.Добавить("ДополнительнаяИнформация", Новый ОписаниеТипов("ХранилищеЗначения"));
|
||||
|
||||
МассивВидовПроверок = Новый Массив;
|
||||
|
||||
Если ТипЗнч(ВидПроверок) = Тип("СправочникСсылка.ВидыПроверок") Тогда
|
||||
@@ -217,14 +232,18 @@
|
||||
Запрос = Новый Запрос(
|
||||
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||
| РезультатыПроверкиУчета.ПроблемныйОбъект КАК ПроблемныйОбъект,
|
||||
| РезультатыПроверкиУчета.ВажностьПроблемы КАК ВажностьПроблемы,
|
||||
| РезультатыПроверкиУчета.ПравилоПроверки КАК ПравилоПроверки,
|
||||
| РезультатыПроверкиУчета.ВидПроверки КАК ВидПроверки
|
||||
| РезультатыПроверкиУчета.ВажностьПроблемы КАК ВажностьПроблемы,
|
||||
| РезультатыПроверкиУчета.ВидПроверки КАК ВидПроверки,
|
||||
| РезультатыПроверкиУчета.УточнениеПроблемы КАК УточнениеПроблемы,
|
||||
| РезультатыПроверкиУчета.Ответственный КАК Ответственный,
|
||||
| РезультатыПроверкиУчета.Выявлено КАК Выявлено,
|
||||
| РезультатыПроверкиУчета.ДополнительнаяИнформация КАК ДополнительнаяИнформация
|
||||
|ИЗ
|
||||
| РегистрСведений.РезультатыПроверкиУчета КАК РезультатыПроверкиУчета
|
||||
|ГДЕ
|
||||
| НЕ РезультатыПроверкиУчета.ИгнорироватьПроблему
|
||||
| И РезультатыПроверкиУчета.ВидПроверки В (&МассивВидовПроверок)");
|
||||
| И РезультатыПроверкиУчета.ВидПроверки В(&МассивВидовПроверок)");
|
||||
|
||||
Запрос.УстановитьПараметр("МассивВидовПроверок", МассивВидовПроверок);
|
||||
Результат = Запрос.Выполнить();
|
||||
@@ -475,6 +494,10 @@
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ДополнительныеСвойства", ДополнительныеСвойства, Тип("Структура"));
|
||||
КонецЕсли;
|
||||
|
||||
Если Не КонтрольВеденияУчетаСлужебный.ПодсистемаДоступна() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ГлобальныеНастройки = КонтрольВеденияУчетаСлужебный.ГлобальныеНастройки();
|
||||
СписокИмен = СтрРазделить(ИменаСписков, ",");
|
||||
Элементы = Форма.Элементы;
|
||||
@@ -575,8 +598,11 @@
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ДополнительныеСвойства", ДополнительныеСвойства, Тип("Структура"));
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойстваКомпоновщика = Настройки.ДополнительныеСвойства;
|
||||
Если Не КонтрольВеденияУчетаСлужебный.ПодсистемаДоступна() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеСвойстваКомпоновщика = Настройки.ДополнительныеСвойства;
|
||||
Если ДополнительныеСвойстваКомпоновщика.Свойство("КолонкаИндикатора") Тогда
|
||||
|
||||
КолонкаИндикатора = Настройки.ДополнительныеСвойства.КолонкаИндикатора;
|
||||
@@ -637,6 +663,10 @@
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ТекущийОбъект", ТекущийОбъект,
|
||||
КонтрольВеденияУчетаСлужебныйПовтИсп.ОписаниеТипаВсеОбъекты());
|
||||
|
||||
Если Не КонтрольВеденияУчетаСлужебный.ПодсистемаДоступна() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ГлобальныеНастройки = КонтрольВеденияУчетаСлужебный.ГлобальныеНастройки();
|
||||
СсылкаНаОбъект = ТекущийОбъект.Ссылка;
|
||||
ЭлементыУправляемойФормы = Форма.Элементы;
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1707,7 +1707,7 @@
|
||||
//
|
||||
Процедура РассчитатьПроцентВыгрузки(КоличествоВыгруженных, КоличествоОбъектовКВыгрузке) Экспорт
|
||||
|
||||
// Сообщение о проценте выгрузки выдаем через каждые 10 объектов.
|
||||
// Сообщение о проценте выгрузки выдаем через каждые 100 объектов.
|
||||
Если КоличествоВыгруженных = 0 ИЛИ КоличествоВыгруженных / 100 <> Цел(КоличествоВыгруженных / 100) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -12404,7 +12404,7 @@
|
||||
//
|
||||
Функция ЗащищенноеСоединение(Путь) Экспорт
|
||||
|
||||
Возврат ?(НРег(Лев(Путь, 4)) = "ftps", Новый ЗащищенноеСоединениеOpenSSL, Неопределено);
|
||||
Возврат ?(НРег(Лев(Путь, 4)) = "ftps", ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение(), Неопределено);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -12644,7 +12644,9 @@
|
||||
// дереве команд создания обмена вариантов настроек.
|
||||
// * ИмяКонфигурацииИсточника - Строка - Имя конфигурации источника, выводимое в
|
||||
// пользовательском интерфейсе.
|
||||
// * ВерсииФорматаОбмена - Структура - Соответствие номеров поддерживаемых версий формата
|
||||
// * ИмяКонфигурацииПриемника - Структура - Перечень идентификаторов конфигураций-корреспондентов,
|
||||
// обмен с которыми возможен через данный план обмена.
|
||||
// * ВерсииФорматаОбмена - Соответствие - Соответствие номеров поддерживаемых версий формата
|
||||
// и ссылок на общие модули с логикой обмена через формат.
|
||||
// Используется только для обменов через универсальный формат.
|
||||
// * ФорматОбмена - Строка - Пространство имен XDTO пакета, в котором содержится
|
||||
@@ -12684,7 +12686,8 @@
|
||||
Параметры.Вставить("ВариантыНастроекОбмена", ВариантыНастроекОбмена);
|
||||
Параметры.Вставить("ВидГруппыДляВариантовНастроек", ВидГруппыФормы.Подменю);
|
||||
Параметры.Вставить("ИмяКонфигурацииИсточника", "");
|
||||
Параметры.Вставить("ВерсииФорматаОбмена", Новый Структура);
|
||||
Параметры.Вставить("ИмяКонфигурацииПриемника", Новый Структура);
|
||||
Параметры.Вставить("ВерсииФорматаОбмена", Новый Соответствие);
|
||||
Параметры.Вставить("ФорматОбмена", "");
|
||||
Параметры.Вставить("ПланОбменаИспользуетсяВМоделиСервиса", Ложь);
|
||||
Параметры.Вставить("ЭтоПланОбменаXDTO", Ложь);
|
||||
|
||||
@@ -863,10 +863,12 @@
|
||||
// добавляем запись в РС
|
||||
РегистрыСведений.НастройкиТранспортаОбмена.ОбновитьЗапись(СтруктураЗаписи);
|
||||
|
||||
Если ВерсияКорреспондента_2_0_1_6 Тогда
|
||||
WSПрокси.UpdateConnectionSettings(КодЭтогоУзла(), СериализаторXDTO.ЗаписатьXDTO(НастройкиПодключенияПолучателя));
|
||||
Иначе
|
||||
WSПрокси.UpdateConnectionSettings(КодЭтогоУзла(), ЗначениеВСтрокуВнутр(НастройкиПодключенияПолучателя));
|
||||
Если Не КонечнаяТочка = ПланыОбмена.ОбменСообщениями.ЭтотУзел() Тогда
|
||||
Если ВерсияКорреспондента_2_0_1_6 Тогда
|
||||
WSПрокси.UpdateConnectionSettings(КодЭтогоУзла(), СериализаторXDTO.ЗаписатьXDTO(НастройкиПодключенияПолучателя));
|
||||
Иначе
|
||||
WSПрокси.UpdateConnectionSettings(КодЭтогоУзла(), ЗначениеВСтрокуВнутр(НастройкиПодключенияПолучателя));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
@@ -954,14 +956,18 @@
|
||||
|
||||
ЗагруженныеОбъекты = Новый Массив;
|
||||
|
||||
НачатьТранзакцию();
|
||||
ЧтениеXML = Новый ЧтениеXML;
|
||||
Попытка
|
||||
|
||||
ЧтениеXML = Новый ЧтениеXML;
|
||||
ЧтениеXML.УстановитьСтроку(Поток);
|
||||
ЧтениеXML.Прочитать(); // узел "Root"
|
||||
ЧтениеXML.Прочитать(); // узел объекта
|
||||
|
||||
Исключение
|
||||
ЧтениеXML.Закрыть();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
|
||||
|
||||
Данные = ПрочитатьXML(ЧтениеXML);
|
||||
@@ -988,7 +994,6 @@
|
||||
Продолжить; // Загружаем только новые сообщения.
|
||||
КонецЕсли;
|
||||
|
||||
Данные.УстановитьНовыйКод();
|
||||
Данные.Отправитель = Отправитель;
|
||||
Данные.Получатель = ЭтотУзел();
|
||||
Данные.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения");
|
||||
@@ -1027,6 +1032,8 @@
|
||||
|
||||
Данные.ОбменДанными.Отправитель = Отправитель;
|
||||
Данные.ОбменДанными.Загрузка = Истина;
|
||||
|
||||
Данные.УстановитьНовыйКод();
|
||||
Данные.Записать();
|
||||
|
||||
Если ТребуетсяВосстановлениеРазделения Тогда
|
||||
@@ -1037,14 +1044,15 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЧтениеXML.Закрыть();
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ЧтениеXML.Закрыть();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
ЧтениеXML.Закрыть();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Только для внутреннего использования.
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "2.4.4.166";
|
||||
Описание.Версия = "2.4.5.71";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция Подключены() Экспорт
|
||||
|
||||
Если Заблокированы() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
// Вызов на сервере гарантирует получение корректного состояния в случае,
|
||||
// когда данные регистрации информационной базы были изменены методом
|
||||
// СистемаВзаимодействия.УстановитьДанныеРегистрацииИнформационнойБазы.
|
||||
Возврат СистемаВзаимодействия.ИнформационнаяБазаЗарегистрирована();
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Заблокированы() Экспорт
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ДанныеРегистрации = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
|
||||
"ДанныеРегистрацииИнформационнойБазыСистемыВзаимодействия");
|
||||
|
||||
Заблокированы = ДанныеРегистрации <> Неопределено;
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Возврат Заблокированы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура Заблокировать() Экспорт
|
||||
|
||||
Если Не ПравоДоступа("АдминистрированиеДанных", Метаданные) Тогда
|
||||
ВызватьИсключение
|
||||
НСтр("ru = 'Обсуждения не заблокированы. Для выполнения операции требуется право администрирования данных.'");
|
||||
КонецЕсли;
|
||||
|
||||
Если Заблокированы() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ДанныеРегистрации = СистемаВзаимодействия.ПолучитьДанныеРегистрацииИнформационнойБазы();
|
||||
|
||||
Если ТипЗнч(ДанныеРегистрации) = Тип("ДанныеРегистрацииИнформационнойБазыСистемыВзаимодействия") Тогда
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(
|
||||
"ДанныеРегистрацииИнформационнойБазыСистемыВзаимодействия",
|
||||
ДанныеРегистрации);
|
||||
КонецЕсли;
|
||||
|
||||
СистемаВзаимодействия.УстановитьДанныеРегистрацииИнформационнойБазы(Неопределено);
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Разблокировать() Экспорт
|
||||
|
||||
Если Не ПравоДоступа("АдминистрированиеДанных", Метаданные) Тогда
|
||||
ВызватьИсключение
|
||||
НСтр("ru = 'Обсуждения не заблокированы. Для выполнения операции требуется право администрирования данных.'");
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ДанныеРегистрации = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(
|
||||
"ДанныеРегистрацииИнформационнойБазыСистемыВзаимодействия");
|
||||
|
||||
ОбщегоНазначения.УдалитьДанныеИзБезопасногоХранилища("ДанныеРегистрацииИнформационнойБазыСистемыВзаимодействия");
|
||||
|
||||
Если ТипЗнч(ДанныеРегистрации) = Тип("ДанныеРегистрацииИнформационнойБазыСистемыВзаимодействия") Тогда
|
||||
СистемаВзаимодействия.УстановитьДанныеРегистрацииИнформационнойБазы(ДанныеРегистрации);
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеРегистрации = Неопределено;
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="2ca8bca9-813a-4833-8ef0-a5e83f91c10f">
|
||||
<name>ОбсужденияСлужебныйВызовСервера</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Обсуждения служебный вызов сервера</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<serverCall>true</serverCall>
|
||||
</mdclass:CommonModule>
|
||||
@@ -1,8 +1,8 @@
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ОбсужденияПодключены() Экспорт
|
||||
Функция Подключены() Экспорт
|
||||
|
||||
Возврат СистемаВзаимодействия.ИнформационнаяБазаЗарегистрирована();
|
||||
Возврат ОбсужденияСлужебныйВызовСервера.Подключены();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -265,10 +265,10 @@
|
||||
// то следует использовать предварительный переход в привилегированный режим.
|
||||
//
|
||||
// Параметры:
|
||||
// МассивСсылок - Массив - массив ссылок на объекты одного типа.
|
||||
// Ссылки - Массив - массив ссылок на объекты одного типа.
|
||||
// Значения массива должны быть ссылками на объекты одного типа.
|
||||
// если массив пуст, то результатом будет пустое соответствие.
|
||||
// ИменаРеквизитов - Строка - имена реквизитов перечисленные через запятую, в формате требований к свойствам
|
||||
// Реквизиты - Строка - имена реквизитов перечисленные через запятую, в формате требований к свойствам
|
||||
// структуры. Например, "Код, Наименование, Родитель".
|
||||
// ВыбратьРазрешенные - Булево - если Истина, то запрос к объектам выполняется с учетом прав пользователя, и в случае,
|
||||
// - если какой-либо объект будет исключен из выборки по правам, то этот объект
|
||||
@@ -283,56 +283,56 @@
|
||||
// ** Ключ - Строка - имя реквизита;
|
||||
// ** Значение - Произвольный - значение реквизита.
|
||||
//
|
||||
Функция ЗначенияРеквизитовОбъектов(МассивСсылок, ИменаРеквизитов, ВыбратьРазрешенные = Ложь) Экспорт
|
||||
Функция ЗначенияРеквизитовОбъектов(Ссылки, Знач Реквизиты, ВыбратьРазрешенные = Ложь) Экспорт
|
||||
|
||||
Если ПустаяСтрока(ИменаРеквизитов) Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Неверный второй параметр ИменаРеквизитов:
|
||||
Если ПустаяСтрока(Реквизиты) Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Неверный второй параметр Реквизиты:
|
||||
|- Поле объекта должно быть указано'");
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНайти(ИменаРеквизитов, ".") <> 0 Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Неверный второй параметр ИменаРеквизитов:
|
||||
Если СтрНайти(Реквизиты, ".") <> 0 Тогда
|
||||
ВызватьИсключение НСтр("ru = 'Неверный второй параметр Реквизиты:
|
||||
|- Обращение через точку не поддерживается'");
|
||||
КонецЕсли;
|
||||
|
||||
ЗначенияРеквизитов = Новый Соответствие;
|
||||
Если МассивСсылок.Количество() = 0 Тогда
|
||||
Если Ссылки.Количество() = 0 Тогда
|
||||
Возврат ЗначенияРеквизитов;
|
||||
КонецЕсли;
|
||||
|
||||
ПерваяСсылка = МассивСсылок[0];
|
||||
ПерваяСсылка = Ссылки[0];
|
||||
|
||||
Попытка
|
||||
ПолноеИмяОбъектаМетаданных = ПерваяСсылка.Метаданные().ПолноеИмя();
|
||||
Исключение
|
||||
ВызватьИсключение НСтр("ru = 'Неверный первый параметр МассивСсылок:
|
||||
ВызватьИсключение НСтр("ru = 'Неверный первый параметр Ссылки:
|
||||
|- Значения массива должны быть ссылками'");
|
||||
КонецПопытки;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ " + ?(ВыбратьРазрешенные, "РАЗРЕШЕННЫЕ", "") + "
|
||||
| Ссылка КАК Ссылка, " + ИменаРеквизитов + "
|
||||
| Ссылка КАК Ссылка, " + Реквизиты + "
|
||||
|ИЗ
|
||||
| " + ПолноеИмяОбъектаМетаданных + " КАК Таблица
|
||||
|ГДЕ
|
||||
| Таблица.Ссылка В (&МассивСсылок)";
|
||||
Запрос.УстановитьПараметр("МассивСсылок", МассивСсылок);
|
||||
| Таблица.Ссылка В (&Ссылки)";
|
||||
Запрос.УстановитьПараметр("Ссылки", Ссылки);
|
||||
|
||||
Попытка
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Исключение
|
||||
|
||||
// Удаление пробелов.
|
||||
ИменаРеквизитов = СтрЗаменить(ИменаРеквизитов, " ", "");
|
||||
Реквизиты = СтрЗаменить(Реквизиты, " ", "");
|
||||
// Преобразование параметра в массив полей.
|
||||
ИменаРеквизитов = СтрРазделить(ИменаРеквизитов, ",");
|
||||
Реквизиты = СтрРазделить(Реквизиты, ",");
|
||||
|
||||
// Поиск ошибки доступности полей.
|
||||
Результат = НайтиОшибкуДоступностиРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, ИменаРеквизитов);
|
||||
Результат = НайтиОшибкуДоступностиРеквизитовОбъекта(ПолноеИмяОбъектаМетаданных, Реквизиты);
|
||||
Если Результат.Ошибка Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неверный второй параметр ИменаРеквизитов: %1'"), Результат.ОписаниеОшибки);
|
||||
НСтр("ru = 'Неверный второй параметр Реквизиты: %1'"), Результат.ОписаниеОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
// Не удалось распознать ошибку, проброс первичной ошибки.
|
||||
@@ -341,7 +341,7 @@
|
||||
КонецПопытки;
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Результат = Новый Структура(ИменаРеквизитов);
|
||||
Результат = Новый Структура(Реквизиты);
|
||||
ЗаполнитьЗначенияСвойств(Результат, Выборка);
|
||||
ЗначенияРеквизитов[Выборка.Ссылка] = Результат;
|
||||
КонецЦикла;
|
||||
@@ -7493,14 +7493,14 @@
|
||||
Если Тест[ИмяРеквизита] = Неопределено Тогда
|
||||
Тест[ИмяРеквизита] = -1;
|
||||
ЗаполнитьЗначенияСвойств(Тест, Результат);
|
||||
Если Тест[ИмяРеквизита] = Неопределено Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Ошибка вычисления %1 для объекта %2. Реквизит %3 не найден'"),
|
||||
ПутьДанных, Данные, ИмяРеквизита);
|
||||
// Реквизит либо не существует в метаданных, либо его значение = Неопределено.
|
||||
Если Тест[ИмяРеквизита] = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Тест[ИмяРеквизита];
|
||||
Если Результат = Неопределено Тогда // Не можем дальше читать.
|
||||
Если Результат = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -3350,47 +3350,62 @@
|
||||
#Иначе
|
||||
|
||||
Описание = Новый Массив;
|
||||
Журнал = Новый Массив;
|
||||
|
||||
Журнал.Добавить(
|
||||
НСтр("ru = 'Журнал диагностики:
|
||||
|Выполнена проверка возможности установить соединение.
|
||||
|Описание диагностируемой ошибки см. в следующем сообщении журнала.'"));
|
||||
Журнал.Добавить();
|
||||
|
||||
Описание.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'При обращении по URL: %1'"),
|
||||
URL));
|
||||
Описание.Добавить(ПредставлениеМестаДиагностики());
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Описание.Добавить(
|
||||
НСтр("ru = 'Обратитесь к администратору.'"));
|
||||
|
||||
ОписаниеОшибки = СтрСоединить(Описание, Символы.ПС);
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("ОписаниеОшибки", ОписаниеОшибки);
|
||||
Результат.Вставить("ЖурналДиагностики", "");
|
||||
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
Журнал = Новый Массив;
|
||||
Журнал.Добавить(
|
||||
НСтр("ru = 'Журнал диагностики:
|
||||
|Выполняется проверка доступности сервера.
|
||||
|Описание диагностируемой ошибки см. в следующем сообщении журнала.'"));
|
||||
Журнал.Добавить();
|
||||
|
||||
СоединениеЧерезПрокси = Ложь;
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер =
|
||||
ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернетаКлиентСервер");
|
||||
СостояниеНастроекПрокси = МодульПолучениеФайловИзИнтернетаКлиентСервер.СостояниеНастроекПрокси();
|
||||
|
||||
СоединениеЧерезПрокси = СостояниеНастроекПрокси.СоединениеЧерезПрокси;
|
||||
|
||||
Журнал.Добавить(СостояниеНастроекПрокси.Представление);
|
||||
КонецЕсли;
|
||||
#Иначе
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер =
|
||||
ОбщегоНазначенияКлиент.ОбщийМодуль("ПолучениеФайловИзИнтернетаКлиентСервер");
|
||||
СостояниеНастроекПрокси = МодульПолучениеФайловИзИнтернетаКлиентСервер.СостояниеНастроекПрокси();
|
||||
|
||||
СоединениеЧерезПрокси = СостояниеНастроекПрокси.СоединениеЧерезПрокси;
|
||||
|
||||
Журнал.Добавить(СостояниеНастроекПрокси.Представление);
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер =
|
||||
ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернетаКлиентСервер");
|
||||
СостояниеНастроекПрокси = МодульПолучениеФайловИзИнтернетаКлиентСервер.СостояниеНастроекПрокси();
|
||||
|
||||
СоединениеЧерезПрокси = СостояниеНастроекПрокси.СоединениеЧерезПрокси;
|
||||
|
||||
Журнал.Добавить(СостояниеНастроекПрокси.Представление);
|
||||
КонецЕсли;
|
||||
#Иначе
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер =
|
||||
ОбщегоНазначенияКлиент.ОбщийМодуль("ПолучениеФайловИзИнтернетаКлиентСервер");
|
||||
СостояниеНастроекПрокси = МодульПолучениеФайловИзИнтернетаКлиентСервер.СостояниеНастроекПрокси();
|
||||
|
||||
СоединениеЧерезПрокси = СостояниеНастроекПрокси.СоединениеЧерезПрокси;
|
||||
|
||||
Журнал.Добавить(СостояниеНастроекПрокси.Представление);
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
Если СоединениеЧерезПрокси Тогда
|
||||
|
||||
Описание.Добавить(
|
||||
НСтр("ru = 'Диагностика соединения не выполнена, т.к. настроен прокси-сервер. Обратитесь к администратору.'"));
|
||||
НСтр("ru = 'Диагностика соединения не выполнена, т.к. настроен прокси-сервер.
|
||||
|Обратитесь к администратору.'"));
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -3423,8 +3438,6 @@
|
||||
|- неполадки у интернет-провайдера;
|
||||
|- подключение к интернету блокирует межсетевой экран,
|
||||
| антивирусная программа или другое программное обеспечение.'"));
|
||||
|
||||
ЖурналТрассировки = ЖурналТрассировкиМаршрутаСервера(АдресСервераКонтрольнойПроверки);
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -3437,10 +3450,10 @@
|
||||
АдресСервераРесурса));
|
||||
|
||||
ЖурналТрассировки = ЖурналТрассировкиМаршрутаСервера(АдресСервераРесурса);
|
||||
Журнал.Добавить("3) " + ЖурналТрассировки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Журнал.Добавить("3) " + ЖурналТрассировки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -3453,22 +3466,9 @@
|
||||
ЖурналДиагностики = СтрСоединить(Журнал, Символы.ПС);
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
// В модели сервиса результат диагностики не возвращаем. В журнал не пишем.
|
||||
// Демаскировать внутреннюю архитектуру запрещено.
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("ОписаниеОшибки", ОписаниеОшибки);
|
||||
Результат.Вставить("ЖурналДиагностики", "");
|
||||
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписьЖурналаРегистрации(
|
||||
НСтр("ru = 'Диагностика соединения'", КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,,, ЖурналДиагностики);
|
||||
|
||||
#Иначе
|
||||
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||
НСтр("ru = 'Диагностика соединения'", КодОсновногоЯзыка()),
|
||||
@@ -3485,6 +3485,26 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создает объект описания защищенного соединения OpenSSL.
|
||||
// Параметры:
|
||||
// СертификатКлиента - СертификатКлиентаФайл,
|
||||
// СертификатКлиентаWindows,
|
||||
// Неопределено - см ЗащищенноеСоединениеOpenSSL.
|
||||
// СертификатыУдостоверяющихЦентров - СертификатыУдостоверяющихЦентровФайл,
|
||||
// СертификатыУдостоверяющихЦентровWindows,
|
||||
// СертификатыУдостоверяющихЦентровLinux,
|
||||
// СертификатыУдостоверяющихЦентровОС,
|
||||
// Неопределено - см ЗащищенноеСоединениеOpenSSL.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ЗащищенноеСоединениеOpenSSL - описание защищенного соединения.
|
||||
//
|
||||
Функция НовоеЗащищенноеСоединение(СертификатКлиента = Неопределено, СертификатыУдостоверяющихЦентров = Неопределено) Экспорт
|
||||
|
||||
Возврат Новый ЗащищенноеСоединениеOpenSSL(СертификатКлиента, СертификатыУдостоверяющихЦентров);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область УстаревшиеПроцедурыИФункции
|
||||
|
||||
// Устарела. Следует использовать ОбщегоНазначенияКлиентСервер.РазностьМассивов
|
||||
@@ -3681,18 +3701,39 @@
|
||||
Функция ПредставлениеТипов(ОжидаемыеТипы)
|
||||
Если ТипЗнч(ОжидаемыеТипы) = Тип("Массив") Тогда
|
||||
Результат = "";
|
||||
Индекс = 0;
|
||||
Для Каждого Тип Из ОжидаемыеТипы Цикл
|
||||
Если Не ПустаяСтрока(Результат) Тогда
|
||||
Результат = Результат + ", ";
|
||||
КонецЕсли;
|
||||
Результат = Результат + ?(Тип = Неопределено, "Неопределено", Строка(Тип));
|
||||
Результат = Результат + ПредставлениеТипа(Тип);
|
||||
Индекс = Индекс + 1;
|
||||
Если Индекс > 10 Тогда
|
||||
Результат = Результат + ",... "
|
||||
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='(всего %1 типов)'"), ОжидаемыеТипы.Количество());
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
Иначе
|
||||
Возврат Строка(ОжидаемыеТипы);
|
||||
Возврат ПредставлениеТипа(ОжидаемыеТипы);
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
|
||||
Функция ПредставлениеТипа(Тип)
|
||||
Если Тип = Неопределено Тогда
|
||||
Возврат "Неопределено";
|
||||
ИначеЕсли ТипЗнч(Тип) = Тип("ОписаниеТипов") Тогда
|
||||
ТипСтрокой = Строка(Тип);
|
||||
Возврат ?(СтрДлина(ТипСтрокой) > 150, Лев(ТипСтрокой, 150) + "..."
|
||||
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='(всего %1 типов)'"), Тип.Типы().Количество()),
|
||||
ТипСтрокой);
|
||||
Иначе
|
||||
ТипСтрокой = Строка(Тип);
|
||||
Возврат ?(СтрДлина(ТипСтрокой) > 150, Лев(ТипСтрокой, 150) + "...", ТипСтрокой);
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
|
||||
Функция МаксимальноеЗначениеВМассиве(Массив)
|
||||
|
||||
МаксимальноеЗначение = 0;
|
||||
@@ -3811,9 +3852,9 @@
|
||||
Или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64);
|
||||
|
||||
Если ЭтоWindows Тогда
|
||||
ШаблонКоманды = "ping %1 -n 2";
|
||||
ШаблонКоманды = "ping %1 -n 2 -w 100";
|
||||
Иначе
|
||||
ШаблонКоманды = "ping -c 2 %1";
|
||||
ШаблонКоманды = "ping -c 2 -w 100 %1";
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаКоманды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКоманды, АдресСервера);
|
||||
@@ -3864,11 +3905,12 @@
|
||||
Или (СистемнаяИнформация.ТипПлатформы = ТипПлатформы.Windows_x86_64);
|
||||
|
||||
Если ЭтоWindows Тогда
|
||||
ШаблонКоманды = "tracert -w 500 %1";
|
||||
ШаблонКоманды = "tracert -w 100 -h 15 %1";
|
||||
Иначе
|
||||
ШаблонКоманды = "traceroute -w 500 %1";
|
||||
// Если вдруг пакет не установлен - в потоке вывода будет ошибка.
|
||||
// Ну и ладно - мы результат все равно не разбираем, администратор поймет что ему надо доставить.
|
||||
// Если вдруг пакет traceroute не установлен - в потоке вывода будет ошибка.
|
||||
// Т.к. результат все равно не разбирается, на поток вывода можно не обращать внимания.
|
||||
// По нему администратор поймет что ему надо доставить.
|
||||
ШаблонКоманды = "traceroute -w 100 -m 100 %1";
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаКоманды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКоманды, АдресСервера);
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
|
||||
Попытка
|
||||
Соединение = Новый HTTPСоединение("sms4b.ru", , , , ПолучениеФайловИзИнтернетаКлиентСервер.ПолучитьПрокси("https"),
|
||||
60, Новый ЗащищенноеСоединениеOpenSSL(, Новый СертификатыУдостоверяющихЦентровОС));
|
||||
60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
|
||||
|
||||
HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
|
||||
Исключение
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
|
||||
Попытка
|
||||
Соединение = Новый HTTPСоединение("sms.ru", , , , ПолучениеФайловИзИнтернетаКлиентСервер.ПолучитьПрокси("http"),
|
||||
60, Новый ЗащищенноеСоединениеOpenSSL(, Новый СертификатыУдостоверяющихЦентровОС));
|
||||
60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
|
||||
|
||||
HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
|
||||
Исключение
|
||||
|
||||
@@ -873,18 +873,17 @@
|
||||
СвойстваНастройки = Информация.Поиск.ПользовательскиеНастройки.Получить(НастройкаВарианта.Идентификатор);
|
||||
КонецЕсли;
|
||||
|
||||
Если СвойстваНастройки = Неопределено
|
||||
И (НастройкаВарианта.Тип = "ЭлементОтбора" Или НастройкаВарианта.Тип = "ЗначениеПараметраНастроек") Тогда
|
||||
Родитель.Строки.Удалить(НастройкаВарианта); // В целях оптимизации.
|
||||
Продолжить;
|
||||
Если НастройкаВарианта.Тип = "ЭлементОтбора" Или НастройкаВарианта.Тип = "ЗначениеПараметраНастроек" Тогда
|
||||
// Пропускаем все настройки СКД, которые не включены в пользовательские настройки, кроме параметров СКД.
|
||||
Если СвойстваНастройки = Неопределено И Владелец.ИмяКоллекции <> "ПараметрыДанных" Тогда
|
||||
Родитель.Строки.Удалить(НастройкаВарианта); // В целях оптимизации.
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ЗарегистрироватьПоле(Информация, УзелКД, ЭлементКД, НастройкаВарианта);
|
||||
ЗарегистрироватьТипыИСвязи(Информация, НастройкаВарианта);
|
||||
КонецЕсли;
|
||||
|
||||
Если СвойстваНастройки <> Неопределено Тогда
|
||||
Если НастройкаВарианта.Тип = "ЭлементОтбора"
|
||||
Или НастройкаВарианта.Тип = "ЗначениеПараметраНастроек" Тогда
|
||||
ЗарегистрироватьПоле(Информация, УзелКД, ЭлементКД, НастройкаВарианта);
|
||||
ЗарегистрироватьТипыИСвязи(Информация, НастройкаВарианта);
|
||||
КонецЕсли;
|
||||
НастройкаВарианта.ПользовательскаяНастройка = СвойстваНастройки;
|
||||
ЗарегистрироватьПользовательскуюНастройку(Информация, СвойстваНастройки, Неопределено, НастройкаВарианта);
|
||||
Если Информация.ТолькоПользовательские Тогда
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗащищенноеСоединение = Истина Тогда
|
||||
ЗащищенноеСоединение = НовыйЗащищенноеСоединение();
|
||||
ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||
ИначеЕсли ЗащищенноеСоединение = Ложь Тогда
|
||||
ЗащищенноеСоединение = Неопределено;
|
||||
// Иначе параметр ЗащищенноеСоединение был задан в явном виде.
|
||||
@@ -352,51 +352,24 @@
|
||||
|
||||
Попытка
|
||||
|
||||
Соединение = Новый FTPСоединение(
|
||||
Сервер,
|
||||
Порт,
|
||||
ИмяПользователя,
|
||||
ПарольПользователя,
|
||||
Прокси,
|
||||
ПассивноеСоединение,
|
||||
10,
|
||||
ЗащищенноеСоединение,
|
||||
УровеньИспользованияЗащищенногоСоединения);
|
||||
|
||||
Сервер = Соединение.Сервер;
|
||||
Порт = Соединение.Порт;
|
||||
|
||||
РазмерФайла = РазмерФайлаFTP(Соединение, ПутьНаСервере);
|
||||
|
||||
Исключение
|
||||
|
||||
РезультатДиагностики = ОбщегоНазначенияКлиентСервер.ДиагностикаСоединения(URL);
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось установить FTP-соединение с сервером %1:%2
|
||||
|по причине:
|
||||
|%3
|
||||
|
|
||||
|Результат диагностики:
|
||||
|%4'"),
|
||||
Сервер, Формат(Порт, "ЧГ="),
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
|
||||
РезультатДиагностики.ОписаниеОшибки);
|
||||
Если Таймаут = АвтоматическоеОпределениеТаймаута() Тогда
|
||||
|
||||
Соединение = Новый FTPСоединение(
|
||||
Сервер,
|
||||
Порт,
|
||||
ИмяПользователя,
|
||||
ПарольПользователя,
|
||||
Прокси,
|
||||
ПассивноеСоединение,
|
||||
7,
|
||||
ЗащищенноеСоединение,
|
||||
УровеньИспользованияЗащищенногоСоединения);
|
||||
|
||||
РазмерФайла = РазмерФайлаFTP(Соединение, ПутьНаСервере);
|
||||
Таймаут = ТаймаутПоРазмеруФайла(РазмерФайла);
|
||||
|
||||
Если ЗаписыватьОшибку Тогда
|
||||
ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РезультатПолученияФайла(Ложь, ТекстОшибки);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Если Таймаут = АвтоматическоеОпределениеТаймаута() Тогда
|
||||
Таймаут = ТаймаутПоРазмеруФайла(РазмерФайла);
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
|
||||
Соединение = Новый FTPСоединение(
|
||||
Сервер,
|
||||
Порт,
|
||||
@@ -408,16 +381,24 @@
|
||||
ЗащищенноеСоединение,
|
||||
УровеньИспользованияЗащищенногоСоединения);
|
||||
|
||||
Сервер = Соединение.Сервер;
|
||||
Порт = Соединение.Порт;
|
||||
|
||||
Соединение.Получить(ПутьНаСервере, ПутьДляСохранения);
|
||||
|
||||
Исключение
|
||||
|
||||
РезультатДиагностики = ОбщегоНазначенияКлиентСервер.ДиагностикаСоединения(URL);
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось получить файл %1 с сервера %2:%3
|
||||
|по причине:
|
||||
|%4'"),
|
||||
|%4
|
||||
|Результат диагностики:
|
||||
|%5'"),
|
||||
URL, Сервер, Формат(Порт, "ЧГ="),
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КраткоеПредставлениеОшибки(ИнформацияОбОшибке()),
|
||||
РезультатДиагностики.ОписаниеОшибки);
|
||||
|
||||
Если ЗаписыватьОшибку Тогда
|
||||
СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
@@ -444,20 +425,40 @@
|
||||
|
||||
Попытка
|
||||
|
||||
Если Таймаут = АвтоматическоеОпределениеТаймаута() Тогда
|
||||
|
||||
Соединение = Новый HTTPСоединение(
|
||||
Сервер,
|
||||
Порт,
|
||||
ИмяПользователя,
|
||||
ПарольПользователя,
|
||||
Прокси,
|
||||
7,
|
||||
ЗащищенноеСоединение,
|
||||
ИспользоватьАутентификациюОС);
|
||||
|
||||
РазмерФайла = РазмерФайлаHTTP(Соединение, ПутьНаСервере, Заголовки);
|
||||
Таймаут = ТаймаутПоРазмеруФайла(РазмерФайла);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Соединение = Новый HTTPСоединение(
|
||||
Сервер,
|
||||
Порт,
|
||||
ИмяПользователя,
|
||||
ПарольПользователя,
|
||||
Прокси,
|
||||
10,
|
||||
Таймаут,
|
||||
ЗащищенноеСоединение,
|
||||
ИспользоватьАутентификациюОС);
|
||||
|
||||
Сервер = Соединение.Сервер;
|
||||
Порт = Соединение.Порт;
|
||||
|
||||
РазмерФайла = РазмерФайлаHTTP(Соединение, ПутьНаСервере, Заголовки);
|
||||
ЗапросHTTP = Новый HTTPЗапрос(ПутьНаСервере, Заголовки);
|
||||
ЗапросHTTP.Заголовки.Вставить("Accept-Charset", "UTF-8");
|
||||
ЗапросHTTP.Заголовки.Вставить("X-1C-Request-UID", Строка(Новый УникальныйИдентификатор));
|
||||
ОтветHTTP = Соединение.Получить(ЗапросHTTP, ПутьДляСохранения);
|
||||
|
||||
Исключение
|
||||
|
||||
@@ -484,27 +485,8 @@
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Если Таймаут = АвтоматическоеОпределениеТаймаута() Тогда
|
||||
Таймаут = ТаймаутПоРазмеруФайла(РазмерФайла);
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
|
||||
Соединение = Новый HTTPСоединение(
|
||||
Сервер,
|
||||
Порт,
|
||||
ИмяПользователя,
|
||||
ПарольПользователя,
|
||||
Прокси,
|
||||
Таймаут,
|
||||
ЗащищенноеСоединение,
|
||||
ИспользоватьАутентификациюОС);
|
||||
|
||||
ЗапросHTTP = Новый HTTPЗапрос(ПутьНаСервере, Заголовки);
|
||||
ЗапросHTTP.Заголовки.Вставить("Accept-Charset", "UTF-8");
|
||||
ЗапросHTTP.Заголовки.Вставить("X-1C-Request-UID", Строка(Новый УникальныйИдентификатор));
|
||||
ОтветHTTP = Соединение.Получить(ЗапросHTTP, ПутьДляСохранения);
|
||||
|
||||
Если ОтветHTTP.КодСостояния = 301 // 301 Moved Permanently
|
||||
Или ОтветHTTP.КодСостояния = 302 // 302 Found, 302 Moved Temporarily
|
||||
Или ОтветHTTP.КодСостояния = 303 // 303 See Other by GET
|
||||
@@ -696,7 +678,11 @@
|
||||
Функция РазмерФайлаHTTP(СоединениеHTTP, Знач ПутьНаСервере, Знач Заголовки = Неопределено)
|
||||
|
||||
ЗапросHTTP = Новый HTTPЗапрос(ПутьНаСервере, Заголовки);
|
||||
ПолученныеЗаголовки = СоединениеHTTP.ПолучитьЗаголовки(ЗапросHTTP);// HEAD
|
||||
Попытка
|
||||
ПолученныеЗаголовки = СоединениеHTTP.ПолучитьЗаголовки(ЗапросHTTP);// HEAD
|
||||
Исключение
|
||||
Возврат 0;
|
||||
КонецПопытки;
|
||||
РазмерСтрокой = ПолученныеЗаголовки.Заголовки["Content-Length"];
|
||||
|
||||
ТипЧисло = Новый ОписаниеТипов("Число");
|
||||
@@ -710,10 +696,14 @@
|
||||
|
||||
РазмерФайла = 0;
|
||||
|
||||
НайденныеФайлы = СоединениеFTP.НайтиФайлы(ПутьНаСервере);
|
||||
Если НайденныеФайлы.Количество() > 0 Тогда
|
||||
РазмерФайла = НайденныеФайлы[0].Размер();
|
||||
КонецЕсли;
|
||||
Попытка
|
||||
НайденныеФайлы = СоединениеFTP.НайтиФайлы(ПутьНаСервере);
|
||||
Если НайденныеФайлы.Количество() > 0 Тогда
|
||||
РазмерФайла = НайденныеФайлы[0].Размер();
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
РазмерФайла = 0;
|
||||
КонецПопытки;
|
||||
|
||||
Возврат РазмерФайла;
|
||||
|
||||
@@ -893,18 +883,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НастройкаПроксиСервера()
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
НастройкаПроксиСервера = ПолучениеФайловИзИнтернета.НастройкиПроксиНаСервере();
|
||||
#Иначе
|
||||
НастройкаПроксиСервера = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().НастройкиПроксиСервера;
|
||||
#КонецЕсли
|
||||
|
||||
Возврат НастройкаПроксиСервера;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПредставлениеИнтернетПрокси(Прокси)
|
||||
|
||||
Журнал = Новый Массив;
|
||||
@@ -948,6 +926,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НастройкаПроксиСервера()
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
НастройкаПроксиСервера = ПолучениеФайловИзИнтернета.НастройкиПроксиНаСервере();
|
||||
#Иначе
|
||||
НастройкаПроксиСервера = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().НастройкиПроксиСервера;
|
||||
#КонецЕсли
|
||||
|
||||
Возврат НастройкаПроксиСервера;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает прокси по настройкам НастройкаПроксиСервера для заданного протокола Протокол.
|
||||
//
|
||||
@@ -1020,13 +1009,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НовыйЗащищенноеСоединение()
|
||||
|
||||
Сертификаты = Новый СертификатыУдостоверяющихЦентровОС;
|
||||
Возврат Новый ЗащищенноеСоединениеOpenSSL(, Сертификаты);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Записывает событие-ошибку в журнал регистрации. Имя события
|
||||
// "Получение файлов из Интернета".
|
||||
// Параметры:
|
||||
@@ -1054,4 +1036,4 @@
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
@@ -916,7 +916,6 @@
|
||||
МенеджерЗаписи.ДвоичныеДанныеФайла = Новый ХранилищеЗначения(ХранилищеФайла.Получить(), Новый СжатиеДанных(9));
|
||||
МенеджерЗаписи.Записать();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ТекущаяВерсияОбъект.ПометкаУдаления = Истина;
|
||||
|
||||
@@ -1250,7 +1250,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
МодульЭлектроннаяПодписьСлужебный = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьСлужебный");
|
||||
Если Не МодульЭлектроннаяПодписьСлужебный.ДоступнаЭлектроннаяПодпись(ПодписанныйФайл) Тогда
|
||||
Если Не МодульЭлектроннаяПодписьСлужебный.ДоступнаЭлектроннаяПодпись(ТипЗнч(ПодписанныйФайл)) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -5896,12 +5896,20 @@
|
||||
КонецФункции
|
||||
|
||||
// Инициализирует объект HTTPСоединение.
|
||||
//
|
||||
// Параметры:
|
||||
// СтруктураHref - Структура - Описание параметров подключения.
|
||||
// ПараметрыСинхронизации - Структура - Параметры подключения: логин и пароль.
|
||||
// Таймаут - Число - Определяет время ожидания осуществляемого соединения и операций, в секундах.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// HTTPСоединение - Установленное соединение.
|
||||
//
|
||||
Функция СоздатьHTTPСоединениеWebdav(СтруктураHref, ПараметрыСинхронизации, Таймаут)
|
||||
|
||||
ЗащищенноеСоединение = Неопределено;
|
||||
Если СтруктураHref.Схема = "https" Тогда
|
||||
Сертификаты = Новый СертификатыУдостоверяющихЦентровОС;
|
||||
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(, Сертификаты);
|
||||
Если СтруктураHref.Схема = "https" Тогда
|
||||
ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(СтруктураHref.Порт) Тогда
|
||||
@@ -5934,7 +5942,7 @@
|
||||
Результат = Новый Структура("Успешно, АдресВременныхДанных, ТекстОшибки");
|
||||
СтруктураHref = СтруктураURIРаскодированная(Href);
|
||||
|
||||
Таймаут = ?(ДлинаФайла <> Неопределено, РассчитатьТаймаут(ДлинаФайла), 43200);
|
||||
Таймаут = ?(ДлинаФайла <> Неопределено, РассчитатьТаймаут(ДлинаФайла), 43200); // размер в мегабайтах * 128 или 12 часов.
|
||||
HTTP = СоздатьHTTPСоединениеWebdav(СтруктураHref, ПараметрыСинхронизации, Таймаут);
|
||||
|
||||
ЗаголовкиHTTP = Новый Соответствие;
|
||||
|
||||
@@ -1314,7 +1314,7 @@
|
||||
ФайлОбъект = НовыйФайл.ПолучитьОбъект();
|
||||
ФайлОбъект.ПодписанЭП = Истина;
|
||||
ФайлОбъект.Записать();
|
||||
|
||||
|
||||
ЭлектронныеПодписиИсходногоФайла = МодульЭлектроннаяПодпись.УстановленныеПодписи(ИсходныйФайл);
|
||||
Для Каждого ЭП Из ЭлектронныеПодписиИсходногоФайла Цикл
|
||||
МенеджерЗаписи = РегистрыСведений["ЭлектронныеПодписи"].СоздатьМенеджерЗаписи();
|
||||
|
||||
@@ -106,6 +106,7 @@
|
||||
#КонецЕсли
|
||||
|
||||
КоличествоСлучайныхВариантов = 26;
|
||||
КодБукваA = КодСимвола("A", 1);
|
||||
Пока НЕ Успешно И ЦиклНомер < 100 Цикл
|
||||
НомерКаталога = 0;
|
||||
|
||||
@@ -120,7 +121,6 @@
|
||||
КонецЕсли;
|
||||
|
||||
БуквыКаталога = "";
|
||||
КодБукваA = КодСимвола("A", 1);
|
||||
|
||||
Пока Истина Цикл
|
||||
НомерБуквы = НомерКаталога % 26;
|
||||
@@ -138,7 +138,7 @@
|
||||
|
||||
// По умолчанию вначале используется корень, если возможности нет,
|
||||
// то добавляется A, B, ... Z, .. ZZZZZ, .. AAAAA1, .. AAAAA2 и т.д.
|
||||
Если Счетчик = 0 Тогда
|
||||
Если Счетчик = 0 Тогда
|
||||
ПодКаталог = "";
|
||||
Иначе
|
||||
ПодКаталог = БуквыКаталога;
|
||||
@@ -149,6 +149,10 @@
|
||||
ПодКаталог = ПодКаталог + ЦиклНомерСтрока;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоЗарезервированноеИмяКаталога(ПодКаталог) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПодКаталог = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(ПодКаталог);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -173,7 +177,7 @@
|
||||
|
||||
// Проверка, есть ли файл с таким именем.
|
||||
ФайлНаДиске = Новый Файл(ФайлПопытки);
|
||||
Если НЕ ФайлНаДиске.Существует() Тогда // Нет такого файла.
|
||||
Если НЕ ФайлНаДиске.Существует() Тогда // Нет такого файла.
|
||||
ИтоговыйПуть = ПодКаталог + ИмяФайла;
|
||||
Успешно = Истина;
|
||||
КонецЕсли;
|
||||
@@ -777,4 +781,16 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоЗарезервированноеИмяКаталога(ИмяПодКаталога)
|
||||
|
||||
СписокИмен = Новый Соответствие();
|
||||
СписокИмен.Вставить("CON", Истина);
|
||||
СписокИмен.Вставить("PRN", Истина);
|
||||
СписокИмен.Вставить("AUX", Истина);
|
||||
СписокИмен.Вставить("NUL", Истина);
|
||||
|
||||
Возврат СписокИмен[ИмяПодКаталога] <> Неопределено;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -257,6 +257,11 @@
|
||||
ХранилищеЗначения = Новый ХранилищеЗначения(ПараметрыБлокировки);
|
||||
Константы.ПараметрыБлокировкиРаботыСВнешнимиРесурсами.Установить(ХранилищеЗначения);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Обсуждения") Тогда
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ОбсужденияСлужебныйВызовСервера");
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер.Разблокировать();
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована = Ложь;
|
||||
|
||||
ОбновитьПовторноИспользуемыеЗначения();
|
||||
@@ -276,9 +281,15 @@
|
||||
Константы.ПараметрыБлокировкиРаботыСВнешнимиРесурсами.Установить(ХранилищеЗначения);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Обсуждения") Тогда
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ОбсужденияСлужебныйВызовСервера");
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер.Заблокировать();
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована = Истина;
|
||||
|
||||
ОбновитьПовторноИспользуемыеЗначения();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает признак установленной блокировки работы с внешними ресурсами.
|
||||
@@ -1456,6 +1467,11 @@
|
||||
ХранилищеЗначения = Новый ХранилищеЗначения(ПараметрыБлокировки);
|
||||
Константы.ПараметрыБлокировкиРаботыСВнешнимиРесурсами.Установить(ХранилищеЗначения);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Обсуждения") Тогда
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ОбсужденияСлужебныйВызовСервера");
|
||||
МодульПолучениеФайловИзИнтернетаКлиентСервер.Заблокировать();
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Работа с внешними ресурсами заблокирована'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Предупреждение, , , ТекстСообщения);
|
||||
|
||||
|
||||
@@ -498,7 +498,7 @@
|
||||
|
||||
Таймаут = 10;
|
||||
|
||||
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(, Новый СертификатыУдостоверяющихЦентровОС);
|
||||
ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||
Возврат Новый HTTPСоединение(АдресСервера,,,, ИнтернетПрокси, Таймаут, ЗащищенноеСоединение);
|
||||
|
||||
КонецФункции
|
||||
@@ -509,7 +509,7 @@
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
ВладелецТокена = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.СклоненияПредставленийОбъектов");
|
||||
Токен = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецТокена, "ТокенДоступаКСервисуMorpher");
|
||||
Токен = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецТокена, "ТокенДоступаКСервисуMorpher", Истина);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Если ЗначениеЗаполнено(Токен) Тогда
|
||||
|
||||
@@ -1,113 +1,5 @@
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ТекущийБраузер()
|
||||
|
||||
Результат = Новый Структура("Название,Версия", "Другой", "");
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
Строка = СистемнаяИнформация.ИнформацияПрограммыПросмотра;
|
||||
Строка = СтрЗаменить(Строка, ",", ";");
|
||||
|
||||
// Opera
|
||||
Идентификатор = "Opera";
|
||||
Позиция = СтрНайти(Строка, Идентификатор, НаправлениеПоиска.СКонца);
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Результат.Название = "Opera";
|
||||
Идентификатор = "Version/";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Результат.Версия = СокрЛП(Строка);
|
||||
Иначе
|
||||
Строка = СокрЛП(Строка);
|
||||
Если СтрНачинаетсяС(Строка, "/") Тогда
|
||||
Строка = Сред(Строка, 2);
|
||||
КонецЕсли;
|
||||
Результат.Версия = СокрЛ(Строка);
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// IE
|
||||
Идентификатор = "MSIE"; // v11-
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Название = "IE";
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Позиция = СтрНайти(Строка, ";");
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = СокрЛ(Лев(Строка, Позиция - 1));
|
||||
Результат.Версия = Строка;
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Идентификатор = "Trident"; // v11+
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Название = "IE";
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
|
||||
Идентификатор = "rv:";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Позиция = СтрНайти(Строка, ")");
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = СокрЛ(Лев(Строка, Позиция - 1));
|
||||
Результат.Версия = Строка;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Chrome
|
||||
Идентификатор = "Chrome/";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Название = "Chrome";
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Позиция = СтрНайти(Строка, " ");
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = СокрЛ(Лев(Строка, Позиция - 1));
|
||||
Результат.Версия = Строка;
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Safari
|
||||
Идентификатор = "Safari/";
|
||||
Если СтрНайти(Строка, Идентификатор) > 0 Тогда
|
||||
Результат.Название = "Safari";
|
||||
Идентификатор = "Version/";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Позиция = СтрНайти(Строка, " ");
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Версия = СокрЛП(Лев(Строка, Позиция - 1));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Firefox
|
||||
Идентификатор = "Firefox/";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Название = "Firefox";
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Если Не ПустаяСтрока(Строка) Тогда
|
||||
Результат.Версия = СокрЛП(Строка);
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске().
|
||||
Функция ПараметрыРаботыКлиентаПриЗапуске() Экспорт
|
||||
|
||||
@@ -241,6 +133,114 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ТекущийБраузер()
|
||||
|
||||
Результат = Новый Структура("Название,Версия", "Другой", "");
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
Строка = СистемнаяИнформация.ИнформацияПрограммыПросмотра;
|
||||
Строка = СтрЗаменить(Строка, ",", ";");
|
||||
|
||||
// Opera
|
||||
Идентификатор = "Opera";
|
||||
Позиция = СтрНайти(Строка, Идентификатор, НаправлениеПоиска.СКонца);
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Результат.Название = "Opera";
|
||||
Идентификатор = "Version/";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Результат.Версия = СокрЛП(Строка);
|
||||
Иначе
|
||||
Строка = СокрЛП(Строка);
|
||||
Если СтрНачинаетсяС(Строка, "/") Тогда
|
||||
Строка = Сред(Строка, 2);
|
||||
КонецЕсли;
|
||||
Результат.Версия = СокрЛ(Строка);
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// IE
|
||||
Идентификатор = "MSIE"; // v11-
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Название = "IE";
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Позиция = СтрНайти(Строка, ";");
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = СокрЛ(Лев(Строка, Позиция - 1));
|
||||
Результат.Версия = Строка;
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Идентификатор = "Trident"; // v11+
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Название = "IE";
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
|
||||
Идентификатор = "rv:";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Позиция = СтрНайти(Строка, ")");
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = СокрЛ(Лев(Строка, Позиция - 1));
|
||||
Результат.Версия = Строка;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Chrome
|
||||
Идентификатор = "Chrome/";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Название = "Chrome";
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Позиция = СтрНайти(Строка, " ");
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = СокрЛ(Лев(Строка, Позиция - 1));
|
||||
Результат.Версия = Строка;
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Safari
|
||||
Идентификатор = "Safari/";
|
||||
Если СтрНайти(Строка, Идентификатор) > 0 Тогда
|
||||
Результат.Название = "Safari";
|
||||
Идентификатор = "Version/";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Позиция = СтрНайти(Строка, " ");
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Версия = СокрЛП(Лев(Строка, Позиция - 1));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Firefox
|
||||
Идентификатор = "Firefox/";
|
||||
Позиция = СтрНайти(Строка, Идентификатор);
|
||||
Если Позиция > 0 Тогда
|
||||
Результат.Название = "Firefox";
|
||||
Строка = Сред(Строка, Позиция + СтрДлина(Идентификатор));
|
||||
Если Не ПустаяСтрока(Строка) Тогда
|
||||
Результат.Версия = СокрЛП(Строка);
|
||||
КонецЕсли;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Работа с предопределенными данными.
|
||||
|
||||
|
||||
@@ -2444,42 +2444,48 @@
|
||||
Режимы = Метаданные.СвойстваОбъектов.РежимСовместимости;
|
||||
ТекущийРежим = Метаданные.РежимСовместимости;
|
||||
|
||||
ПоддерживаемаяВерсияПлатформы = "8.3.10";
|
||||
ВерсияПлатформы = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(СистемнаяИнформация.ВерсияПриложения);
|
||||
Если ТекущийРежим = Режимы.НеИспользовать Тогда
|
||||
НедоступныйРежим = "";
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(ВерсияПлатформы, ПоддерживаемаяВерсияПлатформы) = 0 Тогда
|
||||
НеПоддерживаемаяВерсияПлатформы = "";
|
||||
Иначе
|
||||
НеПоддерживаемаяВерсияПлатформы = ВерсияПлатформы;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_1 Тогда
|
||||
НедоступныйРежим = "8.1"
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.1"
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_2_13 Тогда
|
||||
НедоступныйРежим = "8.2.13"
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.2.13"
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_2_16 Тогда
|
||||
НедоступныйРежим = "8.2.16";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.2.16";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_1 Тогда
|
||||
НедоступныйРежим = "8.3.1";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.1";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_2 Тогда
|
||||
НедоступныйРежим = "8.3.2";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.2";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_3 Тогда
|
||||
НедоступныйРежим = "8.3.3";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.3";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_4 Тогда
|
||||
НедоступныйРежим = "8.3.4";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.4";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_5 Тогда
|
||||
НедоступныйРежим = "8.3.5";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.5";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_6 Тогда
|
||||
НедоступныйРежим = "8.3.6";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.6";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_7 Тогда
|
||||
НедоступныйРежим = "8.3.7";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.7";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_8 Тогда
|
||||
НедоступныйРежим = "8.3.8";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.8";
|
||||
ИначеЕсли ТекущийРежим = Режимы.Версия8_3_9 Тогда
|
||||
НедоступныйРежим = "8.3.9";
|
||||
НеПоддерживаемаяВерсияПлатформы = "8.3.9";
|
||||
Иначе
|
||||
НедоступныйРежим = "";
|
||||
НеПоддерживаемаяВерсияПлатформы = ?(СтрЗаканчиваетсяНа(Строка(ТекущийРежим), "8_3_10"), "", Строка(ТекущийРежим));
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(НедоступныйРежим) Тогда
|
||||
Если ЗначениеЗаполнено(НеПоддерживаемаяВерсияПлатформы) Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Режим совместимости конфигурации с 1С:Предприятием версии %1 не поддерживается.
|
||||
|Для запуска установите в конфигурации режим совместимости с 1С:Предприятием
|
||||
|версии не ниже 8.3.10 или ""Не использовать"".'"),
|
||||
НедоступныйРежим);
|
||||
|Для запуска установите в конфигурации режим совместимости ""Не использовать"" при разработке на версии %2
|
||||
|(или ""Версия %2"" при разработке на более старших версиях).'"),
|
||||
НеПоддерживаемаяВерсияПлатформы, ПоддерживаемаяВерсияПлатформы);
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка заполнения версии конфигурации.
|
||||
|
||||
@@ -1170,7 +1170,7 @@
|
||||
|
||||
Функция HTTPСервисОтправитьДанныеСлужебный(Параметры)
|
||||
Если Параметры.ЗащищенноеСоединение Тогда
|
||||
HTTPСоединение = Новый HTTPСоединение(Параметры.Сервер, Параметры.Порт,,,,Параметры.Таймаут, Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено));
|
||||
HTTPСоединение = Новый HTTPСоединение(Параметры.Сервер, Параметры.Порт,,,,Параметры.Таймаут, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
|
||||
Иначе
|
||||
HTTPСоединение = Новый HTTPСоединение(Параметры.Сервер, Параметры.Порт,,,,Параметры.Таймаут);
|
||||
КонецЕсли;
|
||||
@@ -3870,19 +3870,6 @@
|
||||
ОтправитьТестовыйПакет(ПараметрыВыполнения, АдресРезультата);
|
||||
ИначеЕсли РезультатВыполнения.Успешно И ОзнакомительныйПакетОтправлен Тогда
|
||||
|
||||
Если ПараметрыВыполнения.ОтправкаТестовогоПакета Тогда
|
||||
ПараметрыЦентраМониторинга.ОтправкаДанныхСледующееФормирование = ТекущаяУниверсальнаяДата()
|
||||
+ ПолучитьПараметрыЦентраМониторинга("ОтправкаДанныхПериодФормирования");
|
||||
ПараметрыЦентраМониторинга.ЧислоПопытокОтправкиТестовогоПакета = ПараметрыЦентраМониторинга.ЧислоПопытокОтправкиТестовогоПакета + 1;
|
||||
|
||||
ПараметрыЦентраМониторинга.Удалить("ОтправкаДанныхПериодФормирования");
|
||||
ПараметрыЦентраМониторинга.Удалить("ВключитьЦентрМониторинга");
|
||||
ПараметрыЦентраМониторинга.Удалить("ЦентрОбработкиИнформацииОПрограмме");
|
||||
ПараметрыЦентраМониторинга.Удалить("ОзнакомительныйПакетОтправлен");
|
||||
|
||||
УстановитьПараметрыЦентраМониторинга(ПараметрыЦентраМониторинга);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыВыполнения.ПолучениеИдентификатора Тогда
|
||||
// Отправим пакет с данными через час.
|
||||
УстановитьПараметрЦентраМониторинга("ОтправкаДанныхСледующееФормирование", ТекущаяУниверсальнаяДата() + 3600);
|
||||
@@ -3895,6 +3882,19 @@
|
||||
ПоместитьВоВременноеХранилище(РезультатВыполнения, АдресРезультата);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыВыполнения.ОтправкаТестовогоПакета Тогда
|
||||
ПараметрыЦентраМониторинга.ОтправкаДанныхСледующееФормирование = ТекущаяУниверсальнаяДата()
|
||||
+ ПолучитьПараметрыЦентраМониторинга("ОтправкаДанныхПериодФормирования");
|
||||
ПараметрыЦентраМониторинга.ЧислоПопытокОтправкиТестовогоПакета = ПараметрыЦентраМониторинга.ЧислоПопытокОтправкиТестовогоПакета + 1;
|
||||
|
||||
ПараметрыЦентраМониторинга.Удалить("ОтправкаДанныхПериодФормирования");
|
||||
ПараметрыЦентраМониторинга.Удалить("ВключитьЦентрМониторинга");
|
||||
ПараметрыЦентраМониторинга.Удалить("ЦентрОбработкиИнформацииОПрограмме");
|
||||
ПараметрыЦентраМониторинга.Удалить("ОзнакомительныйПакетОтправлен");
|
||||
|
||||
УстановитьПараметрыЦентраМониторинга(ПараметрыЦентраМониторинга);
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ПараметрыВыполнения.ПолучениеИдентификатора И ПараметрыЦентраМониторинга.ОзнакомительныйПакетОтправлен Тогда
|
||||
ПоместитьВоВременноеХранилище(РезультатВыполнения, АдресРезультата);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -100,22 +100,43 @@
|
||||
|
||||
НомераПолучателей = Новый Массив;
|
||||
Для каждого Получатель Из Сообщение.Получатель Цикл
|
||||
НомераПолучателей.Добавить(Получатель.Значение);
|
||||
Если ТипЗнч(Получатель) = Тип("Структура") Тогда
|
||||
НомераПолучателей.Добавить(Получатель.НомерТелефона);
|
||||
Иначе
|
||||
НомераПолучателей.Добавить(Получатель.Значение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтправкаSMS") Тогда
|
||||
МодульОтправкаSMS = ОбщегоНазначения.ОбщийМодуль("ОтправкаSMS");
|
||||
Если МодульОтправкаSMS.ДоступнаОтправкаSMS() Тогда
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда
|
||||
|
||||
МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия");
|
||||
Если МодульВзаимодействия.ИспользуетсяПрочиеВзаимодействия() Тогда
|
||||
|
||||
МодульВзаимодействия.СоздатьИОтправитьСообщениеSMS(Сообщение);
|
||||
Результат.Отправлено = Истина;
|
||||
Возврат Результат;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
РезультатОтправкаSMS = МодульОтправкаSMS.ОтправитьSMS(НомераПолучателей, Сообщение.Текст, Сообщение.ДополнительныеПараметры.Отправитель, Сообщение.ДополнительныеПараметры.ПеревестиВТранслит);
|
||||
Результат.Отправлено = ПустаяСтрока(РезультатОтправкаSMS .ОписаниеОшибки);
|
||||
Результат.Отправлено = ПустаяСтрока(РезультатОтправкаSMS.ОписаниеОшибки);
|
||||
Результат.ОписаниеОшибки = РезультатОтправкаSMS.ОписаниеОшибки;
|
||||
|
||||
Иначе
|
||||
Результат.ОписаниеОшибки = НСтр("ru = 'Сообщение SMS не может быть отправлено сразу.'");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
Если Сообщение.Получатель.Количество() = 0 Тогда
|
||||
Результат.ОписаниеОшибки = НСтр("ru = 'Сообщение не может быть отправлено сразу, т.к необходимо ввести адрес электронной почты.'");
|
||||
Возврат Результат;
|
||||
@@ -153,12 +174,30 @@
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
|
||||
МодульРаботаСПочтовымиСообщениями = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениями");
|
||||
Если МодульРаботаСПочтовымиСообщениями.ДоступнаОтправкаПисем() Тогда
|
||||
|
||||
УчетнаяЗапись = МодульРаботаСПочтовымиСообщениями.СистемнаяУчетнаяЗапись();
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда
|
||||
|
||||
МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия");
|
||||
Если МодульВзаимодействия.ИспользуетсяПочтовыйКлиент() Тогда
|
||||
|
||||
МодульВзаимодействия.СоздатьПисьмо(Сообщение, УчетнаяЗапись);
|
||||
Результат.Отправлено = Истина;
|
||||
Возврат Результат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
МодульРаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма);
|
||||
Результат.Отправлено = Истина;
|
||||
|
||||
Иначе
|
||||
|
||||
Результат.ОписаниеОшибки = НСтр("ru = 'Сообщение не может быть отправлено сразу.'");
|
||||
Возврат Результат;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли
|
||||
|
||||
|
||||
@@ -98,33 +98,28 @@
|
||||
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.
|
||||
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
|
||||
|
||||
Если Метаданные.Обработки.Найти("ПрограммыЭлектроннойПодписиИШифрования") <> Неопределено Тогда
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.НачальноеЗаполнение = Истина;
|
||||
Обработчик.Процедура = "Обработки.ПрограммыЭлектроннойПодписиИШифрования.ЗаполнитьНачальныеНастройки";
|
||||
Обработчик.РежимВыполнения = "Монопольно";
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "2.3.3.28";
|
||||
Обработчик.Комментарий =
|
||||
НСтр("ru = 'Заполнение справочника Программы электронной подписи и шифрования.'");
|
||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("8e76369a-e16c-415d-bfeb-95e7e5f07a00");
|
||||
Обработчик.Процедура = "Обработки.ПрограммыЭлектроннойПодписиИШифрования.ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
||||
Обработчик.РежимВыполнения = "Отложенно";
|
||||
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Обработки.ПрограммыЭлектроннойПодписиИШифрования.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
|
||||
Обработчик.ЧитаемыеОбъекты = "Справочник.ПрограммыЭлектроннойПодписиИШифрования";
|
||||
Обработчик.ИзменяемыеОбъекты = "Справочник.ПрограммыЭлектроннойПодписиИШифрования";
|
||||
Обработчик.ОчередьОтложеннойОбработки = 1;
|
||||
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
|
||||
|
||||
КонецЕсли;
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.НачальноеЗаполнение = Истина;
|
||||
Обработчик.Процедура = "Справочники.ПрограммыЭлектроннойПодписиИШифрования.ЗаполнитьНачальныеНастройки";
|
||||
Обработчик.РежимВыполнения = "Монопольно";
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "2.2.4.7";
|
||||
Обработчик.Процедура = "ЭлектроннаяПодписьСлужебный.ПеренестиНастройкиМенеджераКриптографии";
|
||||
Обработчик.РежимВыполнения = "Монопольно";
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "2.4.5.67";
|
||||
Обработчик.Комментарий =
|
||||
НСтр("ru = 'Заполнение справочника Программы электронной подписи и шифрования.'");
|
||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("8e76369a-e16c-415d-bfeb-95e7e5f07a00");
|
||||
Обработчик.Процедура = "Справочники.ПрограммыЭлектроннойПодписиИШифрования.ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
||||
Обработчик.РежимВыполнения = "Отложенно";
|
||||
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.ПрограммыЭлектроннойПодписиИШифрования.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
|
||||
Обработчик.ЧитаемыеОбъекты = "Справочник.ПрограммыЭлектроннойПодписиИШифрования";
|
||||
Обработчик.ИзменяемыеОбъекты = "Справочник.ПрограммыЭлектроннойПодписиИШифрования";
|
||||
Обработчик.ОчередьОтложеннойОбработки = 1;
|
||||
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -534,10 +529,14 @@
|
||||
|
||||
ЭтоОшибкаПодписания = ЗначениеЗаполнено(ОписаниеОшибки);
|
||||
|
||||
Если ТипЗнч(ЭлементДанных.СвойстваПодписи) = Тип("Строка") Тогда
|
||||
СвойстваПодписи = ПолучитьИзВременногоХранилища(ЭлементДанных.СвойстваПодписи);
|
||||
Иначе
|
||||
СвойстваПодписи = ЭлементДанных.СвойстваПодписи;
|
||||
КонецЕсли;
|
||||
|
||||
СообщениеЖурналаРегистрации = СведенияОПодписиДляЖурналаРегистрации(
|
||||
ЭлементДанных.СвойстваПодписи.ДатаПодписи,
|
||||
ЭлементДанных.СвойстваПодписи,
|
||||
ЭтоОшибкаПодписания);
|
||||
СвойстваПодписи.ДатаПодписи, СвойстваПодписи, ЭтоОшибкаПодписания);
|
||||
|
||||
Если ЭтоОшибкаПодписания Тогда
|
||||
ИмяСобытия = НСтр("ru = 'Электронная подпись.Ошибка подписания данных'",
|
||||
|
||||
@@ -1405,10 +1405,20 @@
|
||||
Иначе
|
||||
Если Контекст.Программа <> Неопределено Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Программа ""%1"" не доступна или не установлена на компьютере.'"),
|
||||
Контекст.Программа);
|
||||
НСтр("ru = 'Программа ""%1"" не доступна или не установлена на компьютере по причине:
|
||||
|%2'"),
|
||||
Контекст.Программа,
|
||||
СвойстваОшибки.Ошибки[0].Описание);
|
||||
Иначе
|
||||
ТекстОшибки = НСтр("ru = 'Ни одна из программ не доступна или не установлена на компьютере.'");
|
||||
Для Каждого Ошибка Из СвойстваОшибки.Ошибки Цикл
|
||||
ТекстОшибки = ТекстОшибки + Символы.ПС + Символы.ПС
|
||||
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Программу ""%1"" не удалось использовать по причине:
|
||||
|%2'"),
|
||||
Ошибка.Программа,
|
||||
Ошибка.Описание);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
СвойстваОшибки.Вставить("Описание", ТекстОшибки);
|
||||
КонецЕсли;
|
||||
@@ -3319,7 +3329,7 @@
|
||||
|
||||
Если Не ЭлементДанных.Свойство("Объект") Тогда
|
||||
ЭлектроннаяПодписьСлужебныйВызовСервера.ЗарегистрироватьПодписаниеДанныхВЖурнале(
|
||||
СвойстваТекущегоЭлементаДанных(Контекст, СвойстваПодписи.ДатаПодписи));
|
||||
СвойстваТекущегоЭлементаДанных(Контекст, СвойстваПодписи));
|
||||
ВыполнитьНаСторонеЦиклНачало(Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -3343,7 +3353,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйВызовСервера.ЗарегистрироватьПодписаниеДанныхВЖурнале(
|
||||
СвойстваТекущегоЭлементаДанных(Контекст, СвойстваПодписи.ДатаПодписи));
|
||||
СвойстваТекущегоЭлементаДанных(Контекст, СвойстваПодписи));
|
||||
|
||||
ПараметрыВыполнения = Новый Структура;
|
||||
ПараметрыВыполнения.Вставить("ОписаниеДанных", Контекст.ОписаниеДанных);
|
||||
@@ -3485,7 +3495,7 @@
|
||||
|
||||
|
||||
// Только для внутреннего использования.
|
||||
Функция СвойстваТекущегоЭлементаДанных(ПараметрыВыполнения, ДатаПодписи = '00010101') Экспорт
|
||||
Функция СвойстваТекущегоЭлементаДанных(ПараметрыВыполнения, СвойстваПодписи = Неопределено) Экспорт
|
||||
|
||||
Если ПараметрыВыполнения.ОписаниеДанных.Свойство("Данные")
|
||||
Или Не ПараметрыВыполнения.ОписаниеДанных.Свойство("ТекущийЭлементНабораДанных") Тогда
|
||||
@@ -3501,10 +3511,13 @@
|
||||
ПредставлениеЭлементаДанных = ПараметрыВыполнения.ПолноеПредставлениеДанных;
|
||||
КонецЕсли;
|
||||
|
||||
Если СвойстваПодписи = Неопределено Тогда
|
||||
СвойстваПодписи = Новый Структура;
|
||||
СвойстваПодписи.Вставить("Сертификат", ПараметрыВыполнения.СертификатАдрес);
|
||||
СвойстваПодписи.Вставить("ДатаПодписи", '00010101');
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваЭлементаДанных = Новый Структура;
|
||||
СвойстваПодписи = Новый Структура;
|
||||
СвойстваПодписи.Вставить("Сертификат", ПараметрыВыполнения.СертификатАдрес);
|
||||
СвойстваПодписи.Вставить("ДатаПодписи", ДатаПодписи);
|
||||
|
||||
СвойстваЭлементаДанных.Вставить("СвойстваПодписи", СвойстваПодписи);
|
||||
СвойстваЭлементаДанных.Вставить("ПредставлениеДанных", ПредставлениеЭлементаДанных);
|
||||
@@ -3698,13 +3711,23 @@
|
||||
Контекст.Вставить("КонвертSOAP", КонвертSOAP);
|
||||
|
||||
Контекст.Вставить("ДанныеАлгоритмаПодписания", ДанныеАлгоритмаПодписания);
|
||||
Контекст.Вставить("СертификатКриптографии", Новый СертификатКриптографии(ДвоичныеДанные));
|
||||
Контекст.Вставить("СертификатКриптографии", Новый СертификатКриптографии);
|
||||
Контекст.Вставить("СертификатКриптографииBase64", СертификатКриптографииBase64);
|
||||
Контекст.Вставить("МенеджерКриптографии", МенеджерКриптографии);
|
||||
|
||||
Контекст.Вставить("ТипКриптопровайдера", Неопределено);
|
||||
Контекст.Вставить("ИмяКриптопровайдера", Неопределено);
|
||||
|
||||
Контекст.СертификатКриптографии.НачатьИнициализацию(Новый ОписаниеОповещения(
|
||||
"НачатьПроверкуПодписиПослеИнициализацииСертификата", ЭтотОбъект, Контекст),
|
||||
ДвоичныеДанные);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура НачатьПроверкуПодписиПослеИнициализацииСертификата(СертификатКриптографии, Контекст) Экспорт
|
||||
|
||||
Контекст.СертификатКриптографии = СертификатКриптографии;
|
||||
|
||||
ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты();
|
||||
ПараметрыПодключения.ТекстПояснения = НСтр("ru = 'Для подписания XML необходима установка компоненты XMLDSig'");
|
||||
|
||||
|
||||
@@ -44,17 +44,18 @@
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Программы.Ссылка,
|
||||
| Программы.Ссылка КАК Ссылка,
|
||||
| Программы.Наименование КАК Наименование,
|
||||
| Программы.ИмяПрограммы,
|
||||
| Программы.ТипПрограммы,
|
||||
| Программы.АлгоритмПодписи,
|
||||
| Программы.АлгоритмХеширования,
|
||||
| Программы.АлгоритмШифрования
|
||||
| Программы.ИмяПрограммы КАК ИмяПрограммы,
|
||||
| Программы.ТипПрограммы КАК ТипПрограммы,
|
||||
| Программы.АлгоритмПодписи КАК АлгоритмПодписи,
|
||||
| Программы.АлгоритмХеширования КАК АлгоритмХеширования,
|
||||
| Программы.АлгоритмШифрования КАК АлгоритмШифрования
|
||||
|ИЗ
|
||||
| Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК Программы
|
||||
|ГДЕ
|
||||
| НЕ Программы.ПометкаУдаления
|
||||
| И НЕ Программы.ЭтоПрограммаОблачногоСервиса
|
||||
|
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Наименование";
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f5f016c2-84e7-48c0-9778-1ca0479605e1">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c62db5d4-93b3-4f13-8889-81e64c73f224">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 2.3</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="e777d781-809f-4e8d-a34d-9ec19c44e538"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ca27b9b7-04b9-45c1-94f6-9c12994138e3"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="2195d815-2a9a-4533-b3ee-9c1dbb36b786"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="269875be-7c68-4490-baf7-f0c336d63da6"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="4b0abc3f-8f42-4424-b174-12d39bbf5311"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="faeb5d91-57c0-4e9f-b897-304a1134220d"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="8d97ca75-4ded-455e-bea7-c250b382450e"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="66ae928c-408f-405d-9411-8fb67fce1316"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="9cd82b1c-0f04-450c-8cf2-e44a270763aa"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="55641679-6abe-4bef-b169-8dd1bb9f3fae"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="ff91b048-fb10-4085-b1a6-96fcc3613c59"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="5451adc5-de58-4ddc-88fc-744f12840127"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="993a11e2-0a9c-4836-9e9d-8b30e402845c"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="5eb32ffa-247a-4f98-9caf-0d400f164003"/>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
@@ -19,7 +19,7 @@
|
||||
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
||||
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
||||
<vendor>Фирма "1С"</vendor>
|
||||
<version>2.4.4.166</version>
|
||||
<version>2.4.5.71</version>
|
||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
@@ -46,7 +46,7 @@
|
||||
<splash/>
|
||||
<copyright>
|
||||
<key>ru</key>
|
||||
<value>Copyright © ООО "1С-Софт", 2009-2017. Все права защищены</value>
|
||||
<value>Copyright © ООО "1С-Софт", 2009-2018. Все права защищены</value>
|
||||
</copyright>
|
||||
<vendorInformationAddress>
|
||||
<key>ru</key>
|
||||
@@ -677,6 +677,7 @@
|
||||
<commonModules>CommonModule.ОбновлениеКонфигурации</commonModules>
|
||||
<commonModules>CommonModule.ОбновлениеКонфигурацииВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ОбновлениеКонфигурацииКлиент</commonModules>
|
||||
<commonModules>CommonModule.ОбсужденияСлужебныйВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ОбсужденияСлужебныйКлиент</commonModules>
|
||||
<commonModules>CommonModule.ОбщегоНазначения</commonModules>
|
||||
<commonModules>CommonModule.ОбщегоНазначенияВызовСервера</commonModules>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,ff0ca0a0-c9d0-4100-be75-c5b2fd0381c7,1,388c0a74-a99c-44c0-995d-3a6eecd7f6ef,"2.4.4.166","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5549,1,0,f5f016c2-84e7-48c0-9778-1ca0479605e1,f5f016c2-84e7-48c0-9778-1ca0479605e1,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,060b6f18-538c-4ea1-9748-00efe0b1ab57,060b6f18-538c-4ea1-9748-00efe0b1ab57,1,0,307b6821-fd82-4a1c-9fdb-a26293d4f713,307b6821-fd82Line truncated
|
||||
{6,1,1,ec777841-3392-42a6-8cce-42e0b05cf36a,1,2afc11ab-5a89-4034-9794-e5f30c4918a1,"2.4.5.71","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5550,1,0,c62db5d4-93b3-4f13-8889-81e64c73f224,c62db5d4-93b3-4f13-8889-81e64c73f224,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,060b6f18-538c-4ea1-9748-00efe0b1ab57,060b6f18-538c-4ea1-9748-00efe0b1ab57,1,0,307b6821-fd82-4a1c-9fdb-a26293d4f713,307b6821-fd82-Line truncated
|
||||
@@ -11,11 +11,12 @@
|
||||
Использование = Константы.ИспользоватьБизнесПроцессыИЗадачи.Получить();
|
||||
|
||||
ПараметрыПоиска = Новый Структура;
|
||||
ПараметрыПоиска.Вставить("ИмяМетода", Метаданные.РегламентныеЗадания.СтартОтложенныхПроцессов.ИмяМетода);
|
||||
ПараметрыПоиска.Вставить("Метаданные", Метаданные.РегламентныеЗадания.СтартОтложенныхПроцессов);
|
||||
СписокЗаданий = РегламентныеЗаданияСервер.НайтиЗадания(ПараметрыПоиска);
|
||||
|
||||
Если СписокЗаданий.Количество() = 0 Тогда
|
||||
ПараметрыЗадания = Новый Структура("Использование", Использование);
|
||||
ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания.СтартОтложенныхПроцессов);
|
||||
УстановитьРасписание(ЭтотОбъект.Значение, ПараметрыЗадания);
|
||||
РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
|
||||
Возврат;
|
||||
|
||||
+16
-1
@@ -3824,7 +3824,7 @@
|
||||
<event>ChoiceProcessing</event>
|
||||
<name>ПрограммаОбработкаВыбора</name>
|
||||
</handlers>
|
||||
<width>15</width>
|
||||
<width>19</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
@@ -8610,6 +8610,21 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ВариантАлгоритмов</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Вариант алгоритмов</value>
|
||||
</title>
|
||||
<id>89</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Далее</name>
|
||||
<title>
|
||||
|
||||
+99
-30
@@ -41,8 +41,6 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьСписокПрограмм();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -52,14 +50,22 @@
|
||||
РеквизитыПроверкиАдреса.Вставить("ЮридическийАдрес", Ложь);
|
||||
РеквизитыПроверкиАдреса.Вставить("ФактическийАдрес", Ложь);
|
||||
|
||||
Если ЗначениеЗаполнено(Объект.Ссылка)
|
||||
И ( Объект.СостояниеЗаявления = ПредопределенноеЗначение("Перечисление.СостоянияЗаявленияНаВыпускСертификата.НеПодготовлено")
|
||||
Или Объект.СостояниеЗаявления = ПредопределенноеЗначение("Перечисление.СостоянияЗаявленияНаВыпускСертификата.Подготовлено")) Тогда
|
||||
|
||||
ПодключитьОбработчикОжидания("ПриИзмененияСоставаИлиНастроекПрограмм", 0.1, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
// При изменении состава или настроек программ.
|
||||
Если ВРег(ИмяСобытия) = ВРег("Запись_ПрограммыЭлектроннойПодписиИШифрования")
|
||||
Или ВРег(ИмяСобытия) = ВРег("Запись_ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux") Тогда
|
||||
Если ЗначениеЗаполнено(ВариантАлгоритмов)
|
||||
И ( ВРег(ИмяСобытия) = ВРег("Запись_ПрограммыЭлектроннойПодписиИШифрования")
|
||||
Или ВРег(ИмяСобытия) = ВРег("Запись_ПутиКПрограммамЭлектроннойПодписиИШифрованияНаСерверахLinux")) Тогда
|
||||
|
||||
ПодключитьОбработчикОжидания("ПриИзмененияСоставаИлиНастроекПрограмм", 0.1, Истина);
|
||||
КонецЕсли;
|
||||
@@ -685,6 +691,10 @@
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ДанныеВыбора = Новый СписокЗначений;
|
||||
|
||||
Если СписокПрограмм.Количество() = 0 Тогда
|
||||
ЗаполнитьСписокПрограмм();
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого Строка Из СписокПрограмм Цикл
|
||||
Значение = ?(ЗначениеЗаполнено(Строка.Ссылка), Строка.Ссылка, Строка.Идентификатор);
|
||||
ДанныеВыбора.Добавить(Значение, Строка.Представление);
|
||||
@@ -767,19 +777,12 @@
|
||||
&НаКлиенте
|
||||
Процедура ПерейтиНаСтраницуПодготовкаЗапросаНаСертификат()
|
||||
|
||||
ЗаполнитьПрограмму(Новый ОписаниеОповещения(
|
||||
"ПерейтиНаСтраницуПодготовкаЗапросаНаСертификатЗавершение", ЭтотОбъект));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПерейтиНаСтраницуПодготовкаЗапросаНаСертификат.
|
||||
&НаКлиенте
|
||||
Процедура ПерейтиНаСтраницуПодготовкаЗапросаНаСертификатЗавершение(Результат, Контекст) Экспорт
|
||||
|
||||
Если ПерейтиНаСтраницуПодготовкаЗапросаНаСертификатНаСервере() Тогда
|
||||
ПослеЗаписи();
|
||||
КонецЕсли;
|
||||
|
||||
ПодключитьОбработчикОжидания("ПриИзмененияСоставаИлиНастроекПрограмм", 0.1, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
@@ -3114,6 +3117,10 @@
|
||||
&НаКлиенте
|
||||
Процедура УстановитьСертификат(Оповещение)
|
||||
|
||||
Если СписокПрограмм.Количество() = 0 Тогда
|
||||
ЗаполнитьСписокПрограмм();
|
||||
КонецЕсли;
|
||||
|
||||
ДатаУстановкиСертификата = ОбщегоНазначенияКлиент.ДатаСеанса();
|
||||
|
||||
Контекст = Новый Структура("Оповещение", Оповещение);
|
||||
@@ -4044,6 +4051,27 @@
|
||||
Процедура ЗаполнитьСписокПрограмм()
|
||||
|
||||
СписокПрограмм.Очистить();
|
||||
|
||||
Если Не ЗначениеЗаполнено(КонтейнерКлючаПуть)
|
||||
И Объект.СостояниеЗаявления = Перечисления.СостоянияЗаявленияНаВыпускСертификата.НеПодготовлено Тогда
|
||||
|
||||
ВариантАлгоритмов = ВариантАлгоритмов();
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ВариантАлгоритмов) Тогда
|
||||
ВариантАлгоритмов = "2001";
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторыНастроек = Новый Соответствие;
|
||||
|
||||
Если ВариантАлгоритмов = "2001" Тогда
|
||||
ИдентификаторыНастроек.Вставить("VipNet2001", Истина);
|
||||
ИдентификаторыНастроек.Вставить("CryptoPro2001", Истина);
|
||||
Иначе
|
||||
ИдентификаторыНастроек.Вставить("VipNet2012", Истина);
|
||||
ИдентификаторыНастроек.Вставить("CryptoPro2012", Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Настройки = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПоставляемыеНастройкиПрограмм();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
@@ -4057,23 +4085,62 @@
|
||||
| И Программы.ТипПрограммы = &ТипПрограммы";
|
||||
|
||||
Для каждого Настройка Из Настройки Цикл
|
||||
Если Настройка.Идентификатор = "VipNet"
|
||||
Или Настройка.Идентификатор = "CryptoPro" Тогда
|
||||
|
||||
Строка = СписокПрограмм.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(Строка, Настройка);
|
||||
|
||||
Запрос.УстановитьПараметр("ИмяПрограммы", Настройка.ИмяПрограммы);
|
||||
Запрос.УстановитьПараметр("ТипПрограммы", Настройка.ТипПрограммы);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Если Выборка.Следующий() Тогда
|
||||
Строка.Ссылка = Выборка.Ссылка;
|
||||
КонецЕсли;
|
||||
Если ИдентификаторыНастроек.Получить(Настройка.Идентификатор) = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Строка = СписокПрограмм.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(Строка, Настройка);
|
||||
|
||||
Запрос.УстановитьПараметр("ИмяПрограммы", Настройка.ИмяПрограммы);
|
||||
Запрос.УстановитьПараметр("ТипПрограммы", Настройка.ТипПрограммы);
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Если Выборка.Следующий() Тогда
|
||||
Строка.Ссылка = Выборка.Ссылка;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ВариантАлгоритмов()
|
||||
|
||||
Попытка
|
||||
ВебСервис = ВебСервисУЦ();
|
||||
|
||||
Фабрика = ВебСервис.Определение.ФабрикаXDTO;
|
||||
URIПространстваИмен = ВебСервис.ТочкаПодключения.Интерфейс.URIПространстваИмен;
|
||||
ТипПустогоПараметра = Фабрика.Пакеты.Получить(URIПространстваИмен).КорневыеСвойства.Получить("GetCertificateSettings").Тип;
|
||||
ЗначениеПустогоПараметра = Фабрика.Создать(ТипПустогоПараметра);
|
||||
|
||||
Ответ = ВебСервис.GetCertificateSettings(ЗначениеПустогоПараметра).GetCertificateSettingsResult;
|
||||
|
||||
ЧтениеXML = Новый ЧтениеXML;
|
||||
ЧтениеXML.УстановитьСтроку(Ответ);
|
||||
ПостроительDOM = Новый ПостроительDOM();
|
||||
ПостроительDOM = ПостроительDOM.Прочитать(ЧтениеXML);
|
||||
ЧтениеXML.Закрыть();
|
||||
|
||||
УзелDOM = ПостроительDOM.ПолучитьЭлементыПоИмени("algorithm");
|
||||
ВариантАлгоритмов = УзелDOM[0].ТекстовоеСодержимое;
|
||||
|
||||
Если ВариантАлгоритмов <> "2001" И ВариантАлгоритмов <> "2012" Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ответ сервера не соответствует ожидаемому:
|
||||
|%1'"), Ответ);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось получить требуемый вариант алгоритмов от сервера 1С:Подпись по причине:
|
||||
|%1'"), КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецПопытки;
|
||||
|
||||
Возврат ВариантАлгоритмов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗаполнитьПрограмму(Оповещение = Неопределено)
|
||||
|
||||
@@ -4242,6 +4309,7 @@
|
||||
ОбновитьЗначение(Содержание, "ЭлектроннаяПочта");
|
||||
ОбновитьЗначение(Содержание, "Подразделение");
|
||||
// Сохранение заполненных значений, если есть.
|
||||
ОбновитьЗначение(Содержание, "ВариантАлгоритмов");
|
||||
ОбновитьЗначение(Содержание, "Программа", Объект.Программа);
|
||||
ОбновитьЗначение(Содержание, "ПредставлениеПрограммы");
|
||||
ОбновитьЗначение(Содержание, "КонтейнерКлючаИмя");
|
||||
@@ -4511,7 +4579,7 @@
|
||||
|
||||
Если Не ЗначениеЗаполнено(Путь) Тогда
|
||||
Строки = СписокПрограмм.НайтиСтроки(Новый Структура("Ссылка", Объект.Программа));
|
||||
Если Строки[0].Идентификатор = "CryptoPro" Тогда
|
||||
Если СтрНачинаетсяС(Строки[0].Идентификатор, "CryptoPro") Тогда
|
||||
ПоказатьПредупреждение(, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ключ электронной подписи не создан.
|
||||
|
|
||||
@@ -4881,7 +4949,7 @@
|
||||
|
||||
Строки = СписокПрограмм.НайтиСтроки(Новый Структура("Ссылка", Объект.Программа));
|
||||
|
||||
Если Строки[0].Идентификатор = "CryptoPro" Тогда
|
||||
Если СтрНачинаетсяС(Строки[0].Идентификатор, "CryptoPro") Тогда
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, НайтиБезУчетаРегистраИРазделителяПути(
|
||||
ИменаКонтейнеровКлючей, Контекст.ИмяДляСоздания) > 0);
|
||||
Возврат;
|
||||
@@ -4928,7 +4996,7 @@
|
||||
// С<Фамилия Имя>, Индивидуальный предприниматель".
|
||||
Субъект = ПодготовитьСтрокуДляИмениКонтейнера(Фамилия) + " "
|
||||
+ ПодготовитьСтрокуДляИмениКонтейнера(Имя) + ", "
|
||||
+ НСтр("ru = 'Индивидуальный предприниматель'");
|
||||
+ ПодготовитьСтрокуДляИмениКонтейнера(НСтр("ru = 'Индивидуальный предприниматель'"));
|
||||
Иначе
|
||||
// С<Фамилия Имя>, <Сокращенное наименование организации>".
|
||||
Субъект = ПодготовитьСтрокуДляИмениКонтейнера(Фамилия) + " "
|
||||
@@ -4999,10 +5067,11 @@
|
||||
|
||||
СтрокаПодготовленная = "";
|
||||
|
||||
КоличествоСимволов = СтрДлина(Строка);
|
||||
СтрокаЛатиницей = СтроковыеФункцииКлиентСервер.СтрокаЛатиницей(Строка);
|
||||
КоличествоСимволов = СтрДлина(СтрокаЛатиницей);
|
||||
|
||||
Для НомерСимвола = 1 По КоличествоСимволов Цикл
|
||||
Символ = Сред(Строка, НомерСимвола, 1);
|
||||
Символ = Сред(СтрокаЛатиницей, НомерСимвола, 1);
|
||||
Если ЗаменаСимволов[Символ] <> Неопределено Тогда
|
||||
Символ = ЗаменаСимволов[Символ];
|
||||
КонецЕсли;
|
||||
|
||||
BIN
Binary file not shown.
+5
@@ -973,10 +973,15 @@
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<handlers>
|
||||
<event>Clearing</event>
|
||||
<name>ЕдиницаИзмеренияПериодаХраненияРезервныхКопийОчистка</name>
|
||||
</handlers>
|
||||
<width>7</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<extendedEdit>false</extendedEdit>
|
||||
<listChoiceMode>true</listChoiceMode>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<choiceList>
|
||||
|
||||
+7
@@ -147,6 +147,13 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЕдиницаИзмеренияПериодаХраненияРезервныхКопийОчистка(Элемент, СтандартнаяОбработка)
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
+7
-7
@@ -203,11 +203,6 @@
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура АдресныйКлассификаторПриИзменении(Элемент)
|
||||
Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура РазрешитьОтправлятьДанныеПриИзменении(Элемент)
|
||||
Перем РезультатЗапуска;
|
||||
@@ -359,6 +354,11 @@
|
||||
Подключаемый_ПриИзмененииРеквизита(Элемент);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура АдресныйКлассификаторПриИзменении(Элемент)
|
||||
Подключаемый_ПриИзмененииРеквизита(Элемент, Ложь);
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -454,7 +454,7 @@
|
||||
|
||||
МодульОбсужденияСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбсужденияСлужебныйКлиент");
|
||||
|
||||
Если МодульОбсужденияСлужебныйКлиент.ОбсужденияПодключены() Тогда
|
||||
Если МодульОбсужденияСлужебныйКлиент.Подключены() Тогда
|
||||
МодульОбсужденияСлужебныйКлиент.ПоказатьОтключение();
|
||||
Иначе
|
||||
МодульОбсужденияСлужебныйКлиент.ПоказатьПодключение();
|
||||
@@ -477,7 +477,7 @@
|
||||
|
||||
Если ОбсужденияПодключены = Неопределено Тогда
|
||||
МодульОбсужденияСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбсужденияСлужебныйКлиент");
|
||||
ОбсужденияПодключены = МодульОбсужденияСлужебныйКлиент.ОбсужденияПодключены();
|
||||
ОбсужденияПодключены = МодульОбсужденияСлужебныйКлиент.Подключены();
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбсужденияПодключены Тогда
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
|
||||
|
||||
Если Не СистемаВзаимодействия.ИнформационнаяБазаЗарегистрирована() Тогда
|
||||
Если Не ОбсужденияСлужебныйВызовСервера.Подключены() Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Подключение обсуждений не выполнено.'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<key>ru</key>
|
||||
<value>Для подключения обсуждений требуется создать учетную запись администратора программы.
|
||||
|
||||
<link e1cib/list/Справочник.Пользователи>Перейти к списку пользователей</><link e1cib/list/Справочник.Пользователи>...</></value>
|
||||
<link e1cib/list/Справочник.Пользователи>Перейти к списку пользователей</></value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
@@ -103,6 +103,108 @@
|
||||
<scrollOnCompress>false</scrollOnCompress>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ТребуетсяРазблокировать</name>
|
||||
<id>87</id>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ТребуетсяРазблокироватьКартинка</name>
|
||||
<id>89</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Требуется разблокировать картинка</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТребуетсяРазблокироватьКартинкаРасширеннаяПодсказка</name>
|
||||
<id>91</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТребуетсяРазблокироватьКартинкаКонтекстноеМеню</name>
|
||||
<id>90</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>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ТребуетсяРазблокироватьПояснение</name>
|
||||
<id>92</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Работа с внешними ресурсами заблокирована.
|
||||
Параметры подключения к серверу взаимодействия будут восстановлены после разблокировки внешних ресурсов.</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ТребуетсяРазблокироватьПояснениеРасширеннаяПодсказка</name>
|
||||
<id>94</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТребуетсяРазблокироватьПояснениеКонтекстноеМеню</name>
|
||||
<id>93</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>50</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<handlers>
|
||||
<event>URLProcessing</event>
|
||||
<name>ТребуетсяСоздатьАдминистратораПояснениеОбработкаНавигационнойСсылки</name>
|
||||
</handlers>
|
||||
<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>88</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Page</type>
|
||||
<extInfo xsi:type="form:PageGroupExtInfo">
|
||||
<showTitle>auto</showTitle>
|
||||
<scrollOnCompress>false</scrollOnCompress>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ПредложениеРегистрации</name>
|
||||
<id>15</id>
|
||||
@@ -627,6 +729,7 @@
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<skipOnInput>true</skipOnInput>
|
||||
<extendedTooltip>
|
||||
<name>НазадРасширеннаяПодсказка</name>
|
||||
<id>80</id>
|
||||
|
||||
@@ -47,19 +47,11 @@
|
||||
&НаКлиенте
|
||||
Процедура Зарегистрироваться(Команда)
|
||||
|
||||
Если ПустаяСтрока(АдресЭлектроннойПочты) Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Адрес электронной почты не заполнен'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(АдресЭлектроннойПочты) Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Адрес электронной почты содержит ошибки'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СостояниеРегистрации = КонтейнерСостояний.СостояниеРегистрации;
|
||||
|
||||
Если СостояниеРегистрации = "НеЗарегистрирована" Тогда
|
||||
Если СостояниеРегистрации = "ТребуетсяРазблокировать" Тогда
|
||||
ПриРазблокировке();
|
||||
ИначеЕсли СостояниеРегистрации = "НеЗарегистрирована" Тогда
|
||||
ПриПолученииКодаРегистрации();
|
||||
ИначеЕсли СостояниеРегистрации = "ОжиданиеВводаКодаПодтверждения" Тогда
|
||||
ПриРегистрации();
|
||||
@@ -84,9 +76,33 @@
|
||||
|
||||
#Область СлужебныеОбработчикиСобытий
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриРазблокировке()
|
||||
|
||||
ОбсужденияСлужебныйВызовСервера.Разблокировать();
|
||||
|
||||
КонтейнерСостояний.СостояниеРегистрации = "Зарегистрирована";
|
||||
ПриИзмененииСостоянияФормы(КонтейнерСостояний, ЭтотОбъект);
|
||||
|
||||
Оповестить("ОбсужденияПодключены", Истина);
|
||||
|
||||
ОбновитьИнтерфейс();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриПолученииКодаРегистрации()
|
||||
|
||||
Если ПустаяСтрока(АдресЭлектроннойПочты) Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Адрес электронной почты не заполнен'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(АдресЭлектроннойПочты) Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Адрес электронной почты содержит ошибки'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СерверВзаимодействия = КонтейнерСостояний.СерверВзаимодействия;
|
||||
|
||||
ПараметрыРегистрации = Новый ПараметрыРегистрацииИнформационнойБазыСистемыВзаимодействия;
|
||||
@@ -178,7 +194,7 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОтказеОтВводаКодаПодтверждения()
|
||||
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ПослеПодтвержденияОтказаВводаКодаПодтверждения", ЭтотОбъект);
|
||||
ПоказатьВопрос(Оповещение,
|
||||
НСтр("ru = 'При отказе от ввода высланный на электронную почту код станет недействительным.
|
||||
@@ -228,6 +244,10 @@
|
||||
Возврат "ТребуетсяСоздатьАдминистратора";
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбсужденияСлужебныйВызовСервера.Заблокированы() Тогда
|
||||
Возврат "ТребуетсяРазблокировать";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ?(СистемаВзаимодействия.ИнформационнаяБазаЗарегистрирована(),
|
||||
"Зарегистрирована", "НеЗарегистрирована");
|
||||
|
||||
@@ -245,6 +265,8 @@
|
||||
|
||||
Если СостояниеРегистрации = "ТребуетсяСоздатьАдминистратора" Тогда
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.ТребуетсяСоздатьАдминистратора;
|
||||
ИначеЕсли СостояниеРегистрации = "ТребуетсяРазблокировать" Тогда
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.ТребуетсяРазблокировать;
|
||||
ИначеЕсли СостояниеРегистрации = "НеЗарегистрирована" Тогда
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.ПредложениеРегистрации;
|
||||
ИначеЕсли СостояниеРегистрации = "ОжиданиеВводаКодаПодтверждения" Тогда
|
||||
@@ -266,6 +288,10 @@
|
||||
Если СостояниеРегистрации = "ТребуетсяСоздатьАдминистратора" Тогда
|
||||
Зарегистрироваться.Видимость = Ложь;
|
||||
Назад.Видимость = Ложь;
|
||||
ИначеЕсли СостояниеРегистрации = "ТребуетсяРазблокировать" Тогда
|
||||
Зарегистрироваться.Видимость = Истина;
|
||||
Зарегистрироваться.Заголовок = НСтр("ru = 'Восстановить подключение'");
|
||||
Назад.Видимость = Ложь;
|
||||
ИначеЕсли СостояниеРегистрации = "НеЗарегистрирована" Тогда
|
||||
Зарегистрироваться.Видимость = Истина;
|
||||
Назад.Видимость = Ложь;
|
||||
|
||||
@@ -1,126 +1,233 @@
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ДобавитьПоставляемыеНастройкиПрограмм(Настройки) Экспорт
|
||||
|
||||
// ViPNet CSP (ГОСТ 2012)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'ViPNet CSP (ГОСТ 2012)'");
|
||||
Настройка.ИмяПрограммы = "Infotecs GOST 2012/512 Cryptographic Service Provider";
|
||||
Настройка.ТипПрограммы = 77;
|
||||
// Варианты: GOST 34.10-2012 256, GOST R 34.10-2001, GOST 34.11-2012 512.
|
||||
Настройка.АлгоритмПодписи = "GOST 34.10-2012 256";
|
||||
// Варианты: GOST 34.11-2012 256, GOST R 34.11-94, GOST 34.11-2012 512.
|
||||
Настройка.АлгоритмХеширования = "GOST 34.11-2012 256";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89"; // Один вариант.
|
||||
Настройка.Идентификатор = "VipNet2012";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST 34.10-2012 256");
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-2001");
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST 34.10-2012 512");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST 34.11-2012 256");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-94");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST 34.11-2012 512");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
|
||||
// КриптоПро CSP (ГОСТ 2012)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'КриптоПро CSP (ГОСТ 2012)'");
|
||||
Настройка.ИмяПрограммы = "Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider";
|
||||
Настройка.ТипПрограммы = 80;
|
||||
Настройка.АлгоритмПодписи = "GR 34.10-2012 256";
|
||||
Настройка.АлгоритмХеширования = "GR 34.11-2012 256";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89";
|
||||
Настройка.Идентификатор = "CryptoPro2012";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GR 34.10-2012 256");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GR 34.11-2012 256");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
|
||||
// ЛИССИ CSP (ГОСТ 2012)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'ЛИССИ CSP (ГОСТ 2012)'");
|
||||
Настройка.ИмяПрограммы = "LISSI GOST R 34.10-2012 (256) CSP";
|
||||
Настройка.ТипПрограммы = 80;
|
||||
Настройка.АлгоритмПодписи = "GOST R 34.10-12 256";
|
||||
Настройка.АлгоритмХеширования = "GOST R 34.11-12 256";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89";
|
||||
Настройка.Идентификатор = "Lissi2012";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-12 256");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-12 256");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
|
||||
// Сигнал-КОМ CSP (RFC 4357, ГОСТ 2012)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'Сигнал-КОМ CSP (ГОСТ 2012)'");
|
||||
Настройка.ИмяПрограммы = "Signal-COM GOST R 34.10-2012 (256) Cryptographic Provider";
|
||||
Настройка.ТипПрограммы = 80;
|
||||
Настройка.АлгоритмПодписи = "GOST3410-12-256";
|
||||
Настройка.АлгоритмХеширования = "GOST3411-12-256";
|
||||
Настройка.АлгоритмШифрования = "GOST28147";
|
||||
Настройка.Идентификатор = "SignalComCPGOST2012";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST3410-12-256");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST3411-12-256");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST28147");
|
||||
|
||||
// Microsoft Enhanced CSP
|
||||
Справочники.ПрограммыЭлектроннойПодписиИШифрования.ДобавитьНастройкиMicrosoftEnhancedCSP(Настройки);
|
||||
|
||||
// ViPNet CSP (ГОСТ 2001)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'ViPNet CSP (ГОСТ 2001)'");
|
||||
Настройка.ИмяПрограммы = "Infotecs Cryptographic Service Provider";
|
||||
Настройка.ТипПрограммы = 2;
|
||||
// Варианты: GOST R 34.10-2001, GOST 34.10-2012 256, GOST 34.11-2012 512.
|
||||
Настройка.АлгоритмПодписи = "GOST R 34.10-2001";
|
||||
// Варианты: GOST R 34.11-94, GOST 34.11-2012 256, GOST 34.11-2012 512.
|
||||
Настройка.АлгоритмХеширования = "GOST R 34.11-94";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89"; // Один вариант.
|
||||
Настройка.Идентификатор = "VipNet2001";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-2001");
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST 34.10-2012 256");
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST 34.10-2012 512");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-94");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST 34.11-2012 256");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST 34.11-2012 512");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
|
||||
// КриптоПро CSP (ГОСТ 2001)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'КриптоПро CSP (ГОСТ 2001)'");
|
||||
Настройка.ИмяПрограммы = "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider";
|
||||
Настройка.ТипПрограммы = 75;
|
||||
Настройка.АлгоритмПодписи = "GOST R 34.10-2001";
|
||||
Настройка.АлгоритмХеширования = "GOST R 34.11-94";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89";
|
||||
Настройка.Идентификатор = "CryptoPro2001";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-2001");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-94");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
|
||||
// ЛИССИ CSP (ГОСТ 2001)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'ЛИССИ CSP (ГОСТ 2001)'");
|
||||
Настройка.ИмяПрограммы = "LISSI-CSP";
|
||||
Настройка.ТипПрограммы = 75;
|
||||
Настройка.АлгоритмПодписи = "GOST R 34.10-2001";
|
||||
Настройка.АлгоритмХеширования = "GOST R 34.11-94";
|
||||
Настройка.АлгоритмШифрования = "GOST 28147-89";
|
||||
Настройка.Идентификатор = "Lissi2001";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("GOST R 34.10-2001");
|
||||
Настройка.АлгоритмыХеширования.Добавить("GOST R 34.11-94");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST 28147-89");
|
||||
|
||||
// Сигнал-КОМ CSP (RFC 4357, ГОСТ 2001)
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'Сигнал-КОМ CSP (RFC 4357, ГОСТ 2001)'");
|
||||
Настройка.ИмяПрограммы = "Signal-COM CPGOST Cryptographic Provider";
|
||||
Настройка.ТипПрограммы = 75;
|
||||
Настройка.АлгоритмПодписи = "ECR3410-CP";
|
||||
Настройка.АлгоритмХеширования = "RUS-HASH-CP";
|
||||
Настройка.АлгоритмШифрования = "GOST28147";
|
||||
Настройка.Идентификатор = "SignalComCPGOST2001";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("ECR3410-CP");
|
||||
Настройка.АлгоритмыХеширования.Добавить("RUS-HASH-CP");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST28147");
|
||||
|
||||
// Сигнал-КОМ CSP (ITU-T X.509 v.3, ГОСТ 2001).
|
||||
Настройка = Настройки.Добавить();
|
||||
Настройка.Представление = НСтр("ru = 'Сигнал-КОМ CSP (ITU-T X.509 v.3, ГОСТ 2001)'");
|
||||
Настройка.ИмяПрограммы = "Signal-COM ECGOST Cryptographic Provider";
|
||||
Настройка.ТипПрограммы = 129;
|
||||
Настройка.АлгоритмПодписи = "ECR3410";
|
||||
Настройка.АлгоритмХеширования = "RUS-HASH";
|
||||
Настройка.АлгоритмШифрования = "GOST28147";
|
||||
Настройка.Идентификатор = "SignalComECGOST2001";
|
||||
|
||||
Настройка.АлгоритмыПодписи.Добавить("ECR3410");
|
||||
Настройка.АлгоритмыХеширования.Добавить("RUS-HASH");
|
||||
Настройка.АлгоритмыШифрования.Добавить("GOST28147");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обновление информационной базы.
|
||||
|
||||
Процедура ЗаполнитьНачальныеНастройки() Экспорт
|
||||
Процедура ДобавитьПрограммыНачальногоЗаполнения(Программы) Экспорт
|
||||
|
||||
ОписаниеПрограмм = Новый Массив;
|
||||
|
||||
ОписаниеПрограмм.Добавить(ЭлектроннаяПодпись.НовоеОписаниеПрограммы(
|
||||
"Infotecs Cryptographic Service Provider", 2));
|
||||
|
||||
ОписаниеПрограмм.Добавить(ЭлектроннаяПодпись.НовоеОписаниеПрограммы(
|
||||
"Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider", 75));
|
||||
|
||||
ЭлектроннаяПодпись.ЗаполнитьСписокПрограмм(ОписаниеПрограмм);
|
||||
Программы.Вставить("Infotecs GOST 2012/512 Cryptographic Service Provider", 77);
|
||||
Программы.Вставить("Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider", 80);
|
||||
Программы.Вставить("Infotecs Cryptographic Service Provider", 2);
|
||||
Программы.Вставить("Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider", 75);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты,
|
||||
// для которых необходимо обновить записи в регистре.
|
||||
//
|
||||
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
|
||||
Процедура ОбновитьПрограммуОблачногоСервиса(Отложенно = Ложь, ОбъектовОбработано = 0, ПроблемныхОбъектов = 0) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.Ссылка
|
||||
|ИЗ
|
||||
| Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыЭлектроннойПодписиИШифрования
|
||||
|ГДЕ
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.ЭтоПрограммаОблачногоСервиса";
|
||||
"ВЫБРАТЬ
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.Ссылка КАК Ссылка,
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.Наименование КАК Наименование,
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.ПометкаУдаления КАК ПометкаУдаления
|
||||
|ИЗ
|
||||
| Справочник.ПрограммыЭлектроннойПодписиИШифрования КАК ПрограммыЭлектроннойПодписиИШифрования
|
||||
|ГДЕ
|
||||
| ПрограммыЭлектроннойПодписиИШифрования.ЭтоПрограммаОблачногоСервиса";
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Справочник.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
Представление = НСтр("ru = 'Облачный сервис'");
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, ВыборкаДетальныеЗаписи.Ссылка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// При включении сервиса криптографии создается программа электронной подписи и шифрования.
|
||||
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
|
||||
|
||||
ОбработкаЗавершена = Истина;
|
||||
|
||||
ВыборкаДетальныеЗаписи = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, "Справочник.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
|
||||
ОбъектовОбработано = 0;
|
||||
ПроблемныхОбъектов = 0;
|
||||
|
||||
Программа = Неопределено;
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
Если ВыборкаДетальныеЗаписи.Ссылка.ПометкаУдаления Тогда
|
||||
Программа = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
|
||||
Иначе
|
||||
// Есть программа уже создана и не помечена на удаление, не создаем новую.
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ВыборкаДетальныеЗаписи.Ссылка);
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбъектовОбработано = 0 Тогда
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрограммыЭлектроннойПодписиИШифрования");
|
||||
|
||||
Блокировка.Заблокировать();
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
ОблачнаяПрограмма = ?(Выборка.Следующий(), Выборка, Неопределено);
|
||||
|
||||
Если Программа = Неопределено Тогда
|
||||
Если ОблачнаяПрограмма = Неопределено
|
||||
Или ОблачнаяПрограмма.Наименование <> Представление
|
||||
Или ОблачнаяПрограмма.ПометкаУдаления Тогда
|
||||
|
||||
Если ОблачнаяПрограмма = Неопределено Тогда
|
||||
Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.СоздатьЭлемент();
|
||||
Программа.Наименование = НСтр("ru = 'Облачный сервис'");
|
||||
Программа.ЭтоПрограммаОблачногоСервиса = Истина;
|
||||
Программа.Записать();
|
||||
Иначе
|
||||
// Если программа уже создана, снимаем пометку удаления.
|
||||
Программа.УстановитьПометкуУдаления(Ложь);
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Программа.Ссылка);
|
||||
Программа = ОблачнаяПрограмма.Ссылка.ПолучитьОбъект();
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
// Если не удалось обработать какой-либо документ, повторяем попытку снова.
|
||||
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
|
||||
|
||||
Программа.Наименование = Представление;
|
||||
Программа.ЭтоПрограммаОблачногоСервиса = Истина;
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(Программа);
|
||||
КонецЕсли;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
|
||||
Если ОблачнаяПрограмма <> Неопределено Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось добавить программу Облачный сервис по причине:
|
||||
|%1'"), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Предупреждение,
|
||||
, , ТекстСообщения);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, "Справочник.ПрограммыЭлектроннойПодписиИШифрования") Тогда
|
||||
ОбработкаЗавершена = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбъектовОбработано = 0 И ПроблемныхОбъектов <> 0 Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Процедуре Обработки.ОбработатьДанныеДляПереходаНаНовуюВерсию.ОбработатьДанныеДляПереходаНаНовуюВерсию не удалось обработать некоторые программы электронной подписи (пропущены): %1'"),
|
||||
ПроблемныхОбъектов);
|
||||
НСтр("ru = 'Не удалось обновить программу ""%1"" по причине:
|
||||
|%2'"), Строка(Программа), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
Если Отложенно Тогда
|
||||
ПроблемныхОбъектов = ПроблемныхОбъектов + 1;
|
||||
|
||||
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Предупреждение, , , ТекстСообщения);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось добавить программу ""%1"" по причине:
|
||||
|%2'"), Представление, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецЕсли;
|
||||
ВызватьИсключение ТекстСообщения;
|
||||
Иначе
|
||||
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,
|
||||
Метаданные.НайтиПоПолномуИмени("Справочник.ПрограммыЭлектроннойПодписиИШифрования"),,
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Процедура Обработки.ОбработатьДанныеДляПереходаНаНовуюВерсию.ОбработатьДанныеДляПереходаНаНовуюВерсию обработала очередную порцию программ электронной подписи: %1'"),
|
||||
ОбъектовОбработано));
|
||||
КонецПопытки;
|
||||
|
||||
Если Отложенно И ОблачнаяПрограмма <> Неопределено Тогда
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ОблачнаяПрограмма.Ссылка);
|
||||
КонецЕсли;
|
||||
|
||||
Параметры.ОбработкаЗавершена = ОбработкаЗавершена;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
#КонецЕсли
|
||||
#КонецЕсли
|
||||
@@ -3,17 +3,14 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
|
||||
|
||||
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьУсловноеОформление();
|
||||
НастроитьДинамическийСписок();
|
||||
|
||||
УстановитьУсловноеОформление();
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -12,7 +12,17 @@
|
||||
|
||||
Если ЭтоНоваяГруппа Тогда
|
||||
ОбъектЗначение = Справочники[Параметры.ИмяСправочникаХранилищаФайлов].СоздатьГруппу();
|
||||
ОбъектЗначение.Родитель = ?(Параметры.Родитель <> Неопределено И Параметры.Родитель.ЭтоГруппа, Параметры.Родитель, Неопределено);
|
||||
|
||||
Если Параметры.Свойство("Родитель") И Параметры.Родитель <> Неопределено И ТипЗнч(Параметры.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
|
||||
Если Параметры.Родитель.ЭтоГруппа Тогда
|
||||
ОбъектЗначение.Родитель = Параметры.Родитель;
|
||||
ИначеЕсли Параметры.Родитель.Родитель <> Неопределено И ТипЗнч(Параметры.Родитель.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
|
||||
ОбъектЗначение.Родитель = Параметры.Родитель.Родитель; // В качестве первого родителя была передана ссылка на элемент.
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ОбъектЗначение.Родитель = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектЗначение.ВладелецФайла = Параметры.ВладелецФайла;
|
||||
ОбъектЗначение.ДатаСоздания = ТекущаяУниверсальнаяДата();
|
||||
ОбъектЗначение.Автор = Пользователи.АвторизованныйПользователь();
|
||||
|
||||
+6
-7
@@ -1,19 +1,19 @@
|
||||
<!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.18427"></meta></head><body>
|
||||
<p>
|
||||
<style>A:link {
|
||||
COLOR: #006699; TEXT-DECORATION: none
|
||||
TEXT-DECORATION: none; COLOR: #006699
|
||||
}
|
||||
A:visited {
|
||||
COLOR: #006699; TEXT-DECORATION: none
|
||||
TEXT-DECORATION: none; COLOR: #006699
|
||||
}
|
||||
A:hover {
|
||||
COLOR: #006699; TEXT-DECORATION: underline
|
||||
TEXT-DECORATION: underline; COLOR: #006699
|
||||
}
|
||||
H2 {
|
||||
BORDER-BOTTOM: sienna 1px solid; PADDING-BOTTOM: 2px; FONT-FAMILY: Verdana; COLOR: #a3611f; FONT-SIZE: 130%; FONT-WEIGHT: normal
|
||||
FONT-SIZE: 130%; FONT-FAMILY: Verdana; BORDER-BOTTOM: sienna 1px solid; FONT-WEIGHT: normal; COLOR: #a3611f; PADDING-BOTTOM: 2px
|
||||
}
|
||||
H3 {
|
||||
MARGIN-TOP: 5px; FONT-SIZE: 120%
|
||||
FONT-SIZE: 120%; MARGIN-TOP: 5px
|
||||
}
|
||||
P.Usual {
|
||||
MARGIN-TOP: 10px
|
||||
@@ -37,8 +37,7 @@ UL {
|
||||
</li><li>
|
||||
<div>
|
||||
<div>Принцип работы встроенного редактора текстовых файлов такой же, как и у внешнего приложения. Файл копируется на локальный компьютер и помечается как занятый в информационной базе. До тех пор пока вы не нажмете <strong>Еще - Закончить редактирование</strong>,<strong> </strong>созданная версия файла не будет доступна другим пользователям.<strong> </strong></div></div>
|
||||
</li><li>После окончания редактирования файла нажмите <strong>Еще - Закончить редактирование</strong>, для того чтобы снять с него пометку занятости для редактирования. В зависимости от настроек команда также сохраняет версию файла или обновляет файл в хранилище. По умолчанию создается новая <a href="DataProcessor.РаботаСФайлами.Form.ВерсияПрисоединенногоФайла/Help"><u><font color="#0000ff">версия файла</font></u></a>. Для изменения настройки при <a href="DataProcessor.РаботаСФайлами.Form.ФормаВозвратаФайла/Help"><u><font color="#0000ff">создании версии</font></u></a> снимите соответствующий флажок. </li></ul><h3>Просмотр задач</h3>
|
||||
<ul><li>С помощью команды <strong>Еще - Задачи</strong> можно просмотреть <a href="Task.ЗадачаИсполнителя.Form.ЗадачиПоПредмету/Help"><u><font color="#0000ff">список задач</font></u></a>, которые были созданы на основании данного файла.</li></ul><h3>Просмотр карточки файла</h3>
|
||||
</li><li>После окончания редактирования файла нажмите <strong>Еще - Закончить редактирование</strong>, для того чтобы снять с него пометку занятости для редактирования. В зависимости от настроек команда также сохраняет версию файла или обновляет файл в хранилище. По умолчанию создается новая <a href="DataProcessor.РаботаСФайлами.Form.ВерсияПрисоединенногоФайла/Help"><u><font color="#0000ff">версия файла</font></u></a>. Для изменения настройки при <a href="DataProcessor.РаботаСФайлами.Form.ФормаВозвратаФайла/Help"><u><font color="#0000ff">создании версии</font></u></a> снимите соответствующий флажок. </li></ul><h3>Просмотр карточки файла</h3>
|
||||
<ul><li>Нажмите <strong>Еще - Открыть карточку</strong>, для того чтобы просмотреть <a href="Catalog.Файлы.Form.ФормаЭлемента/Help"><u><font color="#0000ff">сведения о файле</font></u></a>.</li></ul><h3>Сравнение версий</h3>
|
||||
<ul><li>Нажмите <strong>Еще - Показать отличия</strong>, для того чтобы произвести <a href="DataProcessor.РаботаСФайлами.Form.ВыборСпособаСравненияВерсий/Help"><u><font color="#0000ff">сравнение версий файлов</font></u></a>. Если программа для сравнения версий не была выбрана заранее в персональных настройках программы (вкладка <strong>Работа с файлами</strong>), предлагается ее выбрать. Доступны Microsoft Word или OpenOffice.org Writer.</li></ul><h3>Сохранение файла</h3>
|
||||
<ul><li>Нажмите <strong>Еще - Сохранить как</strong>, для того чтобы сохранить файл в указанный каталог на жестком или сетевом диске. </li></ul><h3>Открытие файла в стандартной программе</h3>
|
||||
|
||||
@@ -70,6 +70,11 @@
|
||||
&НаКлиенте
|
||||
Процедура СохранитьПапку()
|
||||
|
||||
Если ПустаяСтрока(ПапкаДляЭкспорта) Или ПапкаДляЭкспорта = ПолучитьРазделительПути() Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Необходимо указать папку.'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ СтрЗаканчиваетсяНа(ПапкаДляЭкспорта, ПолучитьРазделительПути()) Тогда
|
||||
ПапкаДляЭкспорта = ПапкаДляЭкспорта + ПолучитьРазделительПути();
|
||||
КонецЕсли;
|
||||
@@ -144,16 +149,13 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура СформироватьДеревоФайлов(ПапкаРодитель)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||
| Файлы.ВладелецФайла КАК Папка,
|
||||
| Файлы.ВладелецФайла.Наименование КАК НаименованиеПапки,
|
||||
| ВЫБОР
|
||||
| КОГДА Файлы.ТекущаяВерсия = ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка)
|
||||
| ТОГДА Файлы.Ссылка
|
||||
| ИНАЧЕ ЕстьNull(Файлы.ТекущаяВерсия, ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка))
|
||||
| КОНЕЦ КАК ТекущаяВерсия,
|
||||
| &ТекущаяВерсия КАК ТекущаяВерсия,
|
||||
| Файлы.Наименование КАК ПолноеНаименование,
|
||||
| Файлы.Расширение КАК Расширение,
|
||||
| Файлы.Размер КАК Размер,
|
||||
@@ -169,14 +171,28 @@
|
||||
|ИТОГИ ПО
|
||||
| Папка ИЕРАРХИЯ";
|
||||
Запрос.Параметры.Вставить("Ссылка", ПапкаРодитель);
|
||||
|
||||
Если Не ПустаяСтрока(ИмяСправочникаХранилищаФайлов) Тогда
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВерсииФайлов", ИмяСправочникаХранилищаВерсийФайлов);
|
||||
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Файлы", ИмяСправочникаХранилищаФайлов);
|
||||
Запрос.Текст = СтрЗаменить(ТекстЗапроса, "ВладелецФайла", "Родитель");
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекущаяВерсия", ИмяСправочникаХранилищаФайлов + ".Ссылка");
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВладелецФайла", "Родитель");
|
||||
|
||||
Иначе
|
||||
Запрос.Текст = ТекстЗапроса;
|
||||
|
||||
ВыборТекущейВерсии = "ВЫБОР
|
||||
| КОГДА Файлы.ТекущаяВерсия = ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка)
|
||||
| ТОГДА Файлы.Ссылка
|
||||
| ИНАЧЕ ЕстьNull(Файлы.ТекущаяВерсия, ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка))
|
||||
| КОНЕЦ";
|
||||
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекущаяВерсия", ВыборТекущейВерсии);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Запрос.Текст = ТекстЗапроса;
|
||||
Результат = Запрос.Выполнить();
|
||||
|
||||
ТаблицаВыгрузки = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
|
||||
Если ТранслитерироватьИменаПапокИФайлов И ТаблицаВыгрузки.Строки.Количество() > 0 Тогда
|
||||
КорневаяПапкаДляВыгрузки = ТаблицаВыгрузки.Строки[0];
|
||||
@@ -185,7 +201,9 @@
|
||||
КорневаяПапкаДляВыгрузки.Расширение = СтроковыеФункцииКлиентСервер.СтрокаЛатиницей(КорневаяПапкаДляВыгрузки.Расширение);
|
||||
ИзменитьИменаФайловИПапок(КорневаяПапкаДляВыгрузки);
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеВРеквизитФормы(ТаблицаВыгрузки, "ДеревоФайлов");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Рекурсивная функция, которая собственно и выгружает файлы на локальный диск.
|
||||
|
||||
@@ -1885,7 +1885,7 @@
|
||||
|
||||
// Чтение
|
||||
Для Каждого ДопЭлемент Из АдресРФ.ДопАдрЭл Цикл
|
||||
Если ДопЭлемент.Номер <> Неопределено Тогда
|
||||
Если ДопЭлемент.Номер <> Неопределено Тогда
|
||||
КодОбъекта = Строка(ДопЭлемент.Номер.Тип);
|
||||
ТипОбъекта = РаботаСАдресамиКлиентСервер.ТипОбъектаПоКодуСериализации(КодОбъекта);
|
||||
Если ТипОбъекта <> Неопределено Тогда
|
||||
|
||||
-2
@@ -336,8 +336,6 @@
|
||||
Если Обработчик.Статус = "Ошибка" Тогда
|
||||
Обработчик.СтатистикаВыполнения.Очистить();
|
||||
Обработчик.Статус = "НеВыполнено";
|
||||
ИначеЕсли Обработчик.Статус = "Выполняется" Тогда
|
||||
Обработчик.СтатистикаВыполнения.Вставить("КоличествоЗапусков", 0);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -767,7 +767,9 @@
|
||||
|
||||
Если Обработано Тогда
|
||||
МенеджерКонстанты.Значение = ЗначениеКонстанты;
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
ЗаписатьДанные(МенеджерКонстанты);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1896,8 +1896,6 @@
|
||||
Объект.Текст = ТекстПисьмаФорматированныйДокумент.ПолучитьТекст();
|
||||
Иначе
|
||||
Объект.Текст = Текст;
|
||||
ТекстПисьмаФорматированныйДокумент.Добавить(Объект.Текст);
|
||||
ТекстПисьмаФорматированныйДокумент.ПолучитьHTML(Объект.ТекстHTML, Новый Структура);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -2855,18 +2853,36 @@
|
||||
Если ТипЗнч(Результат.Текст) = Тип("Структура") Тогда
|
||||
РезультатТекст = Результат.Текст.ТекстHTML;
|
||||
СтруктураВложений = Результат.Текст.СтруктураВложений;
|
||||
НужнаКонвертацияИзHTML = Ложь;
|
||||
Объект.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.HTMLСКартинками;
|
||||
Иначе
|
||||
СтруктураВложений = Новый Структура();
|
||||
РезультатТекст = Результат.Текст;
|
||||
НужнаКонвертацияИзHTML = СтрНачинаетсяС(РезультатТекст , "<!DOCTYPE html");
|
||||
Если СтрНачинаетсяС(РезультатТекст , "<!DOCTYPE html") Тогда
|
||||
Объект.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.HTMLСКартинками;
|
||||
Иначе
|
||||
Объект.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.ПростойТекст;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстПисьмаФорматированныйДокумент.УстановитьHTML(РезультатТекст, СтруктураВложений);
|
||||
Если НужнаКонвертацияИзHTML Тогда
|
||||
РезультатТекст = ТекстПисьмаФорматированныйДокумент.ПолучитьТекст();
|
||||
Если Объект.ТипТекста = Перечисления.ТипыТекстовЭлектронныхПисем.HTMLСКартинками Тогда
|
||||
ТекстПисьмаФорматированныйДокумент.УстановитьHTML(РезультатТекст, СтруктураВложений);
|
||||
ТекстПисьма = "";
|
||||
Элементы.ТекстПисьма.Вид = ВидПоляФормы.ПолеHTMLДокумента;
|
||||
Элементы.СтраницыТекстПисьма.ТекущаяСтраница = Элементы.СтраницаФорматированныйДокумент;
|
||||
ФорматСообщения = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML;
|
||||
Иначе
|
||||
ТекстПисьмаФорматированныйДокумент.Удалить();
|
||||
Элементы.ТекстПисьма.Вид = ВидПоляФормы.ПолеТекстовогоДокумента;
|
||||
Объект.ТекстHTML = "";
|
||||
Объект.Кодировка = "UTF-8";
|
||||
Элементы.СтраницыТекстПисьма.ТекущаяСтраница = Элементы.СтраницаОбычныйТекст;
|
||||
ТекстПисьма = РезультатТекст;
|
||||
Элементы.ТекстПисьма.Вид = ВидПоляФормы.ПолеТекстовогоДокумента;
|
||||
ФорматСообщения = Перечисления.СпособыРедактированияЭлектронныхПисем.ОбычныйТекст;
|
||||
КонецЕсли;
|
||||
ТекстПисьма = РезультатТекст;
|
||||
|
||||
Элементы.ФорматСообщения.Заголовок = ФорматСообщения;
|
||||
|
||||
Объект.Тема = Результат.Тема;
|
||||
|
||||
Если ЗначениеЗаполнено(Результат.Получатель) Тогда
|
||||
@@ -2875,7 +2891,7 @@
|
||||
НоваяСтрока.ВариантОтправки = НСтр("ru = 'Кому:'");
|
||||
НоваяСтрока.Адрес = Получатель.Значение;
|
||||
НоваяСтрока.Представление = ВзаимодействияКлиентСервер.ПолучитьПредставлениеАдресата(Получатель.Представление,
|
||||
Получатель.Значение, "");
|
||||
Получатель.Значение, "");
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
</pages>
|
||||
</help>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<enableTotalsSliceLast>true</enableTotalsSliceLast>
|
||||
<recordPresentation>
|
||||
<key>ru</key>
|
||||
<value>Курс валюты</value>
|
||||
|
||||
@@ -286,8 +286,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если (Протокол = "https" Или Протокол = "ftps") И ЗащищенноеСоединение = Неопределено Тогда
|
||||
Сертификаты = Новый СертификатыУдостоверяющихЦентровОС;
|
||||
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(, Сертификаты);
|
||||
ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||
КонецЕсли;
|
||||
|
||||
WSОпределения = WSОпределения(АдресWSDL, ИмяПользователя, Пароль,, ЗащищенноеСоединение);
|
||||
|
||||
@@ -40,7 +40,18 @@
|
||||
// Процедура обновляет запись в регистре по переданным значениям структуры.
|
||||
Процедура ОбновитьЗапись(СтруктураЗаписи) Экспорт
|
||||
|
||||
ОбменДаннымиСервер.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиТранспортаОбмена");
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
ОбменДаннымиСервер.ОбновитьЗаписьВРегистрСведений(СтруктураЗаписи, "НастройкиТранспортаОбмена");
|
||||
ЗаписатьПароль("COMПарольПользователя", "COMПарольПользователя", СтруктураЗаписи);
|
||||
ЗаписатьПароль("FTPСоединениеПароль", "FTPСоединениеПароль", СтруктураЗаписи);
|
||||
ЗаписатьПароль("WSПароль", "WSПароль", СтруктураЗаписи);
|
||||
ЗаписатьПароль("ПарольАрхиваСообщенияОбмена", "ПарольАрхиваСообщенияОбмена", СтруктураЗаписи);
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -280,7 +280,7 @@
|
||||
ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ПолноеИмяКонстанты);
|
||||
Иначе
|
||||
ЭтоРазделенныйОбъектМетаданных = Ложь;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьРазделение = ЭтоРазделенныйОбъектМетаданных;
|
||||
Иначе
|
||||
|
||||
@@ -2561,6 +2561,93 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>DataAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExclusiveMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ActiveUsers</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EventLog</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThinClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>WebClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SaveUserData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.БуферОперацийСтатистики</name>
|
||||
<right>
|
||||
@@ -3265,93 +3352,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>DataAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExclusiveMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ActiveUsers</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>EventLog</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThinClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>WebClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeNormal</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeEmbeddedWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeFullscreenWorkplace</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>MainWindowModeKiosk</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>AnalyticsSystemClient</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>SaveUserData</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Output</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.РежимыПодключенияВнешнихМодулей</name>
|
||||
<right>
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
"УчетныеЗаписиЭлектроннойПочты", "Т.Ссылка", "ИЛИ(",
|
||||
"Пользователи", "Т.ВладелецУчетнойЗаписи", "И",
|
||||
"Условие", "Т.ВладелецУчетнойЗаписи <> Значение(Справочник.Пользователи.ПустаяСсылка)", ")",
|
||||
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")</condition>
|
||||
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")
|
||||
</condition>
|
||||
</restrictionByCondition>
|
||||
</right>
|
||||
<right>
|
||||
|
||||
@@ -4930,6 +4930,45 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Document.СогласиеНаОбработкуПерсональныхДанных</name>
|
||||
<right>
|
||||
@@ -6227,45 +6266,6 @@
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
<name>Administration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>UpdateDataBaseConfiguration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ThickClient</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ExternalConnection</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>Automation</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>TechnicalSpecialistMode</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>ConfigurationExtensionsAdministration</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtDataProcessors</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>InteractiveOpenExtReports</name>
|
||||
<value>false</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>InformationRegister.РежимыПодключенияВнешнихМодулей</name>
|
||||
<right>
|
||||
|
||||
@@ -10,17 +10,6 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DataProcessor.ЖурналРегистрации</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
|
||||
<right>
|
||||
@@ -52,4 +41,15 @@
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
<object>
|
||||
<name>DataProcessor.ЖурналРегистрации</name>
|
||||
<right>
|
||||
<name>Use</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
<right>
|
||||
<name>View</name>
|
||||
<value>true</value>
|
||||
</right>
|
||||
</object>
|
||||
</Rights>
|
||||
@@ -8,5 +8,6 @@
|
||||
<content>DataProcessor.ПодключениеОбсуждений</content>
|
||||
<content>CommonPicture.Обсуждения</content>
|
||||
<content>CommonModule.ОбсужденияСлужебныйКлиент</content>
|
||||
<content>CommonModule.ОбсужденияСлужебныйВызовСервера</content>
|
||||
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
||||
Reference in new issue
Block a user