#Область ОписаниеПеременных
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИнициализироватьЗначения(Параметры);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ИзменитьОформлениеФормы();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура СертификатПредставителяПредставлениеНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ЭтоЭлектроннаяПодписьВМоделиСервиса = Неопределено Тогда
ЭтоЭлектроннаяПодписьВМоделиСервиса =
ЭлектроннаяПодписьВМоделиСервисаБРОВызовСервера.ЭтоЭлектроннаяПодписьВМоделиСервиса(Организация);
КонецЕсли;
Оповещение = Новый ОписаниеОповещения(
"СертификатПредставителяПредставлениеНачалоВыбораПослеВыбора", ЭтотОбъект, Новый Структура("Элемент", Элемент));
КриптографияЭДКОКлиент.ВыбратьСертификат(
Оповещение, ЭтоЭлектроннаяПодписьВМоделиСервиса, Представитель_ИдентификаторСертификата, "AddressBook");
КонецПроцедуры
&НаКлиенте
Процедура НомерРодительскойДоверенностиФССНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОписаниеОповещения = Новый ОписаниеОповещения("НомерРодительскойДоверенностиФССНачалоВыбораПослеВыбора", ЭтотОбъект);
ОткрытьФорму(
"Справочник.МашиночитаемыеДоверенностиФСС.ФормаВыбора",
Новый Структура("ТекущаяСтрока", РодительскаяДоверенность),
ЭтаФорма,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура НомерРодительскойДоверенностиФССОчистка(Элемент, СтандартнаяОбработка)
РодительскаяДоверенностьФСС = Неопределено;
КонецПроцедуры
&НаКлиенте
Процедура НомерКорневойДоверенностиОчистка(Элемент, СтандартнаяОбработка)
РодительскаяДоверенность = Неопределено;
КонецПроцедуры
&НаКлиенте
Процедура НомерКорневойДоверенностиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеОповещения = Новый ОписаниеОповещения("НомерКорневойДоверенностиНачалоВыбораПослеВыбора", ЭтотОбъект);
ОткрытьФорму(
"Справочник.МашиночитаемыеДоверенностиФНС.ФормаВыбора",
Новый Структура("ТекущаяСтрока, ПередовериеВозможно", КорневаяДоверенность, Истина),
ЭтаФорма,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ПредставительСертификатПриИзменении(Элемент)
Если НЕ ПредставительСертификат Тогда
Представитель_ИдентификаторСертификата = "";
Представитель_СертификатBase64 = "";
КонецЕсли;
ИзменитьОформлениеФормы();
КонецПроцедуры
&НаКлиенте
Процедура ВыданаОбособкеПриИзменении(Элемент)
Если НЕ ВыданаОбособке Тогда
КППОбособки = "";
КонецЕсли;
ИзменитьОформлениеФормы();
КонецПроцедуры
&НаКлиенте
Процедура НомерРодительскойДоверенностиНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеОповещения = Новый ОписаниеОповещения("НомерРодительскойДоверенностиНачалоВыбораПослеВыбора", ЭтотОбъект);
ОткрытьФорму(
"Справочник.МашиночитаемыеДоверенностиФНС.ФормаВыбора",
Новый Структура("ТекущаяСтрока, ПередовериеВозможно", РодительскаяДоверенность, Истина),
ЭтаФорма,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура НомерРодительскойДоверенностиОткрытие(Элемент, СтандартнаяОбработка)
Если ЗначениеЗаполнено(РодительскаяДоверенность) Тогда
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, РодительскаяДоверенность);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияНалоговыеОрганыДействияНажатие(Элемент)
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Организация", Организация);
СтруктураДанных.Вставить("КодыНалоговыхОргановДействия", Новый Массив);
Для каждого НалоговыйОрганДействия Из НалоговыеОрганыДействия Цикл
СтруктураДанных.КодыНалоговыхОргановДействия.Добавить(НалоговыйОрганДействия);
КонецЦикла;
СтруктураДанных.Вставить("ТолькоПросмотрФормы", Ложь);
ОписаниеОповещения = Новый ОписаниеОповещения("ДекорацияНалоговыеОрганыДействияНажатиеПослеВвода", ЭтотОбъект);
ОткрытьФорму(
"Справочник.МашиночитаемыеДоверенностиФНС.Форма.ФормаВводаНалоговыхОрганов",
Новый Структура("СтруктураДанных", СтруктураДанных),
ЭтаФорма,,,,
ОписаниеОповещения,
РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормы
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Сохранить(Команда)
ДополнительныеПараметры = Новый Структура(ПараметрыФормы);
ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ЭтотОбъект, ПараметрыФормы);
ДополнительныеПараметры.Вставить("ПараметрыФормы", ПараметрыФормы);
ДополнительныеПараметры.Вставить("Модифицированность", Модифицированность);
Модифицированность = Ложь;
Закрыть(ДополнительныеПараметры);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ДекорацияНалоговыеОрганыДействияНажатиеПослеВвода(
СтруктураДанных,
ДополнительныеПараметры) Экспорт
Если СтруктураДанных = Неопределено Тогда
Возврат;
КонецЕсли;
НалоговыеОрганыДействия = Новый ФиксированныйМассив(СтруктураДанных.КодыНалоговыхОргановДействия);
Модифицированность = Истина;
ИзменитьОформлениеНалоговыеОрганыДействия();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьОформлениеФормы()
Элементы.ГруппаВыданаОбособке.Видимость = СоздатьМЧДФНС ИЛИ СоздатьМЧДСФР;
ИзменитьОформлениеГруппыФНС();
ИзменитьОформлениеМЧДЕдиногоФормата();
ИзменитьОформлениеМЧДСФР();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьОформлениеГруппыФНС()
Элементы.ГруппаФНС.Видимость = СоздатьМЧДФНС;
Если НЕ СоздатьМЧДФНС Тогда
Возврат;
КонецЕсли;
ИзменитьОформлениеНалоговыеОрганыДействия();
ИзменитьВыданаОбособке();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьОформлениеМЧДЕдиногоФормата()
Элементы.ГруппаМЧДЕдиногоФормата.Видимость = СоздатьМЧД_ЕФ(ЭтотОбъект);
Если НЕ СоздатьМЧД_ЕФ(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
ПодстрокиМЧД = Новый Массив;
Если СоздатьМЧДРосстат Тогда
ПодстрокиМЧД.Добавить("Росстата");
КонецЕсли;
Если СоздатьМЧДФСРАР Тогда
ПодстрокиМЧД.Добавить("ФСРАР");
КонецЕсли;
Если СоздатьМЧДФТС Тогда
ПодстрокиМЧД.Добавить("ФТС");
КонецЕсли;
Если СоздатьМЧДРПН Тогда
ПодстрокиМЧД.Добавить("РПН");
КонецЕсли;
ПодстрокиМЧД = СтрСоединить(ПодстрокиМЧД, ", ");
Текст = НСтр("ru = 'МЧД для %1 (единого формата):'");
Текст = СтрШаблон(Текст, ПодстрокиМЧД);
Элементы.ГруппаМЧДЕдиногоФормата.Заголовок = Текст;
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьОформлениеМЧДСФР()
Элементы.ГруппаМЧДФСС.Видимость = СоздатьМЧДСФР;
Элементы.ГруппаМЧДПФР.Видимость = СоздатьМЧДСФР;
Если НЕ СоздатьМЧДСФР Тогда
Возврат;
КонецЕсли;
Элементы.СертификатПредставителяПредставление.Доступность = ПредставительСертификат;
Если ПредставительСертификат И ЗначениеЗаполнено(Представитель_ИдентификаторСертификата) Тогда
Если ЭтоЭлектроннаяПодписьВМоделиСервиса = Неопределено Тогда
ЭтоЭлектроннаяПодписьВМоделиСервиса =
ЭлектроннаяПодписьВМоделиСервисаБРОВызовСервера.ЭтоЭлектроннаяПодписьВМоделиСервиса(Организация);
КонецЕсли;
ПараметрыОтображенияСертификатов = Новый Массив;
ПараметрыОтображенияСертификата = Новый Структура;
ПараметрыОтображенияСертификата.Вставить("ПолеВвода", Элементы.СертификатПредставителяПредставление);
ПараметрыОтображенияСертификата.Вставить("Сертификат", Представитель_ИдентификаторСертификата);
ПараметрыОтображенияСертификата.Вставить("ИмяРеквизитаПредставлениеСертификата", "СертификатПредставителяПредставление");
ПараметрыОтображенияСертификатов.Добавить(ПараметрыОтображенияСертификата);
КриптографияЭДКОКлиент.ОтобразитьПредставленияСертификатов(
ПараметрыОтображенияСертификатов,
ЭтотОбъект,
ЭтоЭлектроннаяПодписьВМоделиСервиса);
Иначе
СертификатПредставителяПредставление = НСтр("ru = 'Выбрать'");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ИзменитьОформлениеНалоговыеОрганыДействия()
КоличествоНалоговыхОргановДействия = НалоговыеОрганыДействия.Количество();
Если КоличествоНалоговыхОргановДействия = 0 Тогда
Элементы.ДекорацияНалоговыеОрганыДействия.Заголовок = НСтр("ru = 'Все ИФНС'");
ИначеЕсли КоличествоНалоговыхОргановДействия = 1 Тогда
Элементы.ДекорацияНалоговыеОрганыДействия.Заголовок = НалоговыеОрганыДействия[0];
Иначе
Элементы.ДекорацияНалоговыеОрганыДействия.Заголовок =
НалоговыеОрганыДействия[0]
+ ", " + НалоговыеОрганыДействия[1] + ?(КоличествоНалоговыхОргановДействия > 2,
" " + СтрШаблон(
НСтр("ru = 'и еще %1'"),
Формат(КоличествоНалоговыхОргановДействия - 2, "ЧДЦ=; ЧН=; ЧГ=")), "");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ИзменитьВыданаОбособке()
Элементы.КППОбособки.Доступность = ВыданаОбособке;
КонецПроцедуры
&НаСервере
Процедура ИнициализироватьЗначения(Параметры)
ПараметрыФормы = Параметры.ПараметрыФормы;
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, ПараметрыФормы);
Если НЕ ЗначениеЗаполнено(НалоговыеОрганыДействия) Тогда
НалоговыеОрганыДействия = Новый ФиксированныйМассив(Новый Массив);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ПередовериеМЧДЕдиногоФормата) Тогда
ПередовериеМЧДЕдиногоФормата = НСтр("ru = 'Без передоверия'");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НомерРодительскойДоверенностиНачалоВыбораПослеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
РеквизитыРодительскойДоверенности = ЗначенияРеквизитовМЧД(Результат, Истина);
Если Результат <> Неопределено И НЕ РеквизитыРодительскойДоверенности.ПередовериеВозможно Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Для выбранной машиночитаемой доверенности передоверие запрещено.'"));
Возврат;
КонецЕсли;
НомерРодительскойДоверенности = РеквизитыРодительскойДоверенности.РегистрационныйНомерДоверенности;
РодительскаяДоверенность = Результат;
Если ЗначениеЗаполнено(РеквизитыРодительскойДоверенности.НомерКорневойДоверенности) Тогда
НомерКорневойДоверенности = РеквизитыРодительскойДоверенности.НомерКорневойДоверенности;
КорневаяДоверенность = РеквизитыРодительскойДоверенности.КорневаяДоверенность;
Иначе
НомерКорневойДоверенности = РеквизитыРодительскойДоверенности.РегистрационныйНомерДоверенности;
КорневаяДоверенность = Результат;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЗначенияРеквизитовМЧД(СсылкаНаОбъект, ПрочитатьКорневуюМЧД = Ложь)
Возврат Справочники.МашиночитаемыеДоверенностиФНС.ЗначенияРеквизитовМЧД(СсылкаНаОбъект, ПрочитатьКорневуюМЧД = Ложь);
КонецФункции
&НаКлиенте
Процедура СертификатПредставителяПредставлениеНачалоВыбораПослеВыбора(Результат, ДополнительныеПараметры) Экспорт
Элемент = ДополнительныеПараметры.Элемент;
Если Результат.Выполнено Тогда
Представитель_ИдентификаторСертификата = Результат.ВыбранноеЗначение.Отпечаток;
КриптографияЭДКОКлиент.ОтобразитьПредставлениеСертификата(
ЭтоЭлектроннаяПодписьВМоделиСервиса,
Элемент,
Результат.ВыбранноеЗначение.Отпечаток,
ЭтотОбъект,
"СертификатПредставителяПредставление");
Модифицированность = Истина;
Оповещение = Новый ОписаниеОповещения("СертификатПредставителяПредставлениеНачалоВыбораПослеЭкспорта", ЭтотОбъект);
Сертификат = Новый Структура("Отпечаток, ЭтоЭлектроннаяПодписьВМоделиСервиса",
Результат.ВыбранноеЗначение.Отпечаток, ЭтоЭлектроннаяПодписьВМоделиСервиса);
КриптографияЭДКОКлиент.ЭкспортироватьСертификатВBase64(Оповещение, Сертификат);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СертификатПредставителяПредставлениеНачалоВыбораПослеЭкспорта(Результат, ДополнительныеПараметры) Экспорт
Если Результат.Выполнено Тогда
Представитель_СертификатBase64 = Результат.СтрокаBase64;
ИзменитьОформлениеФормы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НомерРодительскойДоверенностиФССНачалоВыбораПослеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(Результат) Тогда
РеквизитыРодительскойДоверенности =
ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервера.ЗначенияРеквизитовОбъекта(Результат,
"НомерДоверенности, Представитель");
Иначе
РеквизитыРодительскойДоверенности = Новый Структура("НомерДоверенности, Представитель", "", Неопределено);
КонецЕсли;
РодительскаяДоверенностьФСС = Результат;
НомерРодительскойДоверенностиФСС = РеквизитыРодительскойДоверенности.НомерДоверенности;
ИзменитьОформлениеФормы();
КонецПроцедуры
&НаКлиенте
Процедура НомерКорневойДоверенностиНачалоВыбораПослеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
РеквизитыКорневойДоверенности = ЗначенияРеквизитовМЧД(Результат);
Если Результат <> Неопределено И НЕ РеквизитыКорневойДоверенности.ПередовериеВозможно Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Для выбранной машиночитаемой доверенности передоверие запрещено.'"));
Возврат;
КонецЕсли;
КорневаяДоверенность = Результат;
НомерКорневойДоверенности = РеквизитыКорневойДоверенности.РегистрационныйНомерДоверенности;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция СоздатьМЧД_ЕФ(Форма) Экспорт
Возврат МЧДБРОКлиентСервер.СоздатьМЧД_ЕФ(Форма);
КонецФункции
#КонецОбласти