&НаКлиенте
Перем КонтекстЭДОКлиент Экспорт;
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РазобратьПараметры(Параметры);
Инициализация();
УправлениеФормой();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
ДокументооборотСКОКлиент.ПолучитьКонтекстЭДО(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
ОбработатьЗаписьМЧДФНС(ИмяСобытия, Параметр, Источник);
ОбработатьОтправкуМЧДФНС(ИмяСобытия, Параметр, Источник);
НачатьПоискМЧДФСС(ИмяСобытия, Параметр, Источник);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура РежимВыбора_ПриИзменении(Элемент)
ОбработкаЗаявленийАбонентаКлиентСервер.УстановитьМодифицированность(ЭтотОбъект);
ВладелецЭЦПЭтоФизЛицо = ХотятПриложитьМЧД(ЭтотОбъект);
ЗаполнитьМЧДВЗаявлении();
Если ВладелецЭЦПЭтоФизЛицо Тогда
ЗаполнитьТаблицуМЧД();
КонецЕсли;
УправлениеФормой();
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьСканНажатие(Элемент)
КонтекстЭДОКлиент.ОчиститьСканНажатие(ЭтотОбъект, Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СканОбработкаНавигационнойСсылки(Элемент, Действие, СтандартнаяОбработка)
ОбработкаЗаявленийАбонентаКлиентСервер.УдалитьМЧДИзФайлов(ЭтотОбъект);
ОписаниеОповещения = Новый ОписаниеОповещения();
КонтекстЭДОКлиент.ВыполнитьДействиеСФайлом(
ЭтотОбъект,
ОписаниеОповещения,
Элемент,
Действие,
СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормы
&НаКлиенте
Процедура ДоверенностиПередУдалением(Элемент, Отказ)
Если НЕ ЗначениеЗаполнено(Элемент.ТекущиеДанные.МЧД) Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДоверенностиПослеУдаления(Элемент)
ОбработкаЗаявленийАбонентаКлиентСервер.УстановитьМодифицированность(ЭтотОбъект);
ДоопределитьТаблицуМЧД();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗагрузитьМЧДФНС(Команда)
ОткрытьФорму(
"Справочник.МашиночитаемыеДоверенностиФНС.Форма.ФормаЗагрузкиИзФайла",,
ЭтаФорма,,,,,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьМЧДФСС(Команда)
КонтекстЭДОКлиент.ЗагрузитьМашиночитаемуюДоверенностьФСС();
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьМЧДЦБ(Команда)
Если ЗначениеЗаполнено(ИмяТипаМЧД_ЦБ) Тогда
ОткрытьФорму(
"Справочник." + ИмяТипаМЧД_ЦБ + ".Форма.ФормаЗагрузкиИзФайла",,
ЭтаФорма,,,,,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Сохранить(Команда)
ДобавитьМЧДВФайлыЗаявленияНаСервере();
ВыбранаКорректно = ДоверенностьВыбранаКорректно();
Если НЕ ВыбранаКорректно Тогда
Возврат;
КонецЕсли;
ДополнительныеПараметры = Новый Структура(ПараметрыФормы);
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ЭтотОбъект, ПараметрыФормы);
ДополнительныеПараметры.Вставить("ПараметрыФормы", ПараметрыФормы);
ДополнительныеПараметры.Вставить("Модифицированность", Модифицированность);
Модифицированность = Ложь;
Закрыть(ДополнительныеПараметры);
КонецПроцедуры
&НаКлиенте
Процедура ПомошникСоздания(Команда)
ПараметрыПомощникаМЧД =
"ВладелецЭЦП,
|Организация,
|ЗПЭД,
|СдаватьВФНС,
|СдаватьВРосстат,
|СдаватьВЦБ,
|СдаватьВПФР,
|СдаватьВФСС,
|ПодатьЗаявкуНаСертификатДляФСРАР,
|ПодатьЗаявкуНаПодключениеРПН,
|ПодатьЗаявкуНаПодключениеФТС";
ДополнительныеПараметры = Новый Структура(ПараметрыПомощникаМЧД);
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ЭтотОбъект, ПараметрыПомощникаМЧД);
ДополнительныеПараметры.Вставить("ПараметрыФормы", ПараметрыПомощникаМЧД);
ДополнительныеПараметры.Вставить("ЭтоВызовИзЗаявления", Истина);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПомошникСоздания_ПослеЗакрытия",
ЭтотОбъект);
ОткрытьФорму("Обработка.ДокументооборотСКонтролирующимиОрганами.Форма.ПомощникМЧД", ДополнительныеПараметры,,,,,ОписаниеОповещения);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура РазобратьПараметры(Параметры)
ПараметрыФормы = Параметры.ПараметрыФормы;
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, ПараметрыФормы);
ЭтоПолучениеНовогоСертификата = Параметры.ЭтоПолучениеНовогоСертификата;
ИспользуетсяСертификатФЛ = Параметры.ИспользуетсяСертификатФЛ;
ЕстьВыборМеждуМЧДиСканом = Параметры.ЕстьВыборМеждуМЧДиСканом;
КонецПроцедуры
&НаСервере
Функция ЗаполнитьМЧДВЗаявлении() Экспорт
ОбработкаЗаявленийАбонента.ЗаполнитьМЧДВЗаявлении(ЭтотОбъект);
КонецФункции
&НаКлиенте
Процедура ОбработатьОтправкуМЧДФНС(ИмяСобытия, Параметр, Источник)
ЭтоОтправкаМЧДФНС =
ИмяСобытия = "Завершение отправки"
И ТипЗнч(Параметр) = Тип("Структура")
И Параметр.Свойство("Ссылка")
И Параметр.Ссылка = ЗагруженнаяМЧДФНС;
Если ЭтоОтправкаМЧДФНС Тогда
ПослеВыбораДоверенности(Параметр.Ссылка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачатьПоискМЧДФСС(ИмяСобытия, Параметр, Источник)
ЭтоОтправкаМЧДФНС =
ИмяСобытия = "ЗагрузкаМЧДФСС"
И Параметр.Организация = Организация;
Если ЭтоОтправкаМЧДФНС Тогда
НомерМЧДФСС = Параметр.НомерДоверенности;
Если ЗначениеЗаполнено(НомерМЧДФСС) Тогда
ПодключитьОбработчикОжидания("Подключаемый_ПолучитьМЧДФСС", 1, Ложь);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолучитьМЧДФСС()
МЧД = МЧДФССПоНомеру();
Если ЗначениеЗаполнено(МЧД) Тогда
ОтключитьОбработчикОжидания("Подключаемый_ПолучитьМЧДФСС");
ПослеВыбораДоверенности(МЧД);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция МЧДФССПоНомеру()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| МЧД.Ссылка КАК МЧД
|ИЗ
| Справочник.МашиночитаемыеДоверенностиФСС КАК МЧД
|ГДЕ
| МЧД.НомерДоверенности = &НомерДоверенности
| И МЧД.ПометкаУдаления = Ложь";
Запрос.УстановитьПараметр("НомерДоверенности", НомерМЧДФСС);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.МЧД;
КонецЕсли;
Возврат Неопределено;
КонецФункции
&НаКлиенте
Процедура ОбработатьЗаписьМЧДФНС(ИмяСобытия, Параметр, Источник)
ЭтоЗаписьМЧДФНС =
ИмяСобытия = "Запись_МашиночитаемыеДоверенностиФНС"
И ТипЗнч(Источник) = Тип("СправочникСсылка.МашиночитаемыеДоверенностиФНС");
Если ЭтоЗаписьМЧДФНС Тогда
ЗагруженнаяМЧДФНС = Источник;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ДоверенностьВыбранаКорректно()
Виды = Новый Структура;
ОбработкаЗаявленийАбонентаКлиентСервер.ВидыДокументовВЗаявлении_ДобавитьДоверенность(Виды, ЭтотОбъект);
Описание = Виды[ВидДоверенность];
УказаныКорректно = Истина;
КонтекстЭДОКлиент.ПроверитьСканДокумента(ЭтотОбъект, УказаныКорректно, Описание, ВидДоверенность);
Возврат УказаныКорректно;
КонецФункции
&НаСервере
Процедура Инициализация()
ЭтоРежимОблачной1СО = ДокументооборотСКОПовтИсп.ЭтоРежимОблачной1СО();
ПодсистемаЦПРРМЧДСуществует = ДокументооборотСКОКлиентСервер.ПодсистемаЦПРРМЧДСуществует();
СканированиеДоступно = Ложь;
ВидДоверенность = "Доверенность";
ЗаполнитьТаблицуМЧД();
УстановитьПереключатель();
ИмяТипаМЧД_ЦБ = "";
Если ДокументооборотСКОКлиентСервер.ПодсистемаЦБСуществует() Тогда
ИмяТипаМЧД_ЦБ = "МашиночитаемыеДоверенностиЦБ";
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПереключатель()
Если НЕ ЕстьВыборМеждуМЧДиСканом И НЕ ВладелецЭЦПЭтоФизЛицо Тогда
ВладелецЭЦПЭтоФизЛицо = Истина;
РежимВыбораДоверености = "МЧД";
ИначеЕсли ВладелецЭЦПЭтоФизЛицо Тогда
РежимВыбораДоверености = "МЧД";
Иначе
РежимВыбораДоверености = ВидДоверенность;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьТаблицуМЧД()
Для каждого Строка Из ФайлыДокументов Цикл
Свойства = Строка.Значение;
Пропустить =
Свойства.Документ <> ВидДоверенность
ИЛИ НЕ Свойства.Свойство("МЧД")
ИЛИ Свойства.Свойство("МЧД") И НЕ ЗначениеЗаполнено(Свойства.МЧД);
Если Пропустить Тогда
Продолжить;
КонецЕсли;
МЧД = Свойства.МЧД;
Отбор = Новый Структура();
Отбор.Вставить("МЧД", МЧД);
НайденныеСтроки = Доверенности.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() = 0 Тогда
СтрокаТаблицы = Доверенности.Добавить();
СтрокаТаблицы.МЧД = МЧД;
ДополнитьСтроку(СтрокаТаблицы, Свойства)
Иначе
СтрокаТаблицы = НайденныеСтроки[0];
ДополнитьСтроку(СтрокаТаблицы, Свойства);
КонецЕсли;
КонецЦикла;
ДоопределитьТаблицуМЧД();
КонецПроцедуры
&НаСервере
Функция ПредставленияМЧД(МЧДs)
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЖурналОтправокВКонтролирующиеОрганы.Наименование КАК Наименование,
| ЖурналОтправокВКонтролирующиеОрганы.Ссылка КАК Ссылка
|ИЗ
| РегистрСведений.ЖурналОтправокВКонтролирующиеОрганы КАК ЖурналОтправокВКонтролирующиеОрганы
|ГДЕ
| ЖурналОтправокВКонтролирующиеОрганы.Ссылка В(&МЧДs)";
Запрос.УстановитьПараметр("МЧДs", МЧДs);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Представления = Новый СписокЗначений;
Пока Выборка.Следующий() Цикл
Представления.Добавить(Выборка.Ссылка, Выборка.Наименование);
КонецЦикла;
Возврат Представления;
КонецФункции
&НаСервере
Процедура ДоопределитьТаблицуМЧД()
ИмяТипаСправочникаМашиночитаемыеДоверенности = "МашиночитаемыеДоверенности";
ИмяТипаСправочникаМашиночитаемыеДоверенностиЦБ = "МашиночитаемыеДоверенностиЦБ";
МЧДs = Доверенности.Выгрузить().ВыгрузитьКолонку("МЧД");
Представления = ПредставленияМЧД(МЧДs);
Для каждого Строка Из Доверенности Цикл
МЧД = Строка.МЧД;
Если НЕ ЗначениеЗаполнено(МЧД) ИЛИ ЗначениеЗаполнено(Строка.Орган) Тогда
Продолжить;
КонецЕсли;
Строка.ПредставлениеМЧД = Представления.НайтиПоЗначению(МЧД);
Если ТипЗнч(МЧД) = Тип("СправочникСсылка.МашиночитаемыеДоверенностиФНС")
ИЛИ ТипЗнч(МЧД) = Тип("СправочникСсылка.МашиночитаемыеДоверенностиРаспределенныйРеестр") Тогда
Строка.Орган = НСтр("ru = 'ФНС'");
Строка.Приоритет = 1;
ИначеЕсли ТипЗнч(МЧД) = Тип("ДокументСсылка.УведомлениеОПредоставленииПолномочийПредставителю") Тогда
Строка.Орган = НСтр("ru = 'СФР (бывш. ПФР)'");
Строка.Приоритет = 3;
ИначеЕсли ТипЗнч(МЧД) = Тип("СправочникСсылка.МашиночитаемыеДоверенностиФСС") Тогда
Строка.Орган = НСтр("ru = 'СФР (бывш. ФСС)'");
Строка.Приоритет = 4;
ИначеЕсли ПодсистемаЦПРРМЧДСуществует
И ТипЗнч(МЧД) = Тип("СправочникСсылка." + ИмяТипаСправочникаМашиночитаемыеДоверенности) Тогда
Органы = МЧДБРО.ОрганыМЧДЕФ(МЧД);
Если Органы.ДляФСРАР Тогда
СкопироватьСтроку(НСтр("ru = 'ФСРАР'"), МЧД, 5, Строка);
КонецЕсли;
Если Органы.ДляФТС Тогда
СкопироватьСтроку(НСтр("ru = 'ФТС'"), МЧД, 6, Строка);
КонецЕсли;
Если Органы.ДляРосстата Тогда
СкопироватьСтроку(НСтр("ru = 'Росстат'"), МЧД, 2, Строка);
КонецЕсли;
Если Органы.ДляРПН Тогда
СкопироватьСтроку(НСтр("ru = 'РПН'"), МЧД, 7, Строка);
КонецЕсли;
Если Органы.ДляФСРАР ИЛИ Органы.ДляФТС ИЛИ Органы.ДляРосстата ИЛИ Органы.ДляРПН Тогда
Доверенности.Удалить(Строка);
Иначе
Строка.Орган = НСтр("ru = 'Единого формата'");
Строка.Приоритет = 6;
КонецЕсли;
ИначеЕсли ДокументооборотСКОКлиентСервер.ПодсистемаЦБСуществует()
И ТипЗнч(МЧД) = Тип("СправочникСсылка." + ИмяТипаСправочникаМашиночитаемыеДоверенностиЦБ) Тогда
Строка.Орган = НСтр("ru = 'Банк России'");
Строка.Приоритет = 8;
КонецЕсли;
КонецЦикла;
ДобавитьНедостающиеОрганы();
Доверенности.Сортировать("Орган, МЧД");
КонецПроцедуры
&НаСервере
Процедура СкопироватьСтроку(Орган, МЧД, Приоритет, СтрокаДонор)
Отбор = Новый Структура();
Отбор.Вставить("Орган", Орган);
Отбор.Вставить("МЧД", МЧД);
Если Доверенности.НайтиСтроки(Отбор).Количество() = 0 Тогда
Строка2 = Доверенности.Добавить();
ЗаполнитьЗначенияСвойств(Строка2, СтрокаДонор);
Строка2.Орган = Орган;
Строка2.Приоритет = Приоритет;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ДобавитьНедостающиеОрганы()
ДобавитьНедостающийОрган("СдаватьВФНС", НСтр("ru = 'ФНС'"));
ДобавитьНедостающийОрган("СдаватьВРосстат", НСтр("ru = 'Росстат'"));
ДобавитьНедостающийОрган("СдаватьВПФР", НСтр("ru = 'СФР (бывш. ПФР)'"));
ДобавитьНедостающийОрган("СдаватьВФСС", НСтр("ru = 'СФР (бывш. ФСС)'"));
ДобавитьНедостающийОрган("СдаватьВЦБ", НСтр("ru = 'Банк России'"));
ДобавитьНедостающийОрган("ПодатьЗаявкуНаПодключениеФТС", НСтр("ru = 'ФТС'"));
ДобавитьНедостающийОрган("ПодатьЗаявкуНаСертификатДляФСРАР", НСтр("ru = 'ФСРАР'"));
ДобавитьНедостающийОрган("ПодатьЗаявкуНаПодключениеРПН", НСтр("ru = 'РПН'"));
КонецПроцедуры
&НаСервере
Процедура ДобавитьНедостающийОрган(ИмяРеквизита, Орган)
Если НЕ ЭтотОбъект[ИмяРеквизита] Тогда
Возврат;
КонецЕсли;
Отбор = Новый Структура();
Отбор.Вставить("Орган", Орган);
Количество = Доверенности.НайтиСтроки(Отбор).Количество();
Если Количество = 0 Тогда
Строка = Доверенности.Добавить();
Строка.Орган = Орган;
ИначеЕсли Количество > 1 Тогда
Отбор.Вставить("ПредставлениеМЧД", "");
СтрокиКУдалению = Доверенности.НайтиСтроки(Отбор);
Если СтрокиКУдалению.Количество() > 0 Тогда
Доверенности.Удалить(СтрокиКУдалению[0]);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораДоверенности(МЧД, ВходящийКонтекст = Неопределено) Экспорт
Если МЧД = Неопределено Тогда
Возврат;
КонецЕсли;
ВыбранаКорректно = ЭтоМЧД(МЧД) И НЕ МЧДУжеДобавлена(МЧД);
Если НЕ ВыбранаКорректно Тогда
Возврат;
КонецЕсли;
Результат = ОбработкаЗаявленийАбонентаВызовСервера.ПолучитьФайлыМЧД(МЧД, ВладелецЭЦПИНН, ВладелецЭЦПСНИЛС);
Если НЕ Результат.Выполнено Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(Результат.ТекстОшибки);
Возврат;
КонецЕсли;
ОбработкаЗаявленийАбонентаКлиентСервер.УстановитьМодифицированность(ЭтотОбъект);
НоваяСтрока = Доверенности.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Результат.Доверенность);
ДоопределитьТаблицуМЧД();
КонецПроцедуры
&НаКлиенте
Функция МЧДУжеДобавлена(МЧД) Экспорт
Отбор = Новый Структура();
Отбор.Вставить("МЧД", МЧД);
НайденныеСтроки = Доверенности.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
Текст = НСтр("ru = 'Данная доверенность уже есть в списке'");
ПоказатьПредупреждение(, Текст);
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
&НаСервере
Функция ЭтоМЧД(МЧД) Экспорт
ЭтоМЧД = Метаданные.ОпределяемыеТипы.МашиночитаемыеДоверенностиБРО.Тип.СодержитТип(ТипЗнч(МЧД));
Если НЕ ЭтоМЧД Тогда
Текст = НСтр("ru = 'Документ ""%1"" не может быть выбран, поскольку не является машиночитаемой доверенностью'");
Текст = СтрШаблон(Текст, Строка(МЧД));
ОбщегоНазначения.СообщитьПользователю(Текст);
КонецЕсли;
Возврат ЭтоМЧД;
КонецФункции
&НаКлиенте
Процедура ДоверенностиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущаяСтрока = Элементы.Доверенности.ТекущаяСтрока;
Если ТекущаяСтрока <> Неопределено Тогда
ТекущиеДанные = Элементы.Доверенности.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущиеДанные.МЧД) Тогда
ПоказатьЗначение(,ТекущиеДанные.МЧД);
Иначе
ПоказатьПредупреждение(, НСтр("ru = 'Добавьте МЧД одной из кнопок'"));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДоверенностиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Отказ = Истина;
ОписаниеОповещения = Новый ОписаниеОповещения(
"ПослеВыбораДоверенности",
ЭтотОбъект);
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("ЭтоРежимВыбора", Истина);
ДополнительныеПараметры.Вставить("Раздел", ПредопределенноеЗначение("Перечисление.СтраницыЖурналаОтчетность.Уведомления"));
ДополнительныеПараметры.Вставить("Организация", Организация);
ОткрытьФорму(
"ОбщаяФорма.РегламентированнаяОтчетность",
ДополнительныеПараметры,
,
Новый УникальныйИдентификатор,
,
,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Оповестить("Открытие формы 1С-Отчетность", ДополнительныеПараметры);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытииЗавершение(Результат, ДополнительныеПараметры) Экспорт
КонтекстЭДОКлиент = Результат.КонтекстЭДО;
КонецПроцедуры
&НаСервере
Процедура ДополнитьСтроку(Строка, Свойства)
Если Свойства.Свойство("ЭтоМЧД") И Свойства.ЭтоМЧД Тогда
Строка.ИмяМЧД = Свойства.ИсходноеИмя;
Строка.АдресМЧД = Свойства.Адрес;
Строка.РазмерМЧД = Свойства.Размер;
ИначеЕсли Свойства.Свойство("ЭтоПодписьКМЧД") И Свойства.ЭтоПодписьКМЧД Тогда
Строка.ИмяПодписи = Свойства.ИсходноеИмя;
Строка.АдресПодписи = Свойства.Адрес;
Строка.РазмерПодписи = Свойства.Размер;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ХотятПриложитьМЧД(Форма)
Возврат Форма.РежимВыбораДоверености = "МЧД";
КонецФункции
&НаСервере
Процедура УправлениеФормой()
УправлениеФормойПриПереключенииРежима();
СкрытьВозможностьПриложитьСкан();
ИзменитьОформлениеСкана();
УправлениеФормойПриЗапретеИзменений();
ИзменитьОформлениеПодсказки();
Элементы.ДоверенностиЗагрузитьМЧДЦБ.Видимость = ДокументооборотСКОКлиентСервер.ПодсистемаЦБСуществует();
УправлениеФормой_ВРежимеОблачной1СО();
КонецПроцедуры
&НаСервере
Процедура УправлениеФормой_ВРежимеОблачной1СО()
Элементы.Пояснение_О1СО.Видимость = ЭтоРежимОблачной1СО;
Элементы.Пояснение.ОтображениеПодсказки = ?(ЭтоРежимОблачной1СО, ОтображениеПодсказки.Нет, ОтображениеПодсказки.Кнопка);
Элементы.ДоверенностиГруппаЗагрузить.Видимость = НЕ ЭтоРежимОблачной1СО;
КонецПроцедуры
&НаСервере
Процедура ИзменитьОформлениеПодсказки()
Если ЭтоРежимОблачной1СО Тогда
Текст = НСтр("ru = 'Для подтверждения полномочий представителя %1 добавьте хотя бы одну МЧД любого гос. органа.'");
Иначе
ИспользоватьСуществующий = СпособПолученияСертификата = ПредопределенноеЗначение("Перечисление.СпособПолученияСертификата.ИспользоватьСуществующий");
ЭтоИП = НЕ ЭтоЮридическоеЛицо;
Текст = НСтр("ru = 'Доверенность должна быть зарегистрирована, быть действующей и подтверждать полномочия сотрудника %1.'");
Если НЕ ЕстьВыборМеждуМЧДиСканом Тогда
ВыИспользуете = НСтр("ru = 'Поскольку вы используете '");
ВыПланируете = НСтр("ru = 'Поскольку вы планируете использовать '");
БудетВыдан = НСтр("ru = 'Поскольку вам будет выдан '");
Сертификат = НСтр("ru = 'сертификат физического лица, не содержащий реквизитов организации'");
ФЗ = НСтр("ru = ', в соответствии с ФЗ от 27.12.2019 N 476-ФЗ'");
Концовка = НСтр("ru = ', для подтверждения полномочий сотрудника %1 необходимо приложить хотя бы одну МЧД любого гос. органа.'");
Если ЭтоИП И ЭтоПолучениеНовогоСертификата Тогда
Текст = БудетВыдан + Сертификат + ФЗ + Концовка;
ИначеЕсли ИспользоватьСуществующий Тогда
Текст = ВыПланируете + Сертификат + ФЗ + Концовка;
ИначеЕсли НЕ ЭтоПолучениеНовогоСертификата Тогда
Текст = ВыИспользуете + Сертификат + ФЗ + Концовка;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ФамилияИО = ДокументооборотСКОКлиентСервер.ФамилияИнициалы(ВладелецЭЦПФамилия, ВладелецЭЦПИмя, ВладелецЭЦПОтчество);
Текст = СтрШаблон(Текст, ФамилияИО);
Элементы.Пояснение.Заголовок = ОбработкаФайловPDF.ЗаменитьДвойныеПробелы(Текст);
КонецПроцедуры
&НаСервере
Процедура УправлениеФормойПриПереключенииРежима()
ЭтоВыборМЧД = ХотятПриложитьМЧД(ЭтотОбъект);
Элементы.Доверенности.Доступность = ЭтоВыборМЧД;
Элементы.ГруппаФайловДоверенности.Доступность = НЕ ЭтоВыборМЧД;
КонецПроцедуры
&НаСервере
Процедура УправлениеФормойПриЗапретеИзменений()
КоманднаяПанель.Видимость = НЕ ЗапретитьИзменение;
Элементы.Доверенности.КоманднаяПанель.Видимость = НЕ ЗапретитьИзменение;
Элементы.ГруппаДоверенность.Доступность = НЕ ЗапретитьИзменение;
Элементы.ГруппаМЧД.Доступность = НЕ ЗапретитьИзменение;
КонецПроцедуры
&НаСервере
Процедура СкрытьВозможностьПриложитьСкан()
Элементы.ГруппаДоверенность.Видимость = ЕстьВыборМеждуМЧДиСканом;
Элементы.РежимВыбора_МЧД.Видимость = ЕстьВыборМеждуМЧДиСканом;
Элементы.Отступ.Видимость = ЕстьВыборМеждуМЧДиСканом;
КонецПроцедуры
&НаСервере
Процедура ИзменитьОформлениеСкана()
Размер = 0;
Количество = 0;
ИмяПервого = "";
Для каждого ФайлДокумента Из ФайлыДокументов Цикл
ФайлДокумента = ФайлДокумента.Значение;
ЭтоМЧД = ОбработкаЗаявленийАбонентаКлиентСервер.ЭтоМЧД(ФайлДокумента);
Если ФайлДокумента.Документ = ВидДоверенность И НЕ ЭтоМЧД Тогда
Размер = Размер + ФайлДокумента.Размер;
ИмяПервого = ФайлДокумента.ИсходноеИмя;
Количество = Количество + 1;
КонецЕсли;
КонецЦикла;
ДокументооборотСКОКлиентСервер.ИзменитьОформлениеДокумента(
ЭтотОбъект,
ВидДоверенность,
Размер,
Количество,
ИмяПервого);
КонецПроцедуры
&НаСервере
Процедура ДобавитьМЧДВФайлыЗаявленияНаСервере()
ДоверенностиБезДублей = Доверенности.Выгрузить();
ДоверенностиБезДублей.Колонки.Удалить("Орган");
ДоверенностиБезДублей.Колонки.Удалить("Приоритет");
ДоверенностиБезДублей.Колонки.Удалить("Жирным");
ДоверенностиБезДублей.Колонки.Удалить("ПредставлениеМЧД");
ДоверенностиБезДублей.Свернуть("МЧД, ИмяМЧД, АдресМЧД, АдресПодписи, ИмяПодписи, РазмерМЧД, РазмерПодписи");
ОбработкаЗаявленийАбонентаКлиентСервер.ДобавитьМЧДВФайлыЗаявления(ЭтотОбъект, ДоверенностиБезДублей);
КонецПроцедуры
&НаКлиенте
Процедура ПомошникСоздания_ПослеЗакрытия(СозданныеДокументы, ВходящийКонтекст) Экспорт
Если СозданныеДокументы = Неопределено Тогда
Возврат;
КонецЕсли;
ОбработкаЗаявленийАбонентаКлиентСервер.УстановитьМодифицированность(ЭтотОбъект);
Для каждого Ссылка Из СозданныеДокументы Цикл
Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.ЗаявленияПоЭлДокументооборотуСПФР") Тогда
ЗПЭД = Ссылка;
Иначе
ПослеВыбораДоверенности(Ссылка);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти