Введение


Если ты, дорогой читатель, являешься наемным сотрудником, то с недавних пор твой работодатель каждый месяц обязан сдавать за тебя отчет в Пенсионный фонд под названием СЗВ-М.

Расшифровывается эта аббревиатура как «список застрахованных лиц, месячно» и представляет собой список лиц, с которыми установлены трудовые отношения у организации.

Зачем это нужно? Ну, по мнению Путина В. В., у нас в стране "слишком много бухгалтеров", поэтому вот и сделали еще один ежемесячный отчет.

Мера обсуждается в России уже более десяти лет: считается, что из-за сильных различий в двух видах учета в стране слишком много бухгалтеров (в России насчитывается три миллиона бухгалтеров, что в 2,5 раза больше, чем в США).

Если задаться вопросом, зачем он нужен, этот отчет, то ответ будет достаточно смешным. Это нужно для того, чтобы не индексировать пенсию работающим пенсионерам. Да-да, именно так: в нынешних нефтяных реалиях, а также с учетом того, что бюджет Пенсионного фонда примерно на половину состоит из прямых дотаций, невыгодно это.

Вообще работающим пенсионерам пенсию хотели сначала совсем отменить, но тут сами понимаете, выборы, все дела, поэтому пока оставили.

Короче, сделали еще один ежемесячный отчет, повесили его на предприятия, бухгалтеры (которых слишком много) выругались, но продолжили есть этот Ваш кактус.

Казалось бы, причем тут trim? &?

&


Любой, кто осилил прочитать хотя бы Википедию на тему XML, знает, что при попытке сделать вот так, будет не очень хорошо:



Поэтому придумали делать так:



То есть, символ & по сути стал escape-символом. И если я где-то хочу поставить &, то нужно писать &

И тут внезапно находится организация, название которой содержит этот символ. Как думаете, проходит ли такой отчет в ПФ? Нет, получаем ошибку.





Trim


Прекрасный отчет СЗВ-М в Пенсионный фонд по сути своей прост. Нужно дать список людей, которые работают. При этом нужно указать их СНИЛС (это уникальный номер для каждого), а также ФИО (совершенно непонятно, зачем).

А ФИО выгружается в файле примерно так:



Ну и в вышеприведенном примере данные по Дмитрию Анатольевичу успешно загрузятся, а вот по Игорю Ивановичу ошибочка будет.

Да, разработчики в Пенсионном фонде не слышали про Trim. Ни разу.

И проблема в том, что увидеть этот пробел, если открыть в Internet Explorer (а это гляделка по умолчанию), ни разу не получится.



Принцип неопределенности


Ну и в качестве десерта, поговорим о том, как сдается и как принимается этот отчет. Гейзенберг? Не смешите меня.

Итак, вот Вы отправили отчет, а пробелы забыли побороть. В России законодатель вообще редко беспокоится о таких случаях, в законе оно либо все хорошо, либо все плохо, но жизнь сложнее. Поэтому варианты такие:

1. Вам приходит положительный протокол, однако в прикрепленном текстовом файле Пенсионный фонд просит сдать эту форму с пометкой «дополняющая» не по всем, а только по тем людям, по которым были пробелы. Вы не обязаны ничего дополнительно сдавать, вообще-то, однако Пенсионный Фонд от Вас не отстанет.

2. Вам приходит отрицательный протокол, однако в прикрепленном текстовом файле Пенсионный фонд просит сдать эту форму с пометкой «дополняющая» не по всем, а только по тем людям, по которым были пробелы. Вы обязаны сдать эту форму, иначе будет штраф.



Забава в том, что один и тот же Пенсионный фонд в одинаковых случах может выдавать как положительный, так и отрицательный протокол. Элементарные частицы нервно курят.
Поделиться с друзьями
-->

Комментарии (51)


  1. kefirfromperm
    04.08.2016 16:13
    +4

    В первый раз, что ли?


  1. Olgeir
    04.08.2016 16:41
    +5

    Недавно начали отвечать на некие запросы от росфинмониторинга в электронном виде. Форматы запросов и ответов разработал и предоставил нам росфинмониторинг. В процессе работы внезапно выяснилось, что мы получаем нечто, что противоречит форматам. Росфинмониторинг ответил «да знаем, но переделывать форматы не будем, принимайте так».


  1. maxru
    04.08.2016 17:51
    -8

    Скажите, это книга жалоб?


    1. prometheus_ru
      04.08.2016 17:52
      +14

      Вы удивитесь, узнав, сколько раз публикация на Хабре находила авторов и вынуждала их исправиться.


      1. albik
        04.08.2016 23:37
        -2

        Читать правила сейчас так немодно, да:

        Вот список того, чего на ресурсе делать не следует

        — Путать «Хабр» с жалобной книгой. Если у вас проблемы с сотовым оператором, с провайдером интернета или хостинга, или с чем-то ещё, всегда можно связаться со службой поддержки нужного вам ресурса. Или с компетентными органами. Но не следует использовать «Хабр» как рупор, дабы рассказать всем о постигшей вас ситуации.

        — Инициировать политические дискуссии и участвовать в них. Тематика нашего ресурса определена довольно чётко. Для рассуждений о политике есть куда более подходящие сайты. Но не «Хабр».


        1. prometheus_ru
          04.08.2016 23:39
          +3

          Да о политике тут никто и не рассуждал. Позиция государства выглядит идиотизмом:

          1. У нас слишком много бухгалтеров (которые делают отчеты, в которых простые смертные тупо не могут разобраться)

          2. Надо бы сделать очередной ежемесячный отчет (который тоже без спец. инструментов не сделать).

          Л — логика


          1. albik
            04.08.2016 23:50

            Путин, индексация пенсий, нефтяные реалии, позиция государства, бюджет пенсионного фонда, выборы, все дела. Какая уж тут политота, в самом деле.


            1. prometheus_ru
              04.08.2016 23:51

              Позиция про бухгалтеров была высказана Путиным в послании Федеральному собранию в 2013 году.

              Индексация пенсий работающим пенсионерам ушла только когда подешевела нефть, раньше этот вопрос никого не волновал.

              Бюджет пенсионного фонда из субсидий состоял всегда, 50% и более.

              Продолжать? Это факты.


              1. albik
                05.08.2016 00:01

                Как все это относится к багу, я все в толк не возьму?


                1. prometheus_ru
                  05.08.2016 00:01
                  +1

                  Здесь баг в ДНК, в самом появлении дополнительного вида отчета, который нужен только потому, что подешевела нефть. Не догадались?


                  1. albik
                    05.08.2016 00:24

                    Еще раз и медленно: как все эти стенания и моменты глубинного прозрения относятся к тому, что в программе недостаточная фильтрация полей ФИО и некорректная отработка символа &. Тем более, что последнего и не должно быть в названии ООО/ОАО:

                    Недопустимо вставлять в русскоязычное наименование иностранные символы (например, латинские буквы или значок &). При необходимости эти символы заменяются соответствующими русскими (как правило, переводимыми с помощью транскрипции или транслитерации). На римские цифры и математические знаки это ограничение не распространяется.


                    1. prometheus_ru
                      05.08.2016 00:30
                      +1

                      Расскажите это компаниям, которым зарегистрировали такое название.


    1. justhabrauser
      04.08.2016 23:37

      Вы предлагаете продолжать молча наблюдать, как бухгалтеры [громко и вычурно матерясь] ВРУЧНУЮ правят XML-файлы в ПФР? Даже не зная, что такое XML, кстати.


      1. albik
        04.08.2016 23:55

        Не ТС, но вообще-то в случае обнаружения бага нормальная практика — писать разработчикам, а не срывать покровы на хабре.


        1. prometheus_ru
          04.08.2016 23:56
          +1

          Если найдете, куда писать разработчикам, то сообщите, пожалуйста. Я давно уже хочу найти этих разработчиков и посмотреть им в глаза.

          Будете удивлены, но на Хабре часто пишут тогда, когда найти разработчиков просто не получается в силу разных причин. Это как раз тот самый случай.


          1. albik
            05.08.2016 00:09
            +1

            Обозначьте программу, а то про пенсии, про нефть и про выборы вы красочно набросили, а вот название программы, в которой обнаружили багу, озвучить почему-то так и не удосужились.


            1. prometheus_ru
              05.08.2016 00:11

              Баг в программе, которая отвечает за прием данных на стороне Пенсионного фонда. Это специлизированный софт, который я даже не знаю, как называется. Скриншоты проверки из программы Check-UFA, это написали ребята из ПФ УФЫ.


              1. albik
                05.08.2016 00:29
                -4

                Ну то есть вы даже не знаете, какой программой пользуетесь, но 100% во всем виноват Путин. Так победимЪ!


  1. Sheti
    04.08.2016 19:40
    +1

    А сама программа для заполнения этой формы безбожно глючная.


  1. BigW
    04.08.2016 20:13
    +5

    База ФНС и ИНН ОГРН — не, не слышал… База самого же ПФР, где Снилс привязан с ФИО — не, не слышал… И такое дублирование кругом…
    Хотите валидировать СНИЛС — запросите, например, еще ИНН, но больше всего меня убил запрос названия фирмы если есть ИНН и ОГРН, Зачем? — вопрос риторический…
    в ЕСИА данные, у ПФР данные, у ФНС данные, у МВД данные, у меня уже давно сложилось стойкое убеждение, что все эти базы просто кривые т.е. данные не совпадают. Поэтому и происходит многократное дублирование запрашиваемой информации… Вариант того, что просто не могут договориться между собой — крайне сомнителен, т.к. в рамках оказания госуслуг между всеми ними есть взаимодействие через СМЭВ
    Про пробелы и пр… — это все цветочки, точнее это норма, увы…
    И вопрос к бухгалтерам:
    разве когда происходит перечисление взносов там не указывается за кого идет перечисление? оттуда то список получить нельзя?!


    1. EvilPartisan
      04.08.2016 22:52
      +1

      «у меня уже давно сложилось стойкое убеждение, что все эти базы просто кривые т.е. данные не совпадают.»
      Бинго.


    1. vKreker
      04.08.2016 23:37
      +2

      У каждой организации своя «база»: свои данные, своя архитектура приложения, свои сервера. Как правило, код и бд имеют плохую архитектуру и написать API для взаимодействия никто не берется.
      Меня вот лично больше раздражает даже другое: в одном и том же учреждении могут каждый раз твои данные заново вносить, как будто ты впервые там.


      1. BigW
        05.08.2016 00:22
        +1

        я, может быть, не совсем верно вас понял, но код взаимодействия уже написан. это транспортная шина, оно же СМЭВ. портал госуслуги (ЕСИА) это тоже сервис, который работает через СМЭВ с сервисами органов власти. т.е. там зарегистрированы сервисы, например ФНС и ПФР, взаимодействие по протоколу(технологии) soap. описание интерфейсов есть в открытом доступе (на smev.gosuslugi.ru). т.е. вы посылаете определенный запрос и получаете на него определенный ответ, а как там эти сервисы со своими базами взаимодействуют, это уже проблемы самих ФНС и ПФР…


    1. prometheus_ru
      04.08.2016 23:38
      +1

      Удивитесь, но взносы платятся одним куском. Т.е. делается одна платежка, в месяц, за все предприятие. А вот кому какую сумму зачислить на будущую пенсию — это определяется другим особым отчетом, РСВ-1. В его составе есть раздел с делением по лицам.


      1. BigW
        05.08.2016 00:16
        +1

        Удивился, честно, чудны дела твои… сначала запихали все в кучу, а теперь разгребаем…
        поискал РСВ-1, нашел… это, видимо, раздел стр. 11_Разд.6.1_6.6. правда, на сколько я понял РСВ-1 сдается поквартально, а отчет СЗВ-М нужно помесячно…


        1. prometheus_ru
          05.08.2016 00:18
          +1

          Да, конечно :) Ведь отказать в индексации пенсии работающему пенсионеру надо с квантом времени «ежемесячно».

          А вот разделить пришедшие за три месяца взносы на конкретных людей можно и с квантом времени «раз в квартал» — для этого и нужен РСВ-1.


    1. D77D
      05.08.2016 21:28

      «Вариант того, что просто не могут договориться между собой — крайне сомнителен»
      Отнюдь не сомнителен. В гос.аппарате нет термина «договориться». Есть только «приказать исполнить, назначив одного главного, остальных выстроить». Представьте, что главным назначили, например, МВД. А вы пришли в ПФР. И ПФР-овский начальник теперь должен, как последний плебей, просить МВД выдать ему данные на вас?? Да он удавится раньше, чем так сделает! Ещё, чего доброго, его и самого тогда могут «оптимизировать», ибо зачем он нужен?
      Вот и дуют щёки.


  1. pov
    04.08.2016 23:38
    -9

    Автору надо на Дожде такие обиженные посты писать. Там таких любят.


    1. prometheus_ru
      04.08.2016 23:40
      +3

      Спасибо, автор сам разберется, где ему какие посты писать.


    1. seokirill
      05.08.2016 21:04
      +1

      Признавайся, на кого работаешь


  1. bingo347
    06.08.2016 05:34

    Нужно смотреть в корень проблемы. Не один квалифицированный разработчик не пойдет работать на госсектор.
    Например мне в госсекторе, с моим стажем (5 лет в коммерческой разработке, 3 из них как ИП, так что не в счет) и непрофильным высшим (учитель информатики), предложат максимум 25 тыс…
    Сейчас жизнь вынудила работать на дядю, и я ощущаю, что мой доход (сотка с хвостиком + премии) заметно упал…

    Недавно случай был… жизненный
    Сижу в баре, по соседству сидит компания, отмечает чей то ДР, один из них в определенный момент высказывается: «Я ж все таки программист!» Подхожу значит познакомится, «на чем пишешь?» — «на всем понемногу» — «а основной язык?» — «Java». Я про себя уже думаю, что если android, то знакомство крайне полезное…
    Меж тем он у меня спрашивает «Зачем интересуешься? Тоже программист? Сам то на чем пишешь?» — «Во основном на JS изредка на Go»… И тут его понесло, на предмет «JS — говно, Java рулит», что я никак не ожидал от дяди за 40… Особенно убила фраза «Да в твоем JS пустой массив умножить на пустой массив будет NaN!» — «Вообще-то []*[] будет 0» — «Я сейчас про ванила-JS говорю, а не всякие там ангуляры и ноды»
    Вообщем пришел он к выводу что я кодер-недоучка, так как после 5 кружки пива не могу дословно (как в википедии) дать определение рефлексии…
    Уже разворачиваясь, но так как зацепило, спрашиваю: «А давно в программировании?» — «больше 20 лет» — «А что ты за эти 20 лет сделал?» — «Я сервера для налоговой пишу»


    1. prometheus_ru
      06.08.2016 23:30

      Я скажу так, что в налоговой бардака гораздо меньше.

      Налоговая жрет этот кактус с 2003 года, поэтому у них на сегодня самая стройная и нормальная система. 3-НДФЛ только нельзя сдавать в электронке, но в остальном — крайне хорошо.

      ПФ же проигнорировал вообще весь опыт налоговой и начал строить свой чудный мир. О том, как это ужасно было говорит только то, что автор в 2012 году несколько раз судился и выиграл у ПФ.


      1. xamdeath
        07.08.2016 08:58

        Это, скорее, налоговая учла опыт пфр. Пенсионный начал заниматься этим с 97 года, если память не подводит.


        1. prometheus_ru
          07.08.2016 10:47

          Вы путаете. ПФ в целом только с 2010 начал принимать что-то в электронке. До этого у них было достаточно мало отчетности, всего раз в год носили «файлик на дискетке».

          1. Пенсионный фонд изначально (и до сих пор) не имеет концепции «специализированный оператор». Из-за этого куча проблем, которые в налоговой даже не возникают, т.е. когда ты отправил отчет, это подтверждает оператор. ПФ в таких случаях говорит «ничего не знаю».

          2. ПФ до последнего времени имел процедуру взаимодействия в электронном виде, которая даже законной не являлась, поскольку была принята просто в виде внутренней указивки правления ПФ. Это не смущало суды, хотя в нескольких случаях суд просто не принимал их указивку в роли действующей.

          3. Только ПФ умудрялся отвечать сначала положительным протоколом, а потом отрицательным.


          1. xamdeath
            07.08.2016 11:09

            Не путаю. Или Вы считаете, что «на дискетке» — это не в электронном виде?
            Причём не раз в год, а раз в полгода. Это уже потом раз в год стало. Вот что сейчас хорошо стало — не надо ещё дополнительно предоставлять нее… грандиозного объёма папки с этими же данными в бумажном варианте. Изначально то ведь это был лютый ужас: на КАЖДОГО сотрудника отдельный лист.


            1. miktim
              09.08.2016 10:36

              Автор упоминал: для ПФ периодичность отчетности по СЗВ-М — ежемесячно, по РСВ-1 — ежеквартально (очередной срок сдачи подкатывает). Отдельный лист на ЗЛ (сотрудника) был связан со стажами (в т.ч. льготными. Случалось до 15 строк). И, на всякий случай, до 97 (?) года пенсионные платежи принимала налоговая.


  1. xamdeath
    06.08.2016 23:27

    «нужно указать их СНИЛС (это уникальный номер для каждого), а также ФИО (совершенно непонятно, зачем).»
    Автор никогда не сдавал отчёты на предприятиях с большим оборотом сотрудников?
    Случается, что возвращают ошибки с несоответствием снилс и фио.


    1. prometheus_ru
      06.08.2016 23:28

      Автор сдавал, конечно, но тут дело вот в чем — все попытки сделать match по именам обычно лажают на всяких инстранцах, типа «Латыфджонаевич != Латыфджанаевич», только добавляя ада мглы.

      В целом, если все платежи корректно идентифицированы, а они обычно без ошибок по СНИЛС, то никакого смысла дублировать эту информацию нет.


      1. xamdeath
        07.08.2016 09:05

        Ну да. В основном такого рода. Причём никакой системы нет с отчествами и постоянно, то Бабай Оглы, то Бабай-Оглы. А ещё, бывает, люди фамилию меняют. А СНИЛС не торопятся. И если забыть этот нюанс, то, после выгрузки не исправив фамилию вручную, получаешь все прелести несоответствия СНИЛС и ФИО.


        1. miktim
          09.08.2016 09:48

          При смене фамилии СНИЛС (да и ИНН) не меняются.


          1. xamdeath
            09.08.2016 15:46

            При смене фамилии меняется
            1) Собственно фамилия
            2) Паспорт
            3) СНИЛС (карточка, не знаю как она называется, посмотреть не могу, прое… фукал), номер остаётся тот же.
            4) Свидетельство (или как там его) об ИНН


            1. miktim
              10.08.2016 08:01

              СНИЛС (Страховой НОМЕР Индивидуального Лицевого Счета), документ — Страховое свидетельство Государственного пенсионного страхования.

              ИНН (Индивидуальный НОМЕР Налогоплательщика), документ — Свидетельство о постановке на учет в налоговом органе физического лица по месту жительства на территории Российской Федерации. (так на моем)

              Будьте точнее в формулировках, поскольку меняется документ а не номер.


  1. SemenovVV
    08.08.2016 13:13

    Почему данная публикация выложена в раздел алгоритмы? Мне непонятно.
    Если у вас в БД символьные поля хранятся с пробелами в конце это тоже не хорошо.
    сделайте update этих полей.

    --- t-sql
    update [Таблица с сотрудниками]   set fio = ltrim(rtrim( fio))
           ,name = ltrim(rtrim( name))
           ,otch = ltrim(rtrim( otch))  
    


    1. prometheus_ru
      09.08.2016 10:45

      Благодарю за алгоритм, но увы, данные сотрудников даже близко не хранятся в базе, по которой можно гонять T-SQL. Кроме того, правильное хранение ФИО сотрудника обычно не касается того вопроса, что алгоритм, который делает выгрузку, сам по ошибке вставляет эти пробелы.

      А в раздел «Алгоритмы» это пришло потому, что не лишне будет в очередной раз помнить — любые строчные данные на входе нужно trim, а уже потом разговаривать.


      1. miktim
        09.08.2016 10:50

        Алгоритм (программа) ошибаться не может. Ошибаются разработчики.


        1. prometheus_ru
          09.08.2016 10:52

          Я не очень верно сформулировал, но мысль понятна :)


          1. miktim
            09.08.2016 11:16

            Я понимаю ваш крик души. С точки зрения XML, наличие лидирующих/завершающих пробелов в тексте тега криминалом не является. Но если в правилах формирования от ПФ явно указано «без пробелов» — извольте следовать. И да, что за бардак в вашей консерватории, когда «даже близко не хранятся»?


            1. prometheus_ru
              09.08.2016 11:43

              В России безусловным лидером среди решений для подготовки отчетности / ведения учета заработной платы являются продукты 1С.

              Ну а локальные версии просто хранят это в таком виде, где T-SQL особо не побалуешь.


              1. miktim
                09.08.2016 12:14

                Согласен. Структуры 1С достаточно сложны. А они что, перестали исправлять баги в отчетах и предоставлять обновления пользователям?


                1. prometheus_ru
                  09.08.2016 12:26

                  Ну дело в том, что не только сама 1С создает прикладные конфигурации, в которых ведется учет.

                  Например, стандартный продукт от 1С, который называется «Зарплата и управление персоналом» достаточно сложен и удобен, если сотрудников у предприятия более 20-30.

                  Для более мелких организаций чаще применяется продукт от калужских работников ножа и кода, называется Камин :) Там с багами не так хорошо, вернее, гораздо хуже.


                  1. miktim
                    09.08.2016 13:45

                    По сути статьи:

                    1) ПФ РФ совершенно ни при чем. По мере умения исполняет принятые ФЗ. Вы же не будете оспаривать правила формирования ODF или OOXML (там тоже XML). Или будете?

                    2) Количество бухгалтеров есть следствие сложности законодательства по бухгалтерскому учету и отчетности. Счастье наступит, когда вся бухгалтерия будет выражена Бэкусом-Науэром. Кстати, обилие отчетных параметров кому-то вводить надо (это я возражаю ВВП).

                    3) Через Хабр вы вряд ли достучитесь до подсознания региональных разработчиков. Свежий CheckXML и редактор вам в руки. Иногда приходится и самому поработать.

                    До встречи.