Ошибка в программе "1С:Зарплата и кадры 7.7" при записи пачки при подготовке сведений для ПФР
Начиная с 1 квартала 2013 года, применяются новые формы персонифицированного учета. Соответствующие изменения в постановление
Правления ПФР от 31.07.2006 № 192п «О формах документов индивидуального (персонифицированного) учета в системе обязательного пенсионного
страхования и Инструкции по их заполнению» внесены постановлением Правления ПФР от 28.01.2013 № 17п,
зарегистрированным в Минюсте России 18.03.2013 № 27739. Подробнее можно
прочитать здесь.
На момент написания статьи в программе "1С:Зарплата и кадры 7.7" (релиз 335)
многие пользователи столкнулись с такой ошибкой:
ТаблицаВыплат.ВыбратьСтроки();
{Отчет.ПодготовкаСведенийДляПФР2010.Форма.Модуль(9508)}: Значение не
представляет агрегатный объект (ВыбратьСтроки),
возникающей в момент записи пачек в файл.
Ниже будет описан способ
решения этой проблемы. Все сказанное ниже о программе "1С:Зарплата
и кадры 7.7" справедливо именно для релиза 335!
Ошибка возникает в том случае, если сотрудник,
включенный в пачку при подготовке сведений для ПФР, в отчетном периоде
находился в трудовых отношениях с организацией, т.е. не является
уволенным или временно неработающим, но при этом у него нет начислений
зарплаты. Причем этот статус сотрудника определяется по реквизиту
"Состояние физлица".
Порядок исправления ошибки следующий:
-
открыть специализированный отчет "Проверка
наличия таблицы выплат" (см. рис.1)
-
в процессе формирования отчета в окне сообщений
появится список проблемных сотрудников (см. рис.2)
-
в отчете "Подготовка сведений для ПФР" открыть
окно редактирования данных проблемного сотрудника, перейти на
закладку "Сведения о выплатах" и нажать кнопку "ОК" (см. рис.3).
-
в отчете "Подготовка сведений для ПФР" выгрузить
пачку в файл.
|

Рис.1

Рис.2

Рис.3
Несколько пояснений для программистов.
В отчете "ПодготовкаСведенийДляПФР2010" в процедуре
ЗаполнитьИндивидуальныеСведения() формируется таблица значений
ТаблицаСтажиСотрудников:
ТаблицаСтажиСотрудников = ПолучитьТаблицуСтажиСотрудников(ТаблицаСотрудниковСКатегориямиЗЛ,
ДатаНачала);
В эту таблицу попадают все сотрудники, находящиеся в трудовых
отношениях с организацией (определяется по реквизиту "Состояние физлица"), не
попадают уволенные сотрудники, у которых в отчетном периоде нет начислений
(выплат), но есть уплаты страховых взносов по ним. Для каждого сотрудника в
таблице значений ТаблицаСтажиСотрудников есть таблица значений
ТаблицаСтажаСотрудника, а у нее ТаблицаВыплат. Вот эта ТаблицаВыплат и должна
существовать обязательно, т.е. этот реквизит не должен быть пустым значением. В
момент формирования таблицы значений ТаблицаСтажиСотрудников
(см. строку выше) ТаблицаВыплат есть у всех
сотрудников, но дальше выполняется процедура
ЗаполнитьСуммыВзносыВыплаты(ТаблицаСтажиСотрудников,
Сотрудники, ДоходыВычетыНалогиСотрудников);
Вот здесь и возникает проблема. Внутри этой процедуры
формируется ТабВзносовИВыплат, проблемные сотрудники в ней есть, но
ТаблицаВыплат у них нет и это пустое значение перезаписывается в
ТаблицаСтажаСотрудника:
ТаблицаСтажаСотрудника.УстановитьЗначение(НомСтрокиТС,"ТаблицаВыплат",ТаблицаВыплат);
Ключевая строка:
Если ТаблицаСтажиСотрудников.НайтиЗначение(Сотрудник,НомСтрокиТСС,"Сотрудник")=1
Тогда
сотрудники, по которым есть только уплата, это условие
обходят, потому с ними и не возникает проблем (их нет в ТаблицаСтажиСотрудников
на данный момент), а вот сотрудники, присутствующие в ТаблицаСтажиСотрудников,
но не имеющие начислений, "получают" здесь пустое значение ТаблицаВыплат.
Как именно это исправлять - дело вкуса, можно например
использовать глСоздатьТаблицуВыплатСЗВ64() в строке
ТаблицаСтажаСотрудника.УстановитьЗначение(НомСтрокиТС,"ТаблицаВыплат",ТаблицаВыплат);
Как то так:
ТаблицаСтажаСотрудника.УстановитьЗначение(НомСтрокиТС,"ТаблицаВыплат",?(ПустоеЗначение(ТаблицаВыплат)=1,
глСоздатьТаблицуВыплатСЗВ64(), ТаблицаВыплат));
Программу установки
специализированного отчета "Проверка наличия таблицы выплат" можно получить в разделе
бесплатных программ.
© Борис Балясников, апрель 2013г.
|