Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f7b9b0c5a6 | ||
|
|
7c5ea77b0d | ||
|
|
fcfcb3effc | ||
|
|
07ffb5b6a9 | ||
|
|
b3bc470ceb | ||
|
|
583ec3a036 | ||
|
|
aa53d09a56 | ||
|
|
96e874e97f | ||
|
|
416a5118dd | ||
|
|
ef0bf970c7 | ||
|
|
9c59596c13 |
No files matched your search
@@ -128,11 +128,11 @@
|
||||
| Справочник.ВнешниеКомпоненты КАК ВнешниеКомпоненты
|
||||
|ГДЕ
|
||||
| ВнешниеКомпоненты.Идентификатор = &Идентификатор
|
||||
| И ВнешниеКомпоненты.Версия = &Версия";
|
||||
| ИЛИ ВнешниеКомпоненты.Идентификатор = &Идентификатор2 И ВнешниеКомпоненты.Версия ПОДОБНО ""3.1.0.%""";
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Запрос.УстановитьПараметр("Идентификатор", "AddInNativeExtension");
|
||||
Запрос.УстановитьПараметр("Версия", "3.1.0.1013");
|
||||
Запрос.УстановитьПараметр("Идентификатор2", "ImageScan");
|
||||
|
||||
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
|
||||
|
||||
@@ -264,38 +264,37 @@
|
||||
|
||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Истина;
|
||||
|
||||
ЦелевыеПлатформы = РеквизитыКомпоненты.ЦелевыеПлатформы.Получить();
|
||||
|
||||
ДвоичныеДанныеКомпоненты = РеквизитыКомпоненты.ХранилищеКомпоненты.Получить();
|
||||
|
||||
Если ТипЗнч(ДвоичныеДанныеКомпоненты) <> Тип("ДвоичныеДанные") Тогда
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||
Иначе
|
||||
|
||||
ИнформацияОКомпонентеИзФайла = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(
|
||||
ДвоичныеДанныеКомпоненты, Ложь);
|
||||
Если Не ИнформацияОКомпонентеИзФайла.Разобрано Тогда
|
||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||
Иначе
|
||||
Реквизиты = ИнформацияОКомпонентеИзФайла.Реквизиты;
|
||||
ЦелевыеПлатформы = РеквизитыКомпоненты.ЦелевыеПлатформы.Получить();
|
||||
Если ЦелевыеПлатформы <> Неопределено И ОбщегоНазначения.КоллекцииИдентичны(ЦелевыеПлатформы,
|
||||
Реквизиты.ЦелевыеПлатформы) Тогда
|
||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИнформацияОКомпонентеИзФайла = ВнешниеКомпонентыСлужебный.ИнформацияОКомпонентеИзФайла(
|
||||
ДвоичныеДанныеКомпоненты, Ложь);
|
||||
Если Не ИнформацияОКомпонентеИзФайла.Разобрано Тогда
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Реквизиты = ИнформацияОКомпонентеИзФайла.Реквизиты;
|
||||
|
||||
Если ЦелевыеПлатформы <> Неопределено И ОбщегоНазначения.КоллекцииИдентичны(ЦелевыеПлатформы, Реквизиты.ЦелевыеПлатформы) Тогда
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ОбновитьПоддерживаемыеПлатформыКомпоненты = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ОбновитьПоддерживаемыеПлатформыКомпоненты
|
||||
И Не (ОбновитьПараметрыКомпонентыСканирования И (РеквизитыКомпоненты.Идентификатор = "AddInNativeExtension")
|
||||
И РеквизитыКомпоненты.Версия = "3.1.0.1013") Тогда
|
||||
И Не (ОбновитьПараметрыКомпонентыСканирования И (РеквизитыКомпоненты.Идентификатор = "AddInNativeExtension"
|
||||
Или РеквизитыКомпоненты.Идентификатор = ИдентификаторКомпонентыСканирования
|
||||
И СтрНачинаетсяС(РеквизитыКомпоненты.Версия, "3.1.0."))) Тогда
|
||||
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(Выборка.Ссылка);
|
||||
ОбъектовОбработано = ОбъектовОбработано + 1;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -318,8 +317,8 @@
|
||||
КомпонентаОбъект.Идентификатор = ИдентификаторКомпонентыСканирования;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбновитьПараметрыКомпонентыСканирования И РеквизитыКомпоненты.Версия = "3.1.0.1013" Тогда
|
||||
КомпонентаОбъект.Версия = "3.0.1.1013";
|
||||
Если ОбновитьПараметрыКомпонентыСканирования И СтрНачинаетсяС(РеквизитыКомпоненты.Версия, "3.1.0.") Тогда
|
||||
КомпонентаОбъект.Версия = СтрЗаменить(РеквизитыКомпоненты.Версия, "3.1.0.", "3.0.1.");
|
||||
КонецЕсли;
|
||||
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(КомпонентаОбъект);
|
||||
@@ -362,7 +361,7 @@
|
||||
#КонецОбласти
|
||||
|
||||
Функция ОбновитьПараметрыКомпонентыСканирования(ВерсияПодсистемыНаНачалоОбновления)
|
||||
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияПодсистемыНаНачалоОбновления, "3.1.9.327") < 0
|
||||
Возврат ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияПодсистемыНаНачалоОбновления, "3.1.9.389") < 0
|
||||
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами")
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -125,6 +125,11 @@
|
||||
// См. УправлениеДоступом.ГруппаДоступаАдминистраторы
|
||||
Функция ГруппаДоступаАдминистраторы(ПрофильАдминистратор = Неопределено) Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(ПрофильАдминистратор) Тогда
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(
|
||||
"Справочники.ГруппыДоступа.ГруппаДоступаАдминистраторы");
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
@@ -792,6 +797,9 @@
|
||||
//
|
||||
Процедура ВосстановитьСоставУчастниковГруппыДоступаАдминистраторы(ЭлементДанных) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(
|
||||
"Справочники.ГруппыДоступа.ВосстановитьСоставУчастниковГруппыДоступаАдминистраторы");
|
||||
|
||||
ГруппаДоступаАдминистраторы = УправлениеДоступом.ГруппаДоступаАдминистраторы();
|
||||
Если ЭлементДанных.Ссылка <> ГруппаДоступаАдминистраторы Тогда
|
||||
Возврат;
|
||||
|
||||
@@ -1177,6 +1177,7 @@
|
||||
Строка.ИмяВЕдЧисле = "ЖурналДокументов";
|
||||
Строка.СинонимВЕдЧисле = НСтр("ru = 'Журнал документов'");
|
||||
Строка.БезДанных = Истина;
|
||||
Строка.ОбъектыРасширений = Истина;
|
||||
|
||||
Строка = Результат.Добавить();
|
||||
Строка.Идентификатор = Новый УникальныйИдентификатор("706cf832-0ae5-45b5-8a4a-1f251d054f3b");
|
||||
@@ -1258,6 +1259,7 @@
|
||||
Строка.Синоним = НСтр("ru = 'Бизнес-процессы'");
|
||||
Строка.ИмяВЕдЧисле = "БизнесПроцесс";
|
||||
Строка.СинонимВЕдЧисле = НСтр("ru = 'Бизнес-процесс'");
|
||||
Строка.ОбъектыРасширений = Истина;
|
||||
|
||||
Строка = Результат.Добавить();
|
||||
Строка.Идентификатор = Новый УникальныйИдентификатор("8d9153ad-7cea-4e25-9542-a557ee59fd16");
|
||||
@@ -1265,6 +1267,7 @@
|
||||
Строка.Синоним = НСтр("ru = 'Задачи'");
|
||||
Строка.ИмяВЕдЧисле = "Задача";
|
||||
Строка.СинонимВЕдЧисле = НСтр("ru = 'Задача'");
|
||||
Строка.ОбъектыРасширений = Истина;
|
||||
|
||||
Для каждого Строка Из Результат Цикл
|
||||
Строка.ПорядокКоллекции = Результат.Индекс(Строка);
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
<items xsi:type="form:Table">
|
||||
<name>ТаблицаЗначенийОграничений</name>
|
||||
<id>1</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Таблица</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -23,6 +27,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаЗначенийОграниченийКод</name>
|
||||
<id>14</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Код</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -64,6 +72,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаЗначенийОграниченийНаименование</name>
|
||||
<id>17</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -104,6 +116,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаЗначенийОграниченийДействуетС</name>
|
||||
<id>20</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Действует С</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -144,6 +160,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаЗначенийОграниченийОтозвано</name>
|
||||
<id>23</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отозвано</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -179,6 +199,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаЗначенийОграниченийВыбрать</name>
|
||||
<id>26</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выбрать</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -453,6 +477,13 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<parameters>
|
||||
<name>КодОграничения</name>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
|
||||
+28
@@ -3,6 +3,10 @@
|
||||
<items xsi:type="form:Table">
|
||||
<name>ТаблицаОграничений</name>
|
||||
<id>1</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Таблица ограничений</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -28,6 +32,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаКод</name>
|
||||
<id>14</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Код</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -70,6 +78,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаНаименование</name>
|
||||
<id>17</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -136,6 +148,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаОписание</name>
|
||||
<id>23</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Описание</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -206,6 +222,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаДействуетС</name>
|
||||
<id>35</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Действует С</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -246,6 +266,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаОтозвано</name>
|
||||
<id>38</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отозвано</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -281,6 +305,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаВыбрать</name>
|
||||
<id>26</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выбрать</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
<items xsi:type="form:Table">
|
||||
<name>ТаблицаНастроек</name>
|
||||
<id>1</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Таблица настроек</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -23,6 +27,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаНастроекИмя</name>
|
||||
<id>14</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -64,6 +72,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаНастроекПользователь</name>
|
||||
<id>17</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пользователь</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -108,6 +120,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаНастроекВыбрать</name>
|
||||
<id>22</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выбрать</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -134,6 +150,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ТаблицаНастроекУдалитьНастройку</name>
|
||||
<id>20</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Удалить настройку</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПричинаОтмены</name>
|
||||
<id>4</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Причина отмены</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -49,6 +53,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ОтменитьДоверенность</name>
|
||||
<id>11</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отменить доверенность</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
@@ -20,21 +20,29 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОтменитьДоверенность(Команда)
|
||||
Если ПроверитьЗаполнение() Тогда
|
||||
ДанныеОтмены = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ПолучитьФайлОтменыДоверенности(Доверенность, ПричинаОтмены);
|
||||
ОписаниеДанных = Новый Структура;
|
||||
ОписаниеДанных.Вставить("Операция", НСтр("ru='Отмена доверенности'"));
|
||||
ОписаниеДанных.Вставить("ЗаголовокДанных", НСтр("ru='Доверенность'"));
|
||||
ОписаниеДанных.Вставить("Данные", ДанныеОтмены.Содержимое);
|
||||
|
||||
ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных,,Новый ОписаниеОповещения("ПослеПодписанияДоверенности", ЭтотОбъект, ДанныеОтмены));
|
||||
Если Не ПроверитьЗаполнение() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеОтмены = ФайлОтменыДоверенности(Доверенность, ПричинаОтмены);
|
||||
ОписаниеДанных = Новый Структура;
|
||||
ОписаниеДанных.Вставить("Операция", НСтр("ru='Отмена доверенности'"));
|
||||
ОписаниеДанных.Вставить("ЗаголовокДанных", НСтр("ru='Доверенность'"));
|
||||
ОписаниеДанных.Вставить("Данные", ДанныеОтмены.Содержимое);
|
||||
|
||||
ЭлектроннаяПодписьКлиент.Подписать(ОписаниеДанных,,Новый ОписаниеОповещения("ПослеПодписанияДоверенности", ЭтотОбъект, ДанныеОтмены));
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ФайлОтменыДоверенности(Доверенность, ПричинаОтмены)
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ФайлОтменыДоверенности(Доверенность, ПричинаОтмены);
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеПодписанияДоверенности(Результат, ДанныеОтмены) Экспорт
|
||||
Если Результат.Успех Тогда
|
||||
@@ -61,7 +69,8 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
РезультатОтмены = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ОтменитьМЧДРР(ДанныеОтмены.ИмяФайла, ДанныеОтмены.Содержимое, СвойстваПодписи.Подпись, ДанныеОтмены.Доверенность);
|
||||
РезультатОтмены = ОтменитьМЧДРР(ДанныеОтмены.ИмяФайла, ДанныеОтмены.Содержимое, СвойстваПодписи.Подпись,
|
||||
ДанныеОтмены.Доверенность);
|
||||
|
||||
Если ЗначениеЗаполнено(РезультатОтмены.Ошибка) Тогда
|
||||
КонтекстОшибки = МашиночитаемыеДоверенностиФНССлужебныйКлиент.КонтекстДляОбработкиОшибкиРР();
|
||||
@@ -80,7 +89,13 @@
|
||||
|
||||
Закрыть();
|
||||
|
||||
КонецПроцедуры
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ОтменитьМЧДРР(ИмяФайлаВыгрузки, ДанныеИлиАдресВыгрузки, ДанныеИлиАдресПодписи, Доверенность)
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ОтменитьМЧДРР(ИмяФайлаВыгрузки, ДанныеИлиАдресВыгрузки,
|
||||
ДанныеИлиАдресПодписи, Доверенность);
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ДобавитьФайлОтзываИПолучитьРезультатРегистрации(Знач ДанныеОтмены, Знач СвойстваПодписи)
|
||||
|
||||
+4
-5
@@ -350,13 +350,13 @@
|
||||
Элементы = Форма.Элементы;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Форма.ДокументВид)
|
||||
Или Форма.ДокументВид = "0"
|
||||
Или Форма.ДокументВид = "91" Тогда
|
||||
Или Форма.ДокументВид = "0" Тогда
|
||||
Форма.ДокументНомер = "";
|
||||
Форма.ДокументКемВыдан = "";
|
||||
Форма.ДокументДатаВыдачи = "";
|
||||
Форма.ДокументКодПодразделения = "";
|
||||
Форма.ДокументСрокДействия = "";
|
||||
Форма.ДокументСрокДействия = "";
|
||||
Элементы.ДокументНомер.Маска = "";
|
||||
ИначеЕсли Форма.ДокументВид = "21" Тогда
|
||||
Элементы.ДокументНомер.Заголовок = НСтр("ru = 'Серия и номер'");
|
||||
Элементы.ДокументНомер.Маска = "99 99 999999";
|
||||
@@ -373,7 +373,6 @@
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Процедура ВидимостьВидаДокумента(Форма)
|
||||
Форма.Элементы.ДокументКодПодразделения.Видимость = Форма.ПоказыватьПерсональныеДанные И Форма.ДокументВид = "21";
|
||||
Форма.Элементы.ДокументСрокДействия.Видимость = Форма.ПоказыватьПерсональныеДанные И Форма.ДокументВид <> "21";
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -529,7 +528,7 @@
|
||||
СведенияОФизическомЛице = РеквизитыУчастникаДляХранения;
|
||||
СведенияОФизическомЛице.Вставить("Ссылка", Ссылка);
|
||||
|
||||
Если ДокументВид = "00" Тогда
|
||||
Если ДокументВид = "0" Тогда
|
||||
СведенияОФизическомЛице.ДокументВид = "";
|
||||
СведенияОФизическомЛице.ДокументКемВыдан = "";
|
||||
СведенияОФизическомЛице.ДокументКодПодразделения = "";
|
||||
|
||||
@@ -2113,6 +2113,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаЗаполнить</name>
|
||||
<id>202</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Заполнить все поля</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
+27
-1
@@ -7,6 +7,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТипНалоговыхОргановДействия</name>
|
||||
<id>43</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Тип налоговых органов действия</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -66,6 +70,10 @@
|
||||
<items xsi:type="form:Table">
|
||||
<name>НалоговыеОрганыДействия</name>
|
||||
<id>24</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Налоговые органы действия</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -79,6 +87,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>НалоговыеОрганыДействияПометка</name>
|
||||
<id>52</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пометка</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -112,6 +124,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>НалоговыеОрганыДействияКод</name>
|
||||
<id>55</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Код</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -153,6 +169,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>НалоговыеОрганыДействияНаименование</name>
|
||||
<id>58</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -275,11 +295,17 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
|
||||
<extInfo xsi:type="form:ButtonGroupExtInfo">
|
||||
<representation>Compact</representation>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>НалоговыеОрганыДействияКнопкаДобавить</name>
|
||||
<id>61</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Добавить</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
@@ -22,6 +22,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияИзКлассификатора</name>
|
||||
<id>195</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия в машиночитаемом виде</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -48,6 +52,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияВТекстовомВиде</name>
|
||||
<id>199</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия в текстовом виде</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -74,6 +82,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияНеОграничены</name>
|
||||
<id>197</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия не ограничены</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -122,12 +134,47 @@
|
||||
<importance>Normal</importance>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ОбновитьКлассификаторыПолномочий</name>
|
||||
<id>248</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Обновить классификаторы полномочий</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ОбновитьКлассификаторыПолномочийРасширеннаяПодсказка</name>
|
||||
<id>249</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.ОбновитьКлассификаторыПолномочий</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаКомпактная</name>
|
||||
<id>233</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>УстановитьФлажки</name>
|
||||
<id>98</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Установить флажки</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -154,6 +201,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>СнятьФлажки</name>
|
||||
<id>96</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Снять флажки</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -184,7 +235,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа компактная</value>
|
||||
<value>Компактная</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомпактнаяРасширеннаяПодсказка</name>
|
||||
@@ -206,6 +257,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПоказатьВыбранные</name>
|
||||
<id>100</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Показать выбранные</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -258,6 +313,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>СохранитьНастройкуПолномочий</name>
|
||||
<id>227</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сохранить настройку полномочий</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -284,6 +343,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ЗагрузитьНастройкуПолномочий</name>
|
||||
<id>229</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Загрузить настройку полномочий</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -314,7 +377,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа сохранение</value>
|
||||
<value>Сохранение</value>
|
||||
</title>
|
||||
<toolTipRepresentation>None</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
@@ -423,6 +486,10 @@
|
||||
<items xsi:type="form:Table">
|
||||
<name>Полномочия</name>
|
||||
<id>56</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -443,6 +510,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПолномочияПометка</name>
|
||||
<id>69</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пометка</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -486,6 +557,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПолномочияНаименование</name>
|
||||
<id>75</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -527,6 +602,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПолномочияКод</name>
|
||||
<id>72</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Код</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -569,6 +648,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПолномочияМнемокод</name>
|
||||
<id>132</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Мнемокод</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -610,6 +693,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПолномочияНетВКлассификаторе</name>
|
||||
<id>83</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет в классификаторе</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -643,6 +730,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПолномочияИдентификаторПолномочия</name>
|
||||
<id>169</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Идентификатор полномочия</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -810,6 +901,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияИзКлассификатора1</name>
|
||||
<id>203</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия в машиночитаемом виде</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -836,6 +931,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияВТекстовомВиде1</name>
|
||||
<id>205</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия в текстовом виде</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -862,6 +961,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияНеОграничены1</name>
|
||||
<id>207</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия не ограничены</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -916,6 +1019,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВыбратьИзКлассификатора</name>
|
||||
<id>172</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выбрать из классификатора</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -949,7 +1056,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа команды таблицы</value>
|
||||
<value>Команды таблицы</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаКомандыТаблицыРасширеннаяПодсказка</name>
|
||||
@@ -971,6 +1078,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВыбранныеПолномочияТаблицаСохранитьНастройкуПолномочий</name>
|
||||
<id>223</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сохранить настройку полномочий</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -997,6 +1108,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВыбранныеПолномочияТаблицаЗагрузитьНастройкуПолномочий</name>
|
||||
<id>225</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Загрузить настройку полномочий</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1027,7 +1142,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа сохранение настроек</value>
|
||||
<value>Сохранение настроек</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаСохранениеНастроекРасширеннаяПодсказка</name>
|
||||
@@ -1091,6 +1206,10 @@
|
||||
<items xsi:type="form:Table">
|
||||
<name>ВыбранныеПолномочияТаблица</name>
|
||||
<id>138</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1103,6 +1222,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВыбранныеПолномочияТаблицаКод</name>
|
||||
<id>151</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Код</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1144,6 +1267,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВыбранныеПолномочияТаблицаНаименование</name>
|
||||
<id>154</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1185,6 +1312,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВыбранныеПолномочияТаблицаНетВКлассификаторе</name>
|
||||
<id>157</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет в классификаторе</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -1217,6 +1348,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВыбранныеПолномочияТаблицаИдентификаторПолномочия</name>
|
||||
<id>160</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Идентификатор полномочия</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -1252,6 +1387,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВыбранныеПолномочияТаблицаМнемокод</name>
|
||||
<id>163</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Мнемокод</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -1292,6 +1431,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВыбранныеПолномочияТаблицаЕстьОграничения</name>
|
||||
<id>190</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Есть ограничения</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -1336,6 +1479,10 @@
|
||||
<event>BeforeAddRow</event>
|
||||
<name>ВыбранныеПолномочияТаблицаПередНачаломДобавления</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>BeforeDeleteRow</event>
|
||||
<name>ВыбранныеПолномочияТаблицаПередУдалением</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnActivateRow</event>
|
||||
<name>ВыбранныеПолномочияТаблицаПриАктивизацииСтроки</name>
|
||||
@@ -1435,7 +1582,6 @@
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<autoMaxRowsCount>true</autoMaxRowsCount>
|
||||
<selectionMode>MultiRow</selectionMode>
|
||||
<header>true</header>
|
||||
<headerHeight>1</headerHeight>
|
||||
<footerHeight>1</footerHeight>
|
||||
@@ -1443,7 +1589,6 @@
|
||||
<verticalScrollBar>AutoUse</verticalScrollBar>
|
||||
<horizontalLines>true</horizontalLines>
|
||||
<verticalLines>true</verticalLines>
|
||||
<useAlternationRowColorBWA>false</useAlternationRowColorBWA>
|
||||
<autoInsertNewRow>true</autoInsertNewRow>
|
||||
<searchOnInput>Auto</searchOnInput>
|
||||
<initialListView>Auto</initialListView>
|
||||
@@ -1486,6 +1631,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОграниченияПолномочияКод</name>
|
||||
<id>118</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Код ограничения</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1533,6 +1682,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОграниченияПолномочияКодЗначения</name>
|
||||
<id>127</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Код значения</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1608,6 +1761,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОграниченияПолномочияНаименование</name>
|
||||
<id>121</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование ограничения</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1649,6 +1806,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОграниченияПолномочияНаименованиеЗначения</name>
|
||||
<id>124</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Значение ограничения</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1716,6 +1877,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОграниченияПолномочийИдентификаторПолномочия</name>
|
||||
<id>166</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Идентификатор полномочия</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -1751,6 +1916,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОграниченияПолномочийНетВКлассификаторе</name>
|
||||
<id>245</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Нет в классификаторе</value>
|
||||
</title>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
@@ -1790,6 +1959,10 @@
|
||||
<event>BeforeAddRow</event>
|
||||
<name>ОграниченияПолномочийПередНачаломДобавления</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>BeforeDeleteRow</event>
|
||||
<name>ОграниченияПолномочийПередУдалением</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>AfterDeleteRow</event>
|
||||
<name>ОграниченияПолномочийПослеУдаления</name>
|
||||
@@ -1981,6 +2154,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияИзКлассификатора2</name>
|
||||
<id>215</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия в машиночитаемом виде</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -2007,6 +2184,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияВТекстовомВиде2</name>
|
||||
<id>217</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия в текстовом виде</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -2033,6 +2214,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ПолномочияНеОграничены2</name>
|
||||
<id>219</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия не ограничены</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -2108,6 +2293,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТекстПолномочий</name>
|
||||
<id>80</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Текст полномочий</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -2153,7 +2342,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа текст полномочий</value>
|
||||
<value>Текст полномочий</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаТекстПолномочийРасширеннаяПодсказка</name>
|
||||
@@ -2270,6 +2459,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаКнопкаСохранить</name>
|
||||
<id>49</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>OK</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -2838,6 +3031,161 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ОграниченияПолномочийРодительскойДоверенности</name>
|
||||
<id>7</id>
|
||||
<valueType>
|
||||
<types>ValueTable</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<savedData>true</savedData>
|
||||
<columns>
|
||||
<name>ИдентификаторПолномочия</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>UUID</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Код</name>
|
||||
<id>2</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>255</length>
|
||||
</stringQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Наименование</name>
|
||||
<id>3</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>255</length>
|
||||
</stringQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>НаименованиеЗначения</name>
|
||||
<id>4</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>255</length>
|
||||
</stringQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>КодЗначения</name>
|
||||
<id>5</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>255</length>
|
||||
</stringQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ЭтоТекстовоеЗначение</name>
|
||||
<id>7</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ОписаниеТипа</name>
|
||||
<id>8</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Описание</name>
|
||||
<id>6</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>НетВКлассификаторе</name>
|
||||
<id>9</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>НетВКлассификатореКодаЗначения</name>
|
||||
<id>10</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>УстановитьФлажки</name>
|
||||
<title>
|
||||
@@ -3078,6 +3426,24 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ОбновитьКлассификаторыПолномочий</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Обновить классификаторы полномочий</value>
|
||||
</title>
|
||||
<id>11</id>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ОбновитьКлассификаторыПолномочий</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<parameters>
|
||||
<name>ТолькоПросмотр</name>
|
||||
<valueType>
|
||||
@@ -3094,6 +3460,14 @@
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>ПолномочияРодительскойДоверенности</name>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<keyParameter>true</keyParameter>
|
||||
</parameters>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
|
||||
+180
-37
@@ -13,11 +13,11 @@
|
||||
|
||||
УстановитьУсловноеОформление();
|
||||
|
||||
ЭтоПередоверие = ЗначениеЗаполнено(Параметры.ПолномочияРодительскойДоверенности);
|
||||
ЭтоВыборИзКлассификатора = Параметры.РежимКлассификатора;
|
||||
Элементы.ГруппаВидПолномочий.ТолькоПросмотр = Параметры.ТолькоПросмотр;
|
||||
Элементы.ВыбратьИзКлассификатора.Видимость = Не Параметры.ТолькоПросмотр;
|
||||
|
||||
РежимКлассификатора = Параметры.РежимКлассификатора;
|
||||
|
||||
Если Параметры.ВыбранныеПолномочия = Неопределено Тогда
|
||||
ВидПолномочий = "0";
|
||||
Иначе
|
||||
@@ -35,14 +35,24 @@
|
||||
КонецЕсли;
|
||||
|
||||
СформироватьДеревоПолномочий(Параметры.ВыбранныеПолномочия.Полномочия);
|
||||
Элементы.ПоказатьВыбранные.Пометка = Элементы.ПоказатьВыбранные.Пометка
|
||||
И Не РежимКлассификатора;
|
||||
Элементы.ПоказатьВыбранные.Видимость = Не Параметры.РежимКлассификатора;
|
||||
Элементы.ГруппаКнопокВидПолномочий.Видимость = Не Параметры.РежимКлассификатора;
|
||||
Элементы.ГруппаСохранение.Видимость = Не Параметры.РежимКлассификатора;
|
||||
Элементы.ГруппаОграниченияПолномочий.Видимость = Не Параметры.РежимКлассификатора;
|
||||
|
||||
ЭтоВыборИзКлассификатора = Параметры.РежимКлассификатора;
|
||||
|
||||
Элементы.ПоказатьВыбранные.Пометка = Не ЭтоВыборИзКлассификатора И Не ЭтоПередоверие И ВыбранныеПолномочияТаблица.Количество() > 0;
|
||||
Элементы.ПоказатьВыбранные.Видимость = Не ЭтоВыборИзКлассификатора И Не ЭтоПередоверие;
|
||||
Элементы.ГруппаСохранение.Видимость = Не ЭтоВыборИзКлассификатора;
|
||||
Элементы.ГруппаОграниченияПолномочий.Видимость = Не ЭтоВыборИзКлассификатора;
|
||||
Элементы.ВыбранныеПолномочияТаблицаЗагрузитьНастройкуПолномочий.Видимость = Не ЭтоПередоверие;
|
||||
Элементы.ЗагрузитьНастройкуПолномочий.Видимость = Не ЭтоПередоверие;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ТекстПолномочий.ТолькоПросмотр = Параметры.ТолькоПросмотр Или ЭтоПередоверие;
|
||||
Элементы.ГруппаКнопокВидПолномочий.Видимость = Не ЭтоВыборИзКлассификатора И Не Параметры.ТолькоПросмотр И Не ЭтоПередоверие;
|
||||
Элементы.ГруппаКнопокВидПолномочий1.Видимость = Элементы.ГруппаКнопокВидПолномочий.Видимость;
|
||||
Элементы.ГруппаКнопокВидПолномочий2.Видимость = Элементы.ГруппаКнопокВидПолномочий.Видимость;
|
||||
Элементы.ОбновитьКлассификаторыПолномочий.Видимость = Не ОбщегоНазначения.РазделениеВключено() И Не ЭтоПередоверие;
|
||||
|
||||
УправлениеФормой(ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -155,6 +165,13 @@
|
||||
&НаКлиенте
|
||||
Процедура ВыбранныеПолномочияТаблицаПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.ПолномочияРодительскойДоверенности) Тогда
|
||||
|
||||
ОбщегоНазначенияКлиент.СообщитьПользователю(
|
||||
НСтр("ru = 'Нельзя добавлять полномочия у передоверия вручную.'"), , , , Отказ);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Отказ = Истина;
|
||||
|
||||
НоваяСтрока = ВыбранныеПолномочияТаблица.Добавить();
|
||||
@@ -195,6 +212,25 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОграниченияПолномочийПередУдалением(Элемент, Отказ)
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.ПолномочияРодительскойДоверенности) Тогда
|
||||
|
||||
ОбщегоНазначенияКлиент.СообщитьПользователю(
|
||||
НСтр("ru = 'Нельзя удалять ограничения у передоверия.'"), , , , Отказ);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВыбранныеПолномочияТаблицаПередУдалением(Элемент, Отказ)
|
||||
|
||||
СнятьОтметкуСтроки(Элементы.ВыбранныеПолномочияТаблица.ТекущиеДанные.ИдентификаторПолномочия);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -310,6 +346,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьКлассификаторыПолномочий(Команда)
|
||||
|
||||
ОбновитьКлассификаторыПолномочийНаСервере();
|
||||
ОбновитьПовторноИспользуемыеЗначения();
|
||||
ОбновитьСписокПолномочий();
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Обновление классификаторов полномочий выполнено.'"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -337,6 +383,9 @@
|
||||
Форма.Элементы.ГруппаТекстПолномочий.Видимость = Ложь;
|
||||
ВидимостьПоказатьВыбранные(Форма);
|
||||
КонецЕсли;
|
||||
|
||||
Форма.КлючСохраненияПоложенияОкна = Форма.ВидПолномочий;
|
||||
Форма.КлючНазначенияИспользования = Форма.ВидПолномочий;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -447,15 +496,37 @@
|
||||
&НаСервере
|
||||
Процедура СформироватьДеревоПолномочий(АдресПолномочий)
|
||||
|
||||
КлассификаторПолномочий = МашиночитаемыеДоверенностиФНСПовтИсп.КлассификаторПолномочий();
|
||||
|
||||
ДеревоЗначений = ОбщегоНазначения.СкопироватьРекурсивно(КлассификаторПолномочий);
|
||||
Если Не ЗначениеЗаполнено(Параметры.ПолномочияРодительскойДоверенности) Тогда
|
||||
КлассификаторПолномочий = МашиночитаемыеДоверенностиФНСПовтИсп.КлассификаторПолномочий();
|
||||
ДеревоЗначений = ОбщегоНазначения.СкопироватьРекурсивно(КлассификаторПолномочий);
|
||||
Иначе
|
||||
ДеревоЗначений = Новый ДеревоЗначений;
|
||||
ДеревоЗначений.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
|
||||
ДеревоЗначений.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
|
||||
КонецЕсли;
|
||||
|
||||
ДеревоЗначений.Колонки.Добавить("Мнемокод", ОбщегоНазначения.ОписаниеТипаСтрока(255));
|
||||
ДеревоЗначений.Колонки.Добавить("НетВКлассификаторе", Новый ОписаниеТипов("Булево"));
|
||||
ДеревоЗначений.Колонки.Добавить("Пометка", ОбщегоНазначения.ОписаниеТипаЧисло(1));
|
||||
ДеревоЗначений.Колонки.Добавить("Флажок", Новый ОписаниеТипов("Булево"));
|
||||
ДеревоЗначений.Колонки.Добавить("ИдентификаторПолномочия", Новый ОписаниеТипов("УникальныйИдентификатор"));
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.ПолномочияРодительскойДоверенности) Тогда
|
||||
ПолномочияРодительскойДоверенности = ПолучитьИзВременногоХранилища(Параметры.ПолномочияРодительскойДоверенности);
|
||||
Для Каждого Полномочие Из ПолномочияРодительскойДоверенности.Полномочия Цикл
|
||||
НоваяСтрока = ДеревоЗначений.Строки.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НоваяСтрока, Полномочие);
|
||||
КонецЦикла;
|
||||
Для Каждого Ограничение Из ПолномочияРодительскойДоверенности.Ограничения Цикл
|
||||
НоваяСтрока = ОграниченияПолномочийРодительскойДоверенности.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НоваяСтрока, Ограничение);
|
||||
Если Не ЗначениеЗаполнено(НоваяСтрока.КодЗначения) Тогда
|
||||
НоваяСтрока.ЭтоТекстовоеЗначение = Истина;
|
||||
НоваяСтрока.НаименованиеЗначения = Ограничение.ТекстовоеЗначение;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если АдресПолномочий <> Неопределено Тогда
|
||||
|
||||
ВыбранныеПолномочия = ПолучитьИзВременногоХранилища(АдресПолномочий);
|
||||
@@ -467,9 +538,8 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ПоказатьВыбранные.Пометка = ВыбранныеПолномочияТаблица.Количество() > 0;
|
||||
ЗначениеВРеквизитФормы(ДеревоЗначений, "Полномочия");
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
@@ -501,33 +571,28 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗагрузитьВыбранныеПолномочия(ВыбранныеПолномочия, ДеревоЗначений)
|
||||
Процедура СнятьОтметкуСтроки(Знач ИдентификаторПолномочия)
|
||||
|
||||
СтрокиСПометками = Новый Соответствие;
|
||||
Для Каждого Полномочие Из ВыбранныеПолномочия.Полномочия Цикл
|
||||
ДеревоЗначений = РеквизитФормыВЗначение("Полномочия");
|
||||
|
||||
Найдено = ДеревоЗначений.Строки.Найти(ИдентификаторПолномочия, "ИдентификаторПолномочия", Истина);
|
||||
Если Найдено <> Неопределено Тогда
|
||||
Найдено.Пометка = Ложь;
|
||||
|
||||
Найдено = ДеревоЗначений.Строки.НайтиСтроки(
|
||||
Новый Структура("Код, Наименование", Полномочие.Код, Полномочие.Наименование), Истина);
|
||||
|
||||
Если Найдено.Количество() = 0 Тогда
|
||||
НетВКлассификаторе = Истина;
|
||||
Иначе
|
||||
НетВКлассификаторе = Ложь;
|
||||
НоваяСтрока = Найдено[0];
|
||||
НоваяСтрока.Пометка = Истина;
|
||||
НоваяСтрока.ИдентификаторПолномочия = Полномочие.ИдентификаторПолномочия;
|
||||
Если ЗначениеЗаполнено(НоваяСтрока.Родитель) Тогда
|
||||
Если СтрокиСПометками[НоваяСтрока.Родитель] = Неопределено Тогда
|
||||
СтрокиСПометками.Вставить(НоваяСтрока.Родитель, Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(Найдено.Родитель) Тогда
|
||||
СтрокиСПометками = Новый Соответствие;
|
||||
СтрокиСПометками.Вставить(Найдено.Родитель, Истина);
|
||||
ОбновитьФлажки(СтрокиСПометками);
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаВыбранные = ВыбранныеПолномочияТаблица.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(СтрокаВыбранные, Полномочие);
|
||||
СтрокаВыбранные.НетВКлассификаторе = НетВКлассификаторе;
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеВРеквизитФормы(ДеревоЗначений, "Полномочия");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ОбновитьФлажки(СтрокиСПометками)
|
||||
|
||||
Для Каждого КлючИЗначение Из СтрокиСПометками Цикл
|
||||
Родитель = КлючИЗначение.Ключ;
|
||||
@@ -550,6 +615,39 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗагрузитьВыбранныеПолномочия(ВыбранныеПолномочия, ДеревоЗначений)
|
||||
|
||||
СтрокиСПометками = Новый Соответствие;
|
||||
Для Каждого Полномочие Из ВыбранныеПолномочия.Полномочия Цикл
|
||||
|
||||
Найдено = ДеревоЗначений.Строки.НайтиСтроки(
|
||||
Новый Структура("Код, Наименование", Полномочие.Код, Полномочие.Наименование), Истина);
|
||||
|
||||
Если Найдено.Количество() = 0 Тогда
|
||||
НетВКлассификаторе = Истина;
|
||||
Иначе
|
||||
НетВКлассификаторе = Ложь;
|
||||
НоваяСтрока = Найдено[0];
|
||||
НоваяСтрока.Пометка = Истина;
|
||||
НоваяСтрока.ИдентификаторПолномочия = Полномочие.ИдентификаторПолномочия;
|
||||
Если ЗначениеЗаполнено(НоваяСтрока.Родитель) Тогда
|
||||
Если СтрокиСПометками[НоваяСтрока.Родитель] = Неопределено Тогда
|
||||
СтрокиСПометками.Вставить(НоваяСтрока.Родитель, Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаВыбранные = ВыбранныеПолномочияТаблица.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(СтрокаВыбранные, Полномочие);
|
||||
СтрокаВыбранные.НетВКлассификаторе = НетВКлассификаторе;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ОбновитьФлажки(СтрокиСПометками);
|
||||
|
||||
ИдентификаторыПолномочийСОграничениями = Новый Соответствие;
|
||||
|
||||
Если ВыбранныеПолномочия.Ограничения.Количество() > 0 Тогда
|
||||
@@ -575,7 +673,7 @@
|
||||
Иначе
|
||||
|
||||
Найдено = ЗначенияОграничений.НайтиСтроки(
|
||||
Новый Структура("Код", НоваяСтрока.КодЗначения));
|
||||
Новый Структура("Код", НоваяСтрока.КодЗначения));
|
||||
Если Найдено.Количество() = 0 Тогда
|
||||
НоваяСтрока.НетВКлассификатореКодаЗначения = Истина;
|
||||
КонецЕсли;
|
||||
@@ -667,12 +765,35 @@
|
||||
|
||||
Если Флажок = 1 Тогда
|
||||
Если Найдено.Количество() = 0 Тогда
|
||||
|
||||
НоваяСтрока = ВыбранныеПолномочияТаблица.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.ПолномочияРодительскойДоверенности) Тогда
|
||||
НайденыОграничения = ОграниченияПолномочийРодительскойДоверенности.НайтиСтроки(
|
||||
Новый Структура("ИдентификаторПолномочия", НоваяСтрока.ИдентификаторПолномочия));
|
||||
НоваяСтрока.ЕстьОграничения = НайденыОграничения.Количество() > 0;
|
||||
Для Каждого НайденнаяСтрока Из НайденыОграничения Цикл
|
||||
НоваяСтрокаОграничений = ОграниченияПолномочий.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НоваяСтрокаОграничений, НайденнаяСтрока);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Найдено.Количество() > 0 Тогда
|
||||
Для Каждого НайденнаяСтрока Из Найдено Цикл
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.ПолномочияРодительскойДоверенности) Тогда
|
||||
НайденыОграничения = ОграниченияПолномочий.НайтиСтроки(
|
||||
Новый Структура("ИдентификаторПолномочия", НайденнаяСтрока.ИдентификаторПолномочия));
|
||||
Для Каждого Ограничение Из НайденыОграничения Цикл
|
||||
ОграниченияПолномочий.Удалить(ОграниченияПолномочий.Индекс(Ограничение));
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ВыбранныеПолномочияТаблица.Удалить(ВыбранныеПолномочияТаблица.Индекс(НайденнаяСтрока));
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -828,4 +949,26 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура ОбновитьКлассификаторыПолномочийНаСервере()
|
||||
|
||||
РегистрыСведений.КлассификаторыМЧД.ОбновитьКлассификаторы();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьСписокПолномочий()
|
||||
|
||||
КодыПолномочий = Новый Массив;
|
||||
|
||||
Для Каждого Полномочие Из ВыбранныеПолномочияТаблица Цикл
|
||||
Если ЗначениеЗаполнено(Полномочие.Код) И Не Полномочие.НетВКлассификаторе Тогда
|
||||
КодыПолномочий.Добавить(Полномочие.Код);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
СформироватьДеревоПолномочий(ПоместитьВоВременноеХранилище(КодыПолномочий));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+13
-1
@@ -7,6 +7,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>НомерДоверенности</name>
|
||||
<id>1</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Номер доверенности</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -49,6 +53,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ИНН</name>
|
||||
<id>4</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>ИНН доверителя</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -94,6 +102,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>Загрузить</name>
|
||||
<id>7</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Загрузить</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -126,7 +138,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа подвал</value>
|
||||
<value>Подвал</value>
|
||||
</title>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<extendedTooltip>
|
||||
|
||||
@@ -9,6 +9,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ДоверенностиПоРоли</name>
|
||||
<id>70</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Доверенности по роли</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -84,6 +88,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТолькоДействующие</name>
|
||||
<id>49</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Только действующие</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -123,6 +131,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Полномочия</name>
|
||||
<id>136</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Полномочия представление</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -171,6 +183,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Сертификат</name>
|
||||
<id>123</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сертификат</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -231,7 +247,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа отборы первая строка</value>
|
||||
<value>Отборы первая строка</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаОтборыПерваяСтрокаРасширеннаяПодсказка</name>
|
||||
@@ -296,6 +312,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТипДоверителя</name>
|
||||
<id>107</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Тип доверителя</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -343,6 +363,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Доверитель</name>
|
||||
<id>218</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Доверитель</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -465,6 +489,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТипПредставителя</name>
|
||||
<id>120</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Тип представителя</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -512,6 +540,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Представитель</name>
|
||||
<id>221</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Представитель</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -605,7 +637,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа отборы вторая строка</value>
|
||||
<value>Отборы вторая строка</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаОтборыВтораяСтрокаРасширеннаяПодсказка</name>
|
||||
@@ -634,7 +666,7 @@
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа отборы</value>
|
||||
<value>Отборы</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаОтборыРасширеннаяПодсказка</name>
|
||||
@@ -781,6 +813,10 @@
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ДатаВыдачи</name>
|
||||
<id>22</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>С</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -810,8 +846,13 @@
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:LabelFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<width>7</width>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<format>
|
||||
<key>ru</key>
|
||||
<value>ДФ=dd.MM.yyyy</value>
|
||||
</format>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
@@ -819,7 +860,7 @@
|
||||
<id>25</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Дата окончания</value>
|
||||
<value>По</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
@@ -850,8 +891,13 @@
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:LabelFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<width>7</width>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<format>
|
||||
<key>ru</key>
|
||||
<value>ДФ=dd.MM.yyyy</value>
|
||||
</format>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
@@ -1016,6 +1062,125 @@
|
||||
<showInCard>true</showInCard>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаПередоверие</name>
|
||||
<id>239</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВозможностьПередоверия</name>
|
||||
<id>236</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Возможность передоверия</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Список.ВозможностьПередоверия</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Возможность передоверия</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>ВозможностьПередоверияРасширеннаяПодсказка</name>
|
||||
<id>238</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ВозможностьПередоверияКонтекстноеМеню</name>
|
||||
<id>237</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>PictureField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:ImageFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<border xsi:type="core:BorderDef">
|
||||
<style>Single</style>
|
||||
<width>1</width>
|
||||
</border>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Передоверие</name>
|
||||
<id>241</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Это передоверие</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Список.Передоверие</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Это передоверие</value>
|
||||
</toolTip>
|
||||
<extendedTooltip>
|
||||
<name>ПередовериеРасширеннаяПодсказка</name>
|
||||
<id>243</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПередовериеКонтекстноеМеню</name>
|
||||
<id>242</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>CheckBoxField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Передоверие</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаПередовериеРасширеннаяПодсказка</name>
|
||||
<id>240</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>ColumnGroup</type>
|
||||
<extInfo xsi:type="form:ColumnGroupExtInfo">
|
||||
<showInCard>true</showInCard>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Код</name>
|
||||
<id>128</id>
|
||||
@@ -1135,6 +1300,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЗагрузитьИзФайла</name>
|
||||
<id>92</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Загрузить из файла ...</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1162,6 +1331,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокВыгрузитьВФайл</name>
|
||||
<id>88</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Выгрузить в файл...</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1289,9 +1462,44 @@
|
||||
<importance>Normal</importance>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ПодменюСоздатьНаОсновании</name>
|
||||
<id>234</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Создать на основании</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ПодменюСоздатьНаОснованииРасширеннаяПодсказка</name>
|
||||
<id>235</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Popup</type>
|
||||
<extInfo xsi:type="form:PopupGroupExtInfo">
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>StdPicture.InputOnBasis</picture>
|
||||
</picture>
|
||||
<representation>Picture</representation>
|
||||
<importance>Normal</importance>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокЗагрузитьИзРеестраФНС</name>
|
||||
<id>98</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Загрузить из реестра ФНС ...</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -1345,6 +1553,10 @@
|
||||
<items xsi:type="form:Button">
|
||||
<name>СписокПолучитьСтатус</name>
|
||||
<id>105</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Обновить статус из реестра ФНС</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -2144,9 +2356,15 @@
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
|
||||
<segments>Список.ВозможностьПередоверия</segments>
|
||||
</notDefaultUseAlwaysAttributes>
|
||||
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
|
||||
<segments>Список.Ссылка</segments>
|
||||
</notDefaultUseAlwaysAttributes>
|
||||
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
|
||||
<segments>Список.ФайлДоверенности</segments>
|
||||
</notDefaultUseAlwaysAttributes>
|
||||
<main>true</main>
|
||||
<extInfo xsi:type="form:DynamicListExtInfo">
|
||||
<queryText>ВЫБРАТЬ
|
||||
@@ -2155,38 +2373,40 @@
|
||||
СправочникМашиночитаемыеДоверенности.Код КАК Код,
|
||||
СправочникМашиночитаемыеДоверенности.Наименование КАК Наименование,
|
||||
СправочникМашиночитаемыеДоверенности.ДатаВыдачи КАК ДатаВыдачи,
|
||||
СправочникМашиночитаемыеДоверенности.ФайлДоверенности КАК ФайлДоверенности,
|
||||
КОНЕЦПЕРИОДА(СправочникМашиночитаемыеДоверенности.ДатаОкончания, ДЕНЬ) КАК ДатаОкончания,
|
||||
СправочникМашиночитаемыеДоверенности.ДляНалоговыхОрганов КАК ДляНалоговыхОрганов,
|
||||
СправочникМашиночитаемыеДоверенности.РегистрироватьВРеестре КАК РегистрироватьВРеестре,
|
||||
ВЫБОР
|
||||
КОГДА СправочникМашиночитаемыеДоверенности.РодительскаяДоверенностьНомер = ""
|
||||
ТОГДА Ложь
|
||||
ИНАЧЕ Истина
|
||||
КОНЕЦ КАК Передоверие,
|
||||
СправочникМашиночитаемыеДоверенности.ВозможностьПередоверия КАК ВозможностьПередоверия,
|
||||
СправочникМашиночитаемыеДоверенности.Статус КАК Статус,
|
||||
&СтатусВДругомРеестре КАК СтатусВДругомРеестре,
|
||||
99 КАК ИндексСтатусаВДругомРеестре,
|
||||
МашиночитаемыеДоверенностиСтатусы.ТехническийСтатус КАК ТехническийСтатус,
|
||||
СправочникМашиночитаемыеДоверенности.Верна КАК Верна,
|
||||
ВЫБОР
|
||||
КОГДА &ТекущаяДата
|
||||
МЕЖДУ СправочникМашиночитаемыеДоверенности.ДатаВыдачи И КОНЕЦПЕРИОДА(СправочникМашиночитаемыеДоверенности.ДатаОкончания,
|
||||
ДЕНЬ)
|
||||
И СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Действует)
|
||||
КОГДА &ТекущаяДата МЕЖДУ СправочникМашиночитаемыеДоверенности.ДатаВыдачи И КОНЕЦПЕРИОДА(СправочникМашиночитаемыеДоверенности.ДатаОкончания, ДЕНЬ)
|
||||
И СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Действует)
|
||||
ТОГДА ИСТИНА
|
||||
ИНАЧЕ ЛОЖЬ
|
||||
КОНЕЦ КАК Действует,
|
||||
ВЫБОР
|
||||
КОГДА СправочникМашиночитаемыеДоверенности.ПометкаУдаления
|
||||
ТОГДА 1
|
||||
КОГДА КОНЕЦПЕРИОДА(СправочникМашиночитаемыеДоверенности.ДатаОкончания, ДЕНЬ)
|
||||
МЕЖДУ &ТекущаяДата И &СрокИстекающихДоверенностей
|
||||
И СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Действует)
|
||||
КОГДА КОНЕЦПЕРИОДА(СправочникМашиночитаемыеДоверенности.ДатаОкончания, ДЕНЬ) МЕЖДУ &ТекущаяДата И &СрокИстекающихДоверенностей
|
||||
И СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Действует)
|
||||
ТОГДА 3
|
||||
КОГДА &ТекущаяДата > КОНЕЦПЕРИОДА(СправочникМашиночитаемыеДоверенности.ДатаОкончания, ДЕНЬ)
|
||||
И СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Действует)
|
||||
И СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Действует)
|
||||
ТОГДА 4
|
||||
КОГДА СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Черновик)
|
||||
ТОГДА 5
|
||||
КОГДА &ТекущаяДата
|
||||
МЕЖДУ СправочникМашиночитаемыеДоверенности.ДатаВыдачи И КОНЕЦПЕРИОДА(СправочникМашиночитаемыеДоверенности.ДатаОкончания,
|
||||
ДЕНЬ)
|
||||
И СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Действует)
|
||||
КОГДА &ТекущаяДата МЕЖДУ СправочникМашиночитаемыеДоверенности.ДатаВыдачи И КОНЕЦПЕРИОДА(СправочникМашиночитаемыеДоверенности.ДатаОкончания, ДЕНЬ)
|
||||
И СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.Действует)
|
||||
ТОГДА 2
|
||||
КОГДА СправочникМашиночитаемыеДоверенности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыМЧД.НеДействует)
|
||||
ТОГДА 4
|
||||
@@ -2194,159 +2414,140 @@
|
||||
КОНЕЦ КАК ИндексСтатуса,
|
||||
СправочникМашиночитаемыеДоверенности.НомерДоверенности КАК НомерДоверенности,
|
||||
СправочникМашиночитаемыеДоверенности.КодНалоговогоОрганаПредставления КАК КодНалоговогоОрганаПредставления,
|
||||
МашиночитаемыеДоверенностиСтатусы.Подписана
|
||||
{ГДЕ
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИНН + "|" +
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ИННФЛ + "|" +
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.СНИЛС + "|" +
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ФИО + "|" +
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.НаименованиеОрганизации
|
||||
ПОДОБНО &ДоверительСтрокаПоиска СПЕЦСИМВОЛ "~")),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИНН + "|" +
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ИННФЛ + "|" +
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.СНИЛС + "|" +
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ФИО + "|" +
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.НаименованиеОрганизации
|
||||
ПОДОБНО &ПредставительСтрокаПоиска СПЕЦСИМВОЛ "~")),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиДоверители.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Доверители КАК МашиночитаемыеДоверенностиДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиДоверители.Доверитель = &Доверитель)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставители.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Представители КАК МашиночитаемыеДоверенностиПредставители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставители.Представитель = &Представитель)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиДоверители.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Доверители КАК МашиночитаемыеДоверенностиДоверители
|
||||
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
|
||||
ПО МашиночитаемыеДоверенностиДоверители.Доверитель = Пользователи.ФизическоеЛицо
|
||||
ГДЕ
|
||||
Пользователи.Ссылка = &ДоверительПользователь)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставители.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Представители КАК МашиночитаемыеДоверенностиПредставители
|
||||
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
|
||||
ПО МашиночитаемыеДоверенностиПредставители.Представитель = Пользователи.ФизическоеЛицо
|
||||
ГДЕ
|
||||
Пользователи.Ссылка = &ПредставительПользователь)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПолномочия.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Полномочия КАК МашиночитаемыеДоверенностиПолномочия
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПолномочия.Код + "|" + МашиночитаемыеДоверенностиПолномочия.Мнемокод + "|" +
|
||||
МашиночитаемыеДоверенностиПолномочия.Наименование ПОДОБНО &ПолномочияСтрокаПоиска)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПолномочия.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Полномочия КАК МашиночитаемыеДоверенностиПолномочия
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПолномочия.Код В (&Полномочия))),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИНН = &ДоверительИНН)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ОГРН = &ДоверительОГРН)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИННФЛ = &ДоверительИННФЛ)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.СНИЛС = &ДоверительСНИЛС)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИНН = &ПредставительИНН)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ОГРН = &ПредставительОГРН)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИННФЛ = &ПредставительИННФЛ)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.СНИЛС = &ПредставительСНИЛС))}
|
||||
МашиночитаемыеДоверенностиСтатусы.Подписана КАК Подписана
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности КАК СправочникМашиночитаемыеДоверенности
|
||||
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МашиночитаемыеДоверенностиСтатусы КАК МашиночитаемыеДоверенностиСтатусы
|
||||
ПО СправочникМашиночитаемыеДоверенности.Ссылка = МашиночитаемыеДоверенностиСтатусы.МашиночитаемаяДоверенность</queryText>
|
||||
ПО СправочникМашиночитаемыеДоверенности.Ссылка = МашиночитаемыеДоверенностиСтатусы.МашиночитаемаяДоверенность
|
||||
{ГДЕ
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИНН + "|" + МашиночитаемыеДоверенностиПредставителиИДоверители.ИННФЛ + "|" + МашиночитаемыеДоверенностиПредставителиИДоверители.СНИЛС + "|" + МашиночитаемыеДоверенностиПредставителиИДоверители.ФИО + "|" + МашиночитаемыеДоверенностиПредставителиИДоверители.НаименованиеОрганизации ПОДОБНО &ДоверительСтрокаПоиска СПЕЦСИМВОЛ "~")),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИНН + "|" + МашиночитаемыеДоверенностиПредставителиИДоверители.ИННФЛ + "|" + МашиночитаемыеДоверенностиПредставителиИДоверители.СНИЛС + "|" + МашиночитаемыеДоверенностиПредставителиИДоверители.ФИО + "|" + МашиночитаемыеДоверенностиПредставителиИДоверители.НаименованиеОрганизации ПОДОБНО &ПредставительСтрокаПоиска СПЕЦСИМВОЛ "~")),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиДоверители.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Доверители КАК МашиночитаемыеДоверенностиДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиДоверители.Доверитель = &Доверитель)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставители.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Представители КАК МашиночитаемыеДоверенностиПредставители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставители.Представитель = &Представитель)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиДоверители.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Доверители КАК МашиночитаемыеДоверенностиДоверители
|
||||
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
|
||||
ПО
|
||||
МашиночитаемыеДоверенностиДоверители.Доверитель = Пользователи.ФизическоеЛицо
|
||||
ГДЕ
|
||||
Пользователи.Ссылка = &ДоверительПользователь)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставители.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Представители КАК МашиночитаемыеДоверенностиПредставители
|
||||
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
|
||||
ПО
|
||||
МашиночитаемыеДоверенностиПредставители.Представитель = Пользователи.ФизическоеЛицо
|
||||
ГДЕ
|
||||
Пользователи.Ссылка = &ПредставительПользователь)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПолномочия.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Полномочия КАК МашиночитаемыеДоверенностиПолномочия
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПолномочия.Код + "|" + МашиночитаемыеДоверенностиПолномочия.Мнемокод + "|" + МашиночитаемыеДоверенностиПолномочия.Наименование ПОДОБНО &ПолномочияСтрокаПоиска)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПолномочия.Ссылка КАК Ссылка
|
||||
ИЗ
|
||||
Справочник.МашиночитаемыеДоверенности.Полномочия КАК МашиночитаемыеДоверенностиПолномочия
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПолномочия.Код В (&Полномочия))),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИНН = &ДоверительИНН)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ОГРН = &ДоверительОГРН)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИННФЛ = &ДоверительИННФЛ)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Доверитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.СНИЛС = &ДоверительСНИЛС)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИНН = &ПредставительИНН)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ОГРН = &ПредставительОГРН)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.ИННФЛ = &ПредставительИННФЛ)),
|
||||
(СправочникМашиночитаемыеДоверенности.Ссылка В
|
||||
(ВЫБРАТЬ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.МашиночитаемаяДоверенность КАК МашиночитаемаяДоверенность
|
||||
ИЗ
|
||||
РегистрСведений.МашиночитаемыеДоверенностиПредставителиИДоверители КАК МашиночитаемыеДоверенностиПредставителиИДоверители
|
||||
ГДЕ
|
||||
МашиночитаемыеДоверенностиПредставителиИДоверители.ТипУчастника = ЗНАЧЕНИЕ(Перечисление.ТипыУчастниковМЧД.Представитель)
|
||||
И МашиночитаемыеДоверенностиПредставителиИДоверители.СНИЛС = &ПредставительСНИЛС))}</queryText>
|
||||
<mainTable>Catalog.МашиночитаемыеДоверенности</mainTable>
|
||||
<dynamicDataRead>true</dynamicDataRead>
|
||||
<autoFillAvailableFields>true</autoFillAvailableFields>
|
||||
@@ -2438,13 +2639,41 @@
|
||||
<field>Подписана</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>ФайлДоверенности</dataPath>
|
||||
<field>ФайлДоверенности</field>
|
||||
<dataPath>СтатусВДругомРеестре</dataPath>
|
||||
<field>СтатусВДругомРеестре</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>ИндексСтатусаВДругомРеестре</dataPath>
|
||||
<field>ИндексСтатусаВДругомРеестре</field>
|
||||
<title>
|
||||
<localValue>
|
||||
<content>
|
||||
<key>ru</key>
|
||||
<value>Индекс статуса в другом реестре</value>
|
||||
</content>
|
||||
</localValue>
|
||||
</title>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>ТехническийСтатус</dataPath>
|
||||
<field>ТехническийСтатус</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>ВозможностьПередоверия</dataPath>
|
||||
<field>ВозможностьПередоверия</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>Передоверие</dataPath>
|
||||
<field>Передоверие</field>
|
||||
<title>
|
||||
<localValue>
|
||||
<content>
|
||||
<key>ru</key>
|
||||
<value>Передоверие</value>
|
||||
</content>
|
||||
</localValue>
|
||||
</title>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>РодительскаяДоверенность</dataPath>
|
||||
<field>РодительскаяДоверенность</field>
|
||||
@@ -2501,6 +2730,18 @@
|
||||
<dataPath>ФайлЗаявленияНаОтмену</dataPath>
|
||||
<field>ФайлЗаявленияНаОтмену</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>Нотариальная</dataPath>
|
||||
<field>Нотариальная</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>РеквизитыНотариальнойДоверенности</dataPath>
|
||||
<field>РеквизитыНотариальнойДоверенности</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>НомерВРеестреНотариальныхДействий</dataPath>
|
||||
<field>НомерВРеестреНотариальныхДействий</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>Доверители</dataPath>
|
||||
<field>Доверители</field>
|
||||
@@ -2530,24 +2771,8 @@
|
||||
<field>ИмяПредопределенныхДанных</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>СтатусВДругомРеестре</dataPath>
|
||||
<field>СтатусВДругомРеестре</field>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>ИндексСтатусаВДругомРеестре</dataPath>
|
||||
<field>ИндексСтатусаВДругомРеестре</field>
|
||||
<title>
|
||||
<localValue>
|
||||
<content>
|
||||
<key>ru</key>
|
||||
<value>Индекс статуса в другом реестре</value>
|
||||
</content>
|
||||
</localValue>
|
||||
</title>
|
||||
</fields>
|
||||
<fields xsi:type="schema:DataCompositionSchemaDataSetField">
|
||||
<dataPath>ТехническийСтатус</dataPath>
|
||||
<field>ТехническийСтатус</field>
|
||||
<dataPath>ФайлДоверенности</dataPath>
|
||||
<field>ФайлДоверенности</field>
|
||||
</fields>
|
||||
<parameters>
|
||||
<name>Доверитель</name>
|
||||
@@ -3101,6 +3326,17 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПараметрыПодключаемыхКоманд</name>
|
||||
<id>17</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>ЗагрузитьИзФайла</name>
|
||||
<title>
|
||||
|
||||
@@ -196,6 +196,19 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьКолонкаСтатус = Ложь;
|
||||
ЕстьКолонкаИндекс = Ложь;
|
||||
|
||||
Для Каждого Строка Из Строки Цикл
|
||||
ЕстьКолонкаСтатус = Строка.Значение.Данные.Свойство("СтатусВДругомРеестре");
|
||||
ЕстьКолонкаИндекс = Строка.Значение.Данные.Свойство("ИндексСтатусаВДругомРеестре");
|
||||
Прервать;
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ЕстьКолонкаСтатус И Не ЕстьКолонкаИндекс Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Доверенности = Новый Соответствие;
|
||||
МассивДоверенностей = Строки.ПолучитьКлючи();
|
||||
|
||||
@@ -211,9 +224,12 @@
|
||||
Если Статус = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Строка.Значение.Данные.СтатусВДругомРеестре = Статус.Статус;
|
||||
Строка.Значение.Данные.ИндексСтатусаВДругомРеестре = Статус.ИндексКартинки;
|
||||
Если ЕстьКолонкаСтатус Тогда
|
||||
Строка.Значение.Данные.СтатусВДругомРеестре = Статус.Статус;
|
||||
КонецЕсли;
|
||||
Если ЕстьКолонкаИндекс Тогда
|
||||
Строка.Значение.Данные.ИндексСтатусаВДругомРеестре = Статус.ИндексКартинки;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -230,12 +246,12 @@
|
||||
&НаКлиенте
|
||||
Процедура ЗагрузитьИзФайла(Команда)
|
||||
|
||||
РезультатАвторизации = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.АвторизоватьсяНаСервереМЧДРР();
|
||||
РезультатАвторизации = АвторизоватьсяНаСервереМЧДРР();
|
||||
|
||||
Если ЗначениеЗаполнено(РезультатАвторизации.Ошибка) Тогда
|
||||
|
||||
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Предупреждение32;
|
||||
ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание;
|
||||
ПараметрыВопроса.Заголовок = НСтр("ru = 'Загрузка доверенности из файла'");
|
||||
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||
|
||||
@@ -244,7 +260,7 @@
|
||||
Кнопки.Добавить("Отменить", НСтр("ru = 'Отменить загрузку'"));
|
||||
Кнопки.Добавить("ПоказатьОшибку", НСтр("ru = 'Подробности...'"));
|
||||
|
||||
ТекстОшибки = НСтр("ru = 'Невозможно проверить доверенность в распределенном реестре.'");
|
||||
ТекстОшибки = НСтр("ru = 'Нет возможности проверить доверенность в распределенном реестре, доверенность будет загружена без признака ""Зарегистрирована в реестре ФНС""'");
|
||||
|
||||
Оповещение = Новый ОписаниеОповещения("ПослеОтветаНаВопросОЗагрузкеДоверенности", ЭтотОбъект, РезультатАвторизации.Ошибка);
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ТекстОшибки, Кнопки, ПараметрыВопроса);
|
||||
@@ -256,6 +272,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция АвторизоватьсяНаСервереМЧДРР()
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.АвторизоватьсяНаСервереМЧДРР();
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЗагрузитьИзРеестраФНС(Команда)
|
||||
ПослеЗагрузкиДоверенности = Новый ОписаниеОповещения("ПослеЗагрузкиДоверенности", ЭтотОбъект);
|
||||
@@ -279,7 +300,7 @@
|
||||
НСтр("ru = 'Обновление статусов из Реестра ФНС'"),
|
||||
,
|
||||
ТекстСообщения,
|
||||
БиблиотекаКартинок.Информация32,
|
||||
БиблиотекаКартинок.ДиалогИнформация,
|
||||
СтатусОповещенияПользователя.Информация);
|
||||
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
|
||||
@@ -428,7 +449,7 @@
|
||||
НСтр("ru = 'Загрузка завершена'"),
|
||||
ПолучитьНавигационнуюСсылку(Результат.Доверенность),
|
||||
Результат.Доверенность,
|
||||
БиблиотекаКартинок.Информация32,
|
||||
БиблиотекаКартинок.ДиалогИнформация,
|
||||
СтатусОповещенияПользователя.Информация);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -484,7 +505,7 @@
|
||||
НСтр("ru = 'Получение статуса завершено'"),
|
||||
ОткрытьСписокСобытий,
|
||||
ТекстСообщения,
|
||||
БиблиотекаКартинок.Информация32,
|
||||
БиблиотекаКартинок.ДиалогИнформация,
|
||||
СтатусОповещенияПользователя.Информация);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -612,6 +633,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ЭлементОтбора Из Отборы Цикл
|
||||
Если Не ВсеОтборыПоСертификатам.Свойство(ЭлементОтбора.Ключ)Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ВсеОтборыПоСертификатам[ЭлементОтбора.Ключ] = ?(ЭлементОтбора.Значение = Неопределено, "", ЭлементОтбора.Значение);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,36 @@
|
||||
<!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>
|
||||
<li>В карточке можно увидеть всю <b>цепочку передоверия</b>. При создании передоверия полномочия передаются автоматически из родительской доверенности.</li>
|
||||
<li>Для того, чтобы внести изменения в подписанную, но еще не зарегистрированную доверенность, подпись нужно <b>Удалить</b>, а после внесения изменений подписать заново. </li></ul><div><br></div>
|
||||
<div><span style="font-size: 13.4399995803833px; font-weight: bold;">Ввод представителя</span></div>
|
||||
<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>Для возможности последующего передоверия при создании МЧД необходимо установить флажок <b>Разрешить передоверие</b>:<br></li>
|
||||
<ul><li><strong>однократное передоверие</strong> - представитель может передавать полномочия один раз, после чего действие доверенности прекращается;</li>
|
||||
<li><strong>многократное передоверие</strong> - позволяет представителю передавать полномочия нескольким лицам последовательно. </li></ul></ul><ul><li>Руководитель юрлица, глава филиала или представитель юрлица могут самостоятельно выдавать МЧД с правом <b>передоверия</b>. В данном случае заверять доверенность у нотариуса не нужно. В других случаях МЧД, выданную в порядке передоверия, необходимо заверить у нотариуса. </li>
|
||||
<li>Для того чтобы зарегистрировать МЧД в <strong>Распределенном реестре ФНС России</strong> нажмите на флажок. </li>
|
||||
<li>В поле <strong>Единый регистрационный номер доверенности</strong> автоматически сгенерируется номер после подписания доверенности. </li>
|
||||
<li>Поле <strong>Наименование</strong> заполняется автоматически. </li></ul><h3 style="font-size: 13.4399995803833px;">Нотариальная доверенность</h3>
|
||||
<ul><li>Для оформления <b>Нотариальной доверенности</b>, например, при передаче полномочий сотрудника другому сотруднику, необходимо обратиться к нотариусу.</li>
|
||||
<li>Нотариус выгружает подписанную МЧД в <b>Распределенный реестр ФНС</b> и в личный кабинет заявителя на портале нотариуса. Оттуда ее можно загрузить себе на устройство. </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>
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,60 @@
|
||||
<!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 style="font-size: 13.4399995803833px;">Передоверие</h3>
|
||||
<div>
|
||||
<ul><li>Нажмите кнопку <b>Передоверить</b> для того, чтобы передать полномочия по доверенности. Кнопка активна, если доверенность поддерживает однократное или многократное передоверие. </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>
|
||||
File diff suppressed because it is too large.
Load diff
@@ -17,12 +17,20 @@
|
||||
СтатусУстановленВручную = Ложь;
|
||||
НомерДоверенности = Неопределено;
|
||||
ФайлДоверенности = Неопределено;
|
||||
ФайлЗаявленияНаОтмену = Неопределено;
|
||||
ДатаОтмены = Неопределено;
|
||||
Ответственный = Неопределено;
|
||||
Верна = Ложь;
|
||||
СтатусВернаУстановленВручную = Ложь;
|
||||
УстановившийСтатусВерна = Неопределено;
|
||||
Подписана = Ложь;
|
||||
Наименование = Неопределено;
|
||||
ДатаПроверки = Неопределено;
|
||||
РодительскаяДоверенностьНомер = Неопределено;
|
||||
РодительскаяДоверенность = Неопределено;
|
||||
РеквизитыНотариальнойДоверенности = Неопределено;
|
||||
НомерВРеестреНотариальныхДействий = Неопределено;
|
||||
Нотариальная = Неопределено;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -32,10 +40,14 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ВозможностьПередоверия) Тогда
|
||||
ВозможностьПередоверия = ПредопределенноеЗначение("Перечисление.ВозможностьПередоверияМЧД.БезПередоверия");
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Наименование) Тогда
|
||||
Наименование = Справочники.МашиночитаемыеДоверенности.АвтоНаименование(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если Не ЗначениеЗаполнено(Ответственный) Тогда
|
||||
Ответственный = Пользователи.ТекущийПользователь();
|
||||
КонецЕсли;
|
||||
@@ -118,6 +130,21 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Нотариальная Тогда
|
||||
РеквизитыНотариуса = РеквизитыНотариальнойДоверенности.Получить();
|
||||
|
||||
НоваяЗапись = НаборЗаписей.Добавить();
|
||||
Если ЗначениеЗаполнено(РеквизитыНотариуса.ИсполняющийОбязанностиНотариуса) Тогда
|
||||
НоваяЗапись.ФИО = ФИО(РеквизитыНотариуса.ИсполняющийОбязанностиНотариуса);
|
||||
Иначе
|
||||
НоваяЗапись.ФИО = ФИО(РеквизитыНотариуса.Нотариус);
|
||||
КонецЕсли;
|
||||
|
||||
НоваяЗапись.МашиночитаемаяДоверенность = Ссылка;
|
||||
НоваяЗапись.ТипУчастника = Перечисления.ТипыУчастниковМЧД.Нотариус;
|
||||
НоваяЗапись.ЭтоФизическоеЛицо = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
НаборЗаписей.Записать();
|
||||
|
||||
Если ДополнительныеСвойства.Свойство("ОбновитьСтатус") Тогда
|
||||
@@ -126,6 +153,95 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
|
||||
|
||||
Если ТипЗнч(ДанныеЗаполнения) <> Тип("СправочникСсылка.МашиночитаемыеДоверенности") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
РодительскаяДоверенность = ДанныеЗаполнения;
|
||||
РеквизитыРодительскойДоверенности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(РодительскаяДоверенность,
|
||||
"ДатаОкончания, Представители, Полномочия, Ограничения, НомерДоверенности, РегистрироватьВРеестре, ВозможностьПередоверия, ФайлДоверенности, ТекстПолномочий, ПолномочияВТекстовомВиде");
|
||||
|
||||
Если Не ЗначениеЗаполнено(РеквизитыРодительскойДоверенности.ВозможностьПередоверия)
|
||||
Или РеквизитыРодительскойДоверенности.ВозможностьПередоверия = Перечисления.ВозможностьПередоверияМЧД.БезПередоверия Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Доверенность %1 не поддерживает возможность передоверия.'"), РодительскаяДоверенность);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(РеквизитыРодительскойДоверенности.НомерДоверенности) Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не заполнен единый регистрационный номер доверенности %1.'"), РодительскаяДоверенность);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(РеквизитыРодительскойДоверенности.ФайлДоверенности) Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не найден файл доверенности %1.'"), РодительскаяДоверенность);
|
||||
КонецЕсли;
|
||||
|
||||
РодительскаяДоверенностьНомер = РеквизитыРодительскойДоверенности.НомерДоверенности;
|
||||
РегистрироватьВРеестре = РеквизитыРодительскойДоверенности.РегистрироватьВРеестре;
|
||||
|
||||
ТЧПредставители = РеквизитыРодительскойДоверенности.Представители.Выгрузить();
|
||||
Найдено = ТЧПредставители.НайтиСтроки(Новый Структура("ИдентификаторРодителя",
|
||||
Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000")));
|
||||
|
||||
ТолькоФизлица = Неопределено; ТолькоИП = Неопределено;
|
||||
Для каждого СтрокаОрганизация Из Найдено Цикл
|
||||
|
||||
РеквизитыОрганизации = СтрокаОрганизация.ПредставительРеквизиты.Получить();
|
||||
|
||||
Если РеквизитыОрганизации.ЭтоФизическоеЛицо Тогда
|
||||
ТолькоФизлица = Истина;
|
||||
Продолжить;
|
||||
ИначеЕсли РеквизитыОрганизации.ЭтоИндивидуальныйПредприниматель Тогда
|
||||
ТолькоИП = Истина;
|
||||
Продолжить;
|
||||
Иначе
|
||||
ТолькоФизлица = Ложь; ТолькоИП = Ложь;
|
||||
|
||||
НоваяСтрока = Доверители.Добавить();
|
||||
НоваяСтрока.Доверитель = СтрокаОрганизация.Представитель;
|
||||
НоваяСтрока.ДоверительРеквизиты = Новый ХранилищеЗначения(РеквизитыОрганизации);
|
||||
НоваяСтрока.ЭтоФизЛицо = РеквизитыОрганизации.ЭтоФизическоеЛицо;
|
||||
НоваяСтрока.Идентификатор = СтрокаОрганизация.Идентификатор;
|
||||
|
||||
НайденоФизическиеЛица = ТЧПредставители.НайтиСтроки(Новый Структура("ИдентификаторРодителя",
|
||||
СтрокаОрганизация.Идентификатор));
|
||||
|
||||
Если НайденоФизическиеЛица.Количество() > 0 Тогда
|
||||
СтрокаФизическоеЛицо = НайденоФизическиеЛица[0];
|
||||
НоваяСтрокаФизЛицо = Доверители.Добавить();
|
||||
НоваяСтрокаФизЛицо.Доверитель = СтрокаФизическоеЛицо.Представитель;
|
||||
ДоверительРеквизиты = СтрокаФизическоеЛицо.ПредставительРеквизиты.Получить();
|
||||
НоваяСтрокаФизЛицо.Идентификатор = СтрокаФизическоеЛицо.Идентификатор;
|
||||
НоваяСтрокаФизЛицо.ДоверительРеквизиты = Новый ХранилищеЗначения(ДоверительРеквизиты);
|
||||
НоваяСтрокаФизЛицо.ЭтоФизЛицо = ДоверительРеквизиты.ЭтоФизическоеЛицо;
|
||||
НоваяСтрокаФизЛицо.ИдентификаторРодителя = НоваяСтрока.Идентификатор;
|
||||
КонецЕсли;
|
||||
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если ТолькоФизлица = Истина Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Передоверие полномочий доверенности %1 от физического лица может быть создано только нотариусом.'"), РодительскаяДоверенность);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТолькоИП = Истина Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Передоверие полномочий доверенности %1 от индивидуального предпринимателя может быть создано только нотариусом.'"), РодительскаяДоверенность);
|
||||
КонецЕсли;
|
||||
|
||||
ДатаОкончания = РеквизитыРодительскойДоверенности.ДатаОкончания;
|
||||
ПолномочияВТекстовомВиде = РеквизитыРодительскойДоверенности.ПолномочияВТекстовомВиде;
|
||||
ТекстПолномочий = РеквизитыРодительскойДоверенности.ТекстПолномочий;
|
||||
Полномочия.Загрузить(РеквизитыРодительскойДоверенности.Полномочия.Выгрузить());
|
||||
Ограничения.Загрузить(РеквизитыРодительскойДоверенности.Ограничения.Выгрузить());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -133,7 +249,7 @@
|
||||
Процедура ОбновитьСтатус()
|
||||
|
||||
ТехническийСтатус = МашиночитаемыеДоверенностиФНССлужебный.РассчитатьТехническийСтатус(ЭтотОбъект);
|
||||
НовыйСтатус = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РасчетныйСтатусДокумента(ТехническийСтатус, Верна);
|
||||
НовыйСтатус = МашиночитаемыеДоверенностиФНССлужебный.РасчетныйСтатусДокумента(ТехническийСтатус, Верна);
|
||||
Если НовыйСтатус <> Статус Тогда
|
||||
Статус = НовыйСтатус;
|
||||
КонецЕсли;
|
||||
|
||||
+4283
-1915
File diff suppressed because it is too large.
Load diff
@@ -97,6 +97,11 @@
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<help>
|
||||
<pages>
|
||||
<lang>ru</lang>
|
||||
</pages>
|
||||
</help>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<objectPresentation>
|
||||
@@ -516,6 +521,54 @@
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="93873fe8-10c0-4f7b-ad20-278e887f69e9">
|
||||
<name>Нотариальная</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Нотариальная</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Boolean</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="13b4aa30-d586-4b26-af0e-32f0d691fec9">
|
||||
<name>РеквизитыНотариальнойДоверенности</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Реквизиты нотариальной доверенности</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>ValueStorage</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="d6d67cc5-e003-4aaa-88ae-d084dae2dc26">
|
||||
<name>НомерВРеестреНотариальныхДействий</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Номер в реестре нотариальных действий</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>28</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<tabularSections uuid="60f2c9f3-3090-442c-8991-0396b8f8b195">
|
||||
<producedTypes>
|
||||
<objectType typeId="f194327c-51ff-4fff-9c2c-df35946c1fa2" valueTypeId="8b5cd3d9-5cac-488d-89dd-ab98b9656a3e"/>
|
||||
@@ -936,6 +989,11 @@
|
||||
<key>ru</key>
|
||||
<value>Форма элемента</value>
|
||||
</synonym>
|
||||
<help>
|
||||
<pages>
|
||||
<lang>ru</lang>
|
||||
</pages>
|
||||
</help>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
|
||||
@@ -988,6 +988,9 @@
|
||||
//
|
||||
Процедура ЗаполнитьПоставляемыйПрофиль(Знач Профиль, Знач ОбновитьГруппыДоступа) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(
|
||||
"Справочники.ПрофилиГруппДоступа.ЗаполнитьПоставляемыйПрофиль");
|
||||
|
||||
ИдентификаторПоставляемыхДанных = Строка(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
|
||||
Профиль, "ИдентификаторПоставляемыхДанных"));
|
||||
|
||||
@@ -1157,6 +1160,9 @@
|
||||
//
|
||||
Процедура ПриИзмененииЯзыкаИнформационнойБазы(ИзменениеЯзыков) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(
|
||||
"Справочники.ПрофилиГруппДоступа.ПриИзмененииЯзыкаИнформационнойБазы");
|
||||
|
||||
УправлениеДоступомСлужебный.ПоставляемыеПрофили(); // Проверка актуальности метаданных.
|
||||
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили().ОписанияПрофилей;
|
||||
|
||||
@@ -1607,6 +1613,9 @@
|
||||
//
|
||||
Процедура ВосстановитьСоставРолейРасширений(ЭлементДанных) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(
|
||||
"Справочники.ПрофилиГруппДоступа.ВосстановитьСоставРолейРасширений");
|
||||
|
||||
УдалитьРолиРасширений(ЭлементДанных);
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
@@ -1644,6 +1653,9 @@
|
||||
// Только для внутреннего использования.
|
||||
Процедура УдалитьРолиРасширенийВоВсехПрофиляхГруппДоступа() Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(
|
||||
"Справочники.ПрофилиГруппДоступа.УдалитьРолиРасширенийВоВсехПрофиляхГруппДоступа");
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|
||||
|
||||
@@ -845,6 +845,9 @@
|
||||
|
||||
ПоказатьВопрос(Обработчик, СтрокаВопроса, Кнопки, 60, КодВозвратаДиалога.Да);
|
||||
КонецЕсли;
|
||||
|
||||
ВидимостьДоступностьКорректность(ЭтотОбъект, "ПолучателиРассылки");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -935,6 +938,10 @@
|
||||
ВидимостьДоступностьКорректность(ЭтотОбъект, "ВидРассылки");
|
||||
ДобавитьКомандыДобавленияДополнительныхПараметровТекста();
|
||||
|
||||
Если Объект.Личная Тогда
|
||||
Объект.Получатели.Очистить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -2871,9 +2878,11 @@
|
||||
ТекстВопроса = НСтр("ru = 'Для того чтобы вставлять отчеты в текст письма, нужно отключить пароли.'");
|
||||
ПараметрыВопроса.КнопкаПоУмолчанию = "ОтключитьПароли";
|
||||
КонецЕсли;
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(
|
||||
Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), ТекстВопроса,
|
||||
КнопкиВопроса, ПараметрыВопроса);
|
||||
Если ДоступноШифрованиеВложений Или Объект.Архивировать Тогда
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(
|
||||
Новый ОписаниеОповещения("ПослеОтветаНаВопросОтчетыВТекстеПисьмаШифрование", ЭтотОбъект), ТекстВопроса,
|
||||
КнопкиВопроса, ПараметрыВопроса);
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли Объект.Личная Тогда
|
||||
|
||||
@@ -3201,7 +3210,7 @@
|
||||
Если Объект.Личная Тогда
|
||||
Элементы.ПолучателиРассылки.Видимость = Ложь;
|
||||
Иначе
|
||||
Элементы.ПолучателиРассылки.Видимость = Истина;
|
||||
Элементы.ПолучателиРассылки.Видимость = ЗначениеЗаполнено(Форма.ТипПолучателейРассылки);
|
||||
Если Не РассылкаОбщая Тогда
|
||||
Элементы.ПолучателиРассылки.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
|
||||
Иначе
|
||||
@@ -3269,6 +3278,7 @@
|
||||
|
||||
Если Изменения = "" Или Изменения = "ПолучателиРассылки" Тогда
|
||||
Если Форма.ВидРассылки <> "Личная" Тогда
|
||||
Элементы.ПолучателиРассылки.Видимость = Истина;
|
||||
ПредставлениеПолучателей = ПредставлениеПолучателей(Форма);
|
||||
Форма.ПолучателиРассылки = ПредставлениеПолучателей.Краткое;
|
||||
КонецЕсли;
|
||||
@@ -3707,7 +3717,7 @@
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьЗначениеПараметраПолучателяПерсонализированнойРассылки()
|
||||
|
||||
Если НЕ Объект.Персонализирована Тогда
|
||||
Если НЕ Объект.Персонализирована Или Элементы.Отчеты.ТекущиеДанные = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
+1
-1
@@ -142,7 +142,7 @@
|
||||
Иначе
|
||||
ЭлектроннаяПодписьКлиент.УстановитьРасширение(Ложь, Новый ОписаниеОповещения(
|
||||
"ЗаполнитьОписаниеДанныхСертификата", ЭтотОбъект, ТекущиеДанные.АдресСертификата),
|
||||
НСтр("ru = 'Для продолжения установите расширение для работы с криптографией.'"));
|
||||
НСтр("ru = 'Для продолжения установите расширение для работы с 1С:Предприятием.'"));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
+4
-1
@@ -35,7 +35,10 @@
|
||||
|
||||
Если ЗначениеЗаполнено(ДополнительныеДанныеПроверки) И ТипЗнч(ДополнительныеДанныеПроверки) = Тип("Структура") Тогда
|
||||
|
||||
Элементы.ДекорацияСертификат.Заголовок = ДополнительныеДанныеПроверки.ТекстОшибки;
|
||||
Элементы.ДекорацияСертификат.Заголовок = ?(ЗначениеЗаполнено(ДополнительныеДанныеПроверки.ТекстОшибки),
|
||||
ДополнительныеДанныеПроверки.ТекстОшибки,
|
||||
ДополнительныеДанныеПроверки.ДополнительныеСведения);
|
||||
|
||||
Если ЗначениеЗаполнено(ДополнительныеДанныеПроверки.Причина) Тогда
|
||||
Элементы.ДекорацияПричина.Заголовок = ДополнительныеДанныеПроверки.Причина;
|
||||
Элементы.ДекорацияПричина.Видимость = Истина;
|
||||
|
||||
+4
@@ -871,6 +871,10 @@
|
||||
<event>BeforeAddRow</event>
|
||||
<name>СписокПередНачаломДобавления</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnActivateRow</event>
|
||||
<name>СписокПриАктивизацииСтроки</name>
|
||||
</handlers>
|
||||
<searchStringAddition>
|
||||
<name>СписокСтрокаПоиска</name>
|
||||
<id>7</id>
|
||||
|
||||
+49
@@ -35,6 +35,13 @@
|
||||
|
||||
ГруппаПользователейПриИзмененииНаСервере();
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -87,6 +94,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СписокПриАктивизацииСтроки(Элемент)
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -109,6 +126,38 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ОбновитьКоманды()
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
+32
-19
@@ -714,7 +714,7 @@
|
||||
|
||||
Если СертификатОтозван Тогда
|
||||
Контекст.ОшибкаНаКлиенте.Вставить("ОписаниеОшибки",
|
||||
НСтр("ru = 'Сертификат помечен в программе как отозванный.
|
||||
НСтр("ru = 'Сертификат помечен в приложении как отозванный.
|
||||
|Выберите другой сертификат.'"));
|
||||
ДополнительныеДанныеОшибки = Новый Структура("ДополнительныеДанныеПроверокНаКлиенте", ОшибкаСертификатПомеченКакОтозванный());
|
||||
ОбработатьОшибку(Контекст.Оповещение, Контекст.ОшибкаНаКлиенте, Контекст.ОшибкаНаСервере,,ДополнительныеДанныеОшибки);
|
||||
@@ -741,26 +741,30 @@
|
||||
|
||||
Если ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра)
|
||||
И Не РезультатПроверкиУдостоверяющегоЦентра.Действует Тогда
|
||||
|
||||
ПодписаниеРазрешено = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
|
||||
Сертификат, "РазрешитьПодписание", Неопределено);
|
||||
|
||||
Если ПодписаниеРазрешено = Неопределено Тогда
|
||||
Оповещение = Новый ОписаниеОповещения("ПодписатьДанныеПослеОтветаНаВопросОбУЦ", ЭтотОбъект, Контекст);
|
||||
Если РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.РазрешитьПодписание Тогда
|
||||
ПодписаниеРазрешено = ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекЗагрузить(
|
||||
Сертификат, "РазрешитьПодписание", Неопределено);
|
||||
|
||||
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Предупреждение32;
|
||||
ПараметрыВопроса.Заголовок = НСтр("ru = 'Запрос разрешения на подпись'");
|
||||
ПараметрыВопроса.ТекстФлажка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Запомнить выбор для сертификата ""%1""'"), Сертификат);
|
||||
|
||||
Кнопки = Новый СписокЗначений;
|
||||
Кнопки.Добавить(Истина, НСтр("ru = 'Разрешить подписание'"));
|
||||
Кнопки.Добавить(Ложь, НСтр("ru = 'Отменить подписание'"));
|
||||
|
||||
ПредупреждениеОбОшибке = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ПредупреждениеОбОшибке.ТекстОшибки, Кнопки, ПараметрыВопроса);
|
||||
Возврат;
|
||||
Если ПодписаниеРазрешено = Неопределено Тогда
|
||||
Оповещение = Новый ОписаниеОповещения("ПодписатьДанныеПослеОтветаНаВопросОбУЦ", ЭтотОбъект, Контекст);
|
||||
|
||||
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||
ПараметрыВопроса.Картинка = БиблиотекаКартинок.ДиалогВосклицание;
|
||||
ПараметрыВопроса.Заголовок = НСтр("ru = 'Запрос разрешения на подпись'");
|
||||
ПараметрыВопроса.ТекстФлажка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Запомнить выбор для сертификата ""%1""'"), Сертификат);
|
||||
|
||||
Кнопки = Новый СписокЗначений;
|
||||
Кнопки.Добавить(Истина, НСтр("ru = 'Разрешить подписание'"));
|
||||
Кнопки.Добавить(Ложь, НСтр("ru = 'Отменить подписание'"));
|
||||
|
||||
ПредупреждениеОбОшибке = РезультатПроверкиУдостоверяющегоЦентра.Предупреждение; // см. ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредупреждениеПриПроверкеУдостоверяющегоЦентраСертификата
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Оповещение, ПредупреждениеОбОшибке.ТекстОшибки, Кнопки, ПараметрыВопроса);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ПодписаниеРазрешено = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ПодписатьДанныеПослеОтветаНаВопросОбУЦ(ПодписаниеРазрешено, Контекст);
|
||||
@@ -1025,7 +1029,15 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ОповеститьОбОкончанииСрокаДействия Тогда
|
||||
|
||||
ПараметрыОткрытияФормы = Новый Структура("Сертификат", Сертификат);
|
||||
Если РезультатПроверкиУдостоверяющегоЦентра <> Неопределено
|
||||
И РезультатПроверкиУдостоверяющегоЦентра.Действует
|
||||
И (ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки)
|
||||
Или ЗначениеЗаполнено(РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ДополнительныеСведения)) Тогда
|
||||
ПараметрыОткрытияФормы.Вставить("ДополнительныеДанныеПроверки", РезультатПроверкиУдостоверяющегоЦентра.Предупреждение);
|
||||
КонецЕсли;
|
||||
|
||||
ДействиеПриНажатии = Новый ОписаниеОповещения("ОткрытьФормуОповещенияОНеобходимостиЗаменыСертификата",
|
||||
ЭлектроннаяПодписьСлужебныйКлиент, ПараметрыОткрытияФормы);
|
||||
|
||||
@@ -1034,6 +1046,7 @@
|
||||
БиблиотекаКартинок.Предупреждение32, СтатусОповещенияПользователя.Важное,
|
||||
Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Истина);
|
||||
|
||||
|
||||
+247
-1
@@ -790,6 +790,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -855,6 +856,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -936,6 +938,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1001,6 +1004,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1273,6 +1277,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1338,6 +1343,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1419,6 +1425,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1484,6 +1491,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1750,6 +1758,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1815,6 +1824,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1896,6 +1906,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -1961,6 +1972,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2178,7 +2190,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<maxWidth>70</maxWidth>
|
||||
<height>1</height>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
@@ -2258,6 +2270,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2323,6 +2336,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2404,6 +2418,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2469,6 +2484,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2736,6 +2752,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2801,6 +2818,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2882,6 +2900,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2947,6 +2966,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -2959,6 +2979,43 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</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>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -3214,6 +3271,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -3279,6 +3337,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -3360,6 +3419,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -3425,6 +3485,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -3691,6 +3752,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -3756,6 +3818,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -3837,6 +3900,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -3902,6 +3966,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<maxWidth>70</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<textColor xsi:type="core:ColorRef">
|
||||
<color>Style.ПоясняющийТекст</color>
|
||||
@@ -5138,6 +5203,181 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПроверитьСертификатВЛокальномХранилищеКлиента</name>
|
||||
<id>33</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</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>
|
||||
<name>Проверить</name>
|
||||
<title>
|
||||
@@ -5191,6 +5431,12 @@
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>ТипПодписи</name>
|
||||
<valueType>
|
||||
<types>EnumRef.ТипыПодписиКриптографии</types>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
|
||||
+297
-29
@@ -61,6 +61,10 @@
|
||||
Параметры.Сертификат, Проверки, Параметры.ПараметрыДополнительныхПроверок,
|
||||
СтандартныеПроверки, ВводитьПароль);
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.ТипПодписи) Тогда
|
||||
ТипПодписи = Параметры.ТипПодписи;
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого Проверка Из Проверки Цикл
|
||||
|
||||
Группа = ГруппаФормыБезОтображения(
|
||||
@@ -114,7 +118,7 @@
|
||||
Элементы[Проверка + "ОшибкаСервер"].Видимость = Ложь;
|
||||
Элементы[Проверка + "РешениеСерверНадпись"].Видимость = Ложь;
|
||||
Элементы[Проверка + "Надпись"].Заголовок =
|
||||
СтандартныйЗаголовокЭлемента(Проверка + "Надпись");
|
||||
СтандартныйЗаголовокЭлемента(Проверка + "Надпись", ТипПодписи);
|
||||
|
||||
Если ПроверкиНаКлиенте <> Неопределено Тогда
|
||||
ВывестиРезультатПроверки(Проверка);
|
||||
@@ -234,7 +238,7 @@
|
||||
|
||||
ПараметрыПредупреждения = Новый Структура;
|
||||
ПараметрыПредупреждения.Вставить("ЗаголовокПредупреждения",
|
||||
СтандартныйЗаголовокЭлемента(Элемент.Имя));
|
||||
СтандартныйЗаголовокЭлемента(Элемент.Имя, ТипПодписи));
|
||||
ПараметрыПредупреждения.Вставить("ТекстОшибкиКлиент",
|
||||
ПроверкиНаКлиенте[ИмяОшибки]);
|
||||
ПараметрыПредупреждения.Вставить("ТекстОшибкиСервер",
|
||||
@@ -323,6 +327,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ДекорацияСертификатМеткиВремениОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ОткрытьСертификат(НавигационнаяСсылкаФорматированнойСтроки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -344,10 +356,33 @@
|
||||
// Продолжение процедуры Проверить.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьЗавершение(Неопределен, Контекст) Экспорт
|
||||
|
||||
|
||||
Элементы.ФормаПроверить.Доступность = Истина;
|
||||
Элементы.ФормаПроверить.Отображение = ОтображениеКнопки.Текст;
|
||||
|
||||
Если СертификатыМетокВремени.Количество() = 0 Тогда
|
||||
Элементы.ДекорацияСертификатМеткиВремени.Видимость = Ложь;
|
||||
Иначе
|
||||
Массив = Новый Массив;
|
||||
Для Каждого СертификатМеткиВремени Из СертификатыМетокВремени Цикл
|
||||
Если Не СертификатМеткиВремени.ПолученНаКлиенте Тогда
|
||||
Массив.Добавить(СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
НСтр("ru = 'Сертификат метки времени, полученной на сервере: <a href = %1>%2</a>.'"),
|
||||
СертификатМеткиВремени.АдресСертификата, СертификатМеткиВремени.Представление));
|
||||
ИначеЕсли Не СертификатМеткиВремени.ПолученНаСервере Тогда
|
||||
Массив.Добавить(СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
НСтр("ru = 'Сертификат метки времени, полученной на компьютере: <a href = %1>%2</a>.'"),
|
||||
СертификатМеткиВремени.АдресСертификата, СертификатМеткиВремени.Представление));
|
||||
Иначе
|
||||
Массив.Добавить(СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
НСтр("ru = 'Сертификат полученной метки времени: <a href = %1>%2</a>.'"),
|
||||
СертификатМеткиВремени.АдресСертификата, СертификатМеткиВремени.Представление));
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Элементы.ДекорацияСертификатМеткиВремени.Заголовок = Новый ФорматированнаяСтрока(Массив);
|
||||
Элементы.ДекорацияСертификатМеткиВремени.Видимость = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПроверкаПриВыборе Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -466,6 +501,8 @@
|
||||
ПроверкиНаСервере = Новый Структура;
|
||||
ДополнительныеДанныеПроверокНаКлиенте = Новый Структура;
|
||||
ДополнительныеДанныеПроверокНаСервере = Новый Структура;
|
||||
СертификатыМетокВремени.Очистить();
|
||||
Элементы.ДекорацияСертификатМеткиВремени.Видимость = Ложь;
|
||||
|
||||
// Очистка предыдущих результатов проверки.
|
||||
Если СтандартныеПроверки Тогда
|
||||
@@ -498,6 +535,50 @@
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьСертификатПослеПроверкиНаКлиенте(Результат, Контекст) Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(ПроверитьСертификатВЛокальномХранилищеКлиента) Тогда
|
||||
|
||||
ОшибкаПоКлассификатору = Новый Структура;
|
||||
ОшибкаПоКлассификатору.Вставить("ТекстОшибки", Элементы[ПроверитьСертификатВЛокальномХранилищеКлиента + "ОшибкаКлиентНадпись"].Заголовок);
|
||||
ОшибкаПоКлассификатору.Вставить("Причина", "");
|
||||
ОшибкаПоКлассификатору.Вставить("Решение", Элементы[ПроверитьСертификатВЛокальномХранилищеКлиента + "РешениеКлиентНадпись"].Заголовок);
|
||||
|
||||
ДанныеДляДополнения = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДанныеДляДополненияОшибкиИзКлассификатора(Неопределено);
|
||||
ДанныеДляДополнения.ДанныеСертификата = ПолучитьИзВременногоХранилища(АдресСертификата);
|
||||
|
||||
ПараметрыДополнения = Новый Структура("Результат, Контекст, Элемент",
|
||||
Результат, Контекст, ПроверитьСертификатВЛокальномХранилищеКлиента);
|
||||
|
||||
ПараметрыДополненияТекстаРешения = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыДополненияТекстаРешенияОшибкиКлассификатора();
|
||||
ПараметрыДополненияТекстаРешения.ПроверитьСертификатВЛокальномХранилищеКлиента = Истина;
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ДополнитьРешениеКлассификатораОшибокПодробностями(
|
||||
Новый ОписаниеОповещения("ПослеДополненияРешенияКлассификатораОшибок", ЭтотОбъект, ПараметрыДополнения),
|
||||
ОшибкаПоКлассификатору, ПараметрыДополненияТекстаРешения, ДанныеДляДополнения);
|
||||
ПроверитьСертификатВЛокальномХранилищеКлиента = "";
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ПроверитьСертификатПослеПроверкиНаКлиентеИДополнений(Результат, Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьСертификат.
|
||||
&НаКлиенте
|
||||
Процедура ПослеДополненияРешенияКлассификатораОшибок(ОшибкаПоКлассификатору, ПараметрыДополнения) Экспорт
|
||||
|
||||
Если Элементы[ПараметрыДополнения.Элемент + "РешениеКлиентНадпись"].Заголовок <> ОшибкаПоКлассификатору.Решение Тогда
|
||||
Элементы[ПараметрыДополнения.Элемент + "РешениеКлиентНадпись"].Заголовок = ОшибкаПоКлассификатору.Решение;
|
||||
КонецЕсли;
|
||||
|
||||
ПроверитьСертификатПослеПроверкиНаКлиентеИДополнений(ПараметрыДополнения.Результат, ПараметрыДополнения.Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПроверитьСертификат.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьСертификатПослеПроверкиНаКлиентеИДополнений(Результат, Контекст)
|
||||
|
||||
Если ЭтоВстроенныйКриптопровайдер Или ЭтоУчетнаяЗаписьСервиса Тогда
|
||||
|
||||
Если ОперацииНаСервере Тогда
|
||||
@@ -551,7 +632,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -598,7 +679,7 @@
|
||||
Если СтандартныеПроверки Тогда
|
||||
ЭлектроннаяПодписьКлиент.УстановитьРасширение(Ложь, Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеПодключенияРасширенияРаботыСКриптографией", ЭтотОбъект, Контекст),
|
||||
НСтр("ru = 'Для продолжения установите расширение для работы с криптографией.'"));
|
||||
НСтр("ru = 'Для продолжения установите расширение для работы с 1С:Предприятием.'"));
|
||||
Иначе
|
||||
Контекст.Вставить("МенеджерКриптографии", Неопределено);
|
||||
ПроверитьНаСторонеКлиентаДополнительныеПроверки(Контекст);
|
||||
@@ -932,13 +1013,60 @@
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОшибки = Ждать ДополнительнаяПроверкаНаВозможностьПодписания(Контекст.СертификатКриптографии, Ложь);
|
||||
|
||||
|
||||
// Подписание.
|
||||
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
Контекст.МенеджерКриптографии.НачатьПодписывание(Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеПодписания", ЭтотОбъект, Контекст,
|
||||
"ПроверитьНаСторонеКлиентаПослеОшибкиПодписания", ЭтотОбъект),
|
||||
Контекст.ДанныеСертификата, Контекст.СертификатКриптографии);
|
||||
|
||||
Попытка
|
||||
ДанныеПодписи = Ждать Контекст.МенеджерКриптографии.ПодписатьАсинх(Контекст.ДанныеСертификата, Контекст.СертификатКриптографии);
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||
Исключение
|
||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
||||
Возврат;
|
||||
Иначе
|
||||
ПарольПринят = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES")
|
||||
И ТипПодписи <> ПредопределенноеЗначение("Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||
|
||||
Попытка
|
||||
НастройкиПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.НастройкиСозданияПодписи(ТипПодписи,
|
||||
ЭлектроннаяПодписьКлиент.ОбщиеНастройки().АдресаСерверовМетокВремени);
|
||||
Контекст.МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени;
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||
Исключение
|
||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
ДанныеПодписи = Ждать Контекст.МенеджерКриптографии.ПодписатьАсинх(Контекст.ДанныеСертификата, Контекст.СертификатКриптографии,
|
||||
НастройкиПодписи.ТипПодписи);
|
||||
Исключение
|
||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ПроверитьНаСторонеКлиентаПослеПодписания(ДанныеПодписи, Контекст);
|
||||
|
||||
Иначе
|
||||
ПроверитьНаСторонеКлиентаПослеПодписания(Null, Контекст);
|
||||
КонецЕсли;
|
||||
@@ -1009,6 +1137,7 @@
|
||||
|
||||
// Проверка подписи.
|
||||
Если ДанныеПодписи <> Null И ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
Контекст.Вставить("ДанныеПодписи", ДанныеПодписи);
|
||||
Контекст.МенеджерКриптографии.НачатьПроверкуПодписи(Новый ОписаниеОповещения(
|
||||
"ПроверитьНаСторонеКлиентаПослеПроверкиПодписи", ЭтотОбъект, Контекст,
|
||||
"ПроверитьНаСторонеКлиентаПослеОшибкиПроверкиПодписи", ЭтотОбъект),
|
||||
@@ -1068,7 +1197,7 @@
|
||||
|
||||
// Продолжение процедуры ПроверитьНаСторонеКлиента.
|
||||
&НаКлиенте
|
||||
Процедура ПроверитьНаСторонеКлиентаПослеПроверкиПодписи(Сертификат, Контекст) Экспорт
|
||||
Асинх Процедура ПроверитьНаСторонеКлиентаПослеПроверкиПодписи(Сертификат, Контекст) Экспорт
|
||||
|
||||
Если Сертификат <> Null Тогда
|
||||
Если ТипЗнч(Сертификат) = Тип("Строка") Тогда
|
||||
@@ -1076,7 +1205,47 @@
|
||||
Иначе
|
||||
ОписаниеОшибки = "";
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(ТипПодписи) И ТипПодписи
|
||||
<> ПредопределенноеЗначение(
|
||||
"Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") И ТипПодписи <> ПредопределенноеЗначение(
|
||||
"Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||
|
||||
Попытка
|
||||
СвойстваПодписи = Ждать ЭлектроннаяПодписьСлужебныйКлиент.СвойстваПодписиЧтениеМенеджеромКриптографии(
|
||||
Контекст.ДанныеПодписи, Контекст.МенеджерКриптографии, Истина);
|
||||
Исключение
|
||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(СвойстваПодписи.ТекстОшибки) Тогда
|
||||
ОписаниеОшибки = СвойстваПодписи.ТекстОшибки;
|
||||
ИначеЕсли Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
ДанныеСертификатаМеткиВремени = СвойстваПодписи.Сертификаты[СвойстваПодписи.Сертификаты.ВГраница()];
|
||||
СертификатМеткиВремени = Новый СертификатКриптографии();
|
||||
Ждать СертификатМеткиВремени.ИнициализироватьАсинх(ДанныеСертификатаМеткиВремени);
|
||||
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||
СертификатМеткиВремени, ЭлектроннаяПодписьСлужебныйКлиент.ДобавкаВремени());
|
||||
|
||||
Найдено = СертификатыМетокВремени.НайтиСтроки(Новый Структура("Отпечаток",
|
||||
СвойстваСертификата.Отпечаток));
|
||||
|
||||
Если Найдено.Количество() = 0 Тогда
|
||||
НоваяСтрока = СертификатыМетокВремени.Добавить();
|
||||
НоваяСтрока.АдресСертификата = ПоместитьВоВременноеХранилище(ДанныеСертификатаМеткиВремени,
|
||||
УникальныйИдентификатор);
|
||||
НоваяСтрока.Отпечаток = СвойстваСертификата.Отпечаток;
|
||||
НоваяСтрока.ПолученНаКлиенте = Истина;
|
||||
НоваяСтрока.Представление = СвойстваСертификата.Представление;
|
||||
|
||||
Иначе
|
||||
Найдено[0].ПолученНаКлиенте = Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Ложь, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.МенеджерКриптографии.НачатьШифрование(Новый ОписаниеОповещения(
|
||||
@@ -1751,6 +1920,29 @@
|
||||
КонецПопытки;
|
||||
|
||||
ПарольПринят = Не ЗначениеЗаполнено(ОписаниеОшибки);
|
||||
|
||||
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
Возврат ДанныеПодписи;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение(
|
||||
"Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") И ТипПодписи <> ПредопределенноеЗначение(
|
||||
"Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||
|
||||
Попытка
|
||||
НастройкиПодписи = ЭлектроннаяПодписьСлужебныйКлиентСервер.НастройкиСозданияПодписи(ТипПодписи,
|
||||
ЭлектроннаяПодпись.ОбщиеНастройки().АдресаСерверовМетокВремени);
|
||||
МенеджерКриптографии.АдресаСерверовМетокВремени = НастройкиПодписи.АдресаСерверовМетокВремени;
|
||||
ДанныеПодписи = МенеджерКриптографии.Подписать(ДанныеСертификата, СертификатКриптографии,
|
||||
НастройкиПодписи.ТипПодписи);
|
||||
ЭлектроннаяПодписьСлужебныйКлиентСервер.ПустыеДанныеПодписи(ДанныеПодписи, ОписаниеОшибки);
|
||||
Исключение
|
||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьЭлемент(ЭтотОбъект, "Подписание", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
Возврат ДанныеПодписи;
|
||||
|
||||
@@ -1758,13 +1950,49 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ПроверитьПодписьНаСервере(МенеджерКриптографии, ДанныеСертификата, ДанныеПодписи)
|
||||
|
||||
|
||||
ОписаниеОшибки = "";
|
||||
Попытка
|
||||
МенеджерКриптографии.ПроверитьПодпись(ДанныеСертификата, ДанныеПодписи);
|
||||
Исключение
|
||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(ТипПодписи) И ТипПодписи <> ПредопределенноеЗначение(
|
||||
"Перечисление.ТипыПодписиКриптографии.БазоваяCAdESBES") И ТипПодписи <> ПредопределенноеЗначение(
|
||||
"Перечисление.ТипыПодписиКриптографии.ОбычнаяCMS") Тогда
|
||||
|
||||
Попытка
|
||||
СвойстваПодписи = ЭлектроннаяПодписьСлужебный.СвойстваПодписиЧтениеМенеджеромКриптографии(
|
||||
ДанныеПодписи, МенеджерКриптографии, Истина);
|
||||
Исключение
|
||||
ОписаниеОшибки = ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
КонецПопытки;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ОписаниеОшибки) И ЗначениеЗаполнено(СвойстваПодписи.ТекстОшибки) Тогда
|
||||
ОписаниеОшибки = СвойстваПодписи.ТекстОшибки;
|
||||
ИначеЕсли Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
|
||||
ДанныеСертификатаМеткиВремени = СвойстваПодписи.Сертификаты[СвойстваПодписи.Сертификаты.ВГраница()];
|
||||
СертификатМеткиВремени = Новый СертификатКриптографии(ДанныеСертификатаМеткиВремени);
|
||||
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||
СертификатМеткиВремени, ЭлектроннаяПодписьСлужебный.ДобавкаВремени());
|
||||
|
||||
Найдено = СертификатыМетокВремени.НайтиСтроки(Новый Структура("Отпечаток", СвойстваСертификата.Отпечаток));
|
||||
|
||||
Если Найдено.Количество() = 0 Тогда
|
||||
НоваяСтрока = СертификатыМетокВремени.Добавить();
|
||||
НоваяСтрока.АдресСертификата = ПоместитьВоВременноеХранилище(ДанныеСертификатаМеткиВремени,
|
||||
УникальныйИдентификатор);
|
||||
НоваяСтрока.Отпечаток = СвойстваСертификата.Отпечаток;
|
||||
НоваяСтрока.ПолученНаСервере = Истина;
|
||||
|
||||
Иначе
|
||||
Найдено[0].ПолученНаСервере = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьЭлемент(ЭтотОбъект, "ПроверкаПодписи", Истина, ОписаниеОшибки, Истина, ОбъединятьРезультаты);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -1994,6 +2222,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Не РезультатПроверки Тогда
|
||||
|
||||
ГруппаОшибка = Форма.Элементы[НачалоЭлемента + ?(НаСервере, "ОшибкаСервер", "ОшибкаКлиент")];
|
||||
ГруппаОшибка.Видимость = Истина;
|
||||
ЭлементКартинка.Картинка = ?(ЭтоОшибка,
|
||||
@@ -2005,21 +2234,50 @@
|
||||
|
||||
ЭлементНадписьОшибка = Форма.Элементы[НачалоЭлемента + ?(НаСервере, "ОшибкаСервер", "ОшибкаКлиент") + "Надпись"]; // ДекорацияФормы, РасширениеДекорацииФормыДляНадписи
|
||||
ЭлементНадписьОшибка.Заголовок = ОписаниеОшибки;
|
||||
|
||||
|
||||
Если ПредупреждениеПослеПроверкиУЦ = Неопределено Тогда
|
||||
ОписаниеИзвестнойОшибки = ОшибкаПоКлассификатору(ОписаниеОшибки, НаСервере);
|
||||
ЭтоИзвестнаяОшибка = ОписаниеИзвестнойОшибки <> Неопределено;
|
||||
|
||||
|
||||
ИмяНадписиРешение = НачалоЭлемента + ?(НаСервере, "РешениеСерверНадпись", "РешениеКлиентНадпись");
|
||||
Форма.Элементы[ИмяНадписиРешение].Видимость = ЭтоИзвестнаяОшибка;
|
||||
Если ЭтоИзвестнаяОшибка Тогда
|
||||
Форма.Элементы[ИмяНадписиРешение].Заголовок = ОписаниеИзвестнойОшибки.Решение;
|
||||
|
||||
Если НачалоЭлемента = "Расшифровка" И ЭлементНадписьОшибка.Заголовок = Форма.Элементы["Подписание" + ?(
|
||||
НаСервере, "ОшибкаСервер", "ОшибкаКлиент") + "Надпись"].Заголовок Тогда
|
||||
|
||||
Форма.Элементы[ИмяНадписиРешение].Видимость = Форма.Элементы["Подписание" + ?(НаСервере,
|
||||
"РешениеСерверНадпись", "РешениеКлиентНадпись")].Видимость;
|
||||
Форма.Элементы[ИмяНадписиРешение].Заголовок = НСтр("ru = 'См. пункт Подписание данных.'");
|
||||
|
||||
Иначе
|
||||
ОписаниеИзвестнойОшибки = ОшибкаПоКлассификатору(ОписаниеОшибки, НаСервере, НачалоЭлемента = "ПроверкаПодписи");
|
||||
ЭтоИзвестнаяОшибка = ОписаниеИзвестнойОшибки <> Неопределено;
|
||||
|
||||
Форма.Элементы[ИмяНадписиРешение].Видимость = ЭтоИзвестнаяОшибка;
|
||||
Если ЭтоИзвестнаяОшибка Тогда
|
||||
|
||||
Если ЗначениеЗаполнено(Форма.Сертификат) И ЗначениеЗаполнено(
|
||||
ОписаниеИзвестнойОшибки.ДействияДляУстранения) Тогда
|
||||
ДанныеДляДополнения = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДанныеДляДополненияОшибкиИзКлассификатора(
|
||||
Новый Структура("Сертификат, ДанныеСертификата", Форма.Сертификат, Форма.АдресСертификата));
|
||||
|
||||
ПараметрыДополненияТекстаРешенияОшибкиКлассификатора = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыДополненияТекстаРешенияОшибкиКлассификатора();
|
||||
Дополнение = ЭлектроннаяПодписьСлужебныйВызовСервера.ДополнитьРешениеКлассификатораОшибокПодробностями(
|
||||
ОписаниеИзвестнойОшибки, ДанныеДляДополнения,
|
||||
ПараметрыДополненияТекстаРешенияОшибкиКлассификатора, ?(НаСервере, "Сервер", "Клиент"));
|
||||
ОписаниеИзвестнойОшибки = Дополнение.ОшибкаПоКлассификатору;
|
||||
ПараметрыДополненияТекстаРешенияОшибкиКлассификатора = Дополнение.ПараметрыДополненияТекстаРешенияОшибкиКлассификатораНаКлиенте;
|
||||
Если ПараметрыДополненияТекстаРешенияОшибкиКлассификатора.ПроверитьСертификатВЛокальномХранилищеКлиента Тогда
|
||||
Форма.ПроверитьСертификатВЛокальномХранилищеКлиента = НачалоЭлемента;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
Форма.Элементы[ИмяНадписиРешение].Заголовок = ОписаниеИзвестнойОшибки.Решение;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ИмяНадписиРешение = НачалоЭлемента + ?(НаСервере, "РешениеСерверНадпись", "РешениеКлиентНадпись");
|
||||
Форма.Элементы[ИмяНадписиРешение].Видимость = Истина;
|
||||
Форма.Элементы[ИмяНадписиРешение].Заголовок = ПредупреждениеПослеПроверкиУЦ.Решение;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
@@ -2041,7 +2299,7 @@
|
||||
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка не выполнялась.'");
|
||||
ЭлементНадпись.Гиперссылка = Ложь;
|
||||
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(
|
||||
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
|
||||
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя, Форма.ТипПодписи);
|
||||
|
||||
ИначеЕсли ЗначениеПроверки = Неопределено
|
||||
И ЗначениеПроверкиВторогоКонтекста <> Неопределено Тогда
|
||||
@@ -2060,7 +2318,7 @@
|
||||
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка выполнена успешно.'");
|
||||
ЭлементНадпись.Гиперссылка = Ложь;
|
||||
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(
|
||||
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
|
||||
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя, Форма.ТипПодписи);
|
||||
Иначе
|
||||
РезультатПроверки = ?(ОбъединятьРезультаты = "ОбъединятьПоИ",
|
||||
ЗначениеПроверки И ЗначениеПроверкиВторогоКонтекста,
|
||||
@@ -2073,7 +2331,7 @@
|
||||
ЭлементКартинка.Подсказка = НСтр("ru = 'Проверка выполнена успешно.'");
|
||||
ЭлементНадпись.Гиперссылка = Ложь;
|
||||
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(
|
||||
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
|
||||
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя, Форма.ТипПодписи);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
@@ -2092,7 +2350,7 @@
|
||||
ЭлементРешение.Видимость = Ложь;
|
||||
ЭлементНадпись.Гиперссылка = Ложь;
|
||||
ЭлементНадпись.Заголовок = ЗаголовокЭлемента(
|
||||
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя);
|
||||
Форма.ДополнительныеПроверки, ЭлементНадпись.Имя, Форма.ТипПодписи);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -2104,9 +2362,9 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Функция ЗаголовокЭлемента(ДополнительныеПроверки, ИмяЭлемента)
|
||||
Функция ЗаголовокЭлемента(ДополнительныеПроверки, ИмяЭлемента, ТипПодписи)
|
||||
|
||||
ЗаголовокЭлемента = СтандартныйЗаголовокЭлемента(ИмяЭлемента);
|
||||
ЗаголовокЭлемента = СтандартныйЗаголовокЭлемента(ИмяЭлемента, ТипПодписи);
|
||||
Если Не ПустаяСтрока(ЗаголовокЭлемента) Тогда
|
||||
Возврат ЗаголовокЭлемента;
|
||||
КонецЕсли;
|
||||
@@ -2124,7 +2382,7 @@
|
||||
КонецФункции
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Функция СтандартныйЗаголовокЭлемента(ИмяЭлемента)
|
||||
Функция СтандартныйЗаголовокЭлемента(ИмяЭлемента, ТипПодписи)
|
||||
|
||||
Если ИмяЭлемента = "ЗаконныйСертификатНадпись" Тогда
|
||||
Возврат НСтр("ru = 'Соответствие законодательству Российской Федерации'");
|
||||
@@ -2139,7 +2397,17 @@
|
||||
Возврат НСтр("ru = 'Наличие программы для подписания и расшифровки'");
|
||||
|
||||
ИначеЕсли ИмяЭлемента = "ПодписаниеНадпись" Тогда
|
||||
Возврат НСтр("ru = 'Подписание данных'");
|
||||
|
||||
Если ЗначениеЗаполнено(ТипПодписи) Тогда
|
||||
|
||||
ТипПодписиСтрока = Строка(ТипПодписи);
|
||||
ТипПодписиСтрока = НРег(Лев(ТипПодписиСтрока, 1)) + Сред(ТипПодписиСтрока, 2);
|
||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Подписание данных типом подписи - %1'"), ТипПодписиСтрока);
|
||||
|
||||
Иначе
|
||||
Возврат НСтр("ru = 'Подписание данных'");
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ИмяЭлемента = "ПроверкаПодписиНадпись" Тогда
|
||||
Возврат НСтр("ru = 'Проверка созданной подписи'");
|
||||
@@ -2186,9 +2454,9 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ОшибкаПоКлассификатору(ОписаниеОшибки, ОшибкаНаСервере)
|
||||
Функция ОшибкаПоКлассификатору(ОписаниеОшибки, ОшибкаНаСервере, ОшибкаПроверкиПодписи)
|
||||
|
||||
Возврат ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ОписаниеОшибки, ОшибкаНаСервере);
|
||||
Возврат ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ОписаниеОшибки, ОшибкаНаСервере, ОшибкаПроверкиПодписи);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
+37
-13
@@ -1795,17 +1795,48 @@
|
||||
<commandSource>Form</commandSource>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСертификатОтозван</name>
|
||||
<id>63</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ФормаГруппаОтозван</name>
|
||||
<id>332</id>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСертификатОтозван</name>
|
||||
<id>63</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСертификатОтозванРасширеннаяПодсказка</name>
|
||||
<id>94</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.СертификатОтозван</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>PictureAndText</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Форма группа отозван</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСертификатОтозванРасширеннаяПодсказка</name>
|
||||
<id>94</id>
|
||||
<name>ФормаГруппаОтозванРасширеннаяПодсказка</name>
|
||||
<id>333</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -1813,14 +1844,7 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.СертификатОтозван</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>PictureAndText</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаПоказатьАвтозаполняемыеРеквизиты</name>
|
||||
|
||||
+71
-2
@@ -56,6 +56,13 @@
|
||||
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "НестандартныйСертификат");
|
||||
КонецЕсли;
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -74,6 +81,13 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
ОформитьСписокПользователей();
|
||||
|
||||
ПодключитьОбработчикОжидания("ОбработчикОжиданияПоказатьСостояниеСертификата", 0.1, Истина);
|
||||
@@ -83,6 +97,13 @@
|
||||
&НаСервере
|
||||
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
Если АдресСертификата <> Неопределено Тогда
|
||||
ПриСозданииНаСервереПриЧтенииНаСервере();
|
||||
КонецЕсли;
|
||||
@@ -99,6 +120,13 @@
|
||||
&НаКлиенте
|
||||
Процедура ПослеЗаписи(ПараметрыЗаписи)
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
ДополнительныеПараметры = ЭлектроннаяПодписьСлужебныйКлиент.ПараметрыОповещенияПриЗаписиСертификата();
|
||||
Если ПараметрыЗаписи.ЭтоНовый Тогда
|
||||
ДополнительныеПараметры.ЭтоНовый = Истина;
|
||||
@@ -331,7 +359,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ЭлектроннаяПодписьКлиент.ПроверитьСертификатСправочника(Объект.Ссылка,
|
||||
Новый Структура("БезПодтверждения", Истина));
|
||||
Новый Структура("БезПодтверждения, ТипПодписи", Истина, ТипПодписиПоУмолчанию()));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -408,6 +436,37 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ОбновитьКоманды()
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -672,7 +731,9 @@
|
||||
КонецЕсли;
|
||||
Элементы.Предупреждение.Заголовок = Новый ФорматированнаяСтрока(МассивСтрок);
|
||||
|
||||
Если ЭлектроннаяПодпись.ДобавлениеИзменениеЭлектронныхПодписей() Тогда
|
||||
Если ДанныеПредупреждения.РазрешитьПодписание
|
||||
И ЭлектроннаяПодпись.ДобавлениеИзменениеЭлектронныхПодписей() Тогда
|
||||
|
||||
НастройкаРазрешитьПодписание = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||
Объект.Ссылка, "РазрешитьПодписание", Неопределено);
|
||||
Элементы.ПодписаниеРазрешено.Видимость = Истина;
|
||||
@@ -872,6 +933,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Новый СписокЗначений;
|
||||
Результат.Добавить(Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка(), НСтр("ru = 'По умолчанию'"));
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
@@ -961,4 +1023,11 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ТипПодписиПоУмолчанию()
|
||||
|
||||
Возврат Константы.ТипПодписиКриптографииПоУмолчанию.Получить();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+22
-8
@@ -1224,14 +1224,28 @@
|
||||
КонецЕсли;
|
||||
|
||||
ВсеСертификаты = Новый Массив;
|
||||
ВсеСертификаты.Добавить(Сертификат);
|
||||
Для Каждого Строка Из СертификатыШифрования Цикл
|
||||
Если Не ЗначениеЗаполнено(Строка.Сертификат)
|
||||
Или ВсеСертификаты.Найти(Строка.Сертификат) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ВсеСертификаты.Добавить(Строка.Сертификат);
|
||||
КонецЦикла;
|
||||
Если ЗначениеЗаполнено(Сертификат) Тогда
|
||||
ВсеСертификаты.Добавить(Сертификат);
|
||||
КонецЕсли;
|
||||
|
||||
Если СертификатыШифрования.Количество() > 0 Тогда
|
||||
Для Каждого Строка Из СертификатыШифрования Цикл
|
||||
Если Не ЗначениеЗаполнено(Строка.Сертификат)
|
||||
Или ВсеСертификаты.Найти(Строка.Сертификат) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ВсеСертификаты.Добавить(Строка.Сертификат);
|
||||
КонецЦикла;
|
||||
ИначеЕсли НаборСертификатов.Количество() > 0 Тогда
|
||||
Для Каждого Строка Из НаборСертификатов Цикл
|
||||
Если Не ЗначениеЗаполнено(Строка.АдресДанных)
|
||||
Или ВсеСертификаты.Найти(Строка.АдресДанных) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ВсеСертификаты.Добавить(Строка.АдресДанных);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметры = Новый Структура("Сертификат", ВсеСертификаты);
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
|
||||
|
||||
@@ -56,6 +56,56 @@
|
||||
|
||||
// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
|
||||
|
||||
// СтандартныеПодсистемы.ВариантыОтчетов
|
||||
|
||||
// Определяет список команд отчетов.
|
||||
//
|
||||
// Параметры:
|
||||
// КомандыОтчетов - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
|
||||
// Параметры - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры
|
||||
//
|
||||
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
|
||||
|
||||
Если Не ПравоДоступа("Просмотр", Метаданные.Отчеты.СертификатыЭлектроннойПодписи) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Параметры.ИмяФормы = "ОбщаяФорма.НастройкиЭлектроннойПодписиИШифрования" Тогда
|
||||
Команда = КомандыОтчетов.Добавить();
|
||||
Команда.КлючВарианта = "СертификатыЭлектроннойПодписи";
|
||||
Команда.Представление = НСтр("ru = 'Сертификаты электронной подписи'");
|
||||
Команда.Идентификатор = "СертификатыЭлектроннойПодписи";
|
||||
Команда.Менеджер = "Отчет.СертификатыЭлектроннойПодписи";
|
||||
|
||||
Команда = КомандыОтчетов.Добавить();
|
||||
Команда.КлючВарианта = "ЗаканчиваетсяСрокДействия";
|
||||
Команда.Представление = НСтр("ru = 'Сертификаты, у которых заканчивается срок действия'");
|
||||
Команда.Идентификатор = "ЗаканчиваетсяСрокДействия";
|
||||
Команда.Менеджер = "Отчет.СертификатыЭлектроннойПодписи";
|
||||
|
||||
Команда = КомандыОтчетов.Добавить();
|
||||
Команда.КлючВарианта = "СертификатыСотрудников";
|
||||
Команда.Представление = НСтр("ru = 'Сертификаты сотрудников'");
|
||||
Команда.Идентификатор = "СертификатыСотрудников";
|
||||
Команда.Менеджер = "Отчет.СертификатыЭлектроннойПодписи";
|
||||
|
||||
Команда = КомандыОтчетов.Добавить();
|
||||
Команда.КлючВарианта = "ТребуетсяВыпускСертификатаФЛ";
|
||||
Команда.Представление = НСтр("ru = 'Требуется выпуск сертификата физического лица'");
|
||||
Команда.Идентификатор = "ТребуетсяВыпускСертификатаФЛ";
|
||||
Команда.Менеджер = "Отчет.СертификатыЭлектроннойПодписи";
|
||||
|
||||
Команда = КомандыОтчетов.Добавить();
|
||||
Команда.КлючВарианта = "ТребуетсяМЧД";
|
||||
Команда.Представление = НСтр("ru = 'Сертификаты, для которых требуется МЧД'");
|
||||
Команда.Идентификатор = "ТребуетсяМЧД";
|
||||
Команда.Менеджер = "Отчет.СертификатыЭлектроннойПодписи";
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ВариантыОтчетов
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -163,7 +213,7 @@
|
||||
ОбработкаЗаявлениеНаВыпускНовогоКвалифицированногоСертификата =
|
||||
ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(
|
||||
"Обработка.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
@@ -235,17 +285,46 @@
|
||||
Исключение
|
||||
Сертификат = Неопределено;
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
Если Сертификат <> Неопределено Тогда
|
||||
СвойстваСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.СвойстваСертификата(
|
||||
Сертификат, ЭлектроннаяПодписьСлужебный.ДобавкаВремени(), ДвоичныеДанныеСертификата);
|
||||
Если СертификатОбъект.ДействителенДо <> СвойстваСертификата.ДействителенДо Тогда
|
||||
СтрокаПоиска = Формат(СертификатОбъект.ДействителенДо, "ДФ=MM.yyyy");
|
||||
СтрокаЗамены = Формат(СвойстваСертификата.ДействителенДо, "ДФ=MM.yyyy");
|
||||
СертификатОбъект.Наименование = СтрЗаменить(СертификатОбъект.Наименование, СтрокаПоиска, СтрокаЗамены);
|
||||
СертификатОбъект.Наименование = СтрЗаменить(СертификатОбъект.Наименование, СтрокаПоиска,
|
||||
СтрокаЗамены);
|
||||
СертификатОбъект.ДействителенДо = СвойстваСертификата.ДействителенДо;
|
||||
ЗаписатьОбъект = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СертификатОбъект.Программа) И ТипЗнч(СертификатОбъект.Программа) = Тип(
|
||||
"СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования") Тогда
|
||||
|
||||
АлгоритмСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(
|
||||
ДвоичныеДанныеСертификата, Ложь, Истина);
|
||||
Если ЭлектроннаяПодписьСлужебныйКлиентСервер.ЭтоСертификатГОСТ(АлгоритмСертификата) Тогда
|
||||
|
||||
ОписаниеПрограммы = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
|
||||
СертификатОбъект.Программа,
|
||||
"ЭтоВстроенныйКриптопровайдер, АлгоритмПодписи, АлгоритмХеширования");
|
||||
|
||||
Если Не ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер Тогда
|
||||
|
||||
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСоответствуетСертификату(
|
||||
"", АлгоритмСертификата, ОписаниеПрограммы.АлгоритмПодписи, ОписаниеПрограммы.АлгоритмХеширования);
|
||||
|
||||
Если Результат <> Истина Тогда
|
||||
|
||||
СертификатОбъект.Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
||||
ЗаписатьОбъект = Истина;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -28,12 +28,38 @@
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Программа = Неопределено Тогда
|
||||
Программа = Справочники.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка();
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(Программа) И ТипЗнч(Программа) = Тип(
|
||||
"СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования") И ЗначениеЗаполнено(Отпечаток) Тогда
|
||||
|
||||
ОписаниеПрограммы = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Программа,
|
||||
"ЭтоВстроенныйКриптопровайдер, АлгоритмПодписи, АлгоритмХеширования");
|
||||
|
||||
Если Не ОписаниеПрограммы.ЭтоВстроенныйКриптопровайдер Тогда
|
||||
ДвоичныеДанные = ДанныеСертификата.Получить();
|
||||
Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда
|
||||
|
||||
АлгоритмСертификата = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСертификата(
|
||||
ДвоичныеДанные, Ложь, Истина);
|
||||
|
||||
Результат = ЭлектроннаяПодписьСлужебныйКлиентСервер.АлгоритмПодписиСоответствуетСертификату(
|
||||
Наименование, АлгоритмСертификата, ОписаниеПрограммы.АлгоритмПодписи,
|
||||
ОписаниеПрограммы.АлгоритмХеширования);
|
||||
|
||||
Если Результат <> Истина Тогда
|
||||
|
||||
ВызватьИсключение Результат;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1223,7 +1223,20 @@
|
||||
|
||||
Функция РеквизитыТребующиеВводаПароляДляИзменения() Экспорт
|
||||
|
||||
Возврат "ИспользоватьДляОтправки,ИспользоватьДляПолучения,СерверВходящейПочты,СерверИсходящейПочты,ВладелецУчетнойЗаписи,ИспользоватьЗащищенноеСоединениеДляВходящейПочты,ИспользоватьЗащищенноеСоединениеДляИсходящейПочты,Пользователь,ПользовательSMTP";
|
||||
Реквизиты = Новый Массив;
|
||||
Реквизиты.Добавить("ИспользоватьДляОтправки");
|
||||
Реквизиты.Добавить("ИспользоватьДляПолучения");
|
||||
Реквизиты.Добавить("СерверВходящейПочты");
|
||||
Реквизиты.Добавить("СерверИсходящейПочты");
|
||||
Реквизиты.Добавить("ВладелецУчетнойЗаписи");
|
||||
Реквизиты.Добавить("ИспользоватьЗащищенноеСоединениеДляВходящейПочты");
|
||||
Реквизиты.Добавить("ИспользоватьЗащищенноеСоединениеДляИсходящейПочты");
|
||||
Реквизиты.Добавить("Пользователь");
|
||||
Реквизиты.Добавить("ПользовательSMTP");
|
||||
Реквизиты.Добавить("ПриОтправкеПисемТребуетсяАвторизация");
|
||||
Реквизиты.Добавить("ИмяПользователя");
|
||||
|
||||
Возврат СтрСоединить(Реквизиты, ",");
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -268,7 +268,7 @@
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Результат, ПараметрыСообщения, Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
Если Подписать Тогда
|
||||
Если Подписать И Результат.Вложения.Количество() > 0 Тогда
|
||||
ПараметрыОтправки.ДополнительныеПараметры.НастройкиСохранения.УпаковатьВАрхив = УпаковатьВАрхив;
|
||||
ПодписатьФайлы(Результат, ПараметрыОтправки);
|
||||
Иначе
|
||||
|
||||
+1
-1
@@ -286,7 +286,7 @@
|
||||
СвойстваОбъекта = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДополнительныйРеквизит.Свойство, "Заголовок, ТипЗначения", , ТекущийЯзык().КодЯзыка);
|
||||
СтрокаРеквизит = РеквизитыОбъекта.Добавить();
|
||||
СтрокаРеквизит.Реквизит = ДополнительныйРеквизит.Свойство;
|
||||
СтрокаРеквизит.Представление = СвойстваОбъекта.Заголовок;
|
||||
СтрокаРеквизит.Представление = Строка(ДополнительныйРеквизит.Свойство);
|
||||
СтрокаРеквизит.НомерКартинки = 2;
|
||||
СтрокаРеквизит.ТипЗначения = СвойстваОбъекта.ТипЗначения;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -606,6 +606,10 @@
|
||||
<metadata>InformationRegister.СообщенияОбменаДаннымиОбластейДанных</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.ОбновлениеКлассификаторовМЧД</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.СборИОтправкаСтатистики</metadata>
|
||||
<use>DontUse</use>
|
||||
|
||||
@@ -537,6 +537,37 @@
|
||||
</picture>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ПодменюОтчеты</name>
|
||||
<id>478</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Отчеты</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ПодменюОтчетыРасширеннаяПодсказка</name>
|
||||
<id>479</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Popup</type>
|
||||
<extInfo xsi:type="form:PopupGroupExtInfo">
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.Отчеты</picture>
|
||||
</picture>
|
||||
<representation>PictureAndText</representation>
|
||||
<importance>Normal</importance>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>СертификатыСтандартныеКоманды</name>
|
||||
<id>98</id>
|
||||
@@ -4104,6 +4135,17 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПараметрыПодключаемыхКоманд</name>
|
||||
<id>5</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Обновить</name>
|
||||
<title>
|
||||
@@ -4160,7 +4202,7 @@
|
||||
<name>УстановитьРасширение</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Установить расширение для работы с криптографией</value>
|
||||
<value>Установить расширение для работы с 1С:Предприятием</value>
|
||||
</title>
|
||||
<id>2</id>
|
||||
<toolTip>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<!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> раздела <strong>Администрирование - Общие настройки</strong>.</p>
|
||||
<p>Для электронной подписи и шифрования требуется установить специальную стороннюю программу (криптопровайдер).</p>
|
||||
<p>Для того чтобы подписывать данные, нужно включить флажок <strong>Электронная подпись</strong>, а для шифрования нужно включить флажок <strong>Шифрование</strong> в разделе <strong>Администрирование - Общие настройки</strong>. После этого становятся доступными соответствующие команды в приложении.</p>
|
||||
<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для установки подписи необходимо иметь сертификат ключа электронной подписи. Сертификат можно получить в удостоверяющем центре. Например, в удостоверяющем центре фирмы 1С <a href="http://ca.1c.ru/">http://ca.1c.ru/</a>. Только удостоверяющий центр может выдать юридически значимый (квалифицированный сертификат).</p>
|
||||
<p>Настройка параметров для использования средств электронной подписи и шифрования (криптографии). </p>
|
||||
<p>Открывается по команде <strong>Настройки электронной подписи и шифрования</strong> раздела <strong>Администрирование - Общие настройки</strong>.</p>
|
||||
<p>Для электронной подписи и шифрования требуется установить специальное стороннее приложение (криптопровайдер).</p>
|
||||
<p>Для того чтобы подписывать данные, нужно включить флажок <strong>Электронная подпись</strong>, а для шифрования нужно включить флажок <strong>Шифрование</strong> в разделе <strong>Администрирование - Общие настройки</strong>. После этого становятся доступными соответствующие команды в приложении.</p>
|
||||
<p>Электронная подпись - реквизит электронного документа, с помощью которого можно удостовериться в неизменности электронного документа с момента его подписи. Для установки подписи необходимо иметь сертификат ключа электронной подписи. Сертификат можно получить в удостоверяющем центре. Например, в удостоверяющем центре фирмы 1С <a href="http://ca.1c.ru/">http://ca.1c.ru/</a>. Только удостоверяющий центр может выдать юридически значимый (квалифицированный сертификат).</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>
|
||||
<ul><li>Показывает все сертификаты, которые используются для подписания и шифрования данных, а также заявления на выпуск нового сертификата.
|
||||
</li>
|
||||
@@ -13,33 +13,31 @@
|
||||
</li>
|
||||
<li>Предусмотрен отбор по полю <strong>Состояние заявления</strong> ("Любое", "Не подготовлено", "Подготовлено", "Отправлено", "Отклонено", "Исполнено, сертификат не установлен", "Исполнено").
|
||||
</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>.
|
||||
<li><a href="Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ФормаЭлемента/Help">Сертификат</a> можно <strong>Добавить</strong> из числа <strong>установленных на компьютере</strong>. Также это можно сделать в процессе подписания или шифрования данных. Выберите нужное действие с помощью переключателя, нажмите <b>Добавить</b>.</li>
|
||||
<ul><li>Сертификат <b>только для шифрования</b> можно <b>Добавить из файла</b>. Выберите нужное действие и перейдите по ссылке, укажите путь к файлу или каталогу на компьютере.</li></ul><li>Также с помощью кнопки <b>Оформить заявление</b> можно подготовить <a href="DataProcessor.ЗаявлениеНаВыпускНовогоКвалифицированногоСертификата.Form.Форма/Help">Заявление на выпуск нового сертификата</a>.
|
||||
</li>
|
||||
<li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Программы</h3>
|
||||
<ul><li>Содержит список настроенных программ, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ). </li>
|
||||
<li>Данные программы не обязательно должны быть установлены на всех компьютерах. Более того, установка более одной программы на одном компьютере может вызвать конфликты между ними.
|
||||
<li>Выпустить повторно сертификат, у которого закончился срок действия можно с помощью кнопки <strong>Перевыпустить (cкопировать, F9)</strong>.</li>
|
||||
<li>Для анализа сертификатов сотрудников и контроля своевременного обновления сертификатов можно воспользоваться кнопкой <b>Отчеты</b> для того, чтобы открыть список доступных <a href="Catalog.ВариантыОтчетов/Help">вариантов отчета</a>.</li>
|
||||
<li>Просмотреть сертификат или заявление на выпуск нового сертификата можно, дважды щелкнув по нему мышью. Также можно это сделать с помощью команды <strong>Изменить</strong> контекстного меню по правой кнопке мыши или меню <strong>Еще</strong>.</li></ul><h3>Приложения</h3>
|
||||
<ul><li>Содержит список настроенных приложений, которые будут использованы в информационной базе (в том числе во всех узлах распределенной ИБ). </li>
|
||||
<li>Данные приложения не обязательно должны быть установлены на всех компьютерах. Более того, установка более одного приложения на одном компьютере может вызвать конфликты между ними.
|
||||
</li>
|
||||
<li>Если программа не установлена, то после установки компоненты будет предложена гиперссылка на загрузку дистрибутива <b>ViPNet CSP</b> или <b>КриптоПро CSP</b>, поддерживающие ГОСТ. </li>
|
||||
<li>По гиперссылке также можно перейти на домашние страницы других программ, соответствующих стандартам безопасности (например, <b>ЛИССИ CSP, Сигнал-КОМ CSP</b>). </li>
|
||||
<li>Если требуется использовать программу отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.</li>
|
||||
<li>В колонке <strong>Результат проверки</strong> отражаются сведения, по которым можно понять установлена ли программа на компьютере или нет или же установлена, но некорректно.</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>
|
||||
<li>
|
||||
<div>Напишите <strong>Расширение для файлов подписи</strong> (по умолчанию <strong>.p7s</strong>).</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>С помощью переключателя <strong>При сохранении данных в файл вместе с электронной подписью</strong> задайте поведение программы при выполнении команды <strong>Сохранить вместе с электронной подписью</strong>: </div>
|
||||
<ul><li>
|
||||
<div><strong>Сохранять все подписи</strong> - все подписи сохраняются; </div>
|
||||
</li>
|
||||
<li>
|
||||
<div><strong>Спрашивать</strong> - выбор сохраняемых подписей осуществляется из <a href="CommonForm.СохранениеВместеСЭлектроннойПодписью/Help">списка</a>.</div></li></ul></li>
|
||||
<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>Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.</li></ul><h3>Дополнительно</h3>
|
||||
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
||||
<li>Если приложение не установлена, то после установки компоненты будет предложена гиперссылка на загрузку дистрибутива <b>ViPNet CSP</b> или <b>КриптоПро CSP</b>, поддерживающие ГОСТ. </li>
|
||||
<li>По гиперссылке также можно перейти на домашние страницы других приложений, соответствующих стандартам безопасности (например, <b>ЛИССИ CSP, Сигнал-КОМ CSP</b>). </li>
|
||||
<li>Если требуется использовать приложение отличную от известных, тогда нужно указать ее имя, тип и алгоритмы, как указано в инструкции, поставляемой ее производителем.</li>
|
||||
<li>В колонке <strong>Результат проверки</strong> отражаются сведения, по которым можно понять установлено ли приложение на компьютере или нет или же установлена, но некорректно.</li>
|
||||
<li>Linux: <strong>Путь к приложению (<Имя приложения, соответствующей выделенной строке в списке>)</strong> - поле, которое требуется обязательно заполнять на компьютерах под управлением ОС Linux.</li>
|
||||
<li>В нижней части списка расположена ссылка <a href="http://its.1c.ru/db/metod81#content:5784:1">Инструкция по работе с приложениями электронной подписи и шифрования</a>.</li></ul><h3>Дополнительно</h3>
|
||||
<h3>
|
||||
<ul style="font-size: 11.199999809265137px; font-weight: normal;"><li>Задайте расширение для зашифрованных файлов при отправке по почте, при выполнении команды <strong>Сохранить как</strong> и при экспорте папки (по умолчанию <strong>.p7m</strong>);</li>
|
||||
<li>Напишите расширение для файлов подписи (по умолчанию <strong>.p7s</strong>);</li>
|
||||
<li>С помощью переключателя <strong>При сохранении данных в файл вместе с электронной подписью</strong> задайте поведение приложения:</li>
|
||||
<ul><li><strong>Сохранять все подписи</strong> - все подписи сохраняются </li>
|
||||
<li><strong>Спрашивать</strong> - выбор сохраняемых подписей осуществляется из <a href="Сохранение вместе с электронной подписью">списка</a>.</li>
|
||||
<li>Включите флажок <strong>Сохранить сертификат</strong> для сохранения на компьютер сертификата вместе с файлом и электронной подписью. </li></ul></ul></h3>
|
||||
<h3>
|
||||
</h3>
|
||||
<h3>Машиночитаемые доверенности (единый формат) </h3>
|
||||
<ul><li>Для того чтобы попасть в <a href="Catalog.МашиночитаемыеДоверенности/Help"> список машиночитаемых доверенностей (МЧД)</a> перейдите по гиперссылке. </li></ul><h3>Легенда</h3>
|
||||
<ul><li>Для того чтобы посмотреть состояние сертификатов нажмите раздел <strong>Легенда</strong> в нижней части списка. </li></ul><h3>См. также:</h3>
|
||||
<ul><li>Перейдите по этой ссылке в соответствующий раздел 1С:ИТС, если имеются вопросы.</li></ul><ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></body></html>
|
||||
@@ -150,6 +150,18 @@
|
||||
ЗаполнитьПрограммыИНастройки();
|
||||
ОбновитьТекущуюВидимостьЭлементов();
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
ПараметрыРазмещения = МодульПодключаемыеКоманды.ПараметрыРазмещения();
|
||||
ПараметрыРазмещения.КоманднаяПанель = Элементы.СертификатыКоманднаяПанельСписка;
|
||||
ПараметрыРазмещения.Источники = Новый ОписаниеТипов("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования");
|
||||
ПараметрыРазмещения.ВладелецКоманд = Элементы.Сертификаты;
|
||||
|
||||
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -685,6 +697,34 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ОбновитьКоманды()
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект);
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -1051,10 +1091,7 @@
|
||||
Процедура ОбработчикОжиданияОпределитьУстановленныеПрограммыПослеПодключенияРасширения(Подключено, Контекст) Экспорт
|
||||
|
||||
Если Не Подключено Тогда
|
||||
Элементы.ГруппаПодсказкаКриптопровайдеры.Видимость = Истина;
|
||||
Элементы.ДекорацияПроверкаУстановкиКриптопровайдера.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
НСтр("ru = '<a href = ""%1"">Нажмите здесь</a>, чтобы установить расширение для работы с электронной подписью и увидеть все установленные на компьютере программы для работы с электронной подписью.'"),
|
||||
"ПроверитьУстановкуПрограммКриптографии");
|
||||
ПоказатьЗаголовокДляУстановкиРасширения();
|
||||
ПодключитьОбработчикОжидания("ОбработчикОжиданияОпределитьУстановленныеПрограммы", 3, Истина);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -1082,10 +1119,7 @@
|
||||
Подключено = Ждать ПодключитьРасширениеРаботыСКриптографиейАсинх();
|
||||
|
||||
Если Не Подключено Тогда
|
||||
Элементы.ГруппаПодсказкаКриптопровайдеры.Видимость = Истина;
|
||||
Элементы.ДекорацияПроверкаУстановкиКриптопровайдера.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
НСтр("ru = '<a href = ""%1"">Нажмите здесь</a>, чтобы установить расширение для работы с электронной подписью и увидеть все установленные на компьютере программы для работы с электронной подписью.'"),
|
||||
"ПроверитьУстановкуПрограммКриптографии");
|
||||
ПоказатьЗаголовокДляУстановкиРасширения();
|
||||
КонецЕсли;
|
||||
|
||||
Контекст = Новый Структура;
|
||||
@@ -1096,6 +1130,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПоказатьЗаголовокДляУстановкиРасширения()
|
||||
Элементы.ГруппаПодсказкаКриптопровайдеры.Видимость = Истина;
|
||||
Элементы.ДекорацияПроверкаУстановкиКриптопровайдера.Заголовок = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
НСтр("ru = '<a href = ""%1"">Нажмите здесь</a> для установки расширения для работы с 1С:Предприятием, чтобы работать с электронной подписью.'"),
|
||||
"ПроверитьУстановкуПрограммКриптографии");
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ОбработчикОжиданияОпределитьУстановленныеПрограммы.
|
||||
&НаКлиенте
|
||||
Процедура ОбработчикОжиданияОпределитьУстановленныеПрограммыЦиклНачало(Контекст)
|
||||
|
||||
@@ -837,8 +837,8 @@
|
||||
КлючНастроек = Строка(ИспользуемыеПараметры.ИсточникДанных.УникальныйИдентификатор()) + "-" + ИспользуемыеПараметры.ПараметрыИсточника.ИдентификаторКоманды;
|
||||
Иначе
|
||||
ИменаМакетов = ИспользуемыеПараметры.ИменаМакетов;
|
||||
Если ТипЗнч(ИменаМакетов) = Тип("Массив") Тогда
|
||||
ИменаМакетов = СтрСоединить(ИменаМакетов, ",");
|
||||
Если ТипЗнч(ИспользуемыеПараметры.ИменаМакетов) = Тип("Массив") Тогда
|
||||
ИменаМакетов = СтрСоединить(ИспользуемыеПараметры.ИменаМакетов, ",");
|
||||
КонецЕсли;
|
||||
|
||||
КлючНастроек = ИспользуемыеПараметры.ИмяМенеджераПечати + "-" + ИменаМакетов;
|
||||
|
||||
@@ -529,7 +529,7 @@
|
||||
ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайла();
|
||||
ПараметрыСохранения.Интерактивно = Ложь;
|
||||
|
||||
ИмяФайлаДляОткрытия = ИмяКаталога+"\"+ДополнительныеПараметры.ИмяФайлаДляОткрытия;
|
||||
ИмяФайлаДляОткрытия = ИмяКаталога + ПолучитьРазделительПути() + ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(ДополнительныеПараметры.ИмяФайлаДляОткрытия);
|
||||
ФайловаяСистемаКлиент.СохранитьФайл(Оповещение, ДополнительныеПараметры.АдресДокумента, ИмяФайлаДляОткрытия, ПараметрыСохранения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -74,6 +74,9 @@
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<font xsi:type="core:FontRef">
|
||||
<font>Style.ВажнаяНадписьШрифт</font>
|
||||
</font>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
@@ -496,6 +499,9 @@
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<font xsi:type="core:FontRef">
|
||||
<font>Style.ВажнаяНадписьШрифт</font>
|
||||
</font>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
@@ -1362,6 +1368,10 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnOpen</event>
|
||||
<name>ПриОткрытии</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
@@ -1515,6 +1525,30 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ОшибкаПроверкиПодписи</name>
|
||||
<id>12</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПараметрыДополненияТекстаРешенияОшибкиКлассификатора</name>
|
||||
<id>11</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>ПерейтиКНастройкеПрограмм</name>
|
||||
<title>
|
||||
|
||||
@@ -13,6 +13,10 @@
|
||||
|
||||
ДополнительныеДанные = Параметры.ДополнительныеДанные;
|
||||
|
||||
Если ЗначениеЗаполнено(ДополнительныеДанные) Тогда
|
||||
ОшибкаПроверкиПодписи = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "ДанныеПодписи", Ложь) = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Параметры.ИнформацияДляПоддержки) Тогда
|
||||
Элементы.ИнформацияДляПоддержки.Заголовок = Параметры.ИнформацияДляПоддержки;
|
||||
Иначе
|
||||
@@ -65,6 +69,17 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
|
||||
#Если Не МобильноеПриложениеКлиент И Не МобильныйКлиент Тогда
|
||||
Если ПараметрыДополненияТекстаРешенияОшибкиКлассификатора <> Неопределено Тогда
|
||||
ПодключитьОбработчикОжидания("ДополнитьРешениеКлассификатораОшибокПодробностями", 0.1, Истина);
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
@@ -72,18 +87,26 @@
|
||||
&НаКлиенте
|
||||
Процедура ИнструкцияНажатие(Элемент)
|
||||
|
||||
ЯкорьОшибки = "";
|
||||
Если Элемент.Имя = "ИнструкцияКлиент"
|
||||
И Не ПустаяСтрока(ЯкорьОшибкиКлиент) Тогда
|
||||
|
||||
ЯкорьОшибки = ЯкорьОшибкиКлиент;
|
||||
ИначеЕсли Элемент.Имя = "ИнструкцияСервер"
|
||||
И Не ПустаяСтрока(ЯкорьОшибкиСервер) Тогда
|
||||
|
||||
ЯкорьОшибки = ЯкорьОшибкиСервер;
|
||||
ЯкорьОшибки = ""; ТекстДляПоиска = "";
|
||||
Если Элемент.Имя = "ИнструкцияКлиент" Тогда
|
||||
Если Не ПустаяСтрока(ЯкорьОшибкиКлиент) Тогда
|
||||
ЯкорьОшибки = ЯкорьОшибкиКлиент;
|
||||
Иначе
|
||||
ТекстДляПоиска = ТекстОшибкиКлиент;
|
||||
КонецЕсли;
|
||||
ИначеЕсли Элемент.Имя = "ИнструкцияСервер" Тогда
|
||||
Если Не ПустаяСтрока(ЯкорьОшибкиСервер) Тогда
|
||||
ЯкорьОшибки = ЯкорьОшибкиСервер;
|
||||
Иначе
|
||||
ТекстДляПоиска = ТекстОшибкиСервер;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ЭлектроннаяПодписьКлиент.ОткрытьИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами(ЯкорьОшибки);
|
||||
Если ЗначениеЗаполнено(ТекстДляПоиска) Тогда
|
||||
ЭлектроннаяПодписьКлиент.ОткрытьПоискПоОшибкамПриРаботеСЭлектроннойПодписью(ТекстДляПоиска);
|
||||
Иначе
|
||||
ЭлектроннаяПодписьКлиент.ОткрытьИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами(ЯкорьОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -158,6 +181,33 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ДополнитьРешениеКлассификатораОшибокПодробностями()
|
||||
|
||||
ОшибкаПоКлассификатору = Новый Структура;
|
||||
ОшибкаПоКлассификатору.Вставить("ТекстОшибки", Элементы.ТекстОшибкиКлиент.Заголовок);
|
||||
ОшибкаПоКлассификатору.Вставить("Причина", Элементы.ПричиныКлиентТекст.Заголовок);
|
||||
ОшибкаПоКлассификатору.Вставить("Решение", Элементы.РешенияКлиентТекст.Заголовок);
|
||||
|
||||
ДанныеДляДополнения = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДанныеДляДополненияОшибкиИзКлассификатора(ДополнительныеДанные);
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ДополнитьРешениеКлассификатораОшибокПодробностями(
|
||||
Новый ОписаниеОповещения("ПослеДополненияРешенияКлассификатораОшибок", ЭтотОбъект),
|
||||
ОшибкаПоКлассификатору, ПараметрыДополненияТекстаРешенияОшибкиКлассификатора, ДанныеДляДополнения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеДополненияРешенияКлассификатораОшибок(ОшибкаПоКлассификатору, Контекст) Экспорт
|
||||
|
||||
Если Элементы.РешенияКлиентТекст.Заголовок <> ОшибкаПоКлассификатору.Решение Тогда
|
||||
Элементы.РешенияКлиентТекст.Заголовок = ОшибкаПоКлассификатору.Решение;
|
||||
КонецЕсли;
|
||||
Если Элементы.ПричиныКлиентТекст.Заголовок <> ОшибкаПоКлассификатору.Причина Тогда
|
||||
Элементы.ПричиныКлиентТекст.Заголовок = ОшибкаПоКлассификатору.Причина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура УстановитьЭлементы(ТекстОшибки, ДвеОшибки, МестоОшибки)
|
||||
|
||||
@@ -207,7 +257,8 @@
|
||||
ОшибкаПоКлассификатору.Причина = ФорматированнаяСтрока(Причина);
|
||||
ОшибкаПоКлассификатору.Решение = ФорматированнаяСтрока(ЕстьПричинаИРешение.Решение);
|
||||
Иначе
|
||||
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(ТекстОшибки, МестоОшибки = "Сервер");
|
||||
ОшибкаПоКлассификатору = ЭлектроннаяПодписьСлужебный.ОшибкаПоКлассификатору(
|
||||
ТекстОшибки, МестоОшибки = "Сервер", ОшибкаПроверкиПодписи);
|
||||
КонецЕсли;
|
||||
|
||||
ЭтоИзвестнаяОшибка = ОшибкаПоКлассификатору <> Неопределено;
|
||||
@@ -216,20 +267,17 @@
|
||||
Если ЭтоИзвестнаяОшибка Тогда
|
||||
|
||||
Если ЗначениеЗаполнено(ОшибкаПоКлассификатору.ДействияДляУстранения) Тогда
|
||||
Если ОшибкаПоКлассификатору.ДействияДляУстранения.Найти(
|
||||
"УказатьВРешенииСсылкуНаУдостоверяющийЦентр") <> Неопределено Тогда
|
||||
ИздательСертификата = ИздательСертификата();
|
||||
Если ЗначениеЗаполнено(ИздательСертификата) Тогда
|
||||
Решение = Новый Массив;
|
||||
Решение.Добавить(ОшибкаПоКлассификатору.Решение);
|
||||
Решение.Добавить(Символы.ПС);
|
||||
Решение.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru='Удостоверяющий центр, выдавший сертификат: %1.'"), ИздательСертификата));
|
||||
ОшибкаПоКлассификатору.Решение = Новый ФорматированнаяСтрока(Решение);
|
||||
КонецЕсли;
|
||||
Если ПараметрыДополненияТекстаРешенияОшибкиКлассификатора = Неопределено Тогда
|
||||
ПараметрыДополненияТекстаРешенияОшибкиКлассификатора = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПараметрыДополненияТекстаРешенияОшибкиКлассификатора();
|
||||
КонецЕсли;
|
||||
ДанныеДляДополнения = ЭлектроннаяПодписьСлужебныйКлиентСервер.ДанныеДляДополненияОшибкиИзКлассификатора(ДополнительныеДанные);
|
||||
Дополнение = ЭлектроннаяПодписьСлужебный.ДополнитьРешениеКлассификатораОшибокПодробностями(
|
||||
ОшибкаПоКлассификатору, ДанныеДляДополнения,
|
||||
ПараметрыДополненияТекстаРешенияОшибкиКлассификатора, МестоОшибки);
|
||||
ОшибкаПоКлассификатору = Дополнение.ОшибкаПоКлассификатору;
|
||||
ПараметрыДополненияТекстаРешенияОшибкиКлассификатора = Дополнение.ПараметрыДополненияТекстаРешенияОшибкиКлассификатораНаКлиенте;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
|
||||
ЭлементИнструкция.Имя, "Заголовок", НСтр("ru = 'Подробнее'"));
|
||||
|
||||
@@ -260,9 +308,12 @@
|
||||
Иначе
|
||||
ЯкорьОшибки = ОшибкаПоКлассификатору.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
|
||||
ЭлементИнструкция.Имя, "Заголовок", НСтр("ru = 'Подробнее'"));
|
||||
|
||||
ТребуемоеКоличествоСтрок = 0;
|
||||
ШиринаПоля = Цел(?(Ширина < 20, 20, Ширина) * 1.4);
|
||||
Для НомерСтроки = 1 По СтрЧислоСтрок(ТекстОшибки) Цикл
|
||||
@@ -283,47 +334,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ИздательСертификата()
|
||||
|
||||
Если Не ЗначениеЗаполнено(ДополнительныеДанные) Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеСертификата = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "ДанныеСертификата", Неопределено);
|
||||
Если ЗначениеЗаполнено(ДанныеСертификата) Тогда
|
||||
Если ТипЗнч(ДанныеСертификата) = Тип("Строка") Тогда
|
||||
ДанныеСертификата = ПолучитьИзВременногоХранилища(ДанныеСертификата);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Сертификат = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ДополнительныеДанные, "Сертификат", Неопределено);
|
||||
Если ЗначениеЗаполнено(Сертификат) Тогда
|
||||
Если ТипЗнч(Сертификат) = Тип("Массив") Тогда
|
||||
Если Сертификат.Количество() > 0 Тогда
|
||||
Если ТипЗнч(Сертификат[0]) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ДанныеСертификата = ДанныеСертификата(Сертификат[0], Неопределено);
|
||||
Иначе
|
||||
ДанныеСертификата = ПолучитьИзВременногоХранилища(Сертификат[0]);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ДанныеСертификата = ДанныеСертификата(Сертификат, Неопределено);
|
||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
|
||||
ДанныеСертификата = Сертификат;
|
||||
Иначе
|
||||
ДанныеСертификата = ПолучитьИзВременногоХранилища(Сертификат);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ДанныеСертификата) Тогда
|
||||
СвойстваИздателя = ЭлектроннаяПодпись.СвойстваИздателяСертификата(Новый СертификатКриптографии(ДанныеСертификата));
|
||||
Возврат СвойстваИздателя.ОбщееИмя;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ДополнительныеДанные()
|
||||
|
||||
@@ -337,18 +347,22 @@
|
||||
Если ТипЗнч(Сертификат) = Тип("Массив") Тогда
|
||||
Если Сертификат.Количество() > 0 Тогда
|
||||
Если ТипЗнч(Сертификат[0]) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат[0];
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат[0], УникальныйИдентификатор);
|
||||
Иначе
|
||||
Если ЗначениеЗаполнено(Сертификат[0]) Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат[0];
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат[0], УникальныйИдентификатор);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ЭтоАдресВременногоХранилища(Сертификат[0]) Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = Сертификат[0];
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат;
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат, УникальныйИдентификатор);
|
||||
Если ЗначениеЗаполнено(Сертификат) Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.Сертификат = Сертификат;
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ДанныеСертификата(Сертификат, УникальныйИдентификатор);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТипЗнч(Сертификат) = Тип("ДвоичныеДанные") Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = ПоместитьВоВременноеХранилище(Сертификат, УникальныйИдентификатор);
|
||||
Иначе
|
||||
ИначеЕсли ЭтоАдресВременногоХранилища(Сертификат) Тогда
|
||||
ДополнительныеДанныеДляКлассификатораОшибок.ДанныеСертификата = Сертификат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -513,10 +513,16 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СохранитьВФайлПродолжение(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Макет = МакетИзВременногоХранилища();
|
||||
ПодготовитьМакетКСохранению(Макет);
|
||||
АдресМакетаВоВременномХранилище = ПоместитьВоВременноеХранилище(Макет, УникальныйИдентификатор);
|
||||
|
||||
ПараметрыСохранения = ФайловаяСистемаКлиент.ПараметрыСохраненияФайла();
|
||||
ПараметрыСохранения.Диалог.Заголовок = НСтр("ru = 'Выберите офисный документ'");
|
||||
ПараметрыСохранения.Диалог.Заголовок = НСтр("ru = 'Сохранение макета в файл'");
|
||||
ПараметрыСохранения.Диалог.Фильтр = НСтр("ru = 'Офисный документ'") + " (*.docx)|*.docx";
|
||||
ФайловаяСистемаКлиент.СохранитьФайл(Неопределено, АдресФайлаМакета,,ПараметрыСохранения);
|
||||
ФайловаяСистемаКлиент.СохранитьФайл(Неопределено, АдресМакетаВоВременномХранилище, ИмяДокумента, ПараметрыСохранения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
|
||||
@@ -2918,11 +2918,22 @@
|
||||
&НаКлиенте
|
||||
Процедура ПродолжитьЗагрузкуИзФайлаПослеПолученияДанных(ДвоичныеДанные, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ЗаполнитьТабличныйДокумент(ТабличныйДокумент, ПрочитатьМакет(ДвоичныеДанные));
|
||||
ЗакончитьЗагрузкуИзФайла(ДвоичныеДанные);
|
||||
Модифицированность = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗакончитьЗагрузкуИзФайла(Знач ДвоичныеДанные)
|
||||
|
||||
КодЯзыка = ТабличныйДокумент.КодЯзыка;
|
||||
Макет = ПрочитатьМакет(ДвоичныеДанные);
|
||||
ТабличныйДокумент.КодЯзыка = КодЯзыка;
|
||||
|
||||
ЗаполнитьТабличныйДокумент(ТабличныйДокумент, Макет);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбновитьТекстВОбластиЯчеек()
|
||||
|
||||
|
||||
@@ -1035,7 +1035,7 @@
|
||||
ПолеЗначения.РежимВыбораИзСписка = Не ЭтоПолеСписка И (Строка.ДоступныеЗначения <> Неопределено);
|
||||
|
||||
ПривестиЗначениеКВидуСравнения(Строка);
|
||||
УстановитьПредставлениеЗначения(Строка);
|
||||
УстановитьПредставлениеЗначения(Строка, Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -1152,7 +1152,7 @@
|
||||
ЭлементНастройки.Значение = Строка.Значение;
|
||||
|
||||
УстановитьМодифицированность();
|
||||
УстановитьПредставлениеЗначения(Строка);
|
||||
УстановитьПредставлениеЗначения(Строка, Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора);
|
||||
|
||||
Если НастройкиОтчета.ЗагрузитьНастройкиПриИзмененииПараметров.Найти(ЭлементНастройки.Параметр) <> Неопределено Тогда
|
||||
ВариантБылМодифицирован = ВариантМодифицирован;
|
||||
@@ -1199,7 +1199,7 @@
|
||||
ЗаполнитьЗначенияСвойств(ЭлементНастройки, Строка, "Использование, ПравоеЗначение");
|
||||
|
||||
УстановитьМодифицированность();
|
||||
УстановитьПредставлениеЗначения(Строка);
|
||||
УстановитьПредставлениеЗначения(Строка, Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -2449,7 +2449,7 @@
|
||||
Строка.ЭтоПредопределенныйЗаголовок = (Строка.Заголовок = Строка.ПредставлениеПользовательскойНастройки);
|
||||
|
||||
ПривестиЗначениеКВидуСравнения(Строка, ЭлементНастройки);
|
||||
УстановитьПредставлениеЗначения(Строка);
|
||||
УстановитьПредставлениеЗначения(Строка, СвойствоЭлементаСтруктуры.ДоступныеПоляОтбора);
|
||||
|
||||
Возврат УстановленыУспешно;
|
||||
КонецФункции
|
||||
@@ -3648,15 +3648,22 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Процедура УстановитьПредставлениеЗначения(Строка)
|
||||
Процедура УстановитьПредставлениеЗначения(Строка, ДоступныеПоляОтбора)
|
||||
Строка.ПредставлениеЗначения = "";
|
||||
|
||||
ДоступныеЗначения = Строка.ДоступныеЗначения;
|
||||
Если ДоступныеЗначения = Неопределено Тогда
|
||||
Значение = ?(Строка.ЭтоПараметр, Строка.Значение, Строка.ПравоеЗначение);
|
||||
|
||||
Если ДоступныеЗначения = Неопределено Тогда
|
||||
Если ТипЗнч(Значение) = Тип("ПолеКомпоновкиДанных") Тогда
|
||||
ДоступноеПоле = ДоступныеПоляОтбора.НайтиПоле(Значение);
|
||||
Если ДоступноеПоле <> Неопределено Тогда
|
||||
Строка.ПредставлениеЗначения = ДоступноеПоле.Заголовок;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = ?(Строка.ЭтоПараметр, Строка.Значение, Строка.ПравоеЗначение);
|
||||
НайденныйЭлемент = ДоступныеЗначения.НайтиПоЗначению(Значение);
|
||||
Если НайденныйЭлемент <> Неопределено Тогда
|
||||
Строка.ПредставлениеЗначения = НайденныйЭлемент.Представление;
|
||||
@@ -4008,12 +4015,16 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеНастройки = СортировкаЭлементаСтруктуры.ДоступныеПоляПорядка.НайтиПоле(ЭлементНастройкиИсточник.Поле);
|
||||
|
||||
Если ОписаниеНастройки = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ЭлементНастройкиПриемник = СортировкаЭлементаСтруктуры.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
|
||||
ЗаполнитьЗначенияСвойств(ЭлементНастройкиПриемник, ЭлементНастройкиИсточник);
|
||||
ЭлементНастройкиПриемник.Использование = Истина;
|
||||
|
||||
ОписаниеНастройки = СортировкаЭлементаСтруктуры.ДоступныеПоляПорядка.НайтиПоле(ЭлементНастройкиИсточник.Поле);
|
||||
|
||||
СтрокаПриемник = Раздел.ПолучитьЭлементы().Добавить();
|
||||
ЗаполнитьЗначенияСвойств(СтрокаПриемник, ЭлементНастройкиПриемник);
|
||||
ЗаполнитьЗначенияСвойств(СтрокаПриемник, ОписаниеНастройки);
|
||||
|
||||
@@ -3784,7 +3784,6 @@
|
||||
|
||||
ФорматыСохранения = ФорматыСохраненияОтчета(ПолноеИмяФайлаОтчета, Контекст.ИндексФорматовСохраненияОтчета);
|
||||
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
|
||||
|
||||
РезультатОтчета = РезультатОтчетаДляСохранения(ОтчетТабличныйДокумент, СвойстваРезультата.Заголовки);
|
||||
РезультатОтчета.НачатьЗапись(Обработчик, ПолноеИмяФайлаОтчета, ФорматыСохранения);
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -37,21 +37,88 @@
|
||||
</backColor>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОписаниеОшибки</name>
|
||||
<id>35</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаОшибка</name>
|
||||
<id>78</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ОписаниеОшибки</name>
|
||||
<id>35</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ОписаниеОшибки</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<extendedTooltip>
|
||||
<name>ОписаниеОшибкиРасширеннаяПодсказка</name>
|
||||
<id>37</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОписаниеОшибкиКонтекстноеМеню</name>
|
||||
<id>36</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<maxHeight>4</maxHeight>
|
||||
<wrap>true</wrap>
|
||||
<multiLine>true</multiLine>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<backColor xsi:type="core:ColorRef">
|
||||
<color>Style.ЦветФонаВнимание</color>
|
||||
</backColor>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ОткрытьОписаниеОшибки</name>
|
||||
<id>80</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ОткрытьОписаниеОшибкиРасширеннаяПодсказка</name>
|
||||
<id>81</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Hyperlink</type>
|
||||
<commandName>Form.Command.ОткрытьОписаниеОшибки</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ОписаниеОшибки</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<extendedTooltip>
|
||||
<name>ОписаниеОшибкиРасширеннаяПодсказка</name>
|
||||
<id>37</id>
|
||||
<name>ГруппаОшибкаРасширеннаяПодсказка</name>
|
||||
<id>79</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -59,26 +126,15 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ОписаниеОшибкиКонтекстноеМеню</name>
|
||||
<id>36</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<maxHeight>4</maxHeight>
|
||||
<wrap>true</wrap>
|
||||
<multiLine>true</multiLine>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<backColor xsi:type="core:ColorRef">
|
||||
<color>Style.ЦветФонаВнимание</color>
|
||||
</backColor>
|
||||
<textSize>Normal</textSize>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<behavior>Auto</behavior>
|
||||
<representation>WeakSeparation</representation>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
@@ -1265,6 +1321,24 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ОткрытьОписаниеОшибки</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Подробнее...</value>
|
||||
</title>
|
||||
<id>5</id>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ОткрытьОписаниеОшибки</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<parameters>
|
||||
<name>СвойстваПодписи</name>
|
||||
<valueType/>
|
||||
|
||||
@@ -39,8 +39,10 @@
|
||||
Элементы.ОписаниеОшибки.Видимость = ЗначениеЗаполнено(ОписаниеОшибки);
|
||||
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "");
|
||||
Элементы.Инструкция.Видимость = Ложь;
|
||||
Элементы.ОткрытьОписаниеОшибки.Видимость = Ложь;
|
||||
Иначе
|
||||
Элементы.ОписаниеОшибки.Видимость = ЗначениеЗаполнено(ОписаниеОшибки);
|
||||
Элементы.ОткрытьОписаниеОшибки.Видимость = ЗначениеЗаполнено(ОписаниеОшибки);
|
||||
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "ОписаниеОшибки");
|
||||
Элементы.Инструкция.Видимость =
|
||||
ЭлектроннаяПодписьСлужебный.ВидимостьСсылкиНаИнструкциюПоТипичнымПроблемамПриРаботеСПрограммами();
|
||||
@@ -170,11 +172,36 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОткрытьОписаниеОшибки(Команда)
|
||||
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("ЗаголовокПредупреждения", НСтр("ru = 'Ошибка проверки подписи'"));
|
||||
ПараметрыФормы.Вставить("ТекстОшибкиКлиент", ОписаниеОшибки);
|
||||
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
|
||||
Если ЗначениеЗаполнено(АдресСертификата) Тогда
|
||||
ДополнительныеПараметры.Вставить("ДанныеСертификата",
|
||||
АдресСертификата);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(АдресПодписи) Тогда
|
||||
ДополнительныеПараметры.Вставить("ДанныеПодписи",
|
||||
АдресПодписи);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыФормы.Вставить("ДополнительныеДанные", ДополнительныеПараметры);
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки",
|
||||
ПараметрыФормы, ЭтотОбъект,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
|
||||
&НаСервере
|
||||
Процедура ОбновитьДанныеФормы()
|
||||
|
||||
|
||||
@@ -213,6 +213,19 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает разрешение на доступ к веб-сервису адресов через сеть Интернет.
|
||||
// Если доступ запрещен, то подбор и проверка адресов использует только загруженные данные в приложение.
|
||||
// Изменение доступа выполняется в разделе Администрирование - Интернет-поддержка и сервисы.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - если Истина, то доступ к веб-сервису разрешен.
|
||||
//
|
||||
Функция РазрешенДоступВИнтернет() Экспорт
|
||||
|
||||
Возврат Не АдресныйКлассификаторПовтИсп.ИспользоватьТолькоЗагруженныеДанные();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет адреса на соответствие адресному классификатору
|
||||
// и возвращает подходящие варианты, содержащие сведения об адресе.
|
||||
// При проверке адреса через веб-сервиса выполнение функции может занимать 20 секунд.
|
||||
@@ -425,6 +438,41 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет корректность ОКМТО бюджетополучателей.
|
||||
//
|
||||
// Для проверки ОКТМО бюджетополучателей требуется подключение к Интернет-поддержке пользователей и наличие
|
||||
// постоянного соединения с интернетом, т.к. адресные сведения, загруженные в приложение, не используются.
|
||||
// Проверка выполняется порциям по 100 значений за один запросу к веб-сервису, поэтому рекомендуется выполнять
|
||||
// ее в фоновом режиме.
|
||||
// При получении ответа от веб-сервиса отличного от успешного (код 200 ОК) выполнение функции прерывается
|
||||
// и возвращается ошибка. Поэтому если в данных результата отсутствует ОКТМО бюджетополучателя,
|
||||
// то он не было проверен из-за ошибок работы с веб-сервисом.
|
||||
//
|
||||
// Параметры:
|
||||
// ОКТМОБюджетополучателей - Массив из Строка - список ОКТМО бюджетополучателей.
|
||||
// - Строка - ОКТМО бюджетополучателя.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Отказ - Булево - если Истина, то при получении ОКТМО бюджетополучателя через веб-сервис возникла ошибка.
|
||||
// * ПредставлениеОшибкиДляПользователя - Строка - текст ошибки для отображения пользователю.
|
||||
// * ИнформацияОбОшибке - ИнформацияОбОшибке - структурированная информация об ошибке.
|
||||
// * Данные - Соответствие из КлючИЗначение:
|
||||
// ** Ключ - Строка - ОКТМО бюджетополучателя.
|
||||
// ** Значение - Структура:
|
||||
// *** Успешно - Булево - если Истина, то код ОКТМО бюджетополучателей корректный;
|
||||
// *** ТекстОшибки - Строка - текст ошибки, если ОКТМО некорректный;
|
||||
// *** МуниципальныеОбразования - Массив из Строка - список муниципальных образований, принадлежащих данному ОКТМО.
|
||||
//
|
||||
Функция ПроверитьОКТМОБюджетополучателя(ОКТМОБюджетополучателей) Экспорт
|
||||
|
||||
СписокОКТМО = ?(ТипЗнч(ОКТМОБюджетополучателей) = Тип("Строка"),
|
||||
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ОКТМОБюджетополучателей), ОКТМОБюджетополучателей);
|
||||
|
||||
Возврат АдресныйКлассификаторСлужебный.ПроверитьОКМТОБюджетополучателя(СписокОКТМО);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область УстаревшиеПроцедурыИФункции
|
||||
|
||||
// Возвращает идентификационный код дома и адресного объекта с помощью веб-сервиса фирмы 1С предоставляющего
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
// Возвращаемое значение:
|
||||
// HTTPСоединение - объект для вызовов сервиса.
|
||||
//
|
||||
Функция СервисКлассификатора1С(ВремяОжидания = 120) Экспорт
|
||||
Функция СервисКлассификатора1С(ВремяОжидания = 20) Экспорт
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Авторизация = АдресныйКлассификаторСлужебный.ПараметрыАутентификацииНаСайте();
|
||||
|
||||
@@ -6470,6 +6470,160 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПроверитьОКМТОБюджетополучателя(ОКТМОБюджетополучателей) Экспорт
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("АдресныйКлассификаторСлужебный.ПроверитьОКМТОБюджетополучателя",
|
||||
"ОКТМОБюджетополучателей", ОКТМОБюджетополучателей, Тип("Массив"));
|
||||
|
||||
РазмерПорции = 100;
|
||||
Результат = НовыйРезультатИзВебСервиса();
|
||||
|
||||
Порция = Новый Массив;
|
||||
|
||||
Для Позиция = 0 По ОКТМОБюджетополучателей.ВГраница() Цикл
|
||||
|
||||
ОКТМОБюджетополучателя = СокрЛП(ОКТМОБюджетополучателей.Получить(Позиция));
|
||||
Если СтрДлина(ОКТМОБюджетополучателя) = 8 Или СтрДлина(ОКТМОБюджетополучателя) = 11 Тогда
|
||||
|
||||
Если Результат.Данные[ОКТМОБюджетополучателя] = Неопределено Тогда
|
||||
Порция.Добавить(ОКТМОБюджетополучателя);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
|
||||
ДанныеПоОКТМО = ДанныеПоОКТМО();
|
||||
ДанныеПоОКТМО.ТекстОшибки = НСтр("ru = 'Указан некорректный код ОКТМО'");
|
||||
Результат.Данные.Вставить(ОКТМОБюджетополучателя, ДанныеПоОКТМО);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если (Порция.Количество() = РазмерПорции
|
||||
Или Позиция = ОКТМОБюджетополучателей.ВГраница())
|
||||
И Порция.Количество() > 0 Тогда
|
||||
ОбработатьПорциюОКТМОБюджетополучателей(Результат, Порция);
|
||||
Если Результат.Отказ Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
Порция = Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДанныеПоОКТМО()
|
||||
|
||||
ДанныеПоОКТМО = Новый Структура();
|
||||
ДанныеПоОКТМО.Вставить("Успешно", Ложь);
|
||||
ДанныеПоОКТМО.Вставить("ТекстОшибки", "");
|
||||
ДанныеПоОКТМО.Вставить("МуниципальныеОбразования", Новый Массив);
|
||||
|
||||
Возврат ДанныеПоОКТМО;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Данные - Соответствие
|
||||
// * Отказ - Булево
|
||||
// * ПредставлениеОшибкиДляПользователя - Строка
|
||||
// * ИнформацияОбОшибке - ИнформацияОбОшибке
|
||||
// - Неопределено
|
||||
//
|
||||
Функция НовыйРезультатИзВебСервиса()
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Данные", Новый Соответствие);
|
||||
Результат.Вставить("Отказ", Ложь);
|
||||
Результат.Вставить("ПредставлениеОшибкиДляПользователя", "");
|
||||
Результат.Вставить("ИнформацияОбОшибке", Неопределено);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОбработатьПорциюОКТМОБюджетополучателей(Результат, Порция)
|
||||
|
||||
ИдентификаторЗапроса = Строка(Новый УникальныйИдентификатор);
|
||||
ДанныеДляЗапроса = Новый Структура("oktmoList", Порция);
|
||||
|
||||
Сервис = АдресныйКлассификаторПовтИсп.СервисКлассификатора1С();
|
||||
|
||||
ПрефиксВерсииЗапроса = ПрефиксВерсииЗапросаСервисаОКТМО();
|
||||
HTTPЗапрос = Новый HTTPЗапрос(ПрефиксВерсииЗапроса + "validateOktmoList");
|
||||
|
||||
HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");
|
||||
HTTPЗапрос.Заголовки.Вставить("X-1C-Request-UID", ИдентификаторЗапроса);
|
||||
HTTPЗапрос.УстановитьТелоИзСтроки(СтруктураВСтрокуJSON(ДанныеДляЗапроса));
|
||||
|
||||
Попытка
|
||||
РезультатПроверки = Сервис.ОтправитьДляОбработки(HTTPЗапрос);
|
||||
Исключение
|
||||
|
||||
ОбработатьОшибкуОбращенияКВебСервисуПриПолученииОКТМО(Результат);
|
||||
Возврат Результат;
|
||||
КонецПопытки;
|
||||
|
||||
ПолученныеДанные = РезультатПроверки.ПолучитьТелоКакСтроку("UTF-8");
|
||||
|
||||
Если РезультатПроверки.КодСостояния = 200 Тогда
|
||||
|
||||
ДанныеПроверки = СтрокуJSONВСоответствие(ПолученныеДанные);
|
||||
Если ТипЗнч(ДанныеПроверки) = Тип("Соответствие") Тогда
|
||||
|
||||
НаборОКТМО = ДанныеПроверки["validateOktmoData"];
|
||||
Для каждого ДанныеОКТМО Из НаборОКТМО Цикл
|
||||
|
||||
ЗначениеОКМТО = ДанныеОКТМО.Значение;
|
||||
ДанныеПоОКТМО = ДанныеПоОКТМО();
|
||||
|
||||
Если ЗначениеОКМТО["validateOktmoStatus"] = "VERIFIED_OKTMO" Тогда
|
||||
ДанныеПоОКТМО.Успешно = Истина;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(ЗначениеОКМТО["validateMessage"]) Тогда
|
||||
ДанныеПоОКТМО.ТекстОшибки = ЗначениеОКМТО["validateMessage"];
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(ЗначениеОКМТО["oktmoMunValue"]) Тогда
|
||||
ДанныеПоОКТМО.МуниципальныеОбразования = ЗначениеОКМТО["oktmoMunValue"];
|
||||
КонецЕсли;
|
||||
|
||||
Результат.Данные.Вставить(ДанныеОКТМО.Ключ, ДанныеПоОКТМО)
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
Результат.ПредставлениеОшибкиДляПользователя = НСтр("ru = 'Проверка ОКТМО бюджетополучателя недоступна по причине:
|
||||
|- не подключена интернет-поддержка пользователей;
|
||||
|- неполадки у интернет-провайдера;
|
||||
|- подключение к серверу блокирует межсетевой экран,
|
||||
| антивирус или другие приложения;
|
||||
|- веб-сервис отключен или на техническом обслуживании.'");
|
||||
|
||||
Результат.Отказ = Истина;
|
||||
ТекстОшибки = НСтр("ru = 'При проверке ОКМТО бюджетополучателя через веб-сервис возникли проблемы.'");
|
||||
|
||||
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ПолученныеДанные, ТекстОшибки, HTTPЗапрос.АдресРесурса
|
||||
+ " X-1C-Request-UID:" + ИдентификаторЗапроса, РезультатПроверки.КодСостояния);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьОшибкуОбращенияКВебСервисуПриПолученииОКТМО(Результат)
|
||||
|
||||
Результат.Отказ = Истина;
|
||||
Результат.ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
Результат.ПредставлениеОшибкиДляПользователя = НСтр("ru = 'При проверке ОКМТО бюджетополучателя через веб-сервис возникли проблемы.'");
|
||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,,,
|
||||
ОбработкаОшибок.ПодробноеПредставлениеОшибки(Результат.ИнформацияОбОшибке));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьЗначениеСвойстваЕслиПустое(Приемник, Источник, ИмяСвойстваПриемника, ИмяСвойстваИлиЗначениеИсточника, ЭтоЗначение = Ложь)
|
||||
|
||||
ЗначениеСвойства = ?(ЭтоЗначение, ИмяСвойстваИлиЗначениеИсточника, Источник[ИмяСвойстваИлиЗначениеИсточника]);
|
||||
@@ -6962,7 +7116,7 @@
|
||||
Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки;
|
||||
Результат.Отказ = Истина;
|
||||
|
||||
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ПолученныеДанные, Результат, HTTPЗапрос.АдресРесурса
|
||||
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ПолученныеДанные, Результат.ПодробноеПредставлениеОшибки, HTTPЗапрос.АдресРесурса
|
||||
+ " X-1C-Request-UID:" + ИдентификаторЗапроса, РезультатПроверки.КодСостояния);
|
||||
|
||||
Возврат Результат;
|
||||
@@ -7677,6 +7831,10 @@
|
||||
Возврат "rest/v4/";
|
||||
КонецФункции
|
||||
|
||||
Функция ПрефиксВерсииЗапросаСервисаОКТМО()
|
||||
Возврат "rest/oktmo/v1/";
|
||||
КонецФункции
|
||||
|
||||
// Возвращает информацию из классификатора субъектов РФ.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@@ -8259,7 +8417,7 @@
|
||||
Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки;
|
||||
ОтветОтСервера = Ответ.ПолучитьТелоКакСтроку("UTF-8");
|
||||
|
||||
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервера, Результат, ТекстURL, Ответ.КодСостояния);
|
||||
ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервера, ПредставлениеОшибки, ТекстURL, Ответ.КодСостояния);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -8274,7 +8432,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервераСтрокой, Результат, ТекстURL, КодСостояния)
|
||||
Процедура ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервераСтрокой, ПодробноеПредставлениеОшибки, ТекстURL, КодСостояния)
|
||||
|
||||
ШаблонТекстОтветаСервера = НСтр("ru = '%1
|
||||
|Техническая информация. При запросе: %2
|
||||
@@ -8282,7 +8440,7 @@
|
||||
|с текстом: %4'");
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстОтветаСервера,
|
||||
Результат.ПодробноеПредставлениеОшибки, ТекстURL, КодСостояния, ОтветОтСервераСтрокой);
|
||||
ПодробноеПредставлениеОшибки, ТекстURL, КодСостояния, ОтветОтСервераСтрокой);
|
||||
|
||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
|
||||
|
||||
@@ -8340,6 +8498,19 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СтрокуJSONВСоответствие(Значение)
|
||||
|
||||
ЧтениеJSON = Новый ЧтениеJSON;
|
||||
ЧтениеJSON.УстановитьСтроку(Значение);
|
||||
|
||||
Результат = ПрочитатьJSON(ЧтениеJSON, Истина);
|
||||
|
||||
ЧтениеJSON.Закрыть();
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВосстановлениеПолейКонтактнойИнформации(Свойство, Значение, ДополнительныеПараметрыФункцииПреобразования) Экспорт
|
||||
|
||||
Если СтрЗаканчиваетсяНа(ВРег(Свойство), "ID") И СтрДлина(Значение) = 36 Тогда
|
||||
|
||||
@@ -5671,8 +5671,11 @@
|
||||
ИначеЕсли Режим = "РазделенныеДанныеКонфигурации" Тогда
|
||||
Параметры = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра);
|
||||
Иначе
|
||||
РезультатОбщий = ПредставленияЗаполнены("ОбщиеДанныеКонфигурации");
|
||||
РезультатРазделенный = ПредставленияЗаполнены("РазделенныеДанныеКонфигурации");
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Возврат РезультатРазделенный;
|
||||
КонецЕсли;
|
||||
РезультатОбщий = ПредставленияЗаполнены("ОбщиеДанныеКонфигурации");
|
||||
Если РезультатОбщий = "НеЗаполнены" Или РезультатРазделенный = "НеЗаполнены" Тогда
|
||||
Возврат "НеЗаполнены";
|
||||
ИначеЕсли РезультатОбщий = "Заполняются" Или РезультатРазделенный = "Заполняются" Тогда
|
||||
|
||||
@@ -5296,13 +5296,16 @@
|
||||
Запрос.УстановитьПараметр("СообщениеSMS", СообщениеSMS.Ссылка);
|
||||
|
||||
ЕстьИзменения = Ложь;
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Адресаты = Запрос.Выполнить().Выгрузить();
|
||||
ИдентификаторыСообщений = Адресаты.ВыгрузитьКолонку("ИдентификаторСообщения");
|
||||
СтатусыДоставки = ОтправкаSMS.СтатусыДоставки(ИдентификаторыСообщений);
|
||||
|
||||
Для Каждого Адресат Из Адресаты Цикл
|
||||
|
||||
СостояниеСообщения = СостояниеСообщенияSMSСогласноСтатусуДоставки(ОтправкаSMS.СтатусДоставки(Выборка.ИдентификаторСообщения));
|
||||
СостояниеСообщения = СостояниеСообщенияSMSСогласноСтатусуДоставки(СтатусыДоставки[Адресат.ИдентификаторСообщения]);
|
||||
|
||||
Если СостояниеСообщения <> Выборка.СостояниеСообщения Тогда
|
||||
СообщениеSMS.Адресаты[Выборка.НомерСтроки - 1].СостояниеСообщения = СостояниеСообщения;
|
||||
Если СостояниеСообщения <> Адресат.СостояниеСообщения Тогда
|
||||
СообщениеSMS.Адресаты[Адресат.НомерСтроки - 1].СостояниеСообщения = СостояниеСообщения;
|
||||
ЕстьИзменения = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -5519,20 +5522,27 @@
|
||||
НомераДляОтправки = ТаблицаАдресатовСообщения.ВыгрузитьКолонку("НомерДляОтправки");
|
||||
Попытка
|
||||
РезультатОтправки = ОтправкаSMS.ОтправитьSMS(НомераДляОтправки, ТекстСообщения, "", ОтправлятьВТранслите);
|
||||
Если РезультатОтправки.ОтправленныеСообщения.Количество() = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось отправить %1 по причине:
|
||||
|%2'"),
|
||||
ВыборкаДокументы.Ссылка, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Предупреждение, МетаданныеДокумента, ВыборкаДокументы.Ссылка,
|
||||
УровеньЖурналаРегистрации.Ошибка, МетаданныеДокумента, ВыборкаДокументы.Ссылка,
|
||||
ТекстСообщения);
|
||||
Продолжить;
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
Если ЗначениеЗаполнено(РезультатОтправки.ОписаниеОшибки) Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось отправить %1 по причине:
|
||||
|%2'"),
|
||||
РезультатОтправки.ОписаниеОшибки);
|
||||
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Ошибка, МетаданныеДокумента, ВыборкаДокументы.Ссылка,
|
||||
ТекстСообщения);
|
||||
КонецЕсли;
|
||||
|
||||
ПредставлениеДокумента = Строка(ВыборкаДокументы.Ссылка);
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
@@ -5608,29 +5618,48 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВыборкаДокументы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||||
ОбрабатываемыеДокументы = Новый Соответствие;
|
||||
ИдентификаторыСообщений = Новый Массив;
|
||||
|
||||
ВыборкаДокументы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
|
||||
Пока ВыборкаДокументы.Следующий() Цикл
|
||||
ОбрабатываемыеДокументы[ВыборкаДокументы.Ссылка] = Новый Массив;
|
||||
ВыборкаИдентификаторы = ВыборкаДокументы.Выбрать();
|
||||
Пока ВыборкаИдентификаторы.Следующий() Цикл
|
||||
Адресаты = Новый Структура;
|
||||
Адресаты.Вставить("НомерСтроки");
|
||||
Адресаты.Вставить("ИдентификаторСообщения");
|
||||
Адресаты.Вставить("СостояниеСообщения");
|
||||
ЗаполнитьЗначенияСвойств(Адресаты, ВыборкаИдентификаторы);
|
||||
ОбрабатываемыеДокументы[ВыборкаДокументы.Ссылка].Добавить(Адресаты);
|
||||
ИдентификаторыСообщений.Добавить(Адресаты.ИдентификаторСообщения);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
СтатусыДоставки = ОтправкаSMS.СтатусыДоставки(ИдентификаторыСообщений);
|
||||
|
||||
Для Каждого ОбрабатываемыйДокумент Из ОбрабатываемыеДокументы Цикл
|
||||
Ссылка = ОбрабатываемыйДокумент.Ключ;
|
||||
Адресаты = ОбрабатываемыйДокумент.Значение;
|
||||
|
||||
ТаблицаИзменившихсяСтатусов.Очистить();
|
||||
ПредставлениеДокумента = ОбщегоНазначения.ПредметСтрокой(ВыборкаДокументы.Ссылка);
|
||||
ПредставлениеДокумента = ОбщегоНазначения.ПредметСтрокой(Ссылка);
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить(МетаданныеДокумента.ПолноеИмя());
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", ВыборкаДокументы.Ссылка);
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
ВыборкаИдентификаторы = ВыборкаДокументы.Выбрать();
|
||||
Пока ВыборкаИдентификаторы.Следующий() Цикл
|
||||
Для Каждого Адресат Из Адресаты Цикл
|
||||
|
||||
СостояниеСообщения = СостояниеСообщенияSMSСогласноСтатусуДоставки(ОтправкаSMS.СтатусДоставки(ВыборкаИдентификаторы.ИдентификаторСообщения));
|
||||
СостояниеСообщения = СостояниеСообщенияSMSСогласноСтатусуДоставки(СтатусыДоставки[Адресат.ИдентификаторСообщения]);
|
||||
|
||||
Если СостояниеСообщения <> ВыборкаИдентификаторы.СостояниеСообщения Тогда
|
||||
Если СостояниеСообщения <> Адресат.СостояниеСообщения Тогда
|
||||
НоваяСтрока = ТаблицаИзменившихсяСтатусов.Добавить();
|
||||
НоваяСтрока.НомерСтроки = ВыборкаИдентификаторы.НомерСтроки;
|
||||
НоваяСтрока.НомерСтроки = Адресат.НомерСтроки;
|
||||
НоваяСтрока.СостояниеСообщения = СостояниеСообщения;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -5641,7 +5670,7 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ДокументОбъект = ВыборкаДокументы.Ссылка.ПолучитьОбъект();
|
||||
ДокументОбъект = Ссылка.ПолучитьОбъект();
|
||||
|
||||
Для Каждого ИзменившийсяСтатус Из ТаблицаИзменившихсяСтатусов Цикл
|
||||
ДокументОбъект.Адресаты[ИзменившийсяСтатус.НомерСтроки - 1].СостояниеСообщения = ИзменившийсяСтатус.СостояниеСообщения;
|
||||
@@ -5660,7 +5689,7 @@
|
||||
НСтр("ru = 'Не удалось обновить статусы доставки %1 по причине: %2'"),
|
||||
ПредставлениеДокумента, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
|
||||
УровеньЖурналаРегистрации.Предупреждение, МетаданныеДокумента, ВыборкаДокументы.Ссылка,
|
||||
УровеньЖурналаРегистрации.Предупреждение, МетаданныеДокумента, Ссылка,
|
||||
ТекстСообщения);
|
||||
|
||||
КонецПопытки;
|
||||
@@ -5677,12 +5706,18 @@
|
||||
//
|
||||
Процедура ОтразитьРезультатыОтправкиSMSВДокументе(ДокументОбъект, РезультатОтправки)
|
||||
|
||||
ОтправленныеСообщения = Новый Соответствие;
|
||||
Для Каждого ОтправленноеСообщение Из РезультатОтправки.ОтправленныеСообщения Цикл
|
||||
Для Каждого НайденнаяСтрока Из ДокументОбъект.Адресаты.НайтиСтроки(
|
||||
Новый Структура("НомерДляОтправки", ОтправленноеСообщение.НомерПолучателя)) Цикл
|
||||
НайденнаяСтрока.ИдентификаторСообщения = ОтправленноеСообщение.ИдентификаторСообщения;
|
||||
НайденнаяСтрока.СостояниеСообщения = Перечисления.СостоянияСообщенияSMS.ОтправляетсяПровайдером;
|
||||
КонецЦикла;
|
||||
ОтправленныеСообщения[ОтправленноеСообщение.НомерПолучателя] = ОтправленноеСообщение.ИдентификаторСообщения;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Адресат Из ДокументОбъект.Адресаты Цикл
|
||||
Адресат.ИдентификаторСообщения = ОтправленныеСообщения[Адресат.НомерДляОтправки];
|
||||
Если ЗначениеЗаполнено(Адресат.ИдентификаторСообщения) Тогда
|
||||
Адресат.СостояниеСообщения = Перечисления.СостоянияСообщенияSMS.ОтправляетсяПровайдером;
|
||||
Иначе
|
||||
Адресат.СостояниеСообщения = Перечисления.СостоянияСообщенияSMS.НеДоставлено;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
ДокументОбъект.Состояние = СостояниеДокументаСообщениеSMS(ДокументОбъект);
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
Процедура ОбновитьКомпонентыСПортала(Оповещение, ОбновляемыеКомпоненты) Экспорт
|
||||
|
||||
// Локализация
|
||||
// Локализация
|
||||
ПараметрыФормы = Новый Структура;
|
||||
ПараметрыФормы.Вставить("ОбновляемыеКомпоненты", ОбновляемыеКомпоненты);
|
||||
ОткрытьФорму("Справочник.ВнешниеКомпоненты.Форма.ОбновлениеКомпонентСПортала1СИТС",
|
||||
|
||||
@@ -268,6 +268,7 @@
|
||||
Иначе
|
||||
Объект = Справочники.ВнешниеКомпоненты.СоздатьЭлемент();
|
||||
Объект.ОбновлятьСПортала1СИТС = ОбновлятьАвтоматически;
|
||||
Объект.Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Используется;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(Объект, Информация.Реквизиты); // По данным манифеста.
|
||||
|
||||
@@ -472,8 +472,8 @@
|
||||
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "3.1.9.327";
|
||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("17c42fa8-2ae2-4a12-8193-8f00861b334b");
|
||||
Обработчик.Версия = "3.1.9.343";
|
||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("7d089b8d-5240-4f0a-a6fb-567caa6b2be1");
|
||||
Обработчик.Процедура = "Справочники.ВнешниеКомпоненты.ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
||||
Обработчик.НачальноеЗаполнение = Истина;
|
||||
Обработчик.Комментарий = НСтр("ru = 'Заполнение реквизитов совместимости компонент и добавление стандартных компонент в справочник Внешние компоненты.'");
|
||||
|
||||
@@ -89,19 +89,9 @@
|
||||
Результат.Вставить("Версия", Информация.Реквизиты.Версия);
|
||||
|
||||
Если ИскатьКомпонентуПоследнейВерсии Тогда
|
||||
ЧастиВерсии = СтрРазделить(Результат.Версия, ".");
|
||||
Если ЧастиВерсии.Количество() = 4 Тогда
|
||||
// Версия внешней компоненты больше, чем версия макета.
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Результат.Версия,
|
||||
Результат.КомпонентаПоследнейВерсии.Версия) > 0 Тогда
|
||||
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
|
||||
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
// Если номер версии компоненты не соответствует шаблону, используется компонента из справочника.
|
||||
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
|
||||
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
|
||||
КонецЕсли;
|
||||
|
||||
ЗаменитьНаАктуальнуюКомпонентуИзСправочника(Результат, Контекст.Идентификатор, Информация.Местоположение);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -181,19 +171,9 @@
|
||||
Результат.Вставить("Версия", Информация.Реквизиты.Версия);
|
||||
|
||||
Если ИскатьКомпонентуПоследнейВерсии Тогда
|
||||
ЧастиВерсии = СтрРазделить(Результат.Версия, ".");
|
||||
Если ЧастиВерсии.Количество() = 4 Тогда
|
||||
// Версия внешней компоненты больше, чем версия макета.
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Результат.Версия,
|
||||
Результат.КомпонентаПоследнейВерсии.Версия) > 0 Тогда
|
||||
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
|
||||
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
// Если номер версии компоненты не соответствует шаблону, используется компонента из справочника.
|
||||
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение",
|
||||
Контекст.Идентификатор, Результат.Версия, Информация.Местоположение);
|
||||
КонецЕсли;
|
||||
|
||||
ЗаменитьНаАктуальнуюКомпонентуИзСправочника(Результат, Контекст.Идентификатор, Информация.Местоположение)
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Не Информация.ЗаполненыЦелевыеПлатформы Или ТекущийКлиентПоддерживаетсяКомпонентой(Информация.Реквизиты.ЦелевыеПлатформы) Тогда
|
||||
@@ -303,6 +283,22 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаменитьНаАктуальнуюКомпонентуИзСправочника(Результат, Идентификатор, Местоположение)
|
||||
|
||||
Если СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(СтрЗаменить(Результат.Версия, ".", "")) Тогда
|
||||
ЧастиВерсии = СтрРазделить(Результат.Версия, ".");
|
||||
Если ЧастиВерсии.Количество() = 4 И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Результат.Версия,
|
||||
Результат.КомпонентаПоследнейВерсии.Версия) <= 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Используется компонента из справочника, если ее версия больше, чем версия макета, или не соответствует шаблону.
|
||||
Результат.КомпонентаПоследнейВерсии = Новый Структура("Идентификатор, Версия, Местоположение", Идентификатор,
|
||||
Результат.Версия, Местоположение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Текущий клиент поддерживается компонентой.
|
||||
//
|
||||
// Параметры:
|
||||
|
||||
@@ -409,7 +409,7 @@
|
||||
// внешнего отчета или обработки соответственно.
|
||||
// Внешний отчет или обработка подключаются с защитой от опасных действий.
|
||||
// * ПрерватьВыполнениеЕслиОшибка - Булево - если Истина, то при возникновении ошибки в одном из дочерних фоновых
|
||||
// заданий, выполнение многопоточного фонового задания будет перервано.
|
||||
// заданий, выполнение многопоточного фонового задания будет прервано.
|
||||
// Выполнение уже запущенных дочерних фоновых задания будет отменно.
|
||||
// Параметр только для функции ВыполнитьФункциюВНесколькоПотоков.
|
||||
//
|
||||
@@ -460,7 +460,7 @@
|
||||
// внешнего отчета или обработки соответственно.
|
||||
// Внешний отчет или обработка подключаются с защитой от опасных действий.
|
||||
// * ПрерватьВыполнениеЕслиОшибка - Булево - если Истина, то при возникновении ошибки в одном из дочерних фоновых
|
||||
// заданий, выполнение многопоточного фонового задания будет перервано.
|
||||
// заданий, выполнение многопоточного фонового задания будет прервано.
|
||||
// Выполнение уже запущенных дочерних фоновых задания будет отменно.
|
||||
// Параметр только для функции ВыполнитьПроцедуруВНесколькоПотоков.
|
||||
//
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
ИспользуютсяПрофилиБезопасности = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьРазрешения = Ложь;
|
||||
Если ИспользуютсяПрофилиБезопасности Тогда
|
||||
|
||||
МодульРаботаВБезопасномРежимеСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежимеСлужебный");
|
||||
@@ -79,6 +80,8 @@
|
||||
БезопасныйРежим = ПолучитьФункциональнуюОпцию("СтандартныеПодсистемыВМоделиСервиса") Или ПараметрыЗапуска.БезопасныйРежим;
|
||||
|
||||
Если БезопасныйРежим Тогда
|
||||
РежимСовместимости = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "РежимСовместимостиРазрешений");
|
||||
|
||||
ЗапросРазрешений = Новый Запрос(
|
||||
"ВЫБРАТЬ ПЕРВЫЕ 1
|
||||
| ДополнительныеОтчетыИОбработкиРазрешения.НомерСтроки,
|
||||
@@ -88,21 +91,31 @@
|
||||
|ГДЕ
|
||||
| ДополнительныеОтчетыИОбработкиРазрешения.Ссылка = &Ссылка");
|
||||
ЗапросРазрешений.УстановитьПараметр("Ссылка", Ссылка);
|
||||
ЕстьРазрешений = Не ЗапросРазрешений.Выполнить().Пустой();
|
||||
ЕстьРазрешения = Не ЗапросРазрешений.Выполнить().Пустой()
|
||||
И РежимСовместимости = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2;
|
||||
|
||||
РежимСовместимости = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "РежимСовместимостиРазрешений");
|
||||
Если РежимСовместимости = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_2_2
|
||||
И ЕстьРазрешений Тогда
|
||||
Если ЕстьРазрешения Тогда
|
||||
БезопасныйРежим = Ложь;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписатьПримечание(Ссылка,
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подключение, %1 = ""%2"".'"), "БезопасныйРежим", БезопасныйРежим));
|
||||
ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , БезопасныйРежим,
|
||||
ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , Истина,
|
||||
ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
|
||||
ВнешнийОбъект = Менеджер.Создать(ИмяОбработки);
|
||||
СведенияОВнешнейОбработке = ВнешнийОбъект.СведенияОВнешнейОбработке();
|
||||
Если (Не СведенияОВнешнейОбработке.БезопасныйРежим Или ЕстьРазрешения)
|
||||
И Не БезопасныйРежим Тогда
|
||||
// Повторное подключение в небезопасном режиме, если разрешено.
|
||||
ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , БезопасныйРежим,
|
||||
ОбщегоНазначения.ОписаниеЗащитыБезПредупреждений());
|
||||
КонецЕсли;
|
||||
|
||||
ЗаписатьПримечание(Ссылка,
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Подключение, %1 = ""%2"".'"), "БезопасныйРежим",
|
||||
СведенияОВнешнейОбработке.БезопасныйРежим Или БезопасныйРежим));
|
||||
|
||||
Возврат ИмяОбработки;
|
||||
|
||||
КонецФункции
|
||||
@@ -875,12 +888,10 @@
|
||||
// Обработчики событий подсистем конфигурации.
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных.
|
||||
Процедура ПриДобавленииПереименованийОбъектовМетаданных(Итог) Экспорт
|
||||
Процедура ПриДобавленииПереименованийОбъектовМетаданных(Переименования) Экспорт
|
||||
|
||||
Библиотека = "СтандартныеПодсистемы";
|
||||
|
||||
ОбщегоНазначения.ДобавитьПереименование(
|
||||
Итог, "2.3.3.3", "Роль.ИспользованиеДополнительныхОтчетовИОбработок", "Роль.ЧтениеДополнительныхОтчетовИОбработок", Библиотека);
|
||||
ОбщегоНазначения.ДобавитьПереименование(Переименования, "2.3.3.3",
|
||||
"Роль.ИспользованиеДополнительныхОтчетовИОбработок", "Роль.ЧтениеДополнительныхОтчетовИОбработок", "СтандартныеПодсистемы");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -185,6 +185,7 @@
|
||||
НастройкиОжидания.ВыводитьОкноОжидания = Истина;
|
||||
НастройкиОжидания.ПолучатьРезультат = ПолучатьРезультат; // для обратной совместимости
|
||||
НастройкиОжидания.ВыводитьСообщения = Истина;
|
||||
НастройкиОжидания.ВыводитьПрогрессВыполнения = Истина;
|
||||
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, Обработчик, НастройкиОжидания);
|
||||
|
||||
|
||||
@@ -432,6 +432,7 @@
|
||||
ОписаниеИспользованияСобытияДоступа.ПоляРегистрации = ПоляРегистрации;
|
||||
ОписанияИспользования.Добавить(ОписаниеИспользованияСобытияДоступа);
|
||||
КонецЦикла;
|
||||
СвернутьНастройкиДляОдинаковыхТаблиц(ОписанияИспользования);
|
||||
|
||||
// "Включение" ("Выключение") использования события "Доступ. Доступ"
|
||||
// журнала регистрации по созданному описанию.
|
||||
@@ -1217,6 +1218,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьПрефиксИнформационнойБазыИОрганизации(Источник, СтандартнаяОбработка, Префикс) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрефиксацияОбъектов") Тогда
|
||||
МодульПрефиксацияОбъектовСобытия = ОбщегоНазначения.ОбщийМодуль("ПрефиксацияОбъектовСобытия");
|
||||
МодульПрефиксацияОбъектовСобытия.УстановитьПрефиксИнформационнойБазыИОрганизации(Источник, СтандартнаяОбработка,
|
||||
Префикс);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СрокиХранения
|
||||
@@ -2576,6 +2587,56 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Настройки - Массив из ОписаниеИспользованияСобытияДоступЖурналаРегистрации
|
||||
//
|
||||
Процедура СвернутьНастройкиДляОдинаковыхТаблиц(Настройки)
|
||||
|
||||
ДобавленныеНастройки = Новый Соответствие;
|
||||
Результат = Новый Массив;
|
||||
|
||||
Для Каждого Настройка Из Настройки Цикл
|
||||
Описание = ДобавленныеНастройки.Получить(ВРег(Настройка.Объект));
|
||||
Если Описание = Неопределено Тогда
|
||||
Описание = Новый Структура("Настройка, ДляПоиска", Настройка);
|
||||
ДобавленныеНастройки.Вставить(ВРег(Настройка.Объект), Описание);
|
||||
Результат.Добавить(Настройка);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Если Описание.ДляПоиска = Неопределено Тогда
|
||||
ОписаниеДляПоиска = Новый Структура;
|
||||
ОписаниеДляПоиска.Вставить("ПоляДоступа", Новый Соответствие);
|
||||
ОписаниеДляПоиска.Вставить("ПоляРегистрации", Новый Соответствие);
|
||||
Для Каждого ПолеДоступа Из Описание.Настройка.ПоляДоступа Цикл
|
||||
ОписаниеДляПоиска.ПоляДоступа.Вставить(ВРег(ПолеДоступа), Истина);
|
||||
КонецЦикла;
|
||||
Для Каждого ПолеРегистрации Из Описание.Настройка.ПоляРегистрации Цикл
|
||||
ОписаниеДляПоиска.ПоляРегистрации.Вставить(ВРег(ПолеРегистрации), Истина);
|
||||
КонецЦикла;
|
||||
Описание.ДляПоиска = ОписаниеДляПоиска;
|
||||
Иначе
|
||||
ОписаниеДляПоиска = Описание.ДляПоиска;
|
||||
КонецЕсли;
|
||||
Для Каждого ПолеДоступа Из Настройка.ПоляДоступа Цикл
|
||||
Если ОписаниеДляПоиска.ПоляДоступа.Получить(ВРег(ПолеДоступа)) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ОписаниеДляПоиска.ПоляДоступа.Вставить(ВРег(ПолеДоступа), Истина);
|
||||
Описание.Настройка.ПоляДоступа.Добавить(ПолеДоступа);
|
||||
КонецЦикла;
|
||||
Для Каждого ПолеРегистрации Из Настройка.ПоляРегистрации Цикл
|
||||
Если ОписаниеДляПоиска.ПоляРегистрации.Получить(ВРег(ПолеРегистрации)) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ОписаниеДляПоиска.ПоляРегистрации.Вставить(ВРег(ПолеРегистрации), Истина);
|
||||
Описание.Настройка.ПоляРегистрации.Добавить(ПолеРегистрации);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Настройки = Результат;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область ИзменениеНастроекСкрытияПерсональныхДанных
|
||||
|
||||
Функция ЗапросДанныеДействующихСогласий(Субъекты, Дата = Неопределено, ИсключаемыйРегистратор = Неопределено)
|
||||
|
||||
@@ -820,6 +820,11 @@
|
||||
МодульЭлектроннаяПодписьСлужебный.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS") Тогда
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
МодульСервисКриптографииDSSСлужебный.ПриОпределенииОбработчиковПоставляемыхДанных(Обработчики);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2202,6 +2207,11 @@
|
||||
МодульКонтрольРассылкиОтчетов.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
||||
МодульСертификатыЭлектроннойПодписи = ОбщегоНазначения.ОбщийМодуль("Отчеты.СертификатыЭлектроннойПодписи");
|
||||
МодульСертификатыЭлектроннойПодписи.ПриОпределенииОбъектовСКомандамиОтчетов(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.
|
||||
@@ -3154,6 +3164,11 @@
|
||||
МодульКонтрольВеденияУчетаСлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНССлужебный");
|
||||
МодульМашиночитаемыеДоверенностиФНССлужебный.ПриДобавленииОбработчиковОбновления(Обработчики);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
|
||||
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
|
||||
МодульМультиязычностьСервер.ПриДобавленииОбработчиковОбновления(Обработчики);
|
||||
@@ -3790,6 +3805,11 @@
|
||||
МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных");
|
||||
МодульЗащитаПерсональныхДанных.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда
|
||||
МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНССлужебный");
|
||||
МодульМашиночитаемыеДоверенностиФНССлужебный.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
|
||||
МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный");
|
||||
|
||||
@@ -1482,7 +1482,7 @@
|
||||
КонецФункции
|
||||
|
||||
// Определяет для переданной даты ближайший к ней рабочий день по данным основного производственного календаря РФ,
|
||||
// заполненного по умолчанию.
|
||||
// заполненного по умолчанию. Если НачальнаяДата является рабочей датой, то она же и возвращается.
|
||||
// Используется в случаях, когда производственный календарь еще не заполнен.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -1506,13 +1506,18 @@
|
||||
Если ДанныеКалендаряПоУмолчанию.Найти(Год, "Год") = Неопределено Тогда
|
||||
ДополнитьДанныеКалендаряПоУмолчанию(ДанныеКалендаряПоУмолчанию, Год, ПолучатьПредшествующую);
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаТаблицы = ДанныеКалендаряПоУмолчанию.Найти(НачальнаяДата, "Дата");
|
||||
Если СтрокаТаблицы = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
Если СтрокаТаблицы.ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий
|
||||
Или СтрокаТаблицы.ВидДня = Перечисления.ВидыДнейПроизводственногоКалендаря.Предпраздничный Тогда
|
||||
Возврат СтрокаТаблицы.Дата;
|
||||
КонецЕсли;
|
||||
|
||||
Индекс = ДанныеКалендаряПоУмолчанию.Индекс(СтрокаТаблицы);
|
||||
ДобавляемоеЗначение = ?(ПолучатьПредшествующую, -1, 1);
|
||||
|
||||
Пока Истина Цикл
|
||||
Индекс = Индекс + 1;
|
||||
Если Индекс >= ДанныеКалендаряПоУмолчанию.Количество() Тогда
|
||||
|
||||
@@ -2404,33 +2404,23 @@
|
||||
ИмяПоляПоиска = "ПредставлениеПутиКДанным";
|
||||
КонецЕсли;
|
||||
|
||||
Владелец = Неопределено;
|
||||
Папки = Новый Массив;
|
||||
Владельцы = Новый Массив;
|
||||
|
||||
Для Каждого Реквизит Из КоллекцияРеквизитов Цикл
|
||||
Если НРег(Реквизит[ИмяПоляПоиска]) = НРег(ПутьКДанным) Тогда
|
||||
Возврат Реквизит;
|
||||
КонецЕсли;
|
||||
Если Реквизит.Папка Тогда
|
||||
Папки.Добавить(Реквизит);
|
||||
Иначе
|
||||
Если СтрНачинаетсяС(НРег(ПутьКДанным), НРег(Реквизит[ИмяПоляПоиска]) + ".") Тогда
|
||||
Владелец = Реквизит;
|
||||
КонецЕсли;
|
||||
Если Реквизит.Папка Или СтрНачинаетсяС(НРег(ПутьКДанным), НРег(Реквизит[ИмяПоляПоиска]) + ".") Тогда
|
||||
Владельцы.Добавить(Реквизит);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если Владелец <> Неопределено Тогда
|
||||
Для Каждого Владелец Из Владельцы Цикл
|
||||
РазвернутьРеквизит(Владелец.ПолучитьИдентификатор(), ИмяСписка, Форма);
|
||||
Возврат НайтиРеквизит(Форма, ИмяСписка, ПутьКДанным, Владелец.ПолучитьЭлементы(), ИскатьПоПредставлению);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Папка Из Папки Цикл
|
||||
РазвернутьРеквизит(Папка.ПолучитьИдентификатор(), ИмяСписка, Форма);
|
||||
Реквизит = НайтиРеквизит(Форма, ИмяСписка, ПутьКДанным, Папка.ПолучитьЭлементы(), ИскатьПоПредставлению);
|
||||
НайденныйРеквизит = НайтиРеквизит(Форма, ИмяСписка, ПутьКДанным, Владелец.ПолучитьЭлементы(), ИскатьПоПредставлению);
|
||||
|
||||
Если Реквизит <> Неопределено Тогда
|
||||
Возврат Реквизит;
|
||||
Если НайденныйРеквизит <> Неопределено Тогда
|
||||
Возврат НайденныйРеквизит;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
@@ -655,7 +655,10 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ТаблицаФормы.УстановитьДействие("Выбор", "Подключаемый_Выбор");
|
||||
ТекущееДействие = ТаблицаФормы.ПолучитьДействие("Выбор");
|
||||
Если Не ЗначениеЗаполнено(ТекущееДействие) Тогда
|
||||
ТаблицаФормы.УстановитьДействие("Выбор", "Подключаемый_Выбор");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
@@ -74,19 +74,30 @@
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваСубъекта = ЭлектроннаяПодпись.СвойстваСубъектаСертификата(Сертификат);
|
||||
|
||||
Отбор = Новый Структура;
|
||||
|
||||
Если ЗначениеЗаполнено(СвойстваСубъекта.ОГРНИП) Тогда
|
||||
Отбор.Вставить(Префикс + "ОГРН", СвойстваСубъекта.ОГРНИП);
|
||||
Отбор.Вставить(Префикс + "ИННФЛ", СвойстваСубъекта.ИНН);
|
||||
ИначеЕсли ЗначениеЗаполнено(СвойстваСубъекта.Организация) Тогда
|
||||
ИначеЕсли ЗначениеЗаполнено(СвойстваСубъекта.ИННЮЛ) Тогда
|
||||
Отбор.Вставить(Префикс + "ОГРН", ?(ЗначениеЗаполнено(СвойстваСубъекта.ОГРН), СвойстваСубъекта.ОГРН, ""));
|
||||
Отбор.Вставить(Префикс + "ИННФЛ", СвойстваСубъекта.ИНН);
|
||||
Отбор.Вставить(Префикс + "ИНН", СвойстваСубъекта.ИННЮЛ);
|
||||
Отбор.Вставить(Префикс + "СНИЛС", СвойстваСубъекта.СНИЛС);
|
||||
Иначе
|
||||
ИначеЕсли ЗначениеЗаполнено(СвойстваСубъекта.Организация) Тогда // Казначейство
|
||||
Отбор.Вставить(Префикс + "НаименованиеОрганизации", СвойстваСубъекта.Организация);
|
||||
Отбор.Вставить(Префикс + "ИННФЛ", СвойстваСубъекта.ИНН);
|
||||
Отбор.Вставить(Префикс + "СНИЛС", СвойстваСубъекта.СНИЛС);
|
||||
Иначе
|
||||
СвойстваИздателя = ЭлектроннаяПодпись.СвойстваИздателяСертификата(Сертификат);
|
||||
Если МашиночитаемыеДоверенностиФНССлужебный.СертификатНотариуса(СвойстваИздателя, СвойстваСубъекта) Тогда
|
||||
Отбор.Вставить(Префикс + "ФИО", СвойстваСубъекта.Фамилия + " " + СвойстваСубъекта.Имя + ?(ЗначениеЗаполнено(
|
||||
СвойстваСубъекта.Отчество), " " + СвойстваСубъекта.Отчество, ""));
|
||||
Иначе
|
||||
Отбор.Вставить(Префикс + "ИННФЛ", СвойстваСубъекта.ИНН);
|
||||
Отбор.Вставить(Префикс + "СНИЛС", СвойстваСубъекта.СНИЛС);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Отбор;
|
||||
@@ -156,6 +167,7 @@
|
||||
| МашиночитаемыеДоверенностиПредставители.КПП КАК ПредставительКПП,
|
||||
| МашиночитаемыеДоверенностиПредставители.Организация КАК ПредставительОрганизация,
|
||||
| МашиночитаемыеДоверенностиПредставители.ФизическоеЛицо КАК ПредставительФизическоеЛицо,
|
||||
| МашиночитаемыеДоверенностиПредставители.НаименованиеОрганизации КАК ПредставительНаименованиеОрганизации,
|
||||
| МашиночитаемыеДоверенностиДоверители.ИНН КАК ДоверительИНН,
|
||||
| МашиночитаемыеДоверенностиДоверители.ИННФЛ КАК ДоверительИННФЛ,
|
||||
| МашиночитаемыеДоверенностиДоверители.ОГРН КАК ДоверительОГРН,
|
||||
@@ -163,6 +175,7 @@
|
||||
| МашиночитаемыеДоверенностиДоверители.КПП КАК ДоверительКПП,
|
||||
| МашиночитаемыеДоверенностиДоверители.Организация КАК ДоверительОрганизация,
|
||||
| МашиночитаемыеДоверенностиДоверители.ФизическоеЛицо КАК ДоверительФизическоеЛицо,
|
||||
| МашиночитаемыеДоверенностиДоверители.НаименованиеОрганизации КАК ДоверительНаименованиеОрганизации,
|
||||
| МашиночитаемыеДоверенности.НомерДоверенности КАК НомерДоверенности,
|
||||
| МашиночитаемыеДоверенности.Верна КАК Верна,
|
||||
| МашиночитаемыеДоверенности.Статус КАК Статус,
|
||||
|
||||
@@ -99,9 +99,9 @@
|
||||
// * ДокументВид - Строка
|
||||
// * ДокументНомер - Строка
|
||||
// * ДокументКемВыдан - Строка
|
||||
// * ДокументДатаВыдачи - Строка
|
||||
// * ДокументКодПодразделения - Строка
|
||||
// * ДокументСрокДействия - Строка
|
||||
// * ДокументДатаВыдачи - Дата
|
||||
// * ДокументКодПодразделения - Строка - код подразделения в виде 999-999
|
||||
// * ДокументСрокДействия - Дата
|
||||
// * Гражданство - СправочникСсылка.СтраныМира
|
||||
// * БезГражданства - Булево
|
||||
// * МестоРождения - Строка
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
+17
-57
@@ -8,59 +8,21 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция АвторизоватьсяНаСервереМЧДРР() Экспорт
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.АвторизоватьсяНаСервереМЧДРР();
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьНомерМЧДРР(ТокенДоступа = "") Экспорт
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПолучитьНомерМЧДРР(ТокенДоступа);
|
||||
КонецФункции
|
||||
|
||||
Функция ЗарегистрироватьМЧДРР(ИмяФайлаВыгрузки, ДанныеИлиАдресВыгрузки, ДанныеИлиАдресПодписи, ТокенДоступа = "",
|
||||
НомерДоверенности = "") Экспорт
|
||||
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗарегистрироватьМЧДРР(
|
||||
ИмяФайлаВыгрузки, ДанныеИлиАдресВыгрузки, ДанныеИлиАдресПодписи, ТокенДоступа, НомерДоверенности);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗагрузитьДоверенностьИзРеестра(НомерДоверенности, ИННДоверителя, ТокенДоступа = "") Экспорт
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗагрузитьДоверенностьИзРеестра(НомерДоверенности, ИННДоверителя, ТокенДоступа);
|
||||
КонецФункции
|
||||
|
||||
Функция ОтменитьМЧДРР(ИмяФайлаВыгрузки, ДанныеИлиАдресВыгрузки, ДанныеИлиАдресПодписи, Доверенность, ТокенДоступа = "") Экспорт
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ОтменитьМЧДРР(ИмяФайлаВыгрузки, ДанныеИлиАдресВыгрузки, ДанныеИлиАдресПодписи, Доверенность, ТокенДоступа);
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьФайлОтменыДоверенности(Доверенность, ПричинаОтмены) Экспорт
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПолучитьФайлОтменыДоверенности(Доверенность, ПричинаОтмены);
|
||||
КонецФункции
|
||||
|
||||
Функция ИспользуетсяРежимТестирования() Экспорт
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ИспользуетсяРежимТестирования();
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьПараметрСеансаПараметрыАвторизацииВРаспределенномРеестре(
|
||||
ИмяПараметра = Неопределено,
|
||||
УстановленныеПараметры = Неопределено) Экспорт
|
||||
МашиночитаемыеДоверенностиФНССлужебный.УстановитьПараметрСеансаПараметрыАвторизацииВРаспределенномРеестре(ИмяПараметра, УстановленныеПараметры)
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ДоверенностиДляНалоговыхОрганов(Доверенности) Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||
| ИСТИНА
|
||||
|ИЗ
|
||||
| Справочник.МашиночитаемыеДоверенности КАК МашиночитаемыеДоверенности
|
||||
|ГДЕ
|
||||
| МашиночитаемыеДоверенности.Ссылка В(&Доверенности)
|
||||
| И МашиночитаемыеДоверенности.ДляНалоговыхОрганов";
|
||||
|
||||
Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ
|
||||
| ИСТИНА
|
||||
|ИЗ
|
||||
| Справочник.МашиночитаемыеДоверенности КАК МашиночитаемыеДоверенности
|
||||
|ГДЕ
|
||||
| МашиночитаемыеДоверенности.Ссылка В(&Доверенности)
|
||||
| И МашиночитаемыеДоверенности.ДляНалоговыхОрганов");
|
||||
Запрос.УстановитьПараметр("Доверенности", Доверенности);
|
||||
|
||||
Результат = Запрос.Выполнить();
|
||||
Возврат Не Результат.Пустой();
|
||||
Возврат Не Запрос.Выполнить().Пустой();
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -68,16 +30,20 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция РезультатПроверкиДоверенности(Знач Доверенность, Знач ПроверятьВРеестреФНС = Неопределено, Знач ИдентификаторФормы = Неопределено) Экспорт
|
||||
Функция РезультатПроверкиДоверенности(Знач Доверенность, Знач ПроверятьВРеестреФНС = Неопределено,
|
||||
Знач ИдентификаторФормы = Неопределено) Экспорт
|
||||
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиДанныхДоверенности(МашиночитаемыеДоверенностиФНССлужебный.ДанныеМЧД(Доверенность),
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиДанныхДоверенности(
|
||||
МашиночитаемыеДоверенностиФНССлужебный.ДанныеМЧД(Доверенность),
|
||||
ПроверятьВРеестреФНС, ИдентификаторФормы);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РезультатПроверкиПодписиПоМЧД(Знач Доверенность, Знач ПодписанныйОбъект, Знач Сертификат, Знач НаДату, Знач ГотовыеПроверки) Экспорт
|
||||
Функция РезультатПроверкиПодписиПоМЧД(Знач Доверенность, Знач ПодписанныйОбъект, Знач Сертификат, Знач НаДату,
|
||||
Знач ГотовыеПроверки) Экспорт
|
||||
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(Доверенность, ПодписанныйОбъект, Сертификат, НаДату, ГотовыеПроверки);
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.РезультатПроверкиПодписиПоМЧД(Доверенность, ПодписанныйОбъект,
|
||||
Сертификат, НаДату, ГотовыеПроверки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -96,12 +62,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ФайлыДоверенности(Знач Доверенность, Знач ДляНалоговыхОрганов) Экспорт
|
||||
|
||||
Возврат МашиночитаемыеДоверенностиФНС.ФайлыДоверенности(Доверенность, ДляНалоговыхОрганов);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает машиночитаемые доверенности в виде набора файлов.
|
||||
// Если файлы отдельно взятой доверенности еще не сформированы, то по ней возвращается пустой набор файлов.
|
||||
//
|
||||
@@ -111,7 +71,7 @@
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение:
|
||||
// * Ключ - СправочникСсылка.МашиночитаемыеДоверенности
|
||||
// * Значение - см. ФайлыДоверенности
|
||||
// * Значение - см. МашиночитаемыеДоверенностиФНС.ФайлыДоверенности
|
||||
//
|
||||
Функция ФайлыДоверенностей(Знач Доверенности, Знач ДляНалоговыхОрганов) Экспорт
|
||||
|
||||
|
||||
@@ -83,14 +83,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриОбработкеНавигационнойСсылкиОшибкиПроверкиПодписи(Форма, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) Экспорт
|
||||
Процедура ПриОбработкеНавигационнойСсылкиОшибкиПроверкиПодписи(Форма, ИмяЭлементаНадписьОшибка, СтандартнаяОбработка) Экспорт
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Если ЗначениеЗаполнено(НавигационнаяСсылкаФорматированнойСтроки) Тогда
|
||||
Если ЗначениеЗаполнено(ИмяЭлементаНадписьОшибка) Тогда
|
||||
|
||||
Ошибка = Новый Структура;
|
||||
Ошибка.Вставить("ОписаниеОшибки", НавигационнаяСсылкаФорматированнойСтроки);
|
||||
Ошибка.Вставить("ОписаниеОшибки", Строка(Форма.Элементы[ИмяЭлементаНадписьОшибка].Заголовок));
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
|
||||
НСтр("ru='Проверка доверенности подписи'"), "", Ошибка, Новый Структура);
|
||||
@@ -104,7 +104,7 @@
|
||||
Верна = Истина;
|
||||
Массив = Новый Массив;
|
||||
|
||||
Для Каждого Результат Из РезультатПроверки Цикл // см. МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РезультатПроверкиПодписиПоМЧД
|
||||
Для Каждого Результат Из РезультатПроверки Цикл // см. МашиночитаемыеДоверенностиФНССлужебный.НовыйРезультатПроверкиПодписиПоМЧД
|
||||
|
||||
Проверка = "";
|
||||
МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ТекстПроверкиМЧД(Результат, Верна, Проверка);
|
||||
@@ -278,7 +278,7 @@
|
||||
ПараметрыФормы = ПараметрыРасширенногоПредставленияОшибки();
|
||||
ПараметрыФормы.ЗаголовокПредупреждения = Контекст.ЗаголовокПредупреждения;
|
||||
ПараметрыФормы.ТекстОшибки = Ошибка.ТекстОшибки;
|
||||
ПараметрыФормы.ОписаниеОшибки = Ошибка.Решение;
|
||||
ПараметрыФормы.ОписаниеОшибки = СтрШаблон("%1: %2", Контекст.ЗаголовокПредупреждения, Ошибка.ТекстОшибки);
|
||||
ПараметрыФормы.ПоказатьТребуетсяПомощь = Истина;
|
||||
ПараметрыФормы.ПоказатьИнструкцию = Истина;
|
||||
ПараметрыФормы.ИнформацияДляПоддержки = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
@@ -286,7 +286,6 @@
|
||||
"ТехническаяИнформация");
|
||||
|
||||
ПараметрыФормы.ДополнительныеДанные.Вставить("ДополнительныеДанныеПроверок", Ошибка);
|
||||
ПараметрыФормы.ДополнительныеДанные.Вставить("ДоверенностьМЧД", Ошибка.ДополнительныеФайлы);
|
||||
|
||||
ОткрытьФорму("ОбщаяФорма.РасширенноеПредставлениеОшибки",
|
||||
ПараметрыФормы, Контекст.Форма,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
@@ -342,9 +341,6 @@
|
||||
|
||||
Процедура ПолучитьДоверенностьИзРеестра(ОповещениеОПолучении, НомерДоверенности, ИННДоверителя) Экспорт
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Ошибка");
|
||||
|
||||
РезультатПолучения = МашиночитаемыеДоверенностиФНССлужебныйВызовСервера.ЗагрузитьДоверенностьИзРеестра(НомерДоверенности, ИННДоверителя);
|
||||
Если ЗначениеЗаполнено(РезультатПолучения.Ошибка) Тогда
|
||||
КонтекстОшибки = КонтекстДляОбработкиОшибкиРР();
|
||||
@@ -352,8 +348,9 @@
|
||||
ОбработатьОшибкуВзаимодействияРР(РезультатПолучения.Ошибка, КонтекстОшибки);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ВыполнитьОбработкуОповещения(ОповещениеОПолучении, РезультатПолучения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыгрузитьДоверенностьВФайл(Знач Доверенность) Экспорт
|
||||
|
||||
+13
-80
@@ -6,50 +6,6 @@
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Результат проверки подписи по МЧД.
|
||||
//
|
||||
// Параметры:
|
||||
// Доверенность - СправочникСсылка.МашиночитаемыеДоверенности
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * МашиночитаемаяДоверенность - СправочникСсылка.МашиночитаемыеДоверенности
|
||||
// * Представление - Строка - представление доверенности для отображения пользователям, т.к. может не быть прав на чтение.
|
||||
// * ТребуетсяПроверка - Булево
|
||||
// * ДатаПроверки - Дата
|
||||
// * Верна - Булево
|
||||
// * ПодписантСоответствуетПредставителю - Булево
|
||||
// * СовместныеПолномочия - Булево
|
||||
// * СовместныеПолномочияВерны - Булево
|
||||
// * СтатусВернаУстановленВручную - Булево
|
||||
// * УстановившийСтатусВерна - СправочникСсылка.Пользователи
|
||||
// * ПротоколПроверки - Соответствие из КлючИЗначение:
|
||||
// ** Ключ - Строка - идентификатор проверки
|
||||
// ** Значение - см. МашиночитаемыеДоверенностиФНС.РезультатПроверкиДляПротокола
|
||||
//
|
||||
Функция РезультатПроверкиПодписиПоМЧД(Доверенность) Экспорт
|
||||
|
||||
Структура = Новый Структура;
|
||||
Структура.Вставить("Представление");
|
||||
Структура.Вставить("МашиночитаемаяДоверенность", Доверенность);
|
||||
Структура.Вставить("ТребуетсяПроверка", Истина);
|
||||
Структура.Вставить("ДатаПроверки");
|
||||
Структура.Вставить("Верна");
|
||||
Структура.Вставить("ПодписантСоответствуетПредставителю");
|
||||
Структура.Вставить("СовместныеПолномочия");
|
||||
Структура.Вставить("СовместныеПолномочияВерны");
|
||||
Структура.Вставить("ПротоколПроверки");
|
||||
Структура.Вставить("СтатусВернаУстановленВручную", Ложь);
|
||||
Структура.Вставить("УстановившийСтатусВерна");
|
||||
|
||||
Возврат Структура;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ПерсональныеДанные() Экспорт
|
||||
@@ -75,29 +31,6 @@
|
||||
Или СтрНачинаетсяС(КодПолномочия, "FNS_");
|
||||
КонецФункции
|
||||
|
||||
Функция РасчетныйСтатусДокумента(ТехническийСтатус, Верна) Экспорт
|
||||
|
||||
Если ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Зарегистрирована")
|
||||
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.РегистрацияОтмены")
|
||||
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Активна") Тогда
|
||||
Если Верна Тогда
|
||||
РасчетныйСтатусДокумента = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Действует");
|
||||
Иначе
|
||||
РасчетныйСтатусДокумента = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.НеДействует");
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Создание")
|
||||
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписание")
|
||||
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписана")
|
||||
Или ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Регистрация") Тогда
|
||||
РасчетныйСтатусДокумента = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик");
|
||||
Иначе
|
||||
РасчетныйСтатусДокумента = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.НеДействует");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат РасчетныйСтатусДокумента;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВнешниеСтатусы() Экспорт
|
||||
|
||||
ВнешниеСтатусы = Новый Соответствие;
|
||||
@@ -128,21 +61,22 @@
|
||||
// Реквизиты организации.
|
||||
//
|
||||
// Параметры:
|
||||
// СторонаМЧД - ПеречислениеСсылка.ТипыУчастниковМЧД, Неопределено
|
||||
// Назначение - см. НазначениеДоверенностиДляПроверкиРеквизитов
|
||||
// ДляЗаполнения - Булево - если Истина, полный список реквизитов
|
||||
// ВидОрганизации - Неопределено, Строка - "ИндивидуальныйПредприниматель", "ИностраннаяОрганизация", "Филиал"
|
||||
// Назначение - см. НазначениеДоверенности
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СписокЗначений
|
||||
//
|
||||
Функция РеквизитыОрганизацииСписок(СторонаМЧД, ДляЗаполнения = Истина, ВидОрганизации = Неопределено, Назначение = Неопределено) Экспорт
|
||||
Функция РеквизитыОрганизацииСписок(Назначение = Неопределено, ДляЗаполнения = Истина, ВидОрганизации = Неопределено) Экспорт
|
||||
|
||||
Если Назначение = Неопределено Тогда
|
||||
Назначение = НазначениеДоверенностиДляПроверкиРеквизитов();
|
||||
КонецЕсли;
|
||||
ЭтоДоверитель = Назначение.ТипУчастника = ПредопределенноеЗначение("Перечисление.ТипыУчастниковМЧД.Доверитель");
|
||||
|
||||
// Пометка списка Истина означает, что поле необязательное
|
||||
|
||||
Реквизиты = Новый СписокЗначений;
|
||||
Реквизиты.Добавить("ЭтоИндивидуальныйПредприниматель", НСтр("ru = 'Индивидуальный предприниматель'"), Истина);
|
||||
Реквизиты.Добавить("ЭтоФизическоеЛицо", НСтр("ru = 'Физическое лицо'"), Истина);
|
||||
@@ -151,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 = 'Адрес юридического лица на территории государства'"), Истина);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -225,9 +158,9 @@
|
||||
// Реквизиты физического лица.
|
||||
//
|
||||
// Параметры:
|
||||
// Назначение - см. НазначениеДоверенностиДляПроверкиРеквизитов
|
||||
// ДляЗаполнения - Булево - если Истина, полный список реквизитов
|
||||
// ВидФизическогоЛица - Неопределено, Строка - "ИндивидуальныйПредприниматель", "ДолжностноеЛицо", "ФизическоеЛицо"
|
||||
// Назначение - см. НазначениеДоверенности
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СписокЗначений
|
||||
@@ -564,13 +497,13 @@
|
||||
ИначеЕсли Не ЗначениеЗаполнено(Результат.ДатаПроверкиИзДанныхДоверенности) Тогда
|
||||
|
||||
ОписаниеОшибки = НовыеСвойстваОшибки();
|
||||
ОписаниеОшибки.Описание = НСтр("ru='Статус доверенности в программе - требуется проверка'");
|
||||
ОписаниеОшибки.Описание = НСтр("ru='Статус доверенности - требуется проверка'");
|
||||
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
|
||||
Ошибки.Добавить(ОписаниеОшибки.Описание);
|
||||
Иначе
|
||||
|
||||
ОписаниеОшибки = НовыеСвойстваОшибки();
|
||||
ОписаниеОшибки.Описание = НСтр("ru='Статус доверенности в программе - не верна'");
|
||||
ОписаниеОшибки.Описание = НСтр("ru='Статус доверенности - не верна'");
|
||||
ОписаниеОшибок.Ошибки.Добавить(ОписаниеОшибки);
|
||||
Ошибки.Добавить(ОписаниеОшибки.Описание);
|
||||
|
||||
|
||||
@@ -410,7 +410,7 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
ШаблонЗапроса = "ВЫБРАТЬ ПЕРВЫЕ 20
|
||||
ШаблонЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 20
|
||||
| Таблица.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| &ИмяОбъекта КАК Таблица
|
||||
@@ -2365,7 +2365,16 @@
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
|
||||
ПоследняяСсылка = ВыборкаДетальныеЗаписи.Ссылка;
|
||||
ДанныеОбъекта.СсылкаНаПоследнийОбработанныйОбъекты = ПоследняяСсылка;
|
||||
|
||||
ОписаниеОшибки = ИнформацияОбОшибке();
|
||||
МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
|
||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,
|
||||
МетаданныеОбъекта, Строка(ИзменяемыйОбъект),
|
||||
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ОписаниеОшибки));
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецЦикла;
|
||||
@@ -2594,7 +2603,17 @@
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
|
||||
Отбор = Новый Структура();
|
||||
Отбор.Вставить("Регистратор", СтрокаРезультата.РегистраторРеквизитСсылка);
|
||||
|
||||
ДанныеОбъекта.СсылкаНаПоследнийОбработанныйОбъекты = Отбор;
|
||||
|
||||
ОписаниеОшибки = ИнформацияОбОшибке();
|
||||
МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
|
||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,
|
||||
МетаданныеОбъекта,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ОписаниеОшибки));
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецЦикла;
|
||||
@@ -2793,7 +2812,23 @@
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
|
||||
Отбор = Новый Структура();
|
||||
Для Каждого Измерение Из Измерения Цикл
|
||||
Отбор.Вставить(Измерение.Имя, СтрокаРезультата[Измерение.Имя + "ИзмерениеСсылка"]);
|
||||
КонецЦикла;
|
||||
|
||||
Если Периодический Тогда
|
||||
Отбор.Вставить("Период", СтрокаРезультата["Период"]);
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеОбъекта.СсылкаНаПоследнийОбработанныйОбъекты = Отбор;
|
||||
|
||||
ОписаниеОшибки = ИнформацияОбОшибке();
|
||||
МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
|
||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Ошибка,
|
||||
МетаданныеОбъекта,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ОписаниеОшибки));
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецЦикла;
|
||||
@@ -2883,6 +2918,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Имя событие для записи в журнал регистрации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - событие журнала регистрации
|
||||
//
|
||||
Функция СобытиеЖурналаРегистрации()
|
||||
|
||||
Возврат НСтр("ru = 'Мультиязычность'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -4213,7 +4213,9 @@
|
||||
СведенияОбОбновлении.ТекущаяИтерацияОбновления = 1;
|
||||
ОбновлениеИнформационнойБазыСлужебный.ЗаписатьСведенияОбОбновленииИнформационнойБазы(СведенияОбОбновлении);
|
||||
|
||||
Константы.ПорядокОбрабатываемыхДанных.Установить(Перечисления.ПорядокОбработчиковОбновления.Критичный);
|
||||
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Константы.ПорядокОбрабатываемыхДанных.Установить(Перечисления.ПорядокОбработчиковОбновления.Критичный);
|
||||
КонецЕсли;
|
||||
|
||||
Константы.ОтложенноеОбновлениеЗавершеноУспешно.Установить(Ложь);
|
||||
Если Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.9.337";
|
||||
Описание.Версия = "3.1.9.518";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -857,6 +857,7 @@
|
||||
// * СеансОбновления - Структура
|
||||
// * ОписаниеПотоков - см. НовоеОписаниеПотоковРегистрацииДанныхОтложенногоОбновления
|
||||
// * ВерсияУдалениеПатчей - Строка
|
||||
// * ВерсияПроверкиПатчей - Строка
|
||||
// * ДлительностьЭтаповОбновления - Структура:
|
||||
// ** Критичные - Структура:
|
||||
// *** Начало - Дата
|
||||
@@ -1689,18 +1690,19 @@
|
||||
|
||||
Если Пользователи.ЭтоПолноправныйПользователь(, Истина)
|
||||
И Не ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы()
|
||||
И Не ОбщегоНазначения.РазделениеВключено()
|
||||
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
|
||||
Значение = ОбщегоНазначения.ХранилищеСистемныхНастроекЗагрузить("ПроверкаПатчей", "НомерВерсии");
|
||||
Если Значение = Неопределено
|
||||
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Метаданные.Версия, Значение) > 0 Тогда
|
||||
Сведения = СведенияОбОбновленииИнформационнойБазы();
|
||||
ВерсияПроверкиПатчей = Сведения.ВерсияПроверкиПатчей;
|
||||
Если ВерсияПроверкиПатчей = Неопределено
|
||||
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Метаданные.Версия, ВерсияПроверкиПатчей) > 0 Тогда
|
||||
МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации");
|
||||
Результат = МодульОбновлениеКонфигурации.ИсправленияИзменены();
|
||||
ОбщегоНазначения.ХранилищеСистемныхНастроекСохранить("ПроверкаПатчей", "НомерВерсии", Метаданные.Версия);
|
||||
Сведения.ВерсияПроверкиПатчей = Метаданные.Версия;
|
||||
Если Результат.ЕстьИзменения Тогда
|
||||
Сведения = СведенияОбОбновленииИнформационнойБазы();
|
||||
Сведения.ВерсияУдалениеПатчей = Метаданные.Версия;
|
||||
ЗаписатьСведенияОбОбновленииИнформационнойБазы(Сведения);
|
||||
КонецЕсли;
|
||||
ЗаписатьСведенияОбОбновленииИнформационнойБазы(Сведения);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -10647,6 +10649,7 @@
|
||||
СведенияОбОбновлении.Вставить("ТекущаяИтерацияОбновления", 1);
|
||||
СведенияОбОбновлении.Вставить("СеансОбновления");
|
||||
СведенияОбОбновлении.Вставить("ВерсияУдалениеПатчей");
|
||||
СведенияОбОбновлении.Вставить("ВерсияПроверкиПатчей");
|
||||
СведенияОбОбновлении.Вставить("ЗависимостьГруппОбработчиков", Новый Соответствие);
|
||||
СведенияОбОбновлении.Вставить("ВерсииПодсистемНаНачалоОбновления", Новый Соответствие);
|
||||
СведенияОбОбновлении.Вставить("ДатаНачалаСеансаОбновления", Неопределено);
|
||||
|
||||
@@ -61,6 +61,30 @@
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
МенеджерЗаписи.Прочитать();
|
||||
|
||||
Если СохранятьИзмененияПланаОбновления() Тогда
|
||||
ПредыдущийПланОбновления = МенеджерЗаписи.ПланОбновления.Получить();
|
||||
ТекущиеЗвездочныеОбработчики = Новый Массив;
|
||||
Если ПредыдущийПланОбновления <> Неопределено Тогда
|
||||
ПараметрыОтбора = Новый Структура;
|
||||
ПараметрыОтбора.Вставить("ВерсияРегистрации", "*");
|
||||
ТекущиеЗвездочныеОбработчики = ПредыдущийПланОбновления.План.Строки.НайтиСтроки(ПараметрыОтбора, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Версия Из ОписаниеПлана.План.Строки Цикл
|
||||
Если Версия.Версия <> "*" Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Обработчик Из ТекущиеЗвездочныеОбработчики Цикл
|
||||
НайденныйОбработчик = Версия.Строки.Найти(Обработчик.Процедура, "Процедура");
|
||||
Если НайденныйОбработчик = Неопределено Тогда
|
||||
ЗаполнитьЗначенияСвойств(Версия.Строки.Добавить(), Обработчик);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
МенеджерЗаписи.ПланОбновления = Новый ХранилищеЗначения(ОписаниеПлана);
|
||||
МенеджерЗаписи.Записать();
|
||||
|
||||
@@ -1231,6 +1255,34 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
Функция СохранятьИзмененияПланаОбновления()
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("ИмяПодсистемы", Метаданные.Имя);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ВерсииПодсистем.ПланОбновления КАК ПланОбновления
|
||||
|ИЗ
|
||||
| РегистрСведений.ВерсииПодсистем КАК ВерсииПодсистем
|
||||
|ГДЕ
|
||||
| ВерсииПодсистем.ИмяПодсистемы = &ИмяПодсистемы";
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
|
||||
Если Результат.Количество() = 0 Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ПланОбновления = Результат[0].ПланОбновления.Получить();
|
||||
Если ПланОбновления = Неопределено Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПланОбновления.ВерсияНа = Метаданные.Версия Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
КонецФункции
|
||||
|
||||
Функция РезультатБлокировкиОбластиДанных(КлючЗаписи, НомерПопытки)
|
||||
|
||||
Попытка
|
||||
|
||||
@@ -2000,8 +2000,9 @@
|
||||
Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт
|
||||
|
||||
Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда
|
||||
СтрокаСоединенияИнформационнойБазы = СтрокаСоединенияИнформационнойБазы();
|
||||
Возврат СтандартныеПодсистемыПовтИсп.ИнформационнаяБазаФайловая();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрНайти(ВРег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
|
||||
|
||||
КонецФункции
|
||||
@@ -6040,6 +6041,8 @@
|
||||
//
|
||||
Процедура ВыполнитьВБезопасномРежиме(Знач Алгоритм, Знач Параметры = Неопределено) Экспорт
|
||||
|
||||
ПроверитьАлгоритм(Алгоритм);
|
||||
|
||||
УстановитьБезопасныйРежим(Истина);
|
||||
|
||||
Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
||||
@@ -6085,6 +6088,8 @@
|
||||
//
|
||||
Функция ВычислитьВБезопасномРежиме(Знач Выражение, Знач Параметры = Неопределено) Экспорт
|
||||
|
||||
ПроверитьАлгоритм(Выражение);
|
||||
|
||||
УстановитьБезопасныйРежим(Истина);
|
||||
|
||||
Если ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
|
||||
@@ -6154,6 +6159,22 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает фрагмент текста запроса, объединяющего результаты запросов в один запрос.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка
|
||||
//
|
||||
Функция ТекстОбъединитьВсе() Экспорт
|
||||
|
||||
Возврат
|
||||
"
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
|";
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает фрагмент текста запроса, отделяющего один запрос от другого.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@@ -6808,47 +6829,49 @@
|
||||
// ИмяФайла - Строка - имя файла с расширением
|
||||
//
|
||||
Процедура СократитьИмяФайла(ИмяФайла) Экспорт
|
||||
ОграничениеВБайтах = 255;
|
||||
Если РазмерСтрокиВБайтах(ИмяФайла) <= ОграничениеВБайтах Тогда
|
||||
|
||||
ОграничениеВБайтах = 127;
|
||||
Файл = Новый Файл(ИмяФайла);
|
||||
|
||||
Если РазмерСтрокиВБайтах(Файл.Имя) <= ОграничениеВБайтах Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Файл = Новый Файл(ИмяФайла);
|
||||
ИмяБезРасширения = Файл.ИмяБезРасширения;
|
||||
Строка = "";
|
||||
ОстатокСтроки = "";
|
||||
РазмерСтроки = 0;
|
||||
МаксимальныйРазмерСтроки = ОграничениеВБайтах - 32;
|
||||
|
||||
ОграничениеВБайтах = ОграничениеВБайтах - РазмерСтрокиВБайтах(Файл.Расширение);
|
||||
РазмерРасширения = РазмерСтрокиВБайтах(Файл.Расширение);
|
||||
СокращатьВместеСРасширением = РазмерРасширения > 32;
|
||||
|
||||
ДлинаСтроки = СтрДлина(ИмяБезРасширения);
|
||||
ИспользуемоеКоличествоСимволов = ОграничениеВБайтах - 32;
|
||||
БольшееКоличествоСимволов = Мин(ДлинаСтроки, ОграничениеВБайтах);
|
||||
МеньшееКоличествоСимволов = Цел((ОграничениеВБайтах - 32)/4);
|
||||
Уменьшить = Истина;
|
||||
Пока Истина Цикл
|
||||
Если Уменьшить Тогда
|
||||
ИспользуемоеКоличествоСимволов = МеньшееКоличествоСимволов + Цел((ИспользуемоеКоличествоСимволов-МеньшееКоличествоСимволов)/2);
|
||||
Иначе
|
||||
ИспользуемоеКоличествоСимволов = ИспользуемоеКоличествоСимволов + Цел((БольшееКоличествоСимволов - ИспользуемоеКоличествоСимволов)/2);
|
||||
КонецЕсли;
|
||||
Если СокращатьВместеСРасширением Тогда
|
||||
СокращаемоеИмя = Файл.Имя;
|
||||
Иначе
|
||||
СокращаемоеИмя = Файл.ИмяБезРасширения;
|
||||
РазмерСтроки = РазмерРасширения;
|
||||
КонецЕсли;
|
||||
|
||||
Для НомерСимвола = 1 По СтрДлина(СокращаемоеИмя) Цикл
|
||||
Символ = Сред(СокращаемоеИмя, НомерСимвола, 1);
|
||||
РазмерСимвола = РазмерСтрокиВБайтах(Символ);
|
||||
|
||||
РазмерСтрокиВБайтах = РазмерСтрокиВБайтах(ИмяБезРасширения)+32;
|
||||
|
||||
Если РазмерСтрокиВБайтах = ОграничениеВБайтах Или БольшееКоличествоСимволов - МеньшееКоличествоСимволов = 1 Тогда
|
||||
Если РазмерСтроки + РазмерСимвола > МаксимальныйРазмерСтроки Тогда
|
||||
ОстатокСтроки = Сред(СокращаемоеИмя, НомерСимвола);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если РазмерСтрокиВБайтах > ОграничениеВБайтах Тогда
|
||||
Уменьшить = Истина;
|
||||
БольшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
|
||||
Иначе
|
||||
Уменьшить = Ложь;
|
||||
МеньшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
|
||||
КонецЕсли;
|
||||
|
||||
Строка = Строка + Символ;
|
||||
РазмерСтроки = РазмерСтроки + РазмерСимвола;
|
||||
КонецЦикла;
|
||||
|
||||
СокращеннаяСтрока = СократитьСтрокуКонтрольнойСуммой(ИмяБезРасширения, ИспользуемоеКоличествоСимволов+32);
|
||||
ИмяФайла = Строка;
|
||||
|
||||
ИмяФайла = СокращеннаяСтрока+Файл.Расширение;
|
||||
ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.MD5);
|
||||
ХешированиеДанных.Добавить(ОстатокСтроки);
|
||||
ХешСумма = СтрЗаменить(ХешированиеДанных.ХешСумма, " ", "");
|
||||
|
||||
ИмяФайла = Файл.Путь + ИмяФайла + ХешСумма + ?(СокращатьВместеСРасширением, "", Файл.Расширение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -10049,10 +10072,10 @@
|
||||
Функция ПоддерживаемыеВерсииПлатформы() Экспорт
|
||||
|
||||
ПоддерживаемыеВерсииПлатформы = Новый СписокЗначений;
|
||||
ПоддерживаемыеВерсииПлатформы.Добавить("8.3.21", "8.3.21.1775; 8.3.22.1923");
|
||||
ПоддерживаемыеВерсииПлатформы.Добавить("8.3.22", "8.3.22.2355; 8.3.23.2011; 8.3.24.1304");
|
||||
ПоддерживаемыеВерсииПлатформы.Добавить("8.3.23", "8.3.23.2011; 8.3.24.1304");
|
||||
ПоддерживаемыеВерсииПлатформы.Добавить("8.3.24", "8.3.24.1304");
|
||||
ПоддерживаемыеВерсииПлатформы.Добавить("8.3.21", "8.3.22.2501; 8.3.23.2137; 8.3.24.1467");
|
||||
ПоддерживаемыеВерсииПлатформы.Добавить("8.3.22", "8.3.22.2501; 8.3.23.2137; 8.3.24.1548; 8.3.25.1286");
|
||||
ПоддерживаемыеВерсииПлатформы.Добавить("8.3.23", "8.3.23.2137; 8.3.24.1548; 8.3.25.1286");
|
||||
ПоддерживаемыеВерсииПлатформы.Добавить("8.3.24", "8.3.24.1548; 8.3.25.1286");
|
||||
|
||||
Возврат ПоддерживаемыеВерсииПлатформы;
|
||||
|
||||
@@ -10115,6 +10138,9 @@
|
||||
Версии = Новый Массив;
|
||||
Версии.Добавить("8.3.21.1676");
|
||||
Версии.Добавить("8.3.21.1901");
|
||||
Версии.Добавить("8.3.24.1440");
|
||||
Версии.Добавить("8.3.24.1599");
|
||||
|
||||
Возврат Версии.Найти(Версия) <> Неопределено;
|
||||
|
||||
КонецФункции
|
||||
@@ -10231,6 +10257,173 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПроверкаАлгоритмов
|
||||
|
||||
Процедура ПроверитьАлгоритм(Знач Алгоритм)
|
||||
|
||||
ТекстыОшибок = Новый Массив;
|
||||
|
||||
Алгоритм = ВРег(Алгоритм);
|
||||
// Исключение метода объекта Запрос.
|
||||
Алгоритм = СтрЗаменить(СтрЗаменить(Алгоритм, ВРег("Выполнить()"), ""), ВРег("Execute()"), "");
|
||||
// Проверка наличия в алгоритме недопустимых методов.
|
||||
НайденныеВызовы = НайденныеВызовы(Алгоритм, НедопустимыеМетоды(), "(");
|
||||
Если НайденныеВызовы.Количество() > 0 Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Вызовы недопустимых методов:
|
||||
|%1'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, СтрСоединить(НайденныеВызовы, Символы.ПС));
|
||||
|
||||
ТекстыОшибок.Добавить(ТекстОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка обращений к общим модулям и свойствам глобального контекста.
|
||||
НайденныеВызовы = НайденныеВызовы(Алгоритм, ЗапрещенныеСвойстваГлобальногоКонтекста(), ".");
|
||||
НайденныеВызовыАльтернативные = НайденныеВызовы(Алгоритм, ЗапрещенныеСвойстваГлобальногоКонтекста(), "[");
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(НайденныеВызовы, НайденныеВызовыАльтернативные, Истина);
|
||||
Если НайденныеВызовы.Количество() > 0 Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Вызовы недопустимых свойств глобального контекста:
|
||||
|%1'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, СтрСоединить(НайденныеВызовы, Символы.ПС));
|
||||
|
||||
ТекстыОшибок.Добавить(ТекстОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
НайденныеВызовы = НайденныеВызовы(Алгоритм, ЗапрещенныеМодули(), ".");
|
||||
Если НайденныеВызовы.Количество() > 0 Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Вызовы недопустимых модулей:
|
||||
|%1'");
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, СтрСоединить(НайденныеВызовы, Символы.ПС));
|
||||
|
||||
ТекстыОшибок.Добавить(ТекстОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТекстыОшибок.Количество() > 0 Тогда
|
||||
ВызватьИсключение СтрСоединить(ТекстыОшибок, Символы.ПС + "-----------------------" + Символы.ПС);
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НайденныеВызовы(Алгоритм, СтрокиПоиска, Окончание = Неопределено)
|
||||
|
||||
НайденныеВызовы = Новый Массив;
|
||||
ПоискОбращенияЧерезТочку = Ложь;
|
||||
ПоискТаблицы = Ложь;
|
||||
Для Каждого Элемент Из СтрокиПоиска Цикл
|
||||
|
||||
Если ТипЗнч(Элемент) = Тип("Структура") Тогда
|
||||
ПоискОбращенияЧерезТочку = Истина;
|
||||
СтрокаПоиска = Элемент.Коллекция;
|
||||
Иначе
|
||||
СтрокаПоиска = Элемент;
|
||||
КонецЕсли;
|
||||
|
||||
ПозицияВызова = СтрНайти(Алгоритм, ВРег(СтрокаПоиска));
|
||||
НомерВхождения = 1;
|
||||
Пока ПозицияВызова > 0 Цикл
|
||||
Если ПоискОбращенияЧерезТочку Тогда
|
||||
Окончание = ".";
|
||||
ПоискТаблицы = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ЧислоСимволов = СтрДлина(Окончание);
|
||||
ПозицияСимвола = ПозицияВызова + СтрДлина(СтрокаПоиска);
|
||||
|
||||
Пока ПозицияСимвола + ЧислоСимволов < СтрДлина(Алгоритм) Цикл
|
||||
ЗначениеСимвола = СокрЛП(Сред(Алгоритм, ПозицияСимвола, ЧислоСимволов));
|
||||
Если ВРег(СтрокаПоиска) = ВРег("Выполнить")
|
||||
Или ВРег(СтрокаПоиска) = ВРег("Execute") Тогда
|
||||
|
||||
Если Не ЗначениеЗаполнено(ЗначениеСимвола) Тогда
|
||||
НайденныеВызовы.Добавить(СтрокаПоиска);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрДлина(ЗначениеСимвола) < СтрДлина(Окончание) Тогда
|
||||
ЧислоСимволов = ЧислоСимволов + 1;
|
||||
ИначеЕсли ПоискОбращенияЧерезТочку
|
||||
И ЗначениеСимвола = Окончание
|
||||
И Не ПоискТаблицы Тогда
|
||||
ПозицияСимвола = ПозицияСимвола + ЧислоСимволов;
|
||||
Окончание = ВРег(Элемент.Таблица);
|
||||
ЧислоСимволов = СтрДлина(Окончание);
|
||||
ПоискТаблицы = Истина;
|
||||
ИначеЕсли ЗначениеСимвола = Окончание Тогда
|
||||
Если ПоискОбращенияЧерезТочку Тогда
|
||||
НайденныеВызовы.Добавить(Элемент.Коллекция + "." + Элемент.Таблица);
|
||||
Иначе
|
||||
НайденныеВызовы.Добавить(СтрокаПоиска);
|
||||
КонецЕсли;
|
||||
Прервать;
|
||||
ИначеЕсли ЗначениеЗаполнено(СокрЛП(ЗначениеСимвола)) Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
НомерВхождения = НомерВхождения + 1;
|
||||
ПозицияВызова = СтрНайти(Алгоритм, ВРег(СтрокаПоиска), , , НомерВхождения);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат НайденныеВызовы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НедопустимыеМетоды()
|
||||
Массив = Новый Массив;
|
||||
Массив.Добавить("Выполнить"); // @Non-NLS
|
||||
Массив.Добавить("Вычислить"); // @Non-NLS
|
||||
Массив.Добавить("ЗафиксироватьТранзакцию"); // @Non-NLS
|
||||
Массив.Добавить("СократитьЖурналРегистрации"); // @Non-NLS
|
||||
Массив.Добавить("УстановитьИспользованиеСобытияЖурналаРегистрации"); // @Non-NLS
|
||||
Массив.Добавить("ЗапуститьПриложение"); // @Non-NLS
|
||||
Массив.Добавить("УстановитьМаксимальныйСрокДействияПаролейПользователей"); // @Non-NLS
|
||||
Массив.Добавить("УстановитьМинимальнуюДлинуПаролейПользователей"); // @Non-NLS
|
||||
Массив.Добавить("УстановитьМинимальныйСрокДействияПаролейПользователей"); // @Non-NLS
|
||||
Массив.Добавить("УстановитьОграничениеПовторенияПаролейПользователейСредиПоследних"); // @Non-NLS
|
||||
Массив.Добавить("УстановитьПроверкуСложностиПаролейПользователей"); // @Non-NLS
|
||||
Массив.Добавить("УстановитьНастройкиВосстановленияПароля"); // @Non-NLS
|
||||
|
||||
Массив.Добавить("Execute");
|
||||
Массив.Добавить("Eval");
|
||||
Массив.Добавить("CommitTransaction");
|
||||
Массив.Добавить("TruncateEventLog");
|
||||
Массив.Добавить("SetEventLogEventUse");
|
||||
Массив.Добавить("RunApp");
|
||||
Массив.Добавить("SetUserPasswordMaxEffectivePeriod");
|
||||
Массив.Добавить("SetUserPasswordMinLength");
|
||||
Массив.Добавить("SetUserPasswordMinEffectivePeriod");
|
||||
Массив.Добавить("SetUserPasswordReuseLimit");
|
||||
Массив.Добавить("SetUserPasswordStrengthCheck");
|
||||
Массив.Добавить("SetPasswordRecoverySettings");
|
||||
|
||||
Возврат Массив;
|
||||
КонецФункции
|
||||
|
||||
Функция ЗапрещенныеСвойстваГлобальногоКонтекста()
|
||||
|
||||
Массив = Новый Массив;
|
||||
Массив.Добавить("ПользователиИнформационнойБазы"); // @Non-NLS
|
||||
Массив.Добавить("ДополнительныеНастройкиАутентификации"); // @Non-NLS
|
||||
Массив.Добавить("ПараметрыСеанса"); // @Non-NLS
|
||||
Массив.Добавить("InfoBaseUsers");
|
||||
Массив.Добавить("AdditionalAuthenticationSettings");
|
||||
Массив.Добавить("SessionParameters");
|
||||
|
||||
Возврат Массив;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗапрещенныеМодули()
|
||||
|
||||
Массив = Новый Массив;
|
||||
Массив.Добавить("ДлительныеОперации");
|
||||
|
||||
Возврат Массив;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -168,8 +168,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает ссылку на общий модуль или модуль менеджера по имени.
|
||||
//
|
||||
// Возвращает ссылку на общий модуль по имени.
|
||||
// См. ОбщегоНазначения.ОбщийМодуль
|
||||
//
|
||||
// Параметры:
|
||||
@@ -177,20 +176,11 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль
|
||||
// СправочникМенеджер,
|
||||
// ДокументМенеджер,
|
||||
// ОбработкаМенеджер,
|
||||
// РегистрСведенийМенеджер.
|
||||
//
|
||||
// Пример:
|
||||
// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
|
||||
// МодульОбновлениеКонфигурации = ОбщегоНазначения.ОбщийМодуль("ОбновлениеКонфигурации");
|
||||
// МодульОбновлениеКонфигурации.<Имя метода>();
|
||||
// КонецЕсли;
|
||||
//
|
||||
// Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда
|
||||
// МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер");
|
||||
// МодульПолнотекстовыйПоискСервер.<Имя метода>();
|
||||
// Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
|
||||
// МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
|
||||
// МодульОбновлениеКонфигурацииКлиент.<Имя процедуры>();
|
||||
// КонецЕсли;
|
||||
//
|
||||
Функция ОбщийМодуль(Имя) Экспорт
|
||||
@@ -199,9 +189,8 @@
|
||||
|
||||
#Если Не ВебКлиент Тогда
|
||||
|
||||
// В веб-клиенте не проверяется
|
||||
// В веб-клиенте не проверяется,
|
||||
// т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует.
|
||||
|
||||
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Общий модуль ""%1"" не существует.'"),
|
||||
|
||||
@@ -566,47 +566,46 @@
|
||||
//
|
||||
Процедура СократитьИмяФайла(ИмяФайла) Экспорт
|
||||
|
||||
ОграничениеВБайтах = 255;
|
||||
Если РазмерСтрокиВБайтах(ИмяФайла) <= ОграничениеВБайтах Тогда
|
||||
ОграничениеВБайтах = 127;
|
||||
Файл = Новый Файл(ИмяФайла);
|
||||
|
||||
Если РазмерСтрокиВБайтах(Файл.Имя) <= ОграничениеВБайтах Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Файл = Новый Файл(ИмяФайла);
|
||||
ИмяБезРасширения = Файл.ИмяБезРасширения;
|
||||
Строка = "";
|
||||
ОстатокСтроки = "";
|
||||
РазмерСтроки = 0;
|
||||
МаксимальныйРазмерСтроки = ОграничениеВБайтах - 32;
|
||||
|
||||
ОграничениеВБайтах = ОграничениеВБайтах - РазмерСтрокиВБайтах(Файл.Расширение);
|
||||
РазмерРасширения = РазмерСтрокиВБайтах(Файл.Расширение);
|
||||
СокращатьВместеСРасширением = РазмерРасширения > 32;
|
||||
|
||||
ДлинаСтроки = СтрДлина(ИмяБезРасширения);
|
||||
ИспользуемоеКоличествоСимволов = ОграничениеВБайтах - 32;
|
||||
БольшееКоличествоСимволов = Мин(ДлинаСтроки, ОграничениеВБайтах);
|
||||
МеньшееКоличествоСимволов = Цел((ОграничениеВБайтах - 32)/4);
|
||||
Уменьшить = Истина;
|
||||
Пока Истина Цикл
|
||||
Если Уменьшить Тогда
|
||||
ИспользуемоеКоличествоСимволов = МеньшееКоличествоСимволов + Цел((ИспользуемоеКоличествоСимволов-МеньшееКоличествоСимволов)/2);
|
||||
Иначе
|
||||
ИспользуемоеКоличествоСимволов = ИспользуемоеКоличествоСимволов + Цел((БольшееКоличествоСимволов - ИспользуемоеКоличествоСимволов)/2);
|
||||
КонецЕсли;
|
||||
Если СокращатьВместеСРасширением Тогда
|
||||
СокращаемоеИмя = Файл.Имя;
|
||||
Иначе
|
||||
СокращаемоеИмя = Файл.ИмяБезРасширения;
|
||||
РазмерСтроки = РазмерРасширения;
|
||||
КонецЕсли;
|
||||
|
||||
Для НомерСимвола = 1 По СтрДлина(СокращаемоеИмя) Цикл
|
||||
Символ = Сред(СокращаемоеИмя, НомерСимвола, 1);
|
||||
РазмерСимвола = РазмерСтрокиВБайтах(Символ);
|
||||
|
||||
РазмерСтрокиВБайтах = РазмерСтрокиВБайтах(ИмяБезРасширения)+32;
|
||||
|
||||
Если РазмерСтрокиВБайтах = ОграничениеВБайтах Или БольшееКоличествоСимволов - МеньшееКоличествоСимволов = 1 Тогда
|
||||
Если РазмерСтроки + РазмерСимвола > МаксимальныйРазмерСтроки Тогда
|
||||
ОстатокСтроки = Сред(СокращаемоеИмя, НомерСимвола);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если РазмерСтрокиВБайтах > ОграничениеВБайтах Тогда
|
||||
Уменьшить = Истина;
|
||||
БольшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
|
||||
Иначе
|
||||
Уменьшить = Ложь;
|
||||
МеньшееКоличествоСимволов = ИспользуемоеКоличествоСимволов;
|
||||
КонецЕсли;
|
||||
|
||||
Строка = Строка + Символ;
|
||||
РазмерСтроки = РазмерСтроки + РазмерСимвола;
|
||||
КонецЦикла;
|
||||
|
||||
СокращеннаяСтрока = СократитьСтроку(ИмяБезРасширения, ИспользуемоеКоличествоСимволов);
|
||||
ИмяФайла = СокращеннаяСтрока + Файл.Расширение;
|
||||
|
||||
ИмяФайла = Строка;
|
||||
|
||||
ХешСумма = ВычислитьХешСтрокиПоАлгоритмуMD5(ОстатокСтроки);
|
||||
ИмяФайла = Файл.Путь + ИмяФайла + ХешСумма + ?(СокращатьВместеСРасширением, "", Файл.Расширение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#Область Прочее
|
||||
@@ -1193,8 +1192,7 @@
|
||||
|
||||
#Если ВебКлиент Тогда
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.0") >= 0
|
||||
И Не ОбщегоНазначенияКлиент.РазделениеВключено() Тогда
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.24.0") >= 0 Тогда
|
||||
Ждать ПаузаАсинх(2);
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
@@ -1718,12 +1716,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СократитьСтроку(Строка, ИспользуемоеКоличествоСимволов)
|
||||
Результат = Лев(Строка, ИспользуемоеКоличествоСимволов);
|
||||
Результат = Результат + ВычислитьХешСтрокиПоАлгоритмуMD5(Сред(Строка, ИспользуемоеКоличествоСимволов+1));
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция РазмерСтрокиВБайтах(Знач Строка)
|
||||
|
||||
Возврат ПолучитьДвоичныеДанныеИзСтроки(Строка, "UTF-8").Размер();
|
||||
|
||||
@@ -133,9 +133,7 @@
|
||||
Возврат "НеОтправлялось";
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ОтправкаSMSПовтИсп.СтатусДоставки(ИдентификаторСообщения);
|
||||
|
||||
Возврат Результат;
|
||||
Возврат СтатусыДоставки(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторСообщения))[ИдентификаторСообщения];
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -253,6 +251,33 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Запрашивает статус доставки сообщения у поставщика услуг.
|
||||
//
|
||||
// Параметры:
|
||||
// ИдентификаторыСообщений - Массив из Строка - идентификаторы, присвоенные SMS при отправке;
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие:
|
||||
// * Ключ - Строка - идентификатор SMS;
|
||||
// * Значение - Строка - статус доставки сообщения, который вернул поставщик услуг:
|
||||
// "НеОтправлялось" - сообщение еще не было обработано поставщиком услуг (в очереди);
|
||||
// "Отправляется" - сообщение стоит в очереди на отправку у провайдера;
|
||||
// "Отправлено" - сообщение отправлено, ожидается подтверждение о доставке;
|
||||
// "НеОтправлено" - сообщение не отправлено (недостаточно средств на счете, перегружена сеть оператора);
|
||||
// "Доставлено" - сообщение доставлено адресату;
|
||||
// "НеДоставлено" - сообщение не удалось доставить (абонент недоступен, время ожидания подтверждения
|
||||
// доставки от абонента истекло);
|
||||
// "Ошибка" - не удалось получить статус у поставщика услуг (статус неизвестен).
|
||||
//
|
||||
Функция СтатусыДоставки(Знач ИдентификаторыСообщений) Экспорт
|
||||
|
||||
ПроверитьПрава();
|
||||
СтатусыДоставки = ОтправкаSMSПовтИсп.СтатусыДоставки(СтрСоединить(ИдентификаторыСообщений, ","));
|
||||
|
||||
Возврат Новый Соответствие(СтатусыДоставки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -393,6 +418,7 @@
|
||||
Результат.Вставить("ПриОпределенииСпособовАвторизации", Ложь);
|
||||
Результат.Вставить("ПриОпределенииПолейАвторизации", Ложь);
|
||||
Результат.Вставить("ПриЗаполненииСпискаТекущихДел", Ложь);
|
||||
Результат.Вставить("СтатусыДоставкиОднимЗапросом", Ложь);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
|
||||
@@ -8,30 +8,47 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция СтатусДоставки(ИдентификаторСообщения) Экспорт
|
||||
Функция СтатусыДоставки(ИдентификаторыСообщений) Экспорт
|
||||
|
||||
ОтправкаSMS.ПроверитьПрава();
|
||||
СписокИдентификаторов = СтрРазделить(ИдентификаторыСообщений, ",", Ложь);
|
||||
СтатусыДоставки = Новый Соответствие();
|
||||
|
||||
Если ПустаяСтрока(ИдентификаторСообщения) Тогда
|
||||
Возврат "НеОтправлялось";
|
||||
Для Каждого ИдентификаторСообщения Из СписокИдентификаторов Цикл
|
||||
СтатусыДоставки[ИдентификаторСообщения] = "Ошибка";
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ЗначениеЗаполнено(СписокИдентификаторов) Тогда
|
||||
Возврат Новый ФиксированноеСоответствие(СтатусыДоставки);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Неопределено;
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS();
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
МодульОтправкаSMSЧерезПровайдера = ОтправкаSMS.МодульОтправкаSMSЧерезПровайдера(НастройкиОтправкиSMS.Провайдер);
|
||||
Если МодульОтправкаSMSЧерезПровайдера <> Неопределено Тогда
|
||||
Результат = МодульОтправкаSMSЧерезПровайдера.СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS);
|
||||
НастройкиПровайдера = ОтправкаSMS.НастройкиПровайдера(НастройкиОтправкиSMS.Провайдер);
|
||||
|
||||
Если НастройкиПровайдера.СтатусыДоставкиОднимЗапросом Тогда
|
||||
СтатусыДоставки = МодульОтправкаSMSЧерезПровайдера.СтатусыДоставки(СписокИдентификаторов, НастройкиОтправкиSMS);
|
||||
Иначе
|
||||
Для Каждого ИдентификаторСообщения Из СписокИдентификаторов Цикл
|
||||
СтатусыДоставки[ИдентификаторСообщения] = МодульОтправкаSMSЧерезПровайдера.СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ЗначениеЗаполнено(НастройкиОтправкиSMS.Провайдер) Тогда
|
||||
ОтправкаSMSПереопределяемый.СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS.Провайдер,
|
||||
НастройкиОтправкиSMS.Логин, НастройкиОтправкиSMS.Пароль, Результат);
|
||||
Иначе // провайдер не выбран
|
||||
Результат = "Ошибка";
|
||||
Для Каждого ИдентификаторСообщения Из СписокИдентификаторов Цикл
|
||||
Результат = Неопределено;
|
||||
ОтправкаSMSПереопределяемый.СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS.Провайдер,
|
||||
НастройкиОтправкиSMS.Логин, НастройкиОтправкиSMS.Пароль, Результат);
|
||||
|
||||
СтатусыДоставки[ИдентификаторСообщения] = Результат;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
Возврат Новый ФиксированноеСоответствие(СтатусыДоставки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -252,7 +252,7 @@
|
||||
|
||||
Процедура ПриОпределенииНастроек(Настройки) Экспорт
|
||||
|
||||
Настройки.АдресОписанияУслугиВИнтернете = "http://sms4b.ru";
|
||||
Настройки.АдресОписанияУслугиВИнтернете = "https://sms4b.ru";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -24,57 +24,112 @@
|
||||
|
||||
Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, "");
|
||||
|
||||
// Подготовка строки получателей.
|
||||
СтрокаПолучателей = МассивПолучателейСтрокой(НомераПолучателей);
|
||||
ФорматированныеНомераТелефонов = ФорматироватьНомераТелефонов(НомераПолучателей);
|
||||
Получатели = Новый Массив;
|
||||
|
||||
Для Каждого Номер Из НомераПолучателей Цикл
|
||||
Если ФорматированныеНомераТелефонов[Номер] <> Неопределено Тогда
|
||||
Получатели.Добавить(ФорматированныеНомераТелефонов[Номер]);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
СтрокаПолучателей = СтрСоединить(Получатели, ",");
|
||||
|
||||
// Проверка на заполнение обязательных параметров.
|
||||
Если ПустаяСтрока(СтрокаПолучателей) Или ПустаяСтрока(Текст) Тогда
|
||||
Результат.ОписаниеОшибки = НСтр("ru = 'Неверные параметры сообщения'");
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Подготовка параметров запроса.
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS();
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("login", Логин);
|
||||
ПараметрыЗапроса.Вставить("password", Пароль);
|
||||
|
||||
Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И НастройкиОтправкиSMS.СпособАвторизации = "ПоИдентификатору" Тогда
|
||||
ПараметрыЗапроса.Вставить("api_id", Пароль);
|
||||
Иначе
|
||||
ПараметрыЗапроса.Вставить("login", Логин);
|
||||
ПараметрыЗапроса.Вставить("password", Пароль);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыЗапроса.Вставить("text", Текст);
|
||||
ПараметрыЗапроса.Вставить("to", СтрокаПолучателей);
|
||||
ПараметрыЗапроса.Вставить("from", ИмяОтправителя);
|
||||
ПараметрыЗапроса.Вставить("json", 1);
|
||||
|
||||
// отправка запроса
|
||||
ТекстОтвета = ВыполнитьЗапрос("sms/send", ПараметрыЗапроса);
|
||||
Если Не ЗначениеЗаполнено(ТекстОтвета) Тогда
|
||||
Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + НСтр("ru = 'Соединение не установлено'");
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторыСообщений = СтрРазделить(ТекстОтвета, Символы.ПС);
|
||||
РезультатЗапроса = ОбщегоНазначения.JSONВЗначение(ТекстОтвета);
|
||||
|
||||
ОтветСервера = ИдентификаторыСообщений[0];
|
||||
ИдентификаторыСообщений.Удалить(0);
|
||||
ЗапросПринят = РезультатЗапроса["status"] = "OK";
|
||||
ТекстСостояния = РезультатЗапроса["status_text"];
|
||||
КодСостояния = РезультатЗапроса["status_code"];
|
||||
|
||||
Если ОтветСервера = "100" Тогда
|
||||
НомераПолучателей = СтрРазделить(СтрокаПолучателей, ",", Ложь);
|
||||
Если ИдентификаторыСообщений.Количество() < НомераПолучателей.Количество() Тогда
|
||||
Результат.ОписаниеОшибки = НСтр("ru = 'Ответ сервера не распознан'");
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Индекс = 0 По НомераПолучателей.ВГраница() Цикл
|
||||
НомерПолучателя = НомераПолучателей[Индекс];
|
||||
ИдентификаторСообщения = ИдентификаторыСообщений[Индекс];
|
||||
Если Не ПустаяСтрока(НомерПолучателя) Тогда
|
||||
ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения",
|
||||
НомерПолучателя,ИдентификаторСообщения);
|
||||
Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
Результат.ОписаниеОшибки = ОписаниеОшибкиОтправки(ОтветСервера);
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , Результат.ОписаниеОшибки);
|
||||
Если ЗапросПринят И ЗначениеЗаполнено(РезультатЗапроса["sms"]["empty_phone"]) Тогда
|
||||
ЗапросПринят = Ложь;
|
||||
ТекстСостояния = РезультатЗапроса["sms"]["empty_phone"]["real_status_text"];
|
||||
КодСостояния = РезультатЗапроса["sms"]["empty_phone"]["real_status"];
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗапросПринят Тогда
|
||||
Если ЗначениеЗаполнено(ТекстСостояния) Тогда
|
||||
Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 (код состояния: %2)'"), ТекстСостояния, КодСостояния);
|
||||
Иначе
|
||||
Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Код состояния: %1'"), КодСостояния);
|
||||
КонецЕсли;
|
||||
|
||||
Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Отправка SMS не выполнена по причине:
|
||||
|%1'"), Причина);
|
||||
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , Результат.ОписаниеОшибки);
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстыОшибок = Новый Массив;
|
||||
|
||||
Для Каждого НомерПолучателя Из НомераПолучателей Цикл
|
||||
|
||||
ИдентификаторСообщения = "";
|
||||
СтатусОтправкиПолучателю = РезультатЗапроса["sms"][ФорматированныеНомераТелефонов[НомерПолучателя]];
|
||||
|
||||
Если СтатусОтправкиПолучателю <> Неопределено Тогда
|
||||
ИдентификаторСообщения = СтатусОтправкиПолучателю["sms_id"];
|
||||
|
||||
Если СтатусОтправкиПолучателю["status_text"] = "ERROR" Тогда
|
||||
ТекстСостояния = СтатусОтправкиПолучателю["status_text"];
|
||||
КодСостояния = СтатусОтправкиПолучателю["status_code"];
|
||||
|
||||
ТекстыОшибок.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1: %2 (код состояния: %3)'"),
|
||||
НомерПолучателя,
|
||||
ТекстСостояния,
|
||||
КодСостояния));
|
||||
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПустаяСтрока(НомерПолучателя) И ЗначениеЗаполнено(ИдентификаторСообщения) Тогда
|
||||
ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения",
|
||||
НомерПолучателя,ИдентификаторСообщения);
|
||||
Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстыОшибок) Тогда
|
||||
Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Отправка SMS не выполнена следующим получателям:
|
||||
|%1'"), СтрСоединить(ТекстыОшибок, Символы.ПС));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
@@ -90,35 +145,13 @@
|
||||
//
|
||||
Функция СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS) Экспорт
|
||||
|
||||
Логин = НастройкиОтправкиSMS.Логин;
|
||||
Пароль = НастройкиОтправкиSMS.Пароль;
|
||||
|
||||
// Подготовка параметров запроса.
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("login", Логин);
|
||||
ПараметрыЗапроса.Вставить("password", Пароль);
|
||||
ПараметрыЗапроса.Вставить("id", ИдентификаторСообщения);
|
||||
|
||||
// отправка запроса
|
||||
КодСостояния = ВыполнитьЗапрос("sms/status", ПараметрыЗапроса);
|
||||
Если Не ЗначениеЗаполнено(КодСостояния) Тогда
|
||||
Возврат "Ошибка";
|
||||
КонецЕсли;
|
||||
|
||||
Результат = СтатусДоставкиSMS(КодСостояния);
|
||||
Если Результат = "Ошибка" Тогда
|
||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru = 'Не удалось получить статус доставки SMS (id: ""%3""):
|
||||
|%1 (код ошибки: %2)'"), ОписаниеОшибкиПолученияСтатуса(КодСостояния), КодСостояния, ИдентификаторСообщения);
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
ИдентификаторыСообщений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторСообщения);
|
||||
Возврат СтатусыДоставки(ИдентификаторыСообщений, НастройкиОтправкиSMS)[ИдентификаторСообщения];
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СтатусДоставкиSMS(КодСостояния)
|
||||
|
||||
СоответствиеСтатусов = Новый Соответствие;
|
||||
СоответствиеСтатусов.Вставить("-1", "НеОтправлялось");
|
||||
СоответствиеСтатусов.Вставить("100", "НеОтправлялось");
|
||||
@@ -130,9 +163,11 @@
|
||||
СоответствиеСтатусов.Вставить("106", "НеДоставлено");
|
||||
СоответствиеСтатусов.Вставить("107", "НеДоставлено");
|
||||
СоответствиеСтатусов.Вставить("108", "НеДоставлено");
|
||||
СоответствиеСтатусов.Вставить("150", "НеДоставлено");
|
||||
|
||||
Результат = СоответствиеСтатусов[НРег(КодСостояния)];
|
||||
Возврат ?(Результат = Неопределено, "Ошибка", Результат);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписанияОшибок()
|
||||
@@ -159,16 +194,6 @@
|
||||
Возврат ОписанияОшибок;
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеОшибкиОтправки(КодОшибки)
|
||||
ОписанияОшибок = ОписанияОшибок();
|
||||
ТекстСообщения = ОписанияОшибок[КодОшибки];
|
||||
Если ТекстСообщения = Неопределено Тогда
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Сообщение не отправлено (код ошибки: %1).'"), КодОшибки);
|
||||
КонецЕсли;
|
||||
Возврат ТекстСообщения;
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеОшибкиПолученияСтатуса(КодОшибки)
|
||||
ОписанияОшибок =ОписанияОшибок();
|
||||
ТекстСообщения = ОписанияОшибок[КодОшибки];
|
||||
@@ -191,6 +216,7 @@
|
||||
Исключение
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
Возврат Неопределено;
|
||||
КонецПопытки;
|
||||
|
||||
Если HTTPОтвет <> Неопределено Тогда
|
||||
@@ -200,6 +226,7 @@
|
||||
+ HTTPОтвет.ПолучитьТелоКакСтроку();
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат HTTPОтвет.ПолучитьТелоКакСтроку();
|
||||
@@ -209,33 +236,28 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция МассивПолучателейСтрокой(Массив)
|
||||
Получатели = Новый Массив;
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Получатели, Массив, Истина);
|
||||
Функция ФорматироватьНомер(Знач Номер)
|
||||
|
||||
ДопустимыеСимволы = "1234567890";
|
||||
ЛишниеСимволы = СтрСоединить(СтрРазделить(Номер, ДопустимыеСимволы, Ложь), "");
|
||||
|
||||
Возврат СтрСоединить(СтрРазделить(Номер, ЛишниеСимволы, Ложь), "");
|
||||
|
||||
Результат = "";
|
||||
Для Каждого Получатель Из Получатели Цикл
|
||||
Номер = ФорматироватьНомер(Получатель);
|
||||
Если НЕ ПустаяСтрока(Номер) Тогда
|
||||
Если Не ПустаяСтрока(Результат) Тогда
|
||||
Результат = Результат + ",";
|
||||
КонецЕсли;
|
||||
Результат = Результат + Номер;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция ФорматироватьНомер(Номер)
|
||||
Результат = "";
|
||||
ДопустимыеСимволы = "+1234567890";
|
||||
Для Позиция = 1 По СтрДлина(Номер) Цикл
|
||||
Символ = Сред(Номер,Позиция,1);
|
||||
Если СтрНайти(ДопустимыеСимволы, Символ) > 0 Тогда
|
||||
Результат = Результат + Символ;
|
||||
Функция ФорматироватьНомераТелефонов(Знач НомераТелефонов)
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
|
||||
Для Каждого НомерТелефона Из НомераТелефонов Цикл
|
||||
ФорматированныйНомер = ФорматироватьНомер(НомерТелефона);
|
||||
Если ЗначениеЗаполнено(ФорматированныйНомер) Тогда
|
||||
Результат.Вставить(НомерТелефона, ФорматированныйНомер);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает список разрешений для отправки SMS с использованием всех доступных провайдеров.
|
||||
@@ -261,9 +283,112 @@
|
||||
|
||||
Процедура ПриОпределенииНастроек(Настройки) Экспорт
|
||||
|
||||
Настройки.АдресОписанияУслугиВИнтернете = "http://sms.ru";
|
||||
Настройки.АдресОписанияУслугиВИнтернете = "https://sms.ru";
|
||||
Настройки.ПриОпределенииСпособовАвторизации = Истина;
|
||||
Настройки.ПриОпределенииПолейАвторизации = Истина;
|
||||
Настройки.СтатусыДоставкиОднимЗапросом = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриОпределенииСпособовАвторизации(СпособыАвторизации) Экспорт
|
||||
|
||||
СпособыАвторизации.Очистить();
|
||||
СпособыАвторизации.Добавить("ПоИдентификатору", НСтр("ru = 'По ключу (рекомендуется)'"));
|
||||
СпособыАвторизации.Добавить("ПоЛогинуИПаролю", НСтр("ru = 'По логину и паролю'"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриОпределенииПолейАвторизации(СпособыАвторизации) Экспорт
|
||||
|
||||
ПоляАвторизации = Новый СписокЗначений;
|
||||
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'api_id'"));
|
||||
|
||||
СпособыАвторизации.Вставить("ПоИдентификатору", ПоляАвторизации);
|
||||
|
||||
ПоляАвторизации = Новый СписокЗначений;
|
||||
ПоляАвторизации.Добавить("Логин", НСтр("ru = 'Логин'"));
|
||||
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Пароль'"));
|
||||
|
||||
СпособыАвторизации.Вставить("ПоЛогинуИПаролю", ПоляАвторизации);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Запрашивает статус доставки сообщения у поставщика услуг.
|
||||
//
|
||||
// Параметры:
|
||||
// ИдентификаторыСообщений - см. ОтправкаSMS.СтатусыДоставки.ИдентификаторыСообщений
|
||||
// НастройкиОтправкиSMS - см. ОтправкаSMS.НастройкиОтправкиSMS
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// См. ОтправкаSMS.СтатусыДоставки
|
||||
//
|
||||
Функция СтатусыДоставки(ИдентификаторыСообщений, НастройкиОтправкиSMS) Экспорт
|
||||
|
||||
СтатусыДоставки = Новый Соответствие;
|
||||
|
||||
Для Каждого ИдентификаторСообщения Из ИдентификаторыСообщений Цикл
|
||||
СтатусыДоставки[ИдентификаторСообщения] = "Ошибка";
|
||||
КонецЦикла;
|
||||
|
||||
Логин = НастройкиОтправкиSMS.Логин;
|
||||
Пароль = НастройкиОтправкиSMS.Пароль;
|
||||
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
|
||||
Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И НастройкиОтправкиSMS.СпособАвторизации = "ПоИдентификатору" Тогда
|
||||
ПараметрыЗапроса.Вставить("api_id", Пароль);
|
||||
Иначе
|
||||
ПараметрыЗапроса.Вставить("login", Логин);
|
||||
ПараметрыЗапроса.Вставить("password", Пароль);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыЗапроса.Вставить("id", СтрСоединить(ИдентификаторыСообщений, ","));
|
||||
ПараметрыЗапроса.Вставить("json", 1);
|
||||
|
||||
ТекстОтвета = ВыполнитьЗапрос("sms/status", ПараметрыЗапроса);
|
||||
Если Не ЗначениеЗаполнено(ТекстОтвета) Тогда
|
||||
Возврат СтатусыДоставки;
|
||||
КонецЕсли;
|
||||
|
||||
РезультатЗапроса = ОбщегоНазначения.JSONВЗначение(ТекстОтвета);
|
||||
|
||||
Если РезультатЗапроса["status"] <> "OK" Тогда
|
||||
ТекстСостояния = РезультатЗапроса["status_text"];
|
||||
КодСостояния = РезультатЗапроса["status_code"];
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстСостояния) Тогда
|
||||
Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '%1 (код состояния: %2)'"), ТекстСостояния, КодСостояния);
|
||||
Иначе
|
||||
Причина = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Код состояния: %1'"), КодСостояния);
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось проверить статус доставки SMS по причине:
|
||||
|%1'"), Причина);
|
||||
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
|
||||
|
||||
Возврат СтатусыДоставки;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ИдентификаторСообщения Из ИдентификаторыСообщений Цикл
|
||||
КодСостояния = РезультатЗапроса["sms"][ИдентификаторСообщения]["status_code"];
|
||||
СтатусДоставки = СтатусДоставкиSMS(КодСостояния);
|
||||
СтатусыДоставки[ИдентификаторСообщения] = СтатусДоставкиSMS(КодСостояния);
|
||||
|
||||
Если СтатусДоставки = "Ошибка" Тогда
|
||||
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru = 'Не удалось получить статус доставки SMS (id: ""%3""):
|
||||
|%1 (код ошибки: %2)'"), ОписаниеОшибкиПолученияСтатуса(РезультатЗапроса), КодСостояния, ИдентификаторСообщения);
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СтатусыДоставки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -180,18 +180,18 @@
|
||||
НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS();
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Протокол = "http";
|
||||
Протокол = "https";
|
||||
Сервер = "beeline.amega-inform.ru";
|
||||
АдресРесурса = "/sendsms/";
|
||||
ЗащищенноеСоединение = Неопределено;
|
||||
|
||||
Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И НастройкиОтправкиSMS.СпособАвторизации = "ПоЛогинуИПаролюA2P" Тогда
|
||||
Протокол = "https";
|
||||
Сервер = "a2p-sms-https.beeline.ru";
|
||||
АдресРесурса = "/public/http/";
|
||||
ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||
КонецЕсли;
|
||||
|
||||
ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
|
||||
|
||||
HTTPЗапрос = ОтправкаSMS.ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса);
|
||||
HTTPОтвет = Неопределено;
|
||||
|
||||
|
||||
@@ -180,9 +180,8 @@
|
||||
HTTPОтвет = Неопределено;
|
||||
|
||||
Попытка
|
||||
Соединение = Новый HTTPСоединение("lcab.sms-uslugi.ru",,,,
|
||||
ПолучениеФайловИзИнтернета.ПолучитьПрокси("http"),
|
||||
60);
|
||||
Соединение = Новый HTTPСоединение("lcab.sms-uslugi.ru", , , , ПолучениеФайловИзИнтернета.ПолучитьПрокси("http"),
|
||||
60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
|
||||
HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
|
||||
Исключение
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
@@ -279,7 +278,7 @@
|
||||
|
||||
Процедура ПриОпределенииНастроек(Настройки) Экспорт
|
||||
|
||||
Настройки.АдресОписанияУслугиВИнтернете = "http://sms-uslugi.ru";
|
||||
Настройки.АдресОписанияУслугиВИнтернете = "https://sms-uslugi.ru";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -40,7 +40,8 @@
|
||||
ТипЗначения = ОписаниеЭлементаНастройки.ТипЗначения;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗначения = Новый ОписаниеТипов("Дата") И Не ОтчетыКлиентСервер.ЭтоВидСравненияСписка(ЭлементНастройки.ВидСравнения) Тогда
|
||||
Если ТипЗнч(ЭлементНастройки) = Тип("ЭлементОтбораКомпоновкиДанных") И ТипЗначения = Новый ОписаниеТипов("Дата")
|
||||
И Не ОтчетыКлиентСервер.ЭтоВидСравненияСписка(ЭлементНастройки.ВидСравнения) Тогда
|
||||
ТипЗначения = Новый ОписаниеТипов("СтандартнаяДатаНачала");
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -3144,7 +3144,8 @@
|
||||
ЗаголовокКоманды = НСтр("ru = 'Подбор'");
|
||||
ДобавитьКомандуСписка(Форма, ГруппаЗаголовка, ИмяКоманды, ЗаголовокКоманды, "Подключаемый_Список_Подбор");
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗагрузкаДанныхИзФайла") Тогда
|
||||
Если ТипЗнч(ЭлементНастройки.ТипЗначения) <> Тип("ОписаниеТипов")
|
||||
Или Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗагрузкаДанныхИзФайла") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2023, ООО 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 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПослеЗаписиПродолжение() Экспорт
|
||||
|
||||
ИмяПараметра = "СтандартныеПодсистемы.ПодключаемыеКоманды.ПараметрыВыполненияПодключаемойКоманды";
|
||||
Контекст = ПараметрыПриложения[ИмяПараметра];
|
||||
ПараметрыПриложения[ИмяПараметра] = Неопределено;
|
||||
|
||||
Если Контекст <> Неопределено Тогда
|
||||
ПродолжитьВыполнениеКоманды(Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -674,6 +674,8 @@
|
||||
//
|
||||
Функция СоздатьАдминистратора(ПользовательИБ = Неопределено) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен("Пользователи.СоздатьАдминистратора");
|
||||
|
||||
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Справочник Пользователи недоступен в неразделенном режиме.'");
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
@@ -1001,6 +1003,8 @@
|
||||
//
|
||||
Функция СвойстваПользователяИБ(Знач ИмяИлиИдентификатор) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен("Пользователи.СвойстваПользователяИБ");
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("Пользователи.СвойстваПользователяИБ", "ИмяИлиИдентификатор",
|
||||
ИмяИлиИдентификатор, Новый ОписаниеТипов("Строка, УникальныйИдентификатор"));
|
||||
|
||||
@@ -1045,6 +1049,8 @@
|
||||
|
||||
ИмяПроцедуры = "Пользователи.УстановитьСвойстваПользователяИБ";
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(ИмяПроцедуры);
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ИмяИлиИдентификатор",
|
||||
ИмяИлиИдентификатор, Новый ОписаниеТипов("Строка, УникальныйИдентификатор"));
|
||||
|
||||
@@ -1136,8 +1142,15 @@
|
||||
ТекстОшибкиПароля);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
ПользовательИБ.СохраняемоеЗначениеПароля =
|
||||
ПользователиСлужебный.СохраняемоеЗначениеСтрокиПароля(ОбновляемыеСвойства.Пароль, Истина);
|
||||
Если ПользователиСлужебный.ДоступныНастройки8_3_26() Тогда
|
||||
// АПК:488-выкл Поддержка новых методов платформы (исполняемый код безопасен)
|
||||
ПользовательИБ.СохраняемоеЗначениеПароля =
|
||||
Вычислить("ВычислитьСохраняемоеЗначениеПароляПользователя(ОбновляемыеСвойства.Пароль)");
|
||||
// АПК:488-вкл
|
||||
Иначе
|
||||
ПользовательИБ.СохраняемоеЗначениеПароля =
|
||||
ПользователиСлужебный.СохраняемоеЗначениеСтрокиПароля(ОбновляемыеСвойства.Пароль, Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
@@ -1180,7 +1193,10 @@
|
||||
//
|
||||
Процедура УдалитьПользователяИБ(Знач ИмяИлиИдентификатор) Экспорт
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("Пользователи.УдалитьПользователяИБ", "ИмяИлиИдентификатор",
|
||||
ИмяПроцедуры = "Пользователи.УдалитьПользователяИБ";
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(ИмяПроцедуры);
|
||||
|
||||
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "ИмяИлиИдентификатор",
|
||||
ИмяИлиИдентификатор, Новый ОписаниеТипов("Строка, УникальныйИдентификатор"));
|
||||
|
||||
СвойстваУдаляемогоПользователяИБ = СвойстваПользователяИБ(ИмяИлиИдентификатор);
|
||||
@@ -1511,6 +1527,8 @@
|
||||
//
|
||||
Функция НайтиПоИмени(Знач ИмяДляВхода) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен("Пользователи.НайтиПоИмени");
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяДляВхода);
|
||||
@@ -1543,6 +1561,8 @@
|
||||
//
|
||||
Функция НайтиПоИдентификатору(Знач ИдентификаторПользователяИБ) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен("Пользователи.НайтиПоИдентификатору");
|
||||
|
||||
Если ТипЗнч(ИдентификаторПользователяИБ) <> Тип("УникальныйИдентификатор") Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
@@ -1571,6 +1591,8 @@
|
||||
//
|
||||
Функция НайтиПоСсылке(Пользователь) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен("Пользователи.НайтиПоСсылке");
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
ИдентификаторПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Пользователь,
|
||||
"ИдентификаторПользователяИБ");
|
||||
@@ -1829,7 +1851,12 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает сохраняемое значение пароля для указанного пароля.
|
||||
// Возвращает сохраняемое значение пароля для указанного пароля по алгоритму SHA-1.
|
||||
// Начиная с версии платформы 8.3.26 следует использовать метод
|
||||
// платформы ВычислитьСохраняемоеЗначениеПароляПользователя.
|
||||
// Для проверки пароля необходимо использовать метод платформы
|
||||
// ПроверитьСоответствиеПароляПользователяСохраняемомуЗначению
|
||||
// (сравнение на равно подходит только для сохраняемого значения пароля по алгоритму SHA-1).
|
||||
//
|
||||
// Параметры:
|
||||
// Пароль - Строка - пароль, для которого нужно получить сохраняемое значение.
|
||||
@@ -1837,6 +1864,18 @@
|
||||
// Возвращаемое значение:
|
||||
// Строка - сохраняемое значение пароля.
|
||||
//
|
||||
// Пример:
|
||||
// Свойства = Новый Структура("ТипАлгоритмаХешированияПароля", Null);
|
||||
// ЗаполнитьЗначенияСвойств(Свойства, ПользователиИнформационнойБазы.ТекущийПользователь());
|
||||
// Если Свойства.ТипАлгоритмаХешированияПароля <> Null Тогда
|
||||
// // АПК:488-выкл Поддержка новых методов платформы (исполняемый код безопасен)
|
||||
// ПарольСовпадает = Вычислить("ПроверитьСоответствиеПароляПользователяСохраняемомуЗначению(Пароль, ПользовательИБ)");
|
||||
// // АПК:488-вкл
|
||||
// Иначе
|
||||
// ПарольСовпадает = ПользовательИБ.СохраняемоеЗначениеПароля
|
||||
// = Пользователи.СохраняемоеЗначениеСтрокиПароля(Пароль);
|
||||
// КонецЕсли;
|
||||
//
|
||||
Функция СохраняемоеЗначениеСтрокиПароля(Знач Пароль) Экспорт
|
||||
|
||||
Возврат ПользователиСлужебный.СохраняемоеЗначениеСтрокиПароля(Пароль);
|
||||
@@ -2028,6 +2067,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(
|
||||
"Пользователи.УстановитьПравоОткрытияВнешнихОтчетовИОбработок");
|
||||
|
||||
ПараметрыАдминистрирования = СтандартныеПодсистемыСервер.ПараметрыАдминистрирования();
|
||||
ПараметрыАдминистрирования.Вставить("ПринятоРешениеПоОткрытиюВнешнихОтчетовИОбработок", Истина);
|
||||
СтандартныеПодсистемыСервер.УстановитьПараметрыАдминистрирования(ПараметрыАдминистрирования);
|
||||
@@ -2086,6 +2128,8 @@
|
||||
//
|
||||
Процедура УстановитьОбщиеНастройкиВхода(ОбщиеСохраняемыеНастройки) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен("Пользователи.УстановитьОбщиеНастройкиВхода");
|
||||
|
||||
Блокировка = Новый БлокировкаДанных();
|
||||
Блокировка.Добавить("Константа.НастройкиВходаПользователей");
|
||||
|
||||
@@ -2155,6 +2199,8 @@
|
||||
//
|
||||
Процедура УстановитьНастройкиВхода(СохраняемыеНастройки, ДляВнешнихПользователей = Ложь) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен("Пользователи.УстановитьНастройкиВхода");
|
||||
|
||||
Блокировка = Новый БлокировкаДанных();
|
||||
Блокировка.Добавить("Константа.НастройкиВходаПользователей");
|
||||
|
||||
@@ -2337,6 +2383,9 @@
|
||||
//
|
||||
Функция СвойстваПроверяемогоПользователяИБ(Пользователь) Экспорт
|
||||
|
||||
ПользователиСлужебный.ПроверитьБезопасныйРежимОтключен(
|
||||
"Пользователи.СвойстваПроверяемогоПользователяИБ");
|
||||
|
||||
СвойстваТекущегоПользовательИБ = ПользователиСлужебныйПовтИсп.СвойстваТекущегоПользователяИБ();
|
||||
ПользовательИБ = Неопределено;
|
||||
|
||||
|
||||
@@ -256,6 +256,9 @@
|
||||
//
|
||||
Процедура УстановитьНачальныеНастройки(Знач ИмяПользователя, ЭтоВнешнийПользователь = Ложь) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.УстановитьНачальныеНастройки");
|
||||
|
||||
НастройкиКлиента = Новый НастройкиКлиентскогоПриложения;
|
||||
НастройкиКлиента.ОтображатьПанелиНавигацииИДействий = Ложь;
|
||||
НастройкиКлиента.ОтображатьПанельРазделов = Истина;
|
||||
@@ -616,6 +619,9 @@
|
||||
НайденныйПользователь = Неопределено,
|
||||
ИдентификаторПользователяСервиса = Ложь) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПользовательПоИдентификаторуСуществует");
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
@@ -662,6 +668,9 @@
|
||||
//
|
||||
Функция ПользовательИБПоИдентификатору(ИдентификаторПользователяИБ) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПользовательИБПоИдентификатору");
|
||||
|
||||
Если ТипЗнч(ИдентификаторПользователяИБ) <> Тип("УникальныйИдентификатор") Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
@@ -751,6 +760,9 @@
|
||||
Процедура ЗаписатьПользователяИнформационнойБазы(ПользовательИБ, ЭтоВнешнийПользователь = Ложь,
|
||||
Пользователь = Неопределено, Знач СообщатьВМенеджерСервиса = Истина) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ЗаписатьПользователяИнформационнойБазы");
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПередЗаписьюПользователяИБ(ПользовательИБ);
|
||||
|
||||
СообщатьВМенеджерСервиса = СообщатьВМенеджерСервиса
|
||||
@@ -923,6 +935,9 @@
|
||||
//
|
||||
Процедура СкопироватьГруппыПользователя(Источник, Приемник) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.СкопироватьГруппыПользователя");
|
||||
|
||||
ВнешнийПользователь = (ТипЗнч(Источник) = Тип("СправочникСсылка.ВнешниеПользователи"));
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
@@ -1145,6 +1160,40 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Булево
|
||||
//
|
||||
Функция ДоступныНастройки8_3_26() Экспорт
|
||||
|
||||
Свойства = Новый Структура("ТипАлгоритмаХешированияПароля", Null);
|
||||
ЗаполнитьЗначенияСвойств(Свойства, ПользователиИнформационнойБазы.ТекущийПользователь());
|
||||
|
||||
Возврат Свойства.ТипАлгоритмаХешированияПароля <> Null;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// ИмяПроцедурыИлиФункции - Строка
|
||||
//
|
||||
Процедура ПроверитьБезопасныйРежимОтключен(ИмяПроцедурыИлиФункции) Экспорт
|
||||
|
||||
Если БезопасныйРежим() = Ложь Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Если ПривилегированныйРежим() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Выполнение ""%1"" недоступно в безопасном режиме.'"),
|
||||
ИмяПроцедурыИлиФункции);
|
||||
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обработчики событий подсистем конфигурации.
|
||||
|
||||
@@ -1271,6 +1320,9 @@
|
||||
// См. СтандартныеПодсистемыСервер.ПриОтправкеСерверногоОповещения
|
||||
Процедура ПриОтправкеСерверногоОповещения(ИмяОповещения, ВариантыПараметров) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПриОтправкеСерверногоОповещения");
|
||||
|
||||
ОбновитьДатуПоследнейАктивностиПользователей(ВариантыПараметров);
|
||||
ОтключитьНеактивныхИПросроченныхПользователей();
|
||||
|
||||
@@ -1337,6 +1389,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПриСбореПоказателейСтатистикиКонфигурации");
|
||||
|
||||
МодульЦентрМониторинга = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторинга");
|
||||
|
||||
АутентификацияСтандартная = 0;
|
||||
@@ -1445,6 +1500,9 @@
|
||||
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных.
|
||||
Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПослеЗагрузкиДанных");
|
||||
|
||||
// Сброс решения, принятого администратором в форме "Предупреждение безопасности".
|
||||
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
ПараметрыАдминистрирования = СтандартныеПодсистемыСервер.ПараметрыАдминистрирования();
|
||||
@@ -1721,6 +1779,9 @@
|
||||
// См. ОбменДаннымиПереопределяемый.ПриНастройкеПодчиненногоУзлаРИБ.
|
||||
Процедура ПриНастройкеПодчиненногоУзлаРИБ() Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПриНастройкеПодчиненногоУзлаРИБ");
|
||||
|
||||
ОчиститьИдентификаторыНесуществующихПользователейИБ();
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -1842,6 +1903,9 @@
|
||||
//
|
||||
Функция НастройкиВхода() Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.НастройкиВхода");
|
||||
|
||||
Настройки = Новый Структура;
|
||||
Настройки.Вставить("Общие", Пользователи.НовоеОписаниеОбщихНастроекВхода());
|
||||
Настройки.Вставить("Пользователи", Пользователи.НовоеОписаниеНастроекВхода());
|
||||
@@ -1930,6 +1994,9 @@
|
||||
//
|
||||
Процедура ЗаполнитьОбщиеНастройкиИзОбщейПолитикиПаролей(Настройки)
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ЗаполнитьОбщиеНастройкиИзОбщейПолитикиПаролей");
|
||||
|
||||
НастройкиБлокировки = БлокировкаАутентификации.ПолучитьНастройки();
|
||||
|
||||
Настройки.ДлительностьБлокировкиВводаПароля =
|
||||
@@ -1945,6 +2012,9 @@
|
||||
//
|
||||
Процедура ОбновитьОбщуюПолитикуПаролей(Настройки) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ОбновитьОбщуюПолитикуПаролей");
|
||||
|
||||
НастройкиБлокировки = БлокировкаАутентификации.ПолучитьНастройки();
|
||||
Записать = Ложь;
|
||||
|
||||
@@ -1975,6 +2045,9 @@
|
||||
//
|
||||
Процедура ЗаполнитьНастройкиИзПолитикиПаролейПользователей(Настройки)
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ЗаполнитьНастройкиИзПолитикиПаролейПользователей");
|
||||
|
||||
СекундВДне = 24*60*60;
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
|
||||
@@ -2007,6 +2080,9 @@
|
||||
//
|
||||
Процедура ОбновитьПолитикуПаролейПользователей(Настройки) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ОбновитьПолитикуПаролейПользователей");
|
||||
|
||||
СекундВДне = 24*60*60;
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
|
||||
@@ -2065,6 +2141,9 @@
|
||||
//
|
||||
Процедура ЗаполнитьНастройкиИзПолитикиПаролейВнешнихПользователей(Настройки)
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ЗаполнитьНастройкиИзПолитикиПаролейВнешнихПользователей");
|
||||
|
||||
ПолитикаПаролей = ПолитикиПаролейПользователей.НайтиПоИмени(
|
||||
ИмяПолитикиПаролейВнешнихПользователей());
|
||||
|
||||
@@ -2104,6 +2183,9 @@
|
||||
//
|
||||
Процедура ОбновитьПолитикуПаролейВнешнихПользователей(Настройки) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ОбновитьПолитикуПаролейВнешнихПользователей");
|
||||
|
||||
ИмяПолитики = ИмяПолитикиПаролейВнешнихПользователей();
|
||||
|
||||
ПолитикаПаролей = ПолитикиПаролейПользователей.НайтиПоИмени(ИмяПолитики);
|
||||
@@ -2165,6 +2247,9 @@
|
||||
//
|
||||
Процедура УстановитьПолитикуПаролей(ПользовательИБ, ЭтоВнешнийПользователь) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.УстановитьПолитикуПаролей");
|
||||
|
||||
ИмяПолитикиПаролей = ИмяПолитикиПаролей(ЭтоВнешнийПользователь);
|
||||
Если ПользовательИБ.ИмяПолитикиПаролей <> ИмяПолитикиПаролей Тогда
|
||||
ПользовательИБ.ИмяПолитикиПаролей = ИмяПолитикиПаролей;
|
||||
@@ -2197,6 +2282,9 @@
|
||||
//
|
||||
Процедура УстановитьРеквизитПоказыватьВСпискеВыбораУВсехПользователейИБ(Показывать) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.УстановитьРеквизитПоказыватьВСпискеВыбораУВсехПользователейИБ");
|
||||
|
||||
Скрытые = Новый Соответствие;
|
||||
|
||||
Если Показывать Тогда
|
||||
@@ -2432,6 +2520,9 @@
|
||||
//
|
||||
Функция ВозможноИзменитьПароль(Пользователь, ДополнительныеПараметры = Неопределено) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ВозможноИзменитьПароль");
|
||||
|
||||
Если ТипЗнч(ДополнительныеПараметры) <> Тип("Структура") Тогда
|
||||
ДополнительныеПараметры = Новый Структура;
|
||||
КонецЕсли;
|
||||
@@ -2598,6 +2689,9 @@
|
||||
//
|
||||
Функция ОбработатьНовыйПароль(Параметры) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ОбработатьНовыйПароль");
|
||||
|
||||
НовыйПароль = Параметры.НовыйПароль;
|
||||
СтарыйПароль = Параметры.СтарыйПароль;
|
||||
|
||||
@@ -2840,7 +2934,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает сохраняемое значение пароля для указанного пароля.
|
||||
// Возвращает сохраняемое значение пароля для указанного пароля по алгоритму SHA-1.
|
||||
//
|
||||
// Параметры:
|
||||
// Пароль - Строка - пароль для которого нужно получить сохраняемое значение.
|
||||
@@ -2852,6 +2946,9 @@
|
||||
//
|
||||
Функция СохраняемоеЗначениеСтрокиПароля(Пароль, ДляЗаписи = Ложь) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.СохраняемоеЗначениеСтрокиПароля");
|
||||
|
||||
Если Пароль = "" И Не ДляЗаписи Тогда
|
||||
СохраняемоеЗначениеПароля = "";
|
||||
Иначе
|
||||
@@ -2885,6 +2982,9 @@
|
||||
//
|
||||
Функция СтарыйПарольСовпадаетССохраненным(Пароль, ИдентификаторПользователяИБ) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.СтарыйПарольСовпадаетССохраненным");
|
||||
|
||||
Если ТипЗнч(ИдентификаторПользователяИБ) <> Тип("УникальныйИдентификатор") Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
@@ -2896,8 +2996,16 @@
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ХешСуммаПароляСовпадает(СохраняемоеЗначениеСтрокиПароля(Пароль),
|
||||
ПользовательИБ.СохраняемоеЗначениеПароля);
|
||||
Если ДоступныНастройки8_3_26() Тогда
|
||||
// АПК:488-выкл Поддержка новых методов платформы (исполняемый код безопасен)
|
||||
Результат = Вычислить("ПроверитьСоответствиеПароляПользователяСохраняемомуЗначению(Пароль, ПользовательИБ)");
|
||||
// АПК:488-вкл
|
||||
Иначе
|
||||
Результат = ХешСуммаПароляСовпадает(СохраняемоеЗначениеСтрокиПароля(Пароль),
|
||||
ПользовательИБ.СохраняемоеЗначениеПароля);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -3085,6 +3193,9 @@
|
||||
ПараметрыОбработки,
|
||||
УдалениеПользователяИзСправочника = Ложь) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.НачатьОбработкуПользователяИБ");
|
||||
|
||||
ПараметрыОбработки = Новый Структура;
|
||||
ДополнительныеСвойства = ПользовательОбъект.ДополнительныеСвойства;
|
||||
|
||||
@@ -3366,6 +3477,9 @@
|
||||
//
|
||||
Процедура ЗавершитьОбработкуПользователяИБ(ПользовательОбъект, ПараметрыОбработки) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ЗавершитьОбработкуПользователяИБ");
|
||||
|
||||
ПроверитьИзмененияРеквизитовПользователя(ПользовательОбъект, ПараметрыОбработки);
|
||||
|
||||
// ПередЗавершениемОбработкиПользователяИБ - поддержка модели сервиса.
|
||||
@@ -3427,6 +3541,9 @@
|
||||
//
|
||||
Функция ХранимыеСвойстваПользователяИБ(ОписаниеПользователя, ВходВПрограммуРазрешен = Ложь) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ХранимыеСвойстваПользователяИБ");
|
||||
|
||||
Свойства = Новый Структура;
|
||||
Свойства.Вставить("ВходВПрограммуРазрешен", Ложь);
|
||||
Свойства.Вставить("АутентификацияСтандартная", Ложь);
|
||||
@@ -4085,6 +4202,9 @@
|
||||
//
|
||||
Процедура ОбновитьРолиВнешнихПользователей(Знач МассивВнешнихПользователей = Неопределено) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ОбновитьРолиВнешнихПользователей");
|
||||
|
||||
Если ЗапретРедактированияРолей() Тогда
|
||||
// Роли устанавливаются другим механизмом, например, механизмом подсистемы УправлениеДоступом.
|
||||
Возврат;
|
||||
@@ -4459,6 +4579,9 @@
|
||||
//
|
||||
Процедура СкопироватьНастройкиПользователя(ИмяПользователяИсточник, ИмяПользователяПриемник, Переносить = Ложь) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.СкопироватьНастройкиПользователя");
|
||||
|
||||
// Перенос пользовательских настроек отчетов.
|
||||
СкопироватьНастройки(ХранилищеПользовательскихНастроекОтчетов, ИмяПользователяИсточник, ИмяПользователяПриемник, Переносить);
|
||||
// Перенос настроек внешнего вида.
|
||||
@@ -4493,6 +4616,9 @@
|
||||
Функция ПеремещениеПользователяВНовуюГруппу(МассивПользователей, ГруппаИсточник,
|
||||
ГруппаПриемник, Перемещение) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПеремещениеПользователяВНовуюГруппу");
|
||||
|
||||
Если ГруппаПриемник = Неопределено
|
||||
Или ГруппаПриемник = ГруппаИсточник Тогда
|
||||
Возврат Неопределено;
|
||||
@@ -4612,6 +4738,9 @@
|
||||
|
||||
Процедура ДобавитьПользователяВГруппу(ГруппаВладелец, ПользовательСсылка, ИмяКолонкиСостава, Добавлен) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ДобавитьПользователяВГруппу");
|
||||
|
||||
Если ГруппаВладелец = Справочники.ГруппыПользователей.ВсеПользователи
|
||||
Или ГруппаВладелец = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда
|
||||
Возврат;
|
||||
@@ -4656,6 +4785,9 @@
|
||||
|
||||
Процедура УдалитьПользователяИзГруппы(ГруппаВладелец, ПользовательСсылка, ИмяКолонкиСостава, Удален = Ложь) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.УдалитьПользователяИзГруппы");
|
||||
|
||||
Если ГруппаВладелец = Справочники.ГруппыПользователей.ВсеПользователи
|
||||
Или ГруппаВладелец = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда
|
||||
Возврат;
|
||||
@@ -4830,6 +4962,9 @@
|
||||
|
||||
Процедура ЗаполнитьПочтуДляВосстановленияПароляУПользователейВФоне(ДополнительныеПараметры, АдресВоВременномХранилище) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ЗаполнитьПочтуДляВосстановленияПароляУПользователейВФоне");
|
||||
|
||||
СписокПользователей = ПользователиДляВключенияВосстановленияПароля();
|
||||
Для каждого ПользовательСсылка Из СписокПользователей Цикл
|
||||
ОбновитьПочтуДляВосстановленияПароля(ПользовательСсылка);
|
||||
@@ -4914,6 +5049,9 @@
|
||||
|
||||
Функция ПользователиДляВключенияВосстановленияПароля() Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПользователиДляВключенияВосстановленияПароля");
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
|
||||
Возврат Новый Массив;
|
||||
КонецЕсли;
|
||||
@@ -4955,6 +5093,9 @@
|
||||
|
||||
Функция ПользователиДляВключенияВосстановленияПароляСУчетомВнешнихПользователей(ПользователиИБСПочтой)
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПользователиДляВключенияВосстановленияПароляСУчетомВнешнихПользователей");
|
||||
|
||||
ТипыВнешнихПользователей = Метаданные.ОпределяемыеТипы.ВнешнийПользователь.Тип.Типы();
|
||||
|
||||
Если ТипыВнешнихПользователей.Количество() = 0 Тогда
|
||||
@@ -5073,6 +5214,9 @@
|
||||
|
||||
Функция ВнешниеПользователиДляВключенияВосстановленияПароля() Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ВнешниеПользователиДляВключенияВосстановленияПароля");
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
|
||||
Возврат Новый Массив;
|
||||
КонецЕсли;
|
||||
@@ -5163,6 +5307,9 @@
|
||||
|
||||
Функция ОбновитьПочтуДляВосстановленияПароля(ПользовательСсылка, ОбъектАвторизации = Неопределено) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ОбновитьПочтуДляВосстановленияПароля");
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Статус", "ОбновлениеНеТребуется");
|
||||
Результат.Вставить("ТекстОшибки", "");
|
||||
@@ -5687,6 +5834,9 @@
|
||||
//
|
||||
Процедура ЗаполнитьСпискиНастроек(Параметры, АдресХранилища) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ЗаполнитьСпискиНастроек");
|
||||
|
||||
Если Параметры.ПользовательИнформационнойБазы <> ИмяПользователя()
|
||||
И Не ПравоДоступа("АдминистрированиеДанных", Метаданные) Тогда
|
||||
|
||||
@@ -5713,6 +5863,9 @@
|
||||
// См. ПользователиПереопределяемый.ПриПолученииПрочихНастроек
|
||||
Процедура ПриПолученииПрочихНастроекПользователя(СведенияОПользователе, Настройки) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПриПолученииПрочихНастроекПользователя");
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПриПолученииПрочихНастроек(СведенияОПользователе, Настройки);
|
||||
ПользователиПереопределяемый.ПриПолученииПрочихНастроек(СведенияОПользователе, Настройки);
|
||||
|
||||
@@ -5720,6 +5873,9 @@
|
||||
|
||||
Процедура ПриСохраненииПрочихНастроекПользователя(СведенияОПользователе, Настройки) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПриСохраненииПрочихНастроекПользователя");
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПриСохраненииПрочихНастроек(СведенияОПользователе, Настройки);
|
||||
ПользователиПереопределяемый.ПриСохраненииПрочихНастроек(СведенияОПользователе, Настройки);
|
||||
|
||||
@@ -5727,6 +5883,9 @@
|
||||
|
||||
Процедура ПриУдаленииПрочихНастроекПользователя(СведенияОПользователе, Настройки) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ПриУдаленииПрочихНастроекПользователя");
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПриУдаленииПрочихНастроек(СведенияОПользователе, Настройки);
|
||||
ПользователиПереопределяемый.ПриУдаленииПрочихНастроек(СведенияОПользователе, Настройки);
|
||||
|
||||
@@ -7706,6 +7865,9 @@
|
||||
//
|
||||
Функция ОшибкаСоответствияПароляТребованиям(Пароль, ПользовательИБ) Экспорт
|
||||
|
||||
ПроверитьБезопасныйРежимОтключен(
|
||||
"ПользователиСлужебный.ОшибкаСоответствияПароляТребованиям");
|
||||
|
||||
ПолитикаПаролей = ПолитикиПаролейПользователей.НайтиПоИмени(ПользовательИБ.ИмяПолитикиПаролей);
|
||||
|
||||
Ошибки = ПолитикиПаролейПользователей.ПроверитьСоответствиеПароляПолитике(Пароль,
|
||||
|
||||
@@ -1388,7 +1388,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИдентификаторКлассификатора()
|
||||
Функция ИдентификаторКлассификатора() Экспорт
|
||||
Возврат "Countries";
|
||||
КонецФункции
|
||||
|
||||
@@ -3172,53 +3172,9 @@
|
||||
//
|
||||
Функция ТаблицаКлассификатора() Экспорт
|
||||
|
||||
Классификатор = Неопределено;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
|
||||
|
||||
ИдентификаторКлассификатора = ИдентификаторКлассификатора();
|
||||
|
||||
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
|
||||
Идентификаторы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторКлассификатора);
|
||||
Результат = МодульРаботаСКлассификаторами.ПолучитьФайлыКлассификаторов(Идентификаторы);
|
||||
|
||||
Если ПустаяСтрока(Результат.КодОшибки) И Результат.ДанныеКлассификаторов <> Неопределено Тогда
|
||||
|
||||
ОписаниеКлассификатора = Результат.ДанныеКлассификаторов.Найти(ИдентификаторКлассификатора, "Идентификатор");
|
||||
Если ОписаниеКлассификатора <> Неопределено Тогда
|
||||
Классификатор = ПолучитьИзВременногоХранилища(ОписаниеКлассификатора.АдресФайла);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Классификатор = Неопределено Тогда
|
||||
|
||||
Макет = Справочники.СтраныМира.ПолучитьМакет("Классификатор");
|
||||
КлассификаторXML = Макет.ПолучитьТекст();
|
||||
|
||||
Иначе
|
||||
|
||||
НаборСтрок = Новый Массив;
|
||||
ЧтениеЧасти = Новый ЧтениеДанных(Классификатор.ОткрытьПотокДляЧтения());
|
||||
|
||||
Пока Не ЧтениеЧасти.ЧтениеЗавершено Цикл
|
||||
НаборСтрок.Добавить(ЧтениеЧасти.ПрочитатьСтроку());
|
||||
КонецЦикла;
|
||||
|
||||
КлассификаторXML = СтрСоединить(НаборСтрок, ЧтениеЧасти.РазделительСтрок);
|
||||
КонецЕсли;
|
||||
|
||||
Чтение = Новый ЧтениеXML;
|
||||
Чтение.УстановитьСтроку(КлассификаторXML);
|
||||
ТаблицаСтран = СериализаторXDTO.ПрочитатьXML(Чтение); // ТаблицаЗначений
|
||||
|
||||
// Старые версии классификаторов не содержат колонку МеждународноеНаименование
|
||||
Если ТаблицаСтран.Колонки.Найти("МеждународноеНаименование") = Неопределено Тогда
|
||||
ТаблицаСтран.Колонки.Добавить("МеждународноеНаименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ТаблицаСтран;
|
||||
Результат = РаботаСАдресамиПовтИсп.СтраныМира();
|
||||
СтраныМира = Результат.СтраныМира.Скопировать();
|
||||
Возврат СтраныМира;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
Loaded 100 of 279 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user