Регламентированный отчет Статистика П-4 под новый шаблон от 19.06.2018

Для тех, у кого много обособленных подразделений и не последний релиз ЗУП3.1(у нас 3.1.6.38 Корп). А выгрузка XML-файлов не проходит проверку. Некоторые ТОГС(террит.отделения Росстата) отклонили отчеты некоторых обособок. Причина: выгрузка нашего релиза не соответствует последнему XML-шаблону. Формат прежний (форма от 01.09.2017 №566), а заполнение нового шаблона от 19.06.2018 по приложениям 313,314,…372, т.е. данные внутри формата по мнению сотрудников госорганов не соответствуют.

Применение:

1) Заменить типовой отчет,

2) заменить в модуле менеджера этого отчета одну функцию. Текст всего модуля менеджера есть в приложенном текстовом файле

Функция ТаблицаФормОтчета() Экспорт
    
    ОписаниеТиповСтрока = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0));
    
    МассивТипов = Новый Массив;
    МассивТипов.Добавить(Тип("Дата"));
    ОписаниеТиповДата = Новый ОписаниеТипов(МассивТипов, , Новый КвалификаторыДаты(ЧастиДаты.Дата));
    
    ТаблицаФормОтчета = Новый ТаблицаЗначений;
    ТаблицаФормОтчета.Колонки.Добавить("ФормаОтчета",        ОписаниеТиповСтрока);
    ТаблицаФормОтчета.Колонки.Добавить("ОписаниеОтчета",     ОписаниеТиповСтрока, "Утверждена",  20);
    ТаблицаФормОтчета.Колонки.Добавить("ДатаНачалоДействия", ОписаниеТиповДата,   "Действует с", 5);
    ТаблицаФормОтчета.Колонки.Добавить("ДатаКонецДействия",  ОписаниеТиповДата,   "         по", 5);
    ТаблицаФормОтчета.Колонки.Добавить("РедакцияФормы",      ОписаниеТиповСтрока, "Редакция формы", 20);
    
    НоваяФорма = ТаблицаФормОтчета.Добавить();
    НоваяФорма.ФормаОтчета        = "ФормаОтчета2011Кв1";
    НоваяФорма.ОписаниеОтчета     = "Утверждена приказом Росстата от 20.07.2010 № 256.";
    НоваяФорма.РедакцияФормы      = "от 20.07.2010 № 256.";
    НоваяФорма.ДатаНачалоДействия = '20110101';
    НоваяФорма.ДатаКонецДействия  = '20111231';
    
    НоваяФорма = ТаблицаФормОтчета.Добавить();
    НоваяФорма.ФормаОтчета        = "ФормаОтчета2012Кв1";
    НоваяФорма.ОписаниеОтчета     = "Утверждена приказом Росстата от 19.08.2011 № 367.";
    НоваяФорма.РедакцияФормы      = "от 19.08.2011 № 367.";
    НоваяФорма.ДатаНачалоДействия = '20120101';
    НоваяФорма.ДатаКонецДействия  = '20121231';
    
    НоваяФорма = ТаблицаФормОтчета.Добавить();
    НоваяФорма.ФормаОтчета        = "ФормаОтчета2013Кв1";
    НоваяФорма.ОписаниеОтчета     = "Утверждена приказом Росстата от 24.07.2012 № 407.";
    НоваяФорма.РедакцияФормы      = "от 24.07.2012 № 407.";
    НоваяФорма.ДатаНачалоДействия = '20130101';
    НоваяФорма.ДатаКонецДействия  = '20141231';
    
    НоваяФорма = ТаблицаФормОтчета.Добавить();
    НоваяФорма.ФормаОтчета        = "ФормаОтчета2014Кв1";
    НоваяФорма.ОписаниеОтчета     = "Утверждена приказом Росстата от 24.11.2014 № 580.";
    НоваяФорма.РедакцияФормы      = "от 24.11.2014 № 580.";
    НоваяФорма.ДатаНачалоДействия = '20150101';
    НоваяФорма.ДатаКонецДействия  = '20161231';
    
    НоваяФорма = ТаблицаФормОтчета.Добавить();
    НоваяФорма.ФормаОтчета        = "ФормаОтчета2017Кв1";
    НоваяФорма.ОписаниеОтчета     = "Утверждена приказом Росстата от 02.08.2016 № 379.";
    НоваяФорма.РедакцияФормы      = "от 02.08.2016 № 379.";
    НоваяФорма.ДатаНачалоДействия = '20170101';
    НоваяФорма.ДатаКонецДействия  = '20171231';
    
    //-=Н=- по заявке
    //Пришел отказ в принятии отчета П-4 г.Щелково(код 50-59, №70087178460034)
    //Прошу решить проблему
    //13 августа 2018 г. 14:43:30
    //Цель:    Изменение функционала
    //------------------
    //-=Старый код=-
    //------------------
    //НоваяФорма = ТаблицаФормОтчета.Добавить();
    //НоваяФорма.ФормаОтчета        = "ФормаОтчета2018Кв1";
    //НоваяФорма.ОписаниеОтчета     = "Утверждена приказом Росстата от 01.09.2017 № 566.";
    //НоваяФорма.РедакцияФормы      = "от 01.09.2017 № 566.";
    //НоваяФорма.ДатаНачалоДействия = '20180101';
    //НоваяФорма.ДатаКонецДействия  = РегламентированнаяОтчетностьКлиентСервер.ПустоеЗначениеТипа(Тип("Дата"));

    //------------------
    //-=Новый код=-
    //------------------
    НоваяФорма = ТаблицаФормОтчета.Добавить();
    НоваяФорма.ФормаОтчета        = "ФормаОтчета2018Кв1";
    НоваяФорма.ОписаниеОтчета     = "Утверждена приказом Росстата от 01.09.2017 № 566.";
    НоваяФорма.РедакцияФормы      = "от 01.09.2017 № 566.";
    НоваяФорма.ДатаНачалоДействия = '20180101';
    НоваяФорма.ДатаКонецДействия  = '20180531';  //завершим в мае, т.к. новый формат "начиная с отчета за Июнь 2018 года" http://www.gks.ru/metod/XML-2018/XML_plan_2018.htm
    
    НоваяФорма = ТаблицаФормОтчета.Добавить();
    НоваяФорма.ФормаОтчета        = "ФормаОтчета2018Кв1";
    НоваяФорма.ОписаниеОтчета     = "Утверждена приказом Росстата от 19.06.2018 № 372.";
    НоваяФорма.РедакцияФормы      = "от 19.06.2018 № 372.";
    НоваяФорма.ДатаНачалоДействия = '20180601';
    НоваяФорма.ДатаКонецДействия  = РегламентированнаяОтчетностьКлиентСервер.ПустоеЗначениеТипа(Тип("Дата"));    
    //-=К=-
    
    Возврат ТаблицаФормОтчета;
    
КонецФункции

3) заменить в общем модуле РегламентированнаяОтчетность одну процедуру:

Процедура ДополнитьСтруктуруПараметров(мДанныеОтчета, ПараметрыВыгрузки, Узел) Экспорт 
    
    Если НЕ ПустаяСтрока(Узел.Раздел) Тогда
        Если РегламентированнаяОтчетностьКлиентСервер.СвойствоОпределено(мДанныеОтчета, Узел.Раздел) Тогда
            ПоказателиРаздела = мДанныеОтчета[Узел.Раздел];
            Если ТипЗнч(ПоказателиРаздела) = Тип("Структура") Тогда
                Для Каждого Эл Из ПоказателиРаздела Цикл
                    //-=Н=- по заявке № , 
                    //Милов А.В., 14 августа 2018 г. 15:58:26
                    //Цель:    Изменение функционала
                    //---------------
                    //-=Старый код=-
                    //---------------
                    //ПараметрыВыгрузки.Вставить(Эл.Ключ, Эл.Значение);
                    //---------------
                    //-=Новый код=-
                    //---------------
                    Если ПараметрыВыгрузки.ШифрФормы = "un_p4" Тогда
                        Если Лев(Эл.Ключ,2)="П0" и Эл.Значение = 0 Тогда            
                            Продолжить;
                        Иначе
                            ПараметрыВыгрузки.Вставить(Эл.Ключ, Эл.Значение);
                        КонецЕсли;
                    Иначе
                         ПараметрыВыгрузки.Вставить(Эл.Ключ, Эл.Значение);
                    КонецЕсли;
                    //-=К=-                           
                КонецЦикла;
            КонецЕсли;
        Иначе
            ПоказателиРаздела = мДанныеОтчета[Узел.Раздел];
            Для Каждого Эл Из ПоказателиРаздела Цикл
                ПараметрыВыгрузки.Вставить(Эл.Ключ, Эл.Значение);
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

R03;

 

Достоинства

Избавляет от возможных штрафов Росстата до 70тыс. рублей:)

В КАТАЛОГ »