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