3_1_10_206
This commit is contained in:
1 parent
44a10b9181
commit
f91290c6ec
229 files changed
+14035
-3467
No files matched your search
@@ -39,7 +39,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
НоваяСтрока = Языки.Добавить();
|
НоваяСтрока = Языки.Добавить();
|
||||||
ЗаполнитьЗначенияСвойств(НоваяСтрока, ЯзыкКонфигурации);
|
ЗаполнитьЗначенияСвойств(НоваяСтрока, ЯзыкКонфигурации);
|
||||||
НоваяСтрока.Имя = "_" + СтрЗаменить(Новый УникальныйИдентификатор, "-", "");
|
НоваяСтрока.Имя = "Язык_" + ЯзыкКонфигурации.КодЯзыка;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
СформироватьПоляВводаНаРазныхЯзыках(Ложь, Параметры.ТолькоПросмотр);
|
СформироватьПоляВводаНаРазныхЯзыках(Ложь, Параметры.ТолькоПросмотр);
|
||||||
@@ -138,7 +138,9 @@
|
|||||||
Добавлять = Новый Массив;
|
Добавлять = Новый Массив;
|
||||||
ТипСтрока = Новый ОписаниеТипов("Строка");
|
ТипСтрока = Новый ОписаниеТипов("Строка");
|
||||||
Для Каждого ЯзыкКонфигурации Из Языки Цикл
|
Для Каждого ЯзыкКонфигурации Из Языки Цикл
|
||||||
Добавлять.Добавить(Новый РеквизитФормы(ЯзыкКонфигурации.Имя, ТипСтрока, , ЯзыкКонфигурации.Представление));
|
Добавлять.Добавить(Новый РеквизитФормы(ЯзыкКонфигурации.Имя, ТипСтрока, ,
|
||||||
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Параметры прописи для языка %1'"),
|
||||||
|
ЯзыкКонфигурации.Представление)));
|
||||||
Добавлять.Добавить(Новый РеквизитФормы("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, ТипСтрока, ,
|
Добавлять.Добавить(Новый РеквизитФормы("ПодсказкаВвода" + ЯзыкКонфигурации.Имя, ТипСтрока, ,
|
||||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подсказка ввода для языка %1'"),
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подсказка ввода для языка %1'"),
|
||||||
ЯзыкКонфигурации.Представление)));
|
ЯзыкКонфигурации.Представление)));
|
||||||
|
|||||||
@@ -128,11 +128,11 @@
|
|||||||
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
| ВнешниеКомпоненты.Идентификатор = &Идентификатор
|
| ВнешниеКомпоненты.Идентификатор = &Идентификатор
|
||||||
| ИЛИ ВнешниеКомпоненты.Версия = &Версия";
|
| ИЛИ ВнешниеКомпоненты.Идентификатор = &Идентификатор2 И ВнешниеКомпоненты.Версия ПОДОБНО ""3.1.0.%""";
|
||||||
|
|
||||||
Запрос = Новый Запрос(ТекстЗапроса);
|
Запрос = Новый Запрос(ТекстЗапроса);
|
||||||
Запрос.УстановитьПараметр("Идентификатор", "AddInNativeExtension");
|
Запрос.УстановитьПараметр("Идентификатор", "AddInNativeExtension");
|
||||||
Запрос.УстановитьПараметр("Версия", "3.1.0.1013");
|
Запрос.УстановитьПараметр("Идентификатор2", "ImageScan");
|
||||||
|
|
||||||
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
|
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
|
||||||
|
|
||||||
@@ -264,38 +264,37 @@
|
|||||||
|
|
||||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Истина;
|
ОбновитьПоддерживаемыеПлатформыКомпоненты = Истина;
|
||||||
|
|
||||||
ЦелевыеПлатформы = РеквизитыКомпоненты.ЦелевыеПлатформы.Получить();
|
|
||||||
|
|
||||||
ДвоичныеДанныеКомпоненты = РеквизитыКомпоненты.ХранилищеКомпоненты.Получить();
|
ДвоичныеДанныеКомпоненты = РеквизитыКомпоненты.ХранилищеКомпоненты.Получить();
|
||||||
|
|
||||||
Если ТипЗнч(ДвоичныеДанныеКомпоненты) <> Тип("ДвоичныеДанные") Тогда
|
Если ТипЗнч(ДвоичныеДанныеКомпоненты) <> Тип("ДвоичныеДанные") Тогда
|
||||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
|
|
||||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
|
||||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ИнформацияОКомпонентеИзФайла = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(
|
||||||
|
ДвоичныеДанныеКомпоненты, Ложь);
|
||||||
|
Если Не ИнформацияОКомпонентеИзФайла.Разобрано Тогда
|
||||||
|
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||||
|
Иначе
|
||||||
|
Реквизиты = ИнформацияОКомпонентеИзФайла.Реквизиты;
|
||||||
|
ЦелевыеПлатформы = РеквизитыКомпоненты.ЦелевыеПлатформы.Получить();
|
||||||
|
Если ЦелевыеПлатформы <> Неопределено И ОбщегоНазначения.КоллекцииИдентичны(ЦелевыеПлатформы,
|
||||||
|
Реквизиты.ЦелевыеПлатформы) Тогда
|
||||||
|
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИнформацияОКомпонентеИзФайла = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(
|
|
||||||
ДвоичныеДанныеКомпоненты, Ложь);
|
|
||||||
Если Не ИнформацияОКомпонентеИзФайла.Разобрано Тогда
|
|
||||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
|
|
||||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
|
||||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Реквизиты = ИнформацияОКомпонентеИзФайла.Реквизиты;
|
|
||||||
|
|
||||||
Если ЦелевыеПлатформы <> Неопределено И ОбщегоНазначения.КоллекцииИдентичны(ЦелевыеПлатформы, Реквизиты.ЦелевыеПлатформы) Тогда
|
|
||||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
|
|
||||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
|
||||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
|
||||||
КонецЕсли;
|
|
||||||
Иначе
|
Иначе
|
||||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ОбновитьПоддерживаемыеПлатформыКомпоненты
|
Если Не ОбновитьПоддерживаемыеПлатформыКомпоненты
|
||||||
И Не (ОбновитьПараметрыКомпонентыСканирования И (РеквизитыКомпоненты.Идентификатор = "AddInNativeExtension")
|
И Не (ОбновитьПараметрыКомпонентыСканирования И (РеквизитыКомпоненты.Идентификатор = "AddInNativeExtension"
|
||||||
Или РеквизитыКомпоненты.Версия = "3.1.0.1013") Тогда
|
Или РеквизитыКомпоненты.Идентификатор = ИдентификаторКомпонентыСканирования
|
||||||
|
И СтрНачинаетсяС(РеквизитыКомпоненты.Версия, "3.1.0."))) Тогда
|
||||||
|
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
|
||||||
|
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||||
Продолжить;
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -318,8 +317,8 @@
|
|||||||
КомпонентаОбъект.Идентификатор = ИдентификаторКомпонентыСканирования;
|
КомпонентаОбъект.Идентификатор = ИдентификаторКомпонентыСканирования;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОбновитьПараметрыКомпонентыСканирования И РеквизитыКомпоненты.Версия = "3.1.0.1013" Тогда
|
Если ОбновитьПараметрыКомпонентыСканирования И СтрНачинаетсяС(РеквизитыКомпоненты.Версия, "3.1.0.") Тогда
|
||||||
КомпонентаОбъект.Версия = "3.0.1.1013";
|
КомпонентаОбъект.Версия = СтрЗаменить(РеквизитыКомпоненты.Версия, "3.1.0.", "3.0.1.");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(КомпонентаОбъект);
|
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(КомпонентаОбъект);
|
||||||
@@ -362,7 +361,7 @@
|
|||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
Функция ОбновитьПараметрыКомпонентыСканирования(ВерсияПодсистемыНаНачалоОбновления)
|
Функция ОбновитьПараметрыКомпонентыСканирования(ВерсияПодсистемыНаНачалоОбновления)
|
||||||
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияПодсистемыНаНачалоОбновления, "3.1.9.230") < 0
|
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияПодсистемыНаНачалоОбновления, "3.1.10.179") < 0
|
||||||
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами")
|
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами")
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -47,9 +47,9 @@
|
|||||||
<div>При необходимости для каждого <strong>Вида доступа</strong> можно задать список значений или групп значений, которые будут исключениями. Для этого в списке <strong>Разрешенные(Запрещенные) значения</strong> нажмите <strong>Добавить</strong>. Выберите исключения из предлагаемых приложением списков.</div>
|
<div>При необходимости для каждого <strong>Вида доступа</strong> можно задать список значений или групп значений, которые будут исключениями. Для этого в списке <strong>Разрешенные(Запрещенные) значения</strong> нажмите <strong>Добавить</strong>. Выберите исключения из предлагаемых приложением списков.</div>
|
||||||
<ul><li>В ряде случаев для упрощения настройки прав доступа, в списке разрешенных или запрещенных значений можно указывать не отдельные элементы, а целые группы элементов. Например, для вида доступа <strong>Демо: Группы Партнеров</strong> можно ограничить доступ в разрезе групп доступа партнеров, а не по каждому партнеру в отдельности. Для этого необходимо определить список групп доступа партнеров, и у каждого партнера задать принадлежность к той или иной группе. Эти действия могут быть выполнены не только администратором, но и любым пользователем с соответствующими правами на редактирование списка партнеров.</li></ul></li>
|
<ul><li>В ряде случаев для упрощения настройки прав доступа, в списке разрешенных или запрещенных значений можно указывать не отдельные элементы, а целые группы элементов. Например, для вида доступа <strong>Демо: Группы Партнеров</strong> можно ограничить доступ в разрезе групп доступа партнеров, а не по каждому партнеру в отдельности. Для этого необходимо определить список групп доступа партнеров, и у каждого партнера задать принадлежность к той или иной группе. Эти действия могут быть выполнены не только администратором, но и любым пользователем с соответствующими правами на редактирование списка партнеров.</li></ul></li>
|
||||||
<li>В некоторых группах доступа предусмотрена настройка прав с помощью вида доступа <strong>Пользователи</strong> (аналогично, вид доступа <strong>Внешние пользователи</strong> для внешних пользователей). Настройка может учитываться только в тех документах (и других объектах приложения), в полях которых могут быть указаны пользователи, получающие доступ к этим документам ("Ответственный", "Автор", "Исполнитель" и т.п.).
|
<li>В некоторых группах доступа предусмотрена настройка прав с помощью вида доступа <strong>Пользователи</strong> (аналогично, вид доступа <strong>Внешние пользователи</strong> для внешних пользователей). Настройка может учитываться только в тех документах (и других объектах приложения), в полях которых могут быть указаны пользователи, получающие доступ к этим документам ("Ответственный", "Автор", "Исполнитель" и т.п.).
|
||||||
<ul><li>Для того чтобы дать участникам группы права доступа ко всем ограниченным данным, с которыми работает тот или иной пользователь, необходимо включить его в список разрешенных значений для вида доступа <strong>Пользователи</strong>.
|
<ul><li>Для того чтобы участникам группы доступа дать права доступа ко всем ограниченным данным, с которыми работает тот или иной пользователь, необходимо включить его в список разрешенных значений для вида доступа <strong>Пользователи</strong>.</li>
|
||||||
</li>
|
<li>При этом не нужно включать лишних пользователей, так как для этих видов доступа <b>авторизованный пользователь и его группы всегда разрешены</b>. То есть в своем сеансе каждый участник группы доступа будет разрешенным по виду доступа <b>Пользователи</b> в рамках этой группы доступа, как будут разрешены и его группы пользователей (в которые он входит).</li>
|
||||||
<li>Например, если доступ к документам <strong>Поступление товаров и услуг </strong>зависит от того, кто указан в поле <strong>Ответственный</strong>, тогда пользователь сможет записывать документы, у которых <strong>Ответственный</strong> совпадает с пользователем, или добавлен в список разрешенных для вида доступа <strong>Пользователи</strong>. Аналогично действует запрещающая настройка.</li></ul></li></ul><h3 style="font-size: 13.4399995803833px;">Отчеты</h3>
|
<li>Например, если доступ к документам <strong>Поступление товаров и услуг </strong>зависит от того, кто указан в поле <strong>Ответственный</strong>, тогда пользователь сможет записывать документы, у которых <strong>Ответственный</strong> совпадает с ним или группой пользователей, в которую он входит, или добавлен в список разрешенных для вида доступа <strong>Пользователи</strong>. Аналогично действует запрещающая настройка (список исключений из состава разрешенных), но сам авторизованный пользователь и его группы пользователей остаются в составе разрешенных. </li></ul></li></ul><h3 style="font-size: 13.4399995803833px;">Отчеты</h3>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<div>Просмотреть участников групп доступа можно с помощью отчета <b>Участники групп доступа</b>. Отчет может быть полезен, если в приложении большое количество пользователей и групп. </div></li></ul><h3>См. также:</h3>
|
<div>Просмотреть участников групп доступа можно с помощью отчета <b>Участники групп доступа</b>. Отчет может быть полезен, если в приложении большое количество пользователей и групп. </div></li></ul><h3>См. также:</h3>
|
||||||
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>. </li></ul></body></html>
|
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>. </li></ul></body></html>
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
||||||
<p><a href="Catalog.ГруппыДоступа.Form.ФормаСписка/Help">Группы доступа</a> предназначены для настройки прав и ограничений прав доступа конкретным пользователям и группам пользователей приложения.</p>
|
<p><a href="Catalog.ГруппыДоступа.Form.ФормаСписка/Help">Группы доступа</a> предназначены для настройки прав и ограничений прав доступа конкретным пользователям и группам пользователей приложения.</p>
|
||||||
<p>Приложение позволяет настроить доступ пользователей к различным функциям, спискам и документам. Предусмотрены предопределенные наборы ролей. Кроме этого, имеется возможность самостоятельной настройки доступа. Управление доступом осуществляет администратор. При этом пользователь, назначенный ответственным в <a href="Catalog.ГруппыДоступа.Form.ФормаЭлемента/Help">группе доступа</a>, может изменять состав своей группы доступа.</p>
|
<p>Приложение позволяет настроить доступ пользователей к различным функциям, спискам и документам. Предусмотрены предопределенные наборы прав. Кроме этого, имеется возможность самостоятельной настройки доступа. Управление доступом осуществляет администратор. При этом пользователь, назначенный ответственным в <a href="Catalog.ГруппыДоступа.Form.ФормаЭлемента/Help">группе доступа</a>, может изменять состав участников своей группы доступа.</p>
|
||||||
<p>Набор прав и возможности по их ограничению определяются заданным <a href="Catalog.ПрофилиГруппДоступа/Help">профилем групп доступа</a>. </p>
|
<p>Набор прав (ролей) и возможности по их ограничению определяются заданным <a href="Catalog.ПрофилиГруппДоступа/Help">профилем групп доступа</a>. </p>
|
||||||
<p>Например, группа доступа "Менеджеры по продажам ПО делового назначения" с пользователями Иванов и Петров может ссылаться на профиль "Менеджер по продажам", в котором предусмотрена возможность ограничения по виду доступа <strong>Виды номенклатуры</strong>. Тогда если по этому виду доступа для всех значений указать вариант "Запрещены", а в список добавить вид номенклатуры "ПО делового назначения", то Иванову и Петрову будут доступны только те данные и операции, которые связаны с ПО делового назначения.</p>
|
<p>Например, группа доступа "Менеджеры по продажам ПО делового назначения" с пользователями Иванов и Петров может ссылаться на профиль "Менеджер по продажам", в котором предусмотрена возможность ограничения по виду доступа <strong>Виды номенклатуры</strong>. Тогда если по этому виду доступа для всех значений указать вариант "Запрещены", а в список добавить вид номенклатуры "ПО делового назначения", то Иванову и Петрову будут доступны только те данные и операции, которые связаны с ПО делового назначения.</p>
|
||||||
<p>Рекомендуется задавать наименования групп таким образом, чтобы название отражало как суть профиля, так и смысл ограничений, заданных в группе.</p>
|
<p>Рекомендуется задавать наименования групп таким образом, чтобы название отражало как суть профиля, так и смысл ограничений, заданных в группе.</p>
|
||||||
<p>В состав группы доступа могут быть включены как отдельные <a href="Catalog.Пользователи/Help">пользователи</a> (<a href="Catalog.ВнешниеПользователи/Help">внешние пользователи</a>), так и <a href="Catalog.ГруппыПользователей/Help">группы пользователей</a> (<a href="Catalog.ГруппыВнешнихПользователей/Help">группы внешних пользователей</a>). В случае большого количества пользователей, участвующих сразу в нескольких группах доступа, рекомендуется объединять пользователей в группы. Включение таких групп пользователей в группы доступа позволит избежать рутинного пересмотра состава пользователей в нескольких группах доступа.</p>
|
<p>В состав группы доступа могут быть включены как отдельные <a href="Catalog.Пользователи/Help">пользователи</a> (<a href="Catalog.ВнешниеПользователи/Help">внешние пользователи</a>), так и <a href="Catalog.ГруппыПользователей/Help">группы пользователей</a> (<a href="Catalog.ГруппыВнешнихПользователей/Help">группы внешних пользователей</a>). В случае большого количества пользователей, участвующих сразу в нескольких группах доступа, рекомендуется объединять пользователей в группы пользователей. Включение таких групп пользователей в группы доступа позволит избежать рутинного пересмотра состава пользователей в нескольких группах доступа.</p>
|
||||||
<h3>Состав ролей пользователя</h3>
|
<h3>Состав ролей пользователя</h3>
|
||||||
<ul><li>Состав ролей пользователя определяется приложением автоматически, исходя из того, в какие <a href="Catalog.ГруппыДоступа.Form.ФормаСписка/Help">группы доступа</a> он входит явно или косвенно (посредством групп пользователей), и обновляется каждый раз при изменении состава группы доступа или состава <a href="Catalog.ГруппыПользователей/Help">группы пользователей</a> (<a href="Catalog.ГруппыВнешнихПользователей.Form.ФормаЭлемента/Help">группы внешних пользователей</a>).
|
<ul><li>Состав ролей пользователя определяется приложением автоматически, исходя из того, в какие <a href="Catalog.ГруппыДоступа.Form.ФормаСписка/Help">группы доступа</a> он входит явно или косвенно (посредством групп пользователей), и обновляется каждый раз при изменении состава группы доступа или состава <a href="Catalog.ГруппыПользователей/Help">группы пользователей</a> (<a href="Catalog.ГруппыВнешнихПользователей.Form.ФормаЭлемента/Help">группы внешних пользователей</a>).
|
||||||
</li>
|
</li>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li>В этом случае его совокупные <a href="CommonForm.ПраваДоступа/Help">права доступа</a> складываются (объединяются по "или") из прав доступа каждой группы. Например, в группе доступа "Менеджеры по закупкам" пользователю разрешен просмотр документов "Поступления товаров" по организации "Далекая перспектива". В группе доступа "Менеджеры по продажам" ему разрешен ввод документов "Заказ покупателя" по организации "Новые технологии".
|
<li>В этом случае его совокупные <a href="CommonForm.ПраваДоступа/Help">права доступа</a> складываются (объединяются по "или") из прав доступа каждой группы. Например, в группе доступа "Менеджеры по закупкам" пользователю разрешен просмотр документов "Поступления товаров" по организации "Далекая перспектива". В группе доступа "Менеджеры по продажам" ему разрешен ввод документов "Заказ покупателя" по организации "Новые технологии".
|
||||||
</li>
|
</li>
|
||||||
<li>При этом следует учитывать, что объединяются не списки разрешенных значений, указанные в группах, а именно права доступа. Т.е. ошибочно считать, что в приведенном примере пользователь получит доступ на просмотр документов поступления товаров и на ввод документов "Заказы покупателей" одновременно по обеим организациям.</li></ul><h3>Группа доступа для администрирования</h3>
|
<li>При этом следует учитывать, что объединяются не списки разрешенных значений, указанные в группах доступа, а именно права доступа. Т.е. ошибочно считать, что в приведенном примере пользователь получит доступ на просмотр документов поступления товаров и на ввод документов "Заказы покупателей" одновременно по обеим организациям.</li></ul><h3>Группа доступа для администрирования</h3>
|
||||||
<ul><li>Для целей администрирования приложения предусмотрена предопределенная группа доступа <strong>Администраторы</strong> с профилем <strong>Администратор</strong>. При добавлении пользователя в эту группу ему автоматически устанавливается роль <strong>Полные права</strong>. При этом если в приложении имеются другие пользователи с этой ролью, которые не входят в группу <strong>Администраторы</strong>, то у таких пользователей роль <strong>Полные права</strong> будет снята.</li></ul><h3>Предупреждение</h3>
|
<ul><li>Для целей администрирования приложения предусмотрена предопределенная группа доступа <strong>Администраторы</strong> с профилем <strong>Администратор</strong>. При добавлении пользователя в эту группу ему автоматически устанавливается роль <strong>Полные права</strong>. При этом если в приложении имеются другие пользователи с этой ролью, которые не входят в группу <strong>Администраторы</strong>, то у таких пользователей роль <strong>Полные права</strong> будет снята.</li></ul><h3>Предупреждение</h3>
|
||||||
<ul><li>Не следует для настройки прав доступа использовать режим конфигурирования 1С:Предприятия.</li></ul><h3>См. также</h3>
|
<ul><li>Не следует для настройки прав доступа использовать режим конфигурирования 1С:Предприятия.</li></ul><h3>См. также</h3>
|
||||||
<ul><li><a href="v8help://frame/form_common">Работа с формами</a></li></ul></body></html>
|
<ul><li><a href="v8help://frame/form_common">Работа с формами</a></li></ul></body></html>
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -19,18 +19,23 @@
|
|||||||
|
|
||||||
Процедура ПередЗаписью(Отказ)
|
Процедура ПередЗаписью(Отказ)
|
||||||
|
|
||||||
Если ОбменДанными.Загрузка Тогда
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ЭтоГруппа Тогда
|
Если ЭтоГруппа Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа()
|
||||||
|
Или Не ОбменДанными.Загрузка Тогда
|
||||||
|
|
||||||
СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
|
СтарыеЗначения = СтарыеЗначения();
|
||||||
"Ссылка, Профиль, ПометкаУдаления, Пользователи, ВидыДоступа, ЗначенияДоступа");
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
|
Если ОбменДанными.Загрузка Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
|
||||||
|
|
||||||
Если Не Справочники.ВерсииРасширений.ВсеРасширенияПодключены() Тогда
|
Если Не Справочники.ВерсииРасширений.ВсеРасширенияПодключены() Тогда
|
||||||
Справочники.ПрофилиГруппДоступа.ВосстановитьНесуществующиеВидыИЗначенияДоступа(СтарыеЗначения, ЭтотОбъект);
|
Справочники.ПрофилиГруппДоступа.ВосстановитьНесуществующиеВидыИЗначенияДоступа(СтарыеЗначения, ЭтотОбъект);
|
||||||
@@ -85,43 +90,46 @@
|
|||||||
|у предопределенной группы доступа Администраторы.'");
|
|у предопределенной группы доступа Администраторы.'");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ЭтоГруппа Тогда
|
// Автоматическая установка реквизитов для персональной группы доступа.
|
||||||
|
Если ЗначениеЗаполнено(Пользователь) Тогда
|
||||||
|
Родитель = Справочники.ГруппыДоступа.РодительПерсональныхГруппДоступа();
|
||||||
|
Иначе
|
||||||
|
Пользователь = Неопределено;
|
||||||
|
Если Родитель = Справочники.ГруппыДоступа.РодительПерсональныхГруппДоступа(Истина) Тогда
|
||||||
|
Родитель = Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
// Автоматическая установка реквизитов для персональной группы доступа.
|
// При снятии пометки удаления с группы доступа выполняется
|
||||||
Если ЗначениеЗаполнено(Пользователь) Тогда
|
// снятие пометки удаления с профиля этой группы доступа.
|
||||||
Родитель = Справочники.ГруппыДоступа.РодительПерсональныхГруппДоступа();
|
Если Не ПометкаУдаления И СтарыеЗначения.ПометкаУдаления = Истина
|
||||||
Иначе
|
И Профиль = СтарыеЗначения.Профиль Тогда
|
||||||
Пользователь = Неопределено;
|
|
||||||
Если Родитель = Справочники.ГруппыДоступа.РодительПерсональныхГруппДоступа(Истина) Тогда
|
НачатьТранзакцию();
|
||||||
Родитель = Неопределено;
|
Попытка
|
||||||
|
Блокировка = Новый БлокировкаДанных;
|
||||||
|
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа");
|
||||||
|
ЭлементБлокировки.УстановитьЗначение("Ссылка", Профиль);
|
||||||
|
Блокировка.Заблокировать();
|
||||||
|
|
||||||
|
ПометкаУдаленияПрофиля = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Профиль, "ПометкаУдаления");
|
||||||
|
ПометкаУдаленияПрофиля = ?(ТипЗнч(ПометкаУдаленияПрофиля) = Тип("Булево"), ПометкаУдаленияПрофиля, Ложь);
|
||||||
|
Если ПометкаУдаленияПрофиля Тогда
|
||||||
|
УправлениеДоступом.ПроверитьИзменениеРазрешено(Профиль);
|
||||||
|
ЗаблокироватьДанныеДляРедактирования(Профиль);
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
ПрофильОбъект = Профиль.ПолучитьОбъект();
|
||||||
|
ПрофильОбъект.ДополнительныеСвойства.Вставить("СнятиеПометкиУдаленияПрофиляПриСнятииПометкиУдаленияГруппыДоступа", Ссылка);
|
||||||
|
ПрофильОбъект.ПометкаУдаления = Ложь;
|
||||||
|
ПрофильОбъект.Записать();
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
// При снятии пометки удаления с группы доступа выполняется
|
ЗафиксироватьТранзакцию();
|
||||||
// снятие пометки удаления с профиля этой группы доступа.
|
Исключение
|
||||||
Если Не ПометкаУдаления И СтарыеЗначения.ПометкаУдаления = Истина Тогда
|
ОтменитьТранзакцию();
|
||||||
НачатьТранзакцию();
|
ВызватьИсключение;
|
||||||
Попытка
|
КонецПопытки;
|
||||||
Блокировка = Новый БлокировкаДанных;
|
|
||||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа");
|
|
||||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Профиль);
|
|
||||||
Блокировка.Заблокировать();
|
|
||||||
|
|
||||||
ПометкаУдаленияПрофиля = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Профиль, "ПометкаУдаления");
|
|
||||||
ПометкаУдаленияПрофиля = ?(ПометкаУдаленияПрофиля = Неопределено, Ложь, ПометкаУдаленияПрофиля);
|
|
||||||
Если ПометкаУдаленияПрофиля Тогда
|
|
||||||
ЗаблокироватьДанныеДляРедактирования(Профиль);
|
|
||||||
ПрофильОбъект = Профиль.ПолучитьОбъект();
|
|
||||||
ПрофильОбъект.ПометкаУдаления = Ложь;
|
|
||||||
ПрофильОбъект.Записать();
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ЗафиксироватьТранзакцию();
|
|
||||||
Исключение
|
|
||||||
ОтменитьТранзакцию();
|
|
||||||
ВызватьИсключение;
|
|
||||||
КонецПопытки;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -133,11 +141,24 @@
|
|||||||
//
|
//
|
||||||
Процедура ПриЗаписи(Отказ)
|
Процедура ПриЗаписи(Отказ)
|
||||||
|
|
||||||
Если ОбменДанными.Загрузка Тогда
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
|
Если ЭтоГруппа Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЭтоГруппа Тогда
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа() Тогда
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
|
||||||
|
Справочники.ГруппыДоступа.ЗарегистрироватьИзменениеУчастниковГруппДоступа(ЭтотОбъект, СтарыеЗначения);
|
||||||
|
Справочники.ГруппыДоступа.ЗарегистрироватьИзменениеРазрешенныхЗначений(ЭтотОбъект, СтарыеЗначения);
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
|
Если ОбменДанными.Загрузка Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -200,6 +221,35 @@
|
|||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
// Значения некоторых реквизитов и табличных частей группы доступа
|
||||||
|
// до ее изменения для использования в обработчике события ПриЗаписи.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура:
|
||||||
|
// * Ссылка - СправочникСсылка.ГруппыДоступа
|
||||||
|
// * ПометкаУдаления - Булево
|
||||||
|
// * Профиль - СправочникСсылка.ПрофилиГруппДоступа
|
||||||
|
// * ПометкаУдаленияПрофиля - Булево
|
||||||
|
// * Пользователи - РезультатЗапроса
|
||||||
|
// * ВидыДоступа - РезультатЗапроса
|
||||||
|
// * ЗначенияДоступа - РезультатЗапроса
|
||||||
|
//
|
||||||
|
Функция СтарыеЗначения()
|
||||||
|
|
||||||
|
Результат = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
|
||||||
|
"Ссылка, Профиль, ПометкаУдаления, Пользователи, ВидыДоступа, ЗначенияДоступа");
|
||||||
|
|
||||||
|
Результат.Вставить("ПометкаУдаленияПрофиля", Неопределено);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Результат.Профиль) Тогда
|
||||||
|
Результат.ПометкаУдаленияПрофиля = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
|
||||||
|
Результат.Профиль, "ПометкаУдаления");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// НовыеУчастники - СправочникТабличнаяЧасть.ГруппыДоступа.Пользователи
|
// НовыеУчастники - СправочникТабличнаяЧасть.ГруппыДоступа.Пользователи
|
||||||
// СтарыеУчастники - РезультатЗапроса
|
// СтарыеУчастники - РезультатЗапроса
|
||||||
|
|||||||
@@ -1219,6 +1219,7 @@
|
|||||||
Строка.ИмяВЕдЧисле = "ЖурналДокументов";
|
Строка.ИмяВЕдЧисле = "ЖурналДокументов";
|
||||||
Строка.СинонимВЕдЧисле = НСтр("ru = 'Журнал документов'");
|
Строка.СинонимВЕдЧисле = НСтр("ru = 'Журнал документов'");
|
||||||
Строка.БезДанных = Истина;
|
Строка.БезДанных = Истина;
|
||||||
|
Строка.ОбъектыРасширений = Истина;
|
||||||
|
|
||||||
Строка = Результат.Добавить();
|
Строка = Результат.Добавить();
|
||||||
Строка.Идентификатор = Новый УникальныйИдентификатор("706cf832-0ae5-45b5-8a4a-1f251d054f3b");
|
Строка.Идентификатор = Новый УникальныйИдентификатор("706cf832-0ae5-45b5-8a4a-1f251d054f3b");
|
||||||
@@ -1300,6 +1301,7 @@
|
|||||||
Строка.Синоним = НСтр("ru = 'Бизнес-процессы'");
|
Строка.Синоним = НСтр("ru = 'Бизнес-процессы'");
|
||||||
Строка.ИмяВЕдЧисле = "БизнесПроцесс";
|
Строка.ИмяВЕдЧисле = "БизнесПроцесс";
|
||||||
Строка.СинонимВЕдЧисле = НСтр("ru = 'Бизнес-процесс'");
|
Строка.СинонимВЕдЧисле = НСтр("ru = 'Бизнес-процесс'");
|
||||||
|
Строка.ОбъектыРасширений = Истина;
|
||||||
|
|
||||||
Строка = Результат.Добавить();
|
Строка = Результат.Добавить();
|
||||||
Строка.Идентификатор = Новый УникальныйИдентификатор("8d9153ad-7cea-4e25-9542-a557ee59fd16");
|
Строка.Идентификатор = Новый УникальныйИдентификатор("8d9153ad-7cea-4e25-9542-a557ee59fd16");
|
||||||
@@ -1307,6 +1309,7 @@
|
|||||||
Строка.Синоним = НСтр("ru = 'Задачи'");
|
Строка.Синоним = НСтр("ru = 'Задачи'");
|
||||||
Строка.ИмяВЕдЧисле = "Задача";
|
Строка.ИмяВЕдЧисле = "Задача";
|
||||||
Строка.СинонимВЕдЧисле = НСтр("ru = 'Задача'");
|
Строка.СинонимВЕдЧисле = НСтр("ru = 'Задача'");
|
||||||
|
Строка.ОбъектыРасширений = Истина;
|
||||||
|
|
||||||
Для каждого Строка Из Результат Цикл
|
Для каждого Строка Из Результат Цикл
|
||||||
Строка.ПорядокКоллекции = Результат.Индекс(Строка);
|
Строка.ПорядокКоллекции = Результат.Индекс(Строка);
|
||||||
@@ -1357,6 +1360,17 @@
|
|||||||
УстановитьПривилегированныйРежим(Ложь);
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
УстановитьОтключениеБезопасногоРежима(Ложь);
|
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||||
|
|
||||||
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
|
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
|
||||||
|
И ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа()
|
||||||
|
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||||
|
|
||||||
|
Объект.ДополнительныеСвойства.Вставить("СтандартныеПодсистемыСтарыеЗначения",
|
||||||
|
ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Ссылка,
|
||||||
|
"ПометкаУдаления, Имя, Синоним"));
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
Если Объект.ОбменДанными.Загрузка Тогда
|
Если Объект.ОбменДанными.Загрузка Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1365,6 +1379,35 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Параметры:
|
||||||
|
// Объект - СправочникОбъект.ИдентификаторыОбъектовМетаданных
|
||||||
|
// - СправочникОбъект.ИдентификаторыОбъектовРасширений
|
||||||
|
//
|
||||||
|
Процедура ПриЗаписиОбъекта(Объект) Экспорт
|
||||||
|
|
||||||
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
|
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
|
||||||
|
И ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа()
|
||||||
|
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||||
|
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
|
||||||
|
МодульПрофилиГруппДоступа = ОбщегоНазначения.ОбщийМодуль("Справочники.ПрофилиГруппДоступа");
|
||||||
|
МодульПрофилиГруппДоступа.ЗарегистрироватьИзменениеРолейПрофилей(Объект,
|
||||||
|
Объект.ДополнительныеСвойства.СтандартныеПодсистемыСтарыеЗначения);
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
|
Если Объект.ОбменДанными.Загрузка Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
// Предотвращает удаление идентификаторов объектов метаданных не помеченных на удаление.
|
// Предотвращает удаление идентификаторов объектов метаданных не помеченных на удаление.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
|
|||||||
@@ -19,6 +19,13 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриЗаписи(Отказ)
|
||||||
|
|
||||||
|
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
||||||
|
Справочники.ИдентификаторыОбъектовМетаданных.ПриЗаписиОбъекта(ЭтотОбъект);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ПередУдалением(Отказ)
|
Процедура ПередУдалением(Отказ)
|
||||||
|
|
||||||
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
||||||
|
|||||||
@@ -19,6 +19,13 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриЗаписи(Отказ)
|
||||||
|
|
||||||
|
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
||||||
|
Справочники.ИдентификаторыОбъектовМетаданных.ПриЗаписиОбъекта(ЭтотОбъект);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ПередУдалением(Отказ)
|
Процедура ПередУдалением(Отказ)
|
||||||
|
|
||||||
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
||||||
|
|||||||
+3
-4
@@ -350,13 +350,13 @@
|
|||||||
Элементы = Форма.Элементы;
|
Элементы = Форма.Элементы;
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Форма.ДокументВид)
|
Если Не ЗначениеЗаполнено(Форма.ДокументВид)
|
||||||
Или Форма.ДокументВид = "0"
|
Или Форма.ДокументВид = "0" Тогда
|
||||||
Или Форма.ДокументВид = "91" Тогда
|
|
||||||
Форма.ДокументНомер = "";
|
Форма.ДокументНомер = "";
|
||||||
Форма.ДокументКемВыдан = "";
|
Форма.ДокументКемВыдан = "";
|
||||||
Форма.ДокументДатаВыдачи = "";
|
Форма.ДокументДатаВыдачи = "";
|
||||||
Форма.ДокументКодПодразделения = "";
|
Форма.ДокументКодПодразделения = "";
|
||||||
Форма.ДокументСрокДействия = "";
|
Форма.ДокументСрокДействия = "";
|
||||||
|
Элементы.ДокументНомер.Маска = "";
|
||||||
ИначеЕсли Форма.ДокументВид = "21" Тогда
|
ИначеЕсли Форма.ДокументВид = "21" Тогда
|
||||||
Элементы.ДокументНомер.Заголовок = НСтр("ru = 'Серия и номер'");
|
Элементы.ДокументНомер.Заголовок = НСтр("ru = 'Серия и номер'");
|
||||||
Элементы.ДокументНомер.Маска = "99 99 999999";
|
Элементы.ДокументНомер.Маска = "99 99 999999";
|
||||||
@@ -373,7 +373,6 @@
|
|||||||
|
|
||||||
&НаКлиентеНаСервереБезКонтекста
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
Процедура ВидимостьВидаДокумента(Форма)
|
Процедура ВидимостьВидаДокумента(Форма)
|
||||||
Форма.Элементы.ДокументКодПодразделения.Видимость = Форма.ПоказыватьПерсональныеДанные И Форма.ДокументВид = "21";
|
|
||||||
Форма.Элементы.ДокументСрокДействия.Видимость = Форма.ПоказыватьПерсональныеДанные И Форма.ДокументВид <> "21";
|
Форма.Элементы.ДокументСрокДействия.Видимость = Форма.ПоказыватьПерсональныеДанные И Форма.ДокументВид <> "21";
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -529,7 +528,7 @@
|
|||||||
СведенияОФизическомЛице = РеквизитыУчастникаДляХранения;
|
СведенияОФизическомЛице = РеквизитыУчастникаДляХранения;
|
||||||
СведенияОФизическомЛице.Вставить("Ссылка", Ссылка);
|
СведенияОФизическомЛице.Вставить("Ссылка", Ссылка);
|
||||||
|
|
||||||
Если ДокументВид = "00" Тогда
|
Если ДокументВид = "0" Тогда
|
||||||
СведенияОФизическомЛице.ДокументВид = "";
|
СведенияОФизическомЛице.ДокументВид = "";
|
||||||
СведенияОФизическомЛице.ДокументКемВыдан = "";
|
СведенияОФизическомЛице.ДокументКемВыдан = "";
|
||||||
СведенияОФизическомЛице.ДокументКодПодразделения = "";
|
СведенияОФизическомЛице.ДокументКодПодразделения = "";
|
||||||
|
|||||||
@@ -8277,7 +8277,6 @@
|
|||||||
<name>Отправить</name>
|
<name>Отправить</name>
|
||||||
</handler>
|
</handler>
|
||||||
</action>
|
</action>
|
||||||
<modifiesStoredData>true</modifiesStoredData>
|
|
||||||
<currentRowUse>Auto</currentRowUse>
|
<currentRowUse>Auto</currentRowUse>
|
||||||
<selectedRowsUse>Auto</selectedRowsUse>
|
<selectedRowsUse>Auto</selectedRowsUse>
|
||||||
</formCommands>
|
</formCommands>
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
||||||
|
<p>Предназначена для создания машиночитаемой доверенности.</p>
|
||||||
|
<p>Форма МЧД должна соответствовать требованиям, утвержденным приказом Минцифры России от 18.08.2021 №857 "Об утверждении единых требований к формам доверенностей, необходимым для использования квалифицированной электронной подписи".</p>
|
||||||
|
<p>Создать машиночитаемую доверенность своей организации можно в списке МЧД по кнопке <strong>Создать</strong>. Откроется форма регистрации машиночитаемой доверенности, в которой необходимо заполнить данные <strong>Срока действия</strong>, <strong>Доверителя</strong>, <strong>Представителя</strong>, <strong>Полномочий</strong>, а также <strong>Иных сведений</strong>.</p>
|
||||||
|
<h3>Ввод доверителя</h3>
|
||||||
|
<ul><li>Выберите <strong>Организацию </strong>- указывается юридическое лицо/иностранное юридическое лицо/индивидуальный предприниматель/ физическое лицо, передавшее другому лицу полномочия представлять его интересы перед третьими лицами.</li>
|
||||||
|
<li>Если нужной <strong>Организации</strong> нет в списке, то можно ввести реквизиты вручную, перейдя по гиперссылке <strong>Уточнить реквизиты</strong>. </li>
|
||||||
|
<li>Выберите лицо, действующее от имени юридического лица - доверителя, им может быть и <strong>Физическое лицо</strong>, и <strong>Организация</strong>. Если выбрана <strong>Организация</strong>, то в поле <strong>Лицо, действующее от имени управляющей компании </strong>нужно будет выбрать физическое лицо, действующее от имени управляющей организации.</li></ul><h3>Ввод представителя</h3>
|
||||||
|
<ul><li>В поле <strong>Представитель</strong> выберите или заполните вручную представителя, получившего полномочия представлять интересы другого лица перед третьими лицами по доверенности. Представителями могут выступать <strong>Контрагенты</strong>, <strong>Организации</strong> или <strong>Физические лица</strong>.</li>
|
||||||
|
<li>При выборе <strong>Контрагента</strong> также нужно указать физическое лицо, получившее полномочия.</li>
|
||||||
|
<li>Если нужного <strong>Представителя</strong> нет в списке, то с помощью кнопки <img src="StdPicture.CreateListItem"></img> можно создать нового <strong>Представителя</strong>, указав его реквизиты. </li>
|
||||||
|
<li>В поле <strong>Полномочия</strong>, перейдя по гиперссылке с помощью выпадающего списка можно выбрать вид полномочий:<br><ul><li><strong>Полномочия в машиночитаемом виде</strong> - выбираются из классификатора ФНС;</li>
|
||||||
|
<li><strong>Полномочия в текстовом виде</strong> - вводятся в произвольной форме;</li>
|
||||||
|
<li><strong>Полномочия не ограничены</strong> - будут указаны полномочия в текстовом виде с заголовком <strong>Все полномочия</strong>; </li>
|
||||||
|
<li>В поле <strong>Ограничения полномочий</strong> можно ввести ограничение, например, установить лимит по сумме. Ограничения подбираются из классификатора;</li>
|
||||||
|
<li>С помощью кнопки <strong>Сохранить</strong> <img src="StdPicture.SaveReportSettings"></img> можно сохранить установленную настройку полномочий;</li>
|
||||||
|
<li>С помощью кнопки <strong>Загрузить</strong> <img src="StdPicture.LoadReportSettings"></img> можно загрузить настройку полномочий из ранее сохраненных настроек.</li></ul></li></ul><h3><strong>Иные сведения</strong></h3>
|
||||||
|
<ul><li>Нажмите на <strong>Иные сведения</strong> для того чтобы указать иные сведения по соглашению участников электронного взаимодействия и по требованиям федеральных органов исполнительной власти. </li>
|
||||||
|
<li>Для того чтобы зарегистрировать МЧД в <strong>Распределенном реестре ФНС России</strong> нажмите на флажок. </li>
|
||||||
|
<li>В поле <strong>Единый регистрационный номер доверенности</strong> автоматически сгенерируется номер после подписания доверенности. </li>
|
||||||
|
<li>Поле <strong>Наименование</strong> заполняется автоматически. </li></ul><h3>Подписание доверенности</h3>
|
||||||
|
<ul><li>
|
||||||
|
<div>С помощью кнопки <strong>Подписать</strong> подпишите доверенность <a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">сертификатом электронной подписи</a>, предварительно установленным на устройство. </div></li></ul><h3><strong>Регистрация в реестре</strong></h3>
|
||||||
|
<ul><li>С помощью кнопки <strong>Зарегистрировать в реестре</strong> зарегистрируйте доверенность в распределенном реестре ФНС. Регистрация становится доступной, если предварительно установить флажок <strong>Зарегистрировать в распределенном реестре ФНС</strong>;</li>
|
||||||
|
<li>После отправки на регистрацию статус доверенности примет значение <strong>Ожидает регистрации</strong>;</li>
|
||||||
|
<li>После регистрации и проверки ФНС статус доверенности с <strong>Ожидает регистрации</strong> поменяется на <strong>В реестре</strong>;</li>
|
||||||
|
<li>Если при регистрации были выявлены ошибки, например, при неверных данных <strong>Доверителя</strong> или <strong>Представителя</strong>, то статус доверенности примет значение <strong>Отменена</strong>.</li></ul><h3>См. также:</h3>
|
||||||
|
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
||||||
@@ -1120,14 +1120,10 @@
|
|||||||
Для Каждого Строка Из Объект.Доверители Цикл
|
Для Каждого Строка Из Объект.Доверители Цикл
|
||||||
|
|
||||||
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
||||||
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
|
||||||
СтрокаОшибки = НСтр("ru = 'Организация %1 - %2'");
|
|
||||||
Иначе
|
|
||||||
СтрокаОшибки = НСтр("ru = 'Физическое лицо %1 - %2'");
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ШаблонОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаОшибки,
|
ПредставлениеДоверителя = ПредставлениеДоверителяПредставителяДляОшибки(Строка.Доверитель, РеквизитыОрганизации);
|
||||||
Строка.Доверитель, " %1: ");
|
|
||||||
|
ШаблонОшибки = ПредставлениеДоверителя + " - %1:";
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
||||||
Поле = "Доверитель";
|
Поле = "Доверитель";
|
||||||
@@ -1147,14 +1143,9 @@
|
|||||||
Для Каждого Строка Из Объект.Представители Цикл
|
Для Каждого Строка Из Объект.Представители Цикл
|
||||||
|
|
||||||
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
||||||
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
ПредставлениеПредставителя = ПредставлениеДоверителяПредставителяДляОшибки(Строка.Представитель, РеквизитыОрганизации);
|
||||||
СтрокаОшибки = НСтр("ru = 'Организация %1 - %2'");
|
|
||||||
Иначе
|
|
||||||
СтрокаОшибки = НСтр("ru = 'Физическое лицо %1 - %2'");
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ШаблонОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаОшибки,
|
ШаблонОшибки = ПредставлениеПредставителя + " - %1:";
|
||||||
Строка.Представитель, " %1: ");
|
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
||||||
Поле = "Представитель";
|
Поле = "Представитель";
|
||||||
@@ -1194,7 +1185,7 @@
|
|||||||
|
|
||||||
Если ЗначениеЗаполнено(Объект.РодительскаяДоверенность) Тогда
|
Если ЗначениеЗаполнено(Объект.РодительскаяДоверенность) Тогда
|
||||||
|
|
||||||
РеквизитыРодительскойДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.РодительскаяДоверенность, "Представители, ДатаОкончания");
|
РеквизитыРодительскойДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.РодительскаяДоверенность, "Представители, ДатаВыдачи, ДатаОкончания");
|
||||||
ПредставителиРодительскойДоверенности = РеквизитыРодительскойДоверенности.Представители.Выгрузить();
|
ПредставителиРодительскойДоверенности = РеквизитыРодительскойДоверенности.Представители.Выгрузить();
|
||||||
|
|
||||||
Если Объект.ДатаОкончания > РеквизитыРодительскойДоверенности.ДатаОкончания Тогда
|
Если Объект.ДатаОкончания > РеквизитыРодительскойДоверенности.ДатаОкончания Тогда
|
||||||
@@ -1204,6 +1195,13 @@
|
|||||||
Формат(РеквизитыРодительскойДоверенности.ДатаОкончания, "ДЛФ=D")),, "ДатаОкончания",, Отказ);
|
Формат(РеквизитыРодительскойДоверенности.ДатаОкончания, "ДЛФ=D")),, "ДатаОкончания",, Отказ);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Объект.ДатаВыдачи < РеквизитыРодительскойДоверенности.ДатаВыдачи Тогда
|
||||||
|
ОбщегоНазначения.СообщитьПользователю(
|
||||||
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Дата начала действия не должна быть меньше, чем у родительской доверенности (%1)'"),
|
||||||
|
Формат(РеквизитыРодительскойДоверенности.ДатаВыдачи, "ДЛФ=D")),, "ДатаВыдачи",, Отказ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого Строка Из ПредставителиРодительскойДоверенности Цикл
|
Для Каждого Строка Из ПредставителиРодительскойДоверенности Цикл
|
||||||
|
|
||||||
РеквизитыОрганизации = Строка.ПредставительРеквизиты.Получить();
|
РеквизитыОрганизации = Строка.ПредставительРеквизиты.Получить();
|
||||||
@@ -1212,17 +1210,12 @@
|
|||||||
КПП = "";
|
КПП = "";
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
||||||
ШаблонОшибки = НСтр("ru = 'Организация %1 - %2'");
|
|
||||||
|
|
||||||
ИНН = РеквизитыОрганизации.ИНН;
|
ИНН = РеквизитыОрганизации.ИНН;
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
||||||
КПП = РеквизитыОрганизации.КПП;
|
КПП = РеквизитыОрганизации.КПП;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
ШаблонОшибки = НСтр("ru = 'Физическое лицо %1 - %2'");
|
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
||||||
ИНН = РеквизитыОрганизации.ИННФЛ;
|
ИНН = РеквизитыОрганизации.ИННФЛ;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1245,26 +1238,8 @@
|
|||||||
|
|
||||||
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
||||||
|
|
||||||
ИНН = "";
|
ИНН = "";КПП = "";
|
||||||
КПП = "";
|
ПредставлениеДоверителя = ПредставлениеДоверителяПредставителяДляОшибки(Строка.Доверитель, РеквизитыОрганизации, ИНН, КПП);
|
||||||
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
|
||||||
ШаблонОшибки = НСтр("ru = 'Организация %1 - %2'");
|
|
||||||
|
|
||||||
ИНН = РеквизитыОрганизации.ИНН;
|
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
|
||||||
КПП = РеквизитыОрганизации.КПП;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Иначе
|
|
||||||
ШаблонОшибки = НСтр("ru = 'Физическое лицо %1 - %2'");
|
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
|
||||||
ИНН = РеквизитыОрганизации.ИННФЛ;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ПредставлениеДоверителя = ПредставлениеДоверителяПредставителяДляОшибки(Строка.Доверитель, ИНН, КПП);
|
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
||||||
Поле = "Доверитель";
|
Поле = "Доверитель";
|
||||||
@@ -1274,7 +1249,7 @@
|
|||||||
Если ТаблицаДляПроверкиПервоначальнойДоверенности.НайтиСтроки(
|
Если ТаблицаДляПроверкиПервоначальнойДоверенности.НайтиСтроки(
|
||||||
Новый Структура("ИНН, КПП", ИНН, КПП)).Количество() = 0 Тогда
|
Новый Структура("ИНН, КПП", ИНН, КПП)).Количество() = 0 Тогда
|
||||||
|
|
||||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПредставлениеДоверителя, НСтр(
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 - %2", ПредставлениеДоверителя, НСтр(
|
||||||
"ru = 'отсутствует в представителях первоначальной доверенности.'"));
|
"ru = 'отсутствует в представителях первоначальной доверенности.'"));
|
||||||
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, Поле,, Отказ);
|
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, Поле,, Отказ);
|
||||||
|
|
||||||
@@ -1293,7 +1268,7 @@
|
|||||||
СтруктураОтбора.Вставить("ТабличнаяЧасть", "Доверители");
|
СтруктураОтбора.Вставить("ТабличнаяЧасть", "Доверители");
|
||||||
|
|
||||||
Если ТаблицаДляПроверкиДублей.НайтиСтроки(СтруктураОтбора).Количество() > 0 Тогда
|
Если ТаблицаДляПроверкиДублей.НайтиСтроки(СтруктураОтбора).Количество() > 0 Тогда
|
||||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПредставлениеДоверителя, НСтр(
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 - %2", ПредставлениеДоверителя, НСтр(
|
||||||
"ru = 'указано несколько доверителей с одним ИНН.'"));
|
"ru = 'указано несколько доверителей с одним ИНН.'"));
|
||||||
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, Поле,, Отказ);
|
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, Поле,, Отказ);
|
||||||
Иначе
|
Иначе
|
||||||
@@ -1309,25 +1284,8 @@
|
|||||||
Для Каждого Строка Из Объект.Представители Цикл
|
Для Каждого Строка Из Объект.Представители Цикл
|
||||||
|
|
||||||
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
||||||
|
ИНН = "";КПП = "";
|
||||||
ИНН = "";
|
ПредставлениеПредставителя = ПредставлениеДоверителяПредставителяДляОшибки(Строка.Представитель, РеквизитыОрганизации, ИНН, КПП);
|
||||||
КПП = "";
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
|
||||||
ШаблонОшибки = НСтр("ru = 'Организация %1 - %2'");
|
|
||||||
|
|
||||||
ИНН = РеквизитыОрганизации.ИНН;
|
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
|
||||||
КПП = РеквизитыОрганизации.КПП;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Иначе
|
|
||||||
ШаблонОшибки = НСтр("ru = 'Физическое лицо %1 - %2'");
|
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
|
||||||
ИНН = РеквизитыОрганизации.ИННФЛ;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
||||||
Поле = "Представитель";
|
Поле = "Представитель";
|
||||||
@@ -1335,8 +1293,6 @@
|
|||||||
Поле = "ЛицоПредставителя";
|
Поле = "ЛицоПредставителя";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПредставлениеПредставителя = ПредставлениеДоверителяПредставителяДляОшибки(Строка.Представитель, ИНН, КПП);
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ИНН) Тогда
|
Если ЗначениеЗаполнено(ИНН) Тогда
|
||||||
СтруктураОтбора = Новый Структура;
|
СтруктураОтбора = Новый Структура;
|
||||||
СтруктураОтбора.Вставить("ИНН", ИНН);
|
СтруктураОтбора.Вставить("ИНН", ИНН);
|
||||||
@@ -1345,7 +1301,7 @@
|
|||||||
|
|
||||||
Если ТаблицаДляПроверкиДублей.НайтиСтроки(СтруктураОтбора).Количество() > 0 Тогда
|
Если ТаблицаДляПроверкиДублей.НайтиСтроки(СтруктураОтбора).Количество() > 0 Тогда
|
||||||
|
|
||||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 - %2",
|
||||||
ПредставлениеПредставителя, НСтр(
|
ПредставлениеПредставителя, НСтр(
|
||||||
"ru = 'указано несколько представителей с одним ИНН.'"));
|
"ru = 'указано несколько представителей с одним ИНН.'"));
|
||||||
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, Поле,, Отказ);
|
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, Поле,, Отказ);
|
||||||
@@ -1359,7 +1315,7 @@
|
|||||||
СтруктураОтбора.Вставить("ТабличнаяЧасть", "Доверители");
|
СтруктураОтбора.Вставить("ТабличнаяЧасть", "Доверители");
|
||||||
Если ТаблицаДляПроверкиДублей.НайтиСтроки(СтруктураОтбора).Количество() > 0 Тогда
|
Если ТаблицаДляПроверкиДублей.НайтиСтроки(СтруктураОтбора).Количество() > 0 Тогда
|
||||||
|
|
||||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 - %2",
|
||||||
ПредставлениеПредставителя, НСтр(
|
ПредставлениеПредставителя, НСтр(
|
||||||
"ru = 'указан представитель и доверитель с одним и тем же ИНН.'"));
|
"ru = 'указан представитель и доверитель с одним и тем же ИНН.'"));
|
||||||
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, Поле,, Отказ);
|
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки,, Поле,, Отказ);
|
||||||
@@ -1373,26 +1329,37 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Функция ПредставлениеДоверителяПредставителяДляОшибки(Ссылка, ИНН, КПП)
|
Функция ПредставлениеДоверителяПредставителяДляОшибки(Ссылка, РеквизитыОрганизации, ИНН = Неопределено, КПП = Неопределено)
|
||||||
Если ЗначениеЗаполнено(Ссылка) Тогда
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(КПП) Тогда
|
ИНН = "";
|
||||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
КПП = "";
|
||||||
НСтр("ru = '%1 (ИНН: %2, КПП %3)'"), Ссылка, ИНН, КПП);
|
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
||||||
Иначе
|
ИНН = РеквизитыОрганизации.ИНН;
|
||||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Наименование = РеквизитыОрганизации.НаименованиеПолное;
|
||||||
НСтр("ru = '%1 (ИНН: %2)'"), Ссылка, ИНН);
|
|
||||||
|
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
||||||
|
КПП = РеквизитыОрганизации.КПП;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(КПП) Тогда
|
Иначе
|
||||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Наименование = СтрШаблон("%1 %2 %3",
|
||||||
НСтр("ru = 'с ИНН: %1, КПП %2'"), ИНН, КПП);
|
РеквизитыОрганизации.Фамилия, РеквизитыОрганизации.Имя, РеквизитыОрганизации.Отчество);
|
||||||
Иначе
|
|
||||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
||||||
НСтр("ru = 'с ИНН: %1'"), ИНН);
|
ИНН = РеквизитыОрганизации.ИННФЛ;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(КПП) Тогда
|
||||||
|
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = '%1 (ИНН: %2, КПП %3)'"), ?(ЗначениеЗаполнено(Ссылка), Ссылка, Наименование), ИНН, КПП);
|
||||||
|
ИначеЕсли ЗначениеЗаполнено(ИНН) Тогда
|
||||||
|
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = '%1 (ИНН: %2)'"), ?(ЗначениеЗаполнено(Ссылка), Ссылка, Наименование), ИНН);
|
||||||
|
Иначе
|
||||||
|
Возврат ?(ЗначениеЗаполнено(Ссылка), Строка(Ссылка), Строка(Наименование));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
@@ -1677,6 +1644,11 @@
|
|||||||
|
|
||||||
&НаКлиентеНаСервереБезКонтекста
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
Функция ВнешнийСтатус(Форма)
|
Функция ВнешнийСтатус(Форма)
|
||||||
|
|
||||||
|
Если Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Просрочена") Тогда
|
||||||
|
Возврат Форма.Объект.Статус <> ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик") Или Форма.ЗарегистрированаВДругомРеестре;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина
|
Возврат МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина
|
||||||
Или Форма.ЗарегистрированаВДругомРеестре;
|
Или Форма.ЗарегистрированаВДругомРеестре;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -1883,11 +1855,11 @@
|
|||||||
|
|
||||||
Если Не Форма.Просрочена И (Форма.Подписана Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")) Тогда
|
Если Не Форма.Просрочена И (Форма.Подписана Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")) Тогда
|
||||||
Если Не Форма.Объект.РегистрироватьВРеестре Тогда
|
Если Не Форма.Объект.РегистрироватьВРеестре Тогда
|
||||||
Форма.Элементы.ФормаОтправить.Видимость = Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре;
|
Форма.Элементы.ФормаОтправить.Видимость = Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре И Не Форма.ТолькоПросмотр;
|
||||||
Форма.Элементы.ФормаОтправить.Заголовок = НСтр("ru='Зарегистрировать в реестре'");
|
Форма.Элементы.ФормаОтправить.Заголовок = НСтр("ru='Зарегистрировать в реестре'");
|
||||||
Иначе
|
Иначе
|
||||||
Форма.Элементы.ФормаОтправить.Видимость = Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")
|
Форма.Элементы.ФормаОтправить.Видимость = Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")
|
||||||
Или Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре;
|
Или Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре И Не Форма.ТолькоПросмотр;
|
||||||
Форма.Элементы.ФормаОтправить.Заголовок = ?(Форма.Объект.РегистрироватьВРеестре И Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре,
|
Форма.Элементы.ФормаОтправить.Заголовок = ?(Форма.Объект.РегистрироватьВРеестре И Форма.РегистрироватьВДругомРеестре И Не Форма.ЗарегистрированаВДругомРеестре,
|
||||||
НСтр("ru='Зарегистрировать в реестрах'"), НСтр("ru='Зарегистрировать в реестре'"));
|
НСтр("ru='Зарегистрировать в реестрах'"), НСтр("ru='Зарегистрировать в реестре'"));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
||||||
|
<p>Предназначен для формирования и хранения машиночитаемых доверенностей.</p>
|
||||||
|
<p>Открывается по соответствующей команде в разделе <strong>Справочники</strong>. Также можно перейти по гиперссылке в <a href="CommonForm.НастройкиЭлектроннойПодписиИШифрования/Help">настройках электронной подписи и шифрования</a>.</p>
|
||||||
|
<p><strong>Машиночитаемая доверенность (МЧД)</strong> - это электронный документ XML, заполненный по утвержденному формату, содержащий сведения о доверителе, представителе и его полномочиях. </p>
|
||||||
|
<li><strong>Доверитель</strong> - ответственное лицо, разрешающее выполнение операций другим организациям или физическим лицам по доверенности;
|
||||||
|
</li>
|
||||||
|
<li><strong>Представитель</strong> - организация или физическое лицо, принимающее на себя ответственность действовать от лица <strong>Доверителя</strong> в рамках вверяемых ему полномочий.
|
||||||
|
<p></p>
|
||||||
|
<p>Ведение списка МЧД может осуществлять как администратор, так и ответственный за список МЧД. Доверенность попадает в список разными способами:</p>
|
||||||
|
<ul><li>
|
||||||
|
<div><strong>Автоматически</strong> - путем загрузки из узла распределенного реестра ФНС;</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><strong>Вручную</strong> - путем создания и подписания МЧД в приложении;</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><strong>Вручную</strong> - путем загрузки МЧД контрагентов, полученных, например,по электронной почте.</div></li></ul><p>Список состоит из колонок: </p>
|
||||||
|
<ul><li>
|
||||||
|
<div><strong>Номер доверенности (в реестре)</strong> - единый регистрационный номер доверенности, генерируется автоматически при подписании или выгрузке в файл неподписанной доверенности.</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><strong>Наименование</strong> - наименование машиночитаемой доверенности.</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><strong>Дата выдачи</strong> - дата выдачи машиночитаемой доверенности.</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><strong>Дата окончания</strong> - дата окончания действия машиночитаемой доверенности.</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><strong>Код НО</strong> - код налогового органа, в отношении которого действует доверенность.</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div><strong>Номер (внутренний)</strong> - внутренний номер машиночитаемой доверенности, генерируется автоматически.</div></li></ul><h3>Создание доверенности</h3>
|
||||||
|
<ul><li>
|
||||||
|
<div>Создать машиночитаемую доверенность можно в списке МЧД по кнопке <strong>Создать</strong>. Откроется <a href="Catalog.МашиночитаемыеДоверенности.Form.ФормаЭлемента/Help">форма регистрации машиночитаемой доверенности</a>, в которой необходимо заполнить данные <strong>Доверителя</strong>, <strong>Представителя</strong>, <strong>Полномочий</strong>, а также <strong>Иных сведений</strong>. </div></li></ul><h3>Печать доверенности</h3>
|
||||||
|
<div>
|
||||||
|
<ul><li>Готовую доверенность можно напечатать из списка МЧД, а также в карточке МЧД с помощью кнопки <img src="StdPicture.Print"></img><strong>Доверенность</strong>.</li></ul></div>
|
||||||
|
<h3>Отборы</h3>
|
||||||
|
<p>Если машиночитаемых доверенностей в списке много, то для удобства поиска можно воспользоваться отборами:</p>
|
||||||
|
<ul><li>
|
||||||
|
<div>по полю <b>Сертификат</b> - выберите сертификат для отбора доверенностей, где владелец сертификата указан в качестве представителя.</div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div>по полю <b>Доверитель</b> - выберите нужного доверителя, указав, например, наименование организации из списка для отбора. </div>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div>по полю <b>Представитель</b> - выберите нужного представителя, указав, например, ИНН контрагента. </div></li></ul><h3>Загрузка из файла</h3>
|
||||||
|
<ul><li>С помощью кнопки <strong>Загрузить из файла</strong> можно загрузить МЧД из файла на устройстве. Укажите путь к файлу, нажмите <strong>Открыть</strong>.</li></ul><h3>Выгрузка в файл</h3>
|
||||||
|
<ul><li>С помощью кнопки <strong>Выгрузить в файл</strong> можно выгрузить доверенность и ее подпись (если приложена) на выбор как для представителя в налоговые органы, так и для подписания документов. Укажите папку на устройстве, нажмите <strong>Сохранить</strong>.</li></ul></li>
|
||||||
|
<p>С помощью команд меню <strong>Еще</strong> также можно использовать другие возможности работы со списком:</p>
|
||||||
|
<ul><li><b>Загрузить из реестра ФНС</b> - загрузка машиночитаемых доверенностей организации и контрагентов из распределенного реестра ФНС.
|
||||||
|
</li>
|
||||||
|
<li><strong>Обновить статус из реестра ФНС</strong> - нажмите, для того чтобы обновить статус из реестра ФНС.</li>
|
||||||
|
<li><strong>Отменить</strong> - если доверенность утратила свою актуальность ранее срока окончания доверенности, то ее можно отменить.</li></ul><p>Для того чтобы посмотреть, что означают значки состояния МЧД, нажмите раздел <strong>Легенда</strong> в нижней части списка.</p>
|
||||||
|
<h3>См. также:</h3>
|
||||||
|
<ul><li><a href="v8help://frame/form_common">Работа с формами</a></li></ul></body></html>
|
||||||
@@ -1078,6 +1078,8 @@
|
|||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТабличныйДокумент.ТолькоПросмотр = Истина;
|
||||||
|
|
||||||
Возврат ТабличныйДокумент;
|
Возврат ТабличныйДокумент;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -1109,7 +1111,7 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция РеквизитыЮридическогоЛица(СведенияОЮридическомЛице)
|
Функция РеквизитыЮридическогоЛица(СведенияОЮридическомЛице, ВычислятьЗначенияКонтактнойИнформацииПоПредставлениям = Ложь)
|
||||||
|
|
||||||
НаименованиеЮридическогоЛица = СведенияОЮридическомЛице.НаимОрг;
|
НаименованиеЮридическогоЛица = СведенияОЮридическомЛице.НаимОрг;
|
||||||
ИНН = СведенияОЮридическомЛице.ИННЮЛ;
|
ИНН = СведенияОЮридическомЛице.ИННЮЛ;
|
||||||
@@ -1119,14 +1121,20 @@
|
|||||||
НаименованиеУчредительногоДокумента = СведенияОЮридическомЛице.НаимУчрДок;
|
НаименованиеУчредительногоДокумента = СведенияОЮридическомЛице.НаимУчрДок;
|
||||||
|
|
||||||
КонтактныйТелефон = СведенияОЮридическомЛице.КонтактТлф;
|
КонтактныйТелефон = СведенияОЮридическомЛице.КонтактТлф;
|
||||||
КонтактныйТелефонЗначение = КонтактнаяИнформацияПоПредставлению(КонтактныйТелефон, "Телефон");
|
КонтактныйТелефонЗначение = "";
|
||||||
|
|
||||||
АдресЭлектроннойПочты = СведенияОЮридическомЛице.АдрЭлПочт;
|
АдресЭлектроннойПочты = СведенияОЮридическомЛице.АдрЭлПочт;
|
||||||
АдресЭлектроннойПочтыЗначение = КонтактнаяИнформацияПоПредставлению(АдресЭлектроннойПочты, "АдресЭлектроннойПочты");
|
АдресЭлектроннойПочтыЗначение = "";
|
||||||
|
|
||||||
АдресЮридическогоЛица = СведенияОЮридическомЛице.АдрРег;
|
АдресЮридическогоЛица = СведенияОЮридическомЛице.АдрРег;
|
||||||
ПредставлениеАдресаЮридическогоЛица = ПредставленияАдреса(АдресЮридическогоЛица);
|
ПредставлениеАдресаЮридическогоЛица = ПредставленияАдреса(АдресЮридическогоЛица);
|
||||||
ЮридическийАдресЗначение = КонтактнаяИнформацияПоПредставлению(ПредставлениеАдресаЮридическогоЛица, "Адрес");
|
ЮридическийАдресЗначение = "";
|
||||||
|
|
||||||
|
Если ВычислятьЗначенияКонтактнойИнформацииПоПредставлениям Тогда
|
||||||
|
КонтактныйТелефонЗначение = КонтактнаяИнформацияПоПредставлению(КонтактныйТелефон, "Телефон");
|
||||||
|
АдресЭлектроннойПочтыЗначение = КонтактнаяИнформацияПоПредставлению(АдресЭлектроннойПочты, "АдресЭлектроннойПочты");
|
||||||
|
ЮридическийАдресЗначение = КонтактнаяИнформацияПоПредставлению(ПредставлениеАдресаЮридическогоЛица, "Адрес");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Параметры = Новый Структура;
|
Параметры = Новый Структура;
|
||||||
Параметры.Вставить("НаименованиеЮридическогоЛица", НаименованиеЮридическогоЛица);
|
Параметры.Вставить("НаименованиеЮридическогоЛица", НаименованиеЮридическогоЛица);
|
||||||
@@ -1556,7 +1564,7 @@
|
|||||||
Если ЭтоПередоверие Тогда
|
Если ЭтоПередоверие Тогда
|
||||||
//@skip-check query-in-loop - штучные запросы в количестве загружаемых доверенностей
|
//@skip-check query-in-loop - штучные запросы в количестве загружаемых доверенностей
|
||||||
ЗаполнитьПередовериеИзОбъектаXDTO(Объект, ОписаниеДоверенности);
|
ЗаполнитьПередовериеИзОбъектаXDTO(Объект, ОписаниеДоверенности);
|
||||||
ПредыдущаяДоверенность = РеквизитыДоверенностиОснования(ОписаниеДоверенности);
|
ПредыдущаяДоверенность = РеквизитыДоверенностиОснования(ОписаниеДоверенности, Истина);
|
||||||
Иначе
|
Иначе
|
||||||
ЗаполнитьДоверенность(Объект, ОписаниеДоверенности);
|
ЗаполнитьДоверенность(Объект, ОписаниеДоверенности);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1970,7 +1978,7 @@
|
|||||||
|
|
||||||
Функция ДобавитьОрганизациюДоверителя(Объект, СвязаннаяОрганизация, СведенияОЮридическомЛице)
|
Функция ДобавитьОрганизациюДоверителя(Объект, СвязаннаяОрганизация, СведенияОЮридическомЛице)
|
||||||
|
|
||||||
Параметры = РеквизитыЮридическогоЛица(СведенияОЮридическомЛице);
|
Параметры = РеквизитыЮридическогоЛица(СведенияОЮридическомЛице, Истина);
|
||||||
|
|
||||||
РеквизитыУчастника = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника(
|
РеквизитыУчастника = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника(
|
||||||
ТипЭлементаОрганизация(), Неопределено, ВидУчастникаРоссийскаяОрганизация());
|
ТипЭлементаОрганизация(), Неопределено, ВидУчастникаРоссийскаяОрганизация());
|
||||||
@@ -1993,7 +2001,7 @@
|
|||||||
|
|
||||||
Функция ДобавитьОрганизациюПредставителя(Объект, СвязаннаяОрганизация, СведенияОЮридическомЛице)
|
Функция ДобавитьОрганизациюПредставителя(Объект, СвязаннаяОрганизация, СведенияОЮридическомЛице)
|
||||||
|
|
||||||
Параметры = РеквизитыЮридическогоЛица(СведенияОЮридическомЛице);
|
Параметры = РеквизитыЮридическогоЛица(СведенияОЮридическомЛице, Истина);
|
||||||
|
|
||||||
РеквизитыУчастника = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника(
|
РеквизитыУчастника = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника(
|
||||||
ТипЭлементаОрганизация(), Неопределено, ВидУчастникаРоссийскаяОрганизация());
|
ТипЭлементаОрганизация(), Неопределено, ВидУчастникаРоссийскаяОрганизация());
|
||||||
@@ -3372,7 +3380,7 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция РеквизитыДоверенностиОснования(ОписаниеДоверенности)
|
Функция РеквизитыДоверенностиОснования(ОписаниеДоверенности, ВычислятьЗначенияКонтактнойИнформацииПоПредставлениям = Ложь)
|
||||||
|
|
||||||
Документ = ОписаниеДоверенности.Документ;
|
Документ = ОписаниеДоверенности.Документ;
|
||||||
Передоверие = Документ.Передов;
|
Передоверие = Документ.Передов;
|
||||||
@@ -3400,7 +3408,7 @@
|
|||||||
Если ТипДоверителя = "1" Тогда
|
Если ТипДоверителя = "1" Тогда
|
||||||
|
|
||||||
СведенияОЮридическомЛице = Доверитель.РосОргДовер;
|
СведенияОЮридическомЛице = Доверитель.РосОргДовер;
|
||||||
Параметры = РеквизитыЮридическогоЛица(СведенияОЮридическомЛице);
|
Параметры = РеквизитыЮридическогоЛица(СведенияОЮридическомЛице, ВычислятьЗначенияКонтактнойИнформацииПоПредставлениям);
|
||||||
|
|
||||||
ИначеЕсли ТипДоверителя = "2" Тогда
|
ИначеЕсли ТипДоверителя = "2" Тогда
|
||||||
|
|
||||||
|
|||||||
@@ -161,7 +161,7 @@
|
|||||||
|
|
||||||
РодительскаяДоверенность = ДанныеЗаполнения;
|
РодительскаяДоверенность = ДанныеЗаполнения;
|
||||||
РеквизитыРодительскойДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(РодительскаяДоверенность,
|
РеквизитыРодительскойДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(РодительскаяДоверенность,
|
||||||
"Представители, Полномочия, Ограничения, НомерДоверенности, РегистрироватьВРеестре, ВозможностьПередоверия, ФайлДоверенности, ТекстПолномочий, ПолномочияВТекстовомВиде");
|
"ДатаОкончания, Представители, Полномочия, Ограничения, НомерДоверенности, РегистрироватьВРеестре, ВозможностьПередоверия, ФайлДоверенности, ТекстПолномочий, ПолномочияВТекстовомВиде");
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(РеквизитыРодительскойДоверенности.ВозможностьПередоверия)
|
Если Не ЗначениеЗаполнено(РеквизитыРодительскойДоверенности.ВозможностьПередоверия)
|
||||||
Или РеквизитыРодительскойДоверенности.ВозможностьПередоверия = Перечисления.ВозможностьПередоверияМЧД.БезПередоверия Тогда
|
Или РеквизитыРодительскойДоверенности.ВозможностьПередоверия = Перечисления.ВозможностьПередоверияМЧД.БезПередоверия Тогда
|
||||||
@@ -234,6 +234,7 @@
|
|||||||
НСтр("ru = 'Передоверие полномочий доверенности %1 от индивидуального предпринимателя может быть создано только нотариусом.'"), РодительскаяДоверенность);
|
НСтр("ru = 'Передоверие полномочий доверенности %1 от индивидуального предпринимателя может быть создано только нотариусом.'"), РодительскаяДоверенность);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ДатаОкончания = РеквизитыРодительскойДоверенности.ДатаОкончания;
|
||||||
ПолномочияВТекстовомВиде = РеквизитыРодительскойДоверенности.ПолномочияВТекстовомВиде;
|
ПолномочияВТекстовомВиде = РеквизитыРодительскойДоверенности.ПолномочияВТекстовомВиде;
|
||||||
ТекстПолномочий = РеквизитыРодительскойДоверенности.ТекстПолномочий;
|
ТекстПолномочий = РеквизитыРодительскойДоверенности.ТекстПолномочий;
|
||||||
Полномочия.Загрузить(РеквизитыРодительскойДоверенности.Полномочия.Выгрузить());
|
Полномочия.Загрузить(РеквизитыРодительскойДоверенности.Полномочия.Выгрузить());
|
||||||
|
|||||||
@@ -97,6 +97,11 @@
|
|||||||
<maxValue xsi:type="core:UndefinedValue"/>
|
<maxValue xsi:type="core:UndefinedValue"/>
|
||||||
</standardAttributes>
|
</standardAttributes>
|
||||||
<createOnInput>Use</createOnInput>
|
<createOnInput>Use</createOnInput>
|
||||||
|
<help>
|
||||||
|
<pages>
|
||||||
|
<lang>ru</lang>
|
||||||
|
</pages>
|
||||||
|
</help>
|
||||||
<dataLockControlMode>Managed</dataLockControlMode>
|
<dataLockControlMode>Managed</dataLockControlMode>
|
||||||
<fullTextSearch>Use</fullTextSearch>
|
<fullTextSearch>Use</fullTextSearch>
|
||||||
<objectPresentation>
|
<objectPresentation>
|
||||||
@@ -984,6 +989,11 @@
|
|||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
<value>Форма элемента</value>
|
<value>Форма элемента</value>
|
||||||
</synonym>
|
</synonym>
|
||||||
|
<help>
|
||||||
|
<pages>
|
||||||
|
<lang>ru</lang>
|
||||||
|
</pages>
|
||||||
|
</help>
|
||||||
<usePurposes>PersonalComputer</usePurposes>
|
<usePurposes>PersonalComputer</usePurposes>
|
||||||
<usePurposes>MobileDevice</usePurposes>
|
<usePurposes>MobileDevice</usePurposes>
|
||||||
</forms>
|
</forms>
|
||||||
|
|||||||
@@ -1124,6 +1124,8 @@
|
|||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура ИзменитьПометкуУдаленияИВладельцаЗначений(ТекущееСвойство, ПометкаУдаленияСвойства)
|
Процедура ИзменитьПометкуУдаленияИВладельцаЗначений(ТекущееСвойство, ПометкаУдаленияСвойства)
|
||||||
|
|
||||||
|
// АПК:1328-выкл Блокировка устанавливается выше по стеку.
|
||||||
|
// АПК:1327-выкл Блокировка устанавливается выше по стеку.
|
||||||
СтарыйВладелецЗначений = ТекущееСвойство;
|
СтарыйВладелецЗначений = ТекущееСвойство;
|
||||||
|
|
||||||
НоваяПометкаЗначений = Неопределено;
|
НоваяПометкаЗначений = Неопределено;
|
||||||
@@ -1263,6 +1265,9 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
|
// АПК:1327-вкл
|
||||||
|
// АПК:1328-вкл
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -290,7 +290,7 @@
|
|||||||
<name>ПрименяемыеПравилаКоманднаяПанель</name>
|
<name>ПрименяемыеПравилаКоманднаяПанель</name>
|
||||||
<id>3</id>
|
<id>3</id>
|
||||||
<items xsi:type="form:Button">
|
<items xsi:type="form:Button">
|
||||||
<name>ПрименяемыеПравилаПрименить</name>
|
<name>Применить</name>
|
||||||
<id>13</id>
|
<id>13</id>
|
||||||
<title>
|
<title>
|
||||||
<key>ru</key>
|
<key>ru</key>
|
||||||
@@ -302,7 +302,7 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</userVisible>
|
</userVisible>
|
||||||
<extendedTooltip>
|
<extendedTooltip>
|
||||||
<name>ПрименяемыеПравилаПрименитьРасширеннаяПодсказка</name>
|
<name>ПрименитьРасширеннаяПодсказка</name>
|
||||||
<id>26</id>
|
<id>26</id>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
|||||||
@@ -1599,6 +1599,211 @@
|
|||||||
УправлениеДоступомСлужебный.ДобавитьСвойстваВерсии(Контекст, Структура, ИменаПолей);
|
УправлениеДоступомСлужебный.ДобавитьСвойстваВерсии(Контекст, Структура, ИменаПолей);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Только для внутреннего использования.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Объект - СправочникОбъект.ПрофилиГруппДоступа
|
||||||
|
// - СправочникОбъект.ИдентификаторыОбъектовМетаданных
|
||||||
|
// - СправочникОбъект.ИдентификаторыОбъектовРасширений
|
||||||
|
// СтарыеЗначения - Структура
|
||||||
|
//
|
||||||
|
Процедура ЗарегистрироватьИзменениеРолейПрофилей(Объект, СтарыеЗначения) Экспорт
|
||||||
|
|
||||||
|
Данные = Новый Структура;
|
||||||
|
Данные.Вставить("ВерсияСтруктурыДанных", 1);
|
||||||
|
Данные.Вставить("ИзменениеРолей", Новый Массив);
|
||||||
|
Данные.Вставить("ПредставлениеРолей", Новый Массив);
|
||||||
|
Данные.Вставить("ПредставлениеПрофилей", Новый Массив);
|
||||||
|
|
||||||
|
Если ТипЗнч(Объект) = Тип("СправочникОбъект.ПрофилиГруппДоступа") Тогда
|
||||||
|
АктивностьПрофиляИзменена = Объект.ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления;
|
||||||
|
|
||||||
|
ИзменениеРолей = Объект.Роли.Выгрузить();
|
||||||
|
ИзменениеРолей.Свернуть("Роль");
|
||||||
|
ИзменениеРолей.Колонки.Добавить("ВидИзменения", Новый ОписаниеТипов("Строка"));
|
||||||
|
ИзменениеРолей.ЗаполнитьЗначения("Добавлено", "ВидИзменения");
|
||||||
|
|
||||||
|
Если ТипЗнч(СтарыеЗначения.Роли) = Тип("РезультатЗапроса")
|
||||||
|
И Не СтарыеЗначения.Роли.Пустой() Тогда
|
||||||
|
|
||||||
|
СтарыеРоли = СтарыеЗначения.Роли.Выгрузить();
|
||||||
|
СтарыеРоли.Индексы.Добавить("Роль");
|
||||||
|
Индекс = ИзменениеРолей.Количество();
|
||||||
|
Пока Индекс > 0 Цикл
|
||||||
|
Индекс = Индекс - 1;
|
||||||
|
НоваяРоль = ИзменениеРолей.Получить(Индекс);
|
||||||
|
СтараяРоль = СтарыеРоли.Найти(НоваяРоль.Роль, "Роль");
|
||||||
|
Если СтараяРоль = Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
Если АктивностьПрофиляИзменена Тогда
|
||||||
|
НоваяРоль.ВидИзменения = "Изменено";
|
||||||
|
Иначе
|
||||||
|
ИзменениеРолей.Удалить(НоваяРоль);
|
||||||
|
КонецЕсли;
|
||||||
|
СтарыеРоли.Удалить(СтараяРоль);
|
||||||
|
КонецЦикла;
|
||||||
|
Для Каждого СтараяРоль Из СтарыеРоли Цикл
|
||||||
|
НоваяСтрока = ИзменениеРолей.Добавить();
|
||||||
|
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтараяРоль);
|
||||||
|
НоваяСтрока.ВидИзменения = "Удалено";
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не АктивностьПрофиляИзменена
|
||||||
|
И Не ЗначениеЗаполнено(ИзменениеРолей) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СериализованнаяСсылкаПрофиля = СериализованнаяСсылка(Объект.Ссылка);
|
||||||
|
ИдентификаторыРолей = ИзменениеРолей.ВыгрузитьКолонку("Роль");
|
||||||
|
СвойстваРолей = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ИдентификаторыРолей,
|
||||||
|
"ПометкаУдаления, Имя, Синоним");
|
||||||
|
|
||||||
|
МетаданныеРолей = ОбщегоНазначения.ОбъектыМетаданныхПоИдентификаторам(ИдентификаторыРолей, Ложь);
|
||||||
|
|
||||||
|
Для Каждого Строка Из ИзменениеРолей Цикл
|
||||||
|
Если Не ЗначениеЗаполнено(Строка.Роль) Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
СериализованнаяСсылкаРоли = СериализованнаяСсылка(Строка.Роль);
|
||||||
|
|
||||||
|
Свойства = Новый Структура;
|
||||||
|
Свойства.Вставить("Профиль", СериализованнаяСсылкаПрофиля);
|
||||||
|
Свойства.Вставить("Роль", СериализованнаяСсылкаРоли);
|
||||||
|
Свойства.Вставить("ВидИзменения", Строка.ВидИзменения);
|
||||||
|
Данные.ИзменениеРолей.Добавить(Свойства);
|
||||||
|
|
||||||
|
МетаданныеРоли = МетаданныеРолей.Получить(Строка.Роль);
|
||||||
|
СвойстваРоли = СвойстваРолей.Получить(Строка.Роль);
|
||||||
|
ИмяРоли = Неопределено;
|
||||||
|
СинонимРоли = Неопределено;
|
||||||
|
|
||||||
|
Если ТипЗнч(МетаданныеРоли) = Тип("ОбъектМетаданных") Тогда
|
||||||
|
ИмяРоли = МетаданныеРоли.Имя;
|
||||||
|
СинонимРоли = МетаданныеРоли.Синоним;
|
||||||
|
ИначеЕсли СвойстваРоли <> Неопределено Тогда
|
||||||
|
ИмяРоли = СвойстваРоли.Имя;
|
||||||
|
СинонимРоли = СвойстваРоли.Синоним;
|
||||||
|
КонецЕсли;
|
||||||
|
ПометкаУдаленияРоли = ?(СвойстваРоли = Неопределено,
|
||||||
|
Неопределено, СвойстваРоли.ПометкаУдаления);
|
||||||
|
|
||||||
|
Свойства = Новый Структура;
|
||||||
|
Свойства.Вставить("Роль", СериализованнаяСсылкаРоли);
|
||||||
|
Свойства.Вставить("ПометкаУдаления", ПометкаУдаленияРоли);
|
||||||
|
Свойства.Вставить("ЕстьВМетаданных", ТипЗнч(МетаданныеРоли) = Тип("ОбъектМетаданных"));
|
||||||
|
Свойства.Вставить("Имя", ИмяРоли);
|
||||||
|
Свойства.Вставить("Синоним", СинонимРоли);
|
||||||
|
Свойства.Вставить("СтарыеЗначенияСвойств", Новый Структура);
|
||||||
|
Данные.ПредставлениеРолей.Добавить(Свойства);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Свойства = Новый Структура;
|
||||||
|
Свойства.Вставить("Профиль", СериализованнаяСсылка(Объект.Ссылка));
|
||||||
|
Свойства.Вставить("Представление", ПредставлениеСсылки(Объект.Ссылка));
|
||||||
|
Свойства.Вставить("ПометкаУдаления", Объект.ПометкаУдаления);
|
||||||
|
Свойства.Вставить("СтарыеЗначенияСвойств", Новый Структура);
|
||||||
|
|
||||||
|
Если Объект.ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления Тогда
|
||||||
|
Свойства.СтарыеЗначенияСвойств.Вставить("ПометкаУдаления", СтарыеЗначения.ПометкаУдаления);
|
||||||
|
КонецЕсли;
|
||||||
|
Данные.ПредставлениеПрофилей.Добавить(Свойства);
|
||||||
|
Иначе
|
||||||
|
Если Объект.ПометкаУдаления = СтарыеЗначения.ПометкаУдаления Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.УстановитьПараметр("Роль", Объект.Ссылка);
|
||||||
|
Запрос.Текст =
|
||||||
|
"ВЫБРАТЬ
|
||||||
|
| ПрофилиГруппДоступа.Ссылка КАК Ссылка,
|
||||||
|
| ПрофилиГруппДоступа.ПометкаУдаления КАК ПометкаУдаления,
|
||||||
|
| ПрофилиГруппДоступа.Представление КАК Представление
|
||||||
|
|ИЗ
|
||||||
|
| Справочник.ПрофилиГруппДоступа КАК ПрофилиГруппДоступа
|
||||||
|
|ГДЕ
|
||||||
|
| ПрофилиГруппДоступа.Ссылка В
|
||||||
|
| (ВЫБРАТЬ
|
||||||
|
| РолиПрофилей.Ссылка
|
||||||
|
| ИЗ
|
||||||
|
| Справочник.ПрофилиГруппДоступа.Роли КАК РолиПрофилей
|
||||||
|
| ГДЕ
|
||||||
|
| РолиПрофилей.Роль = &Роль)";
|
||||||
|
РезультатЗапроса = Запрос.Выполнить();
|
||||||
|
|
||||||
|
Если РезультатЗапроса.Пустой() Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СериализованнаяСсылкаРоли = СериализованнаяСсылка(Объект.Ссылка);
|
||||||
|
МетаданныеРоли = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Объект.Ссылка, Ложь);
|
||||||
|
ИмяРоли = ?(ТипЗнч(МетаданныеРоли) = Тип("ОбъектМетаданных"), МетаданныеРоли.Имя, Объект.Имя);
|
||||||
|
СинонимРоли = ?(ТипЗнч(МетаданныеРоли) = Тип("ОбъектМетаданных"), МетаданныеРоли.Синоним, Объект.Синоним);
|
||||||
|
|
||||||
|
Свойства = Новый Структура;
|
||||||
|
Свойства.Вставить("Роль", СериализованнаяСсылкаРоли);
|
||||||
|
Свойства.Вставить("ПометкаУдаления", Объект.ПометкаУдаления);
|
||||||
|
Свойства.Вставить("ЕстьВМетаданных", ТипЗнч(МетаданныеРоли) = Тип("ОбъектМетаданных"));
|
||||||
|
Свойства.Вставить("Имя", ИмяРоли);
|
||||||
|
Свойства.Вставить("Синоним", СинонимРоли);
|
||||||
|
Свойства.Вставить("СтарыеЗначенияСвойств", Новый Структура);
|
||||||
|
|
||||||
|
Если Объект.ПометкаУдаления <> СтарыеЗначения.ПометкаУдаления Тогда
|
||||||
|
Свойства.СтарыеЗначенияСвойств.Вставить("ПометкаУдаления", СтарыеЗначения.ПометкаУдаления);
|
||||||
|
КонецЕсли;
|
||||||
|
Если Объект.Имя <> СтарыеЗначения.Имя Тогда
|
||||||
|
Свойства.СтарыеЗначенияСвойств.Вставить("Имя",
|
||||||
|
?(ТипЗнч(СтарыеЗначения.Имя) = Тип("Строка"), СтарыеЗначения.Имя, ""));
|
||||||
|
КонецЕсли;
|
||||||
|
Если Объект.Синоним <> СтарыеЗначения.Синоним Тогда
|
||||||
|
Свойства.СтарыеЗначенияСвойств.Вставить("Синоним",
|
||||||
|
?(ТипЗнч(СтарыеЗначения.Синоним) = Тип("Строка"), СтарыеЗначения.Синоним, ""));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Данные.ПредставлениеРолей.Добавить(Свойства);
|
||||||
|
Выборка = РезультатЗапроса.Выбрать();
|
||||||
|
|
||||||
|
Пока Выборка.Следующий() Цикл
|
||||||
|
СериализованнаяСсылкаПрофиля = СериализованнаяСсылка(Выборка.Ссылка);
|
||||||
|
|
||||||
|
Свойства = Новый Структура;
|
||||||
|
Свойства.Вставить("Профиль", СериализованнаяСсылкаПрофиля);
|
||||||
|
Свойства.Вставить("Роль", СериализованнаяСсылкаРоли);
|
||||||
|
Свойства.Вставить("ВидИзменения", "Изменено");
|
||||||
|
Данные.ИзменениеРолей.Добавить(Свойства);
|
||||||
|
|
||||||
|
Свойства = Новый Структура;
|
||||||
|
Свойства.Вставить("Профиль", СериализованнаяСсылкаПрофиля);
|
||||||
|
Свойства.Вставить("Представление", Выборка.Представление);
|
||||||
|
Свойства.Вставить("ПометкаУдаления", Выборка.ПометкаУдаления);
|
||||||
|
Свойства.Вставить("СтарыеЗначенияСвойств", Новый Структура);
|
||||||
|
Данные.ПредставлениеПрофилей.Добавить(Свойства);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИмяСобытия = УправлениеДоступомСлужебный.ИмяСобытияИзменениеРолейПрофилейДляЖурналаРегистрации();
|
||||||
|
|
||||||
|
ЗаписьЖурналаРегистрации(ИмяСобытия,
|
||||||
|
УровеньЖурналаРегистрации.Информация,
|
||||||
|
Объект.Метаданные(),
|
||||||
|
ОбщегоНазначения.ЗначениеВСтрокуXML(Данные),
|
||||||
|
,
|
||||||
|
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// См. ПользователиСлужебный.СериализованнаяСсылка
|
||||||
|
Функция СериализованнаяСсылка(Ссылка)
|
||||||
|
Возврат ПользователиСлужебный.СериализованнаяСсылка(Ссылка);
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// См. ПользователиСлужебный.ПредставлениеСсылки
|
||||||
|
Функция ПредставлениеСсылки(Ссылка)
|
||||||
|
Возврат ПользователиСлужебный.ПредставлениеСсылки(Ссылка);
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Процедуры и функции для поддержки обмена данными в РИБ.
|
// Процедуры и функции для поддержки обмена данными в РИБ.
|
||||||
|
|
||||||
|
|||||||
@@ -18,17 +18,23 @@
|
|||||||
|
|
||||||
Процедура ПередЗаписью(Отказ)
|
Процедура ПередЗаписью(Отказ)
|
||||||
|
|
||||||
Если ОбменДанными.Загрузка Тогда
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если ЭтоГруппа Тогда
|
Если ЭтоГруппа Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа()
|
||||||
|
Или Не ОбменДанными.Загрузка Тогда
|
||||||
|
|
||||||
СтарыеЗначения = СтарыеЗначения();
|
СтарыеЗначения = СтарыеЗначения();
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
|
Если ОбменДанными.Загрузка Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
|
||||||
|
|
||||||
Если Не Справочники.ВерсииРасширений.ВсеРасширенияПодключены() Тогда
|
Если Не Справочники.ВерсииРасширений.ВсеРасширенияПодключены() Тогда
|
||||||
Справочники.ПрофилиГруппДоступа.ВосстановитьНесуществующиеВидыИЗначенияДоступа(СтарыеЗначения, ЭтотОбъект);
|
Справочники.ПрофилиГруппДоступа.ВосстановитьНесуществующиеВидыИЗначенияДоступа(СтарыеЗначения, ЭтотОбъект);
|
||||||
@@ -123,18 +129,32 @@
|
|||||||
|
|
||||||
Процедура ПриЗаписи(Отказ)
|
Процедура ПриЗаписи(Отказ)
|
||||||
|
|
||||||
Если ОбменДанными.Загрузка Тогда
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
|
Если ЭтоГруппа Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЭтоГруппа Тогда
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа() Тогда
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
|
||||||
|
Справочники.ПрофилиГруппДоступа.ЗарегистрироватьИзменениеРолейПрофилей(ЭтотОбъект, СтарыеЗначения);
|
||||||
|
Справочники.ГруппыДоступа.ЗарегистрироватьИзменениеУчастниковГруппДоступа(ЭтотОбъект, СтарыеЗначения);
|
||||||
|
Справочники.ГруппыДоступа.ЗарегистрироватьИзменениеРазрешенныхЗначений(ЭтотОбъект, СтарыеЗначения);
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
|
Если ОбменДанными.Загрузка Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПроверитьОднозначностьПоставляемыхДанных();
|
ПроверитьОднозначностьПоставляемыхДанных();
|
||||||
|
|
||||||
// При установке пометки удаления нужно установить пометку удаления у групп доступа профиля.
|
// При установке пометки удаления нужно установить пометку удаления у групп доступа профиля.
|
||||||
Если ПометкаУдаления И СтарыеЗначения.ПометкаУдаления = Ложь Тогда
|
Если Справочники.ГруппыДоступа.УстановленаПометкаУдаленияПрофиля(ЭтотОбъект, СтарыеЗначения) Тогда
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.УстановитьПараметр("Профиль", Ссылка);
|
Запрос.УстановитьПараметр("Профиль", Ссылка);
|
||||||
Запрос.Текст =
|
Запрос.Текст =
|
||||||
@@ -158,11 +178,14 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
Блокировка.Заблокировать();
|
Блокировка.Заблокировать();
|
||||||
|
|
||||||
Для каждого ГруппаДоступаСсылка Из ИзмененныеГруппыДоступа Цикл
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
Для Каждого ГруппаДоступаСсылка Из ИзмененныеГруппыДоступа Цикл
|
||||||
ГруппаДоступаОбъект = ГруппаДоступаСсылка.ПолучитьОбъект();
|
ГруппаДоступаОбъект = ГруппаДоступаСсылка.ПолучитьОбъект();
|
||||||
|
ГруппаДоступаОбъект.ДополнительныеСвойства.Вставить("УстановкаПометкиУдаленияГруппыДоступаПриУстановкеПометкиУдаленияПрофиля");
|
||||||
ГруппаДоступаОбъект.ПометкаУдаления = Истина;
|
ГруппаДоступаОбъект.ПометкаУдаления = Истина;
|
||||||
ГруппаДоступаОбъект.Записать();
|
ГруппаДоступаОбъект.Записать();
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ЗафиксироватьТранзакцию();
|
ЗафиксироватьТранзакцию();
|
||||||
Исключение
|
Исключение
|
||||||
|
|||||||
@@ -629,8 +629,10 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ТекущийОбъект.ДополнительныеСвойства.Вставить("Расписание", Расписание);
|
ТекущийОбъект.ДополнительныеСвойства.Вставить("Расписание", Расписание);
|
||||||
|
|
||||||
ПреобразоватьПараметрыТекста(ТекущийОбъект, "ПредставлениеВПараметры");
|
Если Не Отказ Тогда
|
||||||
ПреобразоватьПараметрыНастроекОтчетов(ТекущийОбъект, "ПредставлениеВПараметры");
|
ПреобразоватьПараметрыТекста(ТекущийОбъект, "ПредставлениеВПараметры");
|
||||||
|
ПреобразоватьПараметрыНастроекОтчетов(ТекущийОбъект, "ПредставлениеВПараметры");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -3719,7 +3721,7 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ОбновитьЗначениеПараметраПолучателяПерсонализированнойРассылки()
|
Процедура ОбновитьЗначениеПараметраПолучателяПерсонализированнойРассылки()
|
||||||
|
|
||||||
Если НЕ Объект.Персонализирована Тогда
|
Если НЕ Объект.Персонализирована Или Элементы.Отчеты.ТекущиеДанные = Неопределено Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
+233
-1
@@ -790,6 +790,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -855,6 +856,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -936,6 +938,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1001,6 +1004,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1272,6 +1276,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1337,6 +1342,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1418,6 +1424,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1483,6 +1490,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1749,6 +1757,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1814,6 +1823,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1895,6 +1905,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -1960,6 +1971,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2177,7 +2189,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<maxWidth>70</maxWidth>
|
||||||
<height>1</height>
|
<height>1</height>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
@@ -2257,6 +2269,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2322,6 +2335,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2403,6 +2417,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2468,6 +2483,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2735,6 +2751,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2800,6 +2817,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2881,6 +2899,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2946,6 +2965,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -2958,6 +2978,43 @@
|
|||||||
<horizontalAlign>Left</horizontalAlign>
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
</items>
|
</items>
|
||||||
|
<items xsi:type="form:Decoration">
|
||||||
|
<name>ДекорацияСертификатМеткиВремени</name>
|
||||||
|
<id>442</id>
|
||||||
|
<title>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Декорация сертификат метки времени</value>
|
||||||
|
</title>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<userVisible>
|
||||||
|
<common>true</common>
|
||||||
|
</userVisible>
|
||||||
|
<extendedTooltip>
|
||||||
|
<name>ДекорацияСертификатМеткиВремениРасширеннаяПодсказка</name>
|
||||||
|
<id>444</id>
|
||||||
|
<type>Label</type>
|
||||||
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</extendedTooltip>
|
||||||
|
<contextMenu>
|
||||||
|
<name>ДекорацияСертификатМеткиВремениКонтекстноеМеню</name>
|
||||||
|
<id>443</id>
|
||||||
|
<autoFill>true</autoFill>
|
||||||
|
</contextMenu>
|
||||||
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
|
<handlers>
|
||||||
|
<event>URLProcessing</event>
|
||||||
|
<name>ДекорацияСертификатМеткиВремениОбработкаНавигационнойСсылки</name>
|
||||||
|
</handlers>
|
||||||
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
|
</extInfo>
|
||||||
|
</items>
|
||||||
<visible>true</visible>
|
<visible>true</visible>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
<userVisible>
|
<userVisible>
|
||||||
@@ -3213,6 +3270,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -3278,6 +3336,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -3359,6 +3418,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -3424,6 +3484,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -3690,6 +3751,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -3755,6 +3817,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -3836,6 +3899,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -3901,6 +3965,7 @@
|
|||||||
<autoFill>true</autoFill>
|
<autoFill>true</autoFill>
|
||||||
</contextMenu>
|
</contextMenu>
|
||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
|
<maxWidth>70</maxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
<textColor xsi:type="core:ColorRef">
|
<textColor xsi:type="core:ColorRef">
|
||||||
<color>Style.ПоясняющийТекст</color>
|
<color>Style.ПоясняющийТекст</color>
|
||||||
@@ -5168,6 +5233,167 @@
|
|||||||
<common>true</common>
|
<common>true</common>
|
||||||
</edit>
|
</edit>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>ТипПодписи</name>
|
||||||
|
<id>34</id>
|
||||||
|
<valueType>
|
||||||
|
<types>EnumRef.ТипыПодписиКриптографии</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>СертификатыДляПроверкиПодписи</name>
|
||||||
|
<id>36</id>
|
||||||
|
<valueType>
|
||||||
|
<types>ValueTable</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
<columns>
|
||||||
|
<name>Отпечаток</name>
|
||||||
|
<id>37</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>Сервер</name>
|
||||||
|
<id>38</id>
|
||||||
|
<valueType>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>Клиент</name>
|
||||||
|
<id>39</id>
|
||||||
|
<valueType>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>АдресСертификата</name>
|
||||||
|
<id>40</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>СертификатыМетокВремени</name>
|
||||||
|
<id>42</id>
|
||||||
|
<valueType>
|
||||||
|
<types>ValueTable</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
<columns>
|
||||||
|
<name>Отпечаток</name>
|
||||||
|
<id>43</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>ПолученНаСервере</name>
|
||||||
|
<id>44</id>
|
||||||
|
<valueType>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>АдресСертификата</name>
|
||||||
|
<id>45</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>ПолученНаКлиенте</name>
|
||||||
|
<id>46</id>
|
||||||
|
<valueType>
|
||||||
|
<types>Boolean</types>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
<columns>
|
||||||
|
<name>Представление</name>
|
||||||
|
<id>47</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</columns>
|
||||||
|
</attributes>
|
||||||
<formCommands>
|
<formCommands>
|
||||||
<name>Проверить</name>
|
<name>Проверить</name>
|
||||||
<title>
|
<title>
|
||||||
@@ -5221,6 +5447,12 @@
|
|||||||
<stringQualifiers/>
|
<stringQualifiers/>
|
||||||
</valueType>
|
</valueType>
|
||||||
</parameters>
|
</parameters>
|
||||||
|
<parameters>
|
||||||
|
<name>ТипПодписи</name>
|
||||||
|
<valueType>
|
||||||
|
<types>EnumRef.ТипыПодписиКриптографии</types>
|
||||||
|
</valueType>
|
||||||
|
</parameters>
|
||||||
<commandInterface>
|
<commandInterface>
|
||||||
<navigationPanel/>
|
<navigationPanel/>
|
||||||
<commandBar/>
|
<commandBar/>
|
||||||
|
|||||||
+215
-21
@@ -68,6 +68,10 @@
|
|||||||
КатегорияОшибки.ОшибкаКонфигурации);
|
КатегорияОшибки.ОшибкаКонфигурации);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Параметры.ТипПодписи) Тогда
|
||||||
|
ТипПодписи = Параметры.ТипПодписи;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Для каждого Проверка Из Проверки Цикл
|
Для каждого Проверка Из Проверки Цикл
|
||||||
|
|
||||||
Группа = ГруппаФормыБезОтображения("Группа" + Проверка.Имя, Элементы.ГруппаДополнительныеПроверки);
|
Группа = ГруппаФормыБезОтображения("Группа" + Проверка.Имя, Элементы.ГруппаДополнительныеПроверки);
|
||||||
@@ -111,7 +115,7 @@
|
|||||||
Элементы[Проверка + "РешениеКлиентНадпись"].Видимость = Ложь;
|
Элементы[Проверка + "РешениеКлиентНадпись"].Видимость = Ложь;
|
||||||
Элементы[Проверка + "ОшибкаСервер"].Видимость = Ложь;
|
Элементы[Проверка + "ОшибкаСервер"].Видимость = Ложь;
|
||||||
Элементы[Проверка + "РешениеСерверНадпись"].Видимость = Ложь;
|
Элементы[Проверка + "РешениеСерверНадпись"].Видимость = Ложь;
|
||||||
Элементы[Проверка + "Надпись"].Заголовок = СтандартныйЗаголовокЭлемента(Проверка + "Надпись");
|
Элементы[Проверка + "Надпись"].Заголовок = СтандартныйЗаголовокЭлемента(Проверка + "Надпись", ТипПодписи);
|
||||||
|
|
||||||
Если ПроверкиНаКлиенте <> Неопределено Тогда
|
Если ПроверкиНаКлиенте <> Неопределено Тогда
|
||||||
ВывестиРезультатПроверки(Проверка);
|
ВывестиРезультатПроверки(Проверка);
|
||||||
@@ -234,7 +238,7 @@
|
|||||||
ИмяОшибки = ИмяЭлемента + "Ошибка";
|
ИмяОшибки = ИмяЭлемента + "Ошибка";
|
||||||
|
|
||||||
ПараметрыПредупреждения = Новый Структура;
|
ПараметрыПредупреждения = Новый Структура;
|
||||||
ПараметрыПредупреждения.Вставить("ЗаголовокПредупреждения", СтандартныйЗаголовокЭлемента(Элемент.Имя));
|
ПараметрыПредупреждения.Вставить("ЗаголовокПредупреждения", СтандартныйЗаголовокЭлемента(Элемент.Имя, ТипПодписи));
|
||||||
ПараметрыПредупреждения.Вставить("ТекстОшибкиКлиент", ПроверкиНаКлиенте[ИмяОшибки]);
|
ПараметрыПредупреждения.Вставить("ТекстОшибкиКлиент", ПроверкиНаКлиенте[ИмяОшибки]);
|
||||||
ПараметрыПредупреждения.Вставить("ТекстОшибкиСервер",
|
ПараметрыПредупреждения.Вставить("ТекстОшибкиСервер",
|
||||||
?(ОперацииНаСервере Или ЕстьВстроенныйКриптопровайдер Или ЕстьУчетнаяЗаписьСервиса,
|
?(ОперацииНаСервере Или ЕстьВстроенныйКриптопровайдер Или ЕстьУчетнаяЗаписьСервиса,
|
||||||
@@ -323,6 +327,14 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ДекорацияСертификатМеткиВремениОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьСертификат(НавигационнаяСсылкаФорматированнойСтроки);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область ОбработчикиКомандФормы
|
#Область ОбработчикиКомандФормы
|
||||||
@@ -348,6 +360,29 @@
|
|||||||
Элементы.ФормаПроверить.Доступность = Истина;
|
Элементы.ФормаПроверить.Доступность = Истина;
|
||||||
Элементы.ФормаПроверить.Отображение = ОтображениеКнопки.Текст;
|
Элементы.ФормаПроверить.Отображение = ОтображениеКнопки.Текст;
|
||||||
|
|
||||||
|
Если СертификатыМетокВремени.Количество() = 0 Тогда
|
||||||
|
Элементы.ДекорацияСертификатМеткиВремени.Видимость = Ложь;
|
||||||
|
Иначе
|
||||||
|
Массив = Новый Массив;
|
||||||
|
Для Каждого СертификатМеткиВремени Из СертификатыМетокВремени Цикл
|
||||||
|
Если Не СертификатМеткиВремени.ПолученНаКлиенте Тогда
|
||||||
|
Массив.Добавить(СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||||
|
НСтр("ru = 'Сертификат метки времени, полученной на сервере: <a href = %1>%2</a>.'"),
|
||||||
|
СертификатМеткиВремени.АдресСертификата, СертификатМеткиВремени.Представление));
|
||||||
|
ИначеЕсли Не СертификатМеткиВремени.ПолученНаСервере Тогда
|
||||||
|
Массив.Добавить(СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||||
|
НСтр("ru = 'Сертификат метки времени, полученной на компьютере: <a href = %1>%2</a>.'"),
|
||||||
|
СертификатМеткиВремени.АдресСертификата, СертификатМеткиВремени.Представление));
|
||||||
|
Иначе
|
||||||
|
Массив.Добавить(СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||||
|
НСтр("ru = 'Сертификат полученной метки времени: <a href = %1>%2</a>.'"),
|
||||||
|
СертификатМеткиВремени.АдресСертификата, СертификатМеткиВремени.Представление));
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
Элементы.ДекорацияСертификатМеткиВремени.Заголовок = Новый ФорматированнаяСтрока(Массив);
|
||||||
|
Элементы.ДекорацияСертификатМеткиВремени.Видимость = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ПроверкаПриВыборе Тогда
|
Если Не ПроверкаПриВыборе Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -466,6 +501,8 @@
|
|||||||
ПроверкиНаСервере = Новый Структура;
|
ПроверкиНаСервере = Новый Структура;
|
||||||
ДополнительныеДанныеПроверокНаКлиенте = Новый Структура;
|
ДополнительныеДанныеПроверокНаКлиенте = Новый Структура;
|
||||||
ДополнительныеДанныеПроверокНаСервере = Новый Структура;
|
ДополнительныеДанныеПроверокНаСервере = Новый Структура;
|
||||||
|
СертификатыМетокВремени.Очистить();
|
||||||
|
Элементы.ДекорацияСертификатМеткиВремени.Видимость = Ложь;
|
||||||
|
|
||||||
// Очистка предыдущих результатов проверки.
|
// Очистка предыдущих результатов проверки.
|
||||||
Если СтандартныеПроверки Тогда
|
Если СтандартныеПроверки Тогда
|
||||||
@@ -979,10 +1016,57 @@
|
|||||||
|
|
||||||
// Подписание.
|
// Подписание.
|
||||||
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
Контекст.МенеджерКриптографии.НачатьПодписывание(Новый ОписаниеОповещения(
|
|
||||||
"ПроверитьНаСторонеКлиентаПослеПодписания", ЭтотОбъект, Контекст,
|
Попытка
|
||||||
"ПроверитьНаСторонеКлиентаПослеОшибкиПодписания", ЭтотОбъект),
|
ДанныеПодписи = Ждать Контекст.МенеджерКриптографии.ПодписатьАсинх(Контекст.ДанныеСертификата, Контекст.СертификатКриптографии);
|
||||||
Контекст.ДанныеСертификата, Контекст.СертификатКриптографии);
|
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
|
УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
|
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
||||||
|
Возврат;
|
||||||
|
Иначе
|
||||||
|
ПарольПринят = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")
|
||||||
|
И ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
НастройкиПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.НастройкиСозданияПодписи(ТипПодписи,
|
||||||
|
ЭлектроннаяПодписьКлиент.ОбщиеНастройки().АдресаСерверовМетокВремени);
|
||||||
|
Контекст.МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени;
|
||||||
|
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
|
УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
|
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
ДанныеПодписи = Ждать Контекст.МенеджерКриптографии.ПодписатьАсинх(Контекст.ДанныеСертификата, Контекст.СертификатКриптографии,
|
||||||
|
НастройкиПодписи.ТипПодписи);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
|
УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
|
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПроверитьНаСторонеКлиентаПослеПодписания(ДанныеПодписи, Контекст);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1053,6 +1137,7 @@
|
|||||||
|
|
||||||
// Проверка подписи.
|
// Проверка подписи.
|
||||||
Если ДанныеПодписи <> Null И ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
Если ДанныеПодписи <> Null И ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
|
Контекст.Вставить("ДанныеПодписи", ДанныеПодписи);
|
||||||
Контекст.МенеджерКриптографии.НачатьПроверкуПодписи(Новый ОписаниеОповещения(
|
Контекст.МенеджерКриптографии.НачатьПроверкуПодписи(Новый ОписаниеОповещения(
|
||||||
"ПроверитьНаСторонеКлиентаПослеПроверкиПодписи", ЭтотОбъект, Контекст,
|
"ПроверитьНаСторонеКлиентаПослеПроверкиПодписи", ЭтотОбъект, Контекст,
|
||||||
"ПроверитьНаСторонеКлиентаПослеОшибкиПроверкиПодписи", ЭтотОбъект),
|
"ПроверитьНаСторонеКлиентаПослеОшибкиПроверкиПодписи", ЭтотОбъект),
|
||||||
@@ -1112,7 +1197,7 @@
|
|||||||
|
|
||||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПроверитьНаСторонеКлиентаПослеПроверкиПодписи(Сертификат, Контекст) Экспорт
|
Асинх Процедура ПроверитьНаСторонеКлиентаПослеПроверкиПодписи(Сертификат, Контекст) Экспорт
|
||||||
|
|
||||||
Если Сертификат <> Null Тогда
|
Если Сертификат <> Null Тогда
|
||||||
Если ТипЗнч(Сертификат) = Тип("Строка") Тогда
|
Если ТипЗнч(Сертификат) = Тип("Строка") Тогда
|
||||||
@@ -1120,7 +1205,47 @@
|
|||||||
Иначе
|
Иначе
|
||||||
ОписаниеОшибки = "";
|
ОписаниеОшибки = "";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(ТипПодписи) И ТипПодписи
|
||||||
|
<> ПредопределенноеЗначение(
|
||||||
|
"Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") И ТипПодписи <> ПредопределенноеЗначение(
|
||||||
|
"Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
СвойстваПодписи = Ждать ЭлектроннаяПодписьСлужебныйКлиент.СвойстваПодписиЧтениеМенеджеромКриптографии(
|
||||||
|
Контекст.ДанныеПодписи, Контекст.МенеджерКриптографии, Истина);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(СвойстваПодписи.ТекстОшибки) Тогда
|
||||||
|
ОписаниеОшибки = СвойстваПодписи.ТекстОшибки;
|
||||||
|
ИначеЕсли Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
|
ДанныеСертификатаМеткиВремени = СвойстваПодписи.Сертификаты[СвойстваПодписи.Сертификаты.ВГраница()];
|
||||||
|
СертификатМеткиВремени = Новый СертификатКриптографии();
|
||||||
|
Ждать СертификатМеткиВремени.ИнициализироватьАсинх(ДанныеСертификатаМеткиВремени);
|
||||||
|
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||||
|
СертификатМеткиВремени, ЭлектроннаяПодписьСлужебныйКлиент.РазницаСУниверсальнымВременем());
|
||||||
|
|
||||||
|
Найдено = СертификатыМетокВремени.НайтиСтроки(Новый Структура("Отпечаток",
|
||||||
|
СвойстваСертификата.Отпечаток));
|
||||||
|
|
||||||
|
Если Найдено.Количество() = 0 Тогда
|
||||||
|
НоваяСтрока = СертификатыМетокВремени.Добавить();
|
||||||
|
НоваяСтрока.АдресСертификата = ПоместитьВоВременноеХранилище(ДанныеСертификатаМеткиВремени,
|
||||||
|
УникальныйИдентификатор);
|
||||||
|
НоваяСтрока.Отпечаток = СвойстваСертификата.Отпечаток;
|
||||||
|
НоваяСтрока.ПолученНаКлиенте = Истина;
|
||||||
|
НоваяСтрока.Представление = СвойстваСертификата.Представление;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Найдено[0].ПолученНаКлиенте = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Контекст.МенеджерКриптографии.НачатьШифрование(Новый ОписаниеОповещения(
|
Контекст.МенеджерКриптографии.НачатьШифрование(Новый ОписаниеОповещения(
|
||||||
@@ -1795,6 +1920,29 @@
|
|||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
ПарольПринят = Не ЗначениеЗаполнено(ОписаниеОшибки);
|
ПарольПринят = Не ЗначениеЗаполнено(ОписаниеОшибки);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
|
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
|
Возврат ДанныеПодписи;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение(
|
||||||
|
"Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") И ТипПодписи <> ПредопределенноеЗначение(
|
||||||
|
"Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
НастройкиПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.НастройкиСозданияПодписи(ТипПодписи,
|
||||||
|
ЭлектроннаяПодпись.ОбщиеНастройки().АдресаСерверовМетокВремени);
|
||||||
|
МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени;
|
||||||
|
ДанныеПодписи = МенеджерКриптографии.Подписать(ДанныеСертификата, СертификатКриптографии,
|
||||||
|
НастройкиПодписи.ТипПодписи);
|
||||||
|
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
Возврат ДанныеПодписи;
|
Возврат ДанныеПодписи;
|
||||||
|
|
||||||
@@ -1809,6 +1957,42 @@
|
|||||||
Исключение
|
Исключение
|
||||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение(
|
||||||
|
"Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") И ТипПодписи <> ПредопределенноеЗначение(
|
||||||
|
"Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии(
|
||||||
|
ДанныеПодписи, МенеджерКриптографии, Истина);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(СвойстваПодписи.ТекстОшибки) Тогда
|
||||||
|
ОписаниеОшибки = СвойстваПодписи.ТекстОшибки;
|
||||||
|
ИначеЕсли Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
|
ДанныеСертификатаМеткиВремени = СвойстваПодписи.Сертификаты[СвойстваПодписи.Сертификаты.ВГраница()];
|
||||||
|
СертификатМеткиВремени = Новый СертификатКриптографии(ДанныеСертификатаМеткиВремени);
|
||||||
|
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||||
|
СертификатМеткиВремени, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем());
|
||||||
|
|
||||||
|
Найдено = СертификатыМетокВремени.НайтиСтроки(Новый Структура("Отпечаток", СвойстваСертификата.Отпечаток));
|
||||||
|
|
||||||
|
Если Найдено.Количество() = 0 Тогда
|
||||||
|
НоваяСтрока = СертификатыМетокВремени.Добавить();
|
||||||
|
НоваяСтрока.АдресСертификата = ПоместитьВоВременноеХранилище(ДанныеСертификатаМеткиВремени,
|
||||||
|
УникальныйИдентификатор);
|
||||||
|
НоваяСтрока.Отпечаток = СвойстваСертификата.Отпечаток;
|
||||||
|
НоваяСтрока.ПолученНаСервере = Истина;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Найдено[0].ПолученНаСервере = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -2085,7 +2269,7 @@
|
|||||||
ЭлементФормыНадписьРешение.Заголовок = НСтр("ru = 'См. пункт Подписание данных.'");
|
ЭлементФормыНадписьРешение.Заголовок = НСтр("ru = 'См. пункт Подписание данных.'");
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ОписаниеИзвестнойОшибки = ОшибкаПоКлассификатору(ОписаниеОшибки, НаСервере);
|
ОписаниеИзвестнойОшибки = ОшибкаПоКлассификатору(ОписаниеОшибки, НаСервере, Действие = "ПроверкаПодписи");
|
||||||
ЭтоИзвестнаяОшибка = ОписаниеИзвестнойОшибки <> Неопределено;
|
ЭтоИзвестнаяОшибка = ОписаниеИзвестнойОшибки <> Неопределено;
|
||||||
|
|
||||||
Форма.Элементы[ИмяНадписиРешение].Видимость = ЭтоИзвестнаяОшибка;
|
Форма.Элементы[ИмяНадписиРешение].Видимость = ЭтоИзвестнаяОшибка;
|
||||||
@@ -2093,10 +2277,10 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ОписаниеИзвестнойОшибки.ДействияДляУстранения) Тогда
|
Если ЗначениеЗаполнено(Форма.Сертификат) И ЗначениеЗаполнено(ОписаниеИзвестнойОшибки.ДействияДляУстранения) Тогда
|
||||||
ДанныеДляДополнения = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДанныеДляДополненияОшибкиИзКлассификатора(Неопределено);
|
|
||||||
ДанныеДляДополнения.ДанныеСертификата = ПолучитьИзВременногоХранилища(Форма.АдресСертификата);
|
|
||||||
|
|
||||||
|
ДанныеДляДополнения = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДанныеДляДополненияОшибкиИзКлассификатора(
|
||||||
|
Новый Структура("Сертификат, ДанныеСертификата", Форма.Сертификат, Форма.АдресСертификата));
|
||||||
ПараметрыДополненияТекстаРешенияОшибкиКлассификатора = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыДополненияТекстаРешенияОшибкиКлассификатора();
|
ПараметрыДополненияТекстаРешенияОшибкиКлассификатора = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыДополненияТекстаРешенияОшибкиКлассификатора();
|
||||||
|
|
||||||
Дополнение = ЭлектроннаяПодписьСлужебныйВызовСервера.ДополнитьРешениеКлассификатораОшибокПодробностями(
|
Дополнение = ЭлектроннаяПодписьСлужебныйВызовСервера.ДополнитьРешениеКлассификатораОшибокПодробностями(
|
||||||
@@ -2124,21 +2308,21 @@
|
|||||||
ЭлементКартинка.Картинка = БиблиотекаКартинок.ПроверкаСертификатаНеВыполнялась;
|
ЭлементКартинка.Картинка = БиблиотекаКартинок.ПроверкаСертификатаНеВыполнялась;
|
||||||
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка не выполнялась.'");
|
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка не выполнялась.'");
|
||||||
ЭлементНадпись.Гиперссылка = Ложь;
|
ЭлементНадпись.Гиперссылка = Ложь;
|
||||||
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
|
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(Форма.ДополнительныеПроверки, ЭлементНадпись.Имя, Форма.ТипПодписи);
|
||||||
ИначеЕсли ЗначениеПроверки <> Неопределено И ЗначениеПроверкиВторогоКонтекста = Неопределено Тогда
|
ИначеЕсли ЗначениеПроверки <> Неопределено И ЗначениеПроверкиВторогоКонтекста = Неопределено Тогда
|
||||||
ГруппаОшибка.Видимость = Ложь;
|
ГруппаОшибка.Видимость = Ложь;
|
||||||
ЭлементРешение.Видимость = Ложь;
|
ЭлементРешение.Видимость = Ложь;
|
||||||
ЭлементКартинка.Картинка = БиблиотекаКартинок.ПроверкаСертификатаУспех;
|
ЭлементКартинка.Картинка = БиблиотекаКартинок.ПроверкаСертификатаУспех;
|
||||||
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка выполнена успешно.'");
|
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка выполнена успешно.'");
|
||||||
ЭлементНадпись.Гиперссылка = Ложь;
|
ЭлементНадпись.Гиперссылка = Ложь;
|
||||||
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
|
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(Форма.ДополнительныеПроверки, ЭлементНадпись.Имя, Форма.ТипПодписи);
|
||||||
ИначеЕсли ЗначениеПроверки <> Неопределено И РезультатПроверки Тогда
|
ИначеЕсли ЗначениеПроверки <> Неопределено И РезультатПроверки Тогда
|
||||||
ГруппаОшибка.Видимость = Ложь;
|
ГруппаОшибка.Видимость = Ложь;
|
||||||
ЭлементРешение.Видимость = Ложь;
|
ЭлементРешение.Видимость = Ложь;
|
||||||
ЭлементКартинка.Картинка = БиблиотекаКартинок.ПроверкаСертификатаУспех;
|
ЭлементКартинка.Картинка = БиблиотекаКартинок.ПроверкаСертификатаУспех;
|
||||||
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка выполнена успешно.'");
|
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка выполнена успешно.'");
|
||||||
ЭлементНадпись.Гиперссылка = Ложь;
|
ЭлементНадпись.Гиперссылка = Ложь;
|
||||||
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
|
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(Форма.ДополнительныеПроверки, ЭлементНадпись.Имя, Форма.ТипПодписи);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат;
|
Возврат;
|
||||||
@@ -2158,15 +2342,15 @@
|
|||||||
ГруппаОшибка.Видимость = Ложь;
|
ГруппаОшибка.Видимость = Ложь;
|
||||||
ЭлементРешение.Видимость = Ложь;
|
ЭлементРешение.Видимость = Ложь;
|
||||||
ЭлементНадпись.Гиперссылка = Ложь;
|
ЭлементНадпись.Гиперссылка = Ложь;
|
||||||
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
|
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(Форма.ДополнительныеПроверки, ЭлементНадпись.Имя, Форма.ТипПодписи);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиентеНаСервереБезКонтекста
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
Функция ЗаголовокЭлемента(ДополнительныеПроверки, ИмяЭлемента)
|
Функция ЗаголовокЭлемента(ДополнительныеПроверки, ИмяЭлемента, ТипПодписи)
|
||||||
|
|
||||||
ЗаголовокЭлемента = СтандартныйЗаголовокЭлемента(ИмяЭлемента);
|
ЗаголовокЭлемента = СтандартныйЗаголовокЭлемента(ИмяЭлемента, ТипПодписи);
|
||||||
Если Не ПустаяСтрока(ЗаголовокЭлемента) Тогда
|
Если Не ПустаяСтрока(ЗаголовокЭлемента) Тогда
|
||||||
Возврат ЗаголовокЭлемента;
|
Возврат ЗаголовокЭлемента;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -2181,7 +2365,7 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
&НаКлиентеНаСервереБезКонтекста
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
Функция СтандартныйЗаголовокЭлемента(ИмяЭлемента)
|
Функция СтандартныйЗаголовокЭлемента(ИмяЭлемента, ТипПодписи)
|
||||||
|
|
||||||
Если ИмяЭлемента = "ЗаконныйСертификатНадпись" Тогда
|
Если ИмяЭлемента = "ЗаконныйСертификатНадпись" Тогда
|
||||||
Возврат НСтр("ru = 'Соответствие законодательству Российской Федерации'");
|
Возврат НСтр("ru = 'Соответствие законодательству Российской Федерации'");
|
||||||
@@ -2196,7 +2380,17 @@
|
|||||||
Возврат НСтр("ru = 'Наличие приложения для подписания и расшифровки'");
|
Возврат НСтр("ru = 'Наличие приложения для подписания и расшифровки'");
|
||||||
|
|
||||||
ИначеЕсли ИмяЭлемента = "ПодписаниеНадпись" Тогда
|
ИначеЕсли ИмяЭлемента = "ПодписаниеНадпись" Тогда
|
||||||
Возврат НСтр("ru = 'Подписание данных'");
|
|
||||||
|
Если ЗначениеЗаполнено(ТипПодписи) Тогда
|
||||||
|
|
||||||
|
ТипПодписиСтрока = Строка(ТипПодписи);
|
||||||
|
ТипПодписиСтрока = НРег(Лев(ТипПодписиСтрока, 1)) + Сред(ТипПодписиСтрока, 2);
|
||||||
|
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Подписание данных типом подписи - %1'"), ТипПодписиСтрока);
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Возврат НСтр("ru = 'Подписание данных'");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ИначеЕсли ИмяЭлемента = "ПроверкаПодписиНадпись" Тогда
|
ИначеЕсли ИмяЭлемента = "ПроверкаПодписиНадпись" Тогда
|
||||||
Возврат НСтр("ru = 'Проверка созданной подписи'");
|
Возврат НСтр("ru = 'Проверка созданной подписи'");
|
||||||
@@ -2243,9 +2437,9 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервереБезКонтекста
|
&НаСервереБезКонтекста
|
||||||
Функция ОшибкаПоКлассификатору(ОписаниеОшибки, ОшибкаНаСервере)
|
Функция ОшибкаПоКлассификатору(ОписаниеОшибки, ОшибкаНаСервере, ОшибкаПроверкиПодписи)
|
||||||
|
|
||||||
Возврат ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ОписаниеОшибки, ОшибкаНаСервере);
|
Возврат ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ОписаниеОшибки, ОшибкаНаСервере, ОшибкаПроверкиПодписи);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
+14
@@ -1214,6 +1214,20 @@
|
|||||||
</edit>
|
</edit>
|
||||||
</columns>
|
</columns>
|
||||||
</attributes>
|
</attributes>
|
||||||
|
<attributes>
|
||||||
|
<name>АдресСертификата</name>
|
||||||
|
<id>1</id>
|
||||||
|
<valueType>
|
||||||
|
<types>String</types>
|
||||||
|
<stringQualifiers/>
|
||||||
|
</valueType>
|
||||||
|
<view>
|
||||||
|
<common>true</common>
|
||||||
|
</view>
|
||||||
|
<edit>
|
||||||
|
<common>true</common>
|
||||||
|
</edit>
|
||||||
|
</attributes>
|
||||||
<formCommands>
|
<formCommands>
|
||||||
<name>Обновить</name>
|
<name>Обновить</name>
|
||||||
<title>
|
<title>
|
||||||
|
|||||||
+6
-1
@@ -31,11 +31,15 @@
|
|||||||
|
|
||||||
ВариантУстановки = СписокВыбора[0].Значение;
|
ВариантУстановки = СписокВыбора[0].Значение;
|
||||||
|
|
||||||
|
Элементы.ВариантУстановки.ТолькоПросмотр = СписокВыбора.Количество() = 1;
|
||||||
|
|
||||||
СертификатДвоичныеДанные = Неопределено;
|
СертификатДвоичныеДанные = Неопределено;
|
||||||
Если ЭтоАдресВременногоХранилища(Параметры.Сертификат) Тогда
|
Если ЭтоАдресВременногоХранилища(Параметры.Сертификат) Тогда
|
||||||
СертификатДвоичныеДанные = ПолучитьИзВременногоХранилища(Параметры.Сертификат);
|
СертификатДвоичныеДанные = ПолучитьИзВременногоХранилища(Параметры.Сертификат);
|
||||||
|
АдресСертификата = Параметры.Сертификат;
|
||||||
ИначеЕсли ЗначениеЗаполнено(Параметры.Сертификат) Тогда
|
ИначеЕсли ЗначениеЗаполнено(Параметры.Сертификат) Тогда
|
||||||
СертификатДвоичныеДанные = Base64Значение(Параметры.Сертификат);
|
СертификатДвоичныеДанные = Base64Значение(Параметры.Сертификат);
|
||||||
|
АдресСертификата = ПоместитьВоВременноеХранилище(СертификатДвоичныеДанные, УникальныйИдентификатор);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если СертификатДвоичныеДанные <> Неопределено Тогда
|
Если СертификатДвоичныеДанные <> Неопределено Тогда
|
||||||
@@ -45,6 +49,7 @@
|
|||||||
СертификатОписаниеДанных, СвойстваСертификата);
|
СертификатОписаниеДанных, СвойстваСертификата);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Элементы.ПоказатьДанныеСертификата.Видимость = ЗначениеЗаполнено(АдресСертификата);
|
||||||
Элементы.ДекорацияТекущийКонтейнер.Видимость = Ложь;
|
Элементы.ДекорацияТекущийКонтейнер.Видимость = Ложь;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -127,7 +132,7 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ПоказатьДанныеСертификата(Команда)
|
Процедура ПоказатьДанныеСертификата(Команда)
|
||||||
|
|
||||||
ЭлектроннаяПодписьКлиент.ОткрытьСертификат(Параметры.Сертификат, Истина);
|
ЭлектроннаяПодписьКлиент.ОткрытьСертификат(АдресСертификата, Истина);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
+9
-1
@@ -332,7 +332,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЭлектроннаяПодписьКлиент.ПроверитьСертификатСправочника(Объект.Ссылка,
|
ЭлектроннаяПодписьКлиент.ПроверитьСертификатСправочника(Объект.Ссылка,
|
||||||
Новый Структура("БезПодтверждения", Истина));
|
Новый Структура("БезПодтверждения, ТипПодписи", Истина, ТипПодписиПоУмолчанию()));
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -873,6 +873,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Результат = Новый СписокЗначений;
|
Результат = Новый СписокЗначений;
|
||||||
|
Результат.Добавить(Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка(), НСтр("ru = 'По умолчанию'"));
|
||||||
|
|
||||||
ТекстЗапроса =
|
ТекстЗапроса =
|
||||||
"ВЫБРАТЬ
|
"ВЫБРАТЬ
|
||||||
@@ -962,4 +963,11 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
&НаСервереБезКонтекста
|
||||||
|
Функция ТипПодписиПоУмолчанию()
|
||||||
|
|
||||||
|
Возврат Константы.ТипПодписиКриптографииПоУмолчанию.Получить();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -238,14 +238,44 @@
|
|||||||
|
|
||||||
Если Сертификат <> Неопределено Тогда
|
Если Сертификат <> Неопределено Тогда
|
||||||
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||||
Сертификат, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ДвоичныеДанныеСертификата);
|
Сертификат, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(),
|
||||||
|
ДвоичныеДанныеСертификата);
|
||||||
Если СертификатОбъект.ДействителенДо <> СвойстваСертификата.ДействителенДо Тогда
|
Если СертификатОбъект.ДействителенДо <> СвойстваСертификата.ДействителенДо Тогда
|
||||||
СтрокаПоиска = Формат(СертификатОбъект.ДействителенДо, "ДФ=MM.yyyy");
|
СтрокаПоиска = Формат(СертификатОбъект.ДействителенДо, "ДФ=MM.yyyy");
|
||||||
СтрокаЗамены = Формат(СвойстваСертификата.ДействителенДо, "ДФ=MM.yyyy");
|
СтрокаЗамены = Формат(СвойстваСертификата.ДействителенДо, "ДФ=MM.yyyy");
|
||||||
СертификатОбъект.Наименование = СтрЗаменить(СертификатОбъект.Наименование, СтрокаПоиска, СтрокаЗамены);
|
СертификатОбъект.Наименование = СтрЗаменить(СертификатОбъект.Наименование, СтрокаПоиска,
|
||||||
|
СтрокаЗамены);
|
||||||
СертификатОбъект.ДействителенДо = СвойстваСертификата.ДействителенДо;
|
СертификатОбъект.ДействителенДо = СвойстваСертификата.ДействителенДо;
|
||||||
ЗаписатьОбъект = Истина;
|
ЗаписатьОбъект = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(СертификатОбъект.Программа) И ТипЗнч(СертификатОбъект.Программа) = Тип(
|
||||||
|
"СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования") Тогда
|
||||||
|
|
||||||
|
АлгоритмСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(
|
||||||
|
ДвоичныеДанныеСертификата, Ложь, Истина);
|
||||||
|
Если ЭлектроннаяПодписьСлужебныйКлиентСервер.ЭтоСертификатГОСТ(АлгоритмСертификата) Тогда
|
||||||
|
|
||||||
|
ОписаниеПрограммы = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
|
||||||
|
СертификатОбъект.Программа,
|
||||||
|
"ЭтоВстроенныйКриптопровайдер, АлгоритмПодписи, АлгоритмХеширования");
|
||||||
|
|
||||||
|
Если Не ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер Тогда
|
||||||
|
|
||||||
|
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСоответствуетСертификату(
|
||||||
|
"", АлгоритмСертификата, ОписаниеПрограммы.АлгоритмПодписи, ОписаниеПрограммы.АлгоритмХеширования);
|
||||||
|
|
||||||
|
Если Результат <> Истина Тогда
|
||||||
|
|
||||||
|
СертификатОбъект.Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
||||||
|
ЗаписатьОбъект = Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -34,6 +34,32 @@
|
|||||||
Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Программа) И ТипЗнч(Программа) = Тип(
|
||||||
|
"СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования") И ЗначениеЗаполнено(Отпечаток) Тогда
|
||||||
|
|
||||||
|
ОписаниеПрограммы = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Программа,
|
||||||
|
"ЭтоВстроенныйКриптопровайдер, АлгоритмПодписи, АлгоритмХеширования");
|
||||||
|
|
||||||
|
Если Не ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер Тогда
|
||||||
|
ДвоичныеДанные = ДанныеСертификата.Получить();
|
||||||
|
Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
|
||||||
|
|
||||||
|
АлгоритмСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(
|
||||||
|
ДвоичныеДанные, Ложь, Истина);
|
||||||
|
|
||||||
|
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСоответствуетСертификату(
|
||||||
|
Наименование, АлгоритмСертификата, ОписаниеПрограммы.АлгоритмПодписи,
|
||||||
|
ОписаниеПрограммы.АлгоритмХеширования);
|
||||||
|
|
||||||
|
Если Результат <> Истина Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение Результат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
|
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -72,9 +72,8 @@
|
|||||||
<li><strong>Дата подписи</strong> - дата подписания файла;
|
<li><strong>Дата подписи</strong> - дата подписания файла;
|
||||||
</li>
|
</li>
|
||||||
<li><b>Тип подписи</b> - существует несколько типов подписей в зависимости от срока действия;</li>
|
<li><b>Тип подписи</b> - существует несколько типов подписей в зависимости от срока действия;</li>
|
||||||
<li><strong>Комментарий</strong> - напишите дополнительные сведения о подписи;
|
<li><strong>Статус, Дата проверки</strong> - истинность подписи и дата ее проверки;</li>
|
||||||
</li>
|
<li><strong>Комментарий</strong> - напишите дополнительные сведения о подписи.</li></ul><p>С помощью кнопок панели навигации можно:</p>
|
||||||
<li><strong>Статус, Дата проверки</strong> - истинность подписи и дата ее проверки.</li></ul><p>С помощью кнопок панели навигации можно:</p>
|
|
||||||
<ul><li><strong>Подписать</strong> файл;
|
<ul><li><strong>Подписать</strong> файл;
|
||||||
</li>
|
</li>
|
||||||
<li><strong>Открыть </strong>- открыть окно с основными свойствами сертификата электронной подписи выделенного файла: кому и кем выдан, назначение и срок действия сертификата, на основе которого создана подпись;
|
<li><strong>Открыть </strong>- открыть окно с основными свойствами сертификата электронной подписи выделенного файла: кому и кем выдан, назначение и срок действия сертификата, на основе которого создана подпись;
|
||||||
@@ -83,10 +82,11 @@
|
|||||||
</li>
|
</li>
|
||||||
<li><strong>Проверить все</strong> - проверить все подписи;
|
<li><strong>Проверить все</strong> - проверить все подписи;
|
||||||
</li>
|
</li>
|
||||||
|
<li><strong>Удалить</strong> у файла электронную подпись.</li>
|
||||||
<li><strong>Сохранить</strong> электронную подпись <strong>в файл </strong>на устройство;
|
<li><strong>Сохранить</strong> электронную подпись <strong>в файл </strong>на устройство;
|
||||||
</li>
|
</li>
|
||||||
<li><strong>Удалить</strong> у файла электронную подпись.</li>
|
<li><b>Проверена вручную </b>- ввести обоснование достоверности подписи, если подпись не проходит автоматическую проверку. Например, когда недоступен список отзыва, но известно, что сертификат не отозван;</li>
|
||||||
<li><b>Продлить действие</b> - Если в приложении применяются подписи с доверенной меткой времени, то можно усовершенствовать выбранную подпись - добавить доверенную метку времени. Приложение предлагает <a href="CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей/Help">способы усовершенствования</a> подписи. Для этого выберите нужный тип подписи из списка.</li></ul><h3>Разрешено расшифровывать</h3>
|
<li><b>Продлить действие</b> - если в приложении применяются подписи с доверенной меткой времени, то можно усовершенствовать выбранную подпись - добавить доверенную метку времени. Приложение предлагает <a href="CommonForm.ПродлениеСрокаДействияЭлектронныхПодписей/Help">способы усовершенствования</a> подписи. Для этого выберите нужный тип подписи из списка.</li></ul><h3>Разрешено расшифровывать</h3>
|
||||||
<ul><li>
|
<ul><li>
|
||||||
<div>На вкладке размещаются сведения о шифровании файла:</div>
|
<div>На вкладке размещаются сведения о шифровании файла:</div>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
||||||
|
|
||||||
Если Не ВыполняетсяЗакрытие И ЭтоНоваяСтрока Тогда
|
Если Не ВыполняетсяЗакрытие И ЭтоНоваяСтрока Тогда
|
||||||
Оповестить("ОтменаВводаНовойСтрокиШаблонаАнкеты");
|
Оповестить("ОтменаВводаНовойСтрокиШаблонаАнкеты", , ВладелецФормы);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -65,7 +65,8 @@
|
|||||||
Процедура КнопкаОК(Команда)
|
Процедура КнопкаОК(Команда)
|
||||||
|
|
||||||
ВыполняетсяЗакрытие = Истина;
|
ВыполняетсяЗакрытие = Истина;
|
||||||
Оповестить("ОкончаниеРедактированияПараметровКомплексногоВопроса",СформироватьСтруктуруПараметровДляПередачиВладельцу());
|
Оповестить("ОкончаниеРедактированияПараметровКомплексногоВопроса",
|
||||||
|
СформироватьСтруктуруПараметровДляПередачиВладельцу(), ВладелецФормы);
|
||||||
Закрыть();
|
Закрыть();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
||||||
|
|
||||||
Если Не ВыполняетсяЗакрытие И ЭтоНоваяСтрока Тогда
|
Если Не ВыполняетсяЗакрытие И ЭтоНоваяСтрока Тогда
|
||||||
Оповестить("ОтменаВводаНовойСтрокиШаблонаАнкеты");
|
Оповестить("ОтменаВводаНовойСтрокиШаблонаАнкеты", , ВладелецФормы);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -727,7 +727,8 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ВыполняетсяЗакрытие = Истина;
|
ВыполняетсяЗакрытие = Истина;
|
||||||
Оповестить("ОкончаниеРедактированияПараметровТабличногоВопроса",СформироватьСтруктуруПараметровДляПередачиВладельцу());
|
Оповестить("ОкончаниеРедактированияПараметровТабличногоВопроса",
|
||||||
|
СформироватьСтруктуруПараметровДляПередачиВладельцу(), ВладелецФормы);
|
||||||
Закрыть();
|
Закрыть();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
Процедура ПриЗакрытии(ЗавершениеРаботы)
|
||||||
|
|
||||||
Если Не ВыполняетсяЗакрытие И ЭтоНоваяСтрока Тогда
|
Если Не ВыполняетсяЗакрытие И ЭтоНоваяСтрока Тогда
|
||||||
Оповестить("ОтменаВводаНовойСтрокиШаблонаАнкеты");
|
Оповестить("ОтменаВводаНовойСтрокиШаблонаАнкеты", , ВладелецФормы);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -131,7 +131,8 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ВыполняетсяЗакрытие = Истина;
|
ВыполняетсяЗакрытие = Истина;
|
||||||
Оповестить("ОкончаниеРедактированияПараметровСтрокиШаблонаАнкеты",СформироватьСтруктуруПараметровДляПередачиВладельцу());
|
Оповестить("ОкончаниеРедактированияПараметровСтрокиШаблонаАнкеты",
|
||||||
|
СформироватьСтруктуруПараметровДляПередачиВладельцу(), ВладелецФормы);
|
||||||
Закрыть();
|
Закрыть();
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -47,6 +47,10 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||||
|
|
||||||
|
Если Источник <> ЭтотОбъект Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ТекущиеДанные = Элементы.ФормаДереваАнкеты.ТекущиеДанные;
|
ТекущиеДанные = Элементы.ФормаДереваАнкеты.ТекущиеДанные;
|
||||||
Если ТекущиеДанные = Неопределено Тогда
|
Если ТекущиеДанные = Неопределено Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
|
|||||||
@@ -246,14 +246,16 @@
|
|||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура СформироватьСообщениеДляОтправки(ПараметрыОтправки)
|
Процедура СформироватьСообщениеДляОтправки(ПараметрыОтправки)
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(ПараметрыОтправки.Шаблон) И ПечатныеФормы.Количество() > 0 Тогда
|
СформироватьБезШаблон = Не ЗначениеЗаполнено(ПараметрыОтправки.Шаблон);
|
||||||
|
Если СформироватьБезШаблон И ПечатныеФормы.Количество() > 0 Тогда
|
||||||
СохранитьВыборПечатныхФорм();
|
СохранитьВыборПечатныхФорм();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
АдресВременногоХранилища = Неопределено;
|
АдресВременногоХранилища = Неопределено;
|
||||||
АдресВременногоХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
|
АдресВременногоХранилища = ПоместитьВоВременноеХранилище(Неопределено, УникальныйИдентификатор);
|
||||||
|
|
||||||
Если Подписать Тогда
|
СформироватьБезШаблонаИПодписать = СформироватьБезШаблон И Подписать;
|
||||||
|
Если СформироватьБезШаблонаИПодписать Тогда
|
||||||
ПараметрыОтправки.ДополнительныеПараметры.НастройкиСохранения.УпаковатьВАрхив = Ложь;
|
ПараметрыОтправки.ДополнительныеПараметры.НастройкиСохранения.УпаковатьВАрхив = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -268,7 +270,9 @@
|
|||||||
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Результат, ПараметрыСообщения, Ложь);
|
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Результат, ПараметрыСообщения, Ложь);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Подписать Тогда
|
Если СформироватьБезШаблонаИПодписать
|
||||||
|
И ТипЗнч(Результат.Вложения) = Тип("Массив")
|
||||||
|
И Результат.Вложения.Количество() > 0 Тогда
|
||||||
ПараметрыОтправки.ДополнительныеПараметры.НастройкиСохранения.УпаковатьВАрхив = УпаковатьВАрхив;
|
ПараметрыОтправки.ДополнительныеПараметры.НастройкиСохранения.УпаковатьВАрхив = УпаковатьВАрхив;
|
||||||
ПодписатьФайлы(Результат, ПараметрыОтправки);
|
ПодписатьФайлы(Результат, ПараметрыОтправки);
|
||||||
Иначе
|
Иначе
|
||||||
|
|||||||
@@ -15,26 +15,20 @@
|
|||||||
|
|
||||||
ИнициализироватьОтборы();
|
ИнициализироватьОтборы();
|
||||||
|
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда
|
ДоступныеВарианты = ШаблоныСообщенийСлужебный.ДоступныеВариантыОтправкиШаблоновСообщений();
|
||||||
ВключенаОтправкаSMS = Истина;
|
|
||||||
ВключенаРаботаСПочтовымиСообщениями = Истина;
|
|
||||||
Иначе
|
|
||||||
ВключенаРаботаСПочтовымиСообщениями = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями");
|
|
||||||
ВключенаОтправкаSMS = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтправкаSMS");
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
// кнопки в группе, если одна кнопка, то группа не нужна
|
// кнопки в группе, если одна кнопка, то группа не нужна
|
||||||
Элементы.ФормаСоздатьШаблонСообщенияSMS.Видимость = ВключенаОтправкаSMS;
|
Элементы.ФормаСоздатьШаблонСообщенияSMS.Видимость = ДоступныеВарианты.SMS;
|
||||||
Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Видимость = ВключенаРаботаСПочтовымиСообщениями;
|
Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Видимость = ДоступныеВарианты.Почта;
|
||||||
Элементы.ФормаПоказыватьКонтекстныеШаблоны.Видимость = Пользователи.ЭтоПолноправныйПользователь();
|
Элементы.ФормаПоказыватьКонтекстныеШаблоны.Видимость = Пользователи.ЭтоПолноправныйПользователь();
|
||||||
|
|
||||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтправкаSMS") Тогда
|
Если Не ДоступныеВарианты.SMS Тогда
|
||||||
Элементы.ФормаГруппаСоздать.Вид = ВидГруппыФормы.ГруппаКнопок;
|
Элементы.ФормаГруппаСоздать.Вид = ВидГруппыФормы.ГруппаКнопок;
|
||||||
Элементы.ФормаСоздатьШаблонСообщенияSMS.Видимость = Ложь;
|
Элементы.ФормаСоздатьШаблонСообщенияSMS.Видимость = Ложь;
|
||||||
Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Заголовок = НСтр("ru='Создать'");
|
Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Заголовок = НСтр("ru='Создать'");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями") Тогда
|
Если Не ДоступныеВарианты.Почта Тогда
|
||||||
Элементы.ФормаГруппаСоздать.Вид = ВидГруппыФормы.ГруппаКнопок;
|
Элементы.ФормаГруппаСоздать.Вид = ВидГруппыФормы.ГруппаКнопок;
|
||||||
Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Видимость = Ложь;
|
Элементы.ФормаСоздатьШаблонЭлектронногоПисьма.Видимость = Ложь;
|
||||||
Элементы.ФормаСоздатьШаблонСообщенияSMS.Заголовок = НСтр("ru='Создать'");
|
Элементы.ФормаСоздатьШаблонСообщенияSMS.Заголовок = НСтр("ru='Создать'");
|
||||||
@@ -192,8 +186,13 @@
|
|||||||
НСтр("ru = 'Всех сообщений'"),
|
НСтр("ru = 'Всех сообщений'"),
|
||||||
НСтр("ru = 'Всех сообщений'"));
|
НСтр("ru = 'Всех сообщений'"));
|
||||||
|
|
||||||
Список.Параметры.УстановитьЗначениеПараметра("СообщениеSMS", ВидыШаблонов.НайтиПоЗначению("SMS").Представление);
|
ДоступныеВарианты = ШаблоныСообщенийСлужебный.ДоступныеВариантыОтправкиШаблоновСообщений();
|
||||||
Список.Параметры.УстановитьЗначениеПараметра("ЭлектроннаяПочта", ВидыШаблонов.НайтиПоЗначению("Email").Представление);
|
Если ДоступныеВарианты.SMS Тогда
|
||||||
|
Список.Параметры.УстановитьЗначениеПараметра("СообщениеSMS", ВидыШаблонов.НайтиПоЗначению("SMS").Представление);
|
||||||
|
КонецЕсли;
|
||||||
|
Если ДоступныеВарианты.Почта Тогда
|
||||||
|
Список.Параметры.УстановитьЗначениеПараметра("ЭлектроннаяПочта", ВидыШаблонов.НайтиПоЗначению("Email").Представление);
|
||||||
|
КонецЕсли;
|
||||||
Список.Параметры.УстановитьЗначениеПараметра("ПоказыватьКонтекстныеШаблоны", ПоказыватьКонтекстныеШаблоны);
|
Список.Параметры.УстановитьЗначениеПараметра("ПоказыватьКонтекстныеШаблоны", ПоказыватьКонтекстныеШаблоны);
|
||||||
Список.Параметры.УстановитьЗначениеПараметра("Произвольный", НСтр("ru = 'Произвольного сообщения'"));
|
Список.Параметры.УстановитьЗначениеПараметра("Произвольный", НСтр("ru = 'Произвольного сообщения'"));
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<ul><li>Для удобства поиска шаблонов в списке предусмотрены отборы.
|
<ul><li>Для удобства поиска шаблонов в списке предусмотрены отборы.
|
||||||
</li>
|
</li>
|
||||||
<li>Можно отобрать с помощью поля <strong>Шаблон для</strong>:
|
<li>Можно отобрать с помощью поля <strong>Шаблон для</strong>:
|
||||||
<ul><li><strong>Электронных писем и SMS</strong>;
|
<ul><li><strong>Всех сообщений</strong>;
|
||||||
</li>
|
</li>
|
||||||
<li><strong>Электронного письма</strong>;
|
<li><strong>Электронного письма</strong>;
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
+1
-1
@@ -285,7 +285,7 @@
|
|||||||
СвойстваОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДополнительныйРеквизит.Свойство, "Заголовок, ТипЗначения", , ТекущийЯзык().КодЯзыка);
|
СвойстваОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДополнительныйРеквизит.Свойство, "Заголовок, ТипЗначения", , ТекущийЯзык().КодЯзыка);
|
||||||
СтрокаРеквизит = РеквизитыОбъекта.Добавить();
|
СтрокаРеквизит = РеквизитыОбъекта.Добавить();
|
||||||
СтрокаРеквизит.Реквизит = ДополнительныйРеквизит.Свойство;
|
СтрокаРеквизит.Реквизит = ДополнительныйРеквизит.Свойство;
|
||||||
СтрокаРеквизит.Представление = СвойстваОбъекта.Заголовок;
|
СтрокаРеквизит.Представление = Строка(ДополнительныйРеквизит.Свойство);
|
||||||
СтрокаРеквизит.НомерКартинки = 2;
|
СтрокаРеквизит.НомерКартинки = 2;
|
||||||
СтрокаРеквизит.ТипЗначения = СвойстваОбъекта.ТипЗначения;
|
СтрокаРеквизит.ТипЗначения = СвойстваОбъекта.ТипЗначения;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
||||||
<p>Настройка параметров для использования средств электронной подписи и шифрования (криптографии). </p>
|
<p>Настройка параметров для использования средств электронной подписи и шифрования (криптографии). </p>
|
||||||
<p>Открывается по команде <strong>Настройки электронной подписи и шифрования</strong> раздела <strong>Администрирование - Общие настройки</strong>.</p>
|
<p>Открывается по команде <strong>Настройки электронной подписи и шифрования</strong> раздела <strong>Администрирование - Общие настройки</strong>.</p>
|
||||||
<p>Для электронной подписи и шифрования требуется установить специальное стороннее приложение (криптопровайдер).</p>
|
<p>Для электронной подписи и шифрования требуется установить специальное стороннее приложение (криптопровайдер).</p>
|
||||||
<p>Для того чтобы подписывать данные, нужно включить флажок <strong>Электронная подпись</strong>, а для шифрования нужно включить флажок <strong>Шифрование</strong> в разделе <strong>Администрирование - Общие настройки</strong>. После этого становятся доступными соответствующие команды в приложении.</p>
|
<p>Для того чтобы подписывать данные, нужно включить флажок <strong>Электронная подпись</strong>, а для шифрования нужно включить флажок <strong>Шифрование</strong> в разделе <strong>Администрирование - Общие настройки</strong>. После этого становятся доступными соответствующие команды в приложении.</p>
|
||||||
<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для установки подписи необходимо иметь сертификат ключа электронной подписи. Сертификат можно получить в удостоверяющем центре. Например, в удостоверяющем центре фирмы 1С <a href="http://ca.1c.ru/">http://ca.1c.ru/</a>. Только удостоверяющий центр может выдать юридически значимый (квалифицированный сертификат).</p>
|
<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для установки подписи необходимо иметь сертификат ключа электронной подписи. Сертификат можно получить в удостоверяющем центре. Например, в удостоверяющем центре фирмы 1С <a href="http://ca.1c.ru/">http://ca.1c.ru/</a>. Только удостоверяющий центр может выдать юридически значимый (квалифицированный сертификат).</p>
|
||||||
<p>В случае использования распределенной информационной базы большую часть настроек можно изменить только в главном узле.</p>
|
<p>В случае использования распределенной информационной базы большую часть настроек можно изменить только в главном узле.</p>
|
||||||
<p>Для автоматического определения приложения для работы с сертификатом может понадобиться установка компоненты <b>ExtraCryptoAPI</b>. Установить компоненту можно<b> </b>через меню <b>Еще - Установить компоненту</b> <b>ExtraCryptoAPI.</b></p>
|
<p>Для автоматического определения приложения для работы с сертификатом может понадобиться установка компоненты <b>ExtraCryptoAPI</b>. Установить компоненту можно<b> </b>через меню <b>Еще - Установить компоненту</b> <b>ExtraCryptoAPI.</b></p>
|
||||||
<h3>Сертификаты</h3>
|
<h3>Сертификаты</h3>
|
||||||
@@ -14,32 +14,29 @@
|
|||||||
<li>Предусмотрен отбор по полю <strong>Состояние заявления</strong> ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено").
|
<li>Предусмотрен отбор по полю <strong>Состояние заявления</strong> ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено").
|
||||||
</li>
|
</li>
|
||||||
<li><a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">Сертификат</a> можно <strong>Добавить</strong> из числа <strong>установленных на компьютере</strong>. Также это можно сделать в процессе подписания или шифрования данных. Выберите нужное действие с помощью переключателя, нажмите <b>Добавить</b>.</li>
|
<li><a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">Сертификат</a> можно <strong>Добавить</strong> из числа <strong>установленных на компьютере</strong>. Также это можно сделать в процессе подписания или шифрования данных. Выберите нужное действие с помощью переключателя, нажмите <b>Добавить</b>.</li>
|
||||||
<ul><li>Сертификат <b>только для шифрования</b> можно <b>Добавить из файла</b>. Выберите нужное действие и перейдите по ссылке, укажите путь к файлу на компьютере.</li></ul><li>Также с помощью кнопки <strong>Добавить</strong> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
|
<ul><li>Сертификат <b>только для шифрования</b> можно <b>Добавить из файла</b>. Выберите нужное действие и перейдите по ссылке, укажите путь к файлу или каталогу на компьютере.</li></ul><li>Также с помощью кнопки <b>Оформить заявление</b> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
|
||||||
</li>
|
</li>
|
||||||
<li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Приложения</h3>
|
<li>Выпустить повторно сертификат, у которого закончился срок действия можно с помощью кнопки <strong>Перевыпустить (cкопировать, F9)</strong>.</li>
|
||||||
<ul><li>Содержит список настроенных приложений, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ). </li>
|
<li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Приложения</h3>
|
||||||
<li>Данные приложения не обязательно должны быть установлены на всех компьютерах. Более того, установка более одного приложения на одном компьютере может вызвать конфликты между ними.
|
<ul><li>Содержит список настроенных приложений, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ). </li>
|
||||||
|
<li>Данные приложения не обязательно должны быть установлены на всех компьютерах. Более того, установка более одного приложения на одном компьютере может вызвать конфликты между ними.
|
||||||
</li>
|
</li>
|
||||||
<li>Если приложение не установлена, то после установки компоненты будет предложена гиперссылка на загрузку дистрибутива <b>ViPNet CSP</b> или <b>КриптоПро CSP</b>, поддерживающие ГОСТ. </li>
|
<li>Если приложение не установлена, то после установки компоненты будет предложена гиперссылка на загрузку дистрибутива <b>ViPNet CSP</b> или <b>КриптоПро CSP</b>, поддерживающие ГОСТ. </li>
|
||||||
<li>По гиперссылке также можно перейти на домашние страницы других приложений, соответствующих стандартам безопасности (например, <b>ЛИССИ CSP, Сигнал-КОМ CSP</b>). </li>
|
<li>По гиперссылке также можно перейти на домашние страницы других приложений, соответствующих стандартам безопасности (например, <b>ЛИССИ CSP, Сигнал-КОМ CSP</b>). </li>
|
||||||
<li>Если требуется использовать приложение отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.</li>
|
<li>Если требуется использовать приложение отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.</li>
|
||||||
<li>В колонке <strong>Результат проверки</strong> отражаются сведения, по которым можно понять установлено ли приложение на компьютере или нет или же установлена, но некорректно.</li>
|
<li>В колонке <strong>Результат проверки</strong> отражаются сведения, по которым можно понять установлено ли приложение на компьютере или нет или же установлена, но некорректно.</li>
|
||||||
<li>Linux: <strong>Путь к приложению (<Имя приложения, соответствующей выделенной строке в списке>)</strong> - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.</li>
|
<li>Linux: <strong>Путь к приложению (<Имя приложения, соответствующей выделенной строке в списке>)</strong> - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.</li>
|
||||||
<li>В нижней части списка расположена ссылка <a href="http://its.1c.ru/db/metod81#content:5784:1">Инструкция по работе с приложениями электронной подписи и шифрования</a>.</li></ul><ul><li>Задайте <strong>Расширение для зашифрованных файлов</strong> при отправке по почте, при выполнении команды <strong>Сохранить как</strong> и при экспорте папки (по умолчанию <strong>.p7m</strong>).
|
<li>В нижней части списка расположена ссылка <a href="http://its.1c.ru/db/metod81#content:5784:1">Инструкция по работе с приложениями электронной подписи и шифрования</a>.</li></ul><h3>Дополнительно</h3>
|
||||||
</li>
|
<h3>
|
||||||
<li>
|
<ul style="font-size: 11.199999809265137px; font-weight: normal;"><li>Задайте расширение для зашифрованных файлов при отправке по почте, при выполнении команды <strong>Сохранить как</strong> и при экспорте папки (по умолчанию <strong>.p7m</strong>);</li>
|
||||||
<div>Напишите <strong>Расширение для файлов подписи</strong> (по умолчанию <strong>.p7s</strong>).</div>
|
<li>Напишите расширение для файлов подписи (по умолчанию <strong>.p7s</strong>);</li>
|
||||||
</li>
|
<li>С помощью переключателя <strong>При сохранении данных в файл вместе с электронной подписью</strong> задайте поведение приложения:</li>
|
||||||
<li>
|
<ul><li><strong>Сохранять все подписи</strong> - все подписи сохраняются </li>
|
||||||
<div>С помощью переключателя <strong>При сохранении данных в файл вместе с электронной подписью</strong> задайте поведение приложения при выполнении команды <strong>Сохранить вместе с электронной подписью</strong>: </div>
|
<li><strong>Спрашивать</strong> - выбор сохраняемых подписей осуществляется из <a href="Сохранение вместе с электронной подписью">списка</a>.</li>
|
||||||
<ul><li>
|
<li>Включите флажок <strong>Сохранить сертификат</strong> для сохранения на компьютер сертификата вместе с файлом и электронной подписью. </li></ul></ul></h3>
|
||||||
<div><strong>Сохранять все подписи</strong> - все подписи сохраняются; </div>
|
<h3>
|
||||||
</li>
|
</h3>
|
||||||
<li>
|
<h3>Машиночитаемые доверенности (единый формат) </h3>
|
||||||
<div><strong>Спрашивать</strong> - выбор сохраняемых подписей осуществляется из <a href="CommonForm.СохранениеВместеСЭлектроннойПодписью/Help">списка</a>.</div></li></ul></li>
|
<ul><li>Для того чтобы попасть в <a href="Catalog.МашиночитаемыеДоверенности/Help"> список машиночитаемых доверенностей (МЧД)</a> перейдите по гиперссылке. </li></ul><h3>Легенда</h3>
|
||||||
<li>
|
|
||||||
<div>Включите флажок <strong>Сохранять сертификат</strong> для сохранения на компьютер сертификата вместе с файлом и электронной подписью.</div></li></ul><h3>Машиночитаемые доверенности (единый формат) </h3>
|
|
||||||
<ul><li>Для того чтобы попасть в<a href="Catalog.МашиночитаемыеДоверенности/Help"> список машиночитаемых доверенностей (МЧД)</a> перейдите по гиперссылке. </li></ul><h3>Легенда</h3>
|
|
||||||
<ul><li>Для того чтобы посмотреть состояние сертификатов нажмите раздел <strong>Легенда</strong> в нижней части списка. </li></ul><h3>См. также:</h3>
|
<ul><li>Для того чтобы посмотреть состояние сертификатов нажмите раздел <strong>Легенда</strong> в нижней части списка. </li></ul><h3>См. также:</h3>
|
||||||
<ul><li>Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.</li></ul><h3>Дополнительно</h3>
|
<ul><li>Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.</li></ul><ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
||||||
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
|
||||||
@@ -530,7 +530,7 @@
|
|||||||
ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайла();
|
ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайла();
|
||||||
ПараметрыСохранения.Интерактивно = Ложь;
|
ПараметрыСохранения.Интерактивно = Ложь;
|
||||||
|
|
||||||
ИмяФайлаДляОткрытия = ИмяКаталога+"\"+ДополнительныеПараметры.ИмяФайлаДляОткрытия;
|
ИмяФайлаДляОткрытия = ИмяКаталога + ПолучитьРазделительПути() + ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ДополнительныеПараметры.ИмяФайлаДляОткрытия);
|
||||||
ФайловаяСистемаКлиент.СохранитьФайл(Оповещение, ДополнительныеПараметры.АдресДокумента, ИмяФайлаДляОткрытия, ПараметрыСохранения);
|
ФайловаяСистемаКлиент.СохранитьФайл(Оповещение, ДополнительныеПараметры.АдресДокумента, ИмяФайлаДляОткрытия, ПараметрыСохранения);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -670,7 +670,7 @@
|
|||||||
Исключение
|
Исключение
|
||||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||||
ПодключитьОбработчикОжидания("СкрытьДлительнуюОперацию", 0.1, Истина);
|
ПодключитьОбработчикОжидания("СкрытьДлительнуюОперацию", 0.1, Истина);
|
||||||
ПоказатьПредупреждение(, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
СтандартныеПодсистемыКлиент.ВывестиИнформациюОбОшибке(ИнформацияОбОшибке);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
ПодключитьОбработчикОжидания("СкрытьДлительнуюОперацию", 0.1, Истина);
|
ПодключитьОбработчикОжидания("СкрытьДлительнуюОперацию", 0.1, Истина);
|
||||||
@@ -682,7 +682,6 @@
|
|||||||
|
|
||||||
ТекстОшибки = "";
|
ТекстОшибки = "";
|
||||||
Справочники.ВерсииРасширений.УдалитьРасширения(ИдентификаторыРасширений, ТекстОшибки);
|
Справочники.ВерсииРасширений.УдалитьРасширения(ИдентификаторыРасширений, ТекстОшибки);
|
||||||
УдалитьСвойстваРасширений(ИдентификаторыРасширений);
|
|
||||||
|
|
||||||
ОбновитьСписок();
|
ОбновитьСписок();
|
||||||
|
|
||||||
@@ -692,15 +691,6 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаСервере
|
|
||||||
Процедура УдалитьСвойстваРасширений(ИдентификаторыРасширений)
|
|
||||||
|
|
||||||
Для каждого ИдентификаторРасширения Из ИдентификаторыРасширений Цикл
|
|
||||||
РегистрыСведений.СвойстваРасширений.УдалитьСвойстваРасширенияПоИдентификатору(ИдентификаторРасширения);
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ОтключитьРасширениеПослеПодтверждения(Результат, Контекст) Экспорт
|
Процедура ОтключитьРасширениеПослеПодтверждения(Результат, Контекст) Экспорт
|
||||||
|
|
||||||
|
|||||||
@@ -74,6 +74,9 @@
|
|||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<font xsi:type="core:FontRef">
|
||||||
|
<font>Style.ВажнаяНадписьШрифт</font>
|
||||||
|
</font>
|
||||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
<horizontalAlign>Left</horizontalAlign>
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
@@ -500,6 +503,9 @@
|
|||||||
<type>Label</type>
|
<type>Label</type>
|
||||||
<autoMaxWidth>true</autoMaxWidth>
|
<autoMaxWidth>true</autoMaxWidth>
|
||||||
<autoMaxHeight>true</autoMaxHeight>
|
<autoMaxHeight>true</autoMaxHeight>
|
||||||
|
<font xsi:type="core:FontRef">
|
||||||
|
<font>Style.ВажнаяНадписьШрифт</font>
|
||||||
|
</font>
|
||||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||||
<horizontalAlign>Left</horizontalAlign>
|
<horizontalAlign>Left</horizontalAlign>
|
||||||
</extInfo>
|
</extInfo>
|
||||||
|
|||||||
@@ -1036,7 +1036,7 @@
|
|||||||
ПолеЗначения.РежимВыбораИзСписка = Не ЭтоПолеСписка И (Строка.ДоступныеЗначения <> Неопределено);
|
ПолеЗначения.РежимВыбораИзСписка = Не ЭтоПолеСписка И (Строка.ДоступныеЗначения <> Неопределено);
|
||||||
|
|
||||||
ПривестиЗначениеКВидуСравнения(Строка);
|
ПривестиЗначениеКВидуСравнения(Строка);
|
||||||
УстановитьПредставлениеЗначения(Строка);
|
УстановитьПредставлениеЗначения(Строка, Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
@@ -1153,7 +1153,7 @@
|
|||||||
ЭлементНастройки.Значение = Строка.Значение;
|
ЭлементНастройки.Значение = Строка.Значение;
|
||||||
|
|
||||||
УстановитьМодифицированность();
|
УстановитьМодифицированность();
|
||||||
УстановитьПредставлениеЗначения(Строка);
|
УстановитьПредставлениеЗначения(Строка, Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора);
|
||||||
|
|
||||||
Если НастройкиОтчета.ЗагрузитьНастройкиПриИзмененииПараметров.Найти(ЭлементНастройки.Параметр) <> Неопределено Тогда
|
Если НастройкиОтчета.ЗагрузитьНастройкиПриИзмененииПараметров.Найти(ЭлементНастройки.Параметр) <> Неопределено Тогда
|
||||||
ВариантБылМодифицирован = ВариантМодифицирован;
|
ВариантБылМодифицирован = ВариантМодифицирован;
|
||||||
@@ -1199,7 +1199,7 @@
|
|||||||
ЗаполнитьЗначенияСвойств(ЭлементНастройки, Строка, "Использование, ПравоеЗначение");
|
ЗаполнитьЗначенияСвойств(ЭлементНастройки, Строка, "Использование, ПравоеЗначение");
|
||||||
|
|
||||||
УстановитьМодифицированность();
|
УстановитьМодифицированность();
|
||||||
УстановитьПредставлениеЗначения(Строка);
|
УстановитьПредставлениеЗначения(Строка, Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
@@ -2446,7 +2446,7 @@
|
|||||||
Строка.ЭтоПредопределенныйЗаголовок = (Строка.Заголовок = Строка.ПредставлениеПользовательскойНастройки);
|
Строка.ЭтоПредопределенныйЗаголовок = (Строка.Заголовок = Строка.ПредставлениеПользовательскойНастройки);
|
||||||
|
|
||||||
ПривестиЗначениеКВидуСравнения(Строка, ЭлементНастройки);
|
ПривестиЗначениеКВидуСравнения(Строка, ЭлементНастройки);
|
||||||
УстановитьПредставлениеЗначения(Строка);
|
УстановитьПредставлениеЗначения(Строка, СвойствоЭлементаСтруктуры.ДоступныеПоляОтбора);
|
||||||
|
|
||||||
Возврат УстановленыУспешно;
|
Возврат УстановленыУспешно;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -3645,15 +3645,22 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиентеНаСервереБезКонтекста
|
&НаКлиентеНаСервереБезКонтекста
|
||||||
Процедура УстановитьПредставлениеЗначения(Строка)
|
Процедура УстановитьПредставлениеЗначения(Строка, ДоступныеПоляОтбора)
|
||||||
Строка.ПредставлениеЗначения = "";
|
Строка.ПредставлениеЗначения = "";
|
||||||
|
|
||||||
ДоступныеЗначения = Строка.ДоступныеЗначения;
|
ДоступныеЗначения = Строка.ДоступныеЗначения;
|
||||||
|
Значение = ?(Строка.ЭтоПараметр, Строка.Значение, Строка.ПравоеЗначение);
|
||||||
|
|
||||||
Если ДоступныеЗначения = Неопределено Тогда
|
Если ДоступныеЗначения = Неопределено Тогда
|
||||||
|
Если ТипЗнч(Значение) = Тип("ПолеКомпоновкиДанных") Тогда
|
||||||
|
ДоступноеПоле = ДоступныеПоляОтбора.НайтиПоле(Значение);
|
||||||
|
Если ДоступноеПоле <> Неопределено Тогда
|
||||||
|
Строка.ПредставлениеЗначения = ДоступноеПоле.Заголовок;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Значение = ?(Строка.ЭтоПараметр, Строка.Значение, Строка.ПравоеЗначение);
|
|
||||||
НайденныйЭлемент = ДоступныеЗначения.НайтиПоЗначению(Значение);
|
НайденныйЭлемент = ДоступныеЗначения.НайтиПоЗначению(Значение);
|
||||||
Если НайденныйЭлемент <> Неопределено Тогда
|
Если НайденныйЭлемент <> Неопределено Тогда
|
||||||
Строка.ПредставлениеЗначения = НайденныйЭлемент.Представление;
|
Строка.ПредставлениеЗначения = НайденныйЭлемент.Представление;
|
||||||
|
|||||||
@@ -213,6 +213,19 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращает разрешение на доступ к веб-сервису адресов через сеть Интернет.
|
||||||
|
// Если доступ запрещен, то подбор и проверка адресов использует только загруженные данные в приложение.
|
||||||
|
// Изменение доступа выполняется в разделе Администрирование - Интернет-поддержка и сервисы.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Булево - если Истина, то доступ к веб-сервису разрешен.
|
||||||
|
//
|
||||||
|
Функция РазрешенДоступВИнтернет() Экспорт
|
||||||
|
|
||||||
|
Возврат Не АдресныйКлассификаторПовтИсп.ИспользоватьТолькоЗагруженныеДанные();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Проверяет адреса на соответствие адресному классификатору
|
// Проверяет адреса на соответствие адресному классификатору
|
||||||
// и возвращает подходящие варианты, содержащие сведения об адресе.
|
// и возвращает подходящие варианты, содержащие сведения об адресе.
|
||||||
// При проверке адреса через веб-сервиса выполнение функции может занимать 20 секунд.
|
// При проверке адреса через веб-сервиса выполнение функции может занимать 20 секунд.
|
||||||
@@ -425,6 +438,41 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Проверяет корректность ОКМТО бюджетополучателей.
|
||||||
|
//
|
||||||
|
// Для проверки ОКТМО бюджетополучателей требуется подключение к Интернет-поддержке пользователей и наличие
|
||||||
|
// постоянного соединения с интернетом, т.к. адресные сведения, загруженные в приложение, не используются.
|
||||||
|
// Проверка выполняется порциям по 100 значений за один запросу к веб-сервису, поэтому рекомендуется выполнять
|
||||||
|
// ее в фоновом режиме.
|
||||||
|
// При получении ответа от веб-сервиса отличного от успешного (код 200 ОК) выполнение функции прерывается
|
||||||
|
// и возвращается ошибка. Поэтому если в данных результата отсутствует ОКТМО бюджетополучателя,
|
||||||
|
// то он не было проверен из-за ошибок работы с веб-сервисом.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// ОКТМОБюджетополучателей - Массив из Строка - список ОКТМО бюджетополучателей.
|
||||||
|
// - Строка - ОКТМО бюджетополучателя.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура:
|
||||||
|
// * Отказ - Булево - если Истина, то при получении ОКТМО бюджетополучателя через веб-сервис возникла ошибка.
|
||||||
|
// * ПредставлениеОшибкиДляПользователя - Строка - текст ошибки для отображения пользователю.
|
||||||
|
// * ИнформацияОбОшибке - ИнформацияОбОшибке - структурированная информация об ошибке.
|
||||||
|
// * Данные - Соответствие из КлючИЗначение:
|
||||||
|
// ** Ключ - Строка - ОКТМО бюджетополучателя.
|
||||||
|
// ** Значение - Структура:
|
||||||
|
// *** Успешно - Булево - если Истина, то код ОКТМО бюджетополучателей корректный;
|
||||||
|
// *** ТекстОшибки - Строка - текст ошибки, если ОКТМО некорректный;
|
||||||
|
// *** МуниципальныеОбразования - Массив из Строка - список муниципальных образований, принадлежащих данному ОКТМО.
|
||||||
|
//
|
||||||
|
Функция ПроверитьОКТМОБюджетополучателя(ОКТМОБюджетополучателей) Экспорт
|
||||||
|
|
||||||
|
СписокОКТМО = ?(ТипЗнч(ОКТМОБюджетополучателей) = Тип("Строка"),
|
||||||
|
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОКТМОБюджетополучателей), ОКТМОБюджетополучателей);
|
||||||
|
|
||||||
|
Возврат АдресныйКлассификаторСлужебный.ПроверитьОКМТОБюджетополучателя(СписокОКТМО);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#Область УстаревшиеПроцедурыИФункции
|
#Область УстаревшиеПроцедурыИФункции
|
||||||
|
|
||||||
// Возвращает идентификационный код дома и адресного объекта с помощью веб-сервиса фирмы 1С предоставляющего
|
// Возвращает идентификационный код дома и адресного объекта с помощью веб-сервиса фирмы 1С предоставляющего
|
||||||
|
|||||||
@@ -157,9 +157,9 @@
|
|||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Структура:
|
// Структура:
|
||||||
// * HTTPСоединение - объект для вызовов сервиса.
|
// * СервисКлассификатора - HTTPСоединение - объект для вызовов сервиса.
|
||||||
//
|
//
|
||||||
Функция СервисКлассификатора1С(ВремяОжидания = 120) Экспорт
|
Функция СервисКлассификатора1С(ВремяОжидания = 20) Экспорт
|
||||||
|
|
||||||
Возврат Новый Структура("СервисКлассификатора", АдресныйКлассификаторСлужебный.СервисКлассификатора1С(ВремяОжидания));
|
Возврат Новый Структура("СервисКлассификатора", АдресныйКлассификаторСлужебный.СервисКлассификатора1С(ВремяОжидания));
|
||||||
|
|
||||||
|
|||||||
@@ -6471,6 +6471,172 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ПроверитьОКМТОБюджетополучателя(ОКТМОБюджетополучателей) Экспорт
|
||||||
|
|
||||||
|
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("АдресныйКлассификаторСлужебный.ПроверитьОКМТОБюджетополучателя",
|
||||||
|
"ОКТМОБюджетополучателей", ОКТМОБюджетополучателей, Тип("Массив"));
|
||||||
|
|
||||||
|
РазмерПорции = 100;
|
||||||
|
Результат = НовыйРезультатИзВебСервиса();
|
||||||
|
|
||||||
|
Порция = Новый Массив;
|
||||||
|
|
||||||
|
Для Позиция = 0 По ОКТМОБюджетополучателей.ВГраница() Цикл
|
||||||
|
|
||||||
|
ОКТМОБюджетополучателя = СокрЛП(ОКТМОБюджетополучателей.Получить(Позиция));
|
||||||
|
Если СтрДлина(ОКТМОБюджетополучателя) = 8 Или СтрДлина(ОКТМОБюджетополучателя) = 11 Тогда
|
||||||
|
|
||||||
|
Если Результат.Данные[ОКТМОБюджетополучателя] = Неопределено Тогда
|
||||||
|
Порция.Добавить(ОКТМОБюджетополучателя);
|
||||||
|
КонецЕсли;
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ДанныеПоОКТМО = ДанныеПоОКТМО();
|
||||||
|
ДанныеПоОКТМО.ТекстОшибки = НСтр("ru = 'Указан некорректный код ОКТМО'");
|
||||||
|
Результат.Данные.Вставить(ОКТМОБюджетополучателя, ДанныеПоОКТМО);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если (Порция.Количество() = РазмерПорции
|
||||||
|
Или Позиция = ОКТМОБюджетополучателей.ВГраница())
|
||||||
|
И Порция.Количество() > 0 Тогда
|
||||||
|
ОбработатьПорциюОКТМОБюджетополучателей(Результат, Порция);
|
||||||
|
Если Результат.Отказ Тогда
|
||||||
|
Возврат Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
Порция = Новый Массив;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ДанныеПоОКТМО()
|
||||||
|
|
||||||
|
ДанныеПоОКТМО = Новый Структура();
|
||||||
|
ДанныеПоОКТМО.Вставить("Успешно", Ложь);
|
||||||
|
ДанныеПоОКТМО.Вставить("ТекстОшибки", "");
|
||||||
|
ДанныеПоОКТМО.Вставить("МуниципальныеОбразования", Новый Массив);
|
||||||
|
|
||||||
|
Возврат ДанныеПоОКТМО;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ОбработатьПорциюОКТМОБюджетополучателей(Результат, Порция)
|
||||||
|
|
||||||
|
ИдентификаторЗапроса = Строка(Новый УникальныйИдентификатор);
|
||||||
|
ДанныеДляЗапроса = Новый Структура("oktmoList", Порция);
|
||||||
|
|
||||||
|
ОписаниеСервиса = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С();
|
||||||
|
Сервис = ОписаниеСервиса.СервисКлассификатора;
|
||||||
|
|
||||||
|
ПрефиксВерсииЗапроса = ПрефиксВерсииЗапросаСервисаОКТМО();
|
||||||
|
HTTPЗапрос = Новый HTTPЗапрос(ПрефиксВерсииЗапроса + "validateOktmoList");
|
||||||
|
|
||||||
|
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
|
||||||
|
HTTPЗапрос.Заголовки.Вставить("X-1C-Request-UID", ИдентификаторЗапроса);
|
||||||
|
HTTPЗапрос.УстановитьТелоИзСтроки(СтруктураВСтрокуJSON(ДанныеДляЗапроса));
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
РезультатПроверки = Сервис.ОтправитьДляОбработки(HTTPЗапрос);
|
||||||
|
Исключение
|
||||||
|
|
||||||
|
ОбработатьОшибкуОбращенияКВебСервисуПриПолученииОКТМО(Результат);
|
||||||
|
Возврат Результат;
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если ТребуетсяОбновитьТикетАвторизации(РезультатПроверки.КодСостояния) Тогда
|
||||||
|
|
||||||
|
Сервис = ОбновитьОписаниеСервисаКлассификатора(ОписаниеСервиса);
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
Ответ = Сервис.ОтправитьДляОбработки(HTTPЗапрос);
|
||||||
|
Исключение
|
||||||
|
|
||||||
|
ОбработатьОшибкуОбращенияКВебСервисуПриПолученииОКТМО(Результат);
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПолученныеДанные = РезультатПроверки.ПолучитьТелоКакСтроку("UTF-8");
|
||||||
|
|
||||||
|
Если РезультатПроверки.КодСостояния = 200 Тогда
|
||||||
|
|
||||||
|
ДанныеПроверки = СтрокуJSONВСоответствие(ПолученныеДанные);
|
||||||
|
Если ТипЗнч(ДанныеПроверки) = Тип("Соответствие") Тогда
|
||||||
|
|
||||||
|
НаборОКТМО = ДанныеПроверки["validateOktmoData"];
|
||||||
|
Для каждого ДанныеОКТМО Из НаборОКТМО Цикл
|
||||||
|
|
||||||
|
ЗначениеОКМТО = ДанныеОКТМО.Значение;
|
||||||
|
ДанныеПоОКТМО = ДанныеПоОКТМО();
|
||||||
|
|
||||||
|
Если ЗначениеОКМТО["validateOktmoStatus"] = "VERIFIED_OKTMO" Тогда
|
||||||
|
ДанныеПоОКТМО.Успешно = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
Если ЗначениеЗаполнено(ЗначениеОКМТО["validateMessage"]) Тогда
|
||||||
|
ДанныеПоОКТМО.ТекстОшибки = ЗначениеОКМТО["validateMessage"];
|
||||||
|
КонецЕсли;
|
||||||
|
Если ЗначениеЗаполнено(ЗначениеОКМТО["oktmoMunValue"]) Тогда
|
||||||
|
ДанныеПоОКТМО.МуниципальныеОбразования = ЗначениеОКМТО["oktmoMunValue"];
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат.Данные.Вставить(ДанныеОКТМО.Ключ, ДанныеПоОКТМО)
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Результат.ПредставлениеОшибкиДляПользователя = НСтр("ru = 'Проверка ОКТМО бюджетополучателя недоступна по причине:
|
||||||
|
|- не подключена интернет-поддержка пользователей;
|
||||||
|
|- неполадки у интернет-провайдера;
|
||||||
|
|- подключение к серверу блокирует межсетевой экран,
|
||||||
|
| антивирус или другие приложения;
|
||||||
|
|- веб-сервис отключен или на техническом обслуживании.'");
|
||||||
|
|
||||||
|
Результат.Отказ = Истина;
|
||||||
|
ТекстОшибки = НСтр("ru = 'При проверке ОКМТО бюджетополучателя через веб-сервис возникли проблемы.'");
|
||||||
|
|
||||||
|
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ПолученныеДанные, ТекстОшибки, HTTPЗапрос.АдресРесурса
|
||||||
|
+ " X-1C-Request-UID:" + ИдентификаторЗапроса, РезультатПроверки.КодСостояния);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ОбработатьОшибкуОбращенияКВебСервисуПриПолученииОКТМО(Результат)
|
||||||
|
|
||||||
|
Результат.Отказ = Истина;
|
||||||
|
Результат.ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||||
|
Результат.ПредставлениеОшибкиДляПользователя = НСтр("ru = 'При проверке ОКМТО бюджетополучателя через веб-сервис возникли проблемы.'");
|
||||||
|
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,,
|
||||||
|
ОбработкаОшибок.ПодробноеПредставлениеОшибки(Результат.ИнформацияОбОшибке));
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ОбновитьОписаниеСервисаКлассификатора(ОписаниеСервиса)
|
||||||
|
|
||||||
|
ОписаниеСервиса.СервисКлассификатора = СервисКлассификатора1С();
|
||||||
|
Сервис = ОписаниеСервиса.СервисКлассификатора;
|
||||||
|
Возврат Сервис;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ТребуетсяОбновитьТикетАвторизации(КодСостояния)
|
||||||
|
|
||||||
|
Возврат КодСостояния = 401
|
||||||
|
Или КодСостояния = 409
|
||||||
|
Или КодСостояния = 419;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура ЗаполнитьЗначениеСвойстваЕслиПустое(Приемник, Источник, ИмяСвойстваПриемника, ИмяСвойстваИлиЗначениеИсточника, ЭтоЗначение = Ложь)
|
Процедура ЗаполнитьЗначениеСвойстваЕслиПустое(Приемник, Источник, ИмяСвойстваПриемника, ИмяСвойстваИлиЗначениеИсточника, ЭтоЗначение = Ложь)
|
||||||
|
|
||||||
ЗначениеСвойства = ?(ЭтоЗначение, ИмяСвойстваИлиЗначениеИсточника, Источник[ИмяСвойстваИлиЗначениеИсточника]);
|
ЗначениеСвойства = ?(ЭтоЗначение, ИмяСвойстваИлиЗначениеИсточника, Источник[ИмяСвойстваИлиЗначениеИсточника]);
|
||||||
@@ -6935,11 +7101,9 @@
|
|||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
Если РезультатПроверки.КодСостояния <> 200
|
Если ТребуетсяОбновитьТикетАвторизации(РезультатПроверки.КодСостояния) Тогда
|
||||||
И РезультатПроверки.КодСостояния <> 400 Тогда
|
|
||||||
|
|
||||||
ОписаниеСервиса.СервисКлассификатора = СервисКлассификатора1С(20);
|
Сервис = ОбновитьОписаниеСервисаКлассификатора(ОписаниеСервиса);
|
||||||
Сервис = ОписаниеСервиса.СервисКлассификатора;
|
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
РезультатПроверки = Сервис.ОтправитьДляОбработки(HTTPЗапрос);
|
РезультатПроверки = Сервис.ОтправитьДляОбработки(HTTPЗапрос);
|
||||||
@@ -6983,7 +7147,7 @@
|
|||||||
Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки;
|
Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки;
|
||||||
Результат.Отказ = Истина;
|
Результат.Отказ = Истина;
|
||||||
|
|
||||||
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ПолученныеДанные, Результат, HTTPЗапрос.АдресРесурса
|
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ПолученныеДанные, Результат.ПодробноеПредставлениеОшибки, HTTPЗапрос.АдресРесурса
|
||||||
+ " X-1C-Request-UID:" + ИдентификаторЗапроса, РезультатПроверки.КодСостояния);
|
+ " X-1C-Request-UID:" + ИдентификаторЗапроса, РезультатПроверки.КодСостояния);
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
@@ -7096,6 +7260,26 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура:
|
||||||
|
// * Данные - Соответствие
|
||||||
|
// * Отказ - Булево
|
||||||
|
// * ПредставлениеОшибкиДляПользователя - Строка
|
||||||
|
// * ИнформацияОбОшибке - ИнформацияОбОшибке
|
||||||
|
// - Неопределено
|
||||||
|
//
|
||||||
|
Функция НовыйРезультатИзВебСервиса()
|
||||||
|
|
||||||
|
Результат = Новый Структура;
|
||||||
|
Результат.Вставить("Данные", Новый Соответствие);
|
||||||
|
Результат.Вставить("Отказ", Ложь);
|
||||||
|
Результат.Вставить("ПредставлениеОшибкиДляПользователя", "");
|
||||||
|
Результат.Вставить("ИнформацияОбОшибке", Неопределено);
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция ПредставлениеДомаИСтроений(ОписаниеДома)
|
Функция ПредставлениеДомаИСтроений(ОписаниеДома)
|
||||||
|
|
||||||
СписокСтроений = Новый Массив;
|
СписокСтроений = Новый Массив;
|
||||||
@@ -7698,6 +7882,10 @@
|
|||||||
Возврат "rest/v4/";
|
Возврат "rest/v4/";
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПрефиксВерсииЗапросаСервисаОКТМО()
|
||||||
|
Возврат "rest/oktmo/v1/";
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Возвращает информацию из классификатора субъектов РФ.
|
// Возвращает информацию из классификатора субъектов РФ.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@@ -8198,7 +8386,7 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// HTTPСоединение - объект для вызовов сервиса.
|
// HTTPСоединение - объект для вызовов сервиса.
|
||||||
//
|
//
|
||||||
Функция СервисКлассификатора1С(ВремяОжидания = 120) Экспорт
|
Функция СервисКлассификатора1С(ВремяОжидания = 20) Экспорт
|
||||||
|
|
||||||
URLПорталаПоддержки = "https://portal.1c.ru/";
|
URLПорталаПоддержки = "https://portal.1c.ru/";
|
||||||
СохраненныйТекущийURLПорталаПоддержки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("АдресныйКлассификатор", "URLПорталаПоддержки");
|
СохраненныйТекущийURLПорталаПоддержки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("АдресныйКлассификатор", "URLПорталаПоддержки");
|
||||||
@@ -8322,10 +8510,9 @@
|
|||||||
|
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
Если Ответ.КодСостояния <> 200 Тогда
|
Если ТребуетсяОбновитьТикетАвторизации(Ответ.КодСостояния) Тогда
|
||||||
|
|
||||||
ОписаниеСервиса.СервисКлассификатора = СервисКлассификатора1С(ВремяОжидания);
|
Сервис = ОбновитьОписаниеСервисаКлассификатора(ОписаниеСервиса);
|
||||||
Сервис = ОписаниеСервиса.СервисКлассификатора;
|
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
Ответ = Сервис.Получить(HTTPЗапрос);
|
Ответ = Сервис.Получить(HTTPЗапрос);
|
||||||
@@ -8402,7 +8589,7 @@
|
|||||||
Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки;
|
Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки;
|
||||||
ОтветОтСервера = Ответ.ПолучитьТелоКакСтроку("UTF-8");
|
ОтветОтСервера = Ответ.ПолучитьТелоКакСтроку("UTF-8");
|
||||||
|
|
||||||
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервера, Результат, ТекстURL, Ответ.КодСостояния);
|
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервера, Результат.ПодробноеПредставлениеОшибки, ТекстURL, Ответ.КодСостояния);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -8417,7 +8604,7 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервераСтрокой, Результат, ТекстURL, КодСостояния)
|
Процедура ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервераСтрокой, ПодробноеПредставлениеОшибки, ТекстURL, КодСостояния)
|
||||||
|
|
||||||
ШаблонТекстОтветаСервера = НСтр("ru = '%1
|
ШаблонТекстОтветаСервера = НСтр("ru = '%1
|
||||||
|Техническая информация. При запросе: %2
|
|Техническая информация. При запросе: %2
|
||||||
@@ -8425,7 +8612,7 @@
|
|||||||
|с текстом: %4'");
|
|с текстом: %4'");
|
||||||
|
|
||||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстОтветаСервера,
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстОтветаСервера,
|
||||||
Результат.ПодробноеПредставлениеОшибки, ТекстURL, КодСостояния, ОтветОтСервераСтрокой);
|
ПодробноеПредставлениеОшибки, ТекстURL, КодСостояния, ОтветОтСервераСтрокой);
|
||||||
|
|
||||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
|
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
|
||||||
|
|
||||||
@@ -8512,6 +8699,19 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция СтрокуJSONВСоответствие(Значение)
|
||||||
|
|
||||||
|
ЧтениеJSON = Новый ЧтениеJSON;
|
||||||
|
ЧтениеJSON.УстановитьСтроку(Значение);
|
||||||
|
|
||||||
|
Результат = ПрочитатьJSON(ЧтениеJSON, Истина);
|
||||||
|
|
||||||
|
ЧтениеJSON.Закрыть();
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Описание национальных полей структуры контактной информации для хранения ее в формате JSON.
|
// Описание национальных полей структуры контактной информации для хранения ее в формате JSON.
|
||||||
// Основной список полей определяется в одноименной функции общего модуля .
|
// Основной список полей определяется в одноименной функции общего модуля .
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -7543,9 +7543,9 @@
|
|||||||
Запрос.УстановитьПараметр("НазначенияВариантовОтчетов", ПараметрыЗаполнения.НазначенияВариантовОтчетов);
|
Запрос.УстановитьПараметр("НазначенияВариантовОтчетов", ПараметрыЗаполнения.НазначенияВариантовОтчетов);
|
||||||
Запрос.УстановитьПараметр("ИскатьВоВсехРазделах", ПараметрыЗаполнения.ИскатьВоВсехРазделах);
|
Запрос.УстановитьПараметр("ИскатьВоВсехРазделах", ПараметрыЗаполнения.ИскатьВоВсехРазделах);
|
||||||
Если ПараметрыЗаполнения.ОтображатьВсеВариантыОтчетов Тогда
|
Если ПараметрыЗаполнения.ОтображатьВсеВариантыОтчетов Тогда
|
||||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Параметр1", "ИСТИНА");
|
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеПоНазначениюВариантовОтчетов", "ИСТИНА");
|
||||||
Иначе
|
Иначе
|
||||||
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Параметр1", "ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов)");
|
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&УсловиеПоНазначениюВариантовОтчетов", "ВариантыОтчетов.Назначение В (&НазначенияВариантовОтчетов)");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТаблицаРезультат = Запрос.Выполнить().Выгрузить();
|
ТаблицаРезультат = Запрос.Выполнить().Выгрузить();
|
||||||
@@ -7657,7 +7657,7 @@
|
|||||||
|
|
|
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
| НЕ ВариантыОтчетов.ПометкаУдаления
|
| НЕ ВариантыОтчетов.ПометкаУдаления
|
||||||
| И &Параметр1
|
| И &УсловиеПоНазначениюВариантовОтчетов
|
||||||
|
|
|
|
||||||
|ОБЪЕДИНИТЬ ВСЕ
|
|ОБЪЕДИНИТЬ ВСЕ
|
||||||
|
|
|
|
||||||
@@ -7706,7 +7706,7 @@
|
|||||||
|ГДЕ
|
|ГДЕ
|
||||||
| (НЕ ВариантыОтчетов.ПометкаУдаления
|
| (НЕ ВариантыОтчетов.ПометкаУдаления
|
||||||
| ИЛИ НЕ ДоступныеВариантыРасширений.Вариант ЕСТЬ NULL)
|
| ИЛИ НЕ ДоступныеВариантыРасширений.Вариант ЕСТЬ NULL)
|
||||||
| И &Параметр1
|
| И &УсловиеПоНазначениюВариантовОтчетов
|
||||||
|;
|
|;
|
||||||
|
|
|
|
||||||
|////////////////////////////////////////////////////////////////////////////////
|
|////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -7773,7 +7773,7 @@
|
|||||||
| ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления)
|
| ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления)
|
||||||
| И (ВариантыОтчетов.Пользовательский
|
| И (ВариантыОтчетов.Пользовательский
|
||||||
| ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления)
|
| ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления)
|
||||||
| И &Параметр1
|
| И &УсловиеПоНазначениюВариантовОтчетов
|
||||||
|";
|
|";
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда
|
Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда
|
||||||
@@ -7846,7 +7846,7 @@
|
|||||||
| И (ПредставленияВариантов.КодЯзыка = &КодЯзыка)
|
| И (ПредставленияВариантов.КодЯзыка = &КодЯзыка)
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
| НЕ ВариантыОтчетов.ПометкаУдаления
|
| НЕ ВариантыОтчетов.ПометкаУдаления
|
||||||
| И &Параметр1
|
| И &УсловиеПоНазначениюВариантовОтчетов
|
||||||
|
|
|
|
||||||
|ОБЪЕДИНИТЬ ВСЕ
|
|ОБЪЕДИНИТЬ ВСЕ
|
||||||
|
|
|
|
||||||
@@ -7906,7 +7906,7 @@
|
|||||||
|ГДЕ
|
|ГДЕ
|
||||||
| (НЕ ВариантыОтчетов.ПометкаУдаления
|
| (НЕ ВариантыОтчетов.ПометкаУдаления
|
||||||
| ИЛИ НЕ ДоступныеВариантыРасширений.Вариант ЕСТЬ NULL)
|
| ИЛИ НЕ ДоступныеВариантыРасширений.Вариант ЕСТЬ NULL)
|
||||||
| И &Параметр1
|
| И &УсловиеПоНазначениюВариантовОтчетов
|
||||||
|;
|
|;
|
||||||
|
|
|
|
||||||
|////////////////////////////////////////////////////////////////////////////////
|
|////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -7994,7 +7994,7 @@
|
|||||||
| ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления)
|
| ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления)
|
||||||
| И (ВариантыОтчетов.Пользовательский
|
| И (ВариантыОтчетов.Пользовательский
|
||||||
| ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления)
|
| ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления)
|
||||||
| И &Параметр1
|
| И &УсловиеПоНазначениюВариантовОтчетов
|
||||||
|";
|
|";
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -8083,7 +8083,7 @@
|
|||||||
| ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления)
|
| ИЛИ НЕ ВариантыОтчетов.ИнтерактивнаяПометкаУдаления)
|
||||||
| И (ВариантыОтчетов.Пользовательский
|
| И (ВариантыОтчетов.Пользовательский
|
||||||
| ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления)
|
| ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления)
|
||||||
| И &Параметр1
|
| И &УсловиеПоНазначениюВариантовОтчетов
|
||||||
| И втВсеВариантыСПодсистемами.Ссылка ЕСТЬ NULL
|
| И втВсеВариантыСПодсистемами.Ссылка ЕСТЬ NULL
|
||||||
|
|
|
|
||||||
|ОБЪЕДИНИТЬ ВСЕ
|
|ОБЪЕДИНИТЬ ВСЕ
|
||||||
|
|||||||
@@ -1378,9 +1378,17 @@
|
|||||||
|
|
||||||
Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек);
|
Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек);
|
||||||
|
|
||||||
Фильтры = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета(Настройки, СвойстваЗаголовка, ЭтоГруппировка);
|
Фильтры = Настройки.Отбор;
|
||||||
Фильтр = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, СвойстваЗаголовка.Поле);
|
Фильтр = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, СвойстваЗаголовка.Поле);
|
||||||
|
|
||||||
|
Если Настройки.Структура.Количество() > 1 Тогда
|
||||||
|
Если Фильтр = Неопределено
|
||||||
|
Или Фильтр <> Неопределено И Фильтр.ВидСравнения <> ВидСравнения Или Фильтр.ПравоеЗначение <> ДанныеРасшифровки.Значение Тогда
|
||||||
|
Фильтры = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета(Настройки, СвойстваЗаголовка, ЭтоГруппировка);
|
||||||
|
Фильтр = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, СвойстваЗаголовка.Поле);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если Фильтр = Неопределено Тогда
|
Если Фильтр = Неопределено Тогда
|
||||||
|
|
||||||
Фильтр = Фильтры.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
Фильтр = Фильтры.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
||||||
|
|||||||
@@ -841,7 +841,7 @@
|
|||||||
ИмяМакета = МестоположениеМакетаРазделенное.Получить(МестоположениеМакетаРазделенное.ВГраница());
|
ИмяМакета = МестоположениеМакетаРазделенное.Получить(МестоположениеМакетаРазделенное.ВГраница());
|
||||||
|
|
||||||
Если МестоположениеМакетаРазделенное.Количество() = 2 Тогда
|
Если МестоположениеМакетаРазделенное.Количество() = 2 Тогда
|
||||||
ДвоичныеДанныеКомпоненты = ПолучитьОбщийМакет(Местоположение);
|
ДвоичныеДанныеКомпоненты = ПолучитьОбщийМакет(ИмяМакета);
|
||||||
Иначе
|
Иначе
|
||||||
МестоположениеМакетаРазделенное.Удалить(МестоположениеМакетаРазделенное.ВГраница());
|
МестоположениеМакетаРазделенное.Удалить(МестоположениеМакетаРазделенное.ВГраница());
|
||||||
МестоположениеМакетаРазделенное.Удалить(МестоположениеМакетаРазделенное.ВГраница());
|
МестоположениеМакетаРазделенное.Удалить(МестоположениеМакетаРазделенное.ВГраница());
|
||||||
|
|||||||
@@ -383,11 +383,10 @@
|
|||||||
// Конструктор коллекции ПараметрыВыполненияФункции для функции ВыполнитьФункцию.
|
// Конструктор коллекции ПараметрыВыполненияФункции для функции ВыполнитьФункцию.
|
||||||
//
|
//
|
||||||
// Если ЗапуститьВФоне = Ложь и ЗапуститьНеВФоне = Ложь, то задание будет выполнено в фоне по возможности.
|
// Если ЗапуститьВФоне = Ложь и ЗапуститьНеВФоне = Ложь, то задание будет выполнено в фоне по возможности.
|
||||||
// Запуск выполняется сразу в основном потоке при выполнении любого из следующих условий:
|
// Запуск с расширениями сеанса выполняется сразу в основном потоке при выполнении любого из следующих условий:
|
||||||
// * если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
|
// * если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
|
||||||
// * если приложение запущено в режиме отладки (параметр /C РежимОтладки) - для упрощения отладки конфигурации;
|
// * если приложение запущено в режиме отладки (параметр /C РежимОтладки) - для упрощения отладки конфигурации;
|
||||||
// * если в файловой ИБ имеются активные фоновые задания - для снижения времени ожидания пользователя;
|
// * если в файловой ИБ имеются активные фоновые задания - для снижения времени ожидания пользователя.
|
||||||
// * если выполняется функция модуля внешней обработки или внешнего отчета.
|
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы,
|
// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы,
|
||||||
@@ -446,11 +445,10 @@
|
|||||||
// Конструктор коллекции ПараметрыВыполненияПроцедуры для функции ВыполнитьПроцедуру.
|
// Конструктор коллекции ПараметрыВыполненияПроцедуры для функции ВыполнитьПроцедуру.
|
||||||
//
|
//
|
||||||
// Если ЗапуститьВФоне = Ложь и ЗапуститьНеВФоне = Ложь, то задание будет выполнено в фоне по возможности.
|
// Если ЗапуститьВФоне = Ложь и ЗапуститьНеВФоне = Ложь, то задание будет выполнено в фоне по возможности.
|
||||||
// Запуск выполняется сразу в основном потоке при выполнении любого из следующих условий:
|
// Запуск с расширениями сеанса выполняется сразу в основном потоке при выполнении любого из следующих условий:
|
||||||
// * если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
|
// * если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
|
||||||
// * если приложение запущено в режиме отладки (параметр /C РежимОтладки) - для упрощения отладки конфигурации;
|
// * если приложение запущено в режиме отладки (параметр /C РежимОтладки) - для упрощения отладки конфигурации;
|
||||||
// * если в файловой ИБ имеются активные фоновые задания - для снижения времени ожидания пользователя;
|
// * если в файловой ИБ имеются активные фоновые задания - для снижения времени ожидания пользователя.
|
||||||
// * если выполняется функция модуля внешней обработки или внешнего отчета.
|
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Структура - параметры выполнения длительной операции:
|
// Структура - параметры выполнения длительной операции:
|
||||||
@@ -775,11 +773,10 @@
|
|||||||
// Возвращает новую структуру для параметра ПараметрыВыполнения функции ВыполнитьВФоне.
|
// Возвращает новую структуру для параметра ПараметрыВыполнения функции ВыполнитьВФоне.
|
||||||
//
|
//
|
||||||
// Если ЗапуститьВФоне = Ложь и ЗапуститьНеВФоне = Ложь, то задание будет выполнено в фоне по возможности.
|
// Если ЗапуститьВФоне = Ложь и ЗапуститьНеВФоне = Ложь, то задание будет выполнено в фоне по возможности.
|
||||||
// Запуск выполняется сразу в основном потоке при выполнении любого из следующих условий:
|
// Запуск с расширениями сеанса выполняется сразу в основном потоке при выполнении любого из следующих условий:
|
||||||
// * если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
|
// * если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
|
||||||
// * если приложение запущено в режиме отладки (параметр /C РежимОтладки) - для упрощения отладки конфигурации;
|
// * если приложение запущено в режиме отладки (параметр /C РежимОтладки) - для упрощения отладки конфигурации;
|
||||||
// * если в файловой ИБ имеются активные фоновые задания - для снижения времени ожидания пользователя;
|
// * если в файловой ИБ имеются активные фоновые задания - для снижения времени ожидания пользователя.
|
||||||
// * если выполняется функция модуля внешней обработки или внешнего отчета.
|
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, во временное хранилище которой
|
// ИдентификаторФормы - УникальныйИдентификатор - уникальный идентификатор формы, во временное хранилище которой
|
||||||
|
|||||||
@@ -86,16 +86,18 @@
|
|||||||
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
|
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
|
||||||
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
|
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
|
||||||
|
|
||||||
Команда = Команды.Добавить();
|
Если ПравоДоступа("ИнтерактивноеДобавление", Метаданные.Справочники.Заметки) Тогда
|
||||||
Команда.Вид = "Органайзер";
|
Команда = Команды.Добавить();
|
||||||
Команда.Представление = НСтр("ru = 'Создать заметку'");
|
Команда.Вид = "Органайзер";
|
||||||
Команда.ФункциональныеОпции = "ИспользоватьЗаметки";
|
Команда.Представление = НСтр("ru = 'Создать заметку'");
|
||||||
Команда.Картинка = БиблиотекаКартинок.Заметка;
|
Команда.ФункциональныеОпции = "ИспользоватьЗаметки";
|
||||||
Команда.ТипПараметра = Метаданные.ОпределяемыеТипы.ПредметЗаметок.Тип;
|
Команда.Картинка = БиблиотекаКартинок.Заметка;
|
||||||
Команда.РежимЗаписи = "НеЗаписывать";
|
Команда.ТипПараметра = Метаданные.ОпределяемыеТипы.ПредметЗаметок.Тип;
|
||||||
Команда.Порядок = 50;
|
Команда.РежимЗаписи = "НеЗаписывать";
|
||||||
Команда.Обработчик = "ЗаметкиПользователяСлужебныйКлиент.СоздатьЗаметкуПоПредмету";
|
Команда.Порядок = 50;
|
||||||
Команда.МножественныйВыбор = Ложь;
|
Команда.Обработчик = "ЗаметкиПользователяСлужебныйКлиент.СоздатьЗаметкуПоПредмету";
|
||||||
|
Команда.МножественныйВыбор = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -504,6 +504,11 @@
|
|||||||
// См. ОтчетыКлиентПереопределяемый.ПриНачалеВыбораЗначений.
|
// См. ОтчетыКлиентПереопределяемый.ПриНачалеВыбораЗначений.
|
||||||
Процедура ПриНачалеВыбораЗначений(ФормаОтчета, УсловияВыбора, ОповещениеОЗакрытии, СтандартнаяОбработка) Экспорт
|
Процедура ПриНачалеВыбораЗначений(ФормаОтчета, УсловияВыбора, ОповещениеОЗакрытии, СтандартнаяОбработка) Экспорт
|
||||||
|
|
||||||
|
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольРаботыПользователей") Тогда
|
||||||
|
МодульКонтрольРаботыПользователейСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КонтрольРаботыПользователейСлужебныйКлиент");
|
||||||
|
МодульКонтрольРаботыПользователейСлужебныйКлиент.ПриНачалеВыбораЗначений(ФормаОтчета, УсловияВыбора, ОповещениеОЗакрытии, СтандартнаяОбработка);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||||
МодульУправлениеДоступомСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеДоступомСлужебныйКлиент");
|
МодульУправлениеДоступомСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеДоступомСлужебныйКлиент");
|
||||||
МодульУправлениеДоступомСлужебныйКлиент.ПриНачалеВыбораЗначений(ФормаОтчета, УсловияВыбора, ОповещениеОЗакрытии, СтандартнаяОбработка);
|
МодульУправлениеДоступомСлужебныйКлиент.ПриНачалеВыбораЗначений(ФормаОтчета, УсловияВыбора, ОповещениеОЗакрытии, СтандартнаяОбработка);
|
||||||
|
|||||||
@@ -37,6 +37,9 @@
|
|||||||
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.АнализЖурналаРегистрации);
|
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.АнализЖурналаРегистрации);
|
||||||
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИзменениеУчетныхЗаписей);
|
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИзменениеУчетныхЗаписей);
|
||||||
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИзменениеУчастниковГруппПользователей);
|
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИзменениеУчастниковГруппПользователей);
|
||||||
|
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИзменениеУчастниковГруппДоступа);
|
||||||
|
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИзменениеРазрешенныхЗначенийГруппДоступа);
|
||||||
|
МодульВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИзменениеРолейПрофилей);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -46,6 +49,9 @@
|
|||||||
Отчеты.АнализЖурналаРегистрации.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
Отчеты.АнализЖурналаРегистрации.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
||||||
Отчеты.ИзменениеУчетныхЗаписей.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
Отчеты.ИзменениеУчетныхЗаписей.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
||||||
Отчеты.ИзменениеУчастниковГруппПользователей.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
Отчеты.ИзменениеУчастниковГруппПользователей.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
||||||
|
Отчеты.ИзменениеУчастниковГруппДоступа.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
||||||
|
Отчеты.ИзменениеРазрешенныхЗначенийГруппДоступа.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
||||||
|
Отчеты.ИзменениеРолейПрофилей.ПередДобавлениемКомандОтчетов(КомандыОтчетов, Параметры, СтандартнаяОбработка);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -170,8 +176,15 @@
|
|||||||
//
|
//
|
||||||
Функция РегистрироватьИзмененияПравДоступа() Экспорт
|
Функция РегистрироватьИзмененияПравДоступа() Экспорт
|
||||||
|
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
Возврат Константы.РегистрироватьИзмененияПравДоступа.Получить();
|
|
||||||
|
Результат = Константы.РегистрироватьИзмененияПравДоступа.Получить();
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -70,6 +70,16 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// См. ОтчетыКлиентПереопределяемый.ПриНачалеВыбораЗначений
|
||||||
|
Процедура ПриНачалеВыбораЗначений(ФормаОтчета, УсловияВыбора, ОповещениеОЗакрытии, СтандартнаяОбработка) Экспорт
|
||||||
|
|
||||||
|
Если ФормаОтчета.НастройкиОтчета.ПолноеИмя = "Отчет.ИзменениеРолейПрофилей" Тогда
|
||||||
|
ПриНачалеВыбораЗначенийОтчетаИзменениеРолейПрофилей(ФормаОтчета,
|
||||||
|
УсловияВыбора, ОповещениеОЗакрытии, СтандартнаяОбработка);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@@ -129,4 +139,46 @@
|
|||||||
ОткрытьФорму("Отчет.АнализЖурналаРегистрации.Форма.СведенияОРегламентномЗадании", ПараметрыФормы);
|
ОткрытьФорму("Отчет.АнализЖурналаРегистрации.Форма.СведенияОРегламентномЗадании", ПараметрыФормы);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Для процедуры ПриНачалеВыбораЗначений
|
||||||
|
Процедура ПриНачалеВыбораЗначенийОтчетаИзменениеРолейПрофилей(ФормаОтчета, УсловияВыбора, ОповещениеОЗакрытии, СтандартнаяОбработка)
|
||||||
|
|
||||||
|
Если УсловияВыбора.ИмяПоля <> "Роль" Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СтандартнаяОбработка = Ложь;
|
||||||
|
|
||||||
|
Выбранные = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(УсловияВыбора.Отмеченные);
|
||||||
|
УдалитьПустыеЗначения(Выбранные);
|
||||||
|
|
||||||
|
Коллекции = Новый СписокЗначений;
|
||||||
|
Коллекции.Добавить("Роли");
|
||||||
|
|
||||||
|
ПараметрыПодбора = Новый Структура;
|
||||||
|
ПараметрыПодбора.Вставить("ВыбиратьСсылки", Истина);
|
||||||
|
ПараметрыПодбора.Вставить("ВыбранныеОбъектыМетаданных", Выбранные);
|
||||||
|
ПараметрыПодбора.Вставить("КоллекцииВыбираемыхОбъектовМетаданных", Коллекции);
|
||||||
|
ПараметрыПодбора.Вставить("СпособГруппировкиОбъектов", "ПоВидам");
|
||||||
|
ПараметрыПодбора.Вставить("Заголовок", НСтр("ru = 'Подбор ролей'"));
|
||||||
|
|
||||||
|
ОткрытьФорму("ОбщаяФорма.ВыборОбъектовМетаданных", ПараметрыПодбора,,,,, ОповещениеОЗакрытии);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Для процедуры ПриНачалеВыбораЗначенийОтчетаИзменениеРолейПрофилей.
|
||||||
|
Процедура УдалитьПустыеЗначения(ОтмеченныеЗначения)
|
||||||
|
|
||||||
|
Индекс = ОтмеченныеЗначения.Количество() - 1;
|
||||||
|
|
||||||
|
Пока Индекс >= 0 Цикл
|
||||||
|
Элемент = ОтмеченныеЗначения[Индекс];
|
||||||
|
Индекс = Индекс - 1;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(Элемент.Значение) Тогда
|
||||||
|
ОтмеченныеЗначения.Удалить(Элемент);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -99,9 +99,9 @@
|
|||||||
// * ДокументВид - Строка
|
// * ДокументВид - Строка
|
||||||
// * ДокументНомер - Строка
|
// * ДокументНомер - Строка
|
||||||
// * ДокументКемВыдан - Строка
|
// * ДокументКемВыдан - Строка
|
||||||
// * ДокументДатаВыдачи - Строка
|
// * ДокументДатаВыдачи - Дата
|
||||||
// * ДокументКодПодразделения - Строка
|
// * ДокументКодПодразделения - Строка - код подразделения в виде 999-999
|
||||||
// * ДокументСрокДействия - Строка
|
// * ДокументСрокДействия - Дата
|
||||||
// * Гражданство - СправочникСсылка.СтраныМира
|
// * Гражданство - СправочникСсылка.СтраныМира
|
||||||
// * БезГражданства - Булево
|
// * БезГражданства - Булево
|
||||||
// * МестоРождения - Строка
|
// * МестоРождения - Строка
|
||||||
|
|||||||
@@ -252,21 +252,40 @@
|
|||||||
|
|
||||||
Процедура ПриЗаполненииРеквизитовОрганизации(Реквизиты) Экспорт
|
Процедура ПриЗаполненииРеквизитовОрганизации(Реквизиты) Экспорт
|
||||||
|
|
||||||
|
КопияРеквизитов = ОбщегоНазначения.СкопироватьРекурсивно(Реквизиты);
|
||||||
|
|
||||||
Если Реквизиты.ЭтоФизическоеЛицо = Истина Тогда
|
Если Реквизиты.ЭтоФизическоеЛицо = Истина Тогда
|
||||||
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовФизическогоЛица(Реквизиты.Ссылка, Реквизиты);
|
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовФизическогоЛица(Реквизиты.Ссылка, КопияРеквизитов);
|
||||||
|
|
||||||
ИначеЕсли Реквизиты.ЭтоКонтрагент = Истина Тогда
|
ИначеЕсли Реквизиты.ЭтоКонтрагент = Истина Тогда
|
||||||
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовКонтрагента(Реквизиты.Ссылка, Реквизиты);
|
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовКонтрагента(Реквизиты.Ссылка, КопияРеквизитов);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
СтандартнаяОбработка = Истина;
|
СтандартнаяОбработка = Истина;
|
||||||
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовОрганизации(Реквизиты.Ссылка, Реквизиты, СтандартнаяОбработка);
|
МашиночитаемыеДоверенностиФНСПереопределяемый.ПриЗаполненииРеквизитовОрганизации(Реквизиты.Ссылка, КопияРеквизитов, СтандартнаяОбработка);
|
||||||
Если СтандартнаяОбработка Тогда
|
Если СтандартнаяОбработка Тогда
|
||||||
ПриЗаполненииРеквизитовОрганизацииМЧД(Реквизиты);
|
ПриЗаполненииРеквизитовОрганизацииМЧД(КопияРеквизитов);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЗаполнитьЗначенияСвойств(Реквизиты, КопияРеквизитов);
|
||||||
|
|
||||||
|
Если Реквизиты.ЭтоФизическоеЛицо = Истина Тогда
|
||||||
|
ДокументКодПодразделения = Строка(Реквизиты.ДокументКодПодразделения);
|
||||||
|
Если СтрДлина(ДокументКодПодразделения) = 6 И ДокументКодПодразделения = ТолькоЦифры(ДокументКодПодразделения) Тогда
|
||||||
|
Реквизиты.ДокументКодПодразделения = Лев(ДокументКодПодразделения, 3) + "-" + Прав(ДокументКодПодразделения, 3);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не Реквизиты.ЭтоФизическоеЛицо И ЗначениеЗаполнено(Реквизиты.РеквизитыЛицаБезДоверенности) Тогда
|
||||||
|
РеквизитыЛицаБезДоверенности = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастника(
|
||||||
|
"ФизическоеЛицо", Реквизиты.ЛицоБезДоверенности,
|
||||||
|
?(Реквизиты.ЭтоИндивидуальныйПредприниматель = Истина, "ИндивидуальныйПредприниматель", "ДолжностноеЛицо"));
|
||||||
|
ЗаполнитьЗначенияСвойств(РеквизитыЛицаБезДоверенности, Реквизиты.РеквизитыЛицаБезДоверенности);
|
||||||
|
Реквизиты.РеквизитыЛицаБезДоверенности = РеквизитыЛицаБезДоверенности;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция РеквизитыУчастника(Назначение, ОрганизацияТип, ОрганизацияТипСтрока, ОрганизацияСсылка, ВидУчастника,
|
Функция РеквизитыУчастника(Назначение, ОрганизацияТип, ОрганизацияТипСтрока, ОрганизацияСсылка, ВидУчастника,
|
||||||
@@ -286,7 +305,7 @@
|
|||||||
ВидУчастника);
|
ВидУчастника);
|
||||||
Иначе
|
Иначе
|
||||||
Список = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыОрганизацииСписок(Назначение, Ложь,
|
Список = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыОрганизацииСписок(Назначение, Ложь,
|
||||||
ВидУчастника, Назначение);
|
ВидУчастника);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОчиститьНеобязательныеРеквизиты(Реквизиты, Список);
|
ОчиститьНеобязательныеРеквизиты(Реквизиты, Список);
|
||||||
@@ -1863,9 +1882,13 @@
|
|||||||
Функция ПроверитьЗаполнениеРеквизитов(Форма, Реквизиты, СведенияОбОрганизации = Неопределено) Экспорт
|
Функция ПроверитьЗаполнениеРеквизитов(Форма, Реквизиты, СведенияОбОрганизации = Неопределено) Экспорт
|
||||||
|
|
||||||
Отказ = Ложь;
|
Отказ = Ложь;
|
||||||
ВидДокумента = "";
|
ВидДокумента = Неопределено;
|
||||||
Гражданство = Неопределено;
|
Гражданство = Неопределено;
|
||||||
БезГражданства = Неопределено;
|
БезГражданства = Неопределено;
|
||||||
|
КодПодразделения = Неопределено;
|
||||||
|
ДатаВыдачи = Неопределено;
|
||||||
|
КемВыдан = Неопределено;
|
||||||
|
СрокДействия = Неопределено;
|
||||||
|
|
||||||
Сведения = ?(СведенияОбОрганизации = Неопределено, Форма, СведенияОбОрганизации);
|
Сведения = ?(СведенияОбОрганизации = Неопределено, Форма, СведенияОбОрганизации);
|
||||||
|
|
||||||
@@ -1880,13 +1903,24 @@
|
|||||||
Для Каждого Реквизит Из Реквизиты Цикл
|
Для Каждого Реквизит Из Реквизиты Цикл
|
||||||
|
|
||||||
Если Реквизит.Имя = "ДокументВид" Тогда
|
Если Реквизит.Имя = "ДокументВид" Тогда
|
||||||
ВидДокумента = Реквизит.Значение;
|
Если Реквизит.Значение <> "0" Тогда
|
||||||
|
ВидДокумента = Реквизит.Значение;
|
||||||
|
КонецЕсли;
|
||||||
ИначеЕсли Реквизит.Имя = "ДокументНомер" Тогда
|
ИначеЕсли Реквизит.Имя = "ДокументНомер" Тогда
|
||||||
НомерДокумента = Реквизит;
|
НомерДокумента = Реквизит;
|
||||||
Продолжить;
|
Продолжить;
|
||||||
|
ИначеЕсли Реквизит.Имя = "ДокументДатаВыдачи" Тогда
|
||||||
|
ДатаВыдачи = Реквизит;
|
||||||
|
Продолжить;
|
||||||
ИначеЕсли Реквизит.Имя = "ДокументКодПодразделения" Тогда
|
ИначеЕсли Реквизит.Имя = "ДокументКодПодразделения" Тогда
|
||||||
КодПодразделения = Реквизит;
|
КодПодразделения = Реквизит;
|
||||||
Продолжить;
|
Продолжить;
|
||||||
|
ИначеЕсли Реквизит.Имя = "ДокументКемВыдан" Тогда
|
||||||
|
КемВыдан = Реквизит;
|
||||||
|
Продолжить;
|
||||||
|
ИначеЕсли Реквизит.Имя = "ДокументСрокДействия" Тогда
|
||||||
|
СрокДействия = Реквизит;
|
||||||
|
Продолжить;
|
||||||
ИначеЕсли Реквизит.Имя = "Гражданство" Тогда
|
ИначеЕсли Реквизит.Имя = "Гражданство" Тогда
|
||||||
Гражданство = Реквизит;
|
Гражданство = Реквизит;
|
||||||
ИначеЕсли Реквизит.Имя = "БезГражданства" Тогда
|
ИначеЕсли Реквизит.Имя = "БезГражданства" Тогда
|
||||||
@@ -1904,19 +1938,39 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ВидДокумента = "21" Тогда
|
Если ЗначениеЗаполнено(ВидДокумента) И КодПодразделения <> Неопределено Тогда
|
||||||
|
ТекстОшибки = ОшибкиПроверкиКодаПодразделения(КодПодразделения.Значение, ВидДокумента <> "10");
|
||||||
ТекстОшибки = ОшибкиПроверкиКодаПодразделения(КодПодразделения.Значение);
|
|
||||||
Если Не ПустаяСтрока(ТекстОшибки) Тогда
|
Если Не ПустаяСтрока(ТекстОшибки) Тогда
|
||||||
ТекстОшибки = КодПодразделения.ТекстПроверкиЗначения + " " + ТекстОшибки;
|
ТекстОшибки = КодПодразделения.ТекстПроверкиЗначения + " " + ТекстОшибки;
|
||||||
СообщитьПользователю(Форма, ТекстОшибки, КодПодразделения.ПолеСообщения, Отказ);
|
СообщитьПользователю(Форма, ТекстОшибки, КодПодразделения.ПолеСообщения, Отказ);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ВидДокумента = "21" Тогда
|
||||||
ТекстОшибки = ОшибкиПроверкиНомераПаспорта(НомерДокумента.Значение);
|
ТекстОшибки = ОшибкиПроверкиНомераПаспорта(НомерДокумента.Значение);
|
||||||
Если Не ПустаяСтрока(ТекстОшибки) Тогда
|
Если Не ПустаяСтрока(ТекстОшибки) Тогда
|
||||||
ТекстОшибки = НомерДокумента.ТекстПроверкиЗначения + " " + ТекстОшибки;
|
ТекстОшибки = НомерДокумента.ТекстПроверкиЗначения + " " + ТекстОшибки;
|
||||||
СообщитьПользователю(Форма, ТекстОшибки, НомерДокумента.ПолеСообщения, Отказ);
|
СообщитьПользователю(Форма, ТекстОшибки, НомерДокумента.ПолеСообщения, Отказ);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
ИначеЕсли ЗначениеЗаполнено(ВидДокумента) Тогда
|
||||||
|
НомерДокумента.ТекстНезаполненного = НомерДокумента.ТекстПроверкиЗначения;
|
||||||
|
ПроверитьЗаполнениеРеквизита(Форма, НомерДокумента, Отказ, ЭтоИП, ЭтоФЛ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ВидДокумента = "22" И СрокДействия <> Неопределено Тогда
|
||||||
|
СрокДействия.ТекстНезаполненного = СрокДействия.ТекстПроверкиЗначения;
|
||||||
|
ПроверитьЗаполнениеРеквизита(Форма, СрокДействия, Отказ, ЭтоИП, ЭтоФЛ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ВидДокумента) Тогда
|
||||||
|
|
||||||
|
ДатаВыдачи.ТекстНезаполненного = ДатаВыдачи.ТекстПроверкиЗначения;
|
||||||
|
ПроверитьЗаполнениеРеквизита(Форма, ДатаВыдачи, Отказ, ЭтоИП, ЭтоФЛ);
|
||||||
|
|
||||||
|
Если ВидДокумента <> "10" И КемВыдан <> Неопределено Тогда
|
||||||
|
КемВыдан.ТекстНезаполненного = КемВыдан.ТекстПроверкиЗначения;
|
||||||
|
ПроверитьЗаполнениеРеквизита(Форма, КемВыдан, Отказ, ЭтоИП, ЭтоФЛ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -2091,10 +2145,14 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ОшибкиПроверкиКодаПодразделения(КодПодразделения)
|
Функция ОшибкиПроверкиКодаПодразделения(КодПодразделения, ПроверятьНаЗаполненность = Ложь)
|
||||||
|
|
||||||
Если ПустаяСтрока(КодПодразделения) Тогда
|
Если ПустаяСтрока(КодПодразделения) Тогда
|
||||||
Возврат НСтр("ru = 'Не указан код подразделения'");
|
Если ПроверятьНаЗаполненность Тогда
|
||||||
|
Возврат НСтр("ru = 'Не указан код подразделения'");
|
||||||
|
Иначе
|
||||||
|
Возврат "";
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
СтрокаЦифр = СтрЗаменить(СокрЛП(КодПодразделения), "-", "");
|
СтрокаЦифр = СтрЗаменить(СокрЛП(КодПодразделения), "-", "");
|
||||||
@@ -2110,6 +2168,10 @@
|
|||||||
Возврат НСтр("ru = 'Код подразделения не может быть нулевым.'");
|
Возврат НСтр("ru = 'Код подразделения не может быть нулевым.'");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Сред(КодПодразделения, 4, 1) <> "-" Тогда
|
||||||
|
Возврат НСтр("ru = 'Неправильный формат кода подразделения.'");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат "";
|
Возврат "";
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -2136,10 +2198,6 @@
|
|||||||
|
|
||||||
Функция ОшибкиПроверкиНомераПаспорта(Знач НомерПаспортаРФ)
|
Функция ОшибкиПроверкиНомераПаспорта(Знач НомерПаспортаРФ)
|
||||||
|
|
||||||
Если ПустаяСтрока(НомерПаспортаРФ) Тогда
|
|
||||||
Возврат "";
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
СтрокаЦифр = СтрЗаменить(НомерПаспортаРФ, ",", "");
|
СтрокаЦифр = СтрЗаменить(НомерПаспортаРФ, ",", "");
|
||||||
СтрокаЦифр = СтрЗаменить(СтрокаЦифр, " ", "");
|
СтрокаЦифр = СтрЗаменить(СтрокаЦифр, " ", "");
|
||||||
|
|
||||||
@@ -2594,6 +2652,7 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибки) Экспорт
|
Функция ПолучитьИЗаписатьОшибкуМЧДРР(ПараметрыОшибки) Экспорт
|
||||||
|
|
||||||
ЗаголовокОшибки = ПараметрыОшибки.ЗаголовокОшибки;
|
ЗаголовокОшибки = ПараметрыОшибки.ЗаголовокОшибки;
|
||||||
ЗапросHTTP = ПараметрыОшибки.ЗапросHTTP;
|
ЗапросHTTP = ПараметрыОшибки.ЗапросHTTP;
|
||||||
ПараметрыТекстаОшибки = ПараметрыОшибки.ПараметрыТекстаОшибки;
|
ПараметрыТекстаОшибки = ПараметрыОшибки.ПараметрыТекстаОшибки;
|
||||||
@@ -2610,18 +2669,33 @@
|
|||||||
|
|
||||||
СтруктураЗначения = Новый Структура;
|
СтруктураЗначения = Новый Структура;
|
||||||
|
|
||||||
|
ТекстОшибкиИзОтвета = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СтруктураОтвета, "title", Неопределено);
|
||||||
|
Если ТекстОшибкиИзОтвета <> Неопределено Тогда
|
||||||
|
Если СтрЗаканчиваетсяНа(ТекстОшибки, ".") Тогда
|
||||||
|
ТекстОшибки = Лев(ТекстОшибки, СтрДлина(ТекстОшибки) - 1);
|
||||||
|
КонецЕсли;
|
||||||
|
ТекстОшибки = СтрШаблон("%1 (%2).", ТекстОшибки, ТекстОшибкиИзОтвета)
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если ОтветHTTP <> Неопределено И Строка(ОтветHTTP.КодСостояния) = СтрокаОтвета Тогда
|
Если ОтветHTTP <> Неопределено И Строка(ОтветHTTP.КодСостояния) = СтрокаОтвета Тогда
|
||||||
|
|
||||||
ОшибкаПоКлассификатору = Новый Структура("Причина, Решение, СпособУстранения, Ссылка");
|
ОшибкаПоКлассификатору = Новый Структура("Причина, Решение, СпособУстранения, Ссылка");
|
||||||
ОшибкаПоКлассификатору.Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеОшибкиHTTP(ОтветHTTP.КодСостояния), ОтветHTTP.КодСостояния);
|
ОшибкаПоКлассификатору.Причина = ОписаниеОшибкиHTTP(ОтветHTTP.КодСостояния);
|
||||||
|
|
||||||
СтруктураЗначения.Вставить("СтрокаПоискаОшибки", ОтветHTTP.КодСостояния);
|
СтруктураЗначения.Вставить("СтрокаПоискаОшибки", ОтветHTTP.КодСостояния);
|
||||||
СтруктураЗначения.Вставить("ОшибкаПоКлассификаторуНайдена", Ложь);
|
СтруктураЗначения.Вставить("ОшибкаПоКлассификаторуНайдена", Ложь);
|
||||||
|
|
||||||
|
ОшибкаПоКлассификатору.Решение = СтроковыеФункции.ФорматированнаяСтрока(
|
||||||
|
НСтр("ru='Повторите действие позднее или обратитесь в <a href=%1>службу поддержки ФНС России</a>.'"),
|
||||||
|
"https://www.nalog.gov.ru/rn77/service/service_feedback/?service=101");
|
||||||
|
|
||||||
МетодикиУстранения = Новый Массив;
|
МетодикиУстранения = Новый Массив;
|
||||||
МетодикиУстранения.Добавить("ПовторнаяОтправка");
|
МетодикиУстранения.Добавить("ПовторнаяОтправка");
|
||||||
МетодикиУстранения.Добавить("НеЗапрашиватьСтатусДоверенности");
|
МетодикиУстранения.Добавить("НеЗапрашиватьСтатусДоверенности");
|
||||||
|
|
||||||
СпособУстранения = Новый Структура("МетодикиУстранения", МетодикиУстранения);
|
СпособУстранения = Новый Структура("МетодикиУстранения", МетодикиУстранения);
|
||||||
ОшибкаПоКлассификатору.СпособУстранения = ОбщегоНазначения.ЗначениеВJSON(СпособУстранения);
|
ОшибкаПоКлассификатору.СпособУстранения = ОбщегоНазначения.ЗначениеВJSON(СпособУстранения);
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
Если ЗапросHTTP <> Неопределено Тогда
|
Если ЗапросHTTP <> Неопределено Тогда
|
||||||
СтрокаЗапроса = ПолучитьИдентификаторЗапроса(ЗапросHTTP);
|
СтрокаЗапроса = ПолучитьИдентификаторЗапроса(ЗапросHTTP);
|
||||||
@@ -2646,8 +2720,7 @@
|
|||||||
|
|
||||||
ОшибкаПоКлассификатору.Причина = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(ОшибкаПоКлассификатору.Причина, ПараметрыТекстаОшибки);
|
ОшибкаПоКлассификатору.Причина = СтроковыеФункцииКлиентСервер.ВставитьПараметрыВСтроку(ОшибкаПоКлассификатору.Причина, ПараметрыТекстаОшибки);
|
||||||
|
|
||||||
ОшибкаПоКлассификатору.Вставить("ТекстОшибки",
|
ОшибкаПоКлассификатору.Вставить("ТекстОшибки", ТекстОшибки);
|
||||||
ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СтруктураОтвета, "title", ТекстОшибки));
|
|
||||||
ОшибкаПоКлассификатору.Вставить("ЗаголовокОшибки", ЗаголовокОшибки);
|
ОшибкаПоКлассификатору.Вставить("ЗаголовокОшибки", ЗаголовокОшибки);
|
||||||
СтруктураЗначения.Вставить("ОшибкаПоКлассификатору", ОшибкаПоКлассификатору);
|
СтруктураЗначения.Вставить("ОшибкаПоКлассификатору", ОшибкаПоКлассификатору);
|
||||||
|
|
||||||
@@ -2655,6 +2728,7 @@
|
|||||||
Если ДополнительныеФайлы = Неопределено Тогда
|
Если ДополнительныеФайлы = Неопределено Тогда
|
||||||
ДополнительныеФайлы = Новый Массив;
|
ДополнительныеФайлы = Новый Массив;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДобавитьФайлДляРасследования(ДополнительныеФайлы, ДанныеФайла, НСтр("ru='Ошибка по классификатору'"), "xml");
|
ДобавитьФайлДляРасследования(ДополнительныеФайлы, ДанныеФайла, НСтр("ru='Ошибка по классификатору'"), "xml");
|
||||||
ОшибкаПоКлассификатору.Вставить("ДополнительныеФайлы", ДополнительныеФайлы);
|
ОшибкаПоКлассификатору.Вставить("ДополнительныеФайлы", ДополнительныеФайлы);
|
||||||
|
|
||||||
@@ -2664,109 +2738,29 @@
|
|||||||
|
|
||||||
Функция ОписаниеОшибкиHTTP(КодСостояния)
|
Функция ОписаниеОшибкиHTTP(КодСостояния)
|
||||||
|
|
||||||
Если КодСостояния < 300 Тогда
|
Если КодСостояния < 200 Или КодСостояния >= 300 И КодСостояния < 400 Тогда
|
||||||
Возврат "";
|
|
||||||
ИначеЕсли КодСостояния = 300 Тогда
|
|
||||||
Возврат НСтр("ru = 'Множественный выбор при отправке ответа сервера'");
|
|
||||||
ИначеЕсли КодСостояния = 301 Тогда
|
|
||||||
Возврат НСтр("ru = 'Ресурс перемещен'");
|
|
||||||
ИначеЕсли КодСостояния = 302 Тогда
|
|
||||||
Возврат НСтр("ru = 'Ресурс временно перемещен'");
|
|
||||||
ИначеЕсли КодСостояния = 303 Тогда
|
|
||||||
Возврат НСтр("ru = 'Ресурс перемещен на другой адрес'");
|
|
||||||
ИначеЕсли КодСостояния = 304 Тогда
|
|
||||||
Возврат НСтр("ru = 'Неожиданный ответ об отсутствии изменений страницы'");
|
|
||||||
ИначеЕсли КодСостояния = 305 Тогда
|
|
||||||
Возврат НСтр("ru = 'Для доступа к ресурсу требуется прокси'");
|
|
||||||
ИначеЕсли КодСостояния = 306 Тогда
|
|
||||||
Возврат НСтр("ru = 'Неиспользуемый код перенаправления запроса'");
|
|
||||||
ИначеЕсли КодСостояния = 307 Тогда
|
|
||||||
Возврат НСтр("ru = 'Временное перенаправление'");
|
|
||||||
ИначеЕсли КодСостояния < 400 Тогда
|
|
||||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Ошибка по перенаправлению запроса с кодом %1'"),
|
НСтр("ru = 'Неподдерживаемый ответ сервиса Распределенного реестра ФНС России (%1).'"), Формат(
|
||||||
Формат(КодСостояния, "ЧДЦ=; ЧН=; ЧГ="));
|
КодСостояния, "ЧДЦ=; ЧН=; ЧГ="));
|
||||||
ИначеЕсли КодСостояния = 400 Тогда
|
ИначеЕсли КодСостояния >= 400 И КодСостояния < 500 Тогда
|
||||||
Возврат НСтр("ru = 'Неверный формат запроса'");
|
|
||||||
ИначеЕсли КодСостояния = 401 Тогда
|
|
||||||
Возврат НСтр("ru = 'Требуется аутентификация'");
|
|
||||||
ИначеЕсли КодСостояния = 402 Тогда
|
|
||||||
Возврат НСтр("ru = 'Требуется оплата'");
|
|
||||||
ИначеЕсли КодСостояния = 403 Тогда
|
|
||||||
Возврат НСтр("ru = 'Доступ к ресурсу запрещен'");
|
|
||||||
ИначеЕсли КодСостояния = 404 Тогда
|
|
||||||
Возврат НСтр("ru = 'Запрошенная страница не найдена'");
|
|
||||||
ИначеЕсли КодСостояния = 405 Тогда
|
|
||||||
Возврат НСтр("ru = 'Используемый метод запрещен'");
|
|
||||||
ИначеЕсли КодСостояния = 406 Тогда
|
|
||||||
Возврат НСтр("ru = 'Отсутствуют подходящие ответы'");
|
|
||||||
ИначеЕсли КодСостояния = 407 Тогда
|
|
||||||
Возврат НСтр("ru = 'Требуется аутентификация прокси'");
|
|
||||||
ИначеЕсли КодСостояния = 408 Тогда
|
|
||||||
Возврат НСтр("ru = 'Лимит времени сервера при ожидании запроса исчерпан'");
|
|
||||||
ИначеЕсли КодСостояния = 409 Тогда
|
|
||||||
Возврат НСтр("ru = 'Конфликт с текущим состоянием ресурса, требуется больше информации'");
|
|
||||||
ИначеЕсли КодСостояния = 410 Тогда
|
|
||||||
Возврат НСтр("ru = 'Ресурс более недоступен'");
|
|
||||||
ИначеЕсли КодСостояния = 411 Тогда
|
|
||||||
Возврат НСтр("ru = 'Требуется задание длины содержимого'");
|
|
||||||
ИначеЕсли КодСостояния = 412 Тогда
|
|
||||||
Возврат НСтр("ru = 'Ошибочные условия заголовочных полей'");
|
|
||||||
ИначеЕсли КодСостояния = 413 Тогда
|
|
||||||
Возврат НСтр("ru = 'Слишком большая длина запроса'");
|
|
||||||
ИначеЕсли КодСостояния = 414 Тогда
|
|
||||||
Возврат НСтр("ru = 'Запрошенный идентификатор слишком велик'");
|
|
||||||
ИначеЕсли КодСостояния = 415 Тогда
|
|
||||||
Возврат НСтр("ru = 'Неподдерживаемый тип данных запроса'");
|
|
||||||
ИначеЕсли КодСостояния = 416 Тогда
|
|
||||||
Возврат НСтр("ru = 'Запрошенный промежуток невыполним'");
|
|
||||||
ИначеЕсли КодСостояния = 417 Тогда
|
|
||||||
Возврат НСтр("ru = 'Несоответствие ожиданиям'");
|
|
||||||
ИначеЕсли КодСостояния = 422 Тогда
|
|
||||||
Возврат НСтр("ru = 'Необрабатываемый объект'");
|
|
||||||
ИначеЕсли КодСостояния = 423 Тогда
|
|
||||||
Возврат НСтр("ru = 'Заблокировано'");
|
|
||||||
ИначеЕсли КодСостояния = 424 Тогда
|
|
||||||
Возврат НСтр("ru = 'Сбой взаимосвязанного вызова'");
|
|
||||||
ИначеЕсли КодСостояния = 449 Тогда
|
|
||||||
Возврат НСтр("ru = 'Возврат запроса после необходимого действия'");
|
|
||||||
ИначеЕсли КодСостояния < 500 Тогда
|
|
||||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Ошибка клиента с кодом %1'"),
|
НСтр("ru = 'Сервис Распределенного реестра ФНС России не смог выполнить запрос (%1).'"), Формат(
|
||||||
Формат(КодСостояния, "ЧДЦ=; ЧН=; ЧГ="));
|
КодСостояния, "ЧДЦ=; ЧН=; ЧГ="));
|
||||||
ИначеЕсли КодСостояния = 500 Тогда
|
ИначеЕсли КодСостояния >= 300 Тогда
|
||||||
Возврат НСтр("ru = 'Внутренняя ошибка сервера'");
|
|
||||||
ИначеЕсли КодСостояния = 501 Тогда
|
|
||||||
Возврат НСтр("ru = 'Процесс для данного запроса не поддерживается сервером'");
|
|
||||||
ИначеЕсли КодСостояния = 502 Тогда
|
|
||||||
Возврат НСтр("ru = 'Gateway-сервер получил ошибочный ответ'");
|
|
||||||
ИначеЕсли КодСостояния = 503 Тогда
|
|
||||||
Возврат НСтр("ru = 'Сервер распределенного реестра временно недоступен'");
|
|
||||||
ИначеЕсли КодСостояния = 504 Тогда
|
|
||||||
Возврат НСтр("ru = 'Превышено время ожидание ответа на запрос Gateway-сервера'");
|
|
||||||
ИначеЕсли КодСостояния = 505 Тогда
|
|
||||||
Возврат НСтр("ru = 'Версия HTTP не поддерживается сервером'");
|
|
||||||
ИначеЕсли КодСостояния = 506 Тогда
|
|
||||||
Возврат НСтр("ru = 'Вариантный тип содержит также вариант'");
|
|
||||||
ИначеЕсли КодСостояния = 507 Тогда
|
|
||||||
Возврат НСтр("ru = 'Переполнение хранилища'");
|
|
||||||
ИначеЕсли КодСостояния = 510 Тогда
|
|
||||||
Возврат НСтр("ru = 'Отсутствует поддержка расширений'");
|
|
||||||
ИначеЕсли КодСостояния < 600 Тогда
|
|
||||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Ошибка сервера с кодом %1'"),
|
НСтр(
|
||||||
Формат(КодСостояния, "ЧДЦ=; ЧН=; ЧГ="));
|
"ru = 'Сервис Распределенного реестра ФНС России перегружен, недоступен или находится на обслуживании (%1).'"),
|
||||||
ИначеЕсли КодСостояния = 999 Тогда
|
Формат(
|
||||||
Возврат НСтр("ru = 'Разрушительный сбой сервера'");
|
КодСостояния, "ЧДЦ=; ЧН=; ЧГ="));
|
||||||
Иначе
|
Иначе
|
||||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Ошибка с кодом %1'"),
|
НСтр("ru = 'Не удалось получить ответ сервиса Распределенного реестра ФНС России (%1).'"), Формат(
|
||||||
Формат(КодСостояния, "ЧДЦ=; ЧН=; ЧГ="));
|
КодСостояния, "ЧДЦ=; ЧН=; ЧГ="));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Устанавливает соединение с сервером Интернета по протоколу http(s).
|
// Устанавливает соединение с сервером Интернета по протоколу http(s).
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// URL - Строка - url сервера в формате [Протокол://]<Сервер>/.
|
// URL - Строка - url сервера в формате [Протокол://]<Сервер>/.
|
||||||
@@ -2808,20 +2802,8 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Процедура СброситьДанныеАутентификацииНаПорталеПоддержки()
|
|
||||||
|
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
|
||||||
|
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
|
|
||||||
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
|
|
||||||
Если МодульИнтернетПоддержкаПользователей.ДоступноПодключениеИнтернетПоддержки() Тогда
|
|
||||||
МодульИнтернетПоддержкаПользователей.СохранитьДанныеАутентификации(Неопределено);
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
Процедура ДобавитьФайлДляРасследования(Файлы, ДанныеФайла, ТипФайла, Расширение = "txt")
|
Процедура ДобавитьФайлДляРасследования(Файлы, ДанныеФайла, ТипФайла, Расширение = "txt")
|
||||||
|
|
||||||
СведенияОФайле = Новый Структура;
|
СведенияОФайле = Новый Структура;
|
||||||
Если ТипЗнч(ДанныеФайла) = Тип("Строка") Тогда
|
Если ТипЗнч(ДанныеФайла) = Тип("Строка") Тогда
|
||||||
СведенияОФайле.Вставить("Данные", Новый ДвоичныеДанные(ДанныеФайла));
|
СведенияОФайле.Вставить("Данные", Новый ДвоичныеДанные(ДанныеФайла));
|
||||||
@@ -2833,9 +2815,11 @@
|
|||||||
СведенияОФайле.Вставить("Имя", ТипФайла + "." + Расширение);
|
СведенияОФайле.Вставить("Имя", ТипФайла + "." + Расширение);
|
||||||
СведенияОФайле.Вставить("ТипФайла", ТипФайла);
|
СведенияОФайле.Вставить("ТипФайла", ТипФайла);
|
||||||
Файлы.Добавить(СведенияОФайле);
|
Файлы.Добавить(СведенияОФайле);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ПолучитьИдентификаторЗапроса(ЗапросHTTP)
|
Функция ПолучитьИдентификаторЗапроса(ЗапросHTTP)
|
||||||
|
|
||||||
Результат = "";
|
Результат = "";
|
||||||
Словарь = СтрРазделить("poar-webapp/integration/poa/generate-number/transactions/status/poaopen/public/poazip/zip/number/token", "/", Ложь);
|
Словарь = СтрРазделить("poar-webapp/integration/poa/generate-number/transactions/status/poaopen/public/poazip/zip/number/token", "/", Ложь);
|
||||||
Синонимы = Новый Соответствие;
|
Синонимы = Новый Соответствие;
|
||||||
@@ -2853,9 +2837,11 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
Синоним = Синонимы[Результат];
|
Синоним = Синонимы[Результат];
|
||||||
Возврат ?(Синоним = Неопределено, Результат, Синоним);
|
Возврат ?(Синоним = Неопределено, Результат, Синоним);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьИдентификаторОтвета(ОтветHTTP, СтруктураОтвета)
|
Функция ПолучитьИдентификаторОтвета(ОтветHTTP, СтруктураОтвета)
|
||||||
|
|
||||||
Если СтруктураОтвета = Неопределено Или ОтветHTTP.КодСостояния = 500 Тогда
|
Если СтруктураОтвета = Неопределено Или ОтветHTTP.КодСостояния = 500 Тогда
|
||||||
Возврат Строка(ОтветHTTP.КодСостояния);
|
Возврат Строка(ОтветHTTP.КодСостояния);
|
||||||
ИначеЕсли СтруктураОтвета.Свойство("error") Тогда
|
ИначеЕсли СтруктураОтвета.Свойство("error") Тогда
|
||||||
@@ -2869,6 +2855,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат КодОшибки;
|
Возврат КодОшибки;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПараметрыФайловДляРасследования()
|
Функция ПараметрыФайловДляРасследования()
|
||||||
@@ -3311,11 +3298,6 @@
|
|||||||
Результат.ТекстОтвета = ОтветHTTP.ПолучитьТелоКакСтроку();
|
Результат.ТекстОтвета = ОтветHTTP.ПолучитьТелоКакСтроку();
|
||||||
Результат.ТокенДоступа = ?(ТипЗнч(СтруктураОтвета) = Тип("Структура") И СтруктураОтвета.Свойство("access_token"),
|
Результат.ТокенДоступа = ?(ТипЗнч(СтруктураОтвета) = Тип("Структура") И СтруктураОтвета.Свойство("access_token"),
|
||||||
СтруктураОтвета.access_token, "");
|
СтруктураОтвета.access_token, "");
|
||||||
|
|
||||||
КодСостоянияПриНеверномЛогинеИлиПароле = 403;
|
|
||||||
Если ОтветHTTP.КодСостояния = КодСостоянияПриНеверномЛогинеИлиПароле И СтруктураОтвета.Свойство("message") Тогда
|
|
||||||
СброситьДанныеАутентификацииНаПорталеПоддержки();
|
|
||||||
КонецЕсли;
|
|
||||||
Исключение
|
Исключение
|
||||||
ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
ПредставлениеОшибки = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
ПараметрыФайловДляРасследования = ПараметрыФайловДляРасследования();
|
ПараметрыФайловДляРасследования = ПараметрыФайловДляРасследования();
|
||||||
@@ -4119,12 +4101,11 @@
|
|||||||
Результат.Вставить("Ошибка", "");
|
Результат.Вставить("Ошибка", "");
|
||||||
|
|
||||||
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
|
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
|
||||||
|
|
||||||
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
|
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
|
||||||
|
|
||||||
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
|
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
|
||||||
Результат.Ошибка = РезультатАвторизации.Ошибка;
|
Результат.Ошибка = РезультатАвторизации.Ошибка;
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Результат.Ошибка <> Неопределено Тогда
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -61,21 +61,22 @@
|
|||||||
// Реквизиты организации.
|
// Реквизиты организации.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// СторонаМЧД - ПеречислениеСсылка.ТипыУчастниковМЧД, Неопределено
|
// Назначение - см. НазначениеДоверенностиДляПроверкиРеквизитов
|
||||||
// ДляЗаполнения - Булево - если Истина, полный список реквизитов
|
// ДляЗаполнения - Булево - если Истина, полный список реквизитов
|
||||||
// ВидОрганизации - Неопределено, Строка - "ИндивидуальныйПредприниматель", "ИностраннаяОрганизация", "Филиал"
|
// ВидОрганизации - Неопределено, Строка - "ИндивидуальныйПредприниматель", "ИностраннаяОрганизация", "Филиал"
|
||||||
// Назначение - см. НазначениеДоверенности
|
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// СписокЗначений
|
// СписокЗначений
|
||||||
//
|
//
|
||||||
Функция РеквизитыОрганизацииСписок(СторонаМЧД, ДляЗаполнения = Истина, ВидОрганизации = Неопределено, Назначение = Неопределено) Экспорт
|
Функция РеквизитыОрганизацииСписок(Назначение = Неопределено, ДляЗаполнения = Истина, ВидОрганизации = Неопределено) Экспорт
|
||||||
|
|
||||||
Если Назначение = Неопределено Тогда
|
Если Назначение = Неопределено Тогда
|
||||||
Назначение = НазначениеДоверенностиДляПроверкиРеквизитов();
|
Назначение = НазначениеДоверенностиДляПроверкиРеквизитов();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ЭтоДоверитель = Назначение.ТипУчастника = ПредопределенноеЗначение("Перечисление.ТипыУчастниковМЧД.Доверитель");
|
ЭтоДоверитель = Назначение.ТипУчастника = ПредопределенноеЗначение("Перечисление.ТипыУчастниковМЧД.Доверитель");
|
||||||
|
|
||||||
|
// Пометка списка Истина означает, что поле необязательное
|
||||||
|
|
||||||
Реквизиты = Новый СписокЗначений;
|
Реквизиты = Новый СписокЗначений;
|
||||||
Реквизиты.Добавить("ЭтоИндивидуальныйПредприниматель", НСтр("ru = 'Индивидуальный предприниматель'"), Истина);
|
Реквизиты.Добавить("ЭтоИндивидуальныйПредприниматель", НСтр("ru = 'Индивидуальный предприниматель'"), Истина);
|
||||||
Реквизиты.Добавить("ЭтоФизическоеЛицо", НСтр("ru = 'Физическое лицо'"), Истина);
|
Реквизиты.Добавить("ЭтоФизическоеЛицо", НСтр("ru = 'Физическое лицо'"), Истина);
|
||||||
@@ -84,15 +85,14 @@
|
|||||||
Реквизиты.Добавить("ЭтоФилиал", НСтр("ru = 'Филиал'"), Истина);
|
Реквизиты.Добавить("ЭтоФилиал", НСтр("ru = 'Филиал'"), Истина);
|
||||||
Реквизиты.Добавить("НаименованиеПолное", НСтр("ru = 'Наименование (полное)'"));
|
Реквизиты.Добавить("НаименованиеПолное", НСтр("ru = 'Наименование (полное)'"));
|
||||||
Реквизиты.Добавить("НаименованиеСокращенное", НСтр("ru = 'Наименование (сокращенное)'"), Истина);
|
Реквизиты.Добавить("НаименованиеСокращенное", НСтр("ru = 'Наименование (сокращенное)'"), Истина);
|
||||||
Реквизиты.Добавить("ИНН", НСтр("ru = 'ИНН'"));
|
Реквизиты.Добавить("ИНН", НСтр("ru = 'ИНН'"), ВидОрганизации = "ИностраннаяОрганизация" И ЭтоДоверитель);
|
||||||
|
|
||||||
Реквизиты.Добавить("ЭлектроннаяПочта", НСтр("ru = 'Электронная почта'"), Истина);
|
Реквизиты.Добавить("ЭлектроннаяПочта", НСтр("ru = 'Электронная почта'"), Истина);
|
||||||
Реквизиты.Добавить("ЭлектроннаяПочтаЗначение", НСтр("ru = 'Электронная почта'"), Истина);
|
Реквизиты.Добавить("ЭлектроннаяПочтаЗначение", НСтр("ru = 'Электронная почта'"), Истина);
|
||||||
Реквизиты.Добавить("Телефон", НСтр("ru = 'Телефон'"), Истина);
|
Реквизиты.Добавить("Телефон", НСтр("ru = 'Телефон'"), Истина);
|
||||||
Реквизиты.Добавить("ТелефонЗначение", НСтр("ru = 'Телефон'"), Истина);
|
Реквизиты.Добавить("ТелефонЗначение", НСтр("ru = 'Телефон'"), Истина);
|
||||||
|
|
||||||
Если ДляЗаполнения Или ВидОрганизации <> "ИндивидуальныйПредприниматель" Тогда
|
Если ДляЗаполнения Или ВидОрганизации <> "ИндивидуальныйПредприниматель" Тогда
|
||||||
Реквизиты.Добавить("КПП", НСтр("ru = 'КПП'"));
|
Реквизиты.Добавить("КПП", НСтр("ru = 'КПП'"), ВидОрганизации = "ИностраннаяОрганизация" И ЭтоДоверитель);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДляЗаполнения Или ВидОрганизации <> "ИностраннаяОрганизация" Тогда
|
Если ДляЗаполнения Или ВидОрганизации <> "ИностраннаяОрганизация" Тогда
|
||||||
@@ -100,15 +100,15 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДляЗаполнения Или ВидОрганизации = "ИностраннаяОрганизация" Тогда
|
Если ДляЗаполнения Или ВидОрганизации = "ИностраннаяОрганизация" Тогда
|
||||||
Реквизиты.Добавить("НомерЗаписиОбАккредитации", НСтр("ru = 'Номер записи об аккредитации'"));
|
Реквизиты.Добавить("НомерЗаписиОбАккредитации", НСтр("ru = 'Номер записи об аккредитации'"), ЭтоДоверитель);
|
||||||
Реквизиты.Добавить("СтранаРегистрации", НСтр("ru = 'Страна регистрации (инкорпорации)'"), Не ЭтоДоверитель);
|
Реквизиты.Добавить("СтранаРегистрации", НСтр("ru = 'Страна регистрации (инкорпорации)'"), Не ЭтоДоверитель);
|
||||||
Реквизиты.Добавить("СтранаРегистрацииКод", НСтр("ru = 'Код страны регистрации (инкорпорации)'"), Не ЭтоДоверитель);
|
Реквизиты.Добавить("СтранаРегистрацииКод", НСтр("ru = 'Код страны регистрации (инкорпорации)'"), Не ЭтоДоверитель);
|
||||||
Реквизиты.Добавить("РегистрационныйНомерВСтранеРегистрации", НСтр("ru = 'Регистрационный номер в стране регистрации (инкорпорации)'"), Не ЭтоДоверитель);
|
Реквизиты.Добавить("РегистрационныйНомерВСтранеРегистрации", НСтр("ru = 'Регистрационный номер в стране регистрации (инкорпорации)'"), Не ЭтоДоверитель);
|
||||||
Реквизиты.Добавить("НаименованиеРегистрирующегоОргана", НСтр("ru = 'Наименование регистрирующего органа'"), Истина);
|
Реквизиты.Добавить("НаименованиеРегистрирующегоОргана", НСтр("ru = 'Наименование регистрирующего органа'"), Истина);
|
||||||
Реквизиты.Добавить("КодНалогоплательщикаВСтранеРегистрации", НСтр("ru = 'Код налогоплательщика в стране регистрации (инкорпорации) или аналог'"));
|
Реквизиты.Добавить("КодНалогоплательщикаВСтранеРегистрации", НСтр("ru = 'Код налогоплательщика в стране регистрации (инкорпорации) или аналог'"), Истина);
|
||||||
Реквизиты.Добавить("ФактическийАдрес", НСтр("ru = 'Фактический адрес местонахождения'"));
|
Реквизиты.Добавить("ФактическийАдрес", НСтр("ru = 'Фактический адрес местонахождения'"));
|
||||||
Реквизиты.Добавить("ФактическийАдресЗначение", НСтр("ru = 'Фактический адрес местонахождения'"), Истина);
|
Реквизиты.Добавить("ФактическийАдресЗначение", НСтр("ru = 'Фактический адрес местонахождения'"), Истина);
|
||||||
Реквизиты.Добавить("ЮридическийАдресВСтранеРегистрации", НСтр("ru = 'Адрес юридического лица на территории государства, в котором оно Зарегистрирована'"), Не ЭтоДоверитель);
|
Реквизиты.Добавить("ЮридическийАдресВСтранеРегистрации", НСтр("ru = 'Адрес юридического лица на территории государства, в котором оно зарегистрировано'"), Не ЭтоДоверитель);
|
||||||
Реквизиты.Добавить("ЮридическийАдресВСтранеРегистрацииЗначение", НСтр("ru = 'Адрес юридического лица на территории государства'"), Истина);
|
Реквизиты.Добавить("ЮридическийАдресВСтранеРегистрацииЗначение", НСтр("ru = 'Адрес юридического лица на территории государства'"), Истина);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -158,9 +158,9 @@
|
|||||||
// Реквизиты физического лица.
|
// Реквизиты физического лица.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
|
// Назначение - см. НазначениеДоверенностиДляПроверкиРеквизитов
|
||||||
// ДляЗаполнения - Булево - если Истина, полный список реквизитов
|
// ДляЗаполнения - Булево - если Истина, полный список реквизитов
|
||||||
// ВидФизическогоЛица - Неопределено, Строка - "ИндивидуальныйПредприниматель", "ДолжностноеЛицо", "ФизическоеЛицо"
|
// ВидФизическогоЛица - Неопределено, Строка - "ИндивидуальныйПредприниматель", "ДолжностноеЛицо", "ФизическоеЛицо"
|
||||||
// Назначение - см. НазначениеДоверенности
|
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// СписокЗначений
|
// СписокЗначений
|
||||||
|
|||||||
@@ -214,45 +214,48 @@
|
|||||||
|
|
||||||
Представления = ТекущийОбъект.Представления; // ТабличнаяЧасть
|
Представления = ТекущийОбъект.Представления; // ТабличнаяЧасть
|
||||||
Отбор = Новый Структура();
|
Отбор = Новый Структура();
|
||||||
Отбор.Вставить("КодЯзыка", ТекущийЯзык().КодЯзыка);
|
Если ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
|
||||||
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
|
Отбор.Вставить("КодЯзыка", ТекущийЯзык().КодЯзыка);
|
||||||
|
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
|
||||||
Если НайденныеСтроки.Количество() > 0 Тогда
|
|
||||||
Представление = НайденныеСтроки[0];
|
|
||||||
Иначе
|
|
||||||
Представление = Представления.Добавить();
|
|
||||||
Представление.КодЯзыка = ТекущийЯзык().КодЯзыка;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Для каждого ИмяРеквизита Из Реквизиты Цикл
|
|
||||||
|
|
||||||
Если ИменаМультиязычныхРеквизитовВШапке[ИмяРеквизита] <> Неопределено Тогда
|
|
||||||
|
|
||||||
ЗначениеНаТекущемЯзыке = ТекущийОбъект[ИмяРеквизита + СуффиксТекущегоЯзыка];
|
|
||||||
Если ПустаяСтрока(ЗначениеНаТекущемЯзыке) Тогда
|
|
||||||
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
|
|
||||||
Иначе
|
|
||||||
Представление[ИмяРеквизита] = ЗначениеНаТекущемЯзыке;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
|
Если НайденныеСтроки.Количество() > 0 Тогда
|
||||||
|
Представление = НайденныеСтроки[0];
|
||||||
Иначе
|
Иначе
|
||||||
|
Представление = Представления.Добавить();
|
||||||
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
|
Представление.КодЯзыка = ТекущийЯзык().КодЯзыка;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЦикла;
|
Для каждого ИмяРеквизита Из Реквизиты Цикл
|
||||||
|
|
||||||
|
Если ИменаМультиязычныхРеквизитовВШапке[ИмяРеквизита] <> Неопределено Тогда
|
||||||
|
|
||||||
|
ЗначениеНаТекущемЯзыке = ТекущийОбъект[ИмяРеквизита + СуффиксТекущегоЯзыка];
|
||||||
|
Если ПустаяСтрока(ЗначениеНаТекущемЯзыке) Тогда
|
||||||
|
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
|
||||||
|
Иначе
|
||||||
|
Представление[ИмяРеквизита] = ЗначениеНаТекущемЯзыке;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ЗаполнитьМультиязычныеРеквизитыТабличнойЧастиПредставления(ТекущийОбъект, Реквизиты);
|
ЗаполнитьМультиязычныеРеквизитыТабличнойЧастиПредставления(ТекущийОбъект, Реквизиты);
|
||||||
|
|
||||||
Отбор.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
|
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
|
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
|
||||||
Если НайденныеСтроки.Количество() > 0 Тогда
|
Если НайденныеСтроки.Количество() > 0 Тогда
|
||||||
Для каждого ИмяРеквизита Из Реквизиты Цикл
|
Для каждого ИмяРеквизита Из Реквизиты Цикл
|
||||||
Если ИменаМультиязычныхРеквизитовВШапке[ИмяРеквизита] = Неопределено
|
Если ИменаМультиязычныхРеквизитовВШапке[ИмяРеквизита] = Неопределено
|
||||||
Или (ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка()
|
Или (ТекущийЯзык().КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка()
|
||||||
И ПустаяСтрока(СуффиксТекущегоЯзыка)) Тогда
|
И ПустаяСтрока(СуффиксТекущегоЯзыка))
|
||||||
ТекущийОбъект[ИмяРеквизита] = НайденныеСтроки[0][ИмяРеквизита];
|
И ТекущийОбъект[ИмяРеквизита] <> Null Тогда
|
||||||
|
ТекущийОбъект[ИмяРеквизита] = НайденныеСтроки[0][ИмяРеквизита];
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
Представления.Удалить(НайденныеСтроки[0]);
|
Представления.Удалить(НайденныеСтроки[0]);
|
||||||
|
|||||||
@@ -79,16 +79,18 @@
|
|||||||
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
|
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
|
||||||
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
|
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
|
||||||
|
|
||||||
Команда = Команды.Добавить();
|
Если ПравоДоступа("Редактирование", Метаданные.РегистрыСведений.НапоминанияПользователя) Тогда
|
||||||
Команда.Вид = "Органайзер";
|
Команда = Команды.Добавить();
|
||||||
Команда.Представление = НСтр("ru = 'Напомнить...'");
|
Команда.Вид = "Органайзер";
|
||||||
Команда.ФункциональныеОпции = "ИспользоватьНапоминанияПользователя";
|
Команда.Представление = НСтр("ru = 'Напомнить...'");
|
||||||
Команда.Картинка = БиблиотекаКартинок.Напоминание;
|
Команда.ФункциональныеОпции = "ИспользоватьНапоминанияПользователя";
|
||||||
Команда.ТипПараметра = Метаданные.ОпределяемыеТипы.ПредметНапоминания.Тип;
|
Команда.Картинка = БиблиотекаКартинок.Напоминание;
|
||||||
Команда.РежимЗаписи = "НеЗаписывать";
|
Команда.ТипПараметра = Метаданные.ОпределяемыеТипы.ПредметНапоминания.Тип;
|
||||||
Команда.Порядок = 50;
|
Команда.РежимЗаписи = "НеЗаписывать";
|
||||||
Команда.Обработчик = "НапоминанияПользователяСлужебныйКлиент.Напомнить";
|
Команда.Порядок = 50;
|
||||||
Команда.МножественныйВыбор = Ложь;
|
Команда.Обработчик = "НапоминанияПользователяСлужебныйКлиент.Напомнить";
|
||||||
|
Команда.МножественныйВыбор = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
|||||||
@@ -4400,21 +4400,6 @@
|
|||||||
Обработчик.РежимВыполнения = "Оперативно";
|
Обработчик.РежимВыполнения = "Оперативно";
|
||||||
Обработчик.ОбщиеДанные = Истина;
|
Обработчик.ОбщиеДанные = Истина;
|
||||||
|
|
||||||
Обработчик = Обработчики.Добавить();
|
|
||||||
Обработчик.Версия = "3.0.1.91";
|
|
||||||
Обработчик.Комментарий =
|
|
||||||
НСтр("ru = 'Перенос настроек подключения обменов данными в новый регистр ""Настройки транспорта обмена данными"".'");
|
|
||||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("8d5f1092-f569-4c03-aca9-65625809b853");
|
|
||||||
Обработчик.Процедура = "РегистрыСведений.НастройкиТранспортаОбменаДанными.ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
|
||||||
Обработчик.РежимВыполнения = "Отложенно";
|
|
||||||
Обработчик.ЧитаемыеОбъекты = "РегистрСведений.УдалитьНастройкиТранспортаОбмена";
|
|
||||||
Обработчик.ИзменяемыеОбъекты = "РегистрСведений.УдалитьНастройкиТранспортаОбмена,РегистрСведений.НастройкиТранспортаОбменаДанными";
|
|
||||||
Обработчик.ОчередьОтложеннойОбработки = 1;
|
|
||||||
Обработчик.ЗапускатьИВПодчиненномУзлеРИБСФильтрами = Истина;
|
|
||||||
Обработчик.ПроцедураЗаполненияДанныхОбновления = "РегистрыСведений.НастройкиТранспортаОбменаДанными.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
|
|
||||||
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
|
|
||||||
Обработчик.БлокируемыеОбъекты = "РегистрСведений.УдалитьНастройкиТранспортаОбмена,РегистрСведений.НастройкиТранспортаОбменаДанными";
|
|
||||||
|
|
||||||
Обработчик = Обработчики.Добавить();
|
Обработчик = Обработчики.Добавить();
|
||||||
Обработчик.Версия = "3.0.1.91";
|
Обработчик.Версия = "3.0.1.91";
|
||||||
Обработчик.Комментарий =
|
Обработчик.Комментарий =
|
||||||
|
|||||||
@@ -222,7 +222,9 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Форма.ТолькоПросмотр = Истина;
|
Форма.ТолькоПросмотр = Истина;
|
||||||
Форма.Команды.Добавить("ОбновлениеВерсииИБ_ОбъектЗаблокирован");
|
Если Форма.Команды.Найти("ОбновлениеВерсииИБ_ОбъектЗаблокирован") = Неопределено Тогда
|
||||||
|
Форма.Команды.Добавить("ОбновлениеВерсииИБ_ОбъектЗаблокирован");
|
||||||
|
КонецЕсли;
|
||||||
ОбщегоНазначения.СообщитьПользователю(Результат.ТекстИсключения);
|
ОбщегоНазначения.СообщитьПользователю(Результат.ТекстИсключения);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||||
|
|
||||||
Описание.Имя = "СтандартныеПодсистемы";
|
Описание.Имя = "СтандартныеПодсистемы";
|
||||||
Описание.Версия = "3.1.10.174";
|
Описание.Версия = "3.1.10.206";
|
||||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||||
|
|||||||
@@ -945,7 +945,23 @@
|
|||||||
Подменю = СведенияОПодменю.Подменю; // ГруппаФормы
|
Подменю = СведенияОПодменю.Подменю; // ГруппаФормы
|
||||||
|
|
||||||
Если Не ЭтоКоманднаяПанель Тогда
|
Если Не ЭтоКоманднаяПанель Тогда
|
||||||
Если Не (СведенияОПодменю.КоличествоКоманд = 1 И КомандаФормы <> Неопределено) Тогда
|
Если СведенияОПодменю.КоличествоКоманд = 1 И КомандаФормы <> Неопределено Тогда
|
||||||
|
// Превращение подменю в кнопку когда выведена 1 команда с коротким заголовком.
|
||||||
|
Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) И Подменю.Вид = ВидГруппыФормы.Подменю Тогда
|
||||||
|
КомандаФормы.Картинка = Подменю.Картинка;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(КомандаФормы.Картинка) Тогда
|
||||||
|
КомандаФормы.Картинка = СведенияОПодменю.КартинкаПодменю;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если СтрДлина(КомандаФормы.Заголовок) <= 35 И Подменю.Отображение <> ОтображениеКнопки.Картинка Тогда
|
||||||
|
КомандаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст;
|
||||||
|
Иначе
|
||||||
|
КомандаФормы.Отображение = ОтображениеКнопки.Картинка;
|
||||||
|
КонецЕсли;
|
||||||
|
КомандаФормы.Подсказка = КомандаФормы.Заголовок;
|
||||||
|
Иначе
|
||||||
// Добавление кнопок-заглушек, которые показываются когда в подменю скрыты все команды.
|
// Добавление кнопок-заглушек, которые показываются когда в подменю скрыты все команды.
|
||||||
ИмяКомандыЗаглушки = Подменю.Имя + "Заглушка";
|
ИмяКомандыЗаглушки = Подменю.Имя + "Заглушка";
|
||||||
Если Элементы.Найти(ИмяКомандыЗаглушки) = Неопределено Тогда
|
Если Элементы.Найти(ИмяКомандыЗаглушки) = Неопределено Тогда
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Copyright (c) 2024, ООО 1С-Софт
|
||||||
|
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||||
|
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||||
|
// Текст лицензии доступен по ссылке:
|
||||||
|
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
Процедура ПродолжитьВыполнениеПодключаемойКомандыПослеЗаписиВФорме() Экспорт
|
||||||
|
|
||||||
|
ПодключаемыеКомандыКлиент.ПослеЗаписиПродолжение();
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e5687b69-4d9a-4d21-a506-294941f18056">
|
||||||
|
<name>ПодключаемыеКомандыГлобальный</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Подключаемые команды глобальный</value>
|
||||||
|
</synonym>
|
||||||
|
<global>true</global>
|
||||||
|
<clientManagedApplication>true</clientManagedApplication>
|
||||||
|
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||||
|
</mdclass:CommonModule>
|
||||||
@@ -93,8 +93,12 @@
|
|||||||
Контекст = ПараметрыЗаписи.ПараметрыВыполненияПодключаемойКоманды;
|
Контекст = ПараметрыЗаписи.ПараметрыВыполненияПодключаемойКоманды;
|
||||||
Контекст.Вставить("Форма", Форма);
|
Контекст.Вставить("Форма", Форма);
|
||||||
Контекст.Вставить("Источник", Объект);
|
Контекст.Вставить("Источник", Объект);
|
||||||
ПродолжитьВыполнениеКоманды(Контекст);
|
|
||||||
Контекст.Форма.ПараметрыПодключаемыхКоманд.Удалить("КомандаВыполняется")
|
Контекст.Форма.ПараметрыПодключаемыхКоманд.Удалить("КомандаВыполняется");
|
||||||
|
|
||||||
|
ИмяПараметра = "СтандартныеПодсистемы.ПодключаемыеКоманды.ПараметрыВыполненияПодключаемойКоманды";
|
||||||
|
ПараметрыПриложения[ИмяПараметра] = Контекст;
|
||||||
|
ПодключитьОбработчикОжидания("ПродолжитьВыполнениеПодключаемойКомандыПослеЗаписиВФорме", 0.1, Истина);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -477,4 +481,16 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ПослеЗаписиПродолжение() Экспорт
|
||||||
|
|
||||||
|
ИмяПараметра = "СтандартныеПодсистемы.ПодключаемыеКоманды.ПараметрыВыполненияПодключаемойКоманды";
|
||||||
|
Контекст = ПараметрыПриложения[ИмяПараметра];
|
||||||
|
ПараметрыПриложения[ИмяПараметра] = Неопределено;
|
||||||
|
|
||||||
|
Если Контекст <> Неопределено Тогда
|
||||||
|
ПродолжитьВыполнениеКоманды(Контекст);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -1378,7 +1378,7 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка
|
// Строка
|
||||||
//
|
//
|
||||||
Функция ИмяСобытияИзменениеИзменениеУчастниковГруппПользователейДляЖурналаРегистрации() Экспорт
|
Функция ИмяСобытияИзменениеУчастниковГруппПользователейДляЖурналаРегистрации() Экспорт
|
||||||
|
|
||||||
Возврат НСтр("ru = 'Пользователи.Изменение участников групп пользователей'",
|
Возврат НСтр("ru = 'Пользователи.Изменение участников групп пользователей'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка());
|
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
@@ -1388,13 +1388,60 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка
|
// Строка
|
||||||
//
|
//
|
||||||
Функция ИмяСобытияИзменениеИзменениеУчастниковГруппВнешнихПользователейДляЖурналаРегистрации() Экспорт
|
Функция ИмяСобытияИзменениеУчастниковГруппВнешнихПользователейДляЖурналаРегистрации() Экспорт
|
||||||
|
|
||||||
Возврат НСтр("ru = 'Пользователи.Изменение участников групп внешних пользователей'",
|
Возврат НСтр("ru = 'Пользователи.Изменение участников групп внешних пользователей'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка());
|
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Для записи в журнал регистрации.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Ссылка - Null - возвращается Null.
|
||||||
|
// - Неопределено - возвращается Неопределено.
|
||||||
|
// - ЛюбаяСсылка - возвращается ЗначениеВСтрокуВнутр(Ссылка).
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка, Null, Неопределено
|
||||||
|
//
|
||||||
|
Функция СериализованнаяСсылка(Ссылка) Экспорт
|
||||||
|
|
||||||
|
Если Ссылка = Null Или Ссылка = Неопределено Тогда
|
||||||
|
Возврат Ссылка;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ЗначениеВСтрокуВнутр(Ссылка);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Для записи в журнал регистрации.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Ссылка - Null - возвращается "".
|
||||||
|
// - Неопределено - возвращается "".
|
||||||
|
// - ЛюбаяСсылка - возвращается Строка(Ссылка).
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка
|
||||||
|
//
|
||||||
|
Функция ПредставлениеСсылки(Ссылка) Экспорт
|
||||||
|
|
||||||
|
Если Ссылка = Null Или Ссылка = Неопределено Тогда
|
||||||
|
Возврат "";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Результат = Строка(Ссылка);
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(Результат) Тогда
|
||||||
|
Результат = "<" + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Пустая ссылка %1'", ОбщегоНазначения.КодОсновногоЯзыка()), ТипЗнч(Ссылка)) + ">";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Универсальные процедуры и функции.
|
// Универсальные процедуры и функции.
|
||||||
|
|
||||||
@@ -4937,14 +4984,8 @@
|
|||||||
// группами пользователей для которых есть изменения.
|
// группами пользователей для которых есть изменения.
|
||||||
// * Значение - Неопределено
|
// * Значение - Неопределено
|
||||||
//
|
//
|
||||||
// ДляРегистрации - Неопределено - регистрация не требуется.
|
// ДляРегистрации - см. НовоеИзменениеСоставовГруппДляРегистрации
|
||||||
// - ТаблицаЗначений:
|
// - Неопределено - регистрация не требуется.
|
||||||
// * ГруппаПользователей - СправочникСсылка.ГруппыПользователей
|
|
||||||
// - СправочникСсылка.ГруппыВнешнихПользователей
|
|
||||||
// * Пользователь - СправочникСсылка.Пользователи
|
|
||||||
// - СправочникСсылка.ВнешниеПользователи
|
|
||||||
// * Используется - Булево
|
|
||||||
// * ВидИзменения - Строка - одна из строк "Добавлен", "Удален", "ИспользованиеИзменено".
|
|
||||||
//
|
//
|
||||||
Функция НовыеИзмененияСоставовГрупп() Экспорт
|
Функция НовыеИзмененияСоставовГрупп() Экспорт
|
||||||
|
|
||||||
@@ -4954,20 +4995,38 @@
|
|||||||
Результат.Вставить("ДляРегистрации", Неопределено);
|
Результат.Вставить("ДляРегистрации", Неопределено);
|
||||||
|
|
||||||
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа() Тогда
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа() Тогда
|
||||||
Измерения = Метаданные.РегистрыСведений.СоставыГруппПользователей.Измерения;
|
Результат.ДляРегистрации = НовоеИзменениеСоставовГруппДляРегистрации();
|
||||||
ДляРегистрации = Новый ТаблицаЗначений;
|
|
||||||
ДляРегистрации.Колонки.Добавить("ГруппаПользователей", Измерения.ГруппаПользователей.Тип);
|
|
||||||
ДляРегистрации.Колонки.Добавить("Пользователь", Измерения.Пользователь.Тип);
|
|
||||||
ДляРегистрации.Колонки.Добавить("Используется", Новый ОписаниеТипов("Булево"));
|
|
||||||
ДляРегистрации.Колонки.Добавить("ВидИзменения", Новый ОписаниеТипов("Строка"));
|
|
||||||
ДляРегистрации.Индексы.Добавить("Пользователь, ГруппаПользователей");
|
|
||||||
Результат.ДляРегистрации = ДляРегистрации;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// ТаблицаЗначений:
|
||||||
|
// * ГруппаПользователей - СправочникСсылка.ГруппыПользователей
|
||||||
|
// - СправочникСсылка.ГруппыВнешнихПользователей
|
||||||
|
// * Пользователь - СправочникСсылка.Пользователи
|
||||||
|
// - СправочникСсылка.ВнешниеПользователи
|
||||||
|
// * Используется - Булево
|
||||||
|
// * ВидИзменения - Строка - одна из строк "Добавлено", "Удалено", "Изменено".
|
||||||
|
//
|
||||||
|
Функция НовоеИзменениеСоставовГруппДляРегистрации() Экспорт
|
||||||
|
|
||||||
|
Измерения = Метаданные.РегистрыСведений.СоставыГруппПользователей.Измерения;
|
||||||
|
|
||||||
|
Результат = Новый ТаблицаЗначений;
|
||||||
|
Результат.Колонки.Добавить("ГруппаПользователей", Измерения.ГруппаПользователей.Тип);
|
||||||
|
Результат.Колонки.Добавить("Пользователь", Измерения.Пользователь.Тип);
|
||||||
|
Результат.Колонки.Добавить("Используется", Новый ОписаниеТипов("Булево"));
|
||||||
|
Результат.Колонки.Добавить("ВидИзменения", Новый ОписаниеТипов("Строка"));
|
||||||
|
|
||||||
|
Результат.Индексы.Добавить("Пользователь, ГруппаПользователей");
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Обновляет родителей группы пользователей с учетом иерархии
|
// Обновляет родителей группы пользователей с учетом иерархии
|
||||||
// в регистре сведений "Иерархия групп пользователей",
|
// в регистре сведений "Иерархия групп пользователей",
|
||||||
// а также групп пользователей в иерархии указанной группы.
|
// а также групп пользователей в иерархии указанной группы.
|
||||||
@@ -5259,6 +5318,7 @@
|
|||||||
|
|
||||||
Если Не РезультатЗапроса.Пустой() Тогда
|
Если Не РезультатЗапроса.Пустой() Тогда
|
||||||
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
||||||
|
НаборЗаписей.ДополнительныеСвойства.Вставить("ЭтоСтандартноеОбновлениеРегистра");
|
||||||
Запись = НаборЗаписей.Добавить();
|
Запись = НаборЗаписей.Добавить();
|
||||||
Выборка = РезультатЗапроса.Выбрать();
|
Выборка = РезультатЗапроса.Выбрать();
|
||||||
|
|
||||||
@@ -5516,6 +5576,7 @@
|
|||||||
|
|
||||||
Если Не РезультатыЗапроса[0].Пустой() Тогда
|
Если Не РезультатыЗапроса[0].Пустой() Тогда
|
||||||
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
||||||
|
НаборЗаписей.ДополнительныеСвойства.Вставить("ЭтоСтандартноеОбновлениеРегистра");
|
||||||
Выборка = РезультатыЗапроса[0].Выбрать();
|
Выборка = РезультатыЗапроса[0].Выбрать();
|
||||||
|
|
||||||
Пока Выборка.Следующий() Цикл
|
Пока Выборка.Следующий() Цикл
|
||||||
@@ -5533,6 +5594,7 @@
|
|||||||
|
|
||||||
Если Не РезультатыЗапроса[1].Пустой() Тогда
|
Если Не РезультатыЗапроса[1].Пустой() Тогда
|
||||||
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
||||||
|
НаборЗаписей.ДополнительныеСвойства.Вставить("ЭтоСтандартноеОбновлениеРегистра");
|
||||||
Запись = НаборЗаписей.Добавить();
|
Запись = НаборЗаписей.Добавить();
|
||||||
Выборка = РезультатыЗапроса[1].Выбрать();
|
Выборка = РезультатыЗапроса[1].Выбрать();
|
||||||
|
|
||||||
@@ -5652,6 +5714,7 @@
|
|||||||
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Пользователь", "Пользователь");
|
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Пользователь", "Пользователь");
|
||||||
|
|
||||||
НаборИзОднойЗаписи = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
НаборИзОднойЗаписи = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
||||||
|
НаборИзОднойЗаписи.ДополнительныеСвойства.Вставить("ЭтоСтандартноеОбновлениеРегистра");
|
||||||
Запись = НаборИзОднойЗаписи.Добавить();
|
Запись = НаборИзОднойЗаписи.Добавить();
|
||||||
|
|
||||||
УчастникиИзменений = ИзмененияСоставов.УчастникиИзменений;
|
УчастникиИзменений = ИзмененияСоставов.УчастникиИзменений;
|
||||||
@@ -5730,7 +5793,14 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЕстьИзменения = Истина;
|
ЕстьИзменения = Истина;
|
||||||
ЗарегистрироватьИзмененияСоставовГрупп(ИзмененияСоставов);
|
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
|
||||||
|
ЗарегистрироватьИзмененияСоставовГрупп(ИзмененияСоставов.ДляРегистрации);
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||||
|
|
||||||
УчастникиИзменений = Новый Массив;
|
УчастникиИзменений = Новый Массив;
|
||||||
Для Каждого КлючИЗначение Из ИзмененияСоставов.УчастникиИзменений Цикл
|
Для Каждого КлючИЗначение Из ИзмененияСоставов.УчастникиИзменений Цикл
|
||||||
@@ -5779,25 +5849,29 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Удален Тогда
|
Если Удален Тогда
|
||||||
Строка.ВидИзменения = "Удален";
|
Строка.ВидИзменения = "Удалено";
|
||||||
Строка.Используется = Ложь;
|
Строка.Используется = Ложь;
|
||||||
|
|
||||||
ИначеЕсли Выборка.ИспользуетсяБыло = Null Тогда
|
ИначеЕсли Выборка.ИспользуетсяБыло = Null Тогда
|
||||||
Строка.ВидИзменения = "Добавлен";
|
Строка.ВидИзменения = "Добавлено";
|
||||||
Строка.Используется = Выборка.Используется;
|
Строка.Используется = Выборка.Используется;
|
||||||
Иначе
|
Иначе
|
||||||
Строка.ВидИзменения = "ИспользованиеИзменено";
|
Строка.ВидИзменения = "Изменено";
|
||||||
Строка.Используется = Выборка.Используется;
|
Строка.Используется = Выборка.Используется;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ЗарегистрироватьИзмененияСоставовГрупп(ИзмененияСоставов)
|
// Параметры:
|
||||||
|
// ДляРегистрации - см. НовоеИзменениеСоставовГруппДляРегистрации
|
||||||
|
//
|
||||||
|
Процедура ЗарегистрироватьИзмененияСоставовГрупп(ДанныеДляРегистрации) Экспорт
|
||||||
|
|
||||||
ДанныеДляРегистрации = ИзмененияСоставов.ДляРегистрации;
|
|
||||||
Если Не ЗначениеЗаполнено(ДанныеДляРегистрации) Тогда
|
Если Не ЗначениеЗаполнено(ДанныеДляРегистрации) Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
ЭтоВнешниеПользователи = ТипЗнч(ДанныеДляРегистрации[0].Пользователь)
|
||||||
|
= Тип("СправочникСсылка.ВнешниеПользователи");
|
||||||
|
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.УстановитьПараметр("ИзмененияСоставов", ДанныеДляРегистрации);
|
Запрос.УстановитьПараметр("ИзмененияСоставов", ДанныеДляРегистрации);
|
||||||
@@ -5849,10 +5923,22 @@
|
|||||||
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователи
|
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВнешниеПользователи КАК ВнешниеПользователи
|
||||||
| ПО (ВнешниеПользователи.Ссылка = ИзмененияСоставов.Пользователь)";
|
| ПО (ВнешниеПользователи.Ссылка = ИзмененияСоставов.Пользователь)";
|
||||||
|
|
||||||
|
ПодсистемаУправлениеДоступомСуществует = ОбщегоНазначения.ПодсистемаСуществует(
|
||||||
|
"СтандартныеПодсистемы.УправлениеДоступом");
|
||||||
|
|
||||||
|
Если ПодсистемаУправлениеДоступомСуществует Тогда
|
||||||
|
МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
|
||||||
|
Запрос.УстановитьПараметр("ГруппаВсеПользователи", ?(ЭтоВнешниеПользователи,
|
||||||
|
ВнешниеПользователи.ГруппаВсеВнешниеПользователи(), Пользователи.ГруппаВсеПользователи()));
|
||||||
|
Запрос.Текст = Запрос.Текст
|
||||||
|
+ ОбщегоНазначения.РазделительПакетаЗапросов()
|
||||||
|
+ МодульУправлениеДоступомСлужебный.ТекстЗапросаГруппДоступаПриИзмененииУчастниковГруппПользователей();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
РезультатыЗапроса = Запрос.ВыполнитьПакет();
|
РезультатыЗапроса = Запрос.ВыполнитьПакет();
|
||||||
|
|
||||||
Данные = Новый Структура;
|
Данные = Новый Структура;
|
||||||
Данные.Вставить("ВерсияСтруктурыДанных", 1);
|
Данные.Вставить("ВерсияСтруктурыДанных", 2);
|
||||||
Данные.Вставить("ИзмененияСоставов", Новый Массив);
|
Данные.Вставить("ИзмененияСоставов", Новый Массив);
|
||||||
Данные.Вставить("ПредставлениеГрупп", Новый Массив);
|
Данные.Вставить("ПредставлениеГрупп", Новый Массив);
|
||||||
Данные.Вставить("ПредставлениеПользователей", Новый Массив);
|
Данные.Вставить("ПредставлениеПользователей", Новый Массив);
|
||||||
@@ -5883,7 +5969,7 @@
|
|||||||
Свойства.Вставить("ИдентификаторГруппы",
|
Свойства.Вставить("ИдентификаторГруппы",
|
||||||
НРег(Выборка.ГруппаПользователей.УникальныйИдентификатор()));
|
НРег(Выборка.ГруппаПользователей.УникальныйИдентификатор()));
|
||||||
Свойства.Вставить("ПредставлениеГруппы", Выборка.ПредставлениеГруппы);
|
Свойства.Вставить("ПредставлениеГруппы", Выборка.ПредставлениеГруппы);
|
||||||
Свойства.Вставить("СсылкаГруппы", ЗначениеВСтрокуВнутр(Выборка.ГруппаПользователей));
|
Свойства.Вставить("СсылкаГруппы", СериализованнаяСсылка(Выборка.ГруппаПользователей));
|
||||||
Данные.ПредставлениеГрупп.Добавить(Свойства);
|
Данные.ПредставлениеГрупп.Добавить(Свойства);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
@@ -5893,14 +5979,40 @@
|
|||||||
Свойства.Вставить("ИдентификаторПользователя",
|
Свойства.Вставить("ИдентификаторПользователя",
|
||||||
НРег(Выборка.Пользователь.УникальныйИдентификатор()));
|
НРег(Выборка.Пользователь.УникальныйИдентификатор()));
|
||||||
Свойства.Вставить("ПредставлениеПользователя", Выборка.ПредставлениеПользователя);
|
Свойства.Вставить("ПредставлениеПользователя", Выборка.ПредставлениеПользователя);
|
||||||
Свойства.Вставить("СсылкаПользователя", ЗначениеВСтрокуВнутр(Выборка.Пользователь));
|
Свойства.Вставить("СсылкаПользователя", СериализованнаяСсылка(Выборка.Пользователь));
|
||||||
Данные.ПредставлениеПользователей.Добавить(Свойства);
|
Данные.ПредставлениеПользователей.Добавить(Свойства);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Если ТипЗнч(ДанныеДляРегистрации[0].Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
|
Если ПодсистемаУправлениеДоступомСуществует Тогда
|
||||||
ИмяСобытия = ИмяСобытияИзменениеИзменениеУчастниковГруппВнешнихПользователейДляЖурналаРегистрации();
|
Данные.Вставить("УчастникиГруппДоступа", Новый Массив);
|
||||||
|
Данные.Вставить("ПредставлениеГруппДоступа", Новый Массив);
|
||||||
|
|
||||||
|
Выборка = РезультатыЗапроса[5].Выбрать();
|
||||||
|
Пока Выборка.Следующий() Цикл
|
||||||
|
Свойства = Новый Структура;
|
||||||
|
Свойства.Вставить("ГруппаДоступа", СериализованнаяСсылка(Выборка.ГруппаДоступа));
|
||||||
|
Свойства.Вставить("Участник", СериализованнаяСсылка(Выборка.Участник));
|
||||||
|
Свойства.Вставить("СрокДействия", Выборка.СрокДействия);
|
||||||
|
Данные.УчастникиГруппДоступа.Добавить(Свойства);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Выборка = РезультатыЗапроса[6].Выбрать();
|
||||||
|
Пока Выборка.Следующий() Цикл
|
||||||
|
Свойства = Новый Структура;
|
||||||
|
Свойства.Вставить("ГруппаДоступа", СериализованнаяСсылка(Выборка.ГруппаДоступа));
|
||||||
|
Свойства.Вставить("Представление", Выборка.Представление);
|
||||||
|
Свойства.Вставить("ПометкаУдаления", Выборка.ПометкаУдаления);
|
||||||
|
Свойства.Вставить("Профиль", СериализованнаяСсылка(Выборка.Профиль));
|
||||||
|
Свойства.Вставить("ПредставлениеПрофиля", Выборка.ПредставлениеПрофиля);
|
||||||
|
Свойства.Вставить("ПометкаУдаленияПрофиля", Выборка.ПометкаУдаленияПрофиля);
|
||||||
|
Данные.ПредставлениеГруппДоступа.Добавить(Свойства);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЭтоВнешниеПользователи Тогда
|
||||||
|
ИмяСобытия = ИмяСобытияИзменениеУчастниковГруппВнешнихПользователейДляЖурналаРегистрации();
|
||||||
Иначе
|
Иначе
|
||||||
ИмяСобытия = ИмяСобытияИзменениеИзменениеУчастниковГруппПользователейДляЖурналаРегистрации();
|
ИмяСобытия = ИмяСобытияИзменениеУчастниковГруппПользователейДляЖурналаРегистрации();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ЗаписьЖурналаРегистрации(ИмяСобытия,
|
ЗаписьЖурналаРегистрации(ИмяСобытия,
|
||||||
@@ -5910,6 +6022,16 @@
|
|||||||
,
|
,
|
||||||
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
|
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
|
||||||
|
|
||||||
|
|
||||||
|
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МодульГруппыДоступа = ОбщегоНазначения.ОбщийМодуль("Справочники.ГруппыДоступа");
|
||||||
|
|
||||||
|
ОписаниеОбъекта = Новый Структура("ИзменениеСоставовГруппПользователей", ДанныеДляРегистрации);
|
||||||
|
МодульГруппыДоступа.ЗарегистрироватьИзменениеРазрешенныхЗначений(ОписаниеОбъекта, Неопределено);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
@@ -6049,6 +6171,7 @@
|
|||||||
|
|
||||||
Если Не РезультатыЗапросов[0].Пустой() Тогда
|
Если Не РезультатыЗапросов[0].Пустой() Тогда
|
||||||
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
||||||
|
НаборЗаписей.ДополнительныеСвойства.Вставить("ЭтоСтандартноеОбновлениеРегистра");
|
||||||
Выборка = РезультатыЗапросов[0].Выбрать();
|
Выборка = РезультатыЗапросов[0].Выбрать();
|
||||||
|
|
||||||
Пока Выборка.Следующий() Цикл
|
Пока Выборка.Следующий() Цикл
|
||||||
@@ -6066,6 +6189,7 @@
|
|||||||
|
|
||||||
Если Не РезультатыЗапросов[1].Пустой() Тогда
|
Если Не РезультатыЗапросов[1].Пустой() Тогда
|
||||||
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
||||||
|
НаборЗаписей.ДополнительныеСвойства.Вставить("ЭтоСтандартноеОбновлениеРегистра");
|
||||||
Запись = НаборЗаписей.Добавить();
|
Запись = НаборЗаписей.Добавить();
|
||||||
Выборка = РезультатыЗапросов[1].Выбрать();
|
Выборка = РезультатыЗапросов[1].Выбрать();
|
||||||
|
|
||||||
@@ -7461,12 +7585,9 @@
|
|||||||
СтарыеКлючи = СтрРазделить(СтарыеКлючиРолейСтрокой, ",", Ложь);
|
СтарыеКлючи = СтрРазделить(СтарыеКлючиРолейСтрокой, ",", Ложь);
|
||||||
НовыеКлючи = СтрРазделить(НовыеКлючиРолейСтрокой, ",", Ложь);
|
НовыеКлючи = СтрРазделить(НовыеКлючиРолейСтрокой, ",", Ложь);
|
||||||
|
|
||||||
Если СтарыеКлючи.Количество() > НовыеКлючи.Количество() Тогда
|
|
||||||
Возврат Истина;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Для Каждого КлючРоли Из СтарыеКлючи Цикл
|
Для Каждого КлючРоли Из СтарыеКлючи Цикл
|
||||||
Если НовыеКлючи.Найти(КлючРоли) = Неопределено Тогда
|
Если Не СтрЗаканчиваетсяНа(КлючРоли, "/1") // Это не роль расширения.
|
||||||
|
И НовыеКлючи.Найти(КлючРоли) = Неопределено Тогда
|
||||||
Возврат Истина;
|
Возврат Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
@@ -7479,7 +7600,8 @@
|
|||||||
Функция РолиСокращены(СтарыйПользовательИБ, НовыйПользовательИБ)
|
Функция РолиСокращены(СтарыйПользовательИБ, НовыйПользовательИБ)
|
||||||
|
|
||||||
Для Каждого Роль Из СтарыйПользовательИБ.Роли Цикл
|
Для Каждого Роль Из СтарыйПользовательИБ.Роли Цикл
|
||||||
Если Не НовыйПользовательИБ.Роли.Содержит(Роль) Тогда
|
Если Не НовыйПользовательИБ.Роли.Содержит(Роль)
|
||||||
|
И Роль.РасширениеКонфигурации() = Неопределено Тогда
|
||||||
Возврат Истина;
|
Возврат Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
@@ -7498,6 +7620,7 @@
|
|||||||
//
|
//
|
||||||
Функция КлючиРолейПользователяИБ(ПользовательИБ)
|
Функция КлючиРолейПользователяИБ(ПользовательИБ)
|
||||||
|
|
||||||
|
РолиРасширений = ПользователиСлужебныйПовтИсп.РолиРасширений();
|
||||||
Список = Новый СписокЗначений;
|
Список = Новый СписокЗначений;
|
||||||
|
|
||||||
Для Каждого Роль Из ПользовательИБ.Роли Цикл
|
Для Каждого Роль Из ПользовательИБ.Роли Цикл
|
||||||
@@ -7505,6 +7628,9 @@
|
|||||||
Если КлючРоли = Неопределено Тогда
|
Если КлючРоли = Неопределено Тогда
|
||||||
КлючРоли = "Неопределено";
|
КлючРоли = "Неопределено";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
Если РолиРасширений.Получить(Роль.Имя) <> Неопределено Тогда
|
||||||
|
КлючРоли = КлючРоли + "/1";
|
||||||
|
КонецЕсли;
|
||||||
Список.Добавить(КлючРоли);
|
Список.Добавить(КлючРоли);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
@@ -8715,6 +8841,7 @@
|
|||||||
Попытка
|
Попытка
|
||||||
Блокировка.Заблокировать();
|
Блокировка.Заблокировать();
|
||||||
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
НаборЗаписей = РегистрыСведений.СоставыГруппПользователей.СоздатьНаборЗаписей();
|
||||||
|
НаборЗаписей.ДополнительныеСвойства.Вставить("ЭтоСтандартноеОбновлениеРегистра");
|
||||||
НаборЗаписей.Отбор[ИмяПоля].Установить(ПользовательИлиГруппа);
|
НаборЗаписей.Отбор[ИмяПоля].Установить(ПользовательИлиГруппа);
|
||||||
НаборЗаписей.Прочитать();
|
НаборЗаписей.Прочитать();
|
||||||
Индекс = НаборЗаписей.Количество();
|
Индекс = НаборЗаписей.Количество();
|
||||||
|
|||||||
@@ -472,6 +472,26 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// ФиксированноеСоответствие из КлючИЗначение:
|
||||||
|
// * Ключ - Строка - имя роли.
|
||||||
|
// * Значение - Булево - Истина.
|
||||||
|
//
|
||||||
|
Функция РолиРасширений() Экспорт
|
||||||
|
|
||||||
|
Результат = Новый Соответствие;
|
||||||
|
|
||||||
|
Для Каждого Роль Из Метаданные.Роли Цикл
|
||||||
|
Если Роль.РасширениеКонфигурации() = Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
Результат.Вставить(Роль.Имя, Истина);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Новый ФиксированноеСоответствие(Результат);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Вспомогательные процедуры и функции.
|
// Вспомогательные процедуры и функции.
|
||||||
|
|
||||||
|
|||||||
@@ -1388,7 +1388,7 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ИдентификаторКлассификатора()
|
Функция ИдентификаторКлассификатора() Экспорт
|
||||||
Возврат "Countries";
|
Возврат "Countries";
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -3172,53 +3172,9 @@
|
|||||||
//
|
//
|
||||||
Функция ТаблицаКлассификатора() Экспорт
|
Функция ТаблицаКлассификатора() Экспорт
|
||||||
|
|
||||||
Классификатор = Неопределено;
|
Результат = РаботаСАдресамиПовтИсп.СтраныМира();
|
||||||
|
СтраныМира = Результат.СтраныМира.Скопировать();
|
||||||
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
|
Возврат СтраныМира;
|
||||||
|
|
||||||
ИдентификаторКлассификатора = ИдентификаторКлассификатора();
|
|
||||||
|
|
||||||
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
|
|
||||||
Идентификаторы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторКлассификатора);
|
|
||||||
Результат = МодульРаботаСКлассификаторами.ПолучитьФайлыКлассификаторов(Идентификаторы);
|
|
||||||
|
|
||||||
Если ПустаяСтрока(Результат.КодОшибки) И Результат.ДанныеКлассификаторов <> Неопределено Тогда
|
|
||||||
|
|
||||||
ОписаниеКлассификатора = Результат.ДанныеКлассификаторов.Найти(ИдентификаторКлассификатора, "Идентификатор");
|
|
||||||
Если ОписаниеКлассификатора <> Неопределено Тогда
|
|
||||||
Классификатор = ПолучитьИзВременногоХранилища(ОписаниеКлассификатора.АдресФайла);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Классификатор = Неопределено Тогда
|
|
||||||
|
|
||||||
Макет = Справочники.СтраныМира.ПолучитьМакет("Классификатор");
|
|
||||||
КлассификаторXML = Макет.ПолучитьТекст();
|
|
||||||
|
|
||||||
Иначе
|
|
||||||
|
|
||||||
НаборСтрок = Новый Массив;
|
|
||||||
ЧтениеЧасти = Новый ЧтениеДанных(Классификатор.ОткрытьПотокДляЧтения());
|
|
||||||
|
|
||||||
Пока Не ЧтениеЧасти.ЧтениеЗавершено Цикл
|
|
||||||
НаборСтрок.Добавить(ЧтениеЧасти.ПрочитатьСтроку());
|
|
||||||
КонецЦикла;
|
|
||||||
|
|
||||||
КлассификаторXML = СтрСоединить(НаборСтрок, ЧтениеЧасти.РазделительСтрок);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Чтение = Новый ЧтениеXML;
|
|
||||||
Чтение.УстановитьСтроку(КлассификаторXML);
|
|
||||||
ТаблицаСтран = СериализаторXDTO.ПрочитатьXML(Чтение); // ТаблицаЗначений
|
|
||||||
|
|
||||||
// Старые версии классификаторов не содержат колонку МеждународноеНаименование
|
|
||||||
Если ТаблицаСтран.Колонки.Найти("МеждународноеНаименование") = Неопределено Тогда
|
|
||||||
ТаблицаСтран.Колонки.Добавить("МеждународноеНаименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат ТаблицаСтран;
|
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -35,5 +35,70 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Общероссийский классификатор стран мира
|
||||||
|
|
||||||
|
// Возвращает полные данные ОКСМ классификатора.
|
||||||
|
// Таблица значений в макете проиндексирована по полям "Код", "Наименование".
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// ТаблицаЗначений - данные классификатора с колонками:
|
||||||
|
// * Код - Строка - данные страны.
|
||||||
|
// * Наименование - Строка - данные страны.
|
||||||
|
// * НаименованиеПолное - Строка - данные страны.
|
||||||
|
// * КодАльфа2 - Строка - данные страны.
|
||||||
|
// * КодАльфа3 - Строка - данные страны.
|
||||||
|
//
|
||||||
|
Функция СтраныМира() Экспорт
|
||||||
|
|
||||||
|
Классификатор = Неопределено;
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
|
||||||
|
|
||||||
|
ИдентификаторКлассификатора = РаботаСАдресами.ИдентификаторКлассификатора();
|
||||||
|
|
||||||
|
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
|
||||||
|
Идентификаторы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторКлассификатора);
|
||||||
|
Результат = МодульРаботаСКлассификаторами.ПолучитьФайлыКлассификаторов(Идентификаторы);
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Результат.КодОшибки) И Результат.ДанныеКлассификаторов <> Неопределено Тогда
|
||||||
|
|
||||||
|
ОписаниеКлассификатора = Результат.ДанныеКлассификаторов.Найти(ИдентификаторКлассификатора, "Идентификатор");
|
||||||
|
Если ОписаниеКлассификатора <> Неопределено Тогда
|
||||||
|
Классификатор = ПолучитьИзВременногоХранилища(ОписаниеКлассификатора.АдресФайла);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Классификатор = Неопределено Тогда
|
||||||
|
|
||||||
|
Макет = Справочники.СтраныМира.ПолучитьМакет("Классификатор");
|
||||||
|
КлассификаторXML = Макет.ПолучитьТекст();
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
НаборСтрок = Новый Массив;
|
||||||
|
ЧтениеЧасти = Новый ЧтениеДанных(Классификатор.ОткрытьПотокДляЧтения());
|
||||||
|
|
||||||
|
Пока Не ЧтениеЧасти.ЧтениеЗавершено Цикл
|
||||||
|
НаборСтрок.Добавить(ЧтениеЧасти.ПрочитатьСтроку());
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КлассификаторXML = СтрСоединить(НаборСтрок, ЧтениеЧасти.РазделительСтрок);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Чтение = Новый ЧтениеXML;
|
||||||
|
Чтение.УстановитьСтроку(КлассификаторXML);
|
||||||
|
ТаблицаСтран = СериализаторXDTO.ПрочитатьXML(Чтение); // ТаблицаЗначений
|
||||||
|
|
||||||
|
// Старые версии классификаторов не содержат колонку МеждународноеНаименование
|
||||||
|
Если ТаблицаСтран.Колонки.Найти("МеждународноеНаименование") = Неопределено Тогда
|
||||||
|
ТаблицаСтран.Колонки.Добавить("МеждународноеНаименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Новый ФиксированнаяСтруктура("СтраныМира", ТаблицаСтран);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -2823,7 +2823,7 @@
|
|||||||
|
|
||||||
Функция АдресФайлаСНастройками() Экспорт
|
Функция АдресФайлаСНастройками() Экспорт
|
||||||
|
|
||||||
АдресФайла = "https://downloads.v8.1c.eu/content/common/settings/mailservers.json";
|
АдресФайла = "https://downloads.1c.eu/content/common/settings/mailservers.json";
|
||||||
|
|
||||||
Если Метаданные.ОбщиеМодули.Найти("РаботаСПочтовымиСообщениямиСлужебныйЛокализация") <> Неопределено Тогда
|
Если Метаданные.ОбщиеМодули.Найти("РаботаСПочтовымиСообщениямиСлужебныйЛокализация") <> Неопределено Тогда
|
||||||
МодульРаботаСПочтовымиСообщениямиСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебныйЛокализация");
|
МодульРаботаСПочтовымиСообщениямиСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебныйЛокализация");
|
||||||
@@ -2836,7 +2836,7 @@
|
|||||||
|
|
||||||
Функция АдресФайлаСОписаниемОшибок()
|
Функция АдресФайлаСОписаниемОшибок()
|
||||||
|
|
||||||
АдресФайла = "https://downloads.v8.1c.eu/content/common/settings/mailerrors.json";
|
АдресФайла = "https://downloads.1c.eu/content/common/settings/mailerrors.json";
|
||||||
|
|
||||||
Если Метаданные.ОбщиеМодули.Найти("РаботаСПочтовымиСообщениямиСлужебныйЛокализация") <> Неопределено Тогда
|
Если Метаданные.ОбщиеМодули.Найти("РаботаСПочтовымиСообщениямиСлужебныйЛокализация") <> Неопределено Тогда
|
||||||
МодульРаботаСПочтовымиСообщениямиСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебныйЛокализация");
|
МодульРаботаСПочтовымиСообщениямиСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебныйЛокализация");
|
||||||
@@ -2849,7 +2849,7 @@
|
|||||||
|
|
||||||
Функция АдресВнешнегоРесурса()
|
Функция АдресВнешнегоРесурса()
|
||||||
|
|
||||||
АдресВнешнегоРесурса = "downloads.v8.1c.eu";
|
АдресВнешнегоРесурса = "downloads.1c.eu";
|
||||||
|
|
||||||
Если Метаданные.ОбщиеМодули.Найти("РаботаСПочтовымиСообщениямиСлужебныйЛокализация") <> Неопределено Тогда
|
Если Метаданные.ОбщиеМодули.Найти("РаботаСПочтовымиСообщениямиСлужебныйЛокализация") <> Неопределено Тогда
|
||||||
МодульРаботаСПочтовымиСообщениямиСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебныйЛокализация");
|
МодульРаботаСПочтовымиСообщениямиСлужебныйЛокализация = ОбщегоНазначения.ОбщийМодуль("РаботаСПочтовымиСообщениямиСлужебныйЛокализация");
|
||||||
|
|||||||
@@ -1705,127 +1705,122 @@
|
|||||||
//
|
//
|
||||||
Функция ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента) Экспорт
|
Функция ПолучитьНастройкиСканированияПользователя(ИдентификаторКлиента) Экспорт
|
||||||
|
|
||||||
НастройкиСканированияПользователя = РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя();
|
Результат = РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя();
|
||||||
|
|
||||||
НастройкиСканированияПользователя.ПоказыватьДиалогСканера = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.ПоказыватьДиалогСканера = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/ПоказыватьДиалогСканера",
|
"НастройкиСканирования/ПоказыватьДиалогСканера",
|
||||||
ИдентификаторКлиента, Истина);
|
ИдентификаторКлиента, Истина);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.ИмяУстройства = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.ИмяУстройства = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/ИмяУстройства",
|
"НастройкиСканирования/ИмяУстройства",
|
||||||
ИдентификаторКлиента, "");
|
ИдентификаторКлиента, "");
|
||||||
|
|
||||||
НастройкиСканированияПользователя.ФорматСканированногоИзображения = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.ФорматСканированногоИзображения = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/ФорматСканированногоИзображения",
|
"НастройкиСканирования/ФорматСканированногоИзображения",
|
||||||
ИдентификаторКлиента, Перечисления.ФорматыСканированногоИзображения.PNG);
|
ИдентификаторКлиента, Перечисления.ФорматыСканированногоИзображения.PNG);
|
||||||
|
Если Результат.ФорматСканированногоИзображения = Перечисления.ФорматыСканированногоИзображения.ПустаяСсылка() Тогда
|
||||||
|
Результат.ФорматСканированногоИзображения = Перечисления.ФорматыСканированногоИзображения.PNG;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
НастройкиСканированияПользователя.СохранятьВPDF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.СохранятьВPDF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/СохранятьВPDF",
|
"НастройкиСканирования/СохранятьВPDF",
|
||||||
ИдентификаторКлиента, Ложь);
|
ИдентификаторКлиента, Ложь);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.ФорматХраненияМногостраничный = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.ФорматХраненияМногостраничный = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/ФорматХраненияМногостраничный",
|
"НастройкиСканирования/ФорматХраненияМногостраничный",
|
||||||
ИдентификаторКлиента, Перечисления.ФорматыХраненияМногостраничныхФайлов.TIF);
|
ИдентификаторКлиента, Перечисления.ФорматыХраненияМногостраничныхФайлов.TIF);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.Разрешение = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.Разрешение = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/Разрешение",
|
"НастройкиСканирования/Разрешение",
|
||||||
ИдентификаторКлиента);
|
ИдентификаторКлиента);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.Цветность = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.Цветность = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/Цветность",
|
"НастройкиСканирования/Цветность",
|
||||||
ИдентификаторКлиента);
|
ИдентификаторКлиента);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.Поворот = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.Поворот = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/Поворот",
|
"НастройкиСканирования/Поворот",
|
||||||
ИдентификаторКлиента);
|
ИдентификаторКлиента);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.РазмерБумаги = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.РазмерБумаги = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/РазмерБумаги",
|
"НастройкиСканирования/РазмерБумаги",
|
||||||
ИдентификаторКлиента);
|
ИдентификаторКлиента);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.ДвустороннееСканирование = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.ДвустороннееСканирование = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/ДвустороннееСканирование",
|
"НастройкиСканирования/ДвустороннееСканирование",
|
||||||
ИдентификаторКлиента);
|
ИдентификаторКлиента);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.ИспользоватьImageMagickДляПреобразованияВPDF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.ИспользоватьImageMagickДляПреобразованияВPDF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/ИспользоватьImageMagickДляПреобразованияВPDF",
|
"НастройкиСканирования/ИспользоватьImageMagickДляПреобразованияВPDF",
|
||||||
ИдентификаторКлиента, Ложь);
|
ИдентификаторКлиента, Ложь);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.КачествоJPG = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.КачествоJPG = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/КачествоJPG",
|
"НастройкиСканирования/КачествоJPG",
|
||||||
ИдентификаторКлиента, 100);
|
ИдентификаторКлиента, 100);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.СжатиеTIFF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.СжатиеTIFF = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/СжатиеTIFF",
|
"НастройкиСканирования/СжатиеTIFF",
|
||||||
ИдентификаторКлиента, Перечисления.ВариантыСжатияTIFF.БезСжатия);
|
ИдентификаторКлиента, Перечисления.ВариантыСжатияTIFF.БезСжатия);
|
||||||
|
|
||||||
НастройкиСканированияПользователя.ПутьКПрограммеКонвертации = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.ПутьКПрограммеКонвертации = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/ПутьКПрограммеКонвертации",
|
"НастройкиСканирования/ПутьКПрограммеКонвертации",
|
||||||
ИдентификаторКлиента, ""); // ImageMagick
|
ИдентификаторКлиента, ""); // ImageMagick
|
||||||
|
|
||||||
НастройкиСканированияПользователя.КаталогЖурналаСканирования = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.КаталогЖурналаСканирования = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/КаталогЖурналаСканирования",
|
"НастройкиСканирования/КаталогЖурналаСканирования",
|
||||||
ИдентификаторКлиента, "");
|
ИдентификаторКлиента, "");
|
||||||
|
|
||||||
НастройкиСканированияПользователя.ИспользоватьКаталогЖурналаСканирования = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
Результат.ИспользоватьКаталогЖурналаСканирования = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||||
"НастройкиСканирования/ИспользоватьКаталогЖурналаСканирования",
|
"НастройкиСканирования/ИспользоватьКаталогЖурналаСканирования",
|
||||||
ИдентификаторКлиента, Ложь);
|
ИдентификаторКлиента, Ложь);
|
||||||
|
|
||||||
Возврат НастройкиСканированияПользователя;
|
Возврат Результат;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Сохраняет настройки сканирования пользователя.
|
// Сохраняет настройки сканирования пользователя.
|
||||||
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// НастройкиСканированияПользователя - см. РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя
|
// НастройкиСканированияПользователя - см. РаботаСФайламиКлиентСервер.НастройкиСканированияПользователя
|
||||||
// ИдентификаторКлиента - УникальныйИдентификатор - идентификатор клиента
|
// ИдентификаторКлиента - УникальныйИдентификатор
|
||||||
//
|
//
|
||||||
Процедура СохранитьНастройкиСканированияПользователя(НастройкиСканированияПользователя, ИдентификаторКлиента) Экспорт
|
Процедура СохранитьНастройкиСканированияПользователя(НастройкиСканированияПользователя, ИдентификаторКлиента) Экспорт
|
||||||
|
|
||||||
НастройкиСканирования = Новый Массив;
|
Результат = Новый Массив;
|
||||||
|
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ПоказыватьДиалогСканера",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ПоказыватьДиалогСканера",
|
||||||
НастройкиСканированияПользователя.ПоказыватьДиалогСканера, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.ПоказыватьДиалогСканера, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ИмяУстройства",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ИмяУстройства",
|
||||||
НастройкиСканированияПользователя.ИмяУстройства, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.ИмяУстройства, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ФорматСканированногоИзображения",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ФорматСканированногоИзображения",
|
||||||
НастройкиСканированияПользователя.ФорматСканированногоИзображения, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.ФорматСканированногоИзображения, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("СохранятьВPDF",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("СохранятьВPDF",
|
||||||
НастройкиСканированияПользователя.СохранятьВPDF, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.СохранятьВPDF, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ФорматХраненияМногостраничный",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ФорматХраненияМногостраничный",
|
||||||
НастройкиСканированияПользователя.ФорматХраненияМногостраничный, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.ФорматХраненияМногостраничный, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("Разрешение",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("Разрешение",
|
||||||
НастройкиСканированияПользователя.Разрешение, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.Разрешение, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("Цветность",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("Цветность",
|
||||||
НастройкиСканированияПользователя.Цветность, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.Цветность, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("Поворот",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("Поворот",
|
||||||
НастройкиСканированияПользователя.Поворот, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.Поворот, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("РазмерБумаги",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("РазмерБумаги",
|
||||||
НастройкиСканированияПользователя.РазмерБумаги, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.РазмерБумаги, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ДвустороннееСканирование",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ДвустороннееСканирование",
|
||||||
НастройкиСканированияПользователя.ДвустороннееСканирование, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.ДвустороннееСканирование, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ИспользоватьImageMagickДляПреобразованияВPDF",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ИспользоватьImageMagickДляПреобразованияВPDF",
|
||||||
НастройкиСканированияПользователя.ИспользоватьImageMagickДляПреобразованияВPDF, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.ИспользоватьImageMagickДляПреобразованияВPDF, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("КачествоJPG",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("КачествоJPG",
|
||||||
НастройкиСканированияПользователя.КачествоJPG, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.КачествоJPG, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("СжатиеTIFF",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("СжатиеTIFF",
|
||||||
НастройкиСканированияПользователя.СжатиеTIFF, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.СжатиеTIFF, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ПутьКПрограммеКонвертации",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ПутьКПрограммеКонвертации",
|
||||||
НастройкиСканированияПользователя.ПутьКПрограммеКонвертации, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.ПутьКПрограммеКонвертации, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("КаталогЖурналаСканирования",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("КаталогЖурналаСканирования",
|
||||||
НастройкиСканированияПользователя.КаталогЖурналаСканирования, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.КаталогЖурналаСканирования, ИдентификаторКлиента));
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ИспользоватьКаталогЖурналаСканирования",
|
Результат.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ИспользоватьКаталогЖурналаСканирования",
|
||||||
НастройкиСканированияПользователя.ИспользоватьКаталогЖурналаСканирования, ИдентификаторКлиента));
|
НастройкиСканированияПользователя.ИспользоватьКаталогЖурналаСканирования, ИдентификаторКлиента));
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(НастройкиСканированияПользователя.ФорматХраненияОдностраничный) Тогда
|
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранитьМассив(Результат, Истина);
|
||||||
ФорматХраненияОдностраничный = НастройкиСканированияПользователя.ФорматХраненияОдностраничный;
|
|
||||||
Иначе
|
|
||||||
ФорматХраненияОдностраничный = РаботаСФайламиСлужебный.ПреобразоватьФорматСканированияВФорматХранения(НастройкиСканированияПользователя.ФорматСканированногоИзображения,
|
|
||||||
НастройкиСканированияПользователя.СохранятьВPDF);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
НастройкиСканирования.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ФорматХраненияОдностраничный", ФорматХраненияОдностраничный, ИдентификаторКлиента));
|
|
||||||
|
|
||||||
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранитьМассив(НастройкиСканирования, Истина);
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#Область ДляВызоваИзДругихПодсистем
|
#Область ДляВызоваИзДругихПодсистем
|
||||||
@@ -1839,7 +1834,7 @@
|
|||||||
// Параметры:
|
// Параметры:
|
||||||
// Параметры - Структура - параметры выполнения отложенного обработчика обновления.
|
// Параметры - Структура - параметры выполнения отложенного обработчика обновления.
|
||||||
//
|
//
|
||||||
Процедура ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений(Параметры) Экспорт
|
Процедура ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений(Параметры) Экспорт // АПК:530 Обрабатывает таблицы присоединенных файлов, а не данные других подсистем.
|
||||||
|
|
||||||
РаботаСФайламиСлужебный.ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений(Параметры);
|
РаботаСФайламиСлужебный.ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений(Параметры);
|
||||||
|
|
||||||
|
|||||||
@@ -57,10 +57,10 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Настройки сканирования пользователя.
|
// Возвращает настройки сканирования пользователя.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Структура - настройки сканирования пользователя:
|
// Структура:
|
||||||
// * ПоказыватьДиалогСканера - Булево
|
// * ПоказыватьДиалогСканера - Булево
|
||||||
// * ИмяУстройства - Строка - НаименованиеСканера
|
// * ИмяУстройства - Строка - НаименованиеСканера
|
||||||
// * ФорматСканированногоИзображения - ПеречислениеСсылка.ФорматыСканированногоИзображения
|
// * ФорматСканированногоИзображения - ПеречислениеСсылка.ФорматыСканированногоИзображения
|
||||||
@@ -75,28 +75,26 @@
|
|||||||
// * КачествоJPG - Число
|
// * КачествоJPG - Число
|
||||||
// * СжатиеTIFF - ПеречислениеСсылка.ВариантыСжатияTIFF
|
// * СжатиеTIFF - ПеречислениеСсылка.ВариантыСжатияTIFF
|
||||||
// * ПутьКПрограммеКонвертации - Строка
|
// * ПутьКПрограммеКонвертации - Строка
|
||||||
// * ФорматХраненияОдностраничный - ПеречислениеСсылка.ФорматыХраненияОдностраничныхФайлов
|
|
||||||
//
|
//
|
||||||
Функция НастройкиСканированияПользователя() Экспорт
|
Функция НастройкиСканированияПользователя() Экспорт
|
||||||
НастройкиСканированияПользователя = Новый Структура;
|
Результат = Новый Структура;
|
||||||
НастройкиСканированияПользователя.Вставить("ПоказыватьДиалогСканера", Ложь);
|
Результат.Вставить("ПоказыватьДиалогСканера", Ложь);
|
||||||
НастройкиСканированияПользователя.Вставить("ИмяУстройства", "");
|
Результат.Вставить("ИмяУстройства", "");
|
||||||
НастройкиСканированияПользователя.Вставить("ФорматСканированногоИзображения");
|
Результат.Вставить("ФорматСканированногоИзображения");
|
||||||
НастройкиСканированияПользователя.Вставить("СохранятьВPDF", Ложь);
|
Результат.Вставить("СохранятьВPDF", Ложь);
|
||||||
НастройкиСканированияПользователя.Вставить("ФорматХраненияМногостраничный");
|
Результат.Вставить("ФорматХраненияМногостраничный");
|
||||||
НастройкиСканированияПользователя.Вставить("Разрешение");
|
Результат.Вставить("Разрешение");
|
||||||
НастройкиСканированияПользователя.Вставить("Цветность");
|
Результат.Вставить("Цветность");
|
||||||
НастройкиСканированияПользователя.Вставить("Поворот");
|
Результат.Вставить("Поворот");
|
||||||
НастройкиСканированияПользователя.Вставить("РазмерБумаги");
|
Результат.Вставить("РазмерБумаги");
|
||||||
НастройкиСканированияПользователя.Вставить("ДвустороннееСканирование", Ложь);
|
Результат.Вставить("ДвустороннееСканирование", Ложь);
|
||||||
НастройкиСканированияПользователя.Вставить("ИспользоватьImageMagickДляПреобразованияВPDF", Ложь);
|
Результат.Вставить("ИспользоватьImageMagickДляПреобразованияВPDF", Ложь);
|
||||||
НастройкиСканированияПользователя.Вставить("КачествоJPG", 0);
|
Результат.Вставить("КачествоJPG", 0);
|
||||||
НастройкиСканированияПользователя.Вставить("СжатиеTIFF");
|
Результат.Вставить("СжатиеTIFF");
|
||||||
НастройкиСканированияПользователя.Вставить("ПутьКПрограммеКонвертации", "");
|
Результат.Вставить("ПутьКПрограммеКонвертации", "");
|
||||||
НастройкиСканированияПользователя.Вставить("ФорматХраненияОдностраничный");
|
Результат.Вставить("КаталогЖурналаСканирования");
|
||||||
НастройкиСканированияПользователя.Вставить("КаталогЖурналаСканирования");
|
Результат.Вставить("ИспользоватьКаталогЖурналаСканирования", Ложь);
|
||||||
НастройкиСканированияПользователя.Вставить("ИспользоватьКаталогЖурналаСканирования", Ложь);
|
Возврат Результат;
|
||||||
Возврат НастройкиСканированияПользователя;
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|||||||
@@ -2180,24 +2180,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПреобразоватьФорматСканированияВФорматХранения(ФорматСканирования, СохранятьВPDF) Экспорт
|
|
||||||
|
|
||||||
Если СохранятьВPDF Тогда
|
|
||||||
Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.PDF;
|
|
||||||
ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.BMP Тогда
|
|
||||||
Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.BMP;
|
|
||||||
ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.GIF Тогда
|
|
||||||
Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.GIF;
|
|
||||||
ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.JPG Тогда
|
|
||||||
Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.JPG;
|
|
||||||
ИначеЕсли ФорматСканирования = Перечисления.ФорматыСканированногоИзображения.TIF Тогда
|
|
||||||
Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.TIF;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат Перечисления.ФорматыХраненияОдностраничныхФайлов.PNG;
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция КомандаСканироватьЛист() Экспорт
|
Функция КомандаСканироватьЛист() Экспорт
|
||||||
Возврат "e1cib/command/Обработка.Сканирование.Команда.СканироватьЛист";
|
Возврат "e1cib/command/Обработка.Сканирование.Команда.СканироватьЛист";
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -3025,7 +3007,7 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция СформироватьНастройкуСканирования(Имя, Значение, ИдентификаторКлиента) Экспорт
|
Функция НастройкаСканирования(Имя, Значение, ИдентификаторКлиента) Экспорт
|
||||||
|
|
||||||
Элемент = Новый Структура;
|
Элемент = Новый Структура;
|
||||||
Элемент.Вставить("Объект", "НастройкиСканирования/" + Имя);
|
Элемент.Вставить("Объект", "НастройкиСканирования/" + Имя);
|
||||||
|
|||||||
@@ -3227,9 +3227,9 @@
|
|||||||
|
|
||||||
МассивСтруктур = Новый Массив;
|
МассивСтруктур = Новый Массив;
|
||||||
|
|
||||||
МассивСтруктур.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("КаталогЖурналаСканирования",
|
МассивСтруктур.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("КаталогЖурналаСканирования",
|
||||||
"", ИдентификаторКлиента));
|
"", ИдентификаторКлиента));
|
||||||
МассивСтруктур.Добавить(РаботаСФайламиСлужебный.СформироватьНастройкуСканирования("ИспользоватьКаталогЖурналаСканирования",
|
МассивСтруктур.Добавить(РаботаСФайламиСлужебный.НастройкаСканирования("ИспользоватьКаталогЖурналаСканирования",
|
||||||
Ложь, ИдентификаторКлиента));
|
Ложь, ИдентификаторКлиента));
|
||||||
|
|
||||||
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранитьМассив(МассивСтруктур, Истина);
|
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранитьМассив(МассивСтруктур, Истина);
|
||||||
|
|||||||
@@ -203,7 +203,21 @@
|
|||||||
ПараметрыПриложения.Вставить(ИмяПараметраВложенныхПоказателей(), Новый Массив);
|
ПараметрыПриложения.Вставить(ИмяПараметраВложенныхПоказателей(), Новый Массив);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПроверитьПолучитьСерверныеОповещенияСПоказателями(СостояниеПолучения, Показатели);
|
Попытка
|
||||||
|
ПроверитьПолучитьСерверныеОповещенияСПоказателями(СостояниеПолучения, Показатели);
|
||||||
|
Исключение
|
||||||
|
СерверныеВызовыРазрешены = Истина;
|
||||||
|
Попытка
|
||||||
|
СтандартныеПодсистемыВызовСервера.ИмяОбъектаМетаданных(Тип("Неопределено"));
|
||||||
|
Исключение
|
||||||
|
СерверныеВызовыРазрешены = Ложь;
|
||||||
|
КонецПопытки;
|
||||||
|
Если Не СерверныеВызовыРазрешены Тогда
|
||||||
|
ПодключитьОбработчикПроверкиПолученияСерверныхОповещений(15);
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
ВызватьИсключение;
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
ДобавитьОсновнойПоказатель(Показатели, МоментНачала,
|
ДобавитьОсновнойПоказатель(Показатели, МоментНачала,
|
||||||
"СерверныеОповещенияКлиент.ПроверитьПолучитьСерверныеОповещения", Истина);
|
"СерверныеОповещенияКлиент.ПроверитьПолучитьСерверныеОповещения", Истина);
|
||||||
|
|||||||
@@ -396,13 +396,7 @@
|
|||||||
НовыйФормат.Картинка = БиблиотекаКартинок.ФорматPDF;
|
НовыйФормат.Картинка = БиблиотекаКартинок.ФорматPDF;
|
||||||
НовыйФормат.Представление = ПредставлениеТипаФайлаТабличногоДокументаPDF();
|
НовыйФормат.Представление = ПредставлениеТипаФайлаТабличногоДокументаPDF();
|
||||||
|
|
||||||
// Документ PDF (.pdf) (устаревший формат для ФНС)
|
СтандартныеПодсистемыСерверЛокализация.ПриНастройкеФорматовСохраненияТабличногоДокумента(ТаблицаФорматов);
|
||||||
НовыйФормат = ТаблицаФорматов.Добавить();
|
|
||||||
НовыйФормат.ТипФайлаТабличногоДокумента = ТипФайлаТабличногоДокумента.PDF;
|
|
||||||
НовыйФормат.Ссылка = Перечисления.ФорматыСохраненияОтчетов.PDF;
|
|
||||||
НовыйФормат.Расширение = "PDF";
|
|
||||||
НовыйФормат.Картинка = БиблиотекаКартинок.ФорматPDF;
|
|
||||||
НовыйФормат.Представление = НСтр("ru = 'Документ PDF (устаревший формат)'");
|
|
||||||
|
|
||||||
// Табличный документ (.mxl)
|
// Табличный документ (.mxl)
|
||||||
НовыйФормат = ТаблицаФорматов.Добавить();
|
НовыйФормат = ТаблицаФорматов.Добавить();
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Copyright (c) 2024, ООО 1С-Софт
|
||||||
|
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||||
|
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||||
|
// Текст лицензии доступен по ссылке:
|
||||||
|
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
// См. СтандартныеПодсистемыСервер.НастройкиФорматовСохраненияТабличногоДокумента
|
||||||
|
//
|
||||||
|
Процедура ПриНастройкеФорматовСохраненияТабличногоДокумента(ТаблицаФорматов) Экспорт
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
// PDF (.pdf) (устаревший формат для ФНС)
|
||||||
|
НовыйФормат = ТаблицаФорматов.Добавить();
|
||||||
|
НовыйФормат.ТипФайлаТабличногоДокумента = ТипФайлаТабличногоДокумента.PDF;
|
||||||
|
НовыйФормат.Ссылка = Перечисления.ФорматыСохраненияОтчетов.PDF;
|
||||||
|
НовыйФормат.Расширение = "PDF";
|
||||||
|
НовыйФормат.Картинка = БиблиотекаКартинок.ФорматPDF;
|
||||||
|
НовыйФормат.Представление = НСтр("ru = 'Документ PDF (для ФНС)'");
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
#КонецОбласти
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="91d42c1f-af78-4c21-8071-61a347a94d5d">
|
||||||
|
<name>СтандартныеПодсистемыСерверЛокализация</name>
|
||||||
|
<synonym>
|
||||||
|
<key>ru</key>
|
||||||
|
<value>Стандартные подсистемы сервер локализация</value>
|
||||||
|
</synonym>
|
||||||
|
<server>true</server>
|
||||||
|
<externalConnection>true</externalConnection>
|
||||||
|
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||||
|
</mdclass:CommonModule>
|
||||||
@@ -696,7 +696,67 @@
|
|||||||
// Булево
|
// Булево
|
||||||
//
|
//
|
||||||
Функция ПоддерживаетсяРегистрацияИзмененийПраваДоступа() Экспорт
|
Функция ПоддерживаетсяРегистрацияИзмененийПраваДоступа() Экспорт
|
||||||
Возврат Ложь;
|
Возврат Истина;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка
|
||||||
|
//
|
||||||
|
Функция ИмяСобытияИзменениеУчастниковГруппДоступаДляЖурналаРегистрации() Экспорт
|
||||||
|
|
||||||
|
Возврат НСтр("ru = 'Управление доступом.Изменение участников групп доступа'",
|
||||||
|
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка
|
||||||
|
//
|
||||||
|
Функция ИмяСобытияИзменениеРазрешенныхЗначенийДляЖурналаРегистрации() Экспорт
|
||||||
|
|
||||||
|
Возврат НСтр("ru = 'Управление доступом.Изменение разрешенных значений'",
|
||||||
|
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Строка
|
||||||
|
//
|
||||||
|
Функция ИмяСобытияИзменениеРолейПрофилейДляЖурналаРегистрации() Экспорт
|
||||||
|
|
||||||
|
Возврат НСтр("ru = 'Управление доступом.Изменение ролей профилей'",
|
||||||
|
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// См. СвойстваВидовДоступа
|
||||||
|
Функция СвойстваВсехВидовДоступа() Экспорт
|
||||||
|
Возврат СвойстваВидовДоступа();
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура:
|
||||||
|
// * ПолноеИмяФормыСпискаГруппДоступа - Строка
|
||||||
|
// * ПолноеИмяФормыЭлементаГруппДоступа - Строка
|
||||||
|
// * ПолноеИмяФормыСпискаПрофилей - Строка
|
||||||
|
// * ПолноеИмяФормыЭлементаПрофилей - Строка
|
||||||
|
// * ТипСправочникСсылкаГруппыДоступа - Тип
|
||||||
|
// * ТипСправочникСсылкаПрофилиГруппДоступа - Тип
|
||||||
|
// * ТипыЗначенийДоступа - Массив из Тип
|
||||||
|
//
|
||||||
|
Функция ПараметрыДляОтчетов() Экспорт
|
||||||
|
|
||||||
|
Результат = Новый Структура;
|
||||||
|
Результат.Вставить("ПолноеИмяФормыСпискаГруппДоступа", "Справочник.ГруппыДоступа.Форма.ФормаСписка");
|
||||||
|
Результат.Вставить("ПолноеИмяФормыЭлементаГруппДоступа", "Справочник.ГруппыДоступа.Форма.ФормаЭлемента");
|
||||||
|
Результат.Вставить("ПолноеИмяФормыСпискаПрофилей", "Справочник.ПрофилиГруппДоступа.Форма.ФормаСписка");
|
||||||
|
Результат.Вставить("ПолноеИмяФормыЭлементаПрофилей", "Справочник.ПрофилиГруппДоступа.Форма.ФормаЭлемента");
|
||||||
|
Результат.Вставить("ТипСправочникСсылкаГруппыДоступа", Тип("СправочникСсылка.ГруппыДоступа"));
|
||||||
|
Результат.Вставить("ТипСправочникСсылкаПрофилиГруппДоступа", Тип("СправочникСсылка.ПрофилиГруппДоступа"));
|
||||||
|
Результат.Вставить("ТипыЗначенийДоступа", Метаданные.ОпределяемыеТипы.ЗначениеДоступа.Тип.Типы());
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
#Область УниверсальноеОграничение
|
#Область УниверсальноеОграничение
|
||||||
@@ -2221,6 +2281,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Параметр "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа".
|
// Параметр "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа".
|
||||||
|
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра();
|
||||||
ОбновитьГруппыИНаборыЗначенийДоступаПриИзмененииТиповГруппИЗначений();
|
ОбновитьГруппыИНаборыЗначенийДоступаПриИзмененииТиповГруппИЗначений();
|
||||||
|
|
||||||
// Параметр "СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов".
|
// Параметр "СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов".
|
||||||
@@ -2570,6 +2631,56 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// Процедуры и функция для подсистемы Пользователи.
|
||||||
|
|
||||||
|
Функция ТекстЗапросаГруппДоступаПриИзмененииУчастниковГруппПользователей() Экспорт
|
||||||
|
|
||||||
|
Возврат
|
||||||
|
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||||
|
| УчастникиГруппДоступа.Ссылка КАК ГруппаДоступа,
|
||||||
|
| УчастникиГруппДоступа.Пользователь КАК Участник,
|
||||||
|
| УчастникиГруппДоступа.СрокДействия КАК СрокДействия
|
||||||
|
|ПОМЕСТИТЬ УчастникиГруппДоступа
|
||||||
|
|ИЗ
|
||||||
|
| Справочник.ГруппыДоступа.Пользователи КАК УчастникиГруппДоступа
|
||||||
|
| ЛЕВОЕ СОЕДИНЕНИЕ ИзмененияСоставов КАК ИзмененияСоставовГрупп
|
||||||
|
| ПО (ИзмененияСоставовГрупп.ГруппаПользователей = УчастникиГруппДоступа.Пользователь)
|
||||||
|
| ЛЕВОЕ СОЕДИНЕНИЕ ИзмененияСоставов КАК ИзмененияАктивностиПользователей
|
||||||
|
| ПО (ИзмененияАктивностиПользователей.Пользователь = УчастникиГруппДоступа.Пользователь)
|
||||||
|
| И (ИзмененияАктивностиПользователей.ГруппаПользователей = &ГруппаВсеПользователи)
|
||||||
|
|ГДЕ
|
||||||
|
| (НЕ ИзмененияСоставовГрупп.ГруппаПользователей ЕСТЬ NULL
|
||||||
|
| ИЛИ НЕ ИзмененияАктивностиПользователей.Пользователь ЕСТЬ NULL)
|
||||||
|
|;
|
||||||
|
|
|
||||||
|
|////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|ВЫБРАТЬ
|
||||||
|
| УчастникиГруппДоступа.ГруппаДоступа КАК ГруппаДоступа,
|
||||||
|
| УчастникиГруппДоступа.Участник КАК Участник,
|
||||||
|
| УчастникиГруппДоступа.СрокДействия КАК СрокДействия
|
||||||
|
|ИЗ
|
||||||
|
| УчастникиГруппДоступа КАК УчастникиГруппДоступа
|
||||||
|
|;
|
||||||
|
|
|
||||||
|
|////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|ВЫБРАТЬ
|
||||||
|
| ГруппыДоступа.Ссылка КАК ГруппаДоступа,
|
||||||
|
| ПРЕДСТАВЛЕНИЕ(ГруппыДоступа.Ссылка) КАК Представление,
|
||||||
|
| ГруппыДоступа.ПометкаУдаления КАК ПометкаУдаления,
|
||||||
|
| ГруппыДоступа.Профиль КАК Профиль,
|
||||||
|
| ПРЕДСТАВЛЕНИЕ(ГруппыДоступа.Профиль) КАК ПредставлениеПрофиля,
|
||||||
|
| ЕСТЬNULL(ГруппыДоступа.Профиль.ПометкаУдаления, ИСТИНА) КАК ПометкаУдаленияПрофиля
|
||||||
|
|ИЗ
|
||||||
|
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|
||||||
|
|ГДЕ
|
||||||
|
| ГруппыДоступа.Ссылка В
|
||||||
|
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||||
|
| УчастникиГруппДоступа.ГруппаДоступа
|
||||||
|
| ИЗ
|
||||||
|
| УчастникиГруппДоступа КАК УчастникиГруппДоступа)";
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Процедуры и функции подсистемы ЦентрМониторинга.
|
// Процедуры и функции подсистемы ЦентрМониторинга.
|
||||||
|
|
||||||
// Возвращает текст запроса для сбора статистической информации об использовании профилей групп доступа и ролей.
|
// Возвращает текст запроса для сбора статистической информации об использовании профилей групп доступа и ролей.
|
||||||
@@ -3372,35 +3483,56 @@
|
|||||||
//
|
//
|
||||||
Процедура ОбновитьГруппыЗначенийДоступаПередЗаписью(Знач Источник, Отказ) Экспорт
|
Процедура ОбновитьГруппыЗначенийДоступаПередЗаписью(Знач Источник, Отказ) Экспорт
|
||||||
|
|
||||||
Если Источник.ОбменДанными.Загрузка Тогда
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
Возврат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Источник) Тогда
|
Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Источник) Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Источник.ЭтоНовый()
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа()
|
||||||
И ОбщегоНазначения.ИнформационнаяБазаФайловая()
|
Или Не Источник.ОбменДанными.Загрузка Тогда
|
||||||
И Не ПропуститьПроверкуДоступа(Отказ, Источник) Тогда
|
|
||||||
|
|
||||||
Блокировка = Новый БлокировкаДанных;
|
Если Источник.ЭтоНовый()
|
||||||
Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
|
И ОбщегоНазначения.ИнформационнаяБазаФайловая()
|
||||||
Блокировка.Заблокировать();
|
И Не ПропуститьПроверкуДоступа(Отказ, Источник) Тогда
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
СвойстваВидовДоступа = СвойстваВидовДоступа();
|
Блокировка = Новый БлокировкаДанных;
|
||||||
ЗначенияДоступаСГруппами = СвойстваВидовДоступа.ЗначенияДоступаСГруппами;
|
Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
|
||||||
|
Блокировка.Заблокировать();
|
||||||
Если ЗначенияДоступаСГруппами.ПоТипамДляОбновления.Получить(ТипЗнч(Источник)) <> Неопределено Тогда
|
|
||||||
РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьГруппыЗначенийДоступа(Источник);
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если СвойстваВидовДоступа.ПоТипамЗначенийСИерархией.Получить(ТипЗнч(Источник)) <> Неопределено Тогда
|
|
||||||
Родитель = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.Ссылка, "Родитель");
|
|
||||||
Если Источник.Родитель <> Родитель Тогда
|
|
||||||
Источник.ДополнительныеСвойства.Вставить("ОбновитьЗначенияГруппДоступа");
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
СвойстваВидовДоступа = СвойстваВидовДоступа();
|
||||||
|
СтарыеЗначения = Новый Структура;
|
||||||
|
Если СвойстваВидовДоступа.ПоТипамЗначенийСИерархией.Получить(ТипЗнч(Источник)) <> Неопределено Тогда
|
||||||
|
СтарыеЗначения.Вставить("Родитель", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.Ссылка, "Родитель"));
|
||||||
|
КонецЕсли;
|
||||||
|
Свойства = СвойстваВидовДоступа.ЗначенияДоступаСГруппами.ПоТипамДляОбновления.Получить(ТипЗнч(Источник));
|
||||||
|
Если Свойства <> Неопределено
|
||||||
|
И Свойства.ТипГруппЗначений <> Тип("Неопределено")
|
||||||
|
И ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа() Тогда
|
||||||
|
|
||||||
|
ИмяПоля = ?(Свойства.НесколькоГруппЗначений, "ГруппыДоступа", "ГруппаДоступа");
|
||||||
|
Попытка
|
||||||
|
ЗначениеПоля = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Источник.Ссылка, ИмяПоля);
|
||||||
|
Исключение
|
||||||
|
ИменаТаблиц = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Источник.Метаданные().ПолноеИмя());
|
||||||
|
ПоТипамСсылокДляОбновления = СвойстваВидовДоступа.ЗначенияДоступаСГруппами.ПоТипамСсылокДляОбновления;
|
||||||
|
РегистрыСведений.ГруппыЗначенийДоступа.ПроверитьМетаданныеТаблиц(ИменаТаблиц, ПоТипамСсылокДляОбновления);
|
||||||
|
ВызватьИсключение;
|
||||||
|
КонецПопытки;
|
||||||
|
СтарыеЗначения.Вставить(ИмяПоля, ЗначениеПоля);
|
||||||
|
КонецЕсли;
|
||||||
|
Если ЗначениеЗаполнено(СтарыеЗначения) Тогда
|
||||||
|
Источник.ДополнительныеСвойства.Вставить("УправлениеДоступомСтарыеЗначения", СтарыеЗначения);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
|
Если Источник.ОбменДанными.Загрузка Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Свойства <> Неопределено Тогда
|
||||||
|
РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьГруппыЗначенийДоступа(Источник);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -3412,11 +3544,33 @@
|
|||||||
//
|
//
|
||||||
Процедура ОбновитьГруппыЗначенийДоступаПриЗаписи(Источник) Экспорт
|
Процедура ОбновитьГруппыЗначенийДоступаПриЗаписи(Источник) Экспорт
|
||||||
|
|
||||||
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
|
Если СтандартныеПодсистемыСервер.ЭтоИдентификаторОбъектаМетаданных(Источник) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа()
|
||||||
|
И Источник.ДополнительныеСвойства.Свойство("УправлениеДоступомСтарыеЗначения") Тогда
|
||||||
|
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
|
||||||
|
Справочники.ГруппыДоступа.ЗарегистрироватьИзменениеРазрешенныхЗначений(Источник,
|
||||||
|
Источник.ДополнительныеСвойства.УправлениеДоступомСтарыеЗначения);
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
Если Источник.ОбменДанными.Загрузка Тогда
|
Если Источник.ОбменДанными.Загрузка Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Источник.ДополнительныеСвойства.Свойство("ОбновитьЗначенияГруппДоступа") Тогда
|
Если Источник.ДополнительныеСвойства.Свойство("УправлениеДоступомСтарыеЗначения")
|
||||||
|
И Источник.ДополнительныеСвойства.УправлениеДоступомСтарыеЗначения.Свойство("Родитель")
|
||||||
|
И Источник.Родитель <> Источник.ДополнительныеСвойства.УправлениеДоступомСтарыеЗначения.Родитель Тогда
|
||||||
|
|
||||||
ГруппыДоступа = ГруппыДоступаИспользующиеИерархиюЗначенийДоступа(ТипЗнч(Источник.Ссылка));
|
ГруппыДоступа = ГруппыДоступаИспользующиеИерархиюЗначенийДоступа(ТипЗнч(Источник.Ссылка));
|
||||||
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступа);
|
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(ГруппыДоступа);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -3837,7 +3991,8 @@
|
|||||||
|ИЗ
|
|ИЗ
|
||||||
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
| ИспользуемыеВидыДоступа.ТипЗначенийДоступа = &ТипЗначенийДоступа";
|
| ИспользуемыеВидыДоступа.ТипЗначенийДоступа = &ТипЗначенийДоступа
|
||||||
|
| И ИспользуемыеВидыДоступа.Используется = ИСТИНА";
|
||||||
|
|
||||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
@@ -3851,16 +4006,20 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Параметры:
|
||||||
|
// БезУчетаОграниченияДоступа - Булево
|
||||||
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Соответствие из КлючИЗначение:
|
// Соответствие из КлючИЗначение:
|
||||||
// * Ключ - ОпределяемыйТип.ЗначениеДоступа - пустая ссылка основного типа вида доступа.
|
// * Ключ - ОпределяемыйТип.ЗначениеДоступа - пустая ссылка основного типа вида доступа.
|
||||||
// * Значение - Булево - значение Истина.
|
// * Значение - Булево - значение Истина.
|
||||||
//
|
//
|
||||||
Функция ИспользуемыеВидыДоступа() Экспорт
|
Функция ИспользуемыеВидыДоступа(БезУчетаОграниченияДоступа = Ложь) Экспорт
|
||||||
|
|
||||||
Результат = Новый Соответствие;
|
Результат = Новый Соответствие;
|
||||||
|
|
||||||
Если Не УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда
|
Если Не БезУчетаОграниченияДоступа
|
||||||
|
И Не УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -3869,7 +4028,9 @@
|
|||||||
"ВЫБРАТЬ
|
"ВЫБРАТЬ
|
||||||
| ИспользуемыеВидыДоступа.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|
| ИспользуемыеВидыДоступа.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|
||||||
|ИЗ
|
|ИЗ
|
||||||
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа";
|
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|
||||||
|
|ГДЕ
|
||||||
|
| ИспользуемыеВидыДоступа.Используется = ИСТИНА";
|
||||||
|
|
||||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
@@ -5215,6 +5376,7 @@
|
|||||||
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистраПоИзменениямКонфигурации();
|
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистраПоИзменениямКонфигурации();
|
||||||
|
|
||||||
// Параметр "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа".
|
// Параметр "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа".
|
||||||
|
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра();
|
||||||
ОбновитьГруппыИНаборыЗначенийДоступаПриИзмененииТиповГруппИЗначений();
|
ОбновитьГруппыИНаборыЗначенийДоступаПриИзмененииТиповГруппИЗначений();
|
||||||
|
|
||||||
// Параметр "СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов".
|
// Параметр "СтандартныеПодсистемы.УправлениеДоступом.ВозможныеПраваДляНастройкиПравОбъектов".
|
||||||
@@ -22919,33 +23081,47 @@
|
|||||||
Если Условие.Узел = "ЧтениеОбъектаРазрешено"
|
Если Условие.Узел = "ЧтениеОбъектаРазрешено"
|
||||||
Или Условие.Узел = "ИзменениеОбъектаРазрешено" Тогда
|
Или Условие.Узел = "ИзменениеОбъектаРазрешено" Тогда
|
||||||
|
|
||||||
Результат = Новый Соответствие;
|
Результат = "Ложь";
|
||||||
ПроверятьПравоИзменение = Условие.Узел <> "ЧтениеОбъектаРазрешено";
|
ПроверятьПравоИзменение = Условие.Узел <> "ЧтениеОбъектаРазрешено";
|
||||||
Для Каждого КлючИЗначение Из ПраваНаВедущийКлючДоступа Цикл
|
ПравоИзменение = ПраваНаВедущийКлючДоступа.Получить(Контекст.ПустаяГруппаДоступа);
|
||||||
Если ПроверятьПравоИзменение И Не КлючИЗначение.Значение Тогда
|
Если ПравоИзменение <> Неопределено
|
||||||
Продолжить;
|
И (Не ПроверятьПравоИзменение Или ПравоИзменение) Тогда
|
||||||
КонецЕсли;
|
Результат = "Истина";
|
||||||
Если ТипЗнч(КлючИЗначение.Ключ) <> Контекст.ТипГруппыДоступа Тогда
|
Иначе
|
||||||
Результат.Вставить(КлючИЗначение.Ключ, Истина);
|
ПравоИзменение = ПраваНаВедущийКлючДоступа.Получить(Контекст.ГруппаДоступа);
|
||||||
|
Если ПравоИзменение <> Неопределено
|
||||||
ИначеЕсли КлючИЗначение.Ключ = Контекст.ГруппаДоступа Тогда
|
И (Не ПроверятьПравоИзменение Или ПравоИзменение) Тогда
|
||||||
УчастникиГруппыДоступа = Контекст.УчастникиГруппДоступа.Получить(
|
|
||||||
Контекст.ГруппаДоступа);
|
|
||||||
Если УчастникиГруппыДоступа <> Неопределено Тогда
|
|
||||||
Если Результат.Количество() = 0 Тогда
|
|
||||||
Результат = Новый Соответствие(
|
|
||||||
Новый ФиксированноеСоответствие(УчастникиГруппыДоступа));
|
|
||||||
Иначе
|
|
||||||
Для Каждого ОписаниеУчастника Из УчастникиГруппыДоступа Цикл
|
|
||||||
Результат.Вставить(ОписаниеУчастника.Ключ, Истина);
|
|
||||||
КонецЦикла;
|
|
||||||
КонецЕсли;
|
|
||||||
КонецЕсли;
|
|
||||||
ИначеЕсли КлючИЗначение.Ключ = Контекст.ПустаяГруппаДоступа Тогда
|
|
||||||
Результат = "Истина";
|
Результат = "Истина";
|
||||||
Прервать;
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЕсли;
|
||||||
|
Если Результат <> "Истина" Тогда
|
||||||
|
Результат = Новый Соответствие;
|
||||||
|
Для Каждого КлючИЗначение Из ПраваНаВедущийКлючДоступа Цикл
|
||||||
|
Если ПроверятьПравоИзменение И Не КлючИЗначение.Значение Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
ЗначениеКлюча = КлючИЗначение.Ключ;
|
||||||
|
ТипКлюча = ТипЗнч(ЗначениеКлюча);
|
||||||
|
Если ТипКлюча = Контекст.ТипГруппыДоступа Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
ТекущийРезультат = "Ложь";
|
||||||
|
Если ТипКлюча = Контекст.ТипПользователя Тогда
|
||||||
|
ЗаполнитьРезультатДляПользователя(ТекущийРезультат, ЗначениеКлюча, Контекст);
|
||||||
|
ИначеЕсли ТипКлюча = Контекст.ТипГруппыПользователей Тогда
|
||||||
|
ЗаполнитьРезультатДляГруппыПользователей(ТекущийРезультат, ЗначениеКлюча, Контекст);
|
||||||
|
КонецЕсли;
|
||||||
|
Если ТекущийРезультат = "Ложь" Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
Для Каждого ОписаниеУчастника Из ТекущийРезультат Цикл
|
||||||
|
Результат.Вставить(ОписаниеУчастника.Ключ, Истина);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЦикла;
|
||||||
|
Если Результат.Количество() = 0 Тогда
|
||||||
|
Результат = "Ложь";
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
Результат = "Ложь";
|
Результат = "Ложь";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -22994,16 +23170,7 @@
|
|||||||
Или Условие.Узел = "ИзменениеСпискаРазрешено" И ПравоИзменение = Истина
|
Или Условие.Узел = "ИзменениеСпискаРазрешено" И ПравоИзменение = Истина
|
||||||
Или Условие.Узел = "ИзменениеОбъектаРазрешено" И ПравоИзменение = Истина Тогда
|
Или Условие.Узел = "ИзменениеОбъектаРазрешено" И ПравоИзменение = Истина Тогда
|
||||||
|
|
||||||
Если Контекст.РассчитыватьПраваПользователей Тогда
|
Результат = "Истина";
|
||||||
УчастникиГруппыДоступа = Контекст.УчастникиГруппДоступа.Получить(Контекст.ГруппаДоступа);
|
|
||||||
Если УчастникиГруппыДоступа <> Неопределено Тогда
|
|
||||||
Результат = Новый Соответствие(Новый ФиксированноеСоответствие(УчастникиГруппыДоступа));
|
|
||||||
Иначе
|
|
||||||
Результат = "Ложь";
|
|
||||||
КонецЕсли;
|
|
||||||
Иначе
|
|
||||||
Результат = "Истина";
|
|
||||||
КонецЕсли;
|
|
||||||
Иначе
|
Иначе
|
||||||
Результат = "Ложь";
|
Результат = "Ложь";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -24675,7 +24842,8 @@
|
|||||||
|ИЗ
|
|ИЗ
|
||||||
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|
||||||
|ГДЕ
|
|ГДЕ
|
||||||
| &ОграничиватьДоступНаУровнеЗаписей
|
| ИспользуемыеВидыДоступа.Используется = ИСТИНА
|
||||||
|
| И &ОграничиватьДоступНаУровнеЗаписей
|
||||||
|
|
|
|
||||||
|УПОРЯДОЧИТЬ ПО
|
|УПОРЯДОЧИТЬ ПО
|
||||||
| ТипЗначенийДоступа
|
| ТипЗначенийДоступа
|
||||||
@@ -26178,8 +26346,9 @@
|
|||||||
Процедура ЗапланироватьОбновлениеДоступаПриИзмененииПараметров(СтараяВерсия, Параметры)
|
Процедура ЗапланироватьОбновлениеДоступаПриИзмененииПараметров(СтараяВерсия, Параметры)
|
||||||
|
|
||||||
НедоступныеСписки = Новый Массив;
|
НедоступныеСписки = Новый Массив;
|
||||||
|
СтараяВерсияСтруктурыКэша = "0";
|
||||||
Списки = СпискиСИзменениемВерсий(СтараяВерсия,
|
Списки = СпискиСИзменениемВерсий(СтараяВерсия,
|
||||||
Параметры.ВерсииОграниченийСписков, НедоступныеСписки);
|
Параметры.ВерсииОграниченийСписков, НедоступныеСписки, СтараяВерсияСтруктурыКэша);
|
||||||
|
|
||||||
ПараметрыПланирования = ПараметрыПланированияОбновленияДоступа();
|
ПараметрыПланирования = ПараметрыПланированияОбновленияДоступа();
|
||||||
ПараметрыПланирования.ВерсииОграниченийСписков = Параметры.ВерсииОграниченийСписков;
|
ПараметрыПланирования.ВерсииОграниченийСписков = Параметры.ВерсииОграниченийСписков;
|
||||||
@@ -26211,6 +26380,15 @@
|
|||||||
ПараметрыПланирования);
|
ПараметрыПланирования);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Списки = Неопределено
|
||||||
|
Или СтараяВерсияСтруктурыКэша = ВерсияСтруктурыКэша() Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РегистрыСведений.ПараметрыОграниченияДоступа.ПриИзмененииВерсииСтруктурыКэша(
|
||||||
|
СтараяВерсияСтруктурыКэша,
|
||||||
|
Параметры.ХранимыеПараметры.ДляЗаписиОбъектовИПроверкиПрав.Получить());
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Для процедуры ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений и
|
// Для процедуры ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений и
|
||||||
@@ -26367,7 +26545,8 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Для функции НоваяВерсияПараметровОграниченияДоступа.
|
// Для функции НоваяВерсияПараметровОграниченияДоступа.
|
||||||
Функция СпискиСИзменениемВерсий(Версия, НовыеВерсииОграниченийСписков, НедоступныеСписки)
|
Функция СпискиСИзменениемВерсий(Версия, НовыеВерсииОграниченийСписков, НедоступныеСписки,
|
||||||
|
СтараяВерсияСтруктурыКэша)
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Версия) Тогда
|
Если Не ЗначениеЗаполнено(Версия) Тогда
|
||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
@@ -26387,6 +26566,10 @@
|
|||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Свойства = Новый Структура("ВерсияСтруктурыКэша", СтараяВерсияСтруктурыКэша);
|
||||||
|
ЗаполнитьЗначенияСвойств(Свойства, ПараметрыЗаписи);
|
||||||
|
СтараяВерсияСтруктурыКэша = Свойства.ВерсияСтруктурыКэша;
|
||||||
|
|
||||||
Таблица = Новый ТаблицаЗначений;
|
Таблица = Новый ТаблицаЗначений;
|
||||||
Таблица.Колонки.Добавить("Список", Новый ОписаниеТипов("Строка"));
|
Таблица.Колонки.Добавить("Список", Новый ОписаниеТипов("Строка"));
|
||||||
Таблица.Колонки.Добавить("Версия", Новый ОписаниеТипов("Строка"));
|
Таблица.Колонки.Добавить("Версия", Новый ОписаниеТипов("Строка"));
|
||||||
@@ -26486,11 +26669,11 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Строка
|
// Строка
|
||||||
//
|
//
|
||||||
Функция ВерсияСтруктурыКэша()
|
Функция ВерсияСтруктурыКэша() Экспорт
|
||||||
|
|
||||||
// Число нужно увеличивать при внесении изменений в состав параметров кэша
|
// Число нужно увеличивать при внесении изменений в состав параметров кэша
|
||||||
// (в том числе при изменении версии шаблонов).
|
// (в том числе при изменении версии шаблонов).
|
||||||
Возврат "25" + ВерсияПеревода();
|
Возврат "27" + ВерсияПеревода();
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -27261,7 +27444,6 @@
|
|||||||
ТаблицаСвойств.Колонки.Добавить("Обработан", Новый ОписаниеТипов("Булево"));
|
ТаблицаСвойств.Колонки.Добавить("Обработан", Новый ОписаниеТипов("Булево"));
|
||||||
ТаблицаСвойств.Колонки.Добавить("ОграничениеПоВладельцуВозможно", Новый ОписаниеТипов("Булево"));
|
ТаблицаСвойств.Колонки.Добавить("ОграничениеПоВладельцуВозможно", Новый ОписаниеТипов("Булево"));
|
||||||
ТаблицаСвойств.Колонки.Добавить("ОграничениеПоВладельцуВключено", Новый ОписаниеТипов("Булево"));
|
ТаблицаСвойств.Колонки.Добавить("ОграничениеПоВладельцуВключено", Новый ОписаниеТипов("Булево"));
|
||||||
ТаблицаСвойств.Колонки.Добавить("ОграничениеПоВладельцуОтключено", Новый ОписаниеТипов("Булево"));
|
|
||||||
ТаблицаСвойств.Колонки.Добавить("КлючиДоступаПользователей", Новый ОписаниеТипов("Булево"));
|
ТаблицаСвойств.Колонки.Добавить("КлючиДоступаПользователей", Новый ОписаниеТипов("Булево"));
|
||||||
ТаблицаСвойств.Колонки.Добавить("ЕстьЗависимыеСпискиБезЗаписиКлючейДоступа", Новый ОписаниеТипов("Булево"));
|
ТаблицаСвойств.Колонки.Добавить("ЕстьЗависимыеСпискиБезЗаписиКлючейДоступа", Новый ОписаниеТипов("Булево"));
|
||||||
ТаблицаСвойств.Колонки.Добавить("ЗависимыеСпискиБезЗаписиКлючейДоступа", Новый ОписаниеТипов("Соответствие"));
|
ТаблицаСвойств.Колонки.Добавить("ЗависимыеСпискиБезЗаписиКлючейДоступа", Новый ОписаниеТипов("Соответствие"));
|
||||||
@@ -27408,7 +27590,8 @@
|
|||||||
"РассчитыватьПраваПользователей", Истина, Контекст);
|
"РассчитыватьПраваПользователей", Истина, Контекст);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
СвойстваСписка.КлючиДоступаПользователей = Истина;
|
СвойстваСписка.КлючиДоступаПользователей = Истина;
|
||||||
Если КлючиДоступаГруппДоступа Тогда
|
Если СвойстваСписка.ОграничениеПоВладельцуВключено
|
||||||
|
И КлючиДоступаГруппДоступа Тогда
|
||||||
СвойстваСписка.КлючиДоступаПользователейИГруппДоступа = Истина;
|
СвойстваСписка.КлючиДоступаПользователейИГруппДоступа = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -27514,7 +27697,6 @@
|
|||||||
// * Обработан - Булево
|
// * Обработан - Булево
|
||||||
// * ОграничениеПоВладельцуВозможно - Булево
|
// * ОграничениеПоВладельцуВозможно - Булево
|
||||||
// * ОграничениеПоВладельцуВключено - Булево
|
// * ОграничениеПоВладельцуВключено - Булево
|
||||||
// * ОграничениеПоВладельцуОтключено - Булево
|
|
||||||
// * КлючиДоступаПользователей - Булево
|
// * КлючиДоступаПользователей - Булево
|
||||||
// * ЕстьЗависимыеСпискиБезЗаписиКлючейДоступа - Булево
|
// * ЕстьЗависимыеСпискиБезЗаписиКлючейДоступа - Булево
|
||||||
// * КлючиДоступаПользователейИГруппДоступа - Булево
|
// * КлючиДоступаПользователейИГруппДоступа - Булево
|
||||||
@@ -27608,7 +27790,7 @@
|
|||||||
|
|
||||||
СвойстваЗависимогоСписка.ОграничениеПоВладельцуВключено =
|
СвойстваЗависимогоСписка.ОграничениеПоВладельцуВключено =
|
||||||
СвойстваЗависимогоСписка.ОграничениеПоВладельцуВозможно
|
СвойстваЗависимогоСписка.ОграничениеПоВладельцуВозможно
|
||||||
И Не СвойстваЗависимогоСписка.ОграничениеПоВладельцуОтключено;
|
И Не СвойстваЗависимогоСписка.Параметры.ПолеВладельца.Отключено;
|
||||||
|
|
||||||
ЗависимыйСписокСОптимизацией = СвойстваЗависимогоСписка.ОграничениеПоВладельцуВключено;
|
ЗависимыйСписокСОптимизацией = СвойстваЗависимогоСписка.ОграничениеПоВладельцуВключено;
|
||||||
|
|
||||||
@@ -27641,7 +27823,7 @@
|
|||||||
ТекстОшибки = ТекстОшибкиСЗаголовком(ТекстОшибки, КонтекстОшибки);
|
ТекстОшибки = ТекстОшибкиСЗаголовком(ТекстОшибки, КонтекстОшибки);
|
||||||
ВызватьИсключение ТекстОшибки;
|
ВызватьИсключение ТекстОшибки;
|
||||||
Иначе
|
Иначе
|
||||||
СвойстваВедущегоСписка.ОграничениеПоВладельцуОтключено = Истина;
|
СвойстваВедущегоСписка.ОграничениеПоВладельцуВключено = Ложь;
|
||||||
СвойстваВедущегоСписка.Параметры.ПолеВладельца.Отключено = Истина;
|
СвойстваВедущегоСписка.Параметры.ПолеВладельца.Отключено = Истина;
|
||||||
УстановитьСвойствоОграничения(СвойстваВедущегоСписка.ПолноеИмя,
|
УстановитьСвойствоОграничения(СвойстваВедущегоСписка.ПолноеИмя,
|
||||||
"ПолеВладельца", СвойстваВедущегоСписка.Параметры.ПолеВладельца, Контекст);
|
"ПолеВладельца", СвойстваВедущегоСписка.Параметры.ПолеВладельца, Контекст);
|
||||||
@@ -28950,7 +29132,7 @@
|
|||||||
// * ОграничениеДоступаВключено - Булево
|
// * ОграничениеДоступаВключено - Булево
|
||||||
// * ИспользуемыеТипыЗначений - ХранилищеЗначения - смотри функцию ИспользуемыеТипыЗначений.
|
// * ИспользуемыеТипыЗначений - ХранилищеЗначения - смотри функцию ИспользуемыеТипыЗначений.
|
||||||
//
|
//
|
||||||
Функция НоваяСтруктураХранимыхПараметровЗаписи()
|
Функция НоваяСтруктураХранимыхПараметровЗаписи() Экспорт
|
||||||
|
|
||||||
ХранимыеПараметрыЗаписи = Новый Структура;
|
ХранимыеПараметрыЗаписи = Новый Структура;
|
||||||
ХранимыеПараметрыЗаписи.Вставить("ВерсияСтруктурыКэша", ВерсияСтруктурыКэша());
|
ХранимыеПараметрыЗаписи.Вставить("ВерсияСтруктурыКэша", ВерсияСтруктурыКэша());
|
||||||
|
|||||||
@@ -241,15 +241,12 @@
|
|||||||
Элементы.ТипыВидовДоступа.ТекущаяСтраница = Элементы.ОбычныйВидДоступа;
|
Элементы.ТипыВидовДоступа.ТекущаяСтраница = Элементы.ОбычныйВидДоступа;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ТекущиеДанные.ВидДоступа = Форма.ВидДоступаПользователи Тогда
|
Если ТекущиеДанные.ВидДоступа = Форма.ВидДоступаПользователи
|
||||||
ШаблонНадписи = ?(ТекущиеДанные.ВсеРазрешены,
|
Или ТекущиеДанные.ВидДоступа = Форма.ВидДоступаВнешниеПользователи Тогда
|
||||||
НСтр("ru = 'Запрещенные значения (%1) - текущий пользователь всегда разрешен'"),
|
|
||||||
НСтр("ru = 'Разрешенные значения (%1) - текущий пользователь всегда разрешен'") );
|
|
||||||
|
|
||||||
ИначеЕсли ТекущиеДанные.ВидДоступа = Форма.ВидДоступаВнешниеПользователи Тогда
|
|
||||||
ШаблонНадписи = ?(ТекущиеДанные.ВсеРазрешены,
|
ШаблонНадписи = ?(ТекущиеДанные.ВсеРазрешены,
|
||||||
НСтр("ru = 'Запрещенные значения (%1) - текущий внешний пользователь всегда разрешен'"),
|
НСтр("ru = 'Запрещенные значения (%1) - авторизованный пользователь и его группы всегда разрешены'"),
|
||||||
НСтр("ru = 'Разрешенные значения (%1) - текущий внешний пользователь всегда разрешен'") );
|
НСтр("ru = 'Разрешенные значения (%1) - авторизованный пользователь и его группы всегда разрешены'") );
|
||||||
Иначе
|
Иначе
|
||||||
ШаблонНадписи = ?(ТекущиеДанные.ВсеРазрешены,
|
ШаблонНадписи = ?(ТекущиеДанные.ВсеРазрешены,
|
||||||
НСтр("ru = 'Запрещенные значения (%1)'"),
|
НСтр("ru = 'Запрещенные значения (%1)'"),
|
||||||
|
|||||||
@@ -22,6 +22,13 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// См. УправлениеДоступомСлужебный.ПредставлениеВидовДоступа
|
||||||
|
Функция ПредставлениеВидовДоступа() Экспорт
|
||||||
|
|
||||||
|
Возврат УправлениеДоступомСлужебный.ПредставлениеВидовДоступа();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@@ -63,13 +70,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// См. УправлениеДоступомСлужебный.ПредставлениеВидовДоступа
|
|
||||||
Функция ПредставлениеВидовДоступа() Экспорт
|
|
||||||
|
|
||||||
Возврат УправлениеДоступомСлужебный.ПредставлениеВидовДоступа();
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
// Только для внутреннего использования.
|
// Только для внутреннего использования.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
|
|||||||
@@ -3701,8 +3701,6 @@
|
|||||||
|
|
||||||
Процедура УстановитьНастройкиКомандПечати(КомандыПечати, Владелец)
|
Процедура УстановитьНастройкиКомандПечати(КомандыПечати, Владелец)
|
||||||
|
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
|
||||||
|
|
||||||
ТекстЗапроса =
|
ТекстЗапроса =
|
||||||
"ВЫБРАТЬ
|
"ВЫБРАТЬ
|
||||||
| НастройкиКомандПечати.УникальныйИдентификатор КАК УникальныйИдентификатор
|
| НастройкиКомандПечати.УникальныйИдентификатор КАК УникальныйИдентификатор
|
||||||
|
|||||||
@@ -1465,8 +1465,8 @@
|
|||||||
ВложенноеУсловие.УзелДереваДокумента = УзелСУсловием;
|
ВложенноеУсловие.УзелДереваДокумента = УзелСУсловием;
|
||||||
ВложенноеУсловие.УсловиеОбласти = УсловиеОбласти;
|
ВложенноеУсловие.УсловиеОбласти = УсловиеОбласти;
|
||||||
ВложенноеУсловие.Индекс = ИндексУзла;
|
ВложенноеУсловие.Индекс = ИндексУзла;
|
||||||
|
ДобавлятьУсловныеОбласти = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ДобавлятьУсловныеОбласти = Ложь;
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|||||||
@@ -3024,7 +3024,26 @@
|
|||||||
Представление = Формат(Значение, "Л=" + КодЯзыка);
|
Представление = Формат(Значение, "Л=" + КодЯзыка);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Значение, "Наименование", , КодЯзыка);
|
ОбъектМетаданных = Значение.Метаданные();
|
||||||
|
|
||||||
|
ЕстьРеквизитНаименование = Метаданные.Справочники.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеСправочника.ВВидеНаименования
|
||||||
|
Или Метаданные.ПланыВидовРасчета.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеВидаРасчета.ВВидеНаименования
|
||||||
|
Или Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеВидаХарактеристики.ВВидеНаименования
|
||||||
|
Или Метаданные.ПланыСчетов.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеСчета.ВВидеНаименования
|
||||||
|
Или Метаданные.ПланыОбмена.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеПланаОбмена.ВВидеНаименования
|
||||||
|
Или Метаданные.Задачи.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеЗадачи.ВВидеНаименования;
|
||||||
|
|
||||||
|
Если ЕстьРеквизитНаименование Тогда
|
||||||
|
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Значение, "Наименование", , КодЯзыка);
|
||||||
|
Иначе
|
||||||
|
Представление = Строка(Значение);
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Представление;
|
Возврат Представление;
|
||||||
|
|||||||
@@ -117,7 +117,7 @@
|
|||||||
Позиция = ИнформацияПоКолонкам.Количество() + 1;
|
Позиция = ИнформацияПоКолонкам.Количество() + 1;
|
||||||
Свойства = УправлениеСвойствами.СвойстваОбъекта(Справочники[МетаданныеСправочника.Имя].ПустаяСсылка());
|
Свойства = УправлениеСвойствами.СвойстваОбъекта(Справочники[МетаданныеСправочника.Имя].ПустаяСсылка());
|
||||||
|
|
||||||
ЗначенияСвойств = ДополнительныеЗначенияСвойства(Свойства);
|
ЗначенияСвойств = ДополнительныеЗначенияСвойств(Свойства);
|
||||||
СоответствиеЗначений = Новый Соответствие;
|
СоответствиеЗначений = Новый Соответствие;
|
||||||
Для Каждого ДополнительноеЗначение Из ЗначенияСвойств Цикл
|
Для Каждого ДополнительноеЗначение Из ЗначенияСвойств Цикл
|
||||||
Значение = СоответствиеЗначений[ДополнительноеЗначение.Свойство];
|
Значение = СоответствиеЗначений[ДополнительноеЗначение.Свойство];
|
||||||
@@ -1752,13 +1752,38 @@
|
|||||||
// Параметры:
|
// Параметры:
|
||||||
// Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство для
|
// Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство для
|
||||||
// которого нужно получить перечисляемые значения.
|
// которого нужно получить перечисляемые значения.
|
||||||
// - Массив
|
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Массив из СправочникСсылка - значения свойства, если есть.
|
// Массив из СправочникСсылка - значения свойства, если есть.
|
||||||
//
|
//
|
||||||
Функция ДополнительныеЗначенияСвойства(Свойство) Экспорт
|
Функция ДополнительныеЗначенияСвойства(Свойство) Экспорт
|
||||||
|
|
||||||
|
ИмяПроцедуры = "УправлениеСвойствамиСлужебный.ДополнительныеЗначенияСвойства";
|
||||||
|
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Свойство", Свойство,
|
||||||
|
Тип("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения"));
|
||||||
|
|
||||||
|
ЗначенияСвойств = ДополнительныеЗначенияСвойств(Свойство);
|
||||||
|
Результат = ЗначенияСвойств.ВыгрузитьКолонку("Ссылка");
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращает таблицу перечисляемых значений указанного свойства.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Свойство - Массив из ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойства для
|
||||||
|
// которого нужно получить перечисляемые значения.
|
||||||
|
// - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// ТаблицаЗначений:
|
||||||
|
// * Ссылка - СправочникСсылка.ЗначенияСвойствОбъектовИерархия
|
||||||
|
// - СправочникСсылка.ЗначенияСвойствОбъектов
|
||||||
|
// * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
|
||||||
|
//
|
||||||
|
Функция ДополнительныеЗначенияСвойств(Свойство) Экспорт
|
||||||
|
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.Параметры.Вставить("Свойство", Свойство);
|
Запрос.Параметры.Вставить("Свойство", Свойство);
|
||||||
Запрос.Текст =
|
Запрос.Текст =
|
||||||
@@ -1780,11 +1805,7 @@
|
|||||||
|ГДЕ
|
|ГДЕ
|
||||||
| ЗначенияСвойствОбъектов.Владелец В (&Свойство)";
|
| ЗначенияСвойствОбъектов.Владелец В (&Свойство)";
|
||||||
|
|
||||||
Если ТипЗнч(Свойство) = Тип("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения") Тогда
|
Результат = Запрос.Выполнить().Выгрузить();
|
||||||
Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
|
|
||||||
Иначе
|
|
||||||
Результат = Запрос.Выполнить().Выгрузить();
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
|
|||||||
@@ -586,6 +586,15 @@
|
|||||||
// // Простой запуск
|
// // Простой запуск
|
||||||
// ФайловаяСистемаКлиент.ЗапуститьПрограмму("calc");
|
// ФайловаяСистемаКлиент.ЗапуститьПрограмму("calc");
|
||||||
//
|
//
|
||||||
|
// Пример:
|
||||||
|
// // Передача аргументов в виде массива:
|
||||||
|
// // Для выполнения Setup.exe -args "PIDKEY =***":
|
||||||
|
// КомандаЗапуска = Новый Массив;
|
||||||
|
// КомандаЗапуска.Добавить("Setup.exe");
|
||||||
|
// КомандаЗапуска.Добавить("- args");
|
||||||
|
// КомандаЗапуска.Добавить("PIDKEY =***");
|
||||||
|
// ФайловаяСистемаКлиент.ЗапуститьПрограмму(КомандаЗапуска);
|
||||||
|
//
|
||||||
// // Запуск с ожиданием завершения и получения кода возврата:
|
// // Запуск с ожиданием завершения и получения кода возврата:
|
||||||
// ПараметрыЗапускаПрограммы = ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы();
|
// ПараметрыЗапускаПрограммы = ФайловаяСистемаКлиент.ПараметрыЗапускаПрограммы();
|
||||||
// ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
|
// ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
|
||||||
@@ -979,6 +988,7 @@
|
|||||||
|
|
|
|
||||||
|Для этого откройте терминал и введите:
|
|Для этого откройте терминал и введите:
|
||||||
|%2
|
|%2
|
||||||
|
|
|
||||||
|Или обратитесь к администратору.'"),
|
|Или обратитесь к администратору.'"),
|
||||||
"https://docs.moodle.org/404/en/Universal_Office_Converter_%28unoconv%29",
|
"https://docs.moodle.org/404/en/Universal_Office_Converter_%28unoconv%29",
|
||||||
"sudo apt update
|
"sudo apt update
|
||||||
@@ -1056,11 +1066,11 @@
|
|||||||
Результат.ОписаниеОшибки + Символы.ПС, "") + Результат.ПотокОшибок);
|
Результат.ОписаниеОшибки + Символы.ПС, "") + Результат.ПотокОшибок);
|
||||||
|
|
||||||
Рекомендация = "";
|
Рекомендация = "";
|
||||||
Если СтрНайти(ОписаниеОшибки, "no default destination available") > 0 Тогда
|
Если СтрНайти(НРег(ОписаниеОшибки), "no default destination") > 0 Тогда
|
||||||
Рекомендация = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Рекомендация = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = 'Задайте принтер по умолчанию:
|
НСтр("ru = 'Задайте принтер по умолчанию:
|
||||||
|- Введите в терминале ""%1"" и выберите из списка нужный принтер.
|
|• Введите в терминале ""%1"" и выберите из списка нужный принтер.
|
||||||
|- Затем введите в терминале: %2 ""имя нужного принтера"".
|
|• Затем введите в терминале: %2 ""имя нужного принтера"".
|
||||||
|Или обратитесь к администратору.'"),
|
|Или обратитесь к администратору.'"),
|
||||||
"lpstat -p -d",
|
"lpstat -p -d",
|
||||||
"lpoptions -d");
|
"lpoptions -d");
|
||||||
|
|||||||
@@ -312,7 +312,7 @@
|
|||||||
|
|
||||||
Функция ЕстьДоступныеШаблоны(ТипШаблона, Предмет = Неопределено) Экспорт
|
Функция ЕстьДоступныеШаблоны(ТипШаблона, Предмет = Неопределено) Экспорт
|
||||||
|
|
||||||
Если Не ПравоДоступа("Чтение", Метаданные.Справочники.ШаблоныСообщений) Тогда
|
Если Не ЕстьПравоЧтенияШаблоновСообщений() Тогда
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -320,6 +320,7 @@
|
|||||||
Возврат НЕ Запрос.Выполнить().Пустой();
|
Возврат НЕ Запрос.Выполнить().Пустой();
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
// Возвращает список объектов метаданных к которым подключена подсистема Шаблоны сообщений.
|
// Возвращает список объектов метаданных к которым подключена подсистема Шаблоны сообщений.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@@ -442,24 +443,34 @@
|
|||||||
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
|
// См. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.
|
||||||
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
|
Процедура ПриОпределенииКомандПодключенныхКОбъекту(НастройкиФормы, Источники, ПодключенныеОтчетыИОбработки, Команды) Экспорт
|
||||||
|
|
||||||
Команда = Команды.Добавить();
|
Если Не ЕстьПравоЧтенияШаблоновСообщений() Тогда
|
||||||
Команда.Вид = "Отправить";
|
Возврат;
|
||||||
Команда.Представление = НСтр("ru = 'Почта'");
|
КонецЕсли;
|
||||||
Команда.Картинка = БиблиотекаКартинок.ОтправитьЭлектронноеПисьмо;
|
|
||||||
Команда.РежимЗаписи = "НеЗаписывать";
|
|
||||||
Команда.Порядок = 40;
|
|
||||||
Команда.ТипПараметра = Метаданные.ОпределяемыеТипы.ПредметШаблонаСообщения.Тип;
|
|
||||||
Команда.Обработчик = "ШаблоныСообщенийКлиент.ОтправитьПисьмо";
|
|
||||||
Команда.МножественныйВыбор = Ложь;
|
|
||||||
|
|
||||||
Команда = Команды.Добавить();
|
ДоступныеВарианты = ДоступныеВариантыОтправкиШаблоновСообщений();
|
||||||
Команда.Вид = "Отправить";
|
|
||||||
Команда.Представление = НСтр("ru = 'SMS'");
|
Если ДоступныеВарианты.Почта Тогда
|
||||||
Команда.РежимЗаписи = "НеЗаписывать";
|
Команда = Команды.Добавить();
|
||||||
Команда.Порядок = 50;
|
Команда.Вид = "Отправить";
|
||||||
Команда.ТипПараметра = Метаданные.ОпределяемыеТипы.ПредметШаблонаСообщения.Тип;
|
Команда.Представление = НСтр("ru = 'Почта'");
|
||||||
Команда.Обработчик = "ШаблоныСообщенийКлиент.ОтправитьSMS";
|
Команда.Картинка = БиблиотекаКартинок.ОтправитьЭлектронноеПисьмо;
|
||||||
Команда.МножественныйВыбор = Ложь;
|
Команда.РежимЗаписи = "НеЗаписывать";
|
||||||
|
Команда.Порядок = 40;
|
||||||
|
Команда.ТипПараметра = Метаданные.ОпределяемыеТипы.ПредметШаблонаСообщения.Тип;
|
||||||
|
Команда.Обработчик = "ШаблоныСообщенийКлиент.ОтправитьПисьмо";
|
||||||
|
Команда.МножественныйВыбор = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ДоступныеВарианты.SMS Тогда
|
||||||
|
Команда = Команды.Добавить();
|
||||||
|
Команда.Вид = "Отправить";
|
||||||
|
Команда.Представление = НСтр("ru = 'SMS'");
|
||||||
|
Команда.РежимЗаписи = "НеЗаписывать";
|
||||||
|
Команда.Порядок = 50;
|
||||||
|
Команда.ТипПараметра = Метаданные.ОпределяемыеТипы.ПредметШаблонаСообщения.Тип;
|
||||||
|
Команда.Обработчик = "ШаблоныСообщенийКлиент.ОтправитьSMS";
|
||||||
|
Команда.МножественныйВыбор = Ложь;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@@ -474,6 +485,20 @@
|
|||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
|
|
||||||
|
// Возвращает сведения о доступных вариантах отправки шаблонов сообщений.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// ФиксированнаяСтруктура:
|
||||||
|
// * SMS - Булево - если Истина, то можно формировать SMS сообщение по шаблонам.
|
||||||
|
// * Почта - Булево - если Истина, то можно создавать письма по шаблонам.
|
||||||
|
//
|
||||||
|
Функция ДоступныеВариантыОтправкиШаблоновСообщений() Экспорт
|
||||||
|
|
||||||
|
Возврат ШаблоныСообщенийСлужебныйПовтИсп.ДоступныеВариантыОтправкиШаблоновСообщений();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
// Возвращает сведения об сформированном исходящем письме.
|
// Возвращает сведения об сформированном исходящем письме.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@@ -1039,8 +1064,13 @@
|
|||||||
Функция ВидыШаблонов() Экспорт
|
Функция ВидыШаблонов() Экспорт
|
||||||
|
|
||||||
ТипыШаблонов = Новый СписокЗначений;
|
ТипыШаблонов = Новый СписокЗначений;
|
||||||
ТипыШаблонов.Добавить(ШаблоныСообщенийКлиентСервер.ИмяШаблонаЭлектронныхПисем(), НСтр("ru = 'Электронного письма'"));
|
ДоступныеВарианты = ДоступныеВариантыОтправкиШаблоновСообщений();
|
||||||
ТипыШаблонов.Добавить(ШаблоныСообщенийКлиентСервер.ИмяШаблонаSMS(), НСтр("ru = 'Сообщения SMS'"));
|
Если ДоступныеВарианты.Почта Тогда
|
||||||
|
ТипыШаблонов.Добавить(ШаблоныСообщенийКлиентСервер.ИмяШаблонаЭлектронныхПисем(), НСтр("ru = 'Электронного письма'"));
|
||||||
|
КонецЕсли;
|
||||||
|
Если ДоступныеВарианты.SMS Тогда
|
||||||
|
ТипыШаблонов.Добавить(ШаблоныСообщенийКлиентСервер.ИмяШаблонаSMS(), НСтр("ru = 'Сообщения SMS'"));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ТипыШаблонов;
|
Возврат ТипыШаблонов;
|
||||||
|
|
||||||
@@ -3038,6 +3068,12 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ЕстьПравоЧтенияШаблоновСообщений()
|
||||||
|
|
||||||
|
Возврат ПравоДоступа("Чтение", Метаданные.Справочники.ШаблоныСообщений);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура ОбработатьДанныеДляПереходаНаПодключаемыеКоманды() Экспорт
|
Процедура ОбработатьДанныеДляПереходаНаПодключаемыеКоманды() Экспорт
|
||||||
|
|
||||||
ЕстьПодключаемыеКоманды = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды");
|
ЕстьПодключаемыеКоманды = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды");
|
||||||
@@ -3068,3 +3104,4 @@
|
|||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
@@ -40,4 +40,17 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
|
Функция ДоступныеВариантыОтправкиШаблоновСообщений() Экспорт
|
||||||
|
|
||||||
|
Результат = Новый Структура;
|
||||||
|
Результат.Вставить("SMS",
|
||||||
|
ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтправкаSMS"));
|
||||||
|
Результат.Вставить("Почта",
|
||||||
|
ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями"));
|
||||||
|
|
||||||
|
Возврат Новый ФиксированнаяСтруктура(Результат);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -1170,6 +1170,7 @@
|
|||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Сертификат - СертификатКриптографии - сертификат криптографии.
|
// Сертификат - СертификатКриптографии - сертификат криптографии.
|
||||||
|
// - ДвоичныеДанные - двоичные данные сертификата в кодировке DER.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Структура:
|
// Структура:
|
||||||
@@ -1189,16 +1190,20 @@
|
|||||||
//
|
//
|
||||||
Функция СвойстваСертификата(Сертификат) Экспорт
|
Функция СвойстваСертификата(Сертификат) Экспорт
|
||||||
|
|
||||||
|
ДанныеСертификата = Сертификат;
|
||||||
Если ТипЗнч(Сертификат) = Тип("СертификатКриптографии") Тогда
|
Если ТипЗнч(Сертификат) = Тип("СертификатКриптографии") Тогда
|
||||||
ДвоичныеДанныеСертификата = Сертификат.Выгрузить();
|
ДвоичныеДанныеСертификата = Сертификат.Выгрузить();
|
||||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("ФиксированнаяСтруктура") Тогда
|
ИначеЕсли ТипЗнч(Сертификат) = Тип("ФиксированнаяСтруктура") Тогда
|
||||||
ДвоичныеДанныеСертификата = Сертификат.Сертификат;
|
ДвоичныеДанныеСертификата = Сертификат.Сертификат;
|
||||||
|
ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
|
||||||
|
ДвоичныеДанныеСертификата = Сертификат;
|
||||||
|
ДанныеСертификата = Новый СертификатКриптографии(Сертификат);
|
||||||
Иначе
|
Иначе
|
||||||
ДвоичныеДанныеСертификата = Неопределено;
|
ДвоичныеДанныеСертификата = Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||||
Сертификат, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ДвоичныеДанныеСертификата);
|
ДанныеСертификата, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ДвоичныеДанныеСертификата);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -1249,6 +1254,7 @@
|
|||||||
|
|
||||||
// Усовершенствует подпись до переданного типа, если подпись позволяет.
|
// Усовершенствует подпись до переданного типа, если подпись позволяет.
|
||||||
// Добавляет архивную метку времени в архивную подпись (CAdES-A).
|
// Добавляет архивную метку времени в архивную подпись (CAdES-A).
|
||||||
|
// Возвращает только изменившиеся в процессе усовершенствования свойства подписи.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Подпись - ДвоичныеДанные - двоичные данные электронной подписи.
|
// Подпись - ДвоичныеДанные - двоичные данные электронной подписи.
|
||||||
@@ -1399,6 +1405,9 @@
|
|||||||
СвойстваПодписи.ТипПодписи = ПараметрыПодписиКриптографии.ТипПодписи;
|
СвойстваПодписи.ТипПодписи = ПараметрыПодписиКриптографии.ТипПодписи;
|
||||||
СвойстваПодписи.СрокДействияПоследнейМеткиВремени = ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени;
|
СвойстваПодписи.СрокДействияПоследнейМеткиВремени = ПараметрыПодписиКриптографии.СрокДействияПоследнейМеткиВремени;
|
||||||
СвойстваПодписи.ОписаниеСертификата = ПараметрыПодписиКриптографии.ОписаниеСертификата;
|
СвойстваПодписи.ОписаниеСертификата = ПараметрыПодписиКриптографии.ОписаниеСертификата;
|
||||||
|
СвойстваПодписи.ДатаПодписи =
|
||||||
|
?(ЗначениеЗаполнено(ПараметрыПодписиКриптографии.НеподтвержденнаяДатаПодписи),
|
||||||
|
ПараметрыПодписиКриптографии.НеподтвержденнаяДатаПодписи, ПараметрыПодписиКриптографии.ДатаПодписиИзМетки);
|
||||||
Результат.СвойстваПодписи = СвойстваПодписи;
|
Результат.СвойстваПодписи = СвойстваПодписи;
|
||||||
Иначе
|
Иначе
|
||||||
СвойстваСертификата = СвойстваСертификата(ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени);
|
СвойстваСертификата = СвойстваСертификата(ПараметрыПодписиКриптографии.СертификатПоследнейМеткиВремени);
|
||||||
|
|||||||
@@ -981,6 +981,8 @@
|
|||||||
// * НеПоказыватьРезультаты - Булево - если параметр принимает значение Истина и параметр КонтекстОперации
|
// * НеПоказыватьРезультаты - Булево - если параметр принимает значение Истина и параметр КонтекстОперации
|
||||||
// содержит контекст предыдущей операции, результаты проверки не будут показаны
|
// содержит контекст предыдущей операции, результаты проверки не будут показаны
|
||||||
// пользователю.
|
// пользователю.
|
||||||
|
// * ТипПодписи - ПеречислениеСсылка.ТипыПодписиКриптографии - по умолчанию тип, указанный в настройках,
|
||||||
|
// если передан КонтекстОперации, возвращенный процедурой Подписать, то тип берется из него.
|
||||||
// * Результат - Неопределено - проверка ни разу не выполнялась.
|
// * Результат - Неопределено - проверка ни разу не выполнялась.
|
||||||
// - Структура - возвращаемое значение. Вставляется перед обработкой результата:
|
// - Структура - возвращаемое значение. Вставляется перед обработкой результата:
|
||||||
// * ПроверкиПройдены - Булево - возвращаемое значение. Устанавливается в процедуре параметра ОбработкаРезультата.
|
// * ПроверкиПройдены - Булево - возвращаемое значение. Устанавливается в процедуре параметра ОбработкаРезультата.
|
||||||
|
|||||||
@@ -191,7 +191,6 @@
|
|||||||
|
|
||||||
Результат = Новый Структура("АдресВнешний, АдресВнутренний");
|
Результат = Новый Структура("АдресВнешний, АдресВнутренний");
|
||||||
|
|
||||||
// Локализация
|
|
||||||
ИмяИздателя = СтрЗаменить(ИмяИздателя, " ", "_");
|
ИмяИздателя = СтрЗаменить(ИмяИздателя, " ", "_");
|
||||||
ИмяИздателя = СокрЛП(СтрСоединить(СтрРазделить(ИмяИздателя, "!*'();:@&=+$,/?%#[]\|<>", Истина), ""));
|
ИмяИздателя = СокрЛП(СтрСоединить(СтрРазделить(ИмяИздателя, "!*'();:@&=+$,/?%#[]\|<>", Истина), ""));
|
||||||
|
|
||||||
@@ -201,10 +200,6 @@
|
|||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ИмяИздателя <> "federalnaya_nalogovaya_sluzhba" Тогда
|
|
||||||
Возврат Результат;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ДополнительныеСвойстваСертификата =
|
ДополнительныеСвойстваСертификата =
|
||||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ДополнительныеСвойстваСертификата(Сертификат, 0);
|
ЭлектроннаяПодписьСлужебныйКлиентСервер.ДополнительныеСвойстваСертификата(Сертификат, 0);
|
||||||
|
|
||||||
@@ -213,8 +208,16 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Результат.АдресВнутренний = СтрШаблон("%1/%2", ИмяИздателя, НРег(ДополнительныеСвойстваСертификата.ИдентификаторКлючаУдостоверяющегоЦентра));
|
Результат.АдресВнутренний = СтрШаблон("%1/%2", ИмяИздателя, НРег(ДополнительныеСвойстваСертификата.ИдентификаторКлючаУдостоверяющегоЦентра));
|
||||||
|
|
||||||
|
// Локализация
|
||||||
|
|
||||||
|
Если ИмяИздателя <> "federalnaya_nalogovaya_sluzhba" Тогда
|
||||||
|
Возврат Результат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Результат.АдресВнешний = СтрШаблон("http://ca.1c.ru/crls/%1.zip", Результат.АдресВнутренний);
|
Результат.АдресВнешний = СтрШаблон("http://ca.1c.ru/crls/%1.zip", Результат.АдресВнутренний);
|
||||||
// Конец локализация
|
|
||||||
|
// Конец Локализация
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
@@ -722,8 +725,8 @@
|
|||||||
|
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина = НСтр(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина = НСтр(
|
||||||
"ru = 'Сертификаты юридическим лицам и индивидуальным предпринимателям выдают только государственные удостоверяющие центры.'");
|
"ru = 'Сертификаты юридическим лицам и индивидуальным предпринимателям выдают только государственные удостоверяющие центры.'");
|
||||||
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = НСтр(
|
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||||
"ru = 'Если это тестовый сертификат, поставьте флажок <b>Разрешить подписание</b> в карточке сертификата.'");
|
"ru = 'Если это тестовый сертификат, поставьте флажок <b>Разрешить подписание</b> в <a href=""%1"">карточке сертификата</a>.'"), "ОткрытьСертификат");
|
||||||
|
|
||||||
ИначеЕсли ДатаПрекращенияДействия <> Неопределено И (НаДату >= ДатаПрекращенияДействия
|
ИначеЕсли ДатаПрекращенияДействия <> Неопределено И (НаДату >= ДатаПрекращенияДействия
|
||||||
Или НаДату + 30*24*60*60 >= ДатаПрекращенияДействия И Не КонтекстПроверки.ЭтоПроверкаПодписи) Тогда
|
Или НаДату + 30*24*60*60 >= ДатаПрекращенияДействия И Не КонтекстПроверки.ЭтоПроверкаПодписи) Тогда
|
||||||
|
|||||||
@@ -856,6 +856,16 @@
|
|||||||
Возврат Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.ПолучитьМакет(ИмяМакета);
|
Возврат Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.ПолучитьМакет(ИмяМакета);
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция АдресаСерверовМетокВремениПоУмолчанию() Экспорт
|
||||||
|
|
||||||
|
Если Метаданные.Обработки.Найти("ПрограммыЭлектроннойПодписиИШифрования") <> Неопределено Тогда
|
||||||
|
Возврат Обработки["ПрограммыЭлектроннойПодписиИШифрования"].АдресаСерверовМетокВремениПоУмолчанию();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат "";
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#Область ПоставляемыеДанные
|
#Область ПоставляемыеДанные
|
||||||
|
|
||||||
// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных
|
// См. ПоставляемыеДанныеПереопределяемый.ПолучитьОбработчикиПоставляемыхДанных
|
||||||
@@ -1022,10 +1032,10 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Обработчик = Обработчики.Добавить();
|
Обработчик = Обработчики.Добавить();
|
||||||
Обработчик.Версия = "3.1.9.234";
|
Обработчик.Версия = "3.1.10.185";
|
||||||
Обработчик.Комментарий = НСтр(
|
Обработчик.Комментарий = НСтр(
|
||||||
"ru = 'Перенос оповещений об окончании срока действия сертификата, данных заявлений в регистры сведений, заполнение срока действия сертификата с учетом срока действия закрытого ключа.'");
|
"ru = 'Перенос оповещений об окончании срока действия сертификата, данных заявлений в регистры сведений, заполнение срока действия сертификата с учетом срока действия закрытого ключа, очистка некорректно выбранного приложения электронной подписи.'");
|
||||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("a17c1765-820e-4886-9423-ffc1267d7ff1");
|
Обработчик.Идентификатор = Новый УникальныйИдентификатор("a6c42e6b-4824-4f5e-a35d-aa0922b253f3");
|
||||||
Обработчик.Процедура = "Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
Обработчик.Процедура = "Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
||||||
Обработчик.РежимВыполнения = "Отложенно";
|
Обработчик.РежимВыполнения = "Отложенно";
|
||||||
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
|
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
|
||||||
@@ -2338,8 +2348,6 @@
|
|||||||
Функция ПроверитьСертификатНаКорректностьПовторно(МенеджерКриптографииДляПроверки, СертификатДляПроверки,
|
Функция ПроверитьСертификатНаКорректностьПовторно(МенеджерКриптографииДляПроверки, СертификатДляПроверки,
|
||||||
РежимыПроверкиСертификата, ОписаниеОшибки, ВызыватьИсключение, ДействияДляУстранения)
|
РежимыПроверкиСертификата, ОписаниеОшибки, ВызыватьИсключение, ДействияДляУстранения)
|
||||||
|
|
||||||
// Локализация
|
|
||||||
|
|
||||||
ТребуетсяУстановкаСпискаОтзыва = Ложь;
|
ТребуетсяУстановкаСпискаОтзыва = Ложь;
|
||||||
|
|
||||||
Если ТипЗнч(МенеджерКриптографииДляПроверки) = Тип("МенеджерКриптографии") Тогда
|
Если ТипЗнч(МенеджерКриптографииДляПроверки) = Тип("МенеджерКриптографии") Тогда
|
||||||
@@ -2363,11 +2371,15 @@
|
|||||||
АдресСпискаОтзываВнутренний.АдресВнешний, АдресСпискаОтзываВнутренний.АдресВнутренний);
|
АдресСпискаОтзываВнутренний.АдресВнешний, АдресСпискаОтзываВнутренний.АдресВнутренний);
|
||||||
Исключение
|
Исключение
|
||||||
|
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось установить список отзыва %1 при проверке сертификата: %2'"),
|
||||||
|
АдресСпискаОтзываВнутренний.АдресВнутренний, ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||||
|
|
||||||
ЗаписьЖурналаРегистрации(
|
ЗаписьЖурналаРегистрации(
|
||||||
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'",
|
НСтр("ru = 'Электронная подпись.Обновление списков отзыва'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка()),
|
ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||||
УровеньЖурналаРегистрации.Ошибка, , ,
|
УровеньЖурналаРегистрации.Ошибка, , ,
|
||||||
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
ТекстОшибки);
|
||||||
|
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
@@ -2389,8 +2401,6 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Конец Локализация
|
|
||||||
|
|
||||||
Возврат Ложь;
|
Возврат Ложь;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -3272,10 +3282,10 @@
|
|||||||
ПодписанныйОбъектМетаданные = Неопределено;
|
ПодписанныйОбъектМетаданные = Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИмяСобытия = НСтр("ru = 'Электронная подпись.Ошибка усовершенствования подписи'",
|
ИмяСобытия = НСтр("ru = 'Электронная подпись.Усовершенствование подписи'",
|
||||||
ОбщегоНазначения.КодОсновногоЯзыка());
|
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||||
ЗаписьЖурналаРегистрации(ИмяСобытия,
|
ЗаписьЖурналаРегистрации(ИмяСобытия,
|
||||||
УровеньЖурналаРегистрации.Информация,
|
УровеньЖурналаРегистрации.Предупреждение,
|
||||||
ПодписанныйОбъектМетаданные,
|
ПодписанныйОбъектМетаданные,
|
||||||
ПодписанныйОбъект,
|
ПодписанныйОбъект,
|
||||||
ОписаниеОшибки);
|
ОписаниеОшибки);
|
||||||
@@ -6846,6 +6856,10 @@
|
|||||||
+ Символы.ПС + ТехническаяИнформацияОКомпьютере()
|
+ Символы.ПС + ТехническаяИнформацияОКомпьютере()
|
||||||
+ Символы.ПС + Символы.ПС + ТехническаяИнформацияОКомпоненте()
|
+ Символы.ПС + Символы.ПС + ТехническаяИнформацияОКомпоненте()
|
||||||
+ Символы.ПС + ТехническаяИнформацияОПрограммах();
|
+ Символы.ПС + ТехническаяИнформацияОПрограммах();
|
||||||
|
|
||||||
|
ТехническаяИнформация = ТехническаяИнформация
|
||||||
|
+ Символы.ПС + ЭлектроннаяПодписьСлужебныйВызовСервера.РезультатДиагностикиСерверовМетокВремени();
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТехническаяИнформация = ТехническаяИнформация + Символы.ПС
|
ТехническаяИнформация = ТехническаяИнформация + Символы.ПС
|
||||||
@@ -7107,7 +7121,7 @@
|
|||||||
УстановитьПривилегированныйРежим(Истина);
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
МенеджерЗаписи = РегистрыСведений.СпискиОтзываСертификатов.СоздатьМенеджерЗаписи();
|
МенеджерЗаписи = РегистрыСведений.СпискиОтзываСертификатов.СоздатьМенеджерЗаписи();
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ДанныеИзКэша) И ДанныеИзКэша.ДатаПоследнегоИзменения = ДатаПоследнегоИзменения Тогда
|
Если ЗначениеЗаполнено(ДанныеИзКэша) И ДанныеИзКэша.ДатаПоследнегоИзменения = ДатаПоследнегоИзменения И ДатаПоследнегоИзменения <> Неопределено Тогда
|
||||||
|
|
||||||
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ДанныеИзКэша);
|
ЗаполнитьЗначенияСвойств(МенеджерЗаписи, ДанныеИзКэша);
|
||||||
ЗаполнитьРезультатЗагрузкиСпискаОтзываИзДанныхКэша(РезультатЗагрузки, ДанныеИзКэша);
|
ЗаполнитьРезультатЗагрузкиСпискаОтзываИзДанныхКэша(РезультатЗагрузки, ДанныеИзКэша);
|
||||||
@@ -7194,6 +7208,10 @@
|
|||||||
|
|
||||||
Для Каждого ТекущийАдрес Из Адреса Цикл
|
Для Каждого ТекущийАдрес Из Адреса Цикл
|
||||||
|
|
||||||
|
Если СтрНачинаетсяС(НРег(ТекущийАдрес), "ldap://") Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ПараметрыПолученияФайла = МодульПолучениеФайловИзИнтернетаКлиентСервер.ПараметрыПолученияФайла();
|
ПараметрыПолученияФайла = МодульПолучениеФайловИзИнтернетаКлиентСервер.ПараметрыПолученияФайла();
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(ДанныеИзКэша)
|
Если ЗначениеЗаполнено(ДанныеИзКэша)
|
||||||
@@ -7465,7 +7483,8 @@
|
|||||||
Возврат Неопределено;
|
Возврат Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ДатаПоследнегоИзмененияСтрока = Заголовки["Last-Modified"];
|
Заголовки = СтандартныеПодсистемыСервер.HTTPЗаголовкиВНижнийРегистр(Заголовки);
|
||||||
|
ДатаПоследнегоИзмененияСтрока = Заголовки["last-modified"];
|
||||||
Если ДатаПоследнегоИзмененияСтрока <> Неопределено Тогда
|
Если ДатаПоследнегоИзмененияСтрока <> Неопределено Тогда
|
||||||
Возврат ОбщегоНазначенияКлиентСервер.ДатаRFC1123(ДатаПоследнегоИзмененияСтрока);
|
Возврат ОбщегоНазначенияКлиентСервер.ДатаRFC1123(ДатаПоследнегоИзмененияСтрока);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -7527,6 +7546,44 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
#КонецЕсли
|
#КонецЕсли
|
||||||
|
|
||||||
|
Если ОшибкаПоКлассификатору.ДействияДляУстранения.Найти(
|
||||||
|
"ДиагностикаСерверовМетокВремениСервер") <> Неопределено Тогда
|
||||||
|
|
||||||
|
Решение.Добавить(СтроковыеФункции.ФорматированнаяСтрока(
|
||||||
|
НСтр("ru='<a href = ""%1"">Проверьте доступность</a> серверов меток времени на сервере %2.'"),
|
||||||
|
"ДиагностикаСерверовМетокВремениСервер", ИмяКомпьютера()));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОшибкаПоКлассификатору.ДействияДляУстранения.Найти(
|
||||||
|
"ДиагностикаСерверовМетокВремениКлиент") <> Неопределено Тогда
|
||||||
|
|
||||||
|
Если ОбщегоНазначения.ЭтоВебКлиент() Тогда
|
||||||
|
|
||||||
|
АдресаСерверовМетокВремени = ЭлектроннаяПодпись.ОбщиеНастройки().АдресаСерверовМетокВремени;
|
||||||
|
|
||||||
|
Массив = Новый Массив;
|
||||||
|
|
||||||
|
Для Каждого АдресСервера Из АдресаСерверовМетокВремени Цикл
|
||||||
|
|
||||||
|
СтруктураСсылки = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресСервера);
|
||||||
|
Массив.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='<a href = ""%1"">%1</a>'"), АдресСервера));
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Решение.Добавить(СтроковыеФункции.ФорматированнаяСтрока(
|
||||||
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru='Проверьте доступность серверов меток времени на компьютере: %1.'"),
|
||||||
|
СтрСоединить(Массив, ", "))));
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
Решение.Добавить(СтроковыеФункции.ФорматированнаяСтрока(
|
||||||
|
НСтр("ru='<a href = ""%1"">Проверьте доступность</a> серверов меток времени на компьютере.'"),
|
||||||
|
"ДиагностикаСерверовМетокВремениКлиент"));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если Решение.Количество() > 0 Тогда
|
Если Решение.Количество() > 0 Тогда
|
||||||
Результат.ОшибкаПоКлассификатору.Решение = Новый ФорматированнаяСтрока(Решение);
|
Результат.ОшибкаПоКлассификатору.Решение = Новый ФорматированнаяСтрока(Решение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -7612,8 +7669,6 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Локализация
|
|
||||||
|
|
||||||
Процедура УстановитьСписокОтзываСертификата(Сертификат, Адреса = Неопределено, АдресВнутренний = Неопределено) Экспорт
|
Процедура УстановитьСписокОтзываСертификата(Сертификат, Адреса = Неопределено, АдресВнутренний = Неопределено) Экспорт
|
||||||
|
|
||||||
ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI();
|
ОбъектКомпоненты = ОбъектВнешнейКомпонентыExtraCryptoAPI();
|
||||||
@@ -7667,8 +7722,6 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
// Конец Локализация
|
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область ОбновлениеИнформационнойБазы
|
#Область ОбновлениеИнформационнойБазы
|
||||||
|
|||||||
@@ -322,6 +322,27 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Параметры.Операция = "Подписание" Тогда
|
||||||
|
|
||||||
|
ДвоичныеДанныеСертификата = СертификатКриптографии.Выгрузить();
|
||||||
|
|
||||||
|
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||||
|
СертификатКриптографии, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ДвоичныеДанныеСертификата);
|
||||||
|
СвойстваСертификата.Вставить("ДвоичныеДанные", ДвоичныеДанныеСертификата);
|
||||||
|
|
||||||
|
АлгоритмСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(
|
||||||
|
ДвоичныеДанныеСертификата, Ложь, Истина);
|
||||||
|
АлгоритмСоответствует = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСоответствуетСертификату(
|
||||||
|
СвойстваСертификата.Представление, АлгоритмСертификата, МенеджерКриптографии.АлгоритмПодписи);
|
||||||
|
|
||||||
|
Если АлгоритмСоответствует <> Истина Тогда
|
||||||
|
|
||||||
|
ОшибкаНаСервере.Вставить("ОписаниеОшибки", АлгоритмСоответствует);
|
||||||
|
Возврат Ложь;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
Данные = ПолучитьИзВременногоХранилища(Параметры.ЭлементДанныхДляСервера.Данные);
|
Данные = ПолучитьИзВременногоХранилища(Параметры.ЭлементДанныхДляСервера.Данные);
|
||||||
Исключение
|
Исключение
|
||||||
@@ -436,11 +457,6 @@
|
|||||||
|
|
||||||
Если Параметры.Операция = "Подписание" Тогда
|
Если Параметры.Операция = "Подписание" Тогда
|
||||||
|
|
||||||
ДвоичныеДанныеСертификата = СертификатКриптографии.Выгрузить();
|
|
||||||
|
|
||||||
СвойстваСертификата = ЭлектроннаяПодпись.СвойстваСертификата(СертификатКриптографии);
|
|
||||||
СвойстваСертификата.Вставить("ДвоичныеДанные", ДвоичныеДанныеСертификата);
|
|
||||||
|
|
||||||
Если ЭлектроннаяПодпись.ДоступнаУсовершенствованнаяПодпись() Тогда
|
Если ЭлектроннаяПодпись.ДоступнаУсовершенствованнаяПодпись() Тогда
|
||||||
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии(
|
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии(
|
||||||
ДвоичныеДанныеРезультата, МенеджерКриптографии, Ложь);
|
ДвоичныеДанныеРезультата, МенеджерКриптографии, Ложь);
|
||||||
@@ -1302,4 +1318,19 @@
|
|||||||
|
|
||||||
// Конец Локализация
|
// Конец Локализация
|
||||||
|
|
||||||
|
Функция РезультатДиагностикиСерверовМетокВремени() Экспорт
|
||||||
|
|
||||||
|
АдресаСерверовМетокВремени = ЭлектроннаяПодпись.ОбщиеНастройки().АдресаСерверовМетокВремени;
|
||||||
|
|
||||||
|
Если АдресаСерверовМетокВремени.Количество() = 0 Тогда
|
||||||
|
Возврат НСтр("ru = 'Адреса серверов меток времени не заполнены в настройках электронной подписи.'");
|
||||||
|
Иначе
|
||||||
|
СтрокаПодключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Подключение к серверам меток времени на сервере <%1>.'"), ИмяКомпьютера());
|
||||||
|
|
||||||
|
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.ДиагностикаСерверовМетокВремени(АдресаСерверовМетокВремени, СтрокаПодключения);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -341,6 +341,36 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ДиагностикаСерверовМетокВремени(Место = Неопределено) Экспорт
|
||||||
|
|
||||||
|
РезультатДиагностики = Новый Массив;
|
||||||
|
|
||||||
|
АдресаСерверовМетокВремени = ЭлектроннаяПодписьКлиент.ОбщиеНастройки().АдресаСерверовМетокВремени;
|
||||||
|
|
||||||
|
Если АдресаСерверовМетокВремени.Количество() = 0 Тогда
|
||||||
|
РезультатДиагностики.Добавить(НСтр(
|
||||||
|
"ru = 'Адреса серверов меток времени не заполнены в настройках электронной подписи.'"));
|
||||||
|
Иначе
|
||||||
|
Если Место = "Клиент" Или Место = Неопределено Тогда
|
||||||
|
РезультатДиагностики.Добавить(РезультатДиагностикиСерверовМетокВремени());
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Место = "Сервер" Или Место = Неопределено
|
||||||
|
И ЭлектроннаяПодписьКлиент.ОбщиеНастройки().СоздаватьЭлектронныеПодписиНаСервере Тогда
|
||||||
|
Если РезультатДиагностики.Количество() > 0 Тогда
|
||||||
|
РезультатДиагностики.Добавить(Символы.ПС);
|
||||||
|
КонецЕсли;
|
||||||
|
РезультатДиагностики.Добавить(
|
||||||
|
ЭлектроннаяПодписьСлужебныйВызовСервера.РезультатДиагностикиСерверовМетокВремени());
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТекстовыйДокумент = Новый ТекстовыйДокумент;
|
||||||
|
ТекстовыйДокумент.УстановитьТекст(СтрСоединить(РезультатДиагностики, Символы.ПС));
|
||||||
|
ТекстовыйДокумент.Показать(НСтр("ru = 'Диагностика доступности серверов меток времени'"),);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@@ -2133,8 +2163,6 @@
|
|||||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
|
||||||
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ОшибкаПоКлассификатору(ОписаниеОшибки);
|
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ОшибкаПоКлассификатору(ОписаниеОшибки);
|
||||||
|
|
||||||
// Локализация
|
|
||||||
|
|
||||||
Если ОшибкаПоКлассификатору <> Неопределено И ЗначениеЗаполнено(ОшибкаПоКлассификатору.ДействияДляУстранения) Тогда
|
Если ОшибкаПоКлассификатору <> Неопределено И ЗначениеЗаполнено(ОшибкаПоКлассификатору.ДействияДляУстранения) Тогда
|
||||||
|
|
||||||
Действие = Неопределено;
|
Действие = Неопределено;
|
||||||
@@ -2156,16 +2184,17 @@
|
|||||||
ИмяИздателя = СтроковыеФункцииКлиент.СтрокаЛатиницей(ИмяИздателя);
|
ИмяИздателя = СтроковыеФункцииКлиент.СтрокаЛатиницей(ИмяИздателя);
|
||||||
АдресСпискаОтзываВнутренний = ЭлектроннаяПодписьСлужебныйКлиентСервер.АдресСпискаОтзываВнутренний(
|
АдресСпискаОтзываВнутренний = ЭлектроннаяПодписьСлужебныйКлиентСервер.АдресСпискаОтзываВнутренний(
|
||||||
ИмяИздателя, Контекст.ДанныеСертификата);
|
ИмяИздателя, Контекст.ДанныеСертификата);
|
||||||
Если ЗначениеЗаполнено(АдресСпискаОтзываВнутренний.АдресВнутренний) Тогда
|
|
||||||
ПараметрыУстановкиСпискаОтзыва = ПараметрыУстановкиСпискаОтзыва(
|
ПараметрыУстановкиСпискаОтзыва = ПараметрыУстановкиСпискаОтзыва(
|
||||||
Контекст.СертификатКриптографии);
|
Контекст.СертификатКриптографии);
|
||||||
|
ПараметрыУстановкиСпискаОтзыва.ОповещениеОЗавершении = Новый ОписаниеОповещения("ПроверитьСертификатПовторно",
|
||||||
|
ЭтотОбъект, Контекст);
|
||||||
|
ПараметрыУстановкиСпискаОтзыва.ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Для проверки сертификата требуется установка списка отзыва с помощью внешней компоненты %1.'"),
|
||||||
|
"ExtraCryptoAPI");
|
||||||
|
Если ЗначениеЗаполнено(АдресСпискаОтзываВнутренний.АдресВнутренний) Тогда
|
||||||
ПараметрыУстановкиСпискаОтзыва.Адреса = АдресСпискаОтзываВнутренний.АдресВнешний;
|
ПараметрыУстановкиСпискаОтзыва.Адреса = АдресСпискаОтзываВнутренний.АдресВнешний;
|
||||||
ПараметрыУстановкиСпискаОтзыва.АдресВнутренний = АдресСпискаОтзываВнутренний.АдресВнутренний;
|
ПараметрыУстановкиСпискаОтзыва.АдресВнутренний = АдресСпискаОтзываВнутренний.АдресВнутренний;
|
||||||
ПараметрыУстановкиСпискаОтзыва.ОповещениеОЗавершении = Новый ОписаниеОповещения("ПроверитьСертификатПовторно",
|
|
||||||
ЭтотОбъект, Контекст);
|
|
||||||
ПараметрыУстановкиСпискаОтзыва.ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru = 'Для проверки сертификата требуется установка списка отзыва с помощью внешней компоненты %1.'"),
|
|
||||||
"ExtraCryptoAPI");
|
|
||||||
УстановитьСписокОтзываСертификата(ПараметрыУстановкиСпискаОтзыва);
|
УстановитьСписокОтзываСертификата(ПараметрыУстановкиСпискаОтзыва);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -2175,8 +2204,6 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Конец локализация
|
|
||||||
|
|
||||||
Если ОшибкаПоКлассификатору <> Неопределено Тогда
|
Если ОшибкаПоКлассификатору <> Неопределено Тогда
|
||||||
ОбработатьОшибкуПоКлассификатору(ОписаниеОшибки, Контекст.ТребуетПроверкиНаКлиенте, Контекст, ОшибкаПоКлассификатору);
|
ОбработатьОшибкуПоКлассификатору(ОписаниеОшибки, Контекст.ТребуетПроверкиНаКлиенте, Контекст, ОшибкаПоКлассификатору);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -4022,6 +4049,7 @@
|
|||||||
СерверныеПараметры.Вставить("ЗаголовокФормы");
|
СерверныеПараметры.Вставить("ЗаголовокФормы");
|
||||||
СерверныеПараметры.Вставить("ПроверкаПриВыборе");
|
СерверныеПараметры.Вставить("ПроверкаПриВыборе");
|
||||||
СерверныеПараметры.Вставить("ПараметрыДополнительныхПроверок");
|
СерверныеПараметры.Вставить("ПараметрыДополнительныхПроверок");
|
||||||
|
СерверныеПараметры.Вставить("ТипПодписи");
|
||||||
|
|
||||||
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
|
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
|
||||||
|
|
||||||
@@ -4033,6 +4061,12 @@
|
|||||||
ДополнительныеПараметры.Вставить("БезПодтверждения");
|
ДополнительныеПараметры.Вставить("БезПодтверждения");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
НачалоИмениФормы = "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Форма.";
|
||||||
|
|
||||||
|
Если ДополнительныеПараметры.КонтекстОперации.ИмяФормы = НачалоИмениФормы + "ПодписаниеДанных" Тогда
|
||||||
|
ДополнительныеПараметры.Вставить("ТипПодписи", ДополнительныеПараметры.КонтекстОперации.ТипПодписи);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
УказанКонтекстДругойОперации = Истина;
|
УказанКонтекстДругойОперации = Истина;
|
||||||
ДополнительныеПараметры.БезПодтверждения = Истина;
|
ДополнительныеПараметры.БезПодтверждения = Истина;
|
||||||
|
|
||||||
@@ -5224,6 +5258,28 @@
|
|||||||
Контекст.СертификатКриптографии));
|
Контекст.СертификатКриптографии));
|
||||||
Контекст.СвойстваСертификата.Вставить("ДвоичныеДанные", ВыгруженныеДанные);
|
Контекст.СвойстваСертификата.Вставить("ДвоичныеДанные", ВыгруженныеДанные);
|
||||||
|
|
||||||
|
Если Контекст.Операция = "Подписание" И ТипЗнч(Контекст.МенеджерКриптографии) = Тип("МенеджерКриптографии")
|
||||||
|
И ЗначениеЗаполнено(Контекст.МенеджерКриптографии.АлгоритмПодписи) Тогда
|
||||||
|
|
||||||
|
АлгоритмСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(
|
||||||
|
ВыгруженныеДанные, Ложь, Истина);
|
||||||
|
|
||||||
|
|
||||||
|
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСоответствуетСертификату(
|
||||||
|
Контекст.СвойстваСертификата.Представление, АлгоритмСертификата,
|
||||||
|
Контекст.МенеджерКриптографии.АлгоритмПодписи);
|
||||||
|
|
||||||
|
Если Результат <> Истина Тогда
|
||||||
|
|
||||||
|
ОшибкаНаКлиенте = Новый Структура("ОписаниеОшибки", Результат);
|
||||||
|
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Новый Структура("Ошибка", ОшибкаНаКлиенте));
|
||||||
|
Возврат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ВыполнитьНаСторонеЦиклЗапуск(Контекст);
|
ВыполнитьНаСторонеЦиклЗапуск(Контекст);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -6569,6 +6625,9 @@
|
|||||||
СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи);
|
СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи);
|
||||||
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени", ПараметрыПодписи.СрокДействияПоследнейМеткиВремени);
|
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени", ПараметрыПодписи.СрокДействияПоследнейМеткиВремени);
|
||||||
СвойстваПодписи.Вставить("ОписаниеСертификата", ПараметрыПодписи.ОписаниеСертификата);
|
СвойстваПодписи.Вставить("ОписаниеСертификата", ПараметрыПодписи.ОписаниеСертификата);
|
||||||
|
СвойстваПодписи.Вставить("ДатаПодписи",
|
||||||
|
?(ЗначениеЗаполнено(ПараметрыПодписи.НеподтвержденнаяДатаПодписи),
|
||||||
|
ПараметрыПодписи.НеподтвержденнаяДатаПодписи, ПараметрыПодписи.ДатаПодписиИзМетки));
|
||||||
|
|
||||||
ВыполнитьНаСторонеЦиклПослеУсовершенствования(СвойстваПодписи, Контекст);
|
ВыполнитьНаСторонеЦиклПослеУсовершенствования(СвойстваПодписи, Контекст);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -6585,6 +6644,9 @@
|
|||||||
СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи);
|
СвойстваПодписи.Вставить("ТипПодписи", ПараметрыПодписи.ТипПодписи);
|
||||||
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени", ПараметрыПодписи.СрокДействияПоследнейМеткиВремени);
|
СвойстваПодписи.Вставить("СрокДействияПоследнейМеткиВремени", ПараметрыПодписи.СрокДействияПоследнейМеткиВремени);
|
||||||
СвойстваПодписи.Вставить("ОписаниеСертификата", ПараметрыПодписи.ОписаниеСертификата);
|
СвойстваПодписи.Вставить("ОписаниеСертификата", ПараметрыПодписи.ОписаниеСертификата);
|
||||||
|
СвойстваПодписи.Вставить("ДатаПодписи",
|
||||||
|
?(ЗначениеЗаполнено(ПараметрыПодписи.НеподтвержденнаяДатаПодписи),
|
||||||
|
ПараметрыПодписи.НеподтвержденнаяДатаПодписи, ПараметрыПодписи.ДатаПодписиИзМетки));
|
||||||
|
|
||||||
Если Результат = Истина Тогда
|
Если Результат = Истина Тогда
|
||||||
ВыполнитьНаСторонеЦиклПослеУсовершенствования(СвойстваПодписи, Контекст);
|
ВыполнитьНаСторонеЦиклПослеУсовершенствования(СвойстваПодписи, Контекст);
|
||||||
@@ -6617,23 +6679,19 @@
|
|||||||
Если Контекст.НаСторонеКлиента Тогда
|
Если Контекст.НаСторонеКлиента Тогда
|
||||||
|
|
||||||
НовыеСвойстваПодписи = ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи();
|
НовыеСвойстваПодписи = ЭлектроннаяПодписьКлиентСервер.НовыеСвойстваПодписи();
|
||||||
|
ЗаполнитьЗначенияСвойств(НовыеСвойстваПодписи, СвойстваПодписи);
|
||||||
ОбновитьПодпись = Ложь;
|
ОбновитьПодпись = Ложь;
|
||||||
|
|
||||||
Если Контекст.ЭлементДанных.Свойство("НеТребуетсяПродление") Тогда
|
Если Контекст.ЭлементДанных.Свойство("НеТребуетсяПродление") Тогда
|
||||||
Если ЭлементДанных.ТипПодписи <> СвойстваПодписи.ТипПодписи Тогда
|
Если ЭлементДанных.ТипПодписи <> СвойстваПодписи.ТипПодписи Тогда
|
||||||
ЭлементДанных.ТипПодписи = СвойстваПодписи.ТипПодписи;
|
ЭлементДанных.ТипПодписи = СвойстваПодписи.ТипПодписи;
|
||||||
НовыеСвойстваПодписи.ТипПодписи = СвойстваПодписи.ТипПодписи;
|
|
||||||
ОбновитьПодпись = Истина;
|
ОбновитьПодпись = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Если ЭлементДанных.СрокДействияПоследнейМеткиВремени <> СвойстваПодписи.СрокДействияПоследнейМеткиВремени Тогда
|
Если ЭлементДанных.СрокДействияПоследнейМеткиВремени <> СвойстваПодписи.СрокДействияПоследнейМеткиВремени Тогда
|
||||||
ЭлементДанных.СрокДействияПоследнейМеткиВремени = СвойстваПодписи.СрокДействияПоследнейМеткиВремени;
|
ЭлементДанных.СрокДействияПоследнейМеткиВремени = СвойстваПодписи.СрокДействияПоследнейМеткиВремени;
|
||||||
НовыеСвойстваПодписи.СрокДействияПоследнейМеткиВремени = СвойстваПодписи.СрокДействияПоследнейМеткиВремени;
|
|
||||||
ОбновитьПодпись = Истина;
|
ОбновитьПодпись = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
НовыеСвойстваПодписи.Подпись = СвойстваПодписи.Подпись;
|
|
||||||
НовыеСвойстваПодписи.ТипПодписи = СвойстваПодписи.ТипПодписи;
|
|
||||||
НовыеСвойстваПодписи.СрокДействияПоследнейМеткиВремени = СвойстваПодписи.СрокДействияПоследнейМеткиВремени;
|
|
||||||
ОбновитьПодпись = Истина;
|
ОбновитьПодпись = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -9243,7 +9301,9 @@
|
|||||||
|
|
||||||
Процедура ПослеСбораТехническойИнформацииОПрограммах(ИнформацияОПрограммах, Контекст) Экспорт
|
Процедура ПослеСбораТехническойИнформацииОПрограммах(ИнформацияОПрограммах, Контекст) Экспорт
|
||||||
|
|
||||||
Контекст.СопроводительныйТекст = Контекст.СопроводительныйТекст + ИнформацияОПрограммах;
|
Контекст.СопроводительныйТекст = Контекст.СопроводительныйТекст + ИнформацияОПрограммах + Символы.ПС
|
||||||
|
+ РезультатДиагностикиСерверовМетокВремени() + Символы.ПС;
|
||||||
|
|
||||||
|
|
||||||
Если Контекст.ВыгрузитьАрхив Тогда
|
Если Контекст.ВыгрузитьАрхив Тогда
|
||||||
Контекст.Вставить("АдресАрхива", ЭлектроннаяПодписьСлужебныйВызовСервера.АдресАрхиваТехническойИнформации(
|
Контекст.Вставить("АдресАрхива", ЭлектроннаяПодписьСлужебныйВызовСервера.АдресАрхиваТехническойИнформации(
|
||||||
@@ -9626,6 +9686,13 @@
|
|||||||
|
|
||||||
#Область УстановкаСпискаОтзыва
|
#Область УстановкаСпискаОтзыва
|
||||||
|
|
||||||
|
// Параметры:
|
||||||
|
// Контекст - Структура:
|
||||||
|
// * Сертификат - ДвоичныеДанные
|
||||||
|
// - Строка - адрес во временном хранилище
|
||||||
|
// - Строка - Сертификат base64 строка
|
||||||
|
// - СертификатКриптографии
|
||||||
|
//
|
||||||
Асинх Процедура УстановитьСписокОтзываСертификатаПослеПодключенияКомпоненты(ОбъектКомпоненты, Контекст) Экспорт
|
Асинх Процедура УстановитьСписокОтзываСертификатаПослеПодключенияКомпоненты(ОбъектКомпоненты, Контекст) Экспорт
|
||||||
|
|
||||||
Если ТипЗнч(ОбъектКомпоненты) = Тип("Строка") Тогда
|
Если ТипЗнч(ОбъектКомпоненты) = Тип("Строка") Тогда
|
||||||
@@ -9633,8 +9700,18 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ТипЗнч(Контекст.Сертификат) = Тип("ДвоичныеДанные") Тогда
|
||||||
|
ДвоичныеДанныеСертификата = Контекст.Сертификат;
|
||||||
|
ИначеЕсли ТипЗнч(Контекст.Сертификат) = Тип("СертификатКриптографии") Тогда
|
||||||
|
ДвоичныеДанныеСертификата = Ждать Контекст.Сертификат.ВыгрузитьАсинх();
|
||||||
|
ИначеЕсли ЭтоАдресВременногоХранилища(Контекст.Сертификат) Тогда
|
||||||
|
ДвоичныеДанныеСертификата = ПолучитьИзВременногоХранилища(Контекст.Сертификат);
|
||||||
|
Иначе
|
||||||
|
ДвоичныеДанныеСертификата = Base64Значение(Контекст.Сертификат);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Контекст.Адреса) Тогда
|
Если Не ЗначениеЗаполнено(Контекст.Адреса) Тогда
|
||||||
СвойстваСертификатаРасширенные = Ждать ПолучитьСвойстваСертификатаАсинх(Контекст.Сертификат, ОбъектКомпоненты);
|
СвойстваСертификатаРасширенные = Ждать ПолучитьСвойстваСертификатаАсинх(ДвоичныеДанныеСертификата, ОбъектКомпоненты);
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(СвойстваСертификатаРасширенные.Ошибка) Тогда
|
Если ЗначениеЗаполнено(СвойстваСертификатаРасширенные.Ошибка) Тогда
|
||||||
ОбработатьОшибкуУстановкиСпискаОтзыва(СвойстваСертификатаРасширенные.Ошибка, Контекст);
|
ОбработатьОшибкуУстановкиСпискаОтзыва(СвойстваСертификатаРасширенные.Ошибка, Контекст);
|
||||||
@@ -9661,7 +9738,7 @@
|
|||||||
Контекст.Вставить("ОбъектКомпоненты", ОбъектКомпоненты);
|
Контекст.Вставить("ОбъектКомпоненты", ОбъектКомпоненты);
|
||||||
Контекст.Вставить("АдресРесурса", Параметры.АдресРесурса);
|
Контекст.Вставить("АдресРесурса", Параметры.АдресРесурса);
|
||||||
|
|
||||||
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДополнительныеСвойстваСертификата(Контекст.Сертификат);
|
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДополнительныеСвойстваСертификата(ДвоичныеДанныеСертификата);
|
||||||
Контекст.Вставить("ИдентификаторКлючаУдостоверяющегоЦентра", СвойстваСертификата.ИдентификаторКлючаУдостоверяющегоЦентра);
|
Контекст.Вставить("ИдентификаторКлючаУдостоверяющегоЦентра", СвойстваСертификата.ИдентификаторКлючаУдостоверяющегоЦентра);
|
||||||
|
|
||||||
ДлительнаяОперация = ЭлектроннаяПодписьСлужебныйВызовСервера.НачатьСкачиваниеФайлаНаСервере(Параметры);
|
ДлительнаяОперация = ЭлектроннаяПодписьСлужебныйВызовСервера.НачатьСкачиваниеФайлаНаСервере(Параметры);
|
||||||
@@ -10906,17 +10983,32 @@
|
|||||||
УдалитьСертификатИзЛокальногоХранилища(Параметры.ДанныеСертификата);
|
УдалитьСертификатИзЛокальногоХранилища(Параметры.ДанныеСертификата);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ДиагностикаСерверовМетокВремениСервер" Тогда
|
||||||
|
|
||||||
|
ДиагностикаСерверовМетокВремени("Сервер");
|
||||||
|
|
||||||
|
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ДиагностикаСерверовМетокВремениКлиент" Тогда
|
||||||
|
|
||||||
|
ДиагностикаСерверовМетокВремени("Клиент");
|
||||||
|
|
||||||
|
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ОткрытьНастройкиЭлектроннойПодписи" Тогда
|
||||||
|
|
||||||
|
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда
|
||||||
|
МодульНастройкиПрограммыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("НастройкиПрограммыКлиент");
|
||||||
|
МодульНастройкиПрограммыКлиент.ОткрытьОбщиеНастройки();
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "УстановитьКомпоненту" Тогда
|
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "УстановитьКомпоненту" Тогда
|
||||||
|
|
||||||
Оповещение = Новый ОписаниеОповещения("ОповеститьОбУспешномПодключенииКомпоненты", ЭтотОбъект);
|
Оповещение = Новый ОписаниеОповещения("ОповеститьОбУспешномПодключенииКомпоненты", ЭтотОбъект);
|
||||||
ВыполнитьПослеПроверкиРасширенияИКомпоненты(Оповещение);
|
ВыполнитьПослеПроверкиРасширенияИКомпоненты(Оповещение);
|
||||||
|
|
||||||
ИначеЕсли СтрНайти(НавигационнаяСсылкаФорматированнойСтроки, "http") Тогда
|
ИначеЕсли СтрНайти(НавигационнаяСсылкаФорматированнойСтроки, "http") Тогда
|
||||||
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигационнаяСсылкаФорматированнойСтроки, );
|
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигационнаяСсылкаФорматированнойСтроки, );
|
||||||
ИначеЕсли СтрНачинаетсяС(НавигационнаяСсылкаФорматированнойСтроки, "e1cib") Тогда
|
ИначеЕсли СтрНачинаетсяС(НавигационнаяСсылкаФорматированнойСтроки, "e1cib") Тогда
|
||||||
СтандартнаяОбработка = Истина;
|
СтандартнаяОбработка = Истина;
|
||||||
Иначе
|
Иначе
|
||||||
ПоказатьПредупреждение(, НСтр("ru = 'Действие временно недоступно.'"));
|
ПоказатьПредупреждение(, НСтр("ru = 'Действие будет доступно в следующих обновлениях приложения'"));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
@@ -11198,7 +11290,7 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Асинх Функция СвойстваПодписиЧтениеМенеджеромКриптографии(Подпись, МенеджерКриптографии, ПрочитатьСертификаты)
|
Асинх Функция СвойстваПодписиЧтениеМенеджеромКриптографии(Подпись, МенеджерКриптографии, ПрочитатьСертификаты) Экспорт
|
||||||
|
|
||||||
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи();
|
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.РезультатЧтенияСвойствПодписи();
|
||||||
|
|
||||||
@@ -11458,5 +11550,28 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция РезультатДиагностикиСерверовМетокВремени()
|
||||||
|
|
||||||
|
АдресаСерверовМетокВремени = ЭлектроннаяПодписьКлиент.ОбщиеНастройки().АдресаСерверовМетокВремени;
|
||||||
|
|
||||||
|
Если АдресаСерверовМетокВремени.Количество() = 0 Тогда
|
||||||
|
|
||||||
|
Возврат НСтр("ru = 'Адреса серверов меток времени не заполнены в настройках электронной подписи.'");
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
#Если ВебКлиент Тогда
|
||||||
|
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||||
|
"ru = 'Диагностика серверов меток времени недоступна при работе в веб-клиенте. Попробуйте в браузере скачать файл по ссылке.
|
||||||
|
|%1'"), СтрСоединить(АдресаСерверовМетокВремени, Символы.ПС));
|
||||||
|
|
||||||
|
#Иначе
|
||||||
|
СтрокаПодключения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Подключение к серверам меток времени на компьютере <%1>.'"), ИмяКомпьютера());
|
||||||
|
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.ДиагностикаСерверовМетокВремени(АдресаСерверовМетокВремени, СтрокаПодключения);
|
||||||
|
#КонецЕсли
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
@@ -1746,14 +1746,14 @@
|
|||||||
Если Подпись.МеткаВремениПодписи <> Неопределено Тогда
|
Если Подпись.МеткаВремениПодписи <> Неопределено Тогда
|
||||||
СертификатПоследнейМеткиВремени = Подпись.МеткаВремениПодписи.Подписи[0].СертификатПодписи; // СертификатКриптографии
|
СертификатПоследнейМеткиВремени = Подпись.МеткаВремениПодписи.Подписи[0].СертификатПодписи; // СертификатКриптографии
|
||||||
СрокДействияПоследнейМеткиВремени = СертификатПоследнейМеткиВремени.ДатаОкончания;
|
СрокДействияПоследнейМеткиВремени = СертификатПоследнейМеткиВремени.ДатаОкончания;
|
||||||
ДатаПодписиИзМетки = Мин(ДатаПодписиИзМетки, Подпись.МеткаВремениПодписи.Дата + РазницаСУниверсальнымВременем);
|
ДатаПодписиИзМетки = Мин(ДатаПодписиИзМетки, Подпись.МеткаВремениПодписи.Дата);
|
||||||
ПараметрыПодписи.ДатаПоследнейМеткиВремени = Подпись.МеткаВремениПодписи.Дата + РазницаСУниверсальнымВременем;
|
ПараметрыПодписи.ДатаПоследнейМеткиВремени = Подпись.МеткаВремениПодписи.Дата + РазницаСУниверсальнымВременем;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Подпись.МеткаВремениДанныхПроверкиПодписи <> Неопределено Тогда
|
Если Подпись.МеткаВремениДанныхПроверкиПодписи <> Неопределено Тогда
|
||||||
СертификатПоследнейМеткиВремени = Подпись.МеткаВремениДанныхПроверкиПодписи.Подписи[0].СертификатПодписи; // СертификатКриптографии
|
СертификатПоследнейМеткиВремени = Подпись.МеткаВремениДанныхПроверкиПодписи.Подписи[0].СертификатПодписи; // СертификатКриптографии
|
||||||
СрокДействияПоследнейМеткиВремени = СертификатПоследнейМеткиВремени.ДатаОкончания;
|
СрокДействияПоследнейМеткиВремени = СертификатПоследнейМеткиВремени.ДатаОкончания;
|
||||||
ДатаПодписиИзМетки = Мин(ДатаПодписиИзМетки, Подпись.МеткаВремениДанныхПроверкиПодписи.Дата + РазницаСУниверсальнымВременем);
|
ДатаПодписиИзМетки = Мин(ДатаПодписиИзМетки, Подпись.МеткаВремениДанныхПроверкиПодписи.Дата);
|
||||||
ПараметрыПодписи.ДатаПоследнейМеткиВремени = Подпись.МеткаВремениДанныхПроверкиПодписи.Дата + РазницаСУниверсальнымВременем;
|
ПараметрыПодписи.ДатаПоследнейМеткиВремени = Подпись.МеткаВремениДанныхПроверкиПодписи.Дата + РазницаСУниверсальнымВременем;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@@ -1761,8 +1761,8 @@
|
|||||||
ИндексПоследнейМетки = Подпись.АрхивныеМеткиВремени.ВГраница();
|
ИндексПоследнейМетки = Подпись.АрхивныеМеткиВремени.ВГраница();
|
||||||
СертификатПоследнейМеткиВремени = Подпись.АрхивныеМеткиВремени[ИндексПоследнейМетки].Подписи[0].СертификатПодписи; // СертификатКриптографии
|
СертификатПоследнейМеткиВремени = Подпись.АрхивныеМеткиВремени[ИндексПоследнейМетки].Подписи[0].СертификатПодписи; // СертификатКриптографии
|
||||||
СрокДействияПоследнейМеткиВремени = СертификатПоследнейМеткиВремени.ДатаОкончания;
|
СрокДействияПоследнейМеткиВремени = СертификатПоследнейМеткиВремени.ДатаОкончания;
|
||||||
ДатаПодписиИзМетки = Мин(ДатаПодписиИзМетки, Подпись.АрхивныеМеткиВремени[0].Дата + РазницаСУниверсальнымВременем);
|
ДатаПодписиИзМетки = Мин(ДатаПодписиИзМетки, Подпись.АрхивныеМеткиВремени[0].Дата);
|
||||||
ПараметрыПодписи.ДатаПоследнейМеткиВремени = Подпись.АрхивныеМеткиВремени[ИндексПоследнейМетки].Дата;
|
ПараметрыПодписи.ДатаПоследнейМеткиВремени = Подпись.АрхивныеМеткиВремени[ИндексПоследнейМетки].Дата + РазницаСУниверсальнымВременем;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЗначениеЗаполнено(СрокДействияПоследнейМеткиВремени) Тогда
|
Если ЗначениеЗаполнено(СрокДействияПоследнейМеткиВремени) Тогда
|
||||||
@@ -1776,7 +1776,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДатаПодписиИзМетки <> Дата(3999, 12, 31) Тогда
|
Если ДатаПодписиИзМетки <> Дата(3999, 12, 31) Тогда
|
||||||
ПараметрыПодписи.ДатаПодписиИзМетки = ДатаПодписиИзМетки;
|
ПараметрыПодписи.ДатаПодписиИзМетки = ДатаПодписиИзМетки + РазницаСУниверсальнымВременем;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ПараметрыПодписи;
|
Возврат ПараметрыПодписи;
|
||||||
@@ -1865,9 +1865,18 @@
|
|||||||
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.РасширеннаяДолгосрочнаяCAdESXLongType2")
|
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.РасширеннаяДолгосрочнаяCAdESXLongType2")
|
||||||
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.АрхивнаяCAdESAv3") Тогда
|
Или ТипПодписи = ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.АрхивнаяCAdESAv3") Тогда
|
||||||
|
|
||||||
|
Граница = Результат.АдресаСерверовМетокВремени.ВГраница();
|
||||||
|
Для Счетчик = 0 По Граница Цикл
|
||||||
|
ТекущийИндекс = Граница - Счетчик;
|
||||||
|
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(Результат.АдресаСерверовМетокВремени[ТекущийИндекс]);
|
||||||
|
Если СтруктураURI.ИмяСервера = "" Тогда
|
||||||
|
Результат.АдресаСерверовМетокВремени.Удалить(ТекущийИндекс);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
Если Результат.АдресаСерверовМетокВремени.Количество() = 0 Тогда
|
Если Результат.АдресаСерверовМетокВремени.Количество() = 0 Тогда
|
||||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru='Для создания подписи типа ""%1"" заполните адреса серверов штампов времени.'"), ТипПодписи);
|
НСтр("ru='Для создания подписи с типом ""%1"" заполните адреса серверов меток времени.'"), ТипПодписи);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ИначеЕсли ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")
|
ИначеЕсли ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")
|
||||||
@@ -3533,7 +3542,7 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
ИначеЕсли ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||||
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ДанныеСертификата(ЭлектроннаяПодписьСлужебныйВызовСервера.ДанныеСертификата(Сертификат));
|
ДанныеСертификата = ЭлектроннаяПодписьСлужебныйВызовСервера.ДанныеСертификата(Сертификат);
|
||||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
|
ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
|
||||||
ДанныеСертификата = Сертификат;
|
ДанныеСертификата = Сертификат;
|
||||||
Иначе
|
Иначе
|
||||||
@@ -3567,11 +3576,197 @@
|
|||||||
|
|
||||||
Структура = Новый Структура;
|
Структура = Новый Структура;
|
||||||
Структура.Вставить("ПроверитьСертификатВЛокальномХранилищеКлиента", Ложь);
|
Структура.Вставить("ПроверитьСертификатВЛокальномХранилищеКлиента", Ложь);
|
||||||
|
Структура.Вставить("ДиагностикаСерверовМетокВремениКлиент", Ложь);
|
||||||
|
|
||||||
Возврат Структура;
|
Возврат Структура;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ДиагностикаСерверовМетокВремени(АдресаСерверовМетокВремени, СтрокаПодключения) Экспорт
|
||||||
|
|
||||||
|
Массив = Новый Массив;
|
||||||
|
Массив.Добавить(СтрокаПодключения);
|
||||||
|
Массив.Добавить(Символы.ПС);
|
||||||
|
|
||||||
|
Для Каждого Адрес Из АдресаСерверовМетокВремени Цикл
|
||||||
|
|
||||||
|
СообщениеОбОшибке = ДиагностикаСервераМетокВремени(Адрес);
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(СообщениеОбОшибке) Тогда
|
||||||
|
Массив.Добавить(СообщениеОбОшибке);
|
||||||
|
Иначе
|
||||||
|
Массив.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 - доступен.'"), Адрес));
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Массив.Добавить(Символы.ПС);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат СтрСоединить(Массив, Символы.ПС);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Функция для диагностики сервера меток времени.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// URL - Строка - url файла в формате: [Протокол://]<Сервер>/<Путь к файлу на сервере>.
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура:
|
||||||
|
// * СообщениеОбОшибке - Строка
|
||||||
|
//
|
||||||
|
Функция ДиагностикаСервераМетокВремени(Знач URL, Перенаправления = Неопределено)
|
||||||
|
|
||||||
|
#Если ВебКлиент Тогда
|
||||||
|
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр(
|
||||||
|
"ru = 'Диагностика недоступна при работе в веб-клиенте. Попробуйте в браузере скачать файл по ссылке %1'"),
|
||||||
|
URL);
|
||||||
|
|
||||||
|
#Иначе
|
||||||
|
|
||||||
|
Если Перенаправления = Неопределено Тогда
|
||||||
|
Перенаправления = Новый Массив;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URL);
|
||||||
|
|
||||||
|
Сервер = СтруктураURI.Хост;
|
||||||
|
ПутьНаСервере = СтруктураURI.ПутьНаСервере;
|
||||||
|
Протокол = СтруктураURI.Схема;
|
||||||
|
|
||||||
|
Если ПустаяСтрока(Протокол) Тогда
|
||||||
|
Протокол = "http";
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Протокол = "https" Тогда
|
||||||
|
ЗащищенноеСоединение = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗащищенноеСоединение = Истина Тогда
|
||||||
|
ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||||
|
ИначеЕсли ЗащищенноеСоединение = Ложь Тогда
|
||||||
|
ЗащищенноеСоединение = Неопределено;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Порт = СтруктураURI.Порт;
|
||||||
|
Прокси = Неопределено;
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
|
||||||
|
Соединение = Новый HTTPСоединение(Сервер, Порт, , , Прокси, 7, ЗащищенноеСоединение);
|
||||||
|
|
||||||
|
Сервер = Соединение.Сервер;
|
||||||
|
Порт = Соединение.Порт;
|
||||||
|
|
||||||
|
ЗапросHTTP = Новый HTTPЗапрос(ПутьНаСервере, Новый Соответствие);
|
||||||
|
ЗапросHTTP.Заголовки.Вставить("Accept-Charset", "UTF-8");
|
||||||
|
ЗапросHTTP.Заголовки.Вставить("X-1C-Request-UID", Строка(Новый УникальныйИдентификатор));
|
||||||
|
ОтветHTTP = Соединение.Получить(ЗапросHTTP);
|
||||||
|
|
||||||
|
Исключение
|
||||||
|
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось установить HTTP-соединение с сервером %1:%2
|
||||||
|
|по причине:
|
||||||
|
|%3'"), Сервер, Формат(Порт, "ЧГ="), ОбработкаОшибок.КраткоеПредставлениеОшибки(
|
||||||
|
ИнформацияОбОшибке()));
|
||||||
|
|
||||||
|
Возврат ТекстОшибки;
|
||||||
|
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
|
||||||
|
Если ОтветHTTP.КодСостояния = 301 // 301 Moved Permanently
|
||||||
|
Или ОтветHTTP.КодСостояния = 302 // 302 Found, 302 Moved Temporarily
|
||||||
|
Или ОтветHTTP.КодСостояния = 303 // 303 See Other by GET
|
||||||
|
Или ОтветHTTP.КодСостояния = 307 // 307 Temporary Redirect
|
||||||
|
Или ОтветHTTP.КодСостояния = 308 Тогда // 308 Permanent Redirect
|
||||||
|
|
||||||
|
Если Перенаправления.Количество() > 7 Тогда
|
||||||
|
ВызватьИсключение
|
||||||
|
НСтр("ru = 'Превышено количество перенаправлений.'");
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Заголовки = Новый Соответствие;
|
||||||
|
Для Каждого Заголовок Из ОтветHTTP.Заголовки Цикл
|
||||||
|
Заголовки.Вставить(НРег(Заголовок.Ключ), Заголовок.Значение);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
НовыйURL = Заголовки["location"];
|
||||||
|
Если НовыйURL = Неопределено Тогда
|
||||||
|
ВызватьИсключение
|
||||||
|
НСтр("ru = 'Некорректное перенаправление, отсутствует HTTP-заголовок ответа ""Location"".'");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НовыйURL = СокрЛП(НовыйURL);
|
||||||
|
Если ПустаяСтрока(НовыйURL) Тогда
|
||||||
|
ВызватьИсключение
|
||||||
|
НСтр("ru = 'Некорректное перенаправление, пустой HTTP-заголовок ответа ""Location"".'");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Перенаправления.Найти(НовыйURL) <> Неопределено Тогда
|
||||||
|
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Циклическое перенаправление.
|
||||||
|
|Попытка перейти на %1 уже выполнялась ранее.'"),
|
||||||
|
НовыйURL);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Перенаправления.Добавить(URL);
|
||||||
|
Если Не СтрНачинаетсяС(НовыйURL, "http") Тогда
|
||||||
|
// <схема>://<хост>:<порт>/<путь>
|
||||||
|
НовыйURL = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
"%1://%2:%3/%4", Протокол, Сервер, Формат(Порт, "ЧГ="), НовыйURL);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат ДиагностикаСервераМетокВремени(НовыйURL, Перенаправления);
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ОтветHTTP.КодСостояния < 200 Или ОтветHTTP.КодСостояния >= 300 Тогда
|
||||||
|
|
||||||
|
Если ОтветHTTP.КодСостояния < 200 Или ОтветHTTP.КодСостояния >= 300 И ОтветHTTP.КодСостояния < 400 Тогда
|
||||||
|
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Неподдерживаемый ответ сервера (%1)'"), ОтветHTTP.КодСостояния);
|
||||||
|
|
||||||
|
ВызватьИсключение ТекстОшибки;
|
||||||
|
|
||||||
|
ИначеЕсли ОтветHTTP.КодСостояния >= 400 И ОтветHTTP.КодСостояния < 500 Тогда
|
||||||
|
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Ошибка при выполнении запроса (%1)'"), ОтветHTTP.КодСостояния);
|
||||||
|
ВызватьИсключение ТекстОшибки;
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Ошибка сервера при обработке запроса к ресурсу (%1)'"), ОтветHTTP.КодСостояния);
|
||||||
|
|
||||||
|
ВызватьИсключение ТекстОшибки;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Исключение
|
||||||
|
|
||||||
|
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Не удалось получить файл %1 с сервера %2:%3 по причине:
|
||||||
|
|%4'"), URL, Сервер, Формат(Порт, "ЧГ="), ОбработкаОшибок.КраткоеПредставлениеОшибки(
|
||||||
|
ИнформацияОбОшибке()));
|
||||||
|
Возврат ТекстОшибки;
|
||||||
|
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Возврат "";
|
||||||
|
|
||||||
|
#КонецЕсли
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#Область ОбластьXML
|
#Область ОбластьXML
|
||||||
|
|
||||||
// Параметры:
|
// Параметры:
|
||||||
@@ -3759,6 +3954,66 @@
|
|||||||
|
|
||||||
#Область СодержимоеСертификата
|
#Область СодержимоеСертификата
|
||||||
|
|
||||||
|
Функция ЭтоСертификатГОСТ(АлгоритмСертификата) Экспорт
|
||||||
|
|
||||||
|
Возврат СтрНачинаетсяС(АлгоритмСертификата, "1.2.643");
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция АлгоритмПодписиСоответствуетСертификату(ПредставлениеСертификата, АлгоритмСертификата, АлгоритмПодписи, АлгоритмХеширования = Неопределено) Экспорт
|
||||||
|
|
||||||
|
Если Не ЭтоСертификатГОСТ(АлгоритмСертификата) Тогда
|
||||||
|
Возврат Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(АлгоритмПодписи) И Не ЗначениеЗаполнено(АлгоритмХеширования) Тогда
|
||||||
|
Возврат Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НаборыАлгоритмовДляСозданияПодписи = НаборыАлгоритмовДляСозданияПодписи();
|
||||||
|
|
||||||
|
АлгоритмыДляПроверки = Неопределено;
|
||||||
|
Для Каждого НаборАлгоритмов Из НаборыАлгоритмовДляСозданияПодписи Цикл
|
||||||
|
Если НаборАлгоритмов.ИдентификаторАлгоритмаОткрытогоКлюча = АлгоритмСертификата Тогда
|
||||||
|
АлгоритмыДляПроверки = НаборАлгоритмов;
|
||||||
|
Прервать;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Если АлгоритмыДляПроверки <> Неопределено Тогда
|
||||||
|
|
||||||
|
Если АлгоритмПодписи <> АлгоритмСертификата И АлгоритмыДляПроверки.ИдентификаторАлгоритмаПодписи <> АлгоритмСертификата Тогда
|
||||||
|
Если АлгоритмыДляПроверки.ИменаАлгоритмаПодписи.Количество() > 0
|
||||||
|
И АлгоритмыДляПроверки.ИменаАлгоритмаПодписи.Найти(ВРЕГ(АлгоритмПодписи)) = Неопределено Тогда
|
||||||
|
Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр(
|
||||||
|
"ru = 'Сертификат %1 связан с приложением электронной подписи с не соответствующим сертификату алгоритмом подписи %2. Сертификат должен быть связан с приложением с алгоритмом подписания %3.'"),
|
||||||
|
ПредставлениеСертификата, АлгоритмПодписи, ПредставлениеАлгоритма(
|
||||||
|
АлгоритмыДляПроверки.ИменаАлгоритмаПодписи));
|
||||||
|
|
||||||
|
Возврат Ошибка;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(АлгоритмХеширования) И (АлгоритмХеширования <> АлгоритмыДляПроверки.ИдентификаторАлгоритмаХеширования) Тогда
|
||||||
|
Если АлгоритмыДляПроверки.ИменаАлгоритмаХеширования.Количество() > 0
|
||||||
|
И АлгоритмыДляПроверки.ИменаАлгоритмаХеширования.Найти(ВРЕГ(
|
||||||
|
АлгоритмХеширования)) = Неопределено Тогда
|
||||||
|
Ошибка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр(
|
||||||
|
"ru = 'Сертификат %1 связан с приложением электронной подписи с не соответствующим сертификату алгоритмом хеширования %2. Сертификат должен быть связан с приложением с алгоритмом хеширования %3.'"),
|
||||||
|
ПредставлениеСертификата, АлгоритмХеширования, ПредставлениеАлгоритма(
|
||||||
|
АлгоритмыДляПроверки.ИменаАлгоритмаХеширования));
|
||||||
|
Возврат Ошибка;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат Истина;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция ДополнительныеСвойстваСертификата(Данные, РазницаСУниверсальнымВременем = Неопределено) Экспорт
|
Функция ДополнительныеСвойстваСертификата(Данные, РазницаСУниверсальнымВременем = Неопределено) Экспорт
|
||||||
|
|
||||||
Структура = Новый Структура;
|
Структура = Новый Структура;
|
||||||
@@ -4936,6 +5191,19 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПредставлениеАлгоритма(ИменаАлгоритмаПодписи)
|
||||||
|
ВГраница = ИменаАлгоритмаПодписи.ВГраница();
|
||||||
|
Если ВГраница = 0 Тогда
|
||||||
|
Возврат ИменаАлгоритмаПодписи[0];
|
||||||
|
Иначе
|
||||||
|
Имена = "";
|
||||||
|
Для н = 1 По ВГраница Цикл
|
||||||
|
Имена = Имена + ИменаАлгоритмаПодписи[н] + ?(н = ВГраница, "", ", ");
|
||||||
|
КонецЦикла;
|
||||||
|
Возврат ИменаАлгоритмаПодписи[0] + " (" + Имена + ")";
|
||||||
|
КонецЕсли;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция АлгоритмПодписиСоответствующийАлгоритмуХешированияГОСТ(АлгоритмХеширования)
|
Функция АлгоритмПодписиСоответствующийАлгоритмуХешированияГОСТ(АлгоритмХеширования)
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(АлгоритмХеширования) Тогда
|
Если Не ЗначениеЗаполнено(АлгоритмХеширования) Тогда
|
||||||
|
|||||||
@@ -474,7 +474,7 @@
|
|||||||
//
|
//
|
||||||
Функция ВерсияКлассификатора() Экспорт
|
Функция ВерсияКлассификатора() Экспорт
|
||||||
|
|
||||||
Возврат "3.0.1.24";
|
Возврат "3.0.1.29";
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|||||||
@@ -326,19 +326,19 @@
|
|||||||
|
|
||||||
Если Действие = "УстановитьСписокОтзываСертификата" Тогда
|
Если Действие = "УстановитьСписокОтзываСертификата" Тогда
|
||||||
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = '- <a href=%1>Установите список отзыва</a> удостоверяющего центра автоматически.
|
НСтр("ru = '• <a href=%1>Установите список отзыва</a> удостоверяющего центра автоматически.
|
||||||
|%2'"), Действие, Решение);
|
|%2'"), Действие, Решение);
|
||||||
ИначеЕсли Действие = "УстановитьКорневойСертификат" Тогда
|
ИначеЕсли Действие = "УстановитьКорневойСертификат" Тогда
|
||||||
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = '- <a href=%1>Установите корневой сертификат</a> удостоверяющего центра автоматически.
|
НСтр("ru = '• <a href=%1>Установите корневой сертификат</a> удостоверяющего центра автоматически.
|
||||||
|%2'"), Действие, Решение);
|
|%2'"), Действие, Решение);
|
||||||
ИначеЕсли Действие = "УстановитьСертификат" Тогда
|
ИначеЕсли Действие = "УстановитьСертификат" Тогда
|
||||||
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = '- <a href=%1>Установите сертификат</a> в Личное хранилище сертификатов пользователя операционной системы автоматически.
|
НСтр("ru = '• <a href=%1>Установите сертификат</a> в Личное хранилище сертификатов пользователя операционной системы автоматически.
|
||||||
|%2'"), Действие, Решение);
|
|%2'"), Действие, Решение);
|
||||||
ИначеЕсли Действие = "УстановитьСертификатВКонтейнер" Тогда
|
ИначеЕсли Действие = "УстановитьСертификатВКонтейнер" Тогда
|
||||||
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
НСтр("ru = '- <a href=%1>Установите сертификат в контейнер</a> прямо из приложения.
|
НСтр("ru = '• <a href=%1>Установите сертификат в контейнер</a> прямо из приложения.
|
||||||
|%2'"), Действие, Решение);
|
|%2'"), Действие, Решение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Loaded 100 of 229 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user