ЗУПовские забавы #1: Выгрузка данных в ПФР
Зарплату сотрудников нашей компании мы рассчитываем при помощи великого и ужасного продукта от компании 1С – «Зарплата и управление персоналом». Данную конфигурацию используют во многих организациях. Неважно – слишком большая она или маленькая. Если в организации имеются всякие премии, надбавки, бонусы, то ЗУП – одно из лучших решений. Все необходимые расчеты можно настроить и потом наслаждаться спокойной жизнью. Произведя грамотный твик, на начисление заработной платы будет уходить не больше 10-15 минут (все зависит от особенностей компании).
Разве не сказка? Вот только на фоне этих чудес, очень часто возникают вполне реальные и досадные ошибки. В данном цикле постов я буду рассказывать тебе о трудностях, с которыми мне довелось столкнуться и способах их решения. Кроме проблем и решений я буду делиться своими интересными находками, которые я обнаружил при работе с ЗУП. Надеюсь, посты будут интересными и нескучными 
Первый пост данной серии я хотел бы посвятить возможности ЗУП’а формировать пачки СЗВ-6, СЗВ-4 для дальнейшей выгрузки данных в XML файл, который затем можно сразу отправить в ПФ. Возможность крайне полезная и позволяет сэкономить кучу времени, главное всегда следовать одному правилу – держать данные о сотрудниках в актуальном состоянии. Это означает, что если у сотрудника изменилась фамилия, адрес или другие важные сведения (которые занесены в ЗУП), то нужно не лениться, а сразу вносить соответствующие изменения. Тогда выгрузка отчетности будет казаться сказкой, а не каторгой. В моей практике были ситуации, когда у многих сотрудников были не заполнены адреса. Точнее заполнены неправильно. Из-за этого зарплатнице пришлось сильно попотеть, чтобы в кратчайшие сроки исправить все адреса. Уж лучше все делать сразу, но по немного, чем потом не по-детски надрываться и пытаться все поправить за одну ночь.
Теперь расскажу о проблеме, с которой мне недавно пришлось столкнуться. Дело было так. Подошла ко мне наша зарплатница и сообщила, что ей пришлось подправить в справочнике «Физические лица» имена и фамилии некоторых людей. Операция довольно простая и я не знаю, как с ней можно не справиться. Однако, как оказалось позже, тут есть свои нюансы. Дело в том, что когда зарплатница осуществляла правку, у нее уже были сформированны документы: «Опись сведений АДВ-6-2» и «Сведения о страховых взносах и стаже застрахованных лиц». Первый документ содержит пачки, с информацией о сотрудниках, которая должна быть передана в ПФ, а второй представляет собой ту самую пачку. Если следовать здравой логике, то после того как были внесены изменения в справочники «Физические лица»/«Сотрудники», нужно вернуться в документ и повторно выполнить выгрузку данных в XML файл (чтобы туда попала информация с учетом внесенных изменений).
Зарплатница мне сообщила, что пробовала делать выгрузку заново, но несмотря на внесенные изменения, в XML-файл ничего обновленного не попадало. Я сначала не поверил своим ушам. Зашел в базу, попробовал все сделать самостоятельно, но результат был такой же, как и у зарплатницы – никакой. Опускать руки – не мой стиль и я стал копать. Сначала попробовал самое простое решение – отменить проведение выгружаемых документов, провести их заново и вновь произвести выгрузку. Увы, на результат это решение не повлияло. В табличной части документа отображаются верные данные, а в xml попадает совсем не то.
Светлых идей в голове не было, а в код лезть не хотелось, поэтому я решил пойти и погуглить по этой теме. Вдруг кто-то уже сталкивался с подобной проблемой и давно опубликовал рабочее решение. Рыл, рыл и ничего не нарыл. Хотя нет, мне попадались подобные вопросы, но без ответов.
Поскольку ответа в инете я так и не нашел, то мне оставалось только запустить конфигуратор и начать ковыряться в коде. Нашел нужный документ (СведенияОТрудовомСтажеИЗаработкеСЗВ4), установил бряк и начал отладку. Вот тут и начало выясняться много всего интересного.
Первое, что мне бросилось в глаза – это способ формирования выходного XML файла. Оказывается, что файл на основе внесенных в документ данных формируется заново лишь в том случае, если документ не проведен. Если документ проводился, то все содержимое файла берется из регистра сведений «Архив данных регламентированной отчетности». Эта информация, конечно же, никак не решает проблемы, но зато ты знаешь, где все эти штуки хранятся.

Ладно, отлаживаю дальше и натыкаюсь вот на такой код запроса (он немного большой, поэтому привожу малую часть):
ВЫБРАТЬ СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.НомерСтроки, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.ФизЛицо КАК ФизЛицо, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.АдресДляИнформирования, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.СтраховойНомерПФР, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Фамилия, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Имя, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Отчество, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.НачисленоСтраховая, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.УплаченоСтраховая, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.НачисленоНакопительная, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.УплаченоНакопительная, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.Организация, ВЫБОР КОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ТипСведенийСЗВ В (ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.КОРРЕКТИРУЮЩАЯ), ЗНАЧЕНИЕ(Перечисление.ТипыСведенийСЗВ.ОТМЕНЯЮЩАЯ)) ТОГДА СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.КорректируемыйПериод ИНАЧЕ СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.ОтчетныйПериод КОНЕЦ КАК ОтчетныйПериод, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка.КатегорияЗастрахованныхЛиц ПОМЕСТИТЬ ВТЗастрахованныеЛица ИЗ Документ.СведенияОТрудовомСтажеИЗаработкеСЗВ4.РаботникиОрганизации КАК СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации ГДЕ СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Ссылка = &ДокументСсылка ИНДЕКСИРОВАТЬ ПО ФизЛицо … ///ВЫРЕЗАНО
Данный запрос выбирает все данные из табличной части документа (под данными подразумеваются ссылки на справочник «Сотрудники») и результат выполнения отправляться в процедуру, которая занимается формированием XML файла. Вроде все, как и должно быть, но мое внимание привлекли некоторые имена из выбираемых полей:
СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Фамилия, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Имя, СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации.Отчество
В табличной части данного документа я не видел одноименных полей. Напрашивается вывод, что соответствующие реквизиты есть, только они не вынесены в форму и недоступны для редактирования со стороны пользователя. Это логично, потому что они заполняются на основании элемента справочника «Сотрудники». Стоит пользователю добавить новый элемент в табличную часть, как сработает событие и выполнится код заполняющий данные реквизиты.
Собственно говоря, причина столь странной выгрузки в файл была перед моими глазами.
После того как зарплатница сделала правку элементов справочника она не перезаполнила документ «СведенияОТрудовомСтажеИЗаработкеСЗВ4РаботникиОрганизации». Из-за этого, реквизиты «Фамилия, Имя, Отчество» табличной части не были обновлены. Вот и получается, что когда работаешь с документом, видишь измененный элемент справочника, а выгрузка берет информацию из поля, которое недоступно для просмотра.
На мой взгляд, разработчики поступили некрасиво. Зачем пользователю выполнять полное перезаполнение содержимого табличной части, если он лишь внес изменения в наименование некоторых элементов? Кроме того, об этой особенности нигде не упоминается, следовательно, пользователь не сможет решить ее самостоятельно. Не уже ли нельзя было предусмотреть режим обновления добавленных в ТЧ документа записей? Да и можно было не жмотиться, а сделать возможность включения отображения скрытых полей. Так бы пользователь смог понять причину неправильной работы и сообщить нормальным языком программисту/администратору суть проблемы. Скажу честно, иногда у меня складывается ощущение, что многие типовые конфигурации от 1С были придуманы для того, чтобы чаще обращаться за помощью к франчам/программистам. Тут я говорю не про качество кода, а про юзабилити. Многие вещи непродуманны в интерфейсном плане, и порой очень тяжело сообразить, как и что должно работать. Инода проще залезть и посмотреть код, нежели думать о таинственном предназначении некоторых кнопочек.
А как же решение?
Я как-то резко ушел в сторону и совсем забыл привести решение проблемы. Если не хочется слишком много заморачиваться, то проще перезаполнить документ. На это не требуется много времени и эту операцию вполне можно себе позволить. Если же полностью перезаполнить документ нельзя, а записей подвергнувшихся правки немного, то можно просто найти их в ТЧ и выбрать заново. В результате этой нехитрой манипуляции произойдет обновление скрытых реквизитов.
- Spider_NET's блог
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 2239 просмотров



Комментарии
17 комментария(ев)Дата: Пнд, 29/11/2010 - 18:14
Ну брат сколько не парился по ПФР не когда с первого раза не работает не с одной разработкой 1С на 7.7 Камин: Расчет ЗП,Типовая Бух, проблемы были, на 8-ке ЗУП и опят же Камин, опять проблемы все время надо что то дописывать. Еще сюда можно отнести программу сдачи электронной отчетности и в ней ПФР не корректно работает. Возьми Налоговую, Статистку, идеально работает. А ПФР это не что...
Дата: Пнд, 29/11/2010 - 18:45
Постоянно сталкиваюсь с проблемами передачи данных в ПФР. Программа Документы ПУ 5 хорошая, нареканий нет... но нужно контролировать сами данные, если неверно написаны реквизиты или коды, приходится переделывать...
Дата: Пнд, 29/11/2010 - 18:58
jimmyjonezz
Ты прав брат тут только контроль спасает. В нашем ПФР работают типы со школьной скамейки они даже свои ошибки при разноски не признают. Было дело пришло на днях письмо типа я не уплатил по фирме взносы), банк разнесли с ошибкой а когда начали проверять отчетность передаю прислали письмо что типа отчетность. О брат насчет кодов ты прав, это видать по всех РФ идет такая байка. А номера пачки тоже просят ставить такие которые у них базе есть, чтобы все шло по порядку.
Дата: Пнд, 29/11/2010 - 19:49
Есть такое...
Дата: Пнд, 29/11/2010 - 20:01
Еще ПФР готовит подарок ежегодный после 10дней гуляния в январе, все как начнут сдавать отчеты, а у спецов ПФР, опять что то полетит и давай пеню рассылать.
Дата: Пнд, 29/11/2010 - 21:12
ждем, ждем...
у нас еще программа есть, по учету кадров - "АС Кадровик". так вот она сделана на FoxPro, ой и глючная... я в прошлом году кое - как пакет собрал, кадровичка так рада была, что все получилось... до этого она сама сдавала, раз пять в столицу (Казань) ездила, ее даже из за этого чуть не уволили...
Дата: Пнд, 29/11/2010 - 21:58
Если отбросить этот глюк (который относится к глюкам 1С), то в той же программе "документы ПУ" их еще больше. Я вот заметил, что когда приближается срок сдачи документов, то начинают валить массовые апдейты. Причем обновляются как конфигурации 1С, так и программы вроде "Документы ПУ". Не уже ли нельзя все заранее проверить и протестировать? Почему за день до финального срока сдачи отчетности нужно качать новую версию либо конфы, либо программы вроде "документы ПУ"? Мы когда в июле сдавали отчетность, то намучились. Из 1С все выгружалось корректно, а программа ПУ просто не принимала файл выгрузки. Потом вышел апдейт (в самый последний день) программы "Документы ПУ" и все заработало. Ну почему такую простую программу не могут нормально отладить? Ведь можно же!
Дата: Пнд, 29/11/2010 - 22:12
Spider_NET
Ага брат, так самое прикольное у них это начинается за 1-2дня перед сдачей в эл.виде, ну это как всегда. 1С, программа проверки файлов на корректность перед загрузкой файла для отправки. Радует одно что в 1С код открыт и ты сам можешь подправить, а побочные программы исправляют после то как все начнут говорит об этой ошибке.
Дата: Пнд, 29/11/2010 - 22:39
2plaha,
Да, решения от 1С в этом плане выделяются. Я помню как раньше мы мучались с выгрузкой из программы "Инфо-бухгалтер". Вот там была полная жо... Настолько кривой программы я еще не видел. Один встроенный язык чего стоил
Дата: Пнд, 29/11/2010 - 23:06
Spider_NET
Ух брат, слышал много про Инфо-бухгалтер как всегда не самое хорошое, когда автоматизацию проводил на предприятии его исключили .
Дата: Втр, 30/11/2010 - 09:16
Инфо-бухгалтер - полная лажа. Я не знаю как этой программой можно вообще пользоваться. Может мое мнение предвзято, но я когда попробовал в нем поковыряться, то меня затошнило. Все как-то нелогично и глючно. В 1С:Бухгалтерия 8 все куда лучше продумано. Да даже семерочная бухгалтерия (от 1С) лучше, чем ИБ (хотя, семерку я ненавижу). Имхо.
Дата: Втр, 30/11/2010 - 16:13
Spider_NET
Согласен 8.1 - 8.2 очень удобные как среда программирования все есть для программиста. В 7-ке отличается тем что нет большенство процедур как в 8-ке. Я пока 7-ке тусю т.к., фин отдел не хочет переучиваться на 8-ку. Но в расчет зарплаты + кадровую службу перевел на 8-ку). Хотя вот пример у нас первый наукоград РФ, вот атомная станция еще на бух 6.0 тусит, поддержка есть в плане правовой формы выпускают + экономят на программистах на 6.0 не надо знать навыки программирования там бух может все настроить и подправить.
Дата: Втр, 30/11/2010 - 18:47
я на 8.2 только веду учет товарно материальных ценностей и движение денежных средств... увы, зарплату и кадры, ну никак не могу сделать - не знаю с чего начать...
Дата: СР, 01/12/2010 - 16:48
jimmyjonezz
Устанавливай ЗУП и переноси данные людей которые работают по сей день, приказы создавай и с 01.01.2011 начинай расчет зарплаты, а в программе которой ведешь держи ее для старых справок к примеру 2ндфл за 2010, а к концу 2011 можешь плавно переносить база которую вел в архив. Как только народ перенесешь, приказы делаешь теме же числами как они у тебя заверены в старой ИБ, а расчет с начало года начинай 2011, насчет отпусков и больничных данные из старой ИБ бери и подставляй в новую только итоговые суммы больше не чего не заноси. 2011 год чисто будет выравнивать кадровую и запрлатную историю фирмы, а 2012 будет идти как по маслу и лишних тело жвижений. С зарплатой и кадрами проще, чет переносить данные по "веду учет товарно материальных ценностей и движение денежных средств", тут надо чтобы все красиво было и сходился баланс.
Дата: СР, 01/12/2010 - 16:51
jimmyjonezz
Если что обращайся в личку стукни, я тебе координаты для связи свои дам.
Дата: СР, 01/12/2010 - 18:06
Plaha
Если не сложно глянь ветку на нашем форуме: ЗУП для бюджетных образовательных учреждений
Дата: ЧТ, 02/12/2010 - 16:31
Так, я чувствую нужно цикл постов по настройке ЗУП продолжать делать. Я с ЗУПом пока не очень долго работаю, но рассказать уже есть что. Да и plaha думаю дополнить сможет.