diff --git a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl index f64c81a51..a93907088 100644 --- a/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl +++ b/SSL/src/Catalogs/ВерсииРасширений/ManagerModule.bsl @@ -445,13 +445,6 @@ КонецПроцедуры -// Вызывается из формы Расширения. -Процедура ПриУдаленииВсехРасширений() Экспорт - - ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Истина); - -КонецПроцедуры - // Включает/Отключает регламентное задание УдалениеУстаревшихПараметровРаботыВерсийРасширений. Процедура ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Включить) Экспорт @@ -602,7 +595,7 @@ Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() И РасширенияКонфигурации.Получить().Количество() = 0 Тогда - Справочники.ВерсииРасширений.ПриУдаленииВсехРасширений(); + ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Истина); КонецЕсли; Исключение ИнформацияОбОшибке = ИнформацияОбОшибке(); diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Module.bsl index 318687484..bbaabb979 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ПоискКомпонентыНаПортале1СИТС/Module.bsl @@ -109,7 +109,7 @@ КонецФункции &НаСервере -Функция НачатьПолучениеКомпонентыСПортала(Идентификатор, Версия, ОбновлятьАвтоматически) +Функция НачатьПолучениеКомпонентыСПортала(Знач Идентификатор, Знач Версия, Знач ОбновлятьАвтоматически) Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаСПортала() Тогда Возврат Неопределено; diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl index b4ff17267..a3cf69d25 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаСписка/Module.bsl @@ -272,7 +272,7 @@ КонецПроцедуры &НаСервере -Функция ЗагрузитьКомпонентыНаСервере(ПомещенныеФайлы) +Функция ЗагрузитьКомпонентыНаСервере(Знач ПомещенныеФайлы) ОписаниеОшибок = Новый Массив; @@ -375,7 +375,7 @@ КонецПроцедуры &НаСервереБезКонтекста -Функция ЭтоФайлСервиса(АдресФайла) +Функция ЭтоФайлСервиса(Знач АдресФайла) Если ВнешниеКомпонентыСлужебный.ДоступнаИнтерактивнаяЗагрузкаСПортала() Тогда diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl index 5c7895fd1..c01077170 100644 --- a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl @@ -349,7 +349,7 @@ // Серверная логика процедуры ЗагрузитьКомпонентуИзФайла. &НаСервере -Функция ЗагрузитьКомпонентуИзФайлаНаСервере(ПараметрыЗагрузки) +Функция ЗагрузитьКомпонентуИзФайлаНаСервере(Знач ПараметрыЗагрузки) Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда ВызватьИсключение НСтр("ru = 'Недостаточно прав для загрузки компоненты.'"); diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/НастройкиПолномочий/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/НастройкиПолномочий/Module.bsl index 73f14a746..a95386c0f 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/НастройкиПолномочий/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/НастройкиПолномочий/Module.bsl @@ -76,7 +76,7 @@ КонецПроцедуры &НаСервере -Процедура УдалитьНастройкуНаСервере(НастройкаПолномочий) +Процедура УдалитьНастройкуНаСервере(Знач НастройкаПолномочий) Пользователь = Пользователи.ТекущийПользователь(); diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Form.form b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Form.form index dfa56df91..64dcf73b8 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Form.form +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Form.form @@ -2024,10 +2024,6 @@ NotificationProcessing ОбработкаОповещения - - OnOpen - ПриОткрытии - BeforeClose ПередЗакрытием @@ -2960,6 +2956,12 @@ true + + УникальныйИдентификаторВладельца + + UUID + + diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl index 184b97aa0..ff0cbb559 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/СведенияОбОрганизации/Module.bsl @@ -12,6 +12,8 @@ Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Ссылка = Параметры.Ссылка; + УникальныйИдентификаторВладельца = Параметры.УникальныйИдентификаторВладельца; + ЗаполнитьСведенияОбОрганизации(ЭтотОбъект, Параметры.Реквизиты); Если Параметры.РедактированиеТаблицы Тогда @@ -89,13 +91,6 @@ КонецПроцедуры -&НаКлиенте -Процедура ПриОткрытии(Отказ) - - УникальныйИдентификаторВладельца = ВладелецФормы.УникальныйИдентификатор; - -КонецПроцедуры - &НаКлиенте Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка) @@ -438,6 +433,8 @@ Представители.Добавить(Структура); КонецЦикла; СведенияОбОрганизации.Вставить("Представители", Представители); + Иначе + СведенияОбОрганизации.Вставить("Представители", Неопределено); КонецЕсли; СведенияОбОрганизации.Вставить("Ссылка", Ссылка); @@ -671,8 +668,10 @@ МашиночитаемыеДоверенностиФНССлужебный.ПриЗаполненииРеквизитовОрганизации(Реквизиты); КонецЕсли; - ТаблицаПредставительНесколько[0].ПредставительСтрока = МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации( - Реквизиты, "Представитель", Ложь); + ЗаголовокДекорации = МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации( + Реквизиты, "Представитель", Ложь); // ФорматированнаяСтрока + + ТаблицаПредставительНесколько[0].ПредставительСтрока = ЗаголовокДекорации; Реквизиты.ЭтоДолжностноеЛицо = Не ЭтоИндивидуальныйПредприниматель; Реквизиты.ЭтоИндивидуальныйПредприниматель = ЭтоИндивидуальныйПредприниматель; ТаблицаПредставительНесколько[0].АдресРеквизитов = ПоместитьВоВременноеХранилище(Реквизиты, УникальныйИдентификаторВладельца); diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Module.bsl index b243719d6..a019bff19 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаВводаПолномочий/Module.bsl @@ -520,6 +520,7 @@ &НаСервере Процедура ЗагрузитьВыбранныеПолномочия(ВыбранныеПолномочия, ДеревоЗначений) + СтрокиСПометками = Новый Соответствие; Для Каждого Полномочие Из ВыбранныеПолномочия.Полномочия Цикл Найдено = ДеревоЗначений.Строки.НайтиСтроки( @@ -532,6 +533,11 @@ НоваяСтрока = Найдено[0]; НоваяСтрока.Пометка = Истина; НоваяСтрока.ИдентификаторПолномочия = Полномочие.ИдентификаторПолномочия; + Если ЗначениеЗаполнено(НоваяСтрока.Родитель) Тогда + Если СтрокиСПометками[НоваяСтрока.Родитель] = Неопределено Тогда + СтрокиСПометками.Вставить(НоваяСтрока.Родитель, Истина); + КонецЕсли; + КонецЕсли; КонецЕсли; СтрокаВыбранные = ВыбранныеПолномочияТаблица.Добавить(); @@ -540,6 +546,27 @@ КонецЦикла; + Для Каждого КлючИЗначение Из СтрокиСПометками Цикл + Родитель = КлючИЗначение.Ключ; + РазныеСтроки = Ложь; + Флажок = Неопределено; + Для Каждого Строка Из Родитель.Строки Цикл + Если Флажок = Неопределено Тогда + Флажок = Строка.Пометка; + Продолжить; + КонецЕсли; + Если Флажок <> Строка.Пометка Тогда + РазныеСтроки = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + Если РазныеСтроки Тогда + Родитель.Пометка = 2; + Иначе + Родитель.Пометка = Флажок; + КонецЕсли; + КонецЦикла; + ИдентификаторыПолномочийСОграничениями = Новый Соответствие; Если ВыбранныеПолномочия.Ограничения.Количество() > 0 Тогда diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form index 92cfff6a0..60b54e086 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Form.form @@ -211,9 +211,12 @@ false true ShowInInputField + true + false true true true + Catalog.СертификатыКлючейЭлектроннойПодписиИШифрования.Form.ВыборСертификатаДляПодписанияИлиРасшифровки Normal @@ -333,6 +336,62 @@ Normal + + Доверитель + 218 + true + true + + true + + + Доверитель + + None + + OnChange + ДоверительПриИзменении + + + ДоверительРасширеннаяПодсказка + 220 + Label + true + true + + Left + + + + ДоверительКонтекстноеМеню + 219 + true + + InputField + Enter + true + Left + true + + + Clearing + ДоверительОчистка + + 25 + true + true + true + true + false + true + true + Normal + + ru + Наименование, ИНН, СНИЛС + + + true true @@ -446,6 +505,62 @@ Normal + + Представитель + 221 + true + true + + true + + + Представитель + + None + + OnChange + ПредставительПриИзменении + + + ПредставительРасширеннаяПодсказка + 223 + Label + true + true + + Left + + + + ПредставительКонтекстноеМеню + 222 + true + + InputField + Enter + true + Left + true + + + Clearing + ПредставительОчистка + + 25 + true + true + true + true + false + true + true + Normal + + ru + Наименование, ИНН, СНИЛС + + + true true @@ -2729,6 +2844,36 @@ true + + Доверитель + + <key>ru</key> + <value>Доверитель</value> + + 15 + + + true + + + true + + + + Представитель + + <key>ru</key> + <value>Представитель</value> + + 16 + + + true + + + true + + ЗагрузитьИзФайла diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl index 61e5c1ab2..a7dc77689 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаСписка/Module.bsl @@ -20,7 +20,6 @@ Список.АвтоматическоеСохранениеПользовательскихНастроек = Ложь; КонецЕсли; - КешироватьЗначенияСтатусов(); Заголовок = НСтр("ru='Машиночитаемые доверенности'"); АвторизованныйПользователь = Пользователи.АвторизованныйПользователь(); ДобавитьПолеОтбора("Доверитель", "ТипДоверителя"); @@ -62,12 +61,12 @@ КонецПроцедуры &НаКлиенте -Процедура Подключаемый_ПредставительПриИзменении(Элемент) +Процедура ПредставительПриИзменении(Элемент) УстановитьОтбор(); КонецПроцедуры &НаКлиенте -Процедура Подключаемый_ДоверительПриИзменении(Элемент) +Процедура ДоверительПриИзменении(Элемент) УстановитьОтбор(); КонецПроцедуры @@ -93,12 +92,12 @@ КонецПроцедуры &НаКлиенте -Процедура Подключаемый_ДоверительОчистка(СтандартнаяОбработка) +Процедура ДоверительОчистка(СтандартнаяОбработка) ОчисткаОтбора("Доверитель", "ТипДоверителя"); КонецПроцедуры &НаКлиенте -Процедура Подключаемый_ПредставительОчистка(СтандартнаяОбработка) +Процедура ПредставительОчистка(СтандартнаяОбработка) ОчисткаОтбора("Представитель", "ТипПредставителя"); КонецПроцедуры @@ -210,7 +209,7 @@ КонецПроцедуры &НаСервере -Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) +Процедура ВыполнитьКомандуНаСервере(Знач ПараметрыВыполнения) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список); КонецПроцедуры @@ -225,8 +224,8 @@ Процедура УстановитьОтбор() ТекущаяДатаСеанса = КонецДня(ОбщегоНазначенияКлиент.ДатаСеанса()); ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Действует", Истина, ВидСравненияКомпоновкиДанных.Равно,,ТолькоДействующие); - УстановитьОтборСоСтрокойПоиска(ЭтотОбъект.Доверитель, "Доверитель"); - УстановитьОтборСоСтрокойПоиска(ЭтотОбъект.Представитель, "Представитель"); + УстановитьОтборСоСтрокойПоиска(Доверитель, "Доверитель"); + УстановитьОтборСоСтрокойПоиска(Представитель, "Представитель"); УстановитьОтборСоСтрокойПоиска(Полномочия, "Полномочия"); УстановитьОтборПоРоли(); ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, "ТекущаяДата", ТекущаяДатаСеанса); @@ -235,20 +234,20 @@ ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.БольшеИлиРавно); ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(Список.Отбор, "ДатаОкончания", ВидСравненияКомпоновкиДанных.МеньшеИлиРавно, МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ДатаОкончанияПериодаИстекающихДоверенностей(ТекущаяДатаСеанса)); - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ЭтотОбъект.СтатусМЧД_Действует, ВидСравненияКомпоновкиДанных.Равно); + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.СтатусыМЧД.Действует"), ВидСравненияКомпоновкиДанных.Равно); Заголовок = Заголовок+" "+НСтр("ru='(с истекающим сроком)'"); ИначеЕсли ОтборПоСостоянию = "ТребуютВнимания" Тогда ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.Больше); МассивСтатусов = Новый Массив; - МассивСтатусов.Добавить(ЭтотОбъект.ТехническийСтатус_ОшибкаРегистрации); - МассивСтатусов.Добавить(ЭтотОбъект.ТехническийСтатус_Регистрация); - МассивСтатусов.Добавить(ЭтотОбъект.ТехническийСтатус_РегистрацияОтмены); + МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.ОшибкаРегистрации")); + МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.Регистрация")); + МассивСтатусов.Добавить(ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.РегистрацияОтмены")); ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ТехническийСтатус", МассивСтатусов, ВидСравненияКомпоновкиДанных.ВСписке); Заголовок = Заголовок+" "+НСтр("ru='(требуют внимания)'"); ИначеЕсли ОтборПоСостоянию = "ОжидаютПодписания" Тогда ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "ДатаОкончания", ТекущаяДатаСеанса, ВидСравненияКомпоновкиДанных.Больше); - ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ЭтотОбъект.СтатусМЧД_Черновик, ВидСравненияКомпоновкиДанных.Равно); + ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Статус", ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.СтатусыМЧД.Черновик"), ВидСравненияКомпоновкиДанных.Равно); ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Подписана", Ложь, ВидСравненияКомпоновкиДанных.Равно); Заголовок = Заголовок+" "+НСтр("ru='(ожидают подписания)'"); КонецЕсли; @@ -292,7 +291,7 @@ КонецПроцедуры &НаСервереБезКонтекста -Функция СформироватьСтрокуДляПоискаВЗапросе(Значение) +Функция СформироватьСтрокуДляПоискаВЗапросе(Знач Значение) Возврат ОбщегоНазначения.СформироватьСтрокуДляПоискаВЗапросе(Значение); КонецФункции @@ -323,26 +322,11 @@ &НаСервере Процедура ДобавитьПолеОтбора(ИмяПоля, ИмяПоляТипа) - ДобавляемыеРеквизиты = Новый Массив; РасширенноеОписаниеТипаСтороны = Новый ОписаниеТипов(Метаданные.ОпределяемыеТипы.СторонаМЧД.Тип); - ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяПоля, РасширенноеОписаниеТипаСтороны)); Для Каждого Тип Из РасширенноеОписаниеТипаСтороны.Типы() Цикл Элементы[ИмяПоляТипа].СписокВыбора.Добавить(Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Тип)), Строка(Тип)); КонецЦикла; Элементы[ИмяПоляТипа].СписокВыбора.СортироватьПоПредставлению(); - - ИзменитьРеквизиты(ДобавляемыеРеквизиты); - - ПолеДоверитель = Элементы.Добавить(ИмяПоля, Тип("ПолеФормы"), Элементы["Группа"+ИмяПоля]); - ПолеДоверитель.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет; - ПолеДоверитель.ПутьКДанным = ИмяПоля; - ПолеДоверитель.Вид = ВидПоляФормы.ПолеВвода; - ПолеДоверитель.УстановитьДействие("ПриИзменении", "Подключаемый_"+ИмяПоля+"ПриИзменении"); - ПолеДоверитель.УстановитьДействие("Очистка", "Подключаемый_"+ИмяПоля+"Очистка"); - ПолеДоверитель.ВыбиратьТип = Ложь; - ПолеДоверитель.КнопкаОчистки = Истина; - ПолеДоверитель.Ширина = 25; - ПолеДоверитель.ПодсказкаВвода = НСтр("ru='Наименование, ИНН, СНИЛС'"); ОписаниеТипа = Элементы[ИмяПоляТипа].СписокВыбора[0].Значение; ЭтотОбъект[ИмяПоля] = ОписаниеТипа.ПривестиЗначение(ЭтотОбъект[ИмяПоля]); ЭтотОбъект[ИмяПоляТипа] = ОписаниеТипа; @@ -401,45 +385,12 @@ КонецПроцедуры &НаСервере -Функция ЗагрузитьДоверенностиИзФайлов(ЗагруженныеФайлы) +Функция ЗагрузитьДоверенностиИзФайлов(Знач ЗагруженныеФайлы) Возврат Справочники.МашиночитаемыеДоверенности.ЗагрузитьДоверенностиВИнформационнуюБазу(ЗагруженныеФайлы); КонецФункции -&НаСервере -Процедура КешироватьЗначенияСтатусов() - ДобавляемыеРеквизиты = Новый Массив; - ТипСтатуса = Новый ОписаниеТипов("ПеречислениеСсылка.СтатусыМЧД"); - - Для Каждого ЗначениеПеречисления Из Метаданные.Перечисления.СтатусыМЧД.ЗначенияПеречисления Цикл - НовыйРеквизит = Новый РеквизитФормы("СтатусМЧД_"+ЗначениеПеречисления.Имя, ТипСтатуса); - ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); - КонецЦикла; - - ТипСтатуса = Новый ОписаниеТипов("ПеречислениеСсылка.ТехническиеСтатусыМЧД"); - - Для Каждого ЗначениеПеречисления Из Метаданные.Перечисления.ТехническиеСтатусыМЧД.ЗначенияПеречисления Цикл - НовыйРеквизит = Новый РеквизитФормы("ТехническийСтатус_"+ЗначениеПеречисления.Имя, ТипСтатуса); - ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); - КонецЦикла; - - ИзменитьРеквизиты(ДобавляемыеРеквизиты); - - ИндексЗначения = 0; - Для Каждого ЗначениеПеречисления Из Метаданные.Перечисления.СтатусыМЧД.ЗначенияПеречисления Цикл - ЭтотОбъект["СтатусМЧД_"+ЗначениеПеречисления.Имя] = Перечисления.СтатусыМЧД[ИндексЗначения]; - ИндексЗначения = ИндексЗначения + 1; - КонецЦикла; - - ИндексЗначения = 0; - Для Каждого ЗначениеПеречисления Из Метаданные.Перечисления.ТехническиеСтатусыМЧД.ЗначенияПеречисления Цикл - ЭтотОбъект["ТехническийСтатус_"+ЗначениеПеречисления.Имя] = Перечисления.ТехническиеСтатусыМЧД[ИндексЗначения]; - ИндексЗначения = ИндексЗначения + 1; - КонецЦикла; - -КонецПроцедуры - &НаКлиенте Процедура ОчисткаОтбора(ИмяПоля, ИмяПоляТипа) ОписаниеТипа = Элементы[ИмяПоляТипа].СписокВыбора[0].Значение; @@ -483,7 +434,7 @@ КонецПроцедуры &НаСервереБезКонтекста -Функция ОтборДляДоверенностейПоСертификату(Сертификат, Представитель) +Функция ОтборДляДоверенностейПоСертификату(Знач Сертификат, Знач Представитель) Если ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда Возврат МашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(Сертификат.ДанныеСертификата.Получить(), Представитель); @@ -522,9 +473,7 @@ КонецЕсли; Для Каждого ЭлементОтбора Из Отборы Цикл - Если ВсеОтборыПоСертификатам.Свойство(ЭлементОтбора.Ключ) Тогда - ВсеОтборыПоСертификатам[ЭлементОтбора.Ключ] = ЭлементОтбора.Значение; - КонецЕсли; + ВсеОтборыПоСертификатам[ЭлементОтбора.Ключ] = ЭлементОтбора.Значение; КонецЦикла; КонецЕсли; КонецПроцедуры diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form index c3cdd337f..1787f90e5 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Form.form @@ -293,7 +293,7 @@ </userVisible> <title> <key>ru</key> - <value>Группа3</value> + <value>Группа представление статусов</value> ГруппаПредставлениеСтатусовРасширеннаяПодсказка @@ -362,7 +362,7 @@ <key>ru</key> - <value>Группа3</value> + <value>Группа описание состояния</value> ГруппаОписаниеСостоянияРасширеннаяПодсказка @@ -391,7 +391,7 @@ <key>ru</key> - <value>Группа3</value> + <value>Группа статусы</value> true @@ -421,107 +421,26 @@ ГруппаЛево 36 - ГруппаПередоверие - 195 + ГруппаПериодДействия + 69 - ВозможностьПередоверия - 76 - true - true - - true - - - Объект.ВозможностьПередоверия - - - ВозможностьПередоверияРасширеннаяПодсказка - 78 - Label - true - true - - Left - - - - ВозможностьПередоверияКонтекстноеМеню - 77 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - РодительскаяДоверенность - 79 - true - true - - true - - - Объект.РодительскаяДоверенность - - - РодительскаяДоверенностьРасширеннаяПодсказка - 81 - Label - true - true - - Left - - - - РодительскаяДоверенностьКонтекстноеМеню - 80 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - - - РодительскаяДоверенностьНомер - 82 + ДатаВыдачи + 41 <key>ru</key> - <value>Родительская доверенность</value> + <value>Действует с</value> + true true true - Объект.РодительскаяДоверенностьНомер + Объект.ДатаВыдачи - РодительскаяДоверенностьНомерРасширеннаяПодсказка - 84 + ДатаВыдачиРасширеннаяПодсказка + 43 Label true true @@ -530,8 +449,8 @@ - РодительскаяДоверенностьНомерКонтекстноеМеню - 83 + ДатаВыдачиКонтекстноеМеню + 42 true InputField @@ -549,17 +468,67 @@ Normal + + ДатаОкончания + 44 + + <key>ru</key> + <value>до</value> + + true + true + + true + + + Объект.ДатаОкончания + + + OnChange + ДатаОкончанияПриИзменении + + + ДатаОкончанияРасширеннаяПодсказка + 46 + Label + true + true + + Left + + + + ДатаОкончанияКонтекстноеМеню + 45 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true true true <key>ru</key> - <value>Группа передоверие</value> + <value>Группа период действия</value> - ГруппаПередовериеРасширеннаяПодсказка - 196 + ГруппаПериодДействияРасширеннаяПодсказка + 70 Label true true @@ -569,7 +538,7 @@ UsualGroup - Vertical + AlwaysHorizontal Auto WeakSeparation true @@ -608,26 +577,23 @@ - ГруппаПериодДействия - 69 - - ДатаВыдачи - 41 + ГруппаПраво + 1064 + + ДекорацияВерна + 1054 <key>ru</key> - <value>Действует с</value> + <value>Верна</value> true true true - - Объект.ДатаВыдачи - - ДатаВыдачиРасширеннаяПодсказка - 43 + ДекорацияВернаРасширеннаяПодсказка + 1056 Label true true @@ -636,47 +602,72 @@ - ДатаВыдачиКонтекстноеМеню - 42 + ДекорацияВернаКонтекстноеМеню + 1055 true - InputField - Enter - true - Left - true - + Label + true + 30 + true + + Style.РезультатУспехЦвет + + + Left + + + + ДекорацияНеверна + 1061 + + <key>ru</key> + <value>Неверна</value> + + true + true + + true + + + ДекорацияНевернаРасширеннаяПодсказка + 1063 + Label true true - true - true - true - true - Normal + + Left + + + + ДекорацияНевернаКонтекстноеМеню + 1062 + true + + Label + true + true + + Style.ПоясняющийОшибкуТекст + + + Left - ДатаОкончания - 44 - - <key>ru</key> - <value>до</value> - + Код + 66 true true true - Объект.ДатаОкончания + Объект.Code - - OnChange - ДатаОкончанияПриИзменении - - ДатаОкончанияРасширеннаяПодсказка - 46 + КодРасширеннаяПодсказка + 68 Label true true @@ -685,8 +676,8 @@ - ДатаОкончанияКонтекстноеМеню - 45 + КодКонтекстноеМеню + 67 true InputField @@ -695,7 +686,7 @@ Left true - true + 11 true true true @@ -711,11 +702,11 @@ <key>ru</key> - <value>Группа период действия</value> + <value>Группа право</value> - ГруппаПериодДействияРасширеннаяПодсказка - 70 + ГруппаПравоРасширеннаяПодсказка + 1065 Label true true @@ -734,47 +725,6 @@ Auto - - Код - 66 - true - true - - true - - - Объект.Code - - - КодРасширеннаяПодсказка - 68 - Label - true - true - - Left - - - - КодКонтекстноеМеню - 67 - true - - InputField - Enter - true - Left - true - - 20 - true - true - true - true - true - Normal - - true true @@ -784,6 +734,7 @@ ru Группа шапка + 80 ГруппаШапкаРасширеннаяПодсказка 35 @@ -805,6 +756,164 @@ Auto + + ГруппаПередоверие + 195 + + ВозможностьПередоверия + 76 + true + true + + true + + + Объект.ВозможностьПередоверия + + + ВозможностьПередоверияРасширеннаяПодсказка + 78 + Label + true + true + + Left + + + + ВозможностьПередоверияКонтекстноеМеню + 77 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + РодительскаяДоверенность + 79 + true + true + + true + + + Объект.РодительскаяДоверенность + + + РодительскаяДоверенностьРасширеннаяПодсказка + 81 + Label + true + true + + Left + + + + РодительскаяДоверенностьКонтекстноеМеню + 80 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + + РодительскаяДоверенностьНомер + 82 + + <key>ru</key> + <value>Родительская доверенность</value> + + true + + true + + + Объект.РодительскаяДоверенностьНомер + + + РодительскаяДоверенностьНомерРасширеннаяПодсказка + 84 + Label + true + true + + Left + + + + РодительскаяДоверенностьНомерКонтекстноеМеню + 83 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + + true + + true + + + <key>ru</key> + <value>Группа передоверие</value> + + + ГруппаПередовериеРасширеннаяПодсказка + 196 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + WeakSeparation + true + true + Auto + Auto + + ГруппаДоверители 7 @@ -1950,6 +2059,7 @@ Left true + 30 true true true @@ -1995,50 +2105,20 @@ Left true + 8 true + 8 true + false true - true - true - true - Normal - - - - ЭлектронныеПодписиТипПодписи - 854 - true - true - - true - - - ЭлектронныеПодписи.ТипПодписи - - - ЭлектронныеПодписиТипПодписиРасширеннаяПодсказка - 856 - Label - true - true - - Left - - - - ЭлектронныеПодписиТипПодписиКонтекстноеМеню - 855 - true - - InputField - Auto - true - Left - true - - true - true - true + + ru + ДЛФ=D + + + ru + ДЛФ=D + true true true @@ -2081,7 +2161,6 @@ true true - true true true true @@ -2164,7 +2243,7 @@ true true - true + 3 true true true @@ -4091,127 +4170,6 @@ Auto - - ГруппаНомерВРеестре - 74 - - РегистрироватьВРеестре - 71 - - <key>ru</key> - <value>Регистрировать в Распределенном реестре ФНС России:</value> - - true - true - - true - - - Объект.РегистрироватьВРеестре - - Right - - РегистрироватьВРеестреРасширеннаяПодсказка - 73 - Label - true - true - - Left - - - - РегистрироватьВРеестреКонтекстноеМеню - 72 - true - - CheckBoxField - Enter - true - Left - true - - - - НомерДоверенности - 38 - true - true - - true - - - Объект.НомерДоверенности - - None - - ru - Единый регистрационный номер доверенности - - - НомерДоверенностиРасширеннаяПодсказка - 40 - Label - true - true - - Left - - - - НомерДоверенностиКонтекстноеМеню - 39 - true - - InputField - Enter - true - Left - true - - true - true - true - true - true - true - Normal - - ru - Единый регистрационный номер доверенности - - - - true - true - - true - - - <key>ru</key> - <value>Группа номер в реестре</value> - - - ГруппаНомерВРеестреРасширеннаяПодсказка - 75 - Label - true - true - - Left - - - UsualGroup - - HorizontalIfPossible - Auto - WeakSeparation - true - true - Auto - Auto - - true true @@ -4360,6 +4318,131 @@ Auto + + ГруппаНомерВРеестре + 74 + + РегистрироватьВРеестре + 71 + + <key>ru</key> + <value>Регистрировать в Распределенном реестре ФНС России:</value> + + true + true + + true + + + Объект.РегистрироватьВРеестре + + Right + + OnChange + РегистрироватьВРеестреПриИзменении + + + РегистрироватьВРеестреРасширеннаяПодсказка + 73 + Label + true + true + + Left + + + + РегистрироватьВРеестреКонтекстноеМеню + 72 + true + + CheckBoxField + Enter + true + Left + true + + + + НомерДоверенности + 38 + true + true + + true + + + Объект.НомерДоверенности + + None + + ru + Единый регистрационный номер доверенности + + + НомерДоверенностиРасширеннаяПодсказка + 40 + Label + true + true + + Left + + + + НомерДоверенностиКонтекстноеМеню + 39 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ru + Единый регистрационный номер доверенности + + + + true + true + + true + + + <key>ru</key> + <value>Группа номер в реестре</value> + + + ГруппаНомерВРеестреРасширеннаяПодсказка + 75 + Label + true + true + + Left + + + UsualGroup + + HorizontalIfPossible + Auto + WeakSeparation + true + true + Auto + Auto + + Наименование 364 @@ -4642,32 +4725,6 @@ UserCmds Auto - - ФормаЗаписать - 491 - true - true - - true - - - ФормаЗаписатьРасширеннаяПодсказка - 492 - Label - true - true - - Left - - - Form.StandardCommand.Write - Normal - Auto - true - true - UserCmds - Auto - ФормаЗаписатьИЗакрыть 489 @@ -4695,16 +4752,16 @@ Auto - ФормаЗакрыть - 513 + ФормаЗаписать + 491 true true true - ФормаЗакрытьРасширеннаяПодсказка - 514 + ФормаЗаписатьРасширеннаяПодсказка + 492 Label true true @@ -4712,7 +4769,7 @@ Left - Form.StandardCommand.Close + Form.StandardCommand.Write Normal Auto true @@ -4720,6 +4777,36 @@ UserCmds Auto + + ФормаПроверитьДоверенность + 1050 + + <key>ru</key> + <value>Проверить</value> + + true + + true + + + ФормаПроверитьДоверенностьРасширеннаяПодсказка + 1051 + Label + true + true + + Left + + + Form.Command.ПроверитьДоверенность + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + ФормаОбновить 518 @@ -4799,6 +4886,36 @@ UserCmds Auto + + ФормаДоверенностьПроверенаВручную + 1052 + + <key>ru</key> + <value>Проверена вручную</value> + + true + + true + + + ФормаДоверенностьПроверенаВручнуюРасширеннаяПодсказка + 1053 + Label + true + true + + Left + + + Form.Command.ДоверенностьПроверенаВручную + Normal + Auto + true + true + UserCmds + Auto + InAdditionalSubmenu + Left true @@ -5600,10 +5717,6 @@ ТипПодписи - - <key>ru</key> - <value>Тип подписи</value> - 14 EnumRef.ТипыПодписиКриптографии @@ -6467,6 +6580,46 @@ Auto Auto + + ПроверитьДоверенность + + <key>ru</key> + <value>Проверить</value> + + 22 + + true + + + + ПроверитьДоверенность + + + Auto + Auto + + + ДоверенностьПроверенаВручную + + <key>ru</key> + <value>Доверенность проверена вручную</value> + + 8 + + ru + Доверенность проверена вручную + + + true + + + + ДоверенностьПроверенаВручную + + + Auto + Auto + @@ -6499,5 +6652,9 @@ BeforeWriteAtServer ПередЗаписьюНаСервере + + OnWriteAtServer + ПриЗаписиНаСервере + diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl index e505fa232..d5b56618e 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Forms/ФормаЭлемента/Module.bsl @@ -15,7 +15,6 @@ ПериодОпросаСтатусов = 300; ТребуетсяОбновлениеДекораций = Истина; - КешироватьЗначенияСтатусов(); Если Параметры.Ключ.Пустая() Тогда @@ -38,8 +37,9 @@ ЗаполнитьСписокПодписей(); КонецЕсли; + КонецЕсли; - + ЗагрузитьЗначенияВФорму(); МашиночитаемыеДоверенностиФНССлужебный.УстановитьУсловноеОформление(ЭтотОбъект); ПрочитатьСостояние(ЭтотОбъект); @@ -67,9 +67,12 @@ ОбновитьОбъект(ТекущийОбъект); КонецЕсли; - Если СохранитьРезультатПроверкиПодписей Тогда - СохранитьРезультатПроверкиПодписейНаСервере(); - КонецЕсли; +КонецПроцедуры + +&НаСервере +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) + + СохранитьРезультатПроверкиПодписейНаСервере(); КонецПроцедуры @@ -123,7 +126,6 @@ Если ИмяСобытия = "Запись_Подпись" Тогда ЗаполнитьСписокПодписей(); - УстановитьВидимостьИДоступность(ЭтотОбъект, "Подписание"); Возврат; КонецЕсли; @@ -163,11 +165,11 @@ Просрочена = ЗначениеЗаполнено(Объект.ДатаОкончания) И КонецДня(Объект.ДатаОкончания) < ОбщегоНазначенияКлиент.ДатаСеанса(); Если Просрочена Тогда - ТехническийСтатус = ЭтотОбъект.ТехническийСтатус_Просрочено; + ТехническийСтатус = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.Просрочено"); ТребуетсяОбновлениеДекораций = Истина; ОтобразитьДекорацииСтатуса(ЭтотОбъект); Иначе - ТехническийСтатус = ЭтотОбъект.ТехническийСтатус_Создание; + ТехническийСтатус = ОбщегоНазначенияКлиент.ПредопределенныйЭлемент("Перечисление.ТехническиеСтатусыМЧД.Создание"); ТребуетсяОбновлениеДекораций = Истина; ОтобразитьДекорацииСтатуса(ЭтотОбъект); КонецЕсли; @@ -361,9 +363,27 @@ КонецПроцедуры +&НаКлиенте +Процедура РегистрироватьВРеестреПриИзменении(Элемент) + + Если Не Параметры.Ключ.Пустая() Тогда + Если Подписана И ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Активна") Тогда + ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписан"); + ТребуетсяОбновлениеДекораций = Истина; + Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик"); + ИначеЕсли Подписана И ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписан") Тогда + ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Активна"); + ТребуетсяОбновлениеДекораций = Истина; + КонецЕсли; + ОтобразитьДекорацииСтатуса(ЭтотОбъект); + ДоступностьПризнакаРегистрацииВРеестре(ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти -#Область ОбработчикиСобытийЭлементовТаблицыЭлектронныеПодписи +#Область ОбработчикиСобытийЭлементовТаблицыФормыЭлектронныеПодписи &НаКлиенте Процедура ЭлектронныеПодписиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) @@ -374,7 +394,7 @@ #КонецОбласти -#Область ОбработчикиСобытийЭлементовТаблицыТаблицаПредставительНесколько +#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаПредставительНесколько &НаКлиенте Процедура ТаблицаПредставительНесколькоВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) @@ -463,9 +483,7 @@ ОчиститьСообщения(); - Отказ = Ложь; - ОбновитьСформироватьФайлДоверенности(Отказ); - Если Отказ Тогда + Если Не ОбновитьСформироватьФайлДоверенности() Тогда Возврат; КонецЕсли; @@ -503,14 +521,10 @@ ОчиститьСообщения(); - Отказ = Ложь; - - ОбновитьСформироватьФайлДоверенности(Отказ); - - Если Отказ Тогда + Если Не ОбновитьСформироватьФайлДоверенности() Тогда Возврат; КонецЕсли; - + МашиночитаемыеДоверенностиФНССлужебныйКлиент.ВыгрузитьДоверенностьВФайл(Объект.Ссылка); КонецПроцедуры @@ -582,82 +596,150 @@ ДанныеФайла = ДанныеФайла(Объект.ФайлДоверенности, УникальныйИдентификатор); - Для Каждого Строка Из ВыделенныеСтроки Цикл - ПараметрыПроверки = ЭлектроннаяПодписьКлиент.ПараметрыПроверкиПодписи(); - ПараметрыПроверки.РезультатВВидеСтруктуры = Истина; - ЭлектроннаяПодписьКлиент.ПроверитьПодпись(Новый ОписаниеОповещения("ПослеПроверкиПодписи", ЭтотОбъект, Строка), - ДанныеФайла.СсылкаНаДвоичныеДанныеФайла, ЭлектронныеПодписи.НайтиПоИдентификатору(Строка).АдресПодписи,,,ПараметрыПроверки); - КонецЦикла; + РаботаСФайламиСлужебныйКлиент.ПроверитьПодписи(ЭтотОбъект, + ДанныеФайла.СсылкаНаДвоичныеДанныеФайла, + Элементы.ЭлектронныеПодписи.ВыделенныеСтроки, ДанныеФайла); + + Если Элементы.ФормаЗаписатьИЗакрыть.Видимость И Элементы.ФормаЗаписатьИЗакрыть.Доступность Тогда + Модифицированность = Истина; + СохранитьРезультатПроверкиПодписей = Истина; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПроверитьДоверенность(Команда) + + Если ЭлектронныеПодписи.Количество() = 0 Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Доверенность не подписана.'")); + Возврат; + КонецЕсли; + + Если Не ЗначениеЗаполнено(Объект.ФайлДоверенности) Тогда + ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Не найден файл доверенности.'")); + Возврат; + КонецЕсли; + + СтандартнаяОбработка = Истина; + ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПроверкиДоверенности", ЭтотОбъект); + МашиночитаемыеДоверенностиФНСКлиентПереопределяемый.ПриПроверкеДоверенности(ОписаниеОповещения, Объект.Ссылка, + УникальныйИдентификатор, СтандартнаяОбработка); + Если СтандартнаяОбработка Тогда + МашиночитаемыеДоверенностиФНСКлиент.ПроверитьДоверенность(ОписаниеОповещения, + Объект.Ссылка, УникальныйИдентификатор); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ДоверенностьПроверенаВручную(Команда) + + Если Объект.СтатусВернаУстановленВручную Тогда + + ОчиститьРезультатыПроверки(); + + Иначе + Объект.СтатусВернаУстановленВручную = Истина; + Объект.Верна = Истина; + Объект.УстановившийСтатусВерна = ПользователиКлиент.ТекущийПользователь(); + Объект.ДатаПроверки = ОбщегоНазначенияКлиент.ДатаСеанса(); + Модифицированность = Истина; + ОтобразитьДекорациюВерна(ЭтотОбъект); + КонецЕсли; КонецПроцедуры #КонецОбласти -#Область СлужебныеПроцедурыИФункции +#Область СлужебныеПроцедурыИФункции &НаКлиенте -Процедура ПослеПроверкиПодписи(РезультатПроверки, Строка) Экспорт +Процедура ОчиститьРезультатыПроверки() - Если РезультатПроверки.Результат = Неопределено Тогда - Возврат; + Объект.СтатусВернаУстановленВручную = Ложь; + Объект.Верна = Ложь; + Объект.УстановившийСтатусВерна = Неопределено; + Объект.ДатаПроверки = Неопределено; + Модифицированность = Истина; + ОтобразитьДекорациюВерна(ЭтотОбъект); + +КонецПроцедуры + +&НаКлиенте +Процедура ПослеПроверкиДоверенности(РезультатПроверкиДоверенности, ДополнительныеПараметры) Экспорт + + ОчиститьСообщения(); + ОчиститьРезультатыПроверки(); + СохранитьРезультатПроверкиПодписей = Ложь; + + Объект.Верна = РезультатПроверкиДоверенности.Верна; + Объект.ДатаПроверки = ОбщегоНазначенияКлиент.ДатаСеанса(); + + Если Не Объект.Верна Тогда + Элементы.ГруппаЭлектронныеПодписи.Показать(); КонецЕсли; - СтрокаПодписи = ЭлектронныеПодписи.НайтиПоИдентификатору(Строка); - - ЗаполнитьЗначенияСвойств(СтрокаПодписи, РезультатПроверки); - Если ТипЗнч(РезультатПроверки.Результат) = Тип("Строка") Тогда - СтрокаПодписи.ОписаниеОшибки = РезультатПроверки.Результат; - КонецЕсли; - - ДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса(); - СтрокаПодписи.ДатаПроверкиПодписи = ДатаСеанса; - - СтатусПодписи = СтатусПодписи(СтрокаПодписи, ДатаСеанса); - Если СтрокаПодписи.Статус <> СтатусПодписи Тогда + Для Каждого РезультатПроверкиПодписи Из РезультатПроверкиДоверенности.РезультатыПроверкиПодписей Цикл + + РезультатПроверки = РезультатПроверкиПодписи.РезультатПроверки; + + Если РезультатПроверки = Неопределено + И ПустаяСтрока(РезультатПроверкиПодписи.ТекстОшибки) + И ПустаяСтрока(РезультатПроверкиПодписи.ТекстОшибкиСоответствия) Тогда + Продолжить; + КонецЕсли; + + Строка = ЭлектронныеПодписи.НайтиСтроки(Новый Структура("ИдентификаторПодписи", РезультатПроверкиПодписи.ИдентификаторПодписи))[0]; + Строка.ОписаниеОшибки = ""; + + Если РезультатПроверки <> Неопределено Тогда + Строка.ПодписьВерна = РезультатПроверки.Результат = Истина; + Строка.СрокДействияПоследнейМеткиВремени = РезультатПроверки.СрокДействияПоследнейМеткиВремени; + Строка.ТипПодписи = РезультатПроверки.ТипПодписи; + Строка.ТребуетсяПроверка = РезультатПроверки.ТребуетсяПроверка; + Строка.ДатаПроверкиПодписи = Объект.ДатаПроверки; + КонецЕсли; + + Ошибки = Новый Массив; + Если Не ПустаяСтрока(РезультатПроверкиПодписи.ТекстОшибки)Тогда + Ошибки.Добавить(РезультатПроверкиПодписи.ТекстОшибки); + КонецЕсли; + Если Не ПустаяСтрока(РезультатПроверкиПодписи.ТекстОшибкиСоответствия)Тогда + Ошибки.Добавить(РезультатПроверкиПодписи.ТекстОшибкиСоответствия); + КонецЕсли; + Если Ошибки.Количество() > 0 Тогда + Строка.ОписаниеОшибки = СтрСоединить(Ошибки, Символы.ПС); + КонецЕсли; + + Строка.Статус = СтатусПодписи(Строка, Объект.ДатаПроверки); СохранитьРезультатПроверкиПодписей = Истина; - Модифицированность = Истина; + + КонецЦикла; + + Если СохранитьРезультатПроверкиПодписей Тогда + Элементы.ЭлектронныеПодписи.Обновить(); КонецЕсли; - СтрокаПодписи.Статус = СтатусПодписи(СтрокаПодписи, ДатаСеанса); - Элементы.ЭлектронныеПодписи.Обновить(); + + Если РезультатПроверкиДоверенности.ТребуетсяПроверка Тогда + ПоказатьПредупреждение(, НСтр("ru = 'Не удалось проверить подписи доверенности.'")); + ИначеЕсли РезультатПроверкиДоверенности.Верна Тогда + ПоказатьПредупреждение(, НСтр("ru = 'Доверенность верна, подписи проверены и соответствуют доверителям.'")); + Иначе + ПоказатьПредупреждение(, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Доверенность неверна. %1'"), РезультатПроверкиДоверенности.ТекстОшибки)); + КонецЕсли; + + ОтобразитьДекорациюВерна(ЭтотОбъект); КонецПроцедуры &НаСервере Процедура СохранитьРезультатПроверкиПодписейНаСервере() - УстановленныеПодписи = ЭлектроннаяПодпись.УстановленныеПодписи(Объект.ФайлДоверенности); - Свойства = Новый Структура("ДатаПроверкиПодписи, ПодписьВерна, ТребуетсяПроверка"); - - Для Каждого Подпись Из УстановленныеПодписи Цикл - - Отбор = Новый Структура("ИдентификаторПодписи", Подпись.ИдентификаторПодписи); - Найдено = ЭлектронныеПодписи.НайтиСтроки(Отбор)[0]; - - Если Подпись.ДатаПодписи <> Найдено.ДатаПодписи - Или Подпись.Комментарий <> Найдено.Комментарий - Или Подпись.КомуВыданСертификат <> Найдено.КомуВыданСертификат И ЗначениеЗаполнено(Найдено.КомуВыданСертификат) - Или Подпись.Отпечаток <> Найдено.Отпечаток И ЗначениеЗаполнено(Найдено.Отпечаток) - Или Подпись.УстановившийПодпись <> Найдено.УстановившийПодпись Тогда - Продолжить; // Если объект был изменен, результаты проверки не переносятся. - КонецЕсли; - - ЕстьИзменения = Ложь; - - Для Каждого КлючИЗначение Из Свойства Цикл - Если Подпись[КлючИЗначение.Ключ] <> Найдено[КлючИЗначение.Ключ] Тогда - ЕстьИзменения = Истина; - КонецЕсли; - КонецЦикла; - Если Не ЕстьИзменения Тогда - Продолжить; - КонецЕсли; - - ЗаполнитьЗначенияСвойств(Подпись, Найдено, "ДатаПроверкиПодписи, ПодписьВерна, ТребуетсяПроверка"); - ЭлектроннаяПодпись.ОбновитьПодпись(Объект.ФайлДоверенности, Подпись); - - КонецЦикла; - - СохранитьРезультатПроверкиПодписей = Ложь; + Если СохранитьРезультатПроверкиПодписей Тогда + РаботаСФайламиСлужебный.ПеренестиРезультатыПроверкиПодписей(ЭлектронныеПодписи, Объект.ФайлДоверенности); + СохранитьРезультатПроверкиПодписей = Ложь; + КонецЕсли; КонецПроцедуры @@ -820,11 +902,10 @@ Поле = "ПредставительФЛ"; КонецЕсли; - Если Не МашиночитаемыеДоверенностиФНССлужебный.ПроверитьСведенияОбОрганизации( - ЭтотОбъект, Поле, - СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Представитель %1 - %2'"), Строка.Представитель, " %1:"), + ШаблонСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Представитель %1 - %2'"), + Строка.Представитель, " %1:"); + Если Не МашиночитаемыеДоверенностиФНССлужебный.ПроверитьСведенияОбОрганизации(ЭтотОбъект, Поле, ШаблонСообщения, РеквизитыОрганизации) Тогда - Отказ = Истина; КонецЕсли; @@ -871,23 +952,46 @@ И СвойстваПодписи.ТребуетсяПроверка = Ложь Тогда ТекстОшибки = НСтр("ru='Сертификат подписи не прошел проверку.'"); - ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки,,,,Отказ); + ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстОшибки,,,,Отказ); КонецЕсли; + + Ошибки = ДобавитьПодпись(СвойстваПодписи); - ДобавитьПодпись(СвойстваПодписи, Отказ); - - Если Отказ Тогда - Возврат; + Если Ошибки.Количество() > 0 Тогда + Ошибка = Новый Структура("ОписаниеОшибки", СтрСоединить(Ошибки, Символы.ПС)); + ПараметрыОшибки = Новый Структура; + ПараметрыОшибки.Вставить("Подпись", СвойстваПодписи.Подпись); + ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме( + НСтр("ru = 'Не удалось добавить подпись по причине'"), "", Ошибка, Новый Структура); + Иначе + ОбновитьСтатусПослеПодписания(); КонецЕсли; - ОбновитьСтатус(); + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ОбновитьСтатусПослеПодписания() + + ОбновитьСтатус(); + Если Подписана Тогда + КоличествоВерныхПодписей = ЭлектронныеПодписи.НайтиСтроки(Новый Структура("ПодписьВерна", Истина)).Количество(); + Если КоличествоВерныхПодписей > 0 И КоличествоВерныхПодписей = ЭлектронныеПодписи.Количество() Тогда + ОчиститьРезультатыПроверки(); + Объект.Верна = Истина; + Объект.ДатаПроверки = ОбщегоНазначенияКлиент.ДатаСеанса(); + Объект.Статус = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РасчетныйСтатусДокумента(ТехническийСтатус); + ОбновитьОбъект(); + ОтобразитьДекорациюВерна(ЭтотОбъект); + КонецЕсли; КонецЕсли; КонецПроцедуры &НаСервере -Процедура СформироватьТаблицуНесколькоПредставителей(ИдентификаторРодителя = Неопределено); +Процедура СформироватьТаблицуНесколькоПредставителей(Знач ИдентификаторРодителя = Неопределено); ТаблицаПредставительНесколько.Очистить(); @@ -948,13 +1052,23 @@ &НаКлиенте Процедура ПослеДобавленияПодписи(Результат, Контекст) Экспорт - ДобавитьПодпись(Результат.ОписаниеДанных.Подписи); - ОбновитьСтатус(); + Ошибки = ДобавитьПодпись(Результат.ОписаниеДанных.Подписи); + + Если Ошибки.Количество() > 0 Тогда + Ошибка = СтрСоединить(Ошибки, Символы.ПС); + ВыполнитьОбработкуОповещения(Результат.Оповещение, Новый Структура("ОписаниеОшибки", Ошибка)); + Иначе + ВыполнитьОбработкуОповещения(Результат.Оповещение, Новый Структура); + КонецЕсли; + + ОбновитьСтатусПослеПодписания(); КонецПроцедуры &НаСервере -Процедура ДобавитьПодпись(СвойстваПодписи, Отказ = Ложь) +Функция ДобавитьПодпись(Знач СвойстваПодписи) + + Ошибки = Новый Массив; Если ТипЗнч(СвойстваПодписи) = Тип("Массив") Тогда Для Каждого Подпись Из СвойстваПодписи Цикл @@ -963,7 +1077,7 @@ Результат = МашиночитаемыеДоверенностиФНС.ДобавитьПодписьКФайлуДоверенности(Объект.ФайлДоверенности, Свойства); Если Результат <> Истина Тогда - ОбщегоНазначения.СообщитьПользователю(Результат,,,,Отказ); + Ошибки.Добавить(Результат); КонецЕсли; КонецЦикла; @@ -972,17 +1086,19 @@ Результат = МашиночитаемыеДоверенностиФНС.ДобавитьПодписьКФайлуДоверенности(Объект.ФайлДоверенности, СвойстваПодписи); Если Результат <> Истина Тогда - ОбщегоНазначения.СообщитьПользователю(Результат,,,,Отказ); + Ошибки.Добавить(Результат); КонецЕсли; КонецЕсли; ЗаполнитьСписокПодписей(); -КонецПроцедуры + Возврат Ошибки; + +КонецФункции &НаКлиенте -Процедура ОбновитьСформироватьФайлДоверенности(Отказ) +Функция ОбновитьСформироватьФайлДоверенности() Если ЭлектронныеПодписи.Количество() = 0 Тогда @@ -993,42 +1109,41 @@ Если ЗначениеЗаполнено(Результат.НомерДоверенности) Тогда Объект.НомерДоверенности = Результат.НомерДоверенности; Модифицированность = Истина; - Иначе - КонтекстОшибки = МашиночитаемыеДоверенностиФНССлужебныйКлиент.КонтекстДляОбработкиОшибкиРР(); - КонтекстОшибки.ЗаголовокПредупреждения = НСтр("ru = 'Не удалось получить номер доверенности'"); - КонтекстОшибки.Форма = ЭтотОбъект; - МашиночитаемыеДоверенностиФНССлужебныйКлиент.ОбработатьОшибкуВзаимодействияРР(Результат.Ошибка, КонтекстОшибки); - Отказ = Истина; - Возврат; КонецЕсли; - ИначеЕсли Не ЗначениеЗаполнено(Объект.НомерДоверенности) Тогда + + КонецЕсли; + + Если Не ЗначениеЗаполнено(Объект.НомерДоверенности) Тогда Объект.НомерДоверенности = Строка(Новый УникальныйИдентификатор); Модифицированность = Истина; КонецЕсли; - СформироватьФайлДоверенности(Отказ); - ОповеститьОЗаписи(); - - Если Отказ Тогда - Возврат; + Если Не СформироватьФайлДоверенности() Тогда + Возврат Ложь; КонецЕсли; + ОповеститьОЗаписи(); ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); КонецЕсли; -КонецПроцедуры + Если Не ЗначениеЗаполнено(Объект.ФайлДоверенности) Тогда + ВызватьИсключение НСтр("ru='Не найден файл доверенности.'") + КонецЕсли; + + Возврат Истина; + +КонецФункции &НаСервере -Процедура СформироватьФайлДоверенности(Отказ) +Функция СформироватьФайлДоверенности() Если Модифицированность Или Параметры.Ключ.Пустая() Тогда ОбновитьОбъект(); КонецЕсли; Если Не ЗаполнениеПроверено() Тогда - Отказ = Истина; - Возврат; + Возврат Ложь; КонецЕсли; ДоверенностьОбъект = РеквизитФормыВЗначение("Объект"); @@ -1060,9 +1175,14 @@ ЗначениеВРеквизитФормы(ОбъектМЧД, "Объект"); ПрочитатьРеквизиты(ОбъектМЧД); + + Элементы.ФормаДобавитьПодпись.Видимость = Истина; + КонецЕсли; -КонецПроцедуры + Возврат Истина; + +КонецФункции &НаСервере Функция ПолучитьНомерМЧДРР() @@ -1075,89 +1195,16 @@ ОтобразитьДекорацииСтатуса(Форма); Если Условие = Неопределено Или Условие = "Подписание" Тогда - - Просрочена = Форма.Просрочена; - - КоличествоПодписей = Форма.ЭлектронныеПодписи.Количество(); - - Форма.Элементы.ФормаОтправить.Видимость = Ложь; - Форма.Элементы.ФормаЗакрыть.Видимость = Ложь; - Форма.Элементы.ФормаЗаписать.Видимость = Ложь; - Форма.Элементы.ФормаОбновить.Видимость = Ложь; - Форма.Элементы.ФормаПодписать.Видимость = Ложь; - - РеквизитыНедоступныДляРедактирования = КоличествоПодписей > 0; + + РеквизитыНедоступныДляРедактирования = Форма.ЭлектронныеПодписи.Количество() > 0; Если Форма.РеквизитыНедоступныДляРедактирования <> РеквизитыНедоступныДляРедактирования Тогда Форма.РеквизитыНедоступныДляРедактирования = РеквизитыНедоступныДляРедактирования; Условие = "РеквизитыНедоступныДляРедактирования"; КонецЕсли; - Форма.Элементы.ГруппаНомерВРеестре.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; + ВидимостьПриИзмененииКоличестваПодписей(Форма); - Если КоличествоПодписей > 0 Тогда - - Форма.Элементы.ГруппаЭлектронныеПодписи.Видимость = Истина; - - Если КоличествоПодписей = 1 Тогда - Форма.Элементы.ГруппаЭлектронныеПодписи.Заголовок = НСтр("ru = 'Подпись доверителя'"); - Иначе - Форма.Элементы.ГруппаЭлектронныеПодписи.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'Подписи доверителей (%1)'"), КоличествоПодписей); - КонецЕсли; - - Если Форма.Подписана Тогда - Если Не Форма.Объект.РегистрироватьВРеестре Тогда - Форма.Элементы.ФормаЗакрыть.Видимость = Истина; - Форма.Элементы.ФормаЗакрыть.КнопкаПоУмолчанию = Истина; - Иначе - Форма.Элементы.ФормаОтправить.Видимость = Не Просрочена - И Форма.Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик"); - Форма.Элементы.ФормаОтправить.КнопкаПоУмолчанию = Не Просрочена И Форма.Объект.Статус = ПредопределенноеЗначение("Перечисление.СтатусыМЧД.Черновик"); - КонецЕсли; - Форма.Элементы.ЭлектронныеПодписиДобавитьПодпись.Видимость = Ложь; - Форма.Элементы.ФормаДобавитьПодпись.Видимость = Ложь; - Иначе - Форма.Элементы.ФормаПодписать.Видимость = Не Просрочена; - Форма.Элементы.ЭлектронныеПодписиДобавитьПодпись.Видимость = Истина; - Форма.Элементы.ФормаПодписать.КнопкаПоУмолчанию = Не Просрочена; - Форма.Элементы.ФормаДобавитьПодпись.Видимость = Истина; - КонецЕсли; - Иначе - Форма.Элементы.ФормаПодписать.Видимость = Не Просрочена; - Форма.Элементы.ФормаПодписать.КнопкаПоУмолчанию = Не Просрочена; - Форма.Элементы.ФормаЗаписать.Видимость = Истина; - Форма.Элементы.ГруппаЭлектронныеПодписи.Видимость = Ложь; - Форма.Элементы.ФормаДобавитьПодпись.Видимость = ЗначениеЗаполнено(Форма.Объект.ФайлДоверенности); - КонецЕсли; - - Форма.Элементы.РеквизитыДоверителя.Видимость = Не РеквизитыНедоступныДляРедактирования; - Форма.Элементы.РеквизитыЛицаБезДоверенности.Видимость = Не РеквизитыНедоступныДляРедактирования; - Форма.Элементы.РеквизитыПредставителяУправляющейОрганизации.Видимость = Не РеквизитыНедоступныДляРедактирования; - Форма.Элементы.РеквизитыПредставителя.Видимость = Не РеквизитыНедоступныДляРедактирования; - Форма.Элементы.РеквизитыПредставителяФЛ.Видимость = Не РеквизитыНедоступныДляРедактирования; - - Форма.Элементы.ПредставительДобавить.Видимость = Не РеквизитыНедоступныДляРедактирования; - Форма.Элементы.ПредставительФЛДобавить.Видимость = Не РеквизитыНедоступныДляРедактирования; - - Форма.Элементы.ГруппаШапка.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; - Форма.Элементы.ГруппаДоверители.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; - Форма.Элементы.ГруппаПредставители.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; - Форма.Элементы.ГруппаПодвал.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; - - ЛицоБезДоверенностиОформление(Форма); - - Форма.Элементы.ПредставительВыборТипа.Видимость = Не РеквизитыНедоступныДляРедактирования; - Форма.Элементы.ПредставительТипДекорация.Видимость = РеквизитыНедоступныДляРедактирования; - - Если РеквизитыНедоступныДляРедактирования Тогда - Если Форма.ПредставительРеквизиты = Неопределено Тогда - Форма.Элементы.ПредставительТипДекорация.Заголовок = НСтр("ru='Физическое лицо'"); - Иначе - Форма.Элементы.ПредставительТипДекорация.Заголовок = ?(Форма.ПредставительРеквизиты.ЭтоФизическоеЛицо, - НСтр("ru='Физическое лицо'"), НСтр("ru='Организация'")); - КонецЕсли; - КонецЕсли; КонецЕсли; Если Условие = Неопределено Или Условие = "Доверитель" Или Условие = "РеквизитыНедоступныДляРедактирования" Тогда @@ -1207,23 +1254,187 @@ ВидимостьДляНалоговыхОрганов(Форма); КонецЕсли; -КонецПроцедуры +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура ВидимостьПриИзмененииКоличестваПодписей(Форма) + + РеквизитыНедоступныДляРедактирования = Форма.РеквизитыНедоступныДляРедактирования; + + ПросроченаИлиОтменена = Форма.Просрочена Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Просрочено") + Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Отменена"); + + Форма.Элементы.ФормаОтправить.Видимость = Ложь; + Форма.Элементы.ФормаЗаписать.Видимость = Ложь; + Форма.Элементы.ФормаОбновить.Видимость = Ложь; + Форма.Элементы.ФормаПодписать.Видимость = Ложь; + + Если РеквизитыНедоступныДляРедактирования Тогда + + Форма.Элементы.ГруппаЭлектронныеПодписи.Видимость = Истина; + + Если Форма.ЭлектронныеПодписи.Количество() = 1 Тогда + Форма.Элементы.ГруппаЭлектронныеПодписи.Заголовок = НСтр("ru = 'Подпись доверителя'"); + Иначе + Форма.Элементы.ГруппаЭлектронныеПодписи.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'Подписи доверителей (%1)'"), Форма.ЭлектронныеПодписи.Количество()); + КонецЕсли; + + Если Форма.Подписана Тогда + Форма.Элементы.ЭлектронныеПодписиДобавитьПодпись.Видимость = Ложь; + Форма.Элементы.ФормаДобавитьПодпись.Видимость = Ложь; + Если МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.ВнешниеСтатусы()[Форма.ТехническийСтатус] = Истина Тогда + Форма.Элементы.ЭлектронныеПодписиУдалитьПодпись.Видимость = Ложь; + КонецЕсли; + Иначе + Форма.Элементы.ФормаПодписать.Видимость = Не ПросроченаИлиОтменена; + Форма.Элементы.ЭлектронныеПодписиДобавитьПодпись.Видимость = Истина; + Форма.Элементы.ФормаПодписать.КнопкаПоУмолчанию = Не ПросроченаИлиОтменена; + Форма.Элементы.ФормаДобавитьПодпись.Видимость = Истина; + КонецЕсли; + Иначе + Форма.Элементы.ФормаПодписать.Видимость = Не ПросроченаИлиОтменена; + Форма.Элементы.ФормаПодписать.КнопкаПоУмолчанию = Не ПросроченаИлиОтменена; + Форма.Элементы.ФормаЗаписать.Видимость = Истина; + Форма.Элементы.ГруппаЭлектронныеПодписи.Видимость = Ложь; + Форма.Элементы.ФормаДобавитьПодпись.Видимость = ЗначениеЗаполнено(Форма.Объект.ФайлДоверенности); + КонецЕсли; + + Форма.Элементы.НомерДоверенности.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; + ДоступностьПризнакаРегистрацииВРеестре(Форма); + + Форма.Элементы.РеквизитыДоверителя.Видимость = Не РеквизитыНедоступныДляРедактирования; + Форма.Элементы.РеквизитыЛицаБезДоверенности.Видимость = Не РеквизитыНедоступныДляРедактирования; + Форма.Элементы.РеквизитыПредставителяУправляющейОрганизации.Видимость = Не РеквизитыНедоступныДляРедактирования; + Форма.Элементы.РеквизитыПредставителя.Видимость = Не РеквизитыНедоступныДляРедактирования; + Форма.Элементы.РеквизитыПредставителяФЛ.Видимость = Не РеквизитыНедоступныДляРедактирования; + + Форма.Элементы.ПредставительДобавить.Видимость = Не РеквизитыНедоступныДляРедактирования; + Форма.Элементы.ПредставительФЛДобавить.Видимость = Не РеквизитыНедоступныДляРедактирования; + + Форма.Элементы.ГруппаШапка.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; + Форма.Элементы.ГруппаДоверители.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; + Форма.Элементы.ГруппаПредставители.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; + Форма.Элементы.ГруппаПодвал.ТолькоПросмотр = РеквизитыНедоступныДляРедактирования; + + ЛицоБезДоверенностиОформление(Форма); + + Форма.Элементы.ПредставительВыборТипа.Видимость = Не РеквизитыНедоступныДляРедактирования; + Форма.Элементы.ПредставительТипДекорация.Видимость = РеквизитыНедоступныДляРедактирования; + + Если РеквизитыНедоступныДляРедактирования Тогда + Если Форма.ПредставительРеквизиты = Неопределено Тогда + Форма.Элементы.ПредставительТипДекорация.Заголовок = НСтр("ru='Физическое лицо'"); + Иначе + Форма.Элементы.ПредставительТипДекорация.Заголовок = ?(Форма.ПредставительРеквизиты.ЭтоФизическоеЛицо, НСтр( + "ru='Физическое лицо'"), НСтр("ru='Организация'")); + КонецЕсли; + КонецЕсли; + + ОтобразитьДекорациюВерна(Форма); + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура ДоступностьПризнакаРегистрацииВРеестре(Форма) + + Форма.Элементы.РегистрироватьВРеестре.ТолькоПросмотр = Форма.РеквизитыНедоступныДляРедактирования + И Не (Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Создание") + Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписание") + Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписан") + Или Форма.ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Активна")); + + Если Не Форма.Просрочена И (Форма.Подписана Или Форма.Объект.Статус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Подписан")) Тогда + Если Не Форма.Объект.РегистрироватьВРеестре Тогда + Форма.Элементы.ФормаОтправить.Видимость = Ложь; + Форма.Элементы.ФормаЗаписатьИЗакрыть.КнопкаПоУмолчанию = Истина; + Иначе + Форма.Элементы.ФормаОтправить.Видимость = Истина; + Форма.Элементы.ФормаОтправить.КнопкаПоУмолчанию = Истина; + КонецЕсли; + Иначе + Форма.Элементы.ФормаЗаписатьИЗакрыть.КнопкаПоУмолчанию = Не Форма.Элементы.ФормаПодписать.Видимость; + КонецЕсли; + +КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Процедура ОтобразитьДекорацииСтатуса(Форма) + Если Форма.ТребуетсяОбновлениеДекораций Тогда - Форма.Элементы.ДекорацияПросрочена.Видимость = Форма.ТехническийСтатус = Форма["ТехническийСтатус_Просрочено"]; - Форма.Элементы.ДекорацияСоздание.Видимость = Форма.ТехническийСтатус = Форма["ТехническийСтатус_Создание"]; - Форма.Элементы.ДекорацияПодписана.Видимость = Форма.ТехническийСтатус = Форма["ТехническийСтатус_Подписан"]; - Форма.Элементы.ДекорацияГотово.Видимость = Форма.ТехническийСтатус = Форма["ТехническийСтатус_Активна"]; - Форма.Элементы.ДекорацияЗарегистрирована.Видимость = Форма.ТехническийСтатус = Форма["ТехническийСтатус_Зарегистрировано"] - Или Форма.ТехническийСтатус = Форма["ТехническийСтатус_ДатаНачалаДействияНеНаступила"]; - Форма.Элементы.ДекорацияПодписание.Видимость = Форма.ТехническийСтатус = Форма["ТехническийСтатус_Подписание"]; - Форма.Элементы.ДекорацияРегистрация.Видимость = Форма.ТехническийСтатус = Форма["ТехническийСтатус_Регистрация"]; - Форма.Элементы.ДекорацияОтменена.Видимость = Форма.ТехническийСтатус = Форма["ТехническийСтатус_Отменена"] - Или Форма.ТехническийСтатус = Форма["ТехническийСтатус_ОшибкаРегистрации"]; + + Форма.Элементы.ДекорацияПросрочена.Видимость = Форма.Просрочена Или Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.Просрочено"); + Форма.Элементы.ДекорацияСоздание.Видимость = Не Форма.Просрочена И Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.Создание"); + Форма.Элементы.ДекорацияПодписана.Видимость = Не Форма.Просрочена И Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.Подписан"); + Форма.Элементы.ДекорацияГотово.Видимость = Не Форма.Просрочена И Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.Активна"); + Форма.Элементы.ДекорацияЗарегистрирована.Видимость = Не Форма.Просрочена И (Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.Зарегистрировано") Или Форма.ТехническийСтатус + = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.ДатаНачалаДействияНеНаступила")); + Форма.Элементы.ДекорацияПодписание.Видимость = Не Форма.Просрочена И Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.Подписание"); + Форма.Элементы.ДекорацияРегистрация.Видимость = Не Форма.Просрочена И Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.Регистрация"); + Форма.Элементы.ДекорацияОтменена.Видимость =Не Форма.Просрочена И (Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.Отменена") Или Форма.ТехническийСтатус = ПредопределенноеЗначение( + "Перечисление.ТехническиеСтатусыМЧД.ОшибкаРегистрации")); + ТребуетсяОбновлениеДекораций = Ложь; КонецЕсли; + +КонецПроцедуры + +&НаКлиентеНаСервереБезКонтекста +Процедура ОтобразитьДекорациюВерна(Форма) + + ЕстьПодписи = Форма.ЭлектронныеПодписи.Количество() > 0; + Форма.Элементы.ФормаПроверитьДоверенность.Видимость = ЕстьПодписи; + Форма.Элементы.ФормаДоверенностьПроверенаВручную.Видимость = ЕстьПодписи Или Форма.Объект.СтатусВернаУстановленВручную; + Форма.Элементы.ФормаДоверенностьПроверенаВручную.Пометка = Форма.Объект.СтатусВернаУстановленВручную; + + Если ЕстьПодписи Тогда + Если ЗначениеЗаполнено(Форма.Объект.ДатаПроверки) Тогда + Форма.Элементы.ДекорацияНеверна.Видимость = Не Форма.Объект.Верна; + Форма.Элементы.ДекорацияВерна.Видимость = Форма.Объект.Верна; + + Если Форма.Объект.Верна Тогда + Если Форма.Объект.СтатусВернаУстановленВручную Тогда + ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Верна. Статус установлен вручную %1 (%2)'"), + Формат(Форма.Объект.ДатаПроверки, "ДЛФ=D"), Форма.Объект.УстановившийСтатусВерна); + Форма.Элементы.ДекорацияВерна.Заголовок = ТекстЗаголовка; + ИначеЕсли Форма.Объект.Верна Тогда + ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Верна на дату проверки %1'"), + Формат(Форма.Объект.ДатаПроверки, "ДЛФ=D")); + Форма.Элементы.ДекорацияВерна.Заголовок = ТекстЗаголовка; + КонецЕсли; + Форма.Элементы.ФормаПроверитьДоверенность.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВДополнительномПодменю; + Иначе + ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Неверна на дату проверки %1'"), + Формат(Форма.Объект.ДатаПроверки, "ДЛФ=D")); + Форма.Элементы.ДекорацияНеверна.Заголовок = ТекстЗаголовка; + Форма.Элементы.ФормаПроверитьДоверенность.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанелиИВДополнительномПодменю; + КонецЕсли; + + Иначе + Форма.Элементы.ДекорацияВерна.Видимость = Ложь; + Форма.Элементы.ДекорацияНеверна.Видимость = Истина; + ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru='Не проверена'"), + Формат(Форма.Объект.ДатаПроверки, "ДЛФ=D")); + Форма.Элементы.ДекорацияНеверна.Заголовок = ТекстЗаголовка; + Форма.Элементы.ФормаПроверитьДоверенность.ПоложениеВКоманднойПанели = ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанелиИВДополнительномПодменю; + КонецЕсли; + Иначе + Форма.Элементы.ДекорацияВерна.Видимость = Ложь; + Форма.Элементы.ДекорацияНеверна.Видимость = Ложь; + КонецЕсли; + КонецПроцедуры &НаКлиентеНаСервереБезКонтекста @@ -1240,14 +1451,17 @@ ИначеЕсли КоличествоНалоговыхОргановДействия = 1 Тогда Форма.Элементы.ДекорацияНалоговыеОрганыДействия.Заголовок = Форма.Объект.НалоговыеОрганыДействия[0].КодНалоговогоОргана; + ИначеЕсли КоличествоНалоговыхОргановДействия = 2 Тогда + Форма.Объект.НалоговыеОрганыДействия.Сортировать("КодНалоговогоОргана"); + Форма.Элементы.ДекорацияНалоговыеОрганыДействия.Заголовок = СтрШаблон("%1, %2", + Форма.Объект.НалоговыеОрганыДействия[0].КодНалоговогоОргана, Форма.Объект.НалоговыеОрганыДействия[1].КодНалоговогоОргана); Иначе Форма.Объект.НалоговыеОрганыДействия.Сортировать("КодНалоговогоОргана"); - Форма.Элементы.ДекорацияНалоговыеОрганыДействия.Заголовок = - Форма.Объект.НалоговыеОрганыДействия[0].КодНалоговогоОргана - + ", " + Форма.Объект.НалоговыеОрганыДействия[1].КодНалоговогоОргана + ?(КоличествоНалоговыхОргановДействия > 2, - " " + СтрШаблон( - НСтр("ru = 'и еще %1'"), - Формат(КоличествоНалоговыхОргановДействия - 2, "ЧДЦ=; ЧН=; ЧГ=")), ""); + Форма.Элементы.ДекорацияНалоговыеОрганыДействия.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = '%1, %2 и еще %3'"), + Форма.Объект.НалоговыеОрганыДействия[0].КодНалоговогоОргана, + Форма.Объект.НалоговыеОрганыДействия[1].КодНалоговогоОргана, + Формат(КоличествоНалоговыхОргановДействия - 2, "ЧДЦ=; ЧН=; ЧГ=")); КонецЕсли; КонецЕсли; @@ -1417,7 +1631,7 @@ КонецПроцедуры &НаСервере -Процедура ЗаполнитьТипОрганизации(ИмяЭлементаОрганизация, ТипСтрока) +Процедура ЗаполнитьТипОрганизации(Знач ИмяЭлементаОрганизация, Знач ТипСтрока) ЭтотОбъект[ИмяЭлементаОрганизация + "ТипСтрока"] = ТипСтрока; @@ -1489,40 +1703,14 @@ КонецПроцедуры &НаСервере -Процедура ПриИзмененииОрганизацииНаСервере(ИмяЭлементаОрганизация, Загрузка = Ложь) +Процедура ПриИзмененииОрганизацииНаСервере(Знач ИмяЭлементаОрганизация, Знач Загрузка = Ложь) ЗаполнитьРеквизитыОрганизации(ИмяЭлементаОрганизация, Загрузка); - - Если ИмяЭлементаОрганизация = "Доверитель" И ДоверительТипСтрока <> "ФизическоеЛицо" Тогда - Если ДоверительРеквизиты.ЭтоИндивидуальныйПредприниматель Тогда - ЛицоБезДоверенностиНесколько = Ложь; - КонецЕсли; - - ИначеЕсли ИмяЭлементаОрганизация = "Представитель" И ПредставительТипСтрока <> "ФизическоеЛицо" Тогда - - Если ПредставительРеквизиты.ЭтоИндивидуальныйПредприниматель Тогда - ПредставительФЛНесколько = Ложь; - КонецЕсли; - - Если Не Загрузка Тогда - - ОчиститьЭлементыФормы("ПредставительФЛ", Истина); - - КонецЕсли; - - КонецЕсли; - - ОбновитьСтрокуДоверителейПредставителей(ИмяЭлементаОрганизация); - - Если Не Загрузка Тогда - ЗаполнитьРеквизитыРуководителя(ИмяЭлементаОрганизация); - УстановитьОтображениеРеквизитовЗависимыхОтОрганизации(ИмяЭлементаОрганизация); - КонецЕсли; - + КонецПроцедуры &НаСервере -Процедура ОбновитьСтрокуДоверителейПредставителей(ИмяЭлементаОрганизация) +Процедура ОбновитьСтрокуДоверителейПредставителей(Знач ИмяЭлементаОрганизация) Если ИмяЭлементаОрганизация = "Представитель" Или ИмяЭлементаОрганизация = "ПредставительФЛ" Тогда Таблица = Объект.Представители; @@ -1575,7 +1763,7 @@ КонецПроцедуры &НаСервере -Процедура ОчисткаДоверителяПредставителя(ИмяЭлементаОрганизация) +Процедура ОчисткаДоверителяПредставителя(Знач ИмяЭлементаОрганизация) Если ИмяЭлементаОрганизация = "Представитель" Или ИмяЭлементаОрганизация = "ПредставительФЛ" Тогда Таблица = Объект.Представители; @@ -1625,6 +1813,8 @@ Если ПредставительРеквизиты.ЭтоИндивидуальныйПредприниматель Или ПредставительРеквизиты.ЭтоФилиал Тогда ИмяЭлементаРуководитель = "ПредставительФЛ"; + Иначе + ОчиститьЭлементыФормы("ПредставительФЛ", Истина); КонецЕсли; КонецЕсли; @@ -1632,8 +1822,7 @@ Возврат; КонецЕсли; - Если ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].Свойство("ЛицоБезДоверенности") - И ЗначениеЗаполнено(ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].ЛицоБезДоверенности) Тогда + Если ЗначениеЗаполнено(ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].ЛицоБезДоверенности) Тогда ЗаполнитьТипОрганизации(ИмяЭлементаРуководитель, "ФизическоеЛицо"); ЭтотОбъект[ИмяЭлементаРуководитель] = ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"].ЛицоБезДоверенности; @@ -1675,7 +1864,7 @@ &НаСервере Функция ЗаголовокДекорацииТаблицы(Реквизиты, ИмяЭлементаОрганизация = Неопределено, ТолькоОбязательные = Ложь) - Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорации(Реквизиты, ИмяЭлементаОрганизация, ТолькоОбязательные, Истина); + Возврат МашиночитаемыеДоверенностиФНССлужебный.ЗаголовокДекорацииДляТаблицы(Реквизиты, ИмяЭлементаОрганизация, ТолькоОбязательные); КонецФункции @@ -1740,7 +1929,7 @@ КонецПроцедуры &НаСервере -Процедура ЗаполнитьРеквизитыОрганизации(ИмяЭлементаОрганизация, Загрузка = Ложь) +Процедура ЗаполнитьРеквизитыОрганизации(Знач ИмяЭлементаОрганизация, Загрузка = Ложь) ОрганизацияТип = ЭтотОбъект[ИмяЭлементаОрганизация + "Тип"]; ОрганизацияСсылка = МашиночитаемыеДоверенностиФНССлужебный.ТекущееЗначениеРеквизита( @@ -1788,13 +1977,17 @@ ПриПотереГотовности(ЭтотОбъект); МашиночитаемыеДоверенностиФНССлужебный.ПриЗаполненииРеквизитовОрганизации(Реквизиты); ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"] = Реквизиты; + ОбновитьСтрокуДоверителейПредставителей(ИмяЭлементаОрганизация); + + ЗаполнитьРеквизитыРуководителя(ИмяЭлементаОрганизация); + УстановитьОтображениеРеквизитовЗависимыхОтОрганизации(ИмяЭлементаОрганизация); КонецЕсли; КонецПроцедуры &НаСервере -Процедура УстановитьОтображениеРеквизитовЗависимыхОтОрганизации(ИмяЭлементаОрганизация) +Процедура УстановитьОтображениеРеквизитовЗависимыхОтОрганизации(Знач ИмяЭлементаОрганизация) Организация = ЭтотОбъект[ИмяЭлементаОрганизация]; Реквизиты = ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"]; @@ -1911,11 +2104,6 @@ Если Результат = Неопределено Тогда Возврат; КонецЕсли; - - Ссылка = Неопределено; - Результат.Свойство("Ссылка", Ссылка); - Представители = Неопределено; - Результат.Свойство("Представители", Представители); Таблица = Объект.Представители; @@ -1936,7 +2124,7 @@ НоваяСтрока.ИдентификаторРодителя = Контекст.ИдентификаторРодителя; КонецЕсли; - НоваяСтрока.Представитель = Ссылка; + НоваяСтрока.Представитель = Результат.Ссылка; РеквизитыУчастникаДляХранения = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РеквизитыУчастникаДляХранения( Результат); @@ -1948,8 +2136,8 @@ ПоместитьВоВременноеХранилище(РеквизитыУчастникаДляХранения, НоваяСтрока.АдресРеквизитов); КонецЕсли; - Если ЗначениеЗаполнено(Представители) Тогда - Для Каждого ТекущийПредставитель Из Представители Цикл + Если Не Результат.ЭтоФизическоеЛицо И ЗначениеЗаполнено(Результат.Представители) Тогда + Для Каждого ТекущийПредставитель Из Результат.Представители Цикл Если Не ЗначениеЗаполнено(ТекущийПредставитель.Идентификатор) Тогда НоваяСтрокаПредставитель = Таблица.Добавить(); НоваяСтрокаПредставитель.Идентификатор = Новый УникальныйИдентификатор; @@ -1995,7 +2183,7 @@ КонецПроцедуры &НаСервере -Процедура ОчиститьЭлементыФормы(ИмяЭлементаОрганизация, ОчищатьИдентификатор = Ложь) +Процедура ОчиститьЭлементыФормы(Знач ИмяЭлементаОрганизация, Знач ОчищатьИдентификатор = Ложь) ЭтотОбъект[ИмяЭлементаОрганизация] = Неопределено; ЭтотОбъект[ИмяЭлементаОрганизация + "Реквизиты"] = Неопределено; @@ -2412,19 +2600,24 @@ Возврат; КонецЕсли; + ОчиститьРезультатыПроверки(); УдалитьПодписьНаСервере(ТекущиеДанные.ПорядковыйНомер); ОбновитьСтатус(); - + + НовыйСтатус = МашиночитаемыеДоверенностиФНССлужебныйКлиентСервер.РасчетныйСтатусДокумента(ТехническийСтатус); + Если Объект.Статус <> НовыйСтатус Тогда + Объект.Статус = НовыйСтатус; + ОчиститьРезультатыПроверки(); + ОбновитьОбъект(); + КонецЕсли; + КонецПроцедуры &НаСервере -Процедура УдалитьПодписьНаСервере(ПорядковыйНомер) +Процедура УдалитьПодписьНаСервере(Знач ПорядковыйНомер) ЭлектроннаяПодпись.УдалитьПодпись(Объект.ФайлДоверенности, ПорядковыйНомер, УникальныйИдентификатор); - - МашиночитаемыеДоверенностиФНССлужебный.УстановитьПризнакПодписана(Объект.Ссылка, Ложь); - МашиночитаемыеДоверенностиФНССлужебный.РассчитатьИЗаписатьТехническийСтатус(Объект.Ссылка); - + МашиночитаемыеДоверенностиФНССлужебный.РассчитатьИЗаписатьТехническийСтатус(Объект.Ссылка, Ложь); ЗаполнитьСписокПодписей(); КонецПроцедуры @@ -2453,7 +2646,7 @@ КонецПроцедуры &НаСервере -Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) +Процедура ВыполнитьКомандуНаСервере(Знач ПараметрыВыполнения) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект); @@ -2509,24 +2702,31 @@ &НаКлиенте Процедура ОбновитьСтатус(НаправитьЗапросВРР = Ложь) - Если ЗначениеЗаполнено(Объект.Ссылка) И Объект.РегистрироватьВРеестре Тогда + Если ЗначениеЗаполнено(Объект.Ссылка) Тогда + + ДанныеСостояния = ОбновитьСтатусИПрочитатьСостояние(Объект.Ссылка, Объект.РегистрироватьВРеестре И НаправитьЗапросВРР); - ДанныеСостояния = ОбновитьСтатусИПрочитатьСостояние(Объект.Ссылка, НаправитьЗапросВРР); ТребуетсяОбновлениеДекораций = ТехническийСтатус <> ДанныеСостояния.ТехническийСтатус; + ТехническийСтатус = ДанныеСостояния.ТехническийСтатус; + Если Подписана <> ДанныеСостояния.Подписана Тогда Подписана = ДанныеСостояния.Подписана; - УстановитьВидимостьИДоступность(ЭтотОбъект, "Подписание"); + Если Не ТребуетсяОбновлениеДекораций Тогда + УстановитьВидимостьИДоступность(ЭтотОбъект, "Подписание"); + КонецЕсли; КонецЕсли; - ОтобразитьДекорацииСтатуса(ЭтотОбъект); + Если ТребуетсяОбновлениеДекораций Тогда + УстановитьВидимостьИДоступность(ЭтотОбъект) + КонецЕсли; Если Объект.Статус <> ДанныеСостояния.Статус Тогда Объект.Статус = ДанныеСостояния.Статус; ОповеститьОбИзменении(Объект.Ссылка); КонецЕсли; - Если ДанныеСостояния.ОтображатьСтатусВДокументе Тогда + Если ДанныеСостояния.ОтображатьСтатусВДокументе И Объект.РегистрироватьВРеестре Тогда СтрокаОбновления = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru='Обновить'")); Элементы.ОписаниеСостояния.Заголовок = Новый ФорматированнаяСтрока(ДанныеСостояния.ОписаниеСостояния, Символы.ПС, СтрокаОбновления); Элементы.ОписаниеСостояния.Видимость = Истина; @@ -2539,13 +2739,14 @@ Иначе АдресОшибкиСтатуса = ПоместитьВоВременноеХранилище(ДанныеСостояния.ДанныеОшибкиЗапросаСтатуса, УникальныйИдентификатор); КонецЕсли; - + Иначе Элементы.ОписаниеСостояния.Видимость = Ложь; КонецЕсли; ОтобразитьДекорацииСтатуса(ЭтотОбъект); - Если ТехническийСтатус = ЭтотОбъект.ТехническийСтатус_Регистрация Тогда + + Если ТехническийСтатус = ПредопределенноеЗначение("Перечисление.ТехническиеСтатусыМЧД.Регистрация") Тогда Если ПериодОпросаСтатусов = 300 Тогда ПериодОпросаСтатусов = 5; Иначе @@ -2558,7 +2759,7 @@ КонецПроцедуры &НаСервереБезКонтекста -Функция ОбновитьСтатусИПрочитатьСостояние(Ссылка, НаправитьЗапросВРР) +Функция ОбновитьСтатусИПрочитатьСостояние(Знач Ссылка, Знач НаправитьЗапросВРР) Если НаправитьЗапросВРР Тогда РегистрыСведений.МашиночитаемыеДоверенностиСтатусы.ОбновлениеСтатусовМЧД(Ссылка); @@ -2570,7 +2771,7 @@ КонецФункции &НаСервереБезКонтекста -Процедура УстановитьСтатусРегистрации(Доверенность, ИдентификаторТранзакции = Неопределено) +Процедура УстановитьСтатусРегистрации(Знач Доверенность, Знач ИдентификаторТранзакции = Неопределено) МашиночитаемыеДоверенностиФНССлужебный.УстановитьСтатусРегистрации(Доверенность, ИдентификаторТранзакции); КонецПроцедуры @@ -2581,10 +2782,6 @@ ЭлектронныеПодписи.Очистить(); УстановленныеПодписи = ЭлектроннаяПодпись.УстановленныеПодписи(Объект.ФайлДоверенности); - Если УстановленныеПодписи.Количество() = 0 Тогда - Возврат; - КонецЕсли; - Для Каждого ЭлектроннаяПодписьФайла Из УстановленныеПодписи Цикл НоваяСтрока = ЭлектронныеПодписи.Добавить(); @@ -2601,14 +2798,12 @@ КонецЦикла; - УстановитьВидимостьИДоступность(ЭтотОбъект, "Подписание"); - КонецПроцедуры &НаКлиентеНаСервереБезКонтекста Функция СтатусПодписи(СтрокаПодписи, ДатаСеанса) - Если Не ЗначениеЗаполнено(СтрокаПодписи.ДатаПроверкиПодписи) Тогда + Если Не ЗначениеЗаполнено(СтрокаПодписи.ДатаПроверкиПодписи) Или СтрокаПодписи.ТребуетсяПроверка Тогда Статус = НСтр("ru = 'Требуется проверка'"); ИначеЕсли СтрокаПодписи.ПодписьВерна И ЗначениеЗаполнено(СтрокаПодписи.СрокДействияПоследнейМеткиВремени) @@ -2616,13 +2811,12 @@ Статус = НСтр("ru = 'Была верна на дату подписи'"); ИначеЕсли СтрокаПодписи.ПодписьВерна Тогда Статус = НСтр("ru = 'Верна'"); - ИначеЕсли СтрокаПодписи.ТребуетсяПроверка Тогда - Статус = НСтр("ru = 'Требуется проверка'"); Иначе Статус = НСтр("ru = 'Неверна'"); КонецЕсли; Возврат Статус; + КонецФункции &НаКлиенте @@ -2660,24 +2854,6 @@ КонецФункции -&НаСервере -Процедура КешироватьЗначенияСтатусов() - ДобавляемыеРеквизиты = Новый Массив; - ТипСтатуса = Новый ОписаниеТипов("ПеречислениеСсылка.ТехническиеСтатусыМЧД"); - - Для Каждого ЗначениеПеречисления Из Метаданные.Перечисления.ТехническиеСтатусыМЧД.ЗначенияПеречисления Цикл - НовыйРеквизит = Новый РеквизитФормы("ТехническийСтатус_"+ЗначениеПеречисления.Имя, ТипСтатуса); - ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); - КонецЦикла; - ИзменитьРеквизиты(ДобавляемыеРеквизиты); - - ИндексЗначения = 0; - Для Каждого ЗначениеПеречисления Из Метаданные.Перечисления.ТехническиеСтатусыМЧД.ЗначенияПеречисления Цикл - ЭтотОбъект["ТехническийСтатус_"+ЗначениеПеречисления.Имя] = Перечисления.ТехническиеСтатусыМЧД[ИндексЗначения]; - ИндексЗначения = ИндексЗначения + 1; - КонецЦикла; -КонецПроцедуры - &НаСервереБезКонтекста Функция ИспользуетсяАвтоНаименование(Объект) diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl index 262128958..b47c73f38 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ManagerModule.bsl @@ -40,21 +40,6 @@ КонецПроцедуры -// Подготавливает данные печати. -// -// Параметры: -// ИсточникиДанных - см. УправлениеПечатьюПереопределяемый.ПриПодготовкеДанныхПечати.ИсточникиДанных -// ВнешниеНаборыДанных - см. УправлениеПечатьюПереопределяемый.ПриПодготовкеДанныхПечати.ВнешниеНаборыДанных -// КодЯзыка - см. УправлениеПечатьюПереопределяемый.ПриПодготовкеДанныхПечати.КодЯзыка -// ДополнительныеПараметры - см. УправлениеПечатьюПереопределяемый.ПриПодготовкеДанныхПечати.ДополнительныеПараметры -// -Процедура ПриПодготовкеДанныхПечати(ИсточникиДанных, ВнешниеНаборыДанных, КодЯзыка, ДополнительныеПараметры) Экспорт - - ДанныеПечати = ДанныеПечати(ИсточникиДанных, КодЯзыка, ДополнительныеПараметры); - ВнешниеНаборыДанных.Вставить("ДанныеПечати", ДанныеПечати); - -КонецПроцедуры - // Формирует печатные формы. // // Параметры: @@ -82,6 +67,14 @@ #Область СлужебныеПроцедурыИФункции +Функция ИдентификаторСхемыМЧД() + Возврат "http://www.1c.ru/ssl/emchd1"; +КонецФункции + +Функция ЦелевоеПространствоИмен() + Возврат "urn://x-artefacts/EMCHD_1"; +КонецФункции + // Параметры: // Объект - СправочникОбъект.МашиночитаемыеДоверенности // @@ -95,6 +88,9 @@ ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ДанныеДоверенности, "Доверенность"); ДоверенностьXML = ЗаписьXML.Закрыть(); + ДоверенностьXML = СтрЗаменить(ДоверенностьXML, """" + ИдентификаторСхемыМЧД() + """", + """" + ЦелевоеПространствоИмен() + """"); + ИдентификаторФайла = ДанныеДоверенности.ИдФайл; Результат = Новый Структура; @@ -117,7 +113,7 @@ КодФормыПоКлассификаторуНалоговойДокументации = "1110310"; Доверенность = Доверенность(Объект); - Документ = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ДокументТип")); + Документ = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ДокументТип")); Если ДляНалоговыхОрганов Тогда Документ.КНД = КодФормыПоКлассификаторуНалоговойДокументации; КонецЕсли; @@ -152,7 +148,7 @@ ИдентификаторФайлаДляПредставленияИнтересовВНалоговомОргане = СтрШаблон("%1_%2_%3_%4_%5_%6", Префикс, Получатель, КонечныйПолучатель, Отправитель, ДатаФормирования, ИдентификационныйНомер); КонецЕсли; - ОписаниеДоверенности = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ДоверенностьТип")); + ОписаниеДоверенности = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ДоверенностьТип")); ОписаниеДоверенности.ВерсФорм = ВерсияФормата; ОписаниеДоверенности.ПрЭлФорм = ФлагОбязательностиЭлементов; ОписаниеДоверенности.ИдФайл = ИдентификаторФайла; @@ -175,7 +171,7 @@ СведенияОПредставителях = СведенияОПредставителях(Объект); СведенияОПолномочияхПредставителей = СведенияОПолномочияхПредставителей(Объект); - Доверенность = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ДоверТип")); + Доверенность = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ДоверТип")); Доверенность.СвДов = СведенияОДоверенности; Для Каждого СведенияОДоверителе Из СведенияОДоверителях Цикл Доверенность.СвДоверит.Добавить(СведенияОДоверителе); @@ -209,7 +205,7 @@ КодыНалоговыхОргановДействия = Объект.НалоговыеОрганыДействия.ВыгрузитьКолонку("КодНалоговогоОргана"); СведенияОбИнформационнойСистеме = "https://m4d.nalog.gov.ru/"; - СведенияОДоверенности = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СвДовТип")); + СведенияОДоверенности = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвДовТип")); СведенияОДоверенности.ВидДовер = ВидДоверенности; СведенияОДоверенности.ПрПередов = ПризнакВозможностиПередоверия; СведенияОДоверенности.ВнНомДовер = ВнутреннийНомерДоверенности; @@ -237,8 +233,8 @@ Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"))); Для Каждого ОписаниеДоверителя Из ОписанияДоверителей Цикл - СведенияОДоверителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СвДоверитТип")); - Доверитель = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ДоверитТип")); + СведенияОДоверителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвДоверитТип")); + Доверитель = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ДоверитТип")); РеквизитыДоверителя = ОписаниеДоверителя.ДоверительРеквизиты.Получить(); ОписанияЛицДоверителя = Доверенность.Доверители.НайтиСтроки( Новый Структура("ИдентификаторРодителя", ОписаниеДоверителя.Идентификатор)); @@ -316,7 +312,7 @@ СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыОрганизации); - СведенияОДоверителеЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "РосОргДоверТип")); + СведенияОДоверителеЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "РосОргДоверТип")); СведенияОДоверителеЮридическогоЛица.ЕИОУК = ЕдиноличнымИсполнительнымОрганомВыступаетУправляющаяКомпания; СведенияОДоверителеЮридическогоЛица.ЕИОФЛ = ЕдиноличнымИсполнительнымОрганомВыступаетФизическоеЛицо; СведенияОДоверителеЮридическогоЛица.ЕИОИП = ЕдиноличнымИсполнительнымОрганомВыступаетИндивидуальныйПредприниматель; @@ -339,7 +335,7 @@ СНИЛС = РеквизитыФизическогоЛица.СНИЛС; СведенияОФизическомЛице = СведенияОФизическомЛице(РеквизитыФизическогоЛица, ДляНалоговыхОрганов); - СведенияОФизическомЛицеДоверителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ФЛДоверТип")); + СведенияОФизическомЛицеДоверителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ФЛДоверТип")); Если ЗначениеЗаполнено(ИНН) Тогда СведенияОФизическомЛицеДоверителе.ИННФЛ = ИНН; КонецЕсли; @@ -359,7 +355,7 @@ КонецЕсли; Для Каждого РеквизитыУправляющейКомпании Из РеквизитыУправляющихКомпаний Цикл - СведенияОЛицеДоверителя = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ЛицоБезДовТип")); + СведенияОЛицеДоверителя = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ЛицоБезДовТип")); СведенияОЛицеДоверителя.ПолнЮЛ = ВидПолномочийЕдиноличногоИсполнительногоОргана; Если РеквизитыУправляющейКомпании.Ключ.ЭтоИндивидуальныйПредприниматель Тогда @@ -375,7 +371,7 @@ КонецЦикла; Для Каждого РеквизитыФизическогоЛица Из РеквизитыФизическихЛиц Цикл - СведенияОЛицеДоверителя = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ЛицоБезДовТип")); + СведенияОЛицеДоверителя = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ЛицоБезДовТип")); СведенияОЛицеДоверителя.ПолнЮЛ = ВидПолномочийЕдиноличногоИсполнительногоОргана; Если РеквизитыФизическогоЛица.ЭтоИндивидуальныйПредприниматель Тогда // удалить ип? @@ -399,7 +395,7 @@ СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыУправляющейКомпании); СведенияОДолжностныхЛицах = СведенияОДолжностныхЛицах(РеквизитыФизическихЛиц, ДляНалоговыхОрганов); - СведенияОЕдиноличномИсполнительномОрганеУправляющейКомпании = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СВЮЛТип")); + СведенияОЕдиноличномИсполнительномОрганеУправляющейКомпании = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СВЮЛТип")); СведенияОЕдиноличномИсполнительномОрганеУправляющейКомпании.СвЮЛЕИО = СведенияОЮридическомЛице; Для Каждого СведенияОДолжностномЛице Из СведенияОДолжностныхЛицах Цикл СведенияОЕдиноличномИсполнительномОрганеУправляющейКомпании.СвФЛ.Добавить(СведенияОДолжностномЛице); @@ -428,7 +424,7 @@ Должность = РеквизитыФизическогоЛица.ДолжностьЛицаБезДоверенности; СведенияОФизическомЛице = СведенияОФизическомЛице(РеквизитыФизическогоЛица, ДляНалоговыхОрганов); - СведенияОДолжностномЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СвФЛТип")); + СведенияОДолжностномЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвФЛТип")); Если ЗначениеЗаполнено(ИНН) Тогда СведенияОДолжностномЛице.ИННФЛ = ИНН; КонецЕсли; @@ -454,8 +450,8 @@ Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"))); Для Каждого ОписаниеПредставителя Из ОписанияПредставителей Цикл - СведенияОПредставителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СвУпПредТип")); - Представитель = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ПредТип")); + СведенияОПредставителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвУпПредТип")); + Представитель = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ПредТип")); РеквизитыПредставителя = ОписаниеПредставителя.ПредставительРеквизиты.Получить(); ОписанияЛицПредставителя = Доверенность.Представители.НайтиСтроки( @@ -501,7 +497,7 @@ СведенияОЮридическомЛице = СведенияОЮридическомЛице(РеквизитыПредставителя); Представитель.СведОрг = СведенияОЮридическомЛице; КонецЕсли; - СведенияОПредставителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СвУпПредТип")); + СведенияОПредставителе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвУпПредТип")); СведенияОПредставителе.ТипПред = ТипПредставителя; СведенияОПредставителе.Пред = Представитель; СведенияОПредставителях.Добавить(СведенияОПредставителе); @@ -519,7 +515,7 @@ ПризнакСовместногоОсуществленияПолномочий = ?(Объект.СовместныеПолномочия, "2", "1"); СведенияОМашиночитаемыхПолномочиях = СведенияОМашиночитаемыхПолномочиях(Объект); - СведенияОПолномочияхПредставителей = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СвПолнТип")); + СведенияОПолномочияхПредставителей = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвПолнТип")); СведенияОПолномочияхПредставителей.ТипПолн = ТипПолномочия; СведенияОПолномочияхПредставителей.ПрСовмПолн = ПризнакСовместногоОсуществленияПолномочий; @@ -545,7 +541,7 @@ Ограничения = Объект.Ограничения.НайтиСтроки(Новый Структура("ИдентификаторПолномочия", ОписаниеПолномочия.ИдентификаторПолномочия)); СведенияОбОграниченияхКПолномочию = СведенияОбОграниченияхКПолномочию(Ограничения); - СведенияОМашиночитаемомПолномочии = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "МашПолнТип")); + СведенияОМашиночитаемомПолномочии = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "МашПолнТип")); СведенияОМашиночитаемомПолномочии.КодПолн = КодПолномочия; СведенияОМашиночитаемомПолномочии.НаимПолн = НаименованиеПолномочия; Для Каждого Элемент Из СведенияОбОграниченияхКПолномочию Цикл @@ -571,7 +567,7 @@ КодЗначенияДляОграничения = Ограничение.КодЗначения; ТекстовоеЗначениеДляОграничения = Ограничение.ТекстовоеЗначение; - СведенияОбОграниченииКПолномочию = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ОгрСвПолнТип")); + СведенияОбОграниченииКПолномочию = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ОгрСвПолнТип")); СведенияОбОграниченииКПолномочию.ИдОгр = ПорядковыйНомерОграничения; СведенияОбОграниченииКПолномочию.КодОгр = КодОграничения; СведенияОбОграниченииКПолномочию.НаимОгр = НаименованиеОграничения; @@ -604,9 +600,8 @@ КонтактныйТелефон = РеквизитыОрганизации.Телефон; АдресЭлектроннойПочты = РеквизитыОрганизации.ЭлектроннаяПочта; АдресЮридическогоЛица = СведенияОбАдресе(РеквизитыОрганизации.ЮридическийАдресЗначение); - ЭтоФилиал = РеквизитыОрганизации.ЭтоФилиал; - СведенияОЮридическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СвОргТип")); + СведенияОЮридическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвОргТип")); СведенияОЮридическомЛице.НаимОрг = НаименованиеЮридическогоЛица; Если ЗначениеЗаполнено(ИНН) Тогда СведенияОЮридическомЛице.ИННЮЛ = ИНН; @@ -648,7 +643,7 @@ ФИАСАдресВРоссийскойФедерации = ПоляАдреса.МуниципальноеПредставление; АдресВРоссийскойФедерации = ПоляАдреса.Представление; - СведенияОбАдресе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "АдрТип")); + СведенияОбАдресе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "АдрТип")); СведенияОбАдресе.Регион = СубъектРоссийскойФедерации; Если ЗначениеЗаполнено(ПоляАдреса.ИдентификаторАдресногоОбъекта) Тогда СведенияОбАдресе.ИдФИАС = Строка(ИдентификаторАдресаПоФИАС); @@ -663,7 +658,7 @@ Функция СведенияОДоверителеИностранногоЮридическогоЛица(РеквизитыОрганизации, РеквизитыФизическихЛиц, ДляНалоговыхОрганов) // ИнОргДоверТип - СведенияОДоверителеИностранногоЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ИнОргДоверТип")); + СведенияОДоверителеИностранногоЮридическогоЛица = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ИнОргДоверТип")); СведенияОбИностранномЮридическомЛице = СведенияОбИностранномЮридическомЛице(РеквизитыОрганизации); СведенияОДоверителеИностранногоЮридическогоЛица.СвИнОрг = СведенияОбИностранномЮридическомЛице; @@ -692,7 +687,7 @@ ЮридическийАдресВСтранеРегистрации = РеквизитыОрганизации.ЮридическийАдресВСтранеРегистрации; ФактическийАдрес = СведенияОбАдресе(РеквизитыОрганизации.ФактическийАдресЗначение); - СведенияОбИностранномЮридическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СвИнОргТип")); + СведенияОбИностранномЮридическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СвИнОргТип")); СведенияОбИностранномЮридическомЛице.НаимИО = НаименованиеОрганизации; Если ЗначениеЗаполнено(ИННЮЛ) Тогда СведенияОбИностранномЮридическомЛице.ИННЮЛ = ИННЮЛ; @@ -741,7 +736,7 @@ СНИЛС = РеквизитыФизическогоЛица.СтраховойНомерПФР; СведенияОФизическомЛице = СведенияОФизическомЛице(РеквизитыФизическогоЛица, ДляНалоговыхОрганов); - СведенияОбИндивидуальномПредпринимателе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СведИПТип")); + СведенияОбИндивидуальномПредпринимателе = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СведИПТип")); СведенияОбИндивидуальномПредпринимателе.ОГРНИП = ОГРНИП; СведенияОбИндивидуальномПредпринимателе.ИННФЛ = ИНН; СведенияОбИндивидуальномПредпринимателе.СНИЛС = СНИЛС; @@ -785,7 +780,7 @@ КонецЕсли; СведенияОДокументеУдостоверяющемЛичность = СведенияОДокументеУдостоверяющемЛичность(РеквизитыФизическогоЛица); - СведенияОФизическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "СведФЛТип")); + СведенияОФизическомЛице = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "СведФЛТип")); СведенияОФизическомЛице.Пол = Пол; Если ЗначениеЗаполнено(ПризнакНаличияГражданства) Тогда @@ -827,7 +822,7 @@ Имя = РеквизитыФизическогоЛица.Имя; Отчество = РеквизитыФизическогоЛица.Отчество; - ФИОДоверителя = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ФИОТип")); + ФИОДоверителя = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ФИОТип")); ФИОДоверителя.Фамилия = Фамилия; ФИОДоверителя.Имя = Имя; ФИОДоверителя.Отчество = Отчество; @@ -849,7 +844,7 @@ КодПодразделенияОрганаВыдавшегоДокумент = РеквизитыФизическогоЛица.ДокументКодПодразделения; ДатаИстеченияСрокаДействияДокумента = Формат(РеквизитыФизическогоЛица.ДокументСрокДействия, "ДФ=yyyy-MM-dd;"); - СведенияОДокументеУдостоверяющемЛичность = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "УдЛичнФЛТип")); + СведенияОДокументеУдостоверяющемЛичность = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "УдЛичнФЛТип")); СведенияОДокументеУдостоверяющемЛичность.КодВидДок = КодВидаДокумента; СведенияОДокументеУдостоверяющемЛичность.СерНомДок = СерияИНомерДокумента; СведенияОДокументеУдостоверяющемЛичность.ДатаДок = ДатаВыдачиДокумента; @@ -939,12 +934,8 @@ ИмяФайлаДоверенности = ""; ОписаниеОшибки = ""; - - ЧтениеXML = Новый ЧтениеXML(); - ЧтениеXML.УстановитьСтроку(ДоверенностьXML); - ЧтениеXML.Прочитать(); - Доверенность = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ДоверенностьТип")); - ЧтениеXML.Закрыть(); + + Доверенность = ДоверенностьXDTO(ДоверенностьXML); ИдентификаторФайла = Доверенность.ИдФайл; Если ДляНалоговыхОрганов Тогда @@ -969,73 +960,6 @@ КонецФункции -Функция ДанныеПечати(ИсточникиДанных, КодЯзыка, ДополнительныеПараметры) - - ДанныеПечати = Новый ТаблицаЗначений; - ДанныеПечати.Колонки.Добавить("Ссылка", Новый ОписаниеТипов); - ДанныеПечати.Колонки.Добавить("Номер", Новый ОписаниеТипов("Строка")); - ДанныеПечати.Колонки.Добавить("ДатаВыдачи", Новый ОписаниеТипов("Дата")); - ДанныеПечати.Колонки.Добавить("ДатаОкончания", Новый ОписаниеТипов("Дата")); - ДанныеПечати.Колонки.Добавить("СведенияОДоверителях", Новый ОписаниеТипов("ТаблицаЗначений")); - ДанныеПечати.Колонки.Добавить("СведенияОПредставителях", Новый ОписаниеТипов("ТаблицаЗначений")); - ДанныеПечати.Колонки.Добавить("Полномочия", Новый ОписаниеТипов("ТаблицаЗначений")); - - СведенияОДоверителях = Новый ТаблицаЗначений; - СведенияОДоверителях.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка")); - СведенияОДоверителях.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка")); - СведенияОДоверителях.Колонки.Добавить("КПП", Новый ОписаниеТипов("Строка")); - СведенияОДоверителях.Колонки.Добавить("ОГРН", Новый ОписаниеТипов("Строка")); - СведенияОДоверителях.Колонки.Добавить("Подписанты", Новый ОписаниеТипов("ТаблицаЗначений")); - - Подписанты = Новый ТаблицаЗначений; - Подписанты.Колонки.Добавить("ФИО", Новый ОписаниеТипов("Строка")); - Подписанты.Колонки.Добавить("Должность", Новый ОписаниеТипов("Строка")); - Подписанты.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка")); - Подписанты.Колонки.Добавить("СНИЛС", Новый ОписаниеТипов("Строка")); - Подписанты.Колонки.Добавить("СведенияОДокументеУдостоверяющемЛичность", Новый ОписаниеТипов("Строка")); - - СведенияОПредставителях = Новый ТаблицаЗначений; - СведенияОПредставителях.Колонки.Добавить("ФИО", Новый ОписаниеТипов("Строка")); - СведенияОПредставителях.Колонки.Добавить("ДатаРождения", Новый ОписаниеТипов("Строка")); - СведенияОПредставителях.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка")); - СведенияОПредставителях.Колонки.Добавить("СНИЛС", Новый ОписаниеТипов("Строка")); - СведенияОПредставителях.Колонки.Добавить("СведенияОДокументеУдостоверяющемЛичность", Новый ОписаниеТипов("Строка")); - - Полномочия = Новый ТаблицаЗначений; - Полномочия.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка")); - Полномочия.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка")); - - ФайлыДоверенностей = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(ИсточникиДанных, "ФайлДоверенности"); - - Для Каждого Ссылка Из ИсточникиДанных Цикл - ФайлыДоверенности = Новый Массив; - ФайлДоверенности = ФайлыДоверенностей[Ссылка]; - - Если ФайлДоверенности.Пустая() Тогда - ФайлыДоверенностей[Ссылка] = ФайлыДоверенности; - Продолжить; - КонецЕсли; - - ДанныеФайла = РаботаСФайлами.ДанныеФайла(ФайлДоверенности); - ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); - ДоверенностьXML = ПолучитьСтрокуИзДвоичныхДанных(ДвоичныеДанные); - - Доверенность = ДоверенностьXDTO(ДоверенностьXML); - - ОписаниеДоверенности = ДанныеПечати.Добавить(); - ОписаниеДоверенности.Ссылка = Ссылка; - ОписаниеДоверенности.ДатаВыдачи = Доверенность.Документ.Довер.СвДов.ДатаВыдДовер; - ОписаниеДоверенности.ДатаОкончания = Доверенность.Документ.Довер.СвДов.СрокДейст; - ОписаниеДоверенности.Номер = Доверенность.Документ.Довер.СвДов.НомДовер; - ОписаниеДоверенности.СведенияОДоверителях = СведенияОДоверителях; - ОписаниеДоверенности.СведенияОПредставителях = СведенияОПредставителях; - ОписаниеДоверенности.Полномочия = Полномочия; - КонецЦикла; - - Возврат ДанныеПечати; - -КонецФункции - Функция ПечатьДоверенности(Доверенности, ОбъектыПечати, КодЯзыка) ТабличныйДокумент = Новый ТабличныйДокумент; @@ -1100,10 +1024,6 @@ Если ТипДоверителя = "1" Тогда СведенияОДоверителеЮридическогоЛица = Доверитель.РосОргДовер; - - ЕдиноличнымИсполнительнымОрганомВыступаетУправляющаяКомпания = СведенияОДоверителеЮридическогоЛица.ЕИОУК; - ЕдиноличнымИсполнительнымОрганомВыступаетФизическоеЛицо = СведенияОДоверителеЮридическогоЛица.ЕИОФЛ; - ЕдиноличнымИсполнительнымОрганомВыступаетИндивидуальныйПредприниматель = СведенияОДоверителеЮридическогоЛица.ЕИОИП; СведенияОЮридическомЛице = СведенияОДоверителеЮридическогоЛица.СвРосОрг; Параметры = РеквизитыЮридическогоЛица(СведенияОЮридическомЛице); @@ -1221,7 +1141,6 @@ СведенияОПолномочияхПредставителей = Доверенность.Документ.Довер.СвПолн; ТипПолномочия = СведенияОПолномочияхПредставителей.ТипПолн; - ПризнакСовместногоОсуществленияПолномочий = СведенияОПолномочияхПредставителей.ПрСовмПолн; СведенияОМашиночитаемыхПолномочиях = СведенияОПолномочияхПредставителей.МашПолн; ТекстовоеСодержаниеПолномочия = СведенияОПолномочияхПредставителей.ТекстПолн; @@ -1246,7 +1165,6 @@ СведенияОбОграниченияхКПолномочию = СведенияОМашиночитаемомПолномочии.ОгрСвПолн; Для Каждого СведенияОбОграниченииКПолномочию Из СведенияОбОграниченияхКПолномочию Цикл - ПорядковыйНомерОграничения = СведенияОбОграниченииКПолномочию.ИдОгр; КодОграничения = СведенияОбОграниченииКПолномочию.КодОгр; НаименованиеОграничения = СведенияОбОграниченииКПолномочию.НаимОгр; НаименованиеЗначенияДляОграничения = СведенияОбОграниченииКПолномочию.НаимЗначОгр; @@ -1280,12 +1198,15 @@ КонецФункции -Функция ДоверенностьXDTO(ДоверенностьXML) +Функция ДоверенностьXDTO(Знач ДоверенностьXML) + ДоверенностьXML = СтрЗаменить(ДоверенностьXML, """" + ЦелевоеПространствоИмен() + """", + """" + ИдентификаторСхемыМЧД() + """"); + ЧтениеXML = Новый ЧтениеXML(); ЧтениеXML.УстановитьСтроку(ДоверенностьXML); ЧтениеXML.Прочитать(); - ДоверенностьXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип("urn://x-artefacts/EMCHD_1", "ДоверенностьТип")); + ДоверенностьXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип(ИдентификаторСхемыМЧД(), "ДоверенностьТип")); ЧтениеXML.Закрыть(); Возврат ДоверенностьXDTO; @@ -1385,7 +1306,9 @@ Пол = СведенияОФизическомЛице.Пол; ПризнакНаличияГражданства = СведенияОФизическомЛице.ПрГражд; НомерЗаписиЕдиногоРегистраНаселения = СведенияОФизическомЛице.НомЕРН; - ДатаРождения = Дата(СведенияОФизическомЛице.ДатаРожд); + Если ЗначениеЗаполнено(СведенияОФизическомЛице.ДатаРожд) Тогда + ДатаРождения = Дата(СведенияОФизическомЛице.ДатаРожд); + КонецЕсли; МестоРождения = СведенияОФизическомЛице.МестоРожд; Гражданство = Справочники.СтраныМира.НайтиПоКоду(СведенияОФизическомЛице.Гражданство); КонтактныйТелефон = СведенияОФизическомЛице.КонтактТлф; @@ -1402,31 +1325,41 @@ НСтр("ru = '%1 %2 %3'"), Фамилия, Имя, Отчество); - КодВидаДокумента = СведенияОДокументеУдостоверяющемЛичность.КодВидДок; - СерияИНомерДокумента = СведенияОДокументеУдостоверяющемЛичность.СерНомДок; - ДатаВыдачиДокумента = Дата(СведенияОДокументеУдостоверяющемЛичность.ДатаДок); - НаименованиеОрганаВыдавшегоДокумент = СведенияОДокументеУдостоверяющемЛичность.ВыдДок; - КодПодразделенияОрганаВыдавшегоДокумент = СведенияОДокументеУдостоверяющемЛичность.КодВыдДок; - ДатаИстеченияСрокаДействияДокумента = ?(СведенияОДокументеУдостоверяющемЛичность.expDate = Неопределено, - '00010101', Дата(СведенияОДокументеУдостоверяющемЛичность.expDate)); + КодВидаДокумента = Неопределено; + СерияИНомерДокумента = Неопределено; + ДатаВыдачиДокумента = Неопределено; + НаименованиеОрганаВыдавшегоДокумент = Неопределено; + КодПодразделенияОрганаВыдавшегоДокумент = Неопределено; + ДатаИстеченияСрокаДействияДокумента = Неопределено; + ДокументУдостоверяющийЛичность = ""; - РеквизитыДокумента = Новый Массив; - РеквизитыДокумента.Добавить(НаименованиеДокумента(КодВидаДокумента)); - РеквизитыДокумента.Добавить(СерияИНомерДокумента); - РеквизитыДокумента.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'выдан %1'"), Формат(Дата(ДатаВыдачиДокумента), "ДЛФ=D;"))); - Если ЗначениеЗаполнено(НаименованиеОрганаВыдавшегоДокумент) Тогда - РеквизитыДокумента.Добавить(НаименованиеОрганаВыдавшегоДокумент); - КонецЕсли; - Если ЗначениеЗаполнено(КодПодразделенияОрганаВыдавшегоДокумент) Тогда - РеквизитыДокумента.Добавить("(" + КодПодразделенияОрганаВыдавшегоДокумент + ")"); - КонецЕсли; - Если ЗначениеЗаполнено(ДатаИстеченияСрокаДействияДокумента) Тогда + Если СведенияОДокументеУдостоверяющемЛичность <> Неопределено Тогда + КодВидаДокумента = СведенияОДокументеУдостоверяющемЛичность.КодВидДок; + СерияИНомерДокумента = СведенияОДокументеУдостоверяющемЛичность.СерНомДок; + ДатаВыдачиДокумента = Дата(СведенияОДокументеУдостоверяющемЛичность.ДатаДок); + НаименованиеОрганаВыдавшегоДокумент = СведенияОДокументеУдостоверяющемЛичность.ВыдДок; + КодПодразделенияОрганаВыдавшегоДокумент = СведенияОДокументеУдостоверяющемЛичность.КодВыдДок; + ДатаИстеченияСрокаДействияДокумента = ?(СведенияОДокументеУдостоверяющемЛичность.expDate = Неопределено, + '00010101', Дата(СведенияОДокументеУдостоверяющемЛичность.expDate)); + + РеквизитыДокумента = Новый Массив; + РеквизитыДокумента.Добавить(НаименованиеДокумента(КодВидаДокумента)); + РеквизитыДокумента.Добавить(СерияИНомерДокумента); РеквизитыДокумента.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( - НСтр("ru = 'действителен до %1'"), Формат(Дата(ДатаИстеченияСрокаДействияДокумента), "ДЛФ=D;"))); - КонецЕсли; + НСтр("ru = 'выдан %1'"), Формат(Дата(ДатаВыдачиДокумента), "ДЛФ=D;"))); + Если ЗначениеЗаполнено(НаименованиеОрганаВыдавшегоДокумент) Тогда + РеквизитыДокумента.Добавить(НаименованиеОрганаВыдавшегоДокумент); + КонецЕсли; + Если ЗначениеЗаполнено(КодПодразделенияОрганаВыдавшегоДокумент) Тогда + РеквизитыДокумента.Добавить("(" + КодПодразделенияОрганаВыдавшегоДокумент + ")"); + КонецЕсли; + Если ЗначениеЗаполнено(ДатаИстеченияСрокаДействияДокумента) Тогда + РеквизитыДокумента.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( + НСтр("ru = 'действителен до %1'"), Формат(Дата(ДатаИстеченияСрокаДействияДокумента), "ДЛФ=D;"))); + КонецЕсли; - ДокументУдостоверяющийЛичность = СтрСоединить(РеквизитыДокумента, " "); + ДокументУдостоверяющийЛичность = СтрСоединить(РеквизитыДокумента, " "); + КонецЕсли; АдресРегистрации = ""; АдресРегистрацииЗначение = ""; @@ -1542,8 +1475,6 @@ Функция ПредставленияАдреса(СведенияОбАдресе) - СубъектРоссийскойФедерации = СведенияОбАдресе.Регион; - ИдентификаторАдресаПоФИАС = СведенияОбАдресе.ИдФИАС; ФИАСАдресВРоссийскойФедерации = СведенияОбАдресе.ФИАСАдрРФ; АдресВРоссийскойФедерации = СведенияОбАдресе.АдрРФ; @@ -1777,12 +1708,9 @@ ВерсияФормата = ОписаниеДоверенности.ВерсФорм; ФлагОбязательностиЭлементов = ОписаниеДоверенности.ПрЭлФорм; - ИдентификаторФайла = ОписаниеДоверенности.ИдФайл; - ИдентификаторФайлаДляПредставленияИнтересовВНалоговомОргане = ОписаниеДоверенности.ИдФайлНО; ИныеСведения = ОписаниеДоверенности.ИнСвед; Документ = ОписаниеДоверенности.Документ; - КодФормыПоКлассификаторуНалоговойДокументации = Документ.КНД; Доверенность = Документ.Довер; СведенияОДоверенности = Доверенность.СвДов; @@ -1790,14 +1718,10 @@ СведенияОПредставителях = Доверенность.СвУпПред; СведенияОПолномочияхПредставителей = Доверенность.СвПолн; - ВидДоверенности = СведенияОДоверенности.ВидДовер; - ПризнакВозможностиПередоверия = СведенияОДоверенности.ПрПередов; - ВнутреннийНомерДоверенности = СведенияОДоверенности.ВнНомДовер; ЕдиныйРегистрационныйНомер = СведенияОДоверенности.НомДовер; ДатаВыдачиДоверенности = Дата(СведенияОДоверенности.ДатаВыдДовер); СрокДействияДоверенности = Дата(СведенияОДоверенности.СрокДейст); КодНалоговогоОрганаПредставления = СведенияОДоверенности.КодНО; - СведенияОбИнформационнойСистеме = СведенияОДоверенности.СведСист; Объект.ДляНалоговыхОрганов = Сред(ФлагОбязательностиЭлементов, 4, 1) = "1"; Объект.ВерсияФормата = ВерсияФормата; @@ -1814,14 +1738,8 @@ Если ТипДоверителя = "1" Тогда СведенияОДоверителеЮридическогоЛица = Доверитель.РосОргДовер; - - ЕдиноличнымИсполнительнымОрганомВыступаетУправляющаяКомпания = СведенияОДоверителеЮридическогоЛица.ЕИОУК; - ЕдиноличнымИсполнительнымОрганомВыступаетФизическоеЛицо = СведенияОДоверителеЮридическогоЛица.ЕИОФЛ; - ЕдиноличнымИсполнительнымОрганомВыступаетИндивидуальныйПредприниматель = СведенияОДоверителеЮридическогоЛица.ЕИОИП; СведенияОЮридическомЛице = СведенияОДоверителеЮридическогоЛица.СвРосОрг; - ОрганизацияДоверитель = ДобавитьОрганизациюДоверителя(Объект, Неопределено, СведенияОЮридическомЛице); - СведенияОЛицахДоверителя = СведенияОДоверителеЮридическогоЛица.ЛицоБезДов; Для Каждого СведенияОЛицеДоверителя Из СведенияОЛицахДоверителя Цикл @@ -1907,6 +1825,8 @@ СведенияОМашиночитаемыхПолномочиях = СведенияОПолномочияхПредставителей.МашПолн; ТекстовоеСодержаниеПолномочия = СведенияОПолномочияхПредставителей.ТекстПолн; + Объект.СовместныеПолномочия = ПризнакСовместногоОсуществленияПолномочий = "2"; + Если ТипПолномочия = "0" Тогда Полномочие = Объект.Полномочия.Добавить(); Полномочие.Наименование = ТекстовоеСодержаниеПолномочия; @@ -1922,7 +1842,6 @@ СведенияОбОграниченияхКПолномочию = СведенияОМашиночитаемомПолномочии.ОгрСвПолн; Для Каждого СведенияОбОграниченииКПолномочию Из СведенияОбОграниченияхКПолномочию Цикл - ПорядковыйНомерОграничения = СведенияОбОграниченииКПолномочию.ИдОгр; КодОграничения = СведенияОбОграниченииКПолномочию.КодОгр; НаименованиеОграничения = СведенияОбОграниченииКПолномочию.НаимОгр; НаименованиеЗначенияДляОграничения = СведенияОбОграниченииКПолномочию.НаимЗначОгр; @@ -2190,7 +2109,6 @@ Для Каждого Строка Из Объект.Доверители Цикл - СтрокаОбъекта = Объект.Доверители.НайтиСтроки(Новый Структура("Идентификатор", Строка.Идентификатор))[0]; РеквизитыДоверителя = Строка.ДоверительРеквизиты.Получить(); ЭтоФизическоеЛицо = РеквизитыДоверителя.ЭтоФизическоеЛицо; @@ -2206,7 +2124,6 @@ Для Каждого Строка Из Объект.Представители Цикл - СтрокаОбъекта = Объект.Представители.НайтиСтроки(Новый Структура("Идентификатор", Строка.Идентификатор))[0]; РеквизитыПредставителя = Строка.ПредставительРеквизиты.Получить(); Если НаименованиеПредставитель = "" Тогда diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ObjectModule.bsl b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ObjectModule.bsl index 92cc85853..37657cdf6 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/ObjectModule.bsl +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/ObjectModule.bsl @@ -21,6 +21,7 @@ СтатусВернаУстановленВручную = Ложь; УстановившийСтатусВерна = Неопределено; Подписана = Ложь; + ДатаПроверки = Неопределено; КонецПроцедуры diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/ДанныеПечати/Template.dcs b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/ДанныеПечати/Template.dcs deleted file mode 100644 index 989d13fd0..000000000 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/ДанныеПечати/Template.dcs +++ /dev/null @@ -1,299 +0,0 @@ - - - - ИсточникДанных1 - Local - - - НаборДанных1 - - Номер - Номер - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Номер</v8:content> - </v8:item> - - - - ДатаВыдачи - ДатаВыдачи - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дата выдачи</v8:content> - </v8:item> - - - xs:dateTime - - Date - - - - - ДатаОкончания - ДатаОкончания - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дата окончания</v8:content> - </v8:item> - - - xs:dateTime - - Date - - - - - СведенияОДоверителях - СведенияОДоверителях - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сведения о доверителях</v8:content> - </v8:item> - - - - СведенияОДоверителях.Наименование - СведенияОДоверителях.Наименование - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Наименование</v8:content> - </v8:item> - - - - СведенияОДоверителях.ИНН - СведенияОДоверителях.ИНН - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>ИНН</v8:content> - </v8:item> - - - - СведенияОДоверителях.КПП - СведенияОДоверителях.КПП - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>КПП</v8:content> - </v8:item> - - - - СведенияОДоверителях.ОГРН - СведенияОДоверителях.ОГРН - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>ОГРН</v8:content> - </v8:item> - - - - СведенияОДоверителях.Подписанты - Подписанты - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Подписанты</v8:content> - </v8:item> - - - - СведенияОДоверителях.Подписанты.СведенияОДокументеУдостоверяющемЛичность - СведенияОДоверителях.Подписанты.СведенияОДокументеУдостоверяющемЛичность - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сведения о документе, удостоверяющем личность</v8:content> - </v8:item> - - - - СведенияОДоверителях.Подписанты.ФИО - СведенияОДоверителях.Подписанты.ФИО - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>ФИО</v8:content> - </v8:item> - - - - СведенияОДоверителях.Подписанты.ИНН - СведенияОДоверителях.Подписанты.ИНН - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>ИНН</v8:content> - </v8:item> - - - - СведенияОДоверителях.Подписанты.СНИЛС - СведенияОДоверителях.Подписанты.СНИЛС - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>СНИЛС</v8:content> - </v8:item> - - - - СведенияОДоверителях.Подписанты.Должность - СведенияОДоверителях.Подписанты.Должность - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Должность</v8:content> - </v8:item> - - - - СведенияОПредставителях - СведенияОПредставителях - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Сведения о представителях</v8:content> - </v8:item> - - - - СведенияОПредставителях.ФИО - СведенияОПредставителях.ФИО - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>ФИО</v8:content> - </v8:item> - - - - СведенияОПредставителях.ДатаРождения - СведенияОПредставителях.ДатаРождения - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Дата рождения</v8:content> - </v8:item> - - - - СведенияОПредставителях.ИНН - СведенияОПредставителях.ИНН - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>ИНН</v8:content> - </v8:item> - - - - СведенияОПредставителях.СНИЛС - СведенияОПредставителях.СНИЛС - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>СНИЛС</v8:content> - </v8:item> - - - - Полномочия - Полномочия - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Полномочия</v8:content> - </v8:item> - - - - Полномочия.Наименование - Полномочия.Наименование - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Наименование</v8:content> - </v8:item> - - - - Полномочия.Код - Полномочия.Код - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Код</v8:content> - </v8:item> - - - - Ссылка - Ссылка - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Ссылка</v8:content> - </v8:item> - - - - СведенияОДоверителях.НомерСтроки - СведенияОДоверителях.НомерСтроки - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Номер строки</v8:content> - </v8:item> - - - - СведенияОДоверителях.Подписанты.НомерСтроки - СведенияОДоверителях.Подписанты.НомерСтроки - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>СведенияОДоверителях.ПНомер строки</v8:content> - </v8:item> - - - - СведенияОПредставителях.НомерСтроки - СведенияОПредставителях.НомерСтроки - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>НомерСтроки</v8:content> - </v8:item> - - - - Полномочия.НомерСтроки - Полномочия.НомерСтроки - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Номер строки</v8:content> - </v8:item> - - - ИсточникДанных1 - ДанныеПечати - - - Основной - Основной - - - \ No newline at end of file diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/ЗначенияОграничений/Template.bin b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/ЗначенияОграничений/Template.bin deleted file mode 100644 index 73d86f17c..000000000 Binary files a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/ЗначенияОграничений/Template.bin and /dev/null differ diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/КлассификаторПолномочий/Template.bin b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/КлассификаторПолномочий/Template.bin deleted file mode 100644 index f715f2fdd..000000000 Binary files a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/КлассификаторПолномочий/Template.bin and /dev/null differ diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/Ограничения/Template.bin b/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/Ограничения/Template.bin deleted file mode 100644 index 85fc00b08..000000000 Binary files a/SSL/src/Catalogs/МашиночитаемыеДоверенности/Templates/Ограничения/Template.bin and /dev/null differ diff --git a/SSL/src/Catalogs/МашиночитаемыеДоверенности/МашиночитаемыеДоверенности.mdo b/SSL/src/Catalogs/МашиночитаемыеДоверенности/МашиночитаемыеДоверенности.mdo index 0043f5852..602c74d6c 100644 --- a/SSL/src/Catalogs/МашиночитаемыеДоверенности/МашиночитаемыеДоверенности.mdo +++ b/SSL/src/Catalogs/МашиночитаемыеДоверенности/МашиночитаемыеДоверенности.mdo @@ -89,7 +89,7 @@ Code ru - Номер доверенности (внутренний) + Номер (внутренний) Use @@ -497,6 +497,22 @@ Use Use + + ДатаПроверки + + ru + Дата проверки + + + Date + + + + + + Use + Use + @@ -1008,14 +1024,6 @@ Доверенность - - ДанныеПечати - - ru - Данные печати - - DataCompositionSchema - Ограничения diff --git a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl index 388cfe0e4..74b305ad0 100644 --- a/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl +++ b/SSL/src/Catalogs/ПрофилиГруппДоступа/ManagerModule.bsl @@ -2743,7 +2743,7 @@ Если Не Справочники.ВерсииРасширений.ВсеРасширенияПодключены() Тогда СтарыеЗначения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ПрофильОбъект.Ссылка, "ВидыДоступа, ЗначенияДоступа"); - Справочники.ПрофилиГруппДоступа.ВосстановитьНесуществующиеВидыИЗначенияДоступа(СтарыеЗначения, ПрофильОбъект); + ВосстановитьНесуществующиеВидыИЗначенияДоступа(СтарыеЗначения, ПрофильОбъект); КонецЕсли; ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ПрофильОбъект); diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl index 1c9495c7f..3cc98de82 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПаролиШифрование/Module.bsl @@ -471,153 +471,23 @@ &НаСервере Процедура ЗаполнитьПолучателейРассылкиСАдресомЭлектроннойПочты(ТаблицаПолучателей) - ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ИдентификаторОбъектаМетаданных, Ложь); - ТипПолучателей = ИдентификаторОбъектаМетаданных.КлючОбъектаМетаданных.Получить(); - - Запрос = Новый Запрос; + ПараметрыПолучателей = РассылкаОтчетовКлиентСервер.ПараметрыПолучателей(); + ПараметрыПолучателей.Ссылка = Ссылка; + ПараметрыПолучателей.Получатели = ТаблицаПолучателей; + ПараметрыПолучателей.Автор = Неопределено; + ПараметрыПолучателей.Личная = Ложь; + ПараметрыПолучателей.ТипПолучателейРассылки = ИдентификаторОбъектаМетаданных; + ПараметрыПолучателей.ВидПочтовогоАдресаПолучателей = ВидПочтовогоАдресаПолучателей; - Если ТипПолучателей = Тип("СправочникСсылка.Пользователи") Тогда - - ТекстЗапроса = - "ВЫБРАТЬ - | ТаблицаПолучателей.Получатель, - | ТаблицаПолучателей.Исключен - |ПОМЕСТИТЬ ТаблицаПолучателей - |ИЗ - | &ТаблицаПолучателей КАК ТаблицаПолучателей - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ - | Пользователь.Ссылка КАК Получатель, - | МАКСИМУМ(ТаблицаПолучателей.Исключен) КАК Исключен, - | Пользователи.Наименование - |ПОМЕСТИТЬ Получатели - |ИЗ - | ТаблицаПолучателей КАК ТаблицаПолучателей - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей - | ПО СоставыГруппПользователей.ГруппаПользователей = ТаблицаПолучателей.Получатель - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи - | ПО Пользователи.Ссылка = СоставыГруппПользователей.Пользователь - |ГДЕ - | НЕ Пользователи.ПометкаУдаления - | И НЕ Пользователи.Недействителен - | И НЕ Пользователи.Служебный - |СГРУППИРОВАТЬ ПО - | Пользователь.Ссылка, - | Пользователи.Наименование - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ - | Получатели.Получатель КАК Получатель, - | Контакты.Представление КАК EMail, - | Получатели.Наименование КАК Наименование - |ИЗ - | Получатели КАК Получатели - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК Контакты - | ПО Контакты.Ссылка = Получатели.Получатель - | И Контакты.Вид = &ВидПочтовогоАдресаПолучателей - |ГДЕ - | НЕ Получатели.Исключен - | - |УПОРЯДОЧИТЬ ПО - | Наименование - |ИТОГИ - | МАКСИМУМ(Наименование) КАК Наименование - |ПО - | Получатель"; - - Иначе - - ТекстЗапроса = - "ВЫБРАТЬ - | ТаблицаПолучателей.Получатель, - | ТаблицаПолучателей.Исключен - |ПОМЕСТИТЬ ТаблицаПолучателей - |ИЗ - | &ТаблицаПолучателей КАК ТаблицаПолучателей - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ - | Получатели.Ссылка КАК Получатель, - | Контакты.Представление КАК EMail, - | Получатели.Наименование КАК Наименование - |ИЗ - | Справочник.Пользователи КАК Получатели - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК Контакты - | ПО Контакты.Ссылка = Получатели.Ссылка - | И Контакты.Вид = &ВидПочтовогоАдресаПолучателей - |ГДЕ - | Получатели.Ссылка В ИЕРАРХИИ - | (ВЫБРАТЬ - | Получатель - | ИЗ - | ТаблицаПолучателей - | ГДЕ - | НЕ Исключен) - | И НЕ Получатели.Ссылка В ИЕРАРХИИ - | (ВЫБРАТЬ - | Получатель - | ИЗ - | ТаблицаПолучателей - | ГДЕ - | Исключен) - | И НЕ Получатели.ПометкаУдаления - | И &ЭтоНеГруппа - | - |УПОРЯДОЧИТЬ ПО - | Наименование - |ИТОГИ - | МАКСИМУМ(Наименование) КАК Наименование - |ПО - | Получатель"; - - Если Не ПолучателиМетаданные.Иерархический Тогда - // Не иерархический - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "В ИЕРАРХИИ", "В"); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", ""); - ИначеЕсли ПолучателиМетаданные.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияЭлементов Тогда - // Иерархия элементов - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", ""); - Иначе - // Иерархия групп - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", "И НЕ Получатели.ЭтоГруппа"); - КонецЕсли; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Справочник.Пользователи", ПолучателиМетаданные.ПолноеИмя()); - - КонецЕсли; - - Запрос.УстановитьПараметр("ТаблицаПолучателей", ТаблицаПолучателей); - Если ЗначениеЗаполнено(ВидПочтовогоАдресаПолучателей) Тогда - Запрос.УстановитьПараметр("ВидПочтовогоАдресаПолучателей", ВидПочтовогоАдресаПолучателей); - Иначе - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ".Вид = &ВидПочтовогоАдресаПолучателей", ".Тип = &ТипПочтовогоАдреса"); - Запрос.УстановитьПараметр("ТипПочтовогоАдреса", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты); - КонецЕсли; - Запрос.Текст = ТекстЗапроса; - - Попытка - РезультатЗапроса = Запрос.Выполнить(); - ВыборкаПолучатели = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); - Исключение - Возврат; - КонецПопытки; + СписокПолучателейРассылки = РассылкаОтчетов.СформироватьСписокПолучателейРассылки(ПараметрыПолучателей, Неопределено); МассивПолучателей = Новый Массив; - Пока ВыборкаПолучатели.Следующий() Цикл - Выборка = ВыборкаПолучатели.Выбрать(); + Для Каждого Получатель Из СписокПолучателейРассылки Цикл СтрокаПолучатели = Получатели.Добавить(); - СтрокаПолучатели.Получатель = ВыборкаПолучатели.Получатель; - МассивПолучателей.Добавить(СтрокаПолучатели.Получатель); - Пока Выборка.Следующий() Цикл - ТекущийАдрес = ?(ПустаяСтрока(СтрокаПолучатели.АдресЭлектроннойПочты), "", - СтрокаПолучатели.АдресЭлектроннойПочты + "; "); - СтрокаПолучатели.АдресЭлектроннойПочты = ТекущийАдрес + Выборка.EMail; - КонецЦикла; - КонецЦикла; + СтрокаПолучатели.Получатель = Получатель.Ключ; + МассивПолучателей.Добавить(Получатель.Ключ); + СтрокаПолучатели.АдресЭлектроннойПочты = Получатель.Значение; + КонецЦикла; ЗаполнитьПаролиАрхиваИСертификатыДляШифрования(МассивПолучателей); diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl index adce2f7d0..e218be5a7 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ПолучателиРассылки/Module.bsl @@ -262,7 +262,7 @@ &НаСервере Процедура ЗаполнитьПочтовыеАдреса() - ПараметрыПолучателей = Новый Структура("Ссылка, ВидПочтовогоАдресаПолучателей, Личная, Получатели, ТипПолучателейРассылки"); + ПараметрыПолучателей = РассылкаОтчетовКлиентСервер.ПараметрыПолучателей(); ЗаполнитьЗначенияСвойств(ПараметрыПолучателей, ЭтотОбъект); ПараметрыПолучателей.Личная = Ложь; ПараметрыПолучателей.ТипПолучателейРассылки = ИдентификаторОбъектаМетаданных; @@ -327,19 +327,29 @@ &НаКлиентеНаСервереБезКонтекста Процедура ОбновитьКоличествоПолучателей(Форма) + + ПараметрыПолучателей = РассылкаОтчетовКлиентСервер.ПараметрыПолучателей(); + ЗаполнитьЗначенияСвойств(ПараметрыПолучателей, Форма); + ПараметрыПолучателей.Личная = Ложь; + ПараметрыПолучателей.ТипПолучателейРассылки = Форма.ИдентификаторОбъектаМетаданных; - КоличествоПолучателей = КоличествоПолучателейСУчетомГрупп(Форма.Получатели, - Форма.ИдентификаторОбъектаМетаданных); + КоличествоПолучателей = КоличествоПолучателейСУчетомГрупп(ПараметрыПолучателей); Форма.ИтогВсего = КоличествоПолучателей.Всего; - Форма.ИтогИсключены = КоличествоПолучателей.Исключены; + Если КоличествоПолучателей.Исключены <> Неопределено Тогда + Форма.ИтогИсключены = КоличествоПолучателей.Исключены; + Форма.Элементы.ИтогИсключены.Видимость = Истина; + Иначе + Форма.ИтогИсключены = 0; + Форма.Элементы.ИтогИсключены.Видимость = Ложь; + КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста -Функция КоличествоПолучателейСУчетомГрупп(Знач Получатели, Знач ИдентификаторОбъектаМетаданных) +Функция КоличествоПолучателейСУчетомГрупп(Знач ПараметрыПолучателей) - Возврат Справочники.РассылкиОтчетов.КоличествоПолучателейСУчетомГрупп(Получатели, ИдентификаторОбъектаМетаданных); + Возврат Справочники.РассылкиОтчетов.КоличествоПолучателейСУчетомГрупп(ПараметрыПолучателей); КонецФункции diff --git a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl index 2af3ccf30..f9c6ae314 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/Forms/ФормаЭлемента/Module.bsl @@ -3536,8 +3536,14 @@ Остаток = 75 - ПредставлениеОтключенных.ДлинаКраткого; Представление = РассылкаОтчетовКлиентСервер.ПредставлениеСписка(Включенные, "Получатель", Остаток); - КоличествоПолучателей = КоличествоПолучателейСУчетомГрупп(Форма.Объект.Получатели, - Форма.Объект.ТипПолучателейРассылки); + ПараметрыПолучателей = РассылкаОтчетовКлиентСервер.ПараметрыПолучателей(); + ПараметрыПолучателей.Ссылка = Форма.Объект.Ссылка; + ПараметрыПолучателей.ВидПочтовогоАдресаПолучателей = Форма.Объект.ВидПочтовогоАдресаПолучателей; + ПараметрыПолучателей.Личная = Форма.Объект.Личная; + ПараметрыПолучателей.ТипПолучателейРассылки = Форма.Объект.ТипПолучателейРассылки; + ПараметрыПолучателей.Получатели = Форма.Объект.Получатели; + + КоличествоПолучателей = КоличествоПолучателейСУчетомГрупп(ПараметрыПолучателей); Если КоличествоПолучателей.Всего = 0 Тогда Представление.Краткое = НСтр("ru = '<Укажите получателей>'"); @@ -3551,7 +3557,7 @@ Представление.Краткое = Представление.Краткое + ", ..."; КонецЕсли; - Если КоличествоПолучателей.Исключены > 0 Тогда + Если КоличествоПолучателей.Исключены <> Неопределено И КоличествоПолучателей.Исключены > 0 Тогда ШаблонРазделения = НСтр("ru = 'Кроме'")+ ": "; Представление.Полное = Представление.Полное + ";" + Символы.ПС + ШаблонРазделения + ПредставлениеОтключенных.Полное; Если Представление.ДлинаКраткого + ПредставлениеОтключенных.ДлинаКраткого <= 75 Тогда @@ -3560,7 +3566,7 @@ КонецЕсли; Если Представление.МаксимумПревышен Или ПредставлениеОтключенных.МаксимумПревышен Тогда - Если КоличествоПолучателей.Исключены > 0 Тогда + Если КоличествоПолучателей.Исключены <> Неопределено И КоличествоПолучателей.Исключены > 0 Тогда ШаблонОкончания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = '(всего %1, исключая %2)'"), КоличествоПолучателей.Всего, @@ -3577,9 +3583,9 @@ КонецФункции &НаСервереБезКонтекста -Функция КоличествоПолучателейСУчетомГрупп(Знач Получатели, Знач ИдентификаторОбъектаМетаданных) +Функция КоличествоПолучателейСУчетомГрупп(ПараметрыПолучателей) - Возврат Справочники.РассылкиОтчетов.КоличествоПолучателейСУчетомГрупп(Получатели, ИдентификаторОбъектаМетаданных); + Возврат Справочники.РассылкиОтчетов.КоличествоПолучателейСУчетомГрупп(ПараметрыПолучателей); КонецФункции @@ -4094,118 +4100,32 @@ &НаСервере Функция ПолучитьПервогоПолучателя() - + + ПараметрыПолучателей = РассылкаОтчетовКлиентСервер.ПараметрыПолучателей(); + ПараметрыПолучателей.Получатели = Объект.Получатели; + ПараметрыПолучателей.Автор = Объект.Автор; + ПараметрыПолучателей.Личная = Объект.Личная; + ПараметрыПолучателей.ТипПолучателейРассылки = Объект.ТипПолучателейРассылки; + ПараметрыПолучателей.ВидПочтовогоАдресаПолучателей = Объект.ВидПочтовогоАдресаПолучателей; + + СписокПолучателейРассылки = РассылкаОтчетов.СформироватьСписокПолучателейРассылки(ПараметрыПолучателей, Неопределено); + ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Объект.ТипПолучателейРассылки, Ложь); ТипПолучателей = Объект.ТипПолучателейРассылки.КлючОбъектаМетаданных.Получить(); - Запрос = Новый Запрос; - - Если ТипПолучателей = Тип("СправочникСсылка.Пользователи") Тогда - - ТекстЗапроса = - "ВЫБРАТЬ - | ТаблицаПолучателей.Получатель, - | ТаблицаПолучателей.Исключен - |ПОМЕСТИТЬ ТаблицаПолучателей - |ИЗ - | &ТаблицаПолучателей КАК ТаблицаПолучателей - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ - | Пользователь.Ссылка КАК Получатель, - | МАКСИМУМ(ТаблицаПолучателей.Исключен) КАК Исключен, - | Пользователи.Наименование - |ПОМЕСТИТЬ Получатели - |ИЗ - | ТаблицаПолучателей КАК ТаблицаПолучателей - | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей - | ПО СоставыГруппПользователей.ГруппаПользователей = ТаблицаПолучателей.Получатель - | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи - | ПО Пользователи.Ссылка = СоставыГруппПользователей.Пользователь - |ГДЕ - | НЕ Пользователи.ПометкаУдаления - | И НЕ Пользователи.Недействителен - | И НЕ Пользователи.Служебный - |СГРУППИРОВАТЬ ПО - | Пользователь.Ссылка, - | Пользователи.Наименование - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 - | Получатели.Получатель КАК Получатель, - | Получатели.Наименование КАК Наименование - |ИЗ - | Получатели КАК Получатели - |ГДЕ - | НЕ Получатели.Исключен - | - |УПОРЯДОЧИТЬ ПО - | Наименование"; - - Иначе - - ТекстЗапроса = - "ВЫБРАТЬ - | ТаблицаПолучателей.Получатель, - | ТаблицаПолучателей.Исключен - |ПОМЕСТИТЬ ТаблицаПолучателей - |ИЗ - | &ТаблицаПолучателей КАК ТаблицаПолучателей - |; - | - |//////////////////////////////////////////////////////////////////////////////// - |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 - | Получатели.Ссылка КАК Получатель, - | Получатели.Наименование КАК Наименование - |ИЗ - | Справочник.Пользователи КАК Получатели - |ГДЕ - | Получатели.Ссылка В ИЕРАРХИИ - | (ВЫБРАТЬ - | Получатель - | ИЗ - | ТаблицаПолучателей - | ГДЕ - | НЕ Исключен) - | И НЕ Получатели.ПометкаУдаления - | И &ЭтоНеГруппа - | - |УПОРЯДОЧИТЬ ПО - | Наименование"; - - Если Не ПолучателиМетаданные.Иерархический Тогда - // Не иерархический - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "В ИЕРАРХИИ", "В"); - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", ""); - ИначеЕсли ПолучателиМетаданные.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияЭлементов Тогда - // Иерархия элементов - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", ""); - Иначе - // Иерархия групп - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И &ЭтоНеГруппа", "И НЕ Получатели.ЭтоГруппа"); - КонецЕсли; - - ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Справочник.Пользователи", ПолучателиМетаданные.ПолноеИмя()); - - КонецЕсли; - - Запрос.УстановитьПараметр("ТаблицаПолучателей", Объект.Получатели.Выгрузить()); - Запрос.Текст = ТекстЗапроса; - ПервыйПолучатель = Новый Структура ("Наименование, Ссылка", "", Новый (ТипПолучателей)); - РезультатЗапроса = Запрос.Выполнить(); - Выборка = РезультатЗапроса.Выбрать(); - - Если Выборка.Следующий() Тогда - ПервыйПолучатель.Наименование = Выборка.Наименование; - ПервыйПолучатель.Ссылка = Выборка.Получатель; + Для Каждого Получатель Из СписокПолучателейРассылки Цикл + ПервыйПолучатель.Ссылка = Получатель.Ключ; + Прервать; + КонецЦикла; + + Если ЗначениеЗаполнено(ПервыйПолучатель.Ссылка) Тогда + ПервыйПолучатель.Наименование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПервыйПолучатель.Ссылка, "Наименование"); КонецЕсли; Возврат ПервыйПолучатель; - + КонецФункции &НаСервере diff --git a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl index cff358895..bf0e52d51 100644 --- a/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl +++ b/SSL/src/Catalogs/РассылкиОтчетов/ManagerModule.bsl @@ -292,21 +292,31 @@ КонецПроцедуры -Функция КоличествоПолучателейСУчетомГрупп(Знач Получатели, Знач ИдентификаторОбъектаМетаданных) Экспорт +Функция КоличествоПолучателейСУчетомГрупп(Знач ПараметрыПолучателей) Экспорт - КоличествоПолучателей = Новый Структура("Всего, Исключены", 0, 0); - - Если ИдентификаторОбъектаМетаданных = Неопределено Тогда + КоличествоПолучателей = Новый Структура("Всего, Исключены", 0, Неопределено); + + Если ПараметрыПолучателей.ТипПолучателейРассылки = Неопределено Тогда Возврат КоличествоПолучателей; КонецЕсли; - - ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ИдентификаторОбъектаМетаданных, Ложь); + + Запрос = Новый Запрос; + СписокПолучателей = Новый Соответствие; + РассылкаОтчетовПереопределяемый.ПередФормированиемСпискаПолучателейРассылки(ПараметрыПолучателей, Запрос, Истина, СписокПолучателей); + + Если ЗначениеЗаполнено(Запрос.Текст) Тогда + ПолучателиРассылки = РассылкаОтчетов.СформироватьСписокПолучателейРассылки(ПараметрыПолучателей, Неопределено); + КоличествоПолучателей.Всего = ПолучателиРассылки.Количество(); + Возврат КоличествоПолучателей; + КонецЕсли; + + ПолучателиМетаданные = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(ПараметрыПолучателей.ТипПолучателейРассылки, Ложь); Если ПолучателиМетаданные = Неопределено Или ПолучателиМетаданные = Null Тогда Возврат КоличествоПолучателей; КонецЕсли; - ТипПолучателей = ИдентификаторОбъектаМетаданных.КлючОбъектаМетаданных.Получить(); + ТипПолучателей = ПараметрыПолучателей.ТипПолучателейРассылки.КлючОбъектаМетаданных.Получить(); Запрос = Новый Запрос; @@ -439,7 +449,7 @@ КонецЕсли; - Запрос.УстановитьПараметр("ТаблицаПолучателей", Получатели.Выгрузить()); + Запрос.УстановитьПараметр("ТаблицаПолучателей", ПараметрыПолучателей.Получатели.Выгрузить()); Запрос.Текст = ТекстЗапроса; Попытка diff --git a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl index c34117124..a282c076a 100644 --- a/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl +++ b/SSL/src/Catalogs/РолиИсполнителей/Forms/ФормаСписка/Module.bsl @@ -45,7 +45,7 @@ | ПО ИсполнителиЗадач.РольИсполнителя = СправочникРолиИсполнителей.Ссылка |;"; - Если ПолучитьФункциональнуюОпцию("ИспользоватьВнешнихПользователей") Тогда + Если Не ПолучитьФункциональнуюОпцию("ИспользоватьВнешнихПользователей") Тогда ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ | СправочникРолиИсполнителей.Ссылка, @@ -78,7 +78,15 @@ Иначе - ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ + ТекстЗапроса = ТекстЗапроса + " + |ВЫБРАТЬ РАЗЛИЧНЫЕ + | РолиИсполнителейНазначение.Ссылка КАК Ссылка, + | РолиИсполнителейНазначение.ТипПользователей КАК ТипПользователей + |ПОМЕСТИТЬ РолиИсполнителейНазначение + |ИЗ + | Справочник.РолиИсполнителей.Назначение КАК РолиИсполнителейНазначение + |; + |ВЫБРАТЬ | СправочникРолиИсполнителей.Ссылка, | СправочникРолиИсполнителей.ПометкаУдаления, | СправочникРолиИсполнителей.Предопределенный, @@ -105,7 +113,7 @@ | СправочникРолиИсполнителей.ВнешняяРоль, | СправочникРолиИсполнителей.КраткоеПредставление |ИЗ - | Справочник.РолиИсполнителей.Назначение КАК РолиИсполнителейНазначение + | РолиИсполнителейНазначение КАК РолиИсполнителейНазначение | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РолиИсполнителей КАК СправочникРолиИсполнителей | ПО РолиИсполнителейНазначение.Ссылка = СправочникРолиИсполнителей.Ссылка |ГДЕ diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form index 486dbe762..4a3bf5e3c 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Form.form @@ -879,6 +879,20 @@ true true true + + СертификатПредставителя + + Сертификат + + + + ТолькоДействующие + + + true + + + Normal diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl index f8d4f1eb6..8b93d2241 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ПодписаниеДанных/Module.bsl @@ -623,6 +623,12 @@ &НаСервере Процедура ПодобратьДоверенность() + Если Не ЭтоАдресВременногоХранилища(СертификатАдрес) Тогда + Возврат; + КонецЕсли; + + // Локализация + Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда Возврат; КонецЕсли; @@ -636,7 +642,7 @@ ОтборДляДоверенностейПоСертификату = МодульМашиночитаемыеДоверенностиФНС.ОтборДляДоверенностейПоСертификату(СертификатКриптографии); ВыбранныеПоля = Новый Массив; ВыбранныеПоля.Добавить("МашиночитаемаяДоверенность"); - ВыбранныеПоля.Добавить("Представление"); + ВыбранныеПоля.Добавить("Наименование"); ВыбранныеПоля.Добавить("ДатаВыдачи"); Доверенности = МодульМашиночитаемыеДоверенностиФНС.ДоверенностиСОтбором(ОтборДляДоверенностейПоСертификату, ВыбранныеПоля); @@ -645,10 +651,12 @@ Элементы.МашиночитаемаяДоверенность.СписокВыбора.Очистить(); Для Каждого Строка Из Доверенности Цикл Элементы.МашиночитаемаяДоверенность.СписокВыбора.Добавить(Строка.МашиночитаемаяДоверенность, - СтрШаблон("%1, %2", Строка.Представление, Формат(Строка.ДатаВыдачи, "ДЛФ=D"))); + СтрШаблон("%1, %2", Строка.Наименование, Формат(Строка.ДатаВыдачи, "ДЛФ=D"))); КонецЦикла; МашиночитаемаяДоверенность = Элементы.МашиночитаемаяДоверенность.СписокВыбора[0].Значение; КонецЕсли; + + // Конец Локализация КонецПроцедуры diff --git a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form index d26174345..568d4c1fe 100644 --- a/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form +++ b/SSL/src/Catalogs/СертификатыКлючейЭлектроннойПодписиИШифрования/Forms/ФормаЭлемента/Form.form @@ -2448,6 +2448,7 @@ ПодобратьФизическоеЛицо + true Auto Auto diff --git a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo index b54a52460..bba42ab17 100644 --- a/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo +++ b/SSL/src/CommonAttributes/ОбластьДанныхОсновныеДанные/ОбластьДанныхОсновныеДанные.mdo @@ -370,6 +370,10 @@ ScheduledJob.ОбновлениеАгрегатов DontUse + + InformationRegister.КлассификаторыМЧД + DontUse + InformationRegister.ДополнительныеАдресныеСведения DontUse @@ -602,6 +606,10 @@ InformationRegister.СообщенияОбменаДаннымиОбластейДанных DontUse + + ScheduledJob.ОбновлениеКлассификаторовМЧД + DontUse + ScheduledJob.СборИОтправкаСтатистики DontUse diff --git a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl index 60b01e727..3a2f9cf6c 100644 --- a/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl +++ b/SSL/src/CommonForms/НастройкиЭлектроннойПодписиИШифрования/Module.bsl @@ -22,10 +22,9 @@ // Локализация - Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") - И (Пользователи.ЭтоПолноправныйПользователь() Или ПравоДоступа("Просмотр", Метаданные.Справочники.МашиночитаемыеДоверенности)) Тогда - Элементы.ОткрытьМашиночитаемыеДоверенности.Видимость = Истина; - Элементы.ОткрытьМашиночитаемыеДоверенности.Заголовок = Метаданные.Справочники["МашиночитаемыеДоверенности"].Синоним; + Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.МашиночитаемыеДоверенности") Тогда + МодульМашиночитаемыеДоверенностиФНССлужебный = ОбщегоНазначения.ОбщийМодуль("МашиночитаемыеДоверенностиФНССлужебный"); + МодульМашиночитаемыеДоверенностиФНССлужебный.ПриСозданииНаСервере(ЭтотОбъект); КонецЕсли; // Конец Локализация diff --git a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl index fea0fe601..11e1c5825 100644 --- a/SSL/src/CommonForms/ПечатьДокументов/Module.bsl +++ b/SSL/src/CommonForms/ПечатьДокументов/Module.bsl @@ -1541,12 +1541,12 @@ Для Каждого ФайлДляЗаписи Из Контекст.ФайлыВоВременномХранилище Цикл Вызов = Новый Массив; Вызов.Добавить("ЗапуститьПриложение"); - Вызов.Добавить(ПолученныйВременныйКаталог+ФайлДляЗаписи.Представление); + Вызов.Добавить(ПолученныйВременныйКаталог+ПолучитьРазделительПути()+ФайлДляЗаписи.Представление); Вызов.Добавить(); Вызов.Добавить(Ложь); Вызовы.Добавить(Вызов); - МассивПередаваемыхФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(ПолученныйВременныйКаталог+ФайлДляЗаписи.Представление, ФайлДляЗаписи.АдресВоВременномХранилище)); + МассивПередаваемыхФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(ПолученныйВременныйКаталог+ПолучитьРазделительПути()+ФайлДляЗаписи.Представление, ФайлДляЗаписи.АдресВоВременномХранилище)); КонецЦикла; Вызов = Новый Массив; diff --git a/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl b/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl index 4752b2f09..edebfccf4 100644 --- a/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl +++ b/SSL/src/CommonForms/РедактированиеДокументаOfficeOpen/Module.bsl @@ -332,6 +332,7 @@ Процедура ПоместитьВБуферОбмена(Команда) ДокументHTML = Элементы.ПолеHTML.Документ; + ДокументHTML.defaultView.value_to_copy = ПолучитьЗначениеТекущейСтроки(); Кнопка = ДокументHTML.getElementById("myb"); Если Кнопка = Неопределено Тогда ПоказатьПредупреждение(,НСтр("ru = 'Выберите поле объекта, оператор или функцию.'")); @@ -794,17 +795,18 @@ | | |