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