#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Функция ВерсияФорматаВыгрузки(Знач НаДату = Неопределено, ВыбраннаяФорма = Неопределено) Экспорт
Если НаДату = Неопределено Тогда
НаДату = ТекущаяДатаСеанса();
КонецЕсли;
Если НаДату > '20110101' Тогда
Возврат Перечисления.ВерсииФорматовВыгрузки.ВерсияФСГС;
КонецЕсли;
КонецФункции
Функция ТаблицаФормОтчета() Экспорт
ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0));
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип("Дата"));
ОписаниеТиповДата = Новый ОписаниеТипов(МассивТипов, , Новый КвалификаторыДаты(ЧастиДаты.Дата));
ТаблицаФормОтчета = Новый ТаблицаЗначений;
ТаблицаФормОтчета.Колонки.Добавить("ФормаОтчета", ОписаниеТиповСтрока);
ТаблицаФормОтчета.Колонки.Добавить("ОписаниеОтчета", ОписаниеТиповСтрока, "Утверждена", 20);
ТаблицаФормОтчета.Колонки.Добавить("ДатаНачалоДействия", ОписаниеТиповДата, "Действует с", 5);
ТаблицаФормОтчета.Колонки.Добавить("ДатаКонецДействия", ОписаниеТиповДата, " по", 5);
ТаблицаФормОтчета.Колонки.Добавить("РедакцияФормы", ОписаниеТиповСтрока, "Редакция формы", 20);
НоваяФорма = ТаблицаФормОтчета.Добавить();
НоваяФорма.ФормаОтчета = "ФормаОтчета2020Кв1";
НоваяФорма.ОписаниеОтчета = "Утверждена приказом Росстата от 15.07.2019 № 404.";
НоваяФорма.РедакцияФормы = "от 15.07.2019 № 404.";
НоваяФорма.ДатаНачалоДействия = '20200101';
НоваяФорма.ДатаКонецДействия = '20201231';
НоваяФорма = ТаблицаФормОтчета.Добавить();
НоваяФорма.ФормаОтчета = "ФормаОтчета2021Кв1";
НоваяФорма.ОписаниеОтчета = "Утверждена приказом Росстата от 24.07.2020 № 412 (в редакции от 13.07.2021 № 412).";
НоваяФорма.РедакцияФормы = "от 24.07.2020 № 412.";
НоваяФорма.ДатаНачалоДействия = '20210101';
НоваяФорма.ДатаКонецДействия = '20211231';
НоваяФорма = ТаблицаФормОтчета.Добавить();
НоваяФорма.ФормаОтчета = "ФормаОтчета2022Кв1";
НоваяФорма.ОписаниеОтчета = "Утверждена приказом Росстата от 30.07.2021 № 457 (в редакции приказа Росстата от 17.12.2021 № 925).";
НоваяФорма.РедакцияФормы = "от 30.07.2021 № 457.";
НоваяФорма.ДатаНачалоДействия = '20220101';
НоваяФорма.ДатаКонецДействия = '20221231';
НоваяФорма = ТаблицаФормОтчета.Добавить();
НоваяФорма.ФормаОтчета = "ФормаОтчета2023Кв1";
НоваяФорма.ОписаниеОтчета = "Утверждена приказом Росстата от 29.07.2022 № 532 (в редакции приказа Росстата от 11.01.2024 № 3).";
НоваяФорма.РедакцияФормы = "от 29.07.2022 № 532.";
НоваяФорма.ДатаНачалоДействия = '20230101';
НоваяФорма.ДатаКонецДействия = '20241231';
НоваяФорма = ТаблицаФормОтчета.Добавить();
НоваяФорма.ФормаОтчета = "ФормаОтчета2025Кв1";
НоваяФорма.ОписаниеОтчета = "Утверждена приказом Росстата от 31.07.2024 № 338 (в редакции приказа Росстата от 26.12.2024 № 686, 30.01.2025 № 34).";
НоваяФорма.РедакцияФормы = "от 31.07.2024 № 338.";
НоваяФорма.ДатаНачалоДействия = '20250101';
НоваяФорма.ДатаКонецДействия = РегламентированнаяОтчетностьКлиентСервер.ПустоеЗначениеТипа(Тип("Дата"));
Возврат ТаблицаФормОтчета;
КонецФункции
Функция ДанныеРеглОтчета(ЭкземплярРеглОтчета) Экспорт
Возврат Неопределено;
КонецФункции
Функция ДеревоФормИФорматов() Экспорт
ФормыИФорматы = Новый ДеревоЗначений;
ФормыИФорматы.Колонки.Добавить("Код");
ФормыИФорматы.Колонки.Добавить("ДатаПриказа");
ФормыИФорматы.Колонки.Добавить("НомерПриказа");
ФормыИФорматы.Колонки.Добавить("ДатаНачалаДействия");
ФормыИФорматы.Колонки.Добавить("ДатаОкончанияДействия");
ФормыИФорматы.Колонки.Добавить("ИмяОбъекта");
ФормыИФорматы.Колонки.Добавить("Описание");
Форма20140101 = ОпределитьФормуВДеревеФормИФорматов(ФормыИФорматы, "606010", '20190715', "404", "ФормаОтчета2020Кв1");
Форма20210101 = ОпределитьФормуВДеревеФормИФорматов(ФормыИФорматы, "606010", '20200724', "412", "ФормаОтчета2021Кв1");
Форма20220101 = ОпределитьФормуВДеревеФормИФорматов(ФормыИФорматы, "606010", '20210730', "457", "ФормаОтчета2022Кв1");
Форма20230101 = ОпределитьФормуВДеревеФормИФорматов(ФормыИФорматы, "606010", '20220729', "532", "ФормаОтчета2023Кв1");
Форма20250101 = ОпределитьФормуВДеревеФормИФорматов(ФормыИФорматы, "606010", '20240731', "338", "ФормаОтчета2025Кв1");
ВерсияВыгрузки = РегламентированнаяОтчетность.ПолучитьВерсиюВыгрузкиСтатОтчета("РегламентированныйОтчетСтатистикаФормаП4", "ФормаОтчета2025Кв1");
РегламентированнаяОтчетность.ОпределитьФорматВДеревеФормИФорматов(Форма20250101, "20-01-2025");
Возврат ФормыИФорматы;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ОпределитьФормуВДеревеФормИФорматов(ДеревоФормИФорматов, Код, ДатаПриказа = '00010101', НомерПриказа = "", ИмяОбъекта = "",
ДатаНачалаДействия = '00010101', ДатаОкончанияДействия = '00010101', Описание = "")
НовСтр = ДеревоФормИФорматов.Строки.Добавить();
НовСтр.Код = СокрЛП(Код);
НовСтр.ДатаПриказа = ДатаПриказа;
НовСтр.НомерПриказа = СокрЛП(НомерПриказа);
НовСтр.ДатаНачалаДействия = ДатаНачалаДействия;
НовСтр.ДатаОкончанияДействия = ДатаОкончанияДействия;
НовСтр.ИмяОбъекта = СокрЛП(ИмяОбъекта);
НовСтр.Описание = СокрЛП(Описание);
Возврат НовСтр;
КонецФункции
#КонецОбласти
#КонецЕсли