Эти 2 функции добавить в общий модуль "ПроцедурыПерсонифицированногоУчета"
// ----------------------------------------------------------------------------------------------
Функция ПолучитьНомерКварталаОтчетногоПериода(ДатаПериода)
НомМесяца = Месяц(ДатаПериода);
Год = Год(ДатаПериода);
НомМесяца = ?((Год=2010) и (НомМесяца=7), 4, НомМесяца);
Возврат ?(НомМесяца=1, 1, ?(НомМесяца=4, 2, ?(НомМесяца=7, 3, 4)));
КонецФункции // ПолучитьНомерКварталаОтчетногоПериода
// ———————————————————————————————-
// Параметры:
// ОтчетныйПериод — дата
//
// Возвращает:
// Число (5,0)
//
Функция ОпределитьНомерПервойПачкиПоПравиламПФР(ОтчетныйПериод) Экспорт
ГодПачки = Год(ОтчетныйПериод);
Если ГодПачки = 2010 Тогда
НомерПачки = (12 + ГодПачки — 2008) * 1000 + 1;
Иначе
Квартал = ПолучитьНомерКварталаОтчетногоПериода(ОтчетныйПериод);
НомерПачки = (16 + (ГодПачки — 2011) * 4 + (Квартал — 1)) * 1000 + 1;
КонецЕсли;
Возврат НомерПачки
КонецФункции // ОпределитьНомерПачкиПоПравиламПФР
Функцию ПолучитьСчетчикВыгруженныхФайловПФР из общего модуля «РегламентированнаяОтчетность» я изменил таким образом, чтобы она сравнивала текущий номер пачки из регистра, и номер пачки по правилам ПФР. При различии в значениях берется ПФР-номер.
Функция ПолучитьСчетчикВыгруженныхФайловПФР(Организация, Год, ОтчетныйПериод = Неопределено) Экспорт
НомерПачки = 0;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| СчетчикВыгрузокПФР.Значение КАК Значение
|ИЗ
| РегистрСведений.СчетчикВыгрузокПФР КАК СчетчикВыгрузокПФР
|ГДЕ
| СчетчикВыгрузокПФР.Организация = &Организация
| И СчетчикВыгрузокПФР.Год = &Год");
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("Год", Год);
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следующий() Тогда
НомерПачки = ?(НЕ ЗначениеЗаполнено(Выборка.Значение), 0, Выборка.Значение);
КонецЕсли;
КонецЕсли;
Если ОтчетныйПериод <> Неопределено Тогда
НомерПервойПачки = ПроцедурыПерсонифицированногоУчета.ОпределитьНомерПервойПачкиПоПравиламПФР(ОтчетныйПериод);
Если Лев(НомерПервойПачки, 2) = Лев(НомерПачки, 2) Тогда // соблюдено условие нумерации ПФР
Возврат НомерПачки;
КонецЕсли;
Возврат Макс(НомерПервойПачки, НомерПачки);
КонецЕсли;
Возврат НомерПачки;
КонецФункции
Теперь вызывать функцию ПолучитьСчетчикВыгруженныхФайловПФР из документов персучета необходимо с дополнительным параметром
ОтчетныйПериод. Если новый параметр не передать, то произойдет расчет номеров по алгоритму 1С.
Соорудили бы как внешнюю обработку (а то влом считать, какой ПФРский номер должен быть у пачки). Руками же потом в базе проще поставить тот номер, какой пенсионщики хотят, чем конфу править. А так: хочется нажать «спасибо», но рука не поднимается… 🙂
Автор, ну что за манера вставлять неотформатированный код…или вы думаете что так красивее?
(1) Логично. Сделаю.
(2) Я думаю, что это его инфостарт так форматирует =) Вставлено ведь из 1С-ки…
а зачем?
Чушь какая-то.
Никаких «правил ПФР» для нумерации пачек не существует.
Мои клиенты по моему совету нумеруют пачки по дате сдачи Год-Квартал и остается еще 100 номеров пачек(чего вполне хватает для 1 квартала), т.е. сейчас идут номера 13301, 13302, 13303 …