3_1_10_206
This commit is contained in:
1 parent
44a10b9181
commit
f91290c6ec
230 files changed
+14068
-3500
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 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ПриЗаписи(Отказ)
|
||||||
|
|
||||||
|
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
||||||
|
Справочники.ИдентификаторыОбъектовМетаданных.ПриЗаписиОбъекта(ЭтотОбъект);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ПередУдалением(Отказ)
|
Процедура ПередУдалением(Отказ)
|
||||||
|
|
||||||
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
// Проверка ОбменДанными.Загрузка выполняется в вызываемой процедуре.
|
||||||
|
|||||||
+4
-5
@@ -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,15 +1143,10 @@
|
|||||||
Для Каждого Строка Из Объект.Представители Цикл
|
Для Каждого Строка Из Объект.Представители Цикл
|
||||||
|
|
||||||
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
||||||
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
ПредставлениеПредставителя = ПредставлениеДоверителяПредставителяДляОшибки(Строка.Представитель, РеквизитыОрганизации);
|
||||||
СтрокаОшибки = НСтр("ru = 'Организация %1 - %2'");
|
|
||||||
Иначе
|
ШаблонОшибки = ПредставлениеПредставителя + " - %1:";
|
||||||
СтрокаОшибки = НСтр("ru = 'Физическое лицо %1 - %2'");
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
ШаблонОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаОшибки,
|
|
||||||
Строка.Представитель, " %1: ");
|
|
||||||
|
|
||||||
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
Если Не ЗначениеЗаполнено(Строка.ИдентификаторРодителя) Тогда
|
||||||
Поле = "Представитель";
|
Поле = "Представитель";
|
||||||
Иначе
|
Иначе
|
||||||
@@ -1194,7 +1185,7 @@
|
|||||||
|
|
||||||
Если ЗначениеЗаполнено(Объект.РодительскаяДоверенность) Тогда
|
Если ЗначениеЗаполнено(Объект.РодительскаяДоверенность) Тогда
|
||||||
|
|
||||||
РеквизитыРодительскойДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.РодительскаяДоверенность, "Представители, ДатаОкончания");
|
РеквизитыРодительскойДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.РодительскаяДоверенность, "Представители, ДатаВыдачи, ДатаОкончания");
|
||||||
ПредставителиРодительскойДоверенности = РеквизитыРодительскойДоверенности.Представители.Выгрузить();
|
ПредставителиРодительскойДоверенности = РеквизитыРодительскойДоверенности.Представители.Выгрузить();
|
||||||
|
|
||||||
Если Объект.ДатаОкончания > РеквизитыРодительскойДоверенности.ДатаОкончания Тогда
|
Если Объект.ДатаОкончания > РеквизитыРодительскойДоверенности.ДатаОкончания Тогда
|
||||||
@@ -1204,6 +1195,13 @@
|
|||||||
Формат(РеквизитыРодительскойДоверенности.ДатаОкончания, "ДЛФ=D")),, "ДатаОкончания",, Отказ);
|
Формат(РеквизитыРодительскойДоверенности.ДатаОкончания, "ДЛФ=D")),, "ДатаОкончания",, Отказ);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если Объект.ДатаВыдачи < РеквизитыРодительскойДоверенности.ДатаВыдачи Тогда
|
||||||
|
ОбщегоНазначения.СообщитьПользователю(
|
||||||
|
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Дата начала действия не должна быть меньше, чем у родительской доверенности (%1)'"),
|
||||||
|
Формат(РеквизитыРодительскойДоверенности.ДатаВыдачи, "ДЛФ=D")),, "ДатаВыдачи",, Отказ);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Для Каждого Строка Из ПредставителиРодительскойДоверенности Цикл
|
Для Каждого Строка Из ПредставителиРодительскойДоверенности Цикл
|
||||||
|
|
||||||
РеквизитыОрганизации = Строка.ПредставительРеквизиты.Получить();
|
РеквизитыОрганизации = Строка.ПредставительРеквизиты.Получить();
|
||||||
@@ -1212,17 +1210,12 @@
|
|||||||
КПП = "";
|
КПП = "";
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
||||||
ШаблонОшибки = НСтр("ru = 'Организация %1 - %2'");
|
|
||||||
|
|
||||||
ИНН = РеквизитыОрганизации.ИНН;
|
ИНН = РеквизитыОрганизации.ИНН;
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
||||||
КПП = РеквизитыОрганизации.КПП;
|
КПП = РеквизитыОрганизации.КПП;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
ШаблонОшибки = НСтр("ru = 'Физическое лицо %1 - %2'");
|
|
||||||
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
Если Не РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
||||||
ИНН = РеквизитыОрганизации.ИННФЛ;
|
ИНН = РеквизитыОрганизации.ИННФЛ;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -1244,27 +1237,9 @@
|
|||||||
Для Каждого Строка Из Объект.Доверители Цикл
|
Для Каждого Строка Из Объект.Доверители Цикл
|
||||||
|
|
||||||
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
РеквизитыОрганизации = ПолучитьИзВременногоХранилища(Строка.АдресРеквизитов);
|
||||||
|
|
||||||
ИНН = "";
|
|
||||||
КПП = "";
|
|
||||||
Если Не РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
|
||||||
ШаблонОшибки = НСтр("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,18 +18,24 @@
|
|||||||
|
|
||||||
Процедура ПередЗаписью(Отказ)
|
Процедура ПередЗаписью(Отказ)
|
||||||
|
|
||||||
Если ОбменДанными.Загрузка Тогда
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
|
Если ЭтоГруппа Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЭтоГруппа Тогда
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа()
|
||||||
|
Или Не ОбменДанными.Загрузка Тогда
|
||||||
|
|
||||||
|
СтарыеЗначения = СтарыеЗначения();
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
|
Если ОбменДанными.Загрузка Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
|
РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
|
||||||
|
|
||||||
СтарыеЗначения = СтарыеЗначения();
|
|
||||||
|
|
||||||
Если Не Справочники.ВерсииРасширений.ВсеРасширенияПодключены() Тогда
|
Если Не Справочники.ВерсииРасширений.ВсеРасширенияПодключены() Тогда
|
||||||
Справочники.ПрофилиГруппДоступа.ВосстановитьНесуществующиеВидыИЗначенияДоступа(СтарыеЗначения, ЭтотОбъект);
|
Справочники.ПрофилиГруппДоступа.ВосстановитьНесуществующиеВидыИЗначенияДоступа(СтарыеЗначения, ЭтотОбъект);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -123,18 +129,32 @@
|
|||||||
|
|
||||||
Процедура ПриЗаписи(Отказ)
|
Процедура ПриЗаписи(Отказ)
|
||||||
|
|
||||||
Если ОбменДанными.Загрузка Тогда
|
// АПК:75-выкл проверка ОбменДанными.Загрузка должна быть после записи изменений в журнал.
|
||||||
|
Если ЭтоГруппа Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ЭтоГруппа Тогда
|
Если ПользователиСлужебныйПовтИсп.РегистрироватьИзмененияПравДоступа() Тогда
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||||
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
|
||||||
|
Справочники.ПрофилиГруппДоступа.ЗарегистрироватьИзменениеРолейПрофилей(ЭтотОбъект, СтарыеЗначения);
|
||||||
|
Справочники.ГруппыДоступа.ЗарегистрироватьИзменениеУчастниковГруппДоступа(ЭтотОбъект, СтарыеЗначения);
|
||||||
|
Справочники.ГруппыДоступа.ЗарегистрироватьИзменениеРазрешенныхЗначений(ЭтотОбъект, СтарыеЗначения);
|
||||||
|
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
|
УстановитьОтключениеБезопасногоРежима(Ложь);
|
||||||
|
КонецЕсли;
|
||||||
|
// АПК:75-вкл
|
||||||
|
|
||||||
|
Если ОбменДанными.Загрузка Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ПроверитьОднозначностьПоставляемыхДанных();
|
ПроверитьОднозначностьПоставляемыхДанных();
|
||||||
|
|
||||||
// При установке пометки удаления нужно установить пометку удаления у групп доступа профиля.
|
// При установке пометки удаления нужно установить пометку удаления у групп доступа профиля.
|
||||||
Если ПометкаУдаления И СтарыеЗначения.ПометкаУдаления = Ложь Тогда
|
Если Справочники.ГруппыДоступа.УстановленаПометкаУдаленияПрофиля(ЭтотОбъект, СтарыеЗначения) Тогда
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.УстановитьПараметр("Профиль", Ссылка);
|
Запрос.УстановитьПараметр("Профиль", Ссылка);
|
||||||
Запрос.Текст =
|
Запрос.Текст =
|
||||||
@@ -158,17 +178,20 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
Блокировка.Заблокировать();
|
Блокировка.Заблокировать();
|
||||||
|
|
||||||
Для каждого ГруппаДоступаСсылка Из ИзмененныеГруппыДоступа Цикл
|
УстановитьПривилегированныйРежим(Истина);
|
||||||
|
Для Каждого ГруппаДоступаСсылка Из ИзмененныеГруппыДоступа Цикл
|
||||||
ГруппаДоступаОбъект = ГруппаДоступаСсылка.ПолучитьОбъект();
|
ГруппаДоступаОбъект = ГруппаДоступаСсылка.ПолучитьОбъект();
|
||||||
|
ГруппаДоступаОбъект.ДополнительныеСвойства.Вставить("УстановкаПометкиУдаленияГруппыДоступаПриУстановкеПометкиУдаленияПрофиля");
|
||||||
ГруппаДоступаОбъект.ПометкаУдаления = Истина;
|
ГруппаДоступаОбъект.ПометкаУдаления = Истина;
|
||||||
ГруппаДоступаОбъект.Записать();
|
ГруппаДоступаОбъект.Записать();
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
УстановитьПривилегированныйРежим(Ложь);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ЗафиксироватьТранзакцию();
|
ЗафиксироватьТранзакцию();
|
||||||
Исключение
|
Исключение
|
||||||
ОтменитьТранзакцию();
|
ОтменитьТранзакцию();
|
||||||
ВызватьИсключение;
|
ВызватьИсключение;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДополнительныеСвойства.Свойство("ОбновитьГруппыДоступаПрофиля") Тогда
|
Если ДополнительныеСвойства.Свойство("ОбновитьГруппыДоступаПрофиля") Тогда
|
||||||
|
|||||||
@@ -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/>
|
||||||
|
|||||||
+217
-23
@@ -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 @@
|
|||||||
ПроверкиНаСервере = Новый Структура;
|
ПроверкиНаСервере = Новый Структура;
|
||||||
ДополнительныеДанныеПроверокНаКлиенте = Новый Структура;
|
ДополнительныеДанныеПроверокНаКлиенте = Новый Структура;
|
||||||
ДополнительныеДанныеПроверокНаСервере = Новый Структура;
|
ДополнительныеДанныеПроверокНаСервере = Новый Структура;
|
||||||
|
СертификатыМетокВремени.Очистить();
|
||||||
|
Элементы.ДекорацияСертификатМеткиВремени.Видимость = Ложь;
|
||||||
|
|
||||||
// Очистка предыдущих результатов проверки.
|
// Очистка предыдущих результатов проверки.
|
||||||
Если СтандартныеПроверки Тогда
|
Если СтандартныеПроверки Тогда
|
||||||
@@ -976,13 +1013,60 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ОписаниеОшибки = Ждать ДополнительнаяПроверкаНаВозможностьПодписания(Контекст.СертификатКриптографии, Ложь);
|
ОписаниеОшибки = Ждать ДополнительнаяПроверкаНаВозможностьПодписания(Контекст.СертификатКриптографии, Ложь);
|
||||||
|
|
||||||
// Подписание.
|
// Подписание.
|
||||||
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
Контекст.МенеджерКриптографии.НачатьПодписывание(Новый ОписаниеОповещения(
|
|
||||||
"ПроверитьНаСторонеКлиентаПослеПодписания", ЭтотОбъект, Контекст,
|
Попытка
|
||||||
"ПроверитьНаСторонеКлиентаПослеОшибкиПодписания", ЭтотОбъект),
|
ДанныеПодписи = Ждать Контекст.МенеджерКриптографии.ПодписатьАсинх(Контекст.ДанныеСертификата, Контекст.СертификатКриптографии);
|
||||||
Контекст.ДанныеСертификата, Контекст.СертификатКриптографии);
|
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||||
|
УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
|
ПроверитьНаСторонеКлиентаПослеПодписания(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") Тогда
|
||||||
|
|
||||||
|
Попытка
|
||||||
|
НастройкиПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.НастройкиСозданияПодписи(ТипПодписи,
|
||||||
|
ЭлектроннаяПодпись.ОбщиеНастройки().АдресаСерверовМетокВремени);
|
||||||
|
МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени;
|
||||||
|
ДанныеПодписи = МенеджерКриптографии.Подписать(ДанныеСертификата, СертификатКриптографии,
|
||||||
|
НастройкиПодписи.ТипПодписи);
|
||||||
|
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||||
|
Исключение
|
||||||
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
|
КонецПопытки;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||||
Возврат ДанныеПодписи;
|
Возврат ДанныеПодписи;
|
||||||
|
|
||||||
@@ -1802,13 +1950,49 @@
|
|||||||
|
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура ПроверитьПодписьНаСервере(МенеджерКриптографии, ДанныеСертификата, ДанныеПодписи)
|
Процедура ПроверитьПодписьНаСервере(МенеджерКриптографии, ДанныеСертификата, ДанныеПодписи)
|
||||||
|
|
||||||
ОписаниеОшибки = "";
|
ОписаниеОшибки = "";
|
||||||
Попытка
|
Попытка
|
||||||
МенеджерКриптографии.ПроверитьПодпись(ДанныеСертификата, ДанныеПодписи);
|
МенеджерКриптографии.ПроверитьПодпись(ДанныеСертификата, ДанныеПодписи);
|
||||||
Исключение
|
Исключение
|
||||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
|
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение(
|
||||||
|
"Перечисление.ТипыПодписиКриптографии.Базовая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 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
&НаСервереБезКонтекста
|
||||||
|
Функция ТипПодписиПоУмолчанию()
|
||||||
|
|
||||||
|
Возврат Константы.ТипПодписиКриптографииПоУмолчанию.Получить();
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата =
|
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата =
|
||||||
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||||
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
|
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Пока Выборка.Следующий() Цикл
|
Пока Выборка.Следующий() Цикл
|
||||||
|
|
||||||
@@ -235,17 +235,47 @@
|
|||||||
Исключение
|
Исключение
|
||||||
Сертификат = Неопределено;
|
Сертификат = Неопределено;
|
||||||
КонецПопытки;
|
КонецПопытки;
|
||||||
|
|
||||||
Если Сертификат <> Неопределено Тогда
|
Если Сертификат <> Неопределено Тогда
|
||||||
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||||
Сертификат, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ДвоичныеДанныеСертификата);
|
Сертификат, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(),
|
||||||
|
ДвоичныеДанныеСертификата);
|
||||||
Если СертификатОбъект.ДействителенДо <> СвойстваСертификата.ДействителенДо Тогда
|
Если СертификатОбъект.ДействителенДо <> СвойстваСертификата.ДействителенДо Тогда
|
||||||
СтрокаПоиска = Формат(СертификатОбъект.ДействителенДо, "ДФ=MM.yyyy");
|
СтрокаПоиска = Формат(СертификатОбъект.ДействителенДо, "ДФ=MM.yyyy");
|
||||||
СтрокаЗамены = Формат(СвойстваСертификата.ДействителенДо, "ДФ=MM.yyyy");
|
СтрокаЗамены = Формат(СвойстваСертификата.ДействителенДо, "ДФ=MM.yyyy");
|
||||||
СертификатОбъект.Наименование = СтрЗаменить(СертификатОбъект.Наименование, СтрокаПоиска, СтрокаЗамены);
|
СертификатОбъект.Наименование = СтрЗаменить(СертификатОбъект.Наименование, СтрокаПоиска,
|
||||||
|
СтрокаЗамены);
|
||||||
СертификатОбъект.ДействителенДо = СвойстваСертификата.ДействителенДо;
|
СертификатОбъект.ДействителенДо = СвойстваСертификата.ДействителенДо;
|
||||||
ЗаписатьОбъект = Истина;
|
ЗаписатьОбъект = Истина;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(СертификатОбъект.Программа) И ТипЗнч(СертификатОбъект.Программа) = Тип(
|
||||||
|
"СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования") Тогда
|
||||||
|
|
||||||
|
АлгоритмСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(
|
||||||
|
ДвоичныеДанныеСертификата, Ложь, Истина);
|
||||||
|
Если ЭлектроннаяПодписьСлужебныйКлиентСервер.ЭтоСертификатГОСТ(АлгоритмСертификата) Тогда
|
||||||
|
|
||||||
|
ОписаниеПрограммы = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
|
||||||
|
СертификатОбъект.Программа,
|
||||||
|
"ЭтоВстроенныйКриптопровайдер, АлгоритмПодписи, АлгоритмХеширования");
|
||||||
|
|
||||||
|
Если Не ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер Тогда
|
||||||
|
|
||||||
|
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСоответствуетСертификату(
|
||||||
|
"", АлгоритмСертификата, ОписаниеПрограммы.АлгоритмПодписи, ОписаниеПрограммы.АлгоритмХеширования);
|
||||||
|
|
||||||
|
Если Результат <> Истина Тогда
|
||||||
|
|
||||||
|
СертификатОбъект.Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
||||||
|
ЗаписатьОбъект = Истина;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|||||||
@@ -28,12 +28,38 @@
|
|||||||
|
|
||||||
Если ОбменДанными.Загрузка Тогда
|
Если ОбменДанными.Загрузка Тогда
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если Программа = Неопределено Тогда
|
Если Программа = Неопределено Тогда
|
||||||
Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(Программа) И ТипЗнч(Программа) = Тип(
|
||||||
|
"СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования") И ЗначениеЗаполнено(Отпечаток) Тогда
|
||||||
|
|
||||||
|
ОписаниеПрограммы = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Программа,
|
||||||
|
"ЭтоВстроенныйКриптопровайдер, АлгоритмПодписи, АлгоритмХеширования");
|
||||||
|
|
||||||
|
Если Не ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер Тогда
|
||||||
|
ДвоичныеДанные = ДанныеСертификата.Получить();
|
||||||
|
Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
|
||||||
|
|
||||||
|
АлгоритмСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(
|
||||||
|
ДвоичныеДанные, Ложь, Истина);
|
||||||
|
|
||||||
|
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСоответствуетСертификату(
|
||||||
|
Наименование, АлгоритмСертификата, ОписаниеПрограммы.АлгоритмПодписи,
|
||||||
|
ОписаниеПрограммы.АлгоритмХеширования);
|
||||||
|
|
||||||
|
Если Результат <> Истина Тогда
|
||||||
|
|
||||||
|
ВызватьИсключение Результат;
|
||||||
|
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
|
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|||||||
@@ -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/";
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// Возвращает информацию из классификатора субъектов РФ.
|
// Возвращает информацию из классификатора субъектов РФ.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
@@ -7989,7 +8177,7 @@
|
|||||||
// Строка - путь к файлу описания данных.
|
// Строка - путь к файлу описания данных.
|
||||||
//
|
//
|
||||||
Функция АдресВебСервисаКонтактнойИнформации()
|
Функция АдресВебСервисаКонтактнойИнформации()
|
||||||
|
|
||||||
Возврат "https://api.orgaddress.1c.ru";
|
Возврат "https://api.orgaddress.1c.ru";
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -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 Тогда
|
||||||
|
Если Фильтр = Неопределено
|
||||||
|
Или Фильтр <> Неопределено И Фильтр.ВидСравнения <> ВидСравнения Или Фильтр.ПравоеЗначение <> ДанныеРасшифровки.Значение Тогда
|
||||||
|
Фильтры = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета(Настройки, СвойстваЗаголовка, ЭтоГруппировка);
|
||||||
|
Фильтр = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрРазделаОтчета(Фильтры, СвойстваЗаголовка.Поле);
|
||||||
|
КонецЕсли;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Если Фильтр = Неопределено Тогда
|
Если Фильтр = Неопределено Тогда
|
||||||
|
|
||||||
Фильтр = Фильтры.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
Фильтр = Фильтры.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
Процедура ОбновитьКомпонентыСПортала(Оповещение, ОбновляемыеКомпоненты) Экспорт
|
Процедура ОбновитьКомпонентыСПортала(Оповещение, ОбновляемыеКомпоненты) Экспорт
|
||||||
|
|
||||||
// Локализация
|
// Локализация
|
||||||
ПараметрыФормы = Новый Структура;
|
ПараметрыФормы = Новый Структура;
|
||||||
ПараметрыФормы.Вставить("ОбновляемыеКомпоненты", ОбновляемыеКомпоненты);
|
ПараметрыФормы.Вставить("ОбновляемыеКомпоненты", ОбновляемыеКомпоненты);
|
||||||
ОткрытьФорму("Справочник.ВнешниеКомпоненты.Форма.ОбновлениеКомпонентСПортала1СИТС",
|
ОткрытьФорму("Справочник.ВнешниеКомпоненты.Форма.ОбновлениеКомпонентСПортала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")
|
||||||
|
|
||||||
СведенияОФайле = Новый Структура;
|
СведенияОФайле = Новый Структура;
|
||||||
Если ТипЗнч(ДанныеФайла) = Тип("Строка") Тогда
|
Если ТипЗнч(ДанныеФайла) = Тип("Строка") Тогда
|
||||||
СведенияОФайле.Вставить("Данные", Новый ДвоичныеДанные(ДанныеФайла));
|
СведенияОФайле.Вставить("Данные", Новый ДвоичныеДанные(ДанныеФайла));
|
||||||
@@ -2832,10 +2814,12 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
СведенияОФайле.Вставить("Имя", ТипФайла + "." + Расширение);
|
СведенияОФайле.Вставить("Имя", ТипФайла + "." + Расширение);
|
||||||
СведенияОФайле.Вставить("ТипФайла", ТипФайла);
|
СведенияОФайле.Вставить("ТипФайла", ТипФайла);
|
||||||
Файлы.Добавить(СведенияОФайле);
|
Файлы.Добавить(СведенияОФайле);
|
||||||
КонецПроцедуры
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ПолучитьИдентификаторЗапроса(Запрос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,15 +4101,14 @@
|
|||||||
Результат.Вставить("Ошибка", "");
|
Результат.Вставить("Ошибка", "");
|
||||||
|
|
||||||
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
|
Если НЕ ЗначениеЗаполнено(ТокенДоступа) Тогда
|
||||||
|
|
||||||
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
|
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР(ЗаголовокОшибки);
|
||||||
|
|
||||||
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
|
Если РезультатАвторизации.Ошибка <> Неопределено Тогда
|
||||||
Результат.Ошибка = РезультатАвторизации.Ошибка;
|
Результат.Ошибка = РезультатАвторизации.Ошибка;
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если Результат.Ошибка <> Неопределено Тогда
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТокенДоступа = РезультатАвторизации.ТокенДоступа;
|
ТокенДоступа = РезультатАвторизации.ТокенДоступа;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
|||||||
+11
-11
@@ -61,21 +61,22 @@
|
|||||||
// Реквизиты организации.
|
// Реквизиты организации.
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// СторонаМЧД - ПеречислениеСсылка.ТипыУчастниковМЧД, Неопределено
|
// Назначение - см. НазначениеДоверенностиДляПроверкиРеквизитов
|
||||||
// ДляЗаполнения - Булево - если Истина, полный список реквизитов
|
// ДляЗаполнения - Булево - если Истина, полный список реквизитов
|
||||||
// ВидОрганизации - Неопределено, Строка - "ИндивидуальныйПредприниматель", "ИностраннаяОрганизация", "Филиал"
|
// ВидОрганизации - Неопределено, Строка - "ИндивидуальныйПредприниматель", "ИностраннаяОрганизация", "Филиал"
|
||||||
// Назначение - см. НазначениеДоверенности
|
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// СписокЗначений
|
// СписокЗначений
|
||||||
//
|
//
|
||||||
Функция РеквизитыОрганизацииСписок(СторонаМЧД, ДляЗаполнения = Истина, ВидОрганизации = Неопределено, Назначение = Неопределено) Экспорт
|
Функция РеквизитыОрганизацииСписок(Назначение = Неопределено, ДляЗаполнения = Истина, ВидОрганизации = Неопределено) Экспорт
|
||||||
|
|
||||||
Если Назначение = Неопределено Тогда
|
Если Назначение = Неопределено Тогда
|
||||||
Назначение = НазначениеДоверенностиДляПроверкиРеквизитов();
|
Назначение = НазначениеДоверенностиДляПроверкиРеквизитов();
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ЭтоДоверитель = Назначение.ТипУчастника = ПредопределенноеЗначение("Перечисление.ТипыУчастниковМЧД.Доверитель");
|
ЭтоДоверитель = Назначение.ТипУчастника = ПредопределенноеЗначение("Перечисление.ТипыУчастниковМЧД.Доверитель");
|
||||||
|
|
||||||
|
// Пометка списка Истина означает, что поле необязательное
|
||||||
|
|
||||||
Реквизиты = Новый СписокЗначений;
|
Реквизиты = Новый СписокЗначений;
|
||||||
Реквизиты.Добавить("ЭтоИндивидуальныйПредприниматель", НСтр("ru = 'Индивидуальный предприниматель'"), Истина);
|
Реквизиты.Добавить("ЭтоИндивидуальныйПредприниматель", НСтр("ru = 'Индивидуальный предприниматель'"), Истина);
|
||||||
Реквизиты.Добавить("ЭтоФизическоеЛицо", НСтр("ru = 'Физическое лицо'"), Истина);
|
Реквизиты.Добавить("ЭтоФизическоеЛицо", НСтр("ru = 'Физическое лицо'"), Истина);
|
||||||
@@ -84,31 +85,30 @@
|
|||||||
Реквизиты.Добавить("ЭтоФилиал", НСтр("ru = 'Филиал'"), Истина);
|
Реквизиты.Добавить("ЭтоФилиал", НСтр("ru = 'Филиал'"), Истина);
|
||||||
Реквизиты.Добавить("НаименованиеПолное", НСтр("ru = 'Наименование (полное)'"));
|
Реквизиты.Добавить("НаименованиеПолное", НСтр("ru = 'Наименование (полное)'"));
|
||||||
Реквизиты.Добавить("НаименованиеСокращенное", НСтр("ru = 'Наименование (сокращенное)'"), Истина);
|
Реквизиты.Добавить("НаименованиеСокращенное", НСтр("ru = 'Наименование (сокращенное)'"), Истина);
|
||||||
Реквизиты.Добавить("ИНН", НСтр("ru = 'ИНН'"));
|
Реквизиты.Добавить("ИНН", НСтр("ru = 'ИНН'"), ВидОрганизации = "ИностраннаяОрганизация" И ЭтоДоверитель);
|
||||||
|
|
||||||
Реквизиты.Добавить("ЭлектроннаяПочта", НСтр("ru = 'Электронная почта'"), Истина);
|
Реквизиты.Добавить("ЭлектроннаяПочта", НСтр("ru = 'Электронная почта'"), Истина);
|
||||||
Реквизиты.Добавить("ЭлектроннаяПочтаЗначение", НСтр("ru = 'Электронная почта'"), Истина);
|
Реквизиты.Добавить("ЭлектроннаяПочтаЗначение", НСтр("ru = 'Электронная почта'"), Истина);
|
||||||
Реквизиты.Добавить("Телефон", НСтр("ru = 'Телефон'"), Истина);
|
Реквизиты.Добавить("Телефон", НСтр("ru = 'Телефон'"), Истина);
|
||||||
Реквизиты.Добавить("ТелефонЗначение", НСтр("ru = 'Телефон'"), Истина);
|
Реквизиты.Добавить("ТелефонЗначение", НСтр("ru = 'Телефон'"), Истина);
|
||||||
|
|
||||||
Если ДляЗаполнения Или ВидОрганизации <> "ИндивидуальныйПредприниматель" Тогда
|
Если ДляЗаполнения Или ВидОрганизации <> "ИндивидуальныйПредприниматель" Тогда
|
||||||
Реквизиты.Добавить("КПП", НСтр("ru = 'КПП'"));
|
Реквизиты.Добавить("КПП", НСтр("ru = 'КПП'"), ВидОрганизации = "ИностраннаяОрганизация" И ЭтоДоверитель);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДляЗаполнения Или ВидОрганизации <> "ИностраннаяОрганизация" Тогда
|
Если ДляЗаполнения Или ВидОрганизации <> "ИностраннаяОрганизация" Тогда
|
||||||
Реквизиты.Добавить("ОГРН", НСтр("ru = 'ОГРН'"));
|
Реквизиты.Добавить("ОГРН", НСтр("ru = 'ОГРН'"));
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если ДляЗаполнения Или ВидОрганизации = "ИностраннаяОрганизация" Тогда
|
Если ДляЗаполнения Или ВидОрганизации = "ИностраннаяОрганизация" Тогда
|
||||||
Реквизиты.Добавить("НомерЗаписиОбАккредитации", НСтр("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,12 +93,16 @@
|
|||||||
Контекст = ПараметрыЗаписи.ПараметрыВыполненияПодключаемойКоманды;
|
Контекст = ПараметрыЗаписи.ПараметрыВыполненияПодключаемойКоманды;
|
||||||
Контекст.Вставить("Форма", Форма);
|
Контекст.Вставить("Форма", Форма);
|
||||||
Контекст.Вставить("Источник", Объект);
|
Контекст.Вставить("Источник", Объект);
|
||||||
ПродолжитьВыполнениеКоманды(Контекст);
|
|
||||||
Контекст.Форма.ПараметрыПодключаемыхКоманд.Удалить("КомандаВыполняется")
|
Контекст.Форма.ПараметрыПодключаемыхКоманд.Удалить("КомандаВыполняется");
|
||||||
|
|
||||||
|
ИмяПараметра = "СтандартныеПодсистемы.ПодключаемыеКоманды.ПараметрыВыполненияПодключаемойКоманды";
|
||||||
|
ПараметрыПриложения[ИмяПараметра] = Контекст;
|
||||||
|
ПодключитьОбработчикОжидания("ПродолжитьВыполнениеПодключаемойКомандыПослеЗаписиВФорме", 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 @@
|
|||||||
|
|
||||||
Процедура УстановитьНастройкиКомандПечати(КомандыПечати, Владелец)
|
Процедура УстановитьНастройкиКомандПечати(КомандыПечати, Владелец)
|
||||||
|
|
||||||
УстановитьПривилегированныйРежим(Истина);
|
|
||||||
|
|
||||||
ТекстЗапроса =
|
ТекстЗапроса =
|
||||||
"ВЫБРАТЬ
|
"ВЫБРАТЬ
|
||||||
| НастройкиКомандПечати.УникальныйИдентификатор КАК УникальныйИдентификатор
|
| НастройкиКомандПечати.УникальныйИдентификатор КАК УникальныйИдентификатор
|
||||||
@@ -3719,7 +3717,7 @@
|
|||||||
СписокОтключенных = Новый Соответствие;
|
СписокОтключенных = Новый Соответствие;
|
||||||
Пока Выборка.Следующий() Цикл
|
Пока Выборка.Следующий() Цикл
|
||||||
СписокОтключенных.Вставить(Выборка.УникальныйИдентификатор, Истина);
|
СписокОтключенных.Вставить(Выборка.УникальныйИдентификатор, Истина);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
ПроверкаПроведенияПередПечатью = НастройкиПечати().ПроверкаПроведенияПередПечатью;
|
ПроверкаПроведенияПередПечатью = НастройкиПечати().ПроверкаПроведенияПередПечатью;
|
||||||
|
|
||||||
|
|||||||
@@ -1465,8 +1465,8 @@
|
|||||||
ВложенноеУсловие.УзелДереваДокумента = УзелСУсловием;
|
ВложенноеУсловие.УзелДереваДокумента = УзелСУсловием;
|
||||||
ВложенноеУсловие.УсловиеОбласти = УсловиеОбласти;
|
ВложенноеУсловие.УсловиеОбласти = УсловиеОбласти;
|
||||||
ВложенноеУсловие.Индекс = ИндексУзла;
|
ВложенноеУсловие.Индекс = ИндексУзла;
|
||||||
|
ДобавлятьУсловныеОбласти = Ложь;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
ДобавлятьУсловныеОбласти = Ложь;
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|||||||
@@ -3024,7 +3024,26 @@
|
|||||||
Представление = Формат(Значение, "Л=" + КодЯзыка);
|
Представление = Формат(Значение, "Л=" + КодЯзыка);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
Иначе
|
Иначе
|
||||||
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Значение, "Наименование", , КодЯзыка);
|
ОбъектМетаданных = Значение.Метаданные();
|
||||||
|
|
||||||
|
ЕстьРеквизитНаименование = Метаданные.Справочники.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеСправочника.ВВидеНаименования
|
||||||
|
Или Метаданные.ПланыВидовРасчета.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеВидаРасчета.ВВидеНаименования
|
||||||
|
Или Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеВидаХарактеристики.ВВидеНаименования
|
||||||
|
Или Метаданные.ПланыСчетов.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеСчета.ВВидеНаименования
|
||||||
|
Или Метаданные.ПланыОбмена.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеПланаОбмена.ВВидеНаименования
|
||||||
|
Или Метаданные.Задачи.Содержит(ОбъектМетаданных)
|
||||||
|
И ОбъектМетаданных.ОсновноеПредставление = Метаданные.СвойстваОбъектов.ОсновноеПредставлениеЗадачи.ВВидеНаименования;
|
||||||
|
|
||||||
|
Если ЕстьРеквизитНаименование Тогда
|
||||||
|
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Значение, "Наименование", , КодЯзыка);
|
||||||
|
Иначе
|
||||||
|
Представление = Строка(Значение);
|
||||||
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат Представление;
|
Возврат Представление;
|
||||||
|
|||||||
@@ -117,7 +117,7 @@
|
|||||||
Позиция = ИнформацияПоКолонкам.Количество() + 1;
|
Позиция = ИнформацияПоКолонкам.Количество() + 1;
|
||||||
Свойства = УправлениеСвойствами.СвойстваОбъекта(Справочники[МетаданныеСправочника.Имя].ПустаяСсылка());
|
Свойства = УправлениеСвойствами.СвойстваОбъекта(Справочники[МетаданныеСправочника.Имя].ПустаяСсылка());
|
||||||
|
|
||||||
ЗначенияСвойств = ДополнительныеЗначенияСвойства(Свойства);
|
ЗначенияСвойств = ДополнительныеЗначенияСвойств(Свойства);
|
||||||
СоответствиеЗначений = Новый Соответствие;
|
СоответствиеЗначений = Новый Соответствие;
|
||||||
Для Каждого ДополнительноеЗначение Из ЗначенияСвойств Цикл
|
Для Каждого ДополнительноеЗначение Из ЗначенияСвойств Цикл
|
||||||
Значение = СоответствиеЗначений[ДополнительноеЗначение.Свойство];
|
Значение = СоответствиеЗначений[ДополнительноеЗначение.Свойство];
|
||||||
@@ -1752,13 +1752,38 @@
|
|||||||
// Параметры:
|
// Параметры:
|
||||||
// Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство для
|
// Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойство для
|
||||||
// которого нужно получить перечисляемые значения.
|
// которого нужно получить перечисляемые значения.
|
||||||
// - Массив
|
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Массив из СправочникСсылка - значения свойства, если есть.
|
// Массив из СправочникСсылка - значения свойства, если есть.
|
||||||
//
|
//
|
||||||
Функция ДополнительныеЗначенияСвойства(Свойство) Экспорт
|
Функция ДополнительныеЗначенияСвойства(Свойство) Экспорт
|
||||||
|
|
||||||
|
ИмяПроцедуры = "УправлениеСвойствамиСлужебный.ДополнительныеЗначенияСвойства";
|
||||||
|
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Свойство", Свойство,
|
||||||
|
Тип("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения"));
|
||||||
|
|
||||||
|
ЗначенияСвойств = ДополнительныеЗначенияСвойств(Свойство);
|
||||||
|
Результат = ЗначенияСвойств.ВыгрузитьКолонку("Ссылка");
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
// Возвращает таблицу перечисляемых значений указанного свойства.
|
||||||
|
//
|
||||||
|
// Параметры:
|
||||||
|
// Свойство - Массив из ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения - свойства для
|
||||||
|
// которого нужно получить перечисляемые значения.
|
||||||
|
// - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// ТаблицаЗначений:
|
||||||
|
// * Ссылка - СправочникСсылка.ЗначенияСвойствОбъектовИерархия
|
||||||
|
// - СправочникСсылка.ЗначенияСвойствОбъектов
|
||||||
|
// * Свойство - ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения
|
||||||
|
//
|
||||||
|
Функция ДополнительныеЗначенияСвойств(Свойство) Экспорт
|
||||||
|
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
Запрос.Параметры.Вставить("Свойство", Свойство);
|
Запрос.Параметры.Вставить("Свойство", Свойство);
|
||||||
Запрос.Текст =
|
Запрос.Текст =
|
||||||
@@ -1780,11 +1805,7 @@
|
|||||||
|ГДЕ
|
|ГДЕ
|
||||||
| ЗначенияСвойствОбъектов.Владелец В (&Свойство)";
|
| ЗначенияСвойствОбъектов.Владелец В (&Свойство)";
|
||||||
|
|
||||||
Если ТипЗнч(Свойство) = Тип("ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения") Тогда
|
Результат = Запрос.Выполнить().Выгрузить();
|
||||||
Результат = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
|
|
||||||
Иначе
|
|
||||||
Результат = Запрос.Выполнить().Выгрузить();
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Возврат Результат;
|
Возврат Результат;
|
||||||
|
|
||||||
|
|||||||
@@ -585,6 +585,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 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ЕстьПравоЧтенияШаблоновСообщений()
|
||||||
|
|
||||||
|
Возврат ПравоДоступа("Чтение", Метаданные.Справочники.ШаблоныСообщений);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура ОбработатьДанныеДляПереходаНаПодключаемыеКоманды() Экспорт
|
Процедура ОбработатьДанныеДляПереходаНаПодключаемыеКоманды() Экспорт
|
||||||
|
|
||||||
ЕстьПодключаемыеКоманды = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды");
|
ЕстьПодключаемыеКоманды = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды");
|
||||||
@@ -3067,4 +3103,5 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
@@ -40,4 +40,17 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
|
||||||
|
Функция ДоступныеВариантыОтправкиШаблоновСообщений() Экспорт
|
||||||
|
|
||||||
|
Результат = Новый Структура;
|
||||||
|
Результат.Вставить("SMS",
|
||||||
|
ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОтправкаSMS"));
|
||||||
|
Результат.Вставить("Почта",
|
||||||
|
ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСПочтовымиСообщениями"));
|
||||||
|
|
||||||
|
Возврат Новый ФиксированнаяСтруктура(Результат);
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
@@ -1170,6 +1170,7 @@
|
|||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Сертификат - СертификатКриптографии - сертификат криптографии.
|
// Сертификат - СертификатКриптографии - сертификат криптографии.
|
||||||
|
// - ДвоичныеДанные - двоичные данные сертификата в кодировке DER.
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Структура:
|
// Структура:
|
||||||
@@ -1189,16 +1190,20 @@
|
|||||||
//
|
//
|
||||||
Функция СвойстваСертификата(Сертификат) Экспорт
|
Функция СвойстваСертификата(Сертификат) Экспорт
|
||||||
|
|
||||||
|
ДанныеСертификата = Сертификат;
|
||||||
Если ТипЗнч(Сертификат) = Тип("СертификатКриптографии") Тогда
|
Если ТипЗнч(Сертификат) = Тип("СертификатКриптографии") Тогда
|
||||||
ДвоичныеДанныеСертификата = Сертификат.Выгрузить();
|
ДвоичныеДанныеСертификата = Сертификат.Выгрузить();
|
||||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("ФиксированнаяСтруктура") Тогда
|
ИначеЕсли ТипЗнч(Сертификат) = Тип("ФиксированнаяСтруктура") Тогда
|
||||||
ДвоичныеДанныеСертификата = Сертификат.Сертификат;
|
ДвоичныеДанныеСертификата = Сертификат.Сертификат;
|
||||||
|
ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
|
||||||
|
ДвоичныеДанныеСертификата = Сертификат;
|
||||||
|
ДанныеСертификата = Новый СертификатКриптографии(Сертификат);
|
||||||
Иначе
|
Иначе
|
||||||
ДвоичныеДанныеСертификата = Неопределено;
|
ДвоичныеДанныеСертификата = Неопределено;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
Возврат ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||||
Сертификат, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ДвоичныеДанныеСертификата);
|
ДанныеСертификата, ЭлектроннаяПодписьСлужебный.РазницаСУниверсальнымВременем(), ДвоичныеДанныеСертификата);
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@@ -1248,7 +1253,8 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Усовершенствует подпись до переданного типа, если подпись позволяет.
|
// Усовершенствует подпись до переданного типа, если подпись позволяет.
|
||||||
// Добавляет архивную метку времени в архивную подпись (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 = 'Диагностика доступности серверов меток времени'"),);
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@@ -1928,7 +1958,7 @@
|
|||||||
Контекст.Вставить("ДляПроверкиПодписи", Ложь);
|
Контекст.Вставить("ДляПроверкиПодписи", Ложь);
|
||||||
Контекст.Вставить("ДействияДляУстраненияОшибок", Новый Соответствие);
|
Контекст.Вставить("ДействияДляУстраненияОшибок", Новый Соответствие);
|
||||||
Контекст.Вставить("СвойстваСертификата");
|
Контекст.Вставить("СвойстваСертификата");
|
||||||
|
|
||||||
Возврат Контекст;
|
Возврат Контекст;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
@@ -2132,9 +2162,7 @@
|
|||||||
|
|
||||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
|
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
|
||||||
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ОшибкаПоКлассификатору(ОписаниеОшибки);
|
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебныйКлиентПовтИсп.ОшибкаПоКлассификатору(ОписаниеОшибки);
|
||||||
|
|
||||||
// Локализация
|
|
||||||
|
|
||||||
Если ОшибкаПоКлассификатору <> Неопределено И ЗначениеЗаполнено(ОшибкаПоКлассификатору.ДействияДляУстранения) Тогда
|
Если ОшибкаПоКлассификатору <> Неопределено И ЗначениеЗаполнено(ОшибкаПоКлассификатору.ДействияДляУстранения) Тогда
|
||||||
|
|
||||||
Действие = Неопределено;
|
Действие = Неопределено;
|
||||||
@@ -2156,16 +2184,17 @@
|
|||||||
ИмяИздателя = СтроковыеФункцииКлиент.СтрокаЛатиницей(ИмяИздателя);
|
ИмяИздателя = СтроковыеФункцииКлиент.СтрокаЛатиницей(ИмяИздателя);
|
||||||
АдресСпискаОтзываВнутренний = ЭлектроннаяПодписьСлужебныйКлиентСервер.АдресСпискаОтзываВнутренний(
|
АдресСпискаОтзываВнутренний = ЭлектроннаяПодписьСлужебныйКлиентСервер.АдресСпискаОтзываВнутренний(
|
||||||
ИмяИздателя, Контекст.ДанныеСертификата);
|
ИмяИздателя, Контекст.ДанныеСертификата);
|
||||||
Если ЗначениеЗаполнено(АдресСпискаОтзываВнутренний.АдресВнутренний) Тогда
|
|
||||||
ПараметрыУстановкиСпискаОтзыва = ПараметрыУстановкиСпискаОтзыва(
|
ПараметрыУстановкиСпискаОтзыва = ПараметрыУстановкиСпискаОтзыва(
|
||||||
Контекст.СертификатКриптографии);
|
Контекст.СертификатКриптографии);
|
||||||
|
ПараметрыУстановкиСпискаОтзыва.ОповещениеОЗавершении = Новый ОписаниеОповещения("ПроверитьСертификатПовторно",
|
||||||
|
ЭтотОбъект, Контекст);
|
||||||
|
ПараметрыУстановкиСпискаОтзыва.ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||||
|
НСтр("ru = 'Для проверки сертификата требуется установка списка отзыва с помощью внешней компоненты %1.'"),
|
||||||
|
"ExtraCryptoAPI");
|
||||||
|
Если ЗначениеЗаполнено(АдресСпискаОтзываВнутренний.АдресВнутренний) Тогда
|
||||||
ПараметрыУстановкиСпискаОтзыва.Адреса = АдресСпискаОтзываВнутренний.АдресВнешний;
|
ПараметрыУстановкиСпискаОтзыва.Адреса = АдресСпискаОтзываВнутренний.АдресВнешний;
|
||||||
ПараметрыУстановкиСпискаОтзыва.АдресВнутренний = АдресСпискаОтзываВнутренний.АдресВнутренний;
|
ПараметрыУстановкиСпискаОтзыва.АдресВнутренний = АдресСпискаОтзываВнутренний.АдресВнутренний;
|
||||||
ПараметрыУстановкиСпискаОтзыва.ОповещениеОЗавершении = Новый ОписаниеОповещения("ПроверитьСертификатПовторно",
|
|
||||||
ЭтотОбъект, Контекст);
|
|
||||||
ПараметрыУстановкиСпискаОтзыва.ТекстПояснения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
|
||||||
НСтр("ru = 'Для проверки сертификата требуется установка списка отзыва с помощью внешней компоненты %1.'"),
|
|
||||||
"ExtraCryptoAPI");
|
|
||||||
УстановитьСписокОтзываСертификата(ПараметрыУстановкиСпискаОтзыва);
|
УстановитьСписокОтзываСертификата(ПараметрыУстановкиСпискаОтзыва);
|
||||||
Возврат;
|
Возврат;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -2174,9 +2203,7 @@
|
|||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
// Конец локализация
|
|
||||||
|
|
||||||
Если ОшибкаПоКлассификатору <> Неопределено Тогда
|
Если ОшибкаПоКлассификатору <> Неопределено Тогда
|
||||||
ОбработатьОшибкуПоКлассификатору(ОписаниеОшибки, Контекст.ТребуетПроверкиНаКлиенте, Контекст, ОшибкаПоКлассификатору);
|
ОбработатьОшибкуПоКлассификатору(ОписаниеОшибки, Контекст.ТребуетПроверкиНаКлиенте, Контекст, ОшибкаПоКлассификатору);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@@ -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.
Loaded 100 of 230 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user