Подготовка сведений для ПФР 2011 с расчетом уплаченных НЕ через коэффициент

21.06.11

Задачи пользователя - Адаптация типовых решений

Создан для исправления любого предыдущего отчета  с последующим созданием отчетов в свете новых требований ПФР.

Скачать исходный код

Наименование Файл Версия Размер
ПодготовкаСведПФР_НЕ_коэффициентомРелиз3.ert
.ert 453,50Kb
246
.ert 453,50Kb 246 Скачать

Использует файл сохраненный настроек отчета за прошлый период (например - "_1_ИСХОДНАЯ_12010.pf")

Сделан для себя (НЕ ДЛЯ УПРОЩЕНКИ).

Старался минимизировать свои изменения, они помечены "// новое начало" и "// новое конец"

Для  исправления предыдущего отчета или создания нового, но с учетом доплаты или переплаты в прошлом отчете, поставить флажок  "в прошлом периоде"

Для создания нового без исправлений, с расчетом не коэффициентом, и с условием, что прошлый период был рассчитан не коэфф. и не требуется доплата/удержание за него, оба флажка: "в этом периоде" и  "в прошлом периоде" НЕ ставить.

 

По сути изменения:

Добавил процедурку:

 

// Новое начало           СосчитатьВыплатыЧерезНачисленияСоЗдвигомНаМесяц()
//******************************************************************************
// СосчитатьВыплатыЧерезНачисленияСоЗдвигомНаМесяц() 
//Описание:
//процедура заполняет суммы уплаченных взносов пересчитав начисленные
//по сотрудникам  за тот-же  период со сдвигом на месяц назад
//
Процедура  СосчитатьВыплатыЧерезНачисленияСоЗдвигомНаМесяц() 
ТабПоУплатамПредПериод = СоздатьОбъект("ТаблицаЗначений");
ТабПоУплатамПредПериод.НоваяКолонка("Объект");
ТабПоУплатамПредПериод.НоваяКолонка("Период"); 
ТабПоУплатамПредПериод.НоваяКолонка("УплачСтрах"); 
ТабПоУплатамПредПериод.НоваяКолонка("УплачНакоп");
ТабПоУплатамТекПериод = СоздатьОбъект("ТаблицаЗначений");
ТабПоУплатамПредПериод.Выгрузить(ТабПоУплатамТекПериод);
 
    // вычислим период, за который начисленные СтрахВзносы входили в уплату по текущему периоду
ТекущийОтченыйПериод= ПолучитьДатуНачала(); 
НачОтсчТекПериодаРасчета= НачМесяца(ТекущийОтченыйПериод - 1); 
КонОтсчТекПериодаРасчета= КонМесяца((Мин(глПолучитьДатуОкончанияОтчетногоПериодаСЗВ(ТекущийОтченыйПериод),ДатаОтчета))-32); 
 
// вычислим период, за который начисленные СтрахВзносы входили в уплату по предыдущему периоду
// что-бы узнать остатки с прошлого периода. Если Сотр был уволен в середине предыдущего периода
ДатаСоЗдвигом= ПолучитьОтчетныйПериодПоДате(НачОтсчТекПериодаРасчета);
ВременОтчетныйПериод= ОтчетныйПериод;
ОтчетныйПериод= ДатаСоЗдвигом; 
 
ПредыдущийОтченыйПериод= ПолучитьДатуНачала();
ОтчетныйПериод = ВременОтчетныйПериод;
ТекущийОтченыйПериод= ПолучитьДатуНачала();  // возможно лишнее обращение и можно удалить
НачОтсчПредПериодаРасчета= НачМесяца(ПредыдущийОтченыйПериод - 1); 
КонОтсчПредПериодаРасчета= КонМесяца((Мин(глПолучитьДатуОкончанияОтчетногоПериодаСЗВ(ПредыдущийОтченыйПериод),ДатаОтчета))-32); 
 
// Сообщить("ТекущийОтченыйПериод");
// Сообщить(ТекущийОтченыйПериод);
// Сообщить("НачОтсчТекПериодаРасчета");
// Сообщить(НачОтсчТекПериодаРасчета);
// Сообщить("КонОтсчТекПериодаРасчета");
// Сообщить(КонОтсчТекПериодаРасчета);
// Сообщить("ПредыдущийОтченыйПериод");
// Сообщить(ПредыдущийОтченыйПериод);
// Сообщить("НачОтсчПредПериодаРасчета");
// Сообщить(НачОтсчПредПериодаРасчета);
// Сообщить("КонОтсчПредПериодаРасчета");
// Сообщить(КонОтсчПредПериодаРасчета);
 
 
 
ТабПоУплатам = СоздатьОбъект("ТаблицаЗначений");
 
ЗапросПоВзносам=СоздатьОбъект("Запрос");
 
ТекстЗапроса="//{{ЗАПРОС(ЗапросПоВзносам)
|С НачОтсчПредПериодаРасчета по КонОтсчТекПериодаРасчета;
|Объект = ЖурналРасчетов.СтраховыеВзносы.Объект;
|ВР = ЖурналРасчетов.СтраховыеВзносы.ВидРасч;
|Результат = ЖурналРасчетов.СтраховыеВзносы.Результат;
|Регистрация = ЖурналРасчетов.СтраховыеВзносы.ДатаОкончания;
|Группировка Объект Без Групп Без Упорядочивания; 
|Группировка ВР Без Групп Без Упорядочивания; 
|Группировка Результат Без Групп;
|Без Итогов;
|Группировка Регистрация;
|Условие((Результат <> 0) И ((ВР = ВидРасчета.ПФРСтраховаяЧастьс2010) ИЛИ (ВР = ВидРасчета.ПФРНакопительнаяЧастьс2010)));
|"//}}ЗАПРОС
;
 
Если ЗапросПоВзносам.Выполнить(ТекстЗапроса)=0 Тогда 
Сообщить("Не удалось обработать журнал взносов");
КонецЕсли; 
ЗапросПоВзносам.Выгрузить(ТабПоУплатам);
ТабПоУплатам.Сортировать("Объект,Регистрация");
ТабПоУплатам.НоваяКолонка("ПериодОплаты"); 
 
ТабПоУплатам.ВыбратьСтроки();
Пока ТабПоУплатам.ПолучитьСтроку()=1 Цикл
Если ТабПоУплатам.Регистрация>=НачОтсчТекПериодаРасчета Тогда 
ТабПоУплатамТекПериод.НоваяСтрока();
ТабПоУплатамТекПериод.Период = ТекущийОтченыйПериод;
ТабПоУплатамТекПериод.Объект = ТабПоУплатам.Объект;   // удалить
ТабПоУплатам.ПериодОплаты = ТекущийОтченыйПериод;
Если ТабПоУплатам.ВР = ВидРасчета.ПФРСтраховаяЧастьс2010  Тогда
ТабПоУплатамТекПериод.УплачСтрах = ТабПоУплатам.Результат;
ТабПоУплатамТекПериод.УплачНакоп = 0;
ТабПоУплатам.ПериодОплаты = ТекущийОтченыйПериод;  // удалить
Иначе
ТабПоУплатамТекПериод.УплачНакоп = ТабПоУплатам.Результат;
ТабПоУплатамТекПериод.УплачСтрах = 0; 
КонецЕсли;
Иначе 
ТабПоУплатамПредПериод.НоваяСтрока();
ТабПоУплатамПредПериод.Период = ПредыдущийОтченыйПериод;  
ТабПоУплатамПредПериод.Объект = ТабПоУплатам.Объект;  
ТабПоУплатам.ПериодОплаты  = ПредыдущийОтченыйПериод;  // удалить
Если ТабПоУплатам.ВР = ВидРасчета.ПФРСтраховаяЧастьс2010  Тогда
ТабПоУплатамПредПериод.УплачСтрах = ТабПоУплатам.Результат;
ТабПоУплатамПредПериод.УплачНакоп = 0; 
Иначе
ТабПоУплатамПредПериод.УплачНакоп = ТабПоУплатам.Результат;
ТабПоУплатамПредПериод.УплачСтрах = 0; 
КонецЕсли;
КонецЕсли;
КонецЦикла; 
 
ТабПоУплатамТекПериод.Свернуть("Объект,Период","УплачСтрах,УплачНакоп");
ТабПоУплатамТекПериод.Сортировать("Объект,Период");
//ТабПоУплатамТекПериод.ВыбратьСтроку(,"ТабПоУплатамТекПериод_3_ВнутриПроцедуры");
 
ТабПоУплатамПредПериод.Свернуть("Объект,Период","УплачСтрах,УплачНакоп");
ТабПоУплатамПредПериод.Сортировать("Объект,Период");
//ТабПоУплатамПредПериод.ВыбратьСтроку(,"ТабПоУплатамПредПериод_3_ВнутриПроцедуры");
 
 
// ------------------------------------------------------------------------------------------
    // получим из файла настроек    
 
ОтчетныйПериодВременный= ОтчетныйПериод ;       
ОтчетныйПериод = ПредыдущийОтченыйПериод;
ДатаПериода = ОтчетныйПериод; 
 
ИмяФайла    = ПолучитьИмяФайлаНастроек();       
УплатыПредПериод= СоздатьОбъект("ТаблицаЗначений");
 
Если ФС.СуществуетФайл(ИмяФайла) =1 Тогда
ФайлНастр = СоздатьОбъект("Текст");
ФайлНастр.Открыть(ИмяФайла);
Иначе Возврат;
КонецЕсли;  
// список документов в 3-й строке
СтрокаСписокДокументов  = СтрЗаменить(ФайлНастр.ПолучитьСтроку(3), констКод1, констКод10);
УплатыПредПериод= ЗначениеИзСтрокиВнутр(СтрокаСписокДокументов); 
//УплатыПредПериод.ВыбратьСтроку(,"СписокДокументов УплатыПредПериод");
// очистим и восстановим переменные
    ОтчетныйПериод   = ОтчетныйПериодВременный;
ДатаПериода = ОтчетныйПериод; 
ИмяФайлаНастроек   = ПолучитьИмяФайлаНастроек();
ТаблицаПачки= "";
СтрокаСписокДокументов  = ""; 
ТабПоУплатам = "";
КонецПроцедуры      // СосчитатьВыплатыЧерезНачисленияСоЗдвигомНаМесяц()   
// новое конец      // СосчитатьВыплатыЧерезНачисленияСоЗдвигомНаМесяц()
 
 
ну и в процедуре  ЗаполнитьСуммыВзносов()  добавил:
 
ТабИсчисленоВзносов.ВыбратьСтроки();
Пока ТабИсчисленоВзносов.ПолучитьСтроку()=1 Цикл
 
КоэффициентСтраховая = 0;
КоэффициентНакопительная = 0;
 
ДатаПериода = ТабИсчисленоВзносов.ОтчетныйПериод;
НомСтроки = "";
Если ТабУплатыВзносов.НайтиЗначение(ДатаПериода,НомСтроки,"ОтчетныйПериод")=1 Тогда
КоэффициентСтраховая = ТабУплатыВзносов.ПолучитьЗначение(НомСтроки,"КоэффициентСтраховая");
КоэффициентНакопительная = ТабУплатыВзносов.ПолучитьЗначение(НомСтроки,"КоэффициентНакопительная");
КонецЕсли;
 
ТабИсчисленоВзносов.Ключ = ПолучитьКлючСотрудника(ТабИсчисленоВзносов.Сотрудник,ТабИсчисленоВзносов.КатегорияЗЛ);     
   // новое начало
НомСтрок1 = 0; 
НомСтрок2 = 0;
НомСтрок3 = 0;
НовУплачСтрах = 0;  
НовУплачНакоп = 0; 
Если  (КоэфДА=0) И (ДатаПериода=ТекущийОтченыйПериод) Тогда   // это  начислен/удерж тек периода и по новому
   ТабПоУплатамТекПериод.НайтиЗначение(ТабИсчисленоВзносов.Сотрудник,НомСтрок1,"Объект");
Если  (НомСтрок1=0) Тогда// не найдена, значт не было начислений и они будут состоять только из остатков с пр периода  
   ТабИсчисленоВзносов.УплаченоСтраховая = 0;
ТабИсчисленоВзносов.УплаченоНакопительная = 0;
Иначе    // нашли, плюсуем
ТабПоУплатамТекПериод.ПолучитьСтрокуПоНомеру(НомСтрок1);
ТабИсчисленоВзносов.УплаченоСтраховая = ТабПоУплатамТекПериод.УплачСтрах;   
ТабИсчисленоВзносов.УплаченоНакопительная = ТабПоУплатамТекПериод.УплачНакоп;  
КонецЕсли;
ИначеЕсли (КоэфДА=0) И (ДатаПериода<>ТекущийОтченыйПериод)  Тогда  //это  начислен\удерж прошл периода и по новому
Если  (КоэфДА1=0) Тогда// прошлый период был посчитан по новому
ТабИсчисленоВзносов.УплаченоСтраховая = 0;  
ТабИсчисленоВзносов.УплаченоНакопительная = 0;
ИначеЕсли  (КоэфДА1=1)  Тогда  // прошлый период был посчитан по старому 
   ТабПоУплатамПредПериод.НайтиЗначение(ТабИсчисленоВзносов.Сотрудник,НомСтрок2,"Объект");
   УплатыПредПериод.НайтиЗначение(ТабИсчисленоВзносов.Сотрудник,НомСтрок3,"Сотрудник");
Если  (НомСтрок2=0) и (НомСтрок3<>0)  Тогда// значт были начисления, но не должны были быть ????????????
// нашли, считываем начисления прошлого периода старым способом, полученные из файла
УплатыПредПериод.ПолучитьСтрокуПоНомеру(НомСтрок3);
ТабИсчисленоВзносов.УплаченоСтраховая = УплатыПредПериод.УплаченоСтраховая;  
ТабИсчисленоВзносов.УплаченоНакопительная = УплатыПредПериод.УплаченоНакопительная;
Сообщить(Строка(ТабИсчисленоВзносов.Сотрудник) + "   были начисления, но не должны были быть ?????  НЕДОУПЛАТА");
// реальная недоуплата должна быть разницей (Правильно - ЧерезКоэф)
ТабИсчисленоВзносов.УплаченоСтраховая = 0 - ТабИсчисленоВзносов.УплаченоСтраховая;  
ТабИсчисленоВзносов.УплаченоНакопительная = 0 - ТабИсчисленоВзносов.УплаченоНакопительная; 
ИначеЕсли  (НомСтрок2<>0) и (НомСтрок3=0)  Тогда// значт не было начислений, но должны были быть ???????????? 
//  сколько должны были начислить, еслиб считали не коэффициентом 
ТабПоУплатамПредПериод.ПолучитьСтрокуПоНомеру(НомСтрок2);
ТабИсчисленоВзносов.УплаченоСтраховая = ТабПоУплатамПредПериод.УплачСтрах;  
ТабИсчисленоВзносов.УплаченоНакопительная = ТабПоУплатамПредПериод.УплачНакоп;
Сообщить(Строка(ТабИсчисленоВзносов.Сотрудник) + "   не было начислений, но должны были быть  ПЕРЕПЛАТА  ???????");
ИначеЕсли  (НомСтрок2=0) и (НомСтрок3=0)  Тогда// значт не было начислений, и не должно было быть
ТабИсчисленоВзносов.УплаченоСтраховая = 0;  
ТабИсчисленоВзносов.УплаченоНакопительная = 0;
Иначе 
// нашли, считываем начисления прошлого периода старым способом, полученные из файла
УплатыПредПериод.ПолучитьСтрокуПоНомеру(НомСтрок3);
ТабИсчисленоВзносов.УплаченоСтраховая = УплатыПредПериод.УплаченоСтраховая;  
ТабИсчисленоВзносов.УплаченоНакопительная = УплатыПредПериод.УплаченоНакопительная;
//  сколько должны были начислить, еслиб считали не коэффициентом 
ТабПоУплатамПредПериод.ПолучитьСтрокуПоНомеру(НомСтрок2);
НовУплачСтрах = ТабПоУплатамПредПериод.УплачСтрах;  
НовУплачНакоп = ТабПоУплатамПредПериод.УплачНакоп;   // 2222222222222222222222222
// реальная недоуплата должна быть разницей (Правильно - ЧерезКоэф)
ТабИсчисленоВзносов.УплаченоСтраховая = НовУплачСтрах - ТабИсчисленоВзносов.УплаченоСтраховая;  
ТабИсчисленоВзносов.УплаченоНакопительная = НовУплачНакоп - ТабИсчисленоВзносов.УплаченоНакопительная;
КонецЕсли; 
КонецЕсли;  
ИначеЕсли (КоэфДА=1) и (КоэфДА1=1) Тогда  // всё считаем по  старому
// новое конец
ТабИсчисленоВзносов.УплаченоСтраховая = ОКР(ТабИсчисленоВзносов.ИсчисленоСтраховая * КоэффициентСтраховая,2);
ТабИсчисленоВзносов.УплаченоНакопительная = ОКР(ТабИсчисленоВзносов.ИсчисленоНакопительная * КоэффициентНакопительная,2);
// новое начало    
КонецЕсли;
// новое конец
Если ДатаПериода<>ТекущийОтченыйПериод Тогда
ТабИсчисленоВзносов.ИсчисленоСтраховая = 0;
ТабИсчисленоВзносов.ИсчисленоНакопительная = 0;    
КонецЕсли;
 
КонецЦикла;  

 

Это из крупных изменений =) остальное так... по мелочи =)

 

Исходник: //infostart.ru/public/84659/

Удачи в борьбе с 1С.

 

ИСПРАВЛЕНИЯ:

Поправил немного, были пара-тройка уволенных невовремя) сотров потеряны правил в спешке, но  теперь НОВЫЙ отчет без ошибок!

 

См. также

Улучшенная обработка "Внешние печатные формы" для типовых конфигураций на базе 1С 7.7

Печатные формы Адаптация типовых решений Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Приятное улучшение обработки "Внешние печатные формы" для типовых конфигураций на базе 1С 7.7 для более комфортной работы с "любимой семерочкой".

1 стартмани

04.02.2022    3237    1    igor7777    0    

3

Расчет страховых взносов в 1С 7.7 "Учет и отчетность предпринимателя, ред. 1.2" с апреля 2020

Адаптация типовых решений Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Бухгалтерский учет ФОМС, ЕФС Бесплатно (free)

В этой статье описано, какие небольшие изменения можно внести в модуль документа Начисление налогов с ФОТ, чтобы правильно рассчитывались страховые взносы с 1 апреля 2020 г.

09.04.2020    20030    Юджин58    39    

5

Дистрибьюция 7.7. Часть 1. Жизненный цикл заявки покупателя. Одна заявка покупателя, много адресов доставки.

Адаптация типовых решений Программист Платформа 1С v7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Управленческий учет Бесплатно (free)

Описан способ работы с учетом расписания с приоритетными покупателями - торговыми сетями (основными покупателями) в торговой или комплексной учетной системе на 1С 7.7. Множественная заявка покупателя на несколько торговых точек.

14.10.2019    6097    ksnik    14    

3

Как в торговле 7.7 печатать код ТНВЭД в счет-фактуре

Операции по ВЭД Адаптация типовых решений Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Россия Бухгалтерский учет НДС Бесплатно (free)

В данной статье хотел поделиться опытом, как в Торговле 7.7 ( релиз 994) сделать возможность выводить код ТНВЭД в печатную форму счета-фактуры. Сразу скажу, что нужно это только тем, кто осуществляет экспорт в страны таможенного союза. Остальные могут не волноваться.

15.11.2017    11873    AndKovalchuk    0    

1

Предельные базы взносов в ПФР, ФСС, ФФОМС 2015 в 1С: Бухгалтерия 7.7

Зарплата Адаптация типовых решений Программист Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Россия Бухгалтерский учет Абонемент ($m)

Реализация Постановления Правительства РФ 1316 от 04.12.14 для типовой конфигурации "Бухгалтерский учет 7.7" рел. 7.70.590

1 стартмани

31.12.2014    23976    9    Sergey1CSpb    2    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. UV2 260 21.06.11 20:50 Сейчас в теме
Гыгы: особенно необходим всем и каждому этот кусок кода!

Если Лев(Строка(ТабИсчисленоВзносов.Сотрудник),8) = "Стреляев" Тогда

Стреляев = 1;

КонецЕсли;

lookindenis; +1 Ответить
2. lookindenis 86 21.06.11 23:22 Сейчас в теме
(1)
СПС =)
отладочную остановку не убрал =)))))
на работу приеду почищу и перезалью )
3. lookindenis 86 28.06.11 19:45 Сейчас в теме
чуток ИСПРАВЛЕНИЙ:
поправил немного, были пара-тройка уволенных невовремя) сотров потеряны
правил в спешке, но
терь при создании, НОВЫЙ отчет без ошибок!
4. LanaSN 23.09.11 09:38 Сейчас в теме
Спасибо, очень пригодилась, у меня ошибок не выскакивало, все пересчитали и отправили в ПФР!
7. lookindenis 86 11.10.11 19:06 Сейчас в теме
5. slanrus 11.10.11 10:29 Сейчас в теме
Спасибо, очень пригодилась
6. TrinitronOTV 15 11.10.11 14:54 Сейчас в теме
спасибо, нужная разработка
Оставьте свое сообщение