Введение
Если ты, дорогой читатель, являешься наемным сотрудником, то с недавних пор твой работодатель каждый месяц обязан сдавать за тебя отчет в Пенсионный фонд под названием СЗВ-М.
Расшифровывается эта аббревиатура как «список застрахованных лиц, месячно» и представляет собой список лиц, с которыми установлены трудовые отношения у организации.
Зачем это нужно? Ну, по мнению Путина В. В., у нас в стране "слишком много бухгалтеров", поэтому вот и сделали еще один ежемесячный отчет.
Мера обсуждается в России уже более десяти лет: считается, что из-за сильных различий в двух видах учета в стране слишком много бухгалтеров (в России насчитывается три миллиона бухгалтеров, что в 2,5 раза больше, чем в США).
Если задаться вопросом, зачем он нужен, этот отчет, то ответ будет достаточно смешным. Это нужно для того, чтобы не индексировать пенсию работающим пенсионерам. Да-да, именно так: в нынешних нефтяных реалиях, а также с учетом того, что бюджет Пенсионного фонда примерно на половину состоит из прямых дотаций, невыгодно это.
Вообще работающим пенсионерам пенсию хотели сначала совсем отменить, но тут сами понимаете, выборы, все дела, поэтому пока оставили.
Короче, сделали еще один ежемесячный отчет, повесили его на предприятия, бухгалтеры (которых слишком много) выругались, но продолжили есть этот Ваш кактус.
Казалось бы, причем тут trim? &?
&
Любой, кто осилил прочитать хотя бы Википедию на тему XML, знает, что при попытке сделать вот так, будет не очень хорошо:
Поэтому придумали делать так:
То есть, символ & по сути стал escape-символом. И если я где-то хочу поставить &, то нужно писать &
И тут внезапно находится организация, название которой содержит этот символ. Как думаете, проходит ли такой отчет в ПФ? Нет, получаем ошибку.
Trim
Прекрасный отчет СЗВ-М в Пенсионный фонд по сути своей прост. Нужно дать список людей, которые работают. При этом нужно указать их СНИЛС (это уникальный номер для каждого), а также ФИО (совершенно непонятно, зачем).
А ФИО выгружается в файле примерно так:
Ну и в вышеприведенном примере данные по Дмитрию Анатольевичу успешно загрузятся, а вот по Игорю Ивановичу ошибочка будет.
Да, разработчики в Пенсионном фонде не слышали про Trim. Ни разу.
И проблема в том, что увидеть этот пробел, если открыть в Internet Explorer (а это гляделка по умолчанию), ни разу не получится.
Принцип неопределенности
Ну и в качестве десерта, поговорим о том, как сдается и как принимается этот отчет. Гейзенберг? Не смешите меня.
Итак, вот Вы отправили отчет, а пробелы забыли побороть. В России законодатель вообще редко беспокоится о таких случаях, в законе оно либо все хорошо, либо все плохо, но жизнь сложнее. Поэтому варианты такие:
1. Вам приходит положительный протокол, однако в прикрепленном текстовом файле Пенсионный фонд просит сдать эту форму с пометкой «дополняющая» не по всем, а только по тем людям, по которым были пробелы. Вы не обязаны ничего дополнительно сдавать, вообще-то, однако Пенсионный Фонд от Вас не отстанет.
2. Вам приходит отрицательный протокол, однако в прикрепленном текстовом файле Пенсионный фонд просит сдать эту форму с пометкой «дополняющая» не по всем, а только по тем людям, по которым были пробелы. Вы обязаны сдать эту форму, иначе будет штраф.
Забава в том, что один и тот же Пенсионный фонд в одинаковых случах может выдавать как положительный, так и отрицательный протокол. Элементарные частицы нервно курят.
Комментарии (51)
Olgeir
04.08.2016 16:41+5Недавно начали отвечать на некие запросы от росфинмониторинга в электронном виде. Форматы запросов и ответов разработал и предоставил нам росфинмониторинг. В процессе работы внезапно выяснилось, что мы получаем нечто, что противоречит форматам. Росфинмониторинг ответил «да знаем, но переделывать форматы не будем, принимайте так».
maxru
04.08.2016 17:51-8Скажите, это книга жалоб?
prometheus_ru
04.08.2016 17:52+14Вы удивитесь, узнав, сколько раз публикация на Хабре находила авторов и вынуждала их исправиться.
albik
04.08.2016 23:37-2Читать правила сейчас так немодно, да:
Вот список того, чего на ресурсе делать не следует
…
— Путать «Хабр» с жалобной книгой. Если у вас проблемы с сотовым оператором, с провайдером интернета или хостинга, или с чем-то ещё, всегда можно связаться со службой поддержки нужного вам ресурса. Или с компетентными органами. Но не следует использовать «Хабр» как рупор, дабы рассказать всем о постигшей вас ситуации.
…
— Инициировать политические дискуссии и участвовать в них. Тематика нашего ресурса определена довольно чётко. Для рассуждений о политике есть куда более подходящие сайты. Но не «Хабр».prometheus_ru
04.08.2016 23:39+3Да о политике тут никто и не рассуждал. Позиция государства выглядит идиотизмом:
1. У нас слишком много бухгалтеров (которые делают отчеты, в которых простые смертные тупо не могут разобраться)
2. Надо бы сделать очередной ежемесячный отчет (который тоже без спец. инструментов не сделать).
Л — логикаalbik
04.08.2016 23:50Путин, индексация пенсий, нефтяные реалии, позиция государства, бюджет пенсионного фонда, выборы, все дела. Какая уж тут политота, в самом деле.
prometheus_ru
04.08.2016 23:51Позиция про бухгалтеров была высказана Путиным в послании Федеральному собранию в 2013 году.
Индексация пенсий работающим пенсионерам ушла только когда подешевела нефть, раньше этот вопрос никого не волновал.
Бюджет пенсионного фонда из субсидий состоял всегда, 50% и более.
Продолжать? Это факты.albik
05.08.2016 00:01Как все это относится к багу, я все в толк не возьму?
prometheus_ru
05.08.2016 00:01+1Здесь баг в ДНК, в самом появлении дополнительного вида отчета, который нужен только потому, что подешевела нефть. Не догадались?
albik
05.08.2016 00:24Еще раз и медленно: как все эти стенания и моменты глубинного прозрения относятся к тому, что в программе недостаточная фильтрация полей ФИО и некорректная отработка символа &. Тем более, что последнего и не должно быть в названии ООО/ОАО:
Недопустимо вставлять в русскоязычное наименование иностранные символы (например, латинские буквы или значок &). При необходимости эти символы заменяются соответствующими русскими (как правило, переводимыми с помощью транскрипции или транслитерации). На римские цифры и математические знаки это ограничение не распространяется.
justhabrauser
04.08.2016 23:37Вы предлагаете продолжать молча наблюдать, как бухгалтеры [громко и вычурно матерясь] ВРУЧНУЮ правят XML-файлы в ПФР? Даже не зная, что такое XML, кстати.
albik
04.08.2016 23:55Не ТС, но вообще-то в случае обнаружения бага нормальная практика — писать разработчикам, а не срывать покровы на хабре.
prometheus_ru
04.08.2016 23:56+1Если найдете, куда писать разработчикам, то сообщите, пожалуйста. Я давно уже хочу найти этих разработчиков и посмотреть им в глаза.
Будете удивлены, но на Хабре часто пишут тогда, когда найти разработчиков просто не получается в силу разных причин. Это как раз тот самый случай.albik
05.08.2016 00:09+1Обозначьте программу, а то про пенсии, про нефть и про выборы вы красочно набросили, а вот название программы, в которой обнаружили багу, озвучить почему-то так и не удосужились.
prometheus_ru
05.08.2016 00:11Баг в программе, которая отвечает за прием данных на стороне Пенсионного фонда. Это специлизированный софт, который я даже не знаю, как называется. Скриншоты проверки из программы Check-UFA, это написали ребята из ПФ УФЫ.
albik
05.08.2016 00:29-4Ну то есть вы даже не знаете, какой программой пользуетесь, но 100% во всем виноват Путин. Так победимЪ!
BigW
04.08.2016 20:13+5База ФНС и ИНН ОГРН — не, не слышал… База самого же ПФР, где Снилс привязан с ФИО — не, не слышал… И такое дублирование кругом…
Хотите валидировать СНИЛС — запросите, например, еще ИНН, но больше всего меня убил запрос названия фирмы если есть ИНН и ОГРН, Зачем? — вопрос риторический…
в ЕСИА данные, у ПФР данные, у ФНС данные, у МВД данные, у меня уже давно сложилось стойкое убеждение, что все эти базы просто кривые т.е. данные не совпадают. Поэтому и происходит многократное дублирование запрашиваемой информации… Вариант того, что просто не могут договориться между собой — крайне сомнителен, т.к. в рамках оказания госуслуг между всеми ними есть взаимодействие через СМЭВ
Про пробелы и пр… — это все цветочки, точнее это норма, увы…
И вопрос к бухгалтерам:
разве когда происходит перечисление взносов там не указывается за кого идет перечисление? оттуда то список получить нельзя?!EvilPartisan
04.08.2016 22:52+1«у меня уже давно сложилось стойкое убеждение, что все эти базы просто кривые т.е. данные не совпадают.»
Бинго.
vKreker
04.08.2016 23:37+2У каждой организации своя «база»: свои данные, своя архитектура приложения, свои сервера. Как правило, код и бд имеют плохую архитектуру и написать API для взаимодействия никто не берется.
Меня вот лично больше раздражает даже другое: в одном и том же учреждении могут каждый раз твои данные заново вносить, как будто ты впервые там.BigW
05.08.2016 00:22+1я, может быть, не совсем верно вас понял, но код взаимодействия уже написан. это транспортная шина, оно же СМЭВ. портал госуслуги (ЕСИА) это тоже сервис, который работает через СМЭВ с сервисами органов власти. т.е. там зарегистрированы сервисы, например ФНС и ПФР, взаимодействие по протоколу(технологии) soap. описание интерфейсов есть в открытом доступе (на smev.gosuslugi.ru). т.е. вы посылаете определенный запрос и получаете на него определенный ответ, а как там эти сервисы со своими базами взаимодействуют, это уже проблемы самих ФНС и ПФР…
prometheus_ru
04.08.2016 23:38+1Удивитесь, но взносы платятся одним куском. Т.е. делается одна платежка, в месяц, за все предприятие. А вот кому какую сумму зачислить на будущую пенсию — это определяется другим особым отчетом, РСВ-1. В его составе есть раздел с делением по лицам.
BigW
05.08.2016 00:16+1Удивился, честно, чудны дела твои… сначала запихали все в кучу, а теперь разгребаем…
поискал РСВ-1, нашел… это, видимо, раздел стр. 11_Разд.6.1_6.6. правда, на сколько я понял РСВ-1 сдается поквартально, а отчет СЗВ-М нужно помесячно…prometheus_ru
05.08.2016 00:18+1Да, конечно :) Ведь отказать в индексации пенсии работающему пенсионеру надо с квантом времени «ежемесячно».
А вот разделить пришедшие за три месяца взносы на конкретных людей можно и с квантом времени «раз в квартал» — для этого и нужен РСВ-1.
D77D
05.08.2016 21:28«Вариант того, что просто не могут договориться между собой — крайне сомнителен»
Отнюдь не сомнителен. В гос.аппарате нет термина «договориться». Есть только «приказать исполнить, назначив одного главного, остальных выстроить». Представьте, что главным назначили, например, МВД. А вы пришли в ПФР. И ПФР-овский начальник теперь должен, как последний плебей, просить МВД выдать ему данные на вас?? Да он удавится раньше, чем так сделает! Ещё, чего доброго, его и самого тогда могут «оптимизировать», ибо зачем он нужен?
Вот и дуют щёки.
bingo347
06.08.2016 05:34Нужно смотреть в корень проблемы. Не один квалифицированный разработчик не пойдет работать на госсектор.
Например мне в госсекторе, с моим стажем (5 лет в коммерческой разработке, 3 из них как ИП, так что не в счет) и непрофильным высшим (учитель информатики), предложат максимум 25 тыс…
Сейчас жизнь вынудила работать на дядю, и я ощущаю, что мой доход (сотка с хвостиком + премии) заметно упал…
Недавно случай был… жизненный
Сижу в баре, по соседству сидит компания, отмечает чей то ДР, один из них в определенный момент высказывается: «Я ж все таки программист!» Подхожу значит познакомится, «на чем пишешь?» — «на всем понемногу» — «а основной язык?» — «Java». Я про себя уже думаю, что если android, то знакомство крайне полезное…
Меж тем он у меня спрашивает «Зачем интересуешься? Тоже программист? Сам то на чем пишешь?» — «Во основном на JS изредка на Go»… И тут его понесло, на предмет «JS — говно, Java рулит», что я никак не ожидал от дяди за 40… Особенно убила фраза «Да в твоем JS пустой массив умножить на пустой массив будет NaN!» — «Вообще-то []*[] будет 0» — «Я сейчас про ванила-JS говорю, а не всякие там ангуляры и ноды»
Вообщем пришел он к выводу что я кодер-недоучка, так как после 5 кружки пива не могу дословно (как в википедии) дать определение рефлексии…
Уже разворачиваясь, но так как зацепило, спрашиваю: «А давно в программировании?» — «больше 20 лет» — «А что ты за эти 20 лет сделал?» — «Я сервера для налоговой пишу»prometheus_ru
06.08.2016 23:30Я скажу так, что в налоговой бардака гораздо меньше.
Налоговая жрет этот кактус с 2003 года, поэтому у них на сегодня самая стройная и нормальная система. 3-НДФЛ только нельзя сдавать в электронке, но в остальном — крайне хорошо.
ПФ же проигнорировал вообще весь опыт налоговой и начал строить свой чудный мир. О том, как это ужасно было говорит только то, что автор в 2012 году несколько раз судился и выиграл у ПФ.xamdeath
07.08.2016 08:58Это, скорее, налоговая учла опыт пфр. Пенсионный начал заниматься этим с 97 года, если память не подводит.
prometheus_ru
07.08.2016 10:47Вы путаете. ПФ в целом только с 2010 начал принимать что-то в электронке. До этого у них было достаточно мало отчетности, всего раз в год носили «файлик на дискетке».
1. Пенсионный фонд изначально (и до сих пор) не имеет концепции «специализированный оператор». Из-за этого куча проблем, которые в налоговой даже не возникают, т.е. когда ты отправил отчет, это подтверждает оператор. ПФ в таких случаях говорит «ничего не знаю».
2. ПФ до последнего времени имел процедуру взаимодействия в электронном виде, которая даже законной не являлась, поскольку была принята просто в виде внутренней указивки правления ПФ. Это не смущало суды, хотя в нескольких случаях суд просто не принимал их указивку в роли действующей.
3. Только ПФ умудрялся отвечать сначала положительным протоколом, а потом отрицательным.xamdeath
07.08.2016 11:09Не путаю. Или Вы считаете, что «на дискетке» — это не в электронном виде?
Причём не раз в год, а раз в полгода. Это уже потом раз в год стало. Вот что сейчас хорошо стало — не надо ещё дополнительно предоставлять нее… грандиозного объёма папки с этими же данными в бумажном варианте. Изначально то ведь это был лютый ужас: на КАЖДОГО сотрудника отдельный лист.miktim
09.08.2016 10:36Автор упоминал: для ПФ периодичность отчетности по СЗВ-М — ежемесячно, по РСВ-1 — ежеквартально (очередной срок сдачи подкатывает). Отдельный лист на ЗЛ (сотрудника) был связан со стажами (в т.ч. льготными. Случалось до 15 строк). И, на всякий случай, до 97 (?) года пенсионные платежи принимала налоговая.
xamdeath
06.08.2016 23:27«нужно указать их СНИЛС (это уникальный номер для каждого), а также ФИО (совершенно непонятно, зачем).»
Автор никогда не сдавал отчёты на предприятиях с большим оборотом сотрудников?
Случается, что возвращают ошибки с несоответствием снилс и фио.prometheus_ru
06.08.2016 23:28Автор сдавал, конечно, но тут дело вот в чем — все попытки сделать match по именам обычно лажают на всяких инстранцах, типа «Латыфджонаевич != Латыфджанаевич», только добавляя ада мглы.
В целом, если все платежи корректно идентифицированы, а они обычно без ошибок по СНИЛС, то никакого смысла дублировать эту информацию нет.xamdeath
07.08.2016 09:05Ну да. В основном такого рода. Причём никакой системы нет с отчествами и постоянно, то Бабай Оглы, то Бабай-Оглы. А ещё, бывает, люди фамилию меняют. А СНИЛС не торопятся. И если забыть этот нюанс, то, после выгрузки не исправив фамилию вручную, получаешь все прелести несоответствия СНИЛС и ФИО.
miktim
09.08.2016 09:48При смене фамилии СНИЛС (да и ИНН) не меняются.
xamdeath
09.08.2016 15:46При смене фамилии меняется
1) Собственно фамилия
2) Паспорт
3) СНИЛС (карточка, не знаю как она называется, посмотреть не могу, прое… фукал), номер остаётся тот же.
4) Свидетельство (или как там его) об ИННmiktim
10.08.2016 08:01СНИЛС (Страховой НОМЕР Индивидуального Лицевого Счета), документ — Страховое свидетельство Государственного пенсионного страхования.
ИНН (Индивидуальный НОМЕР Налогоплательщика), документ — Свидетельство о постановке на учет в налоговом органе физического лица по месту жительства на территории Российской Федерации. (так на моем)
Будьте точнее в формулировках, поскольку меняется документ а не номер.
SemenovVV
08.08.2016 13:13Почему данная публикация выложена в раздел алгоритмы? Мне непонятно.
Если у вас в БД символьные поля хранятся с пробелами в конце это тоже не хорошо.
сделайте update этих полей.
--- t-sql update [Таблица с сотрудниками] set fio = ltrim(rtrim( fio)) ,name = ltrim(rtrim( name)) ,otch = ltrim(rtrim( otch))
prometheus_ru
09.08.2016 10:45Благодарю за алгоритм, но увы, данные сотрудников даже близко не хранятся в базе, по которой можно гонять T-SQL. Кроме того, правильное хранение ФИО сотрудника обычно не касается того вопроса, что алгоритм, который делает выгрузку, сам по ошибке вставляет эти пробелы.
А в раздел «Алгоритмы» это пришло потому, что не лишне будет в очередной раз помнить — любые строчные данные на входе нужно trim, а уже потом разговаривать.miktim
09.08.2016 10:50Алгоритм (программа) ошибаться не может. Ошибаются разработчики.
prometheus_ru
09.08.2016 10:52Я не очень верно сформулировал, но мысль понятна :)
miktim
09.08.2016 11:16Я понимаю ваш крик души. С точки зрения XML, наличие лидирующих/завершающих пробелов в тексте тега криминалом не является. Но если в правилах формирования от ПФ явно указано «без пробелов» — извольте следовать. И да, что за бардак в вашей консерватории, когда «даже близко не хранятся»?
prometheus_ru
09.08.2016 11:43В России безусловным лидером среди решений для подготовки отчетности / ведения учета заработной платы являются продукты 1С.
Ну а локальные версии просто хранят это в таком виде, где T-SQL особо не побалуешь.miktim
09.08.2016 12:14Согласен. Структуры 1С достаточно сложны. А они что, перестали исправлять баги в отчетах и предоставлять обновления пользователям?
prometheus_ru
09.08.2016 12:26Ну дело в том, что не только сама 1С создает прикладные конфигурации, в которых ведется учет.
Например, стандартный продукт от 1С, который называется «Зарплата и управление персоналом» достаточно сложен и удобен, если сотрудников у предприятия более 20-30.
Для более мелких организаций чаще применяется продукт от калужских работников ножа и кода, называется Камин :) Там с багами не так хорошо, вернее, гораздо хуже.miktim
09.08.2016 13:45По сути статьи:
1) ПФ РФ совершенно ни при чем. По мере умения исполняет принятые ФЗ. Вы же не будете оспаривать правила формирования ODF или OOXML (там тоже XML). Или будете?
2) Количество бухгалтеров есть следствие сложности законодательства по бухгалтерскому учету и отчетности. Счастье наступит, когда вся бухгалтерия будет выражена Бэкусом-Науэром. Кстати, обилие отчетных параметров кому-то вводить надо (это я возражаю ВВП).
3) Через Хабр вы вряд ли достучитесь до подсознания региональных разработчиков. Свежий CheckXML и редактор вам в руки. Иногда приходится и самому поработать.
До встречи.
kefirfromperm
В первый раз, что ли?