Согласно ПБУ 8/2010, организации (кроме субъектов малого предпринимательства) обязаны формировать оценочные обязательства, в том числе резервы на оплату труда. В программе "1С:ЗУП 8", ред. 3 начиная с версии 3.1.23.165 появилась новая возможность учета резервов по отпускам и по годовым премиям/вознаграждениям...
Согласно ст. 324.1 НК, организация может формировать резерв по оплате труда и в налоговом учете, указав способ резервирования, предел отчислений и процент ежемесячных отчислений в учетной политике......
......зачем нам все это.....
Начинаем. Открываем мою обработку "Выровнять резервы по оплате труда", на первой вкладке, при открытии обработки, появляются актуальные статьи финансирования, но, возможно, у вас были еще другие статьи, по которым просто остались зависшие остатки...Чтобы проверить это - создаем новый чистый документ "Перенос данных", в котором выбираем ДВА регистра накопления:Оценочные обязательства и Оценочные обязательства по сотрудникам, сохраняем этот документ и выбираем его в обработке. Жмем на первой вкладке обработки кнопку "Показать остатки регистров Оценочных обязательств на дату документа Перенос данных":
Да, есть зависшие остатки по не актуальным статьям финансирования. Жмем кнопку "Заполнить сторно по некорректным статьям финансирования в оценочных обязательствах"-> откроется указанный нами выше документ "Перенос данных" с заполненными данными, провести/закрыть его. Вновь жмем кнопку "Показать остатки регистров Оценочных обязательств на дату документа":
Ок, все лишнее по обоим регистрам оценочных обязательств мы очистили.
Идем на вторую вкладку обработки. Здесь мы будем ровнять регистр накопления "Оценочные обязательства" с регистром накопления "Оценочные обязательства по сотрудникам". Дело в том, что в текущем механизме распределения сумм резервов в документе "Резервы по оплате труда" есть принеприятная штука: если оба регистра разнятся между собой, то эта разница начинает распределяться на всех сотрудников...через полгода-год из-за этого по сотрудникам в документе "Резервы по оплате труда" появляются красные (отрицательные) значения, которые в ручную непросто выровнять, да и как потом с этим в бухгалтерии резервы закрывать?...
Итак, на второй вкладке: так же создаем новый документ "Перенос данных", здесь в нем указываем только один регистр накопления "Оценочные обязательства", так как именно его и будем ровнять, отталкиваясь от итоговых сумм по регистру "Оценочные обязательства по сотрудникам". Жмем кнопку "Показать разницу между двумя регистрами оценочных обязательств":
Да, есть разница. Выровняем ее, нажав на кнопку на второй вкладке "Выполнить выравнивание остатков в регистре Оценочные обязательства". После этого повторно нажмем кнопку "Показать разницу между двумя регистрами оценочных обязательств":
Ок, все выровняли, теперь можно создавать документы "Резервы по оплате труда" и не переживать за "неизвестную красноту".
На этом этапе можно было бы остановиться, так как выловили сильную разницу между обоими регистрами Оценочных обязательств, например, в августе 2024года, поэтому в ЗУП пометили все документы "Резервы по оплате труда" до августа 24г на удаление, в конеце августа - провели все необходимые процедуры выравнивания регистров с помощью моей обработки, далее: заново создали, заполнили документы "Резервы по оплате труда" по текущий день, и все хорошо! Но.....бухгалтера так не могут просто жить((... Они Свод сдали инвесторам, баланс годовой (причем только тут баланс к ЗУПу...) у них закрыт...и вообще: ничего нельзя делать задним числом!!!.......
Итак, если у вас именно подобный случай, то создаем резервную копию ЗУП, в ней хоть августом прошлого года, хоть иным месяцем проводим с помощью моей обработки все указанные выше процедуры, от месяца корректировки: создаем и проводим новые документы "Резервы по оплате труда" по текущий месяц. Далее в копии ЗУПа открываем третью вкладку моей обработки: на текущий месяц создаем две штуки новых чистых документа "Перенос данных", в одном из них указываем один регистр накопления "Оценочные обязательства", в другом указываем один регистр накопления "Оценочные обязательства по Сотрудникам", подтягиваем эти документы на третью вкладку моей обработки.
Сначала жмем кнопку "Выгрузить оценочные обязательства в эксель в черновике ЗУПа", далее здесь же в черновике жмем ниже кнопку "Выгрузить оценочные обязательства по сотрудникам в эксель в черновике ЗУПа". Потом переходим в реальную базу данных ЗУП, открываем там мою обработку "Выровнять резервы по оплате труда", проходим операции первых двух вкладок в текущем месяце, открываем третью вкладку, создав так же новые пустые две штуки документов "Перенос данных" и подтянув их на третью вкладку обработки. Далее указываем в поле каталога сначала файл эксель, в который выгрузили из черновика ЗУПа остатки по регистру "Оценочные обязательства", жмем кнопку "Загрузить из экселя оценочные обязательства", потом жмем кнопку "Показать разницу оценочных обязательств в обеих базах":
ага, отличаются, жмем кнопку "Выполнить выравнивание оценочных обязательств в реальной базе", повторно жмем кнопку "Показать разницу", видим, что все выровнялось в реальной базе как в экселе:
Далее в поле каталога выбираем файл экселя, куда сохранили остатки "Оценочных обязательств по сотрудникам", и проводим те же операции с кнопочками в нижнем окне. Здесь предупреждаю, если сотрудников около тысячи, то загрузка из экселя файла по сотрудникам может занять около 45 минут...
Все готово, по итоговым суммам документов "Перенос данных" - главный бухгалтер в своей 1с.Бухгалтерии отсторнирует 96 счет по резервам.
п.с. все цифры в примерах вымышленные.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Советую также в ЗУП создать расширение, в него отправить общий модуль "УчетСтраховыхВзносов" и внести следующие доработки:
&Вместо("СоздатьВТЭффективныеСтавкиВзносовДляОценочныхОбязательств")
Процедура Расш_СоздатьВТЭффективныеСтавкиВзносовДляОценочныхОбязательств(МенеджерВременныхТаблиц, Организация, ПериодРегистрации) Экспорт
//23.04.25_упрощено заполнение параметров ставки Страховых и ФСС (в зависимости от класса вредности)
НачалоПериода = НачалоГода(ПериодРегистрации);
ОкончаниеПериода = КонецМесяца(ПериодРегистрации);
СформироватьВТРасширенныхСведенийОДоходах(НачалоПериода, ОкончаниеПериода, ОкончаниеПериода, МенеджерВременныхТаблиц, Ложь);
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("ОкончаниеПериода", ОкончаниеПериода);
Запрос.Текст =
"ВЫБРАТЬ
| СтраховыеВзносы.ФизическоеЛицо КАК ФизическоеЛицо,
| СУММА(СтраховыеВзносы.ПФРСтраховая + СтраховыеВзносы.ПФРНакопительная + СтраховыеВзносы.ПФРДоПредельнойВеличины + СтраховыеВзносы.ПФРСПревышения + СтраховыеВзносы.ПФРПоСуммарномуТарифу + СтраховыеВзносы.ОССпоМеждународнымДоговорамСПревышения + СтраховыеВзносы.ОССпоМеждународнымДоговорам + СтраховыеВзносы.ОПСпоМеждународнымДоговорам + СтраховыеВзносы.ОПСпоМеждународнымДоговорамСПревышения + СтраховыеВзносы.ОМСпоМеждународнымДоговорам + СтраховыеВзносы.ОМСпоМеждународнымДоговорамСПревышения) КАК ПФР,
| СУММА(СтраховыеВзносы.ПФРНаДоплатуЛетчикам) КАК ПФРНаДоплатуЛетчикам,
| СУММА(СтраховыеВзносы.ПФРНаДоплатуШахтерам) КАК ПФРНаДоплатуШахтерам,
| СУММА(СтраховыеВзносы.ПФРЗаЗанятыхНаПодземныхИВредныхРаботах + СтраховыеВзносы.ПФРЗаЗанятыхНаПодземныхИВредныхРаботахБезСпецОценки) КАК ПФРЗаЗанятыхНаПодземныхИВредныхРаботахБезСпецОценки,
| СУММА(СтраховыеВзносы.ПФРЗаЗанятыхНаПодземныхИВредныхРаботахСпецОценка) КАК ПФРЗаЗанятыхНаПодземныхИВредныхРаботахСпецОценка,
| СУММА(СтраховыеВзносы.ПФРЗаЗанятыхНаТяжелыхИПрочихРаботах + СтраховыеВзносы.ПФРЗаЗанятыхНаТяжелыхИПрочихРаботахБезСпецОценки) КАК ПФРЗаЗанятыхНаТяжелыхИПрочихРаботахБезСпецОценки,
| СУММА(СтраховыеВзносы.ПФРЗаЗанятыхНаТяжелыхИПрочихРаботахСпецОценка) КАК ПФРЗаЗанятыхНаТяжелыхИПрочихРаботахСпецОценка,
| СУММА(СтраховыеВзносы.ФСС) КАК ФСС,
| СУММА(СтраховыеВзносы.ФССНесчастныеСлучаи) КАК ФССНесчастныеСлучаи,
| СУММА(СтраховыеВзносы.ФФОМС) КАК ФФОМС,
| СУММА(СтраховыеВзносы.ТФОМС) КАК ТФОМС
|ПОМЕСТИТЬ ВТВзносыФизическихЛиц
|ИЗ
| РегистрНакопления.СтраховыеВзносыПоФизическимЛицам КАК СтраховыеВзносы
|ГДЕ
| СтраховыеВзносы.ФизическоеЛицо В
| (ВЫБРАТЬ
| ФизическиеЛица.ФизическоеЛицо
| ИЗ
| ВТФизЛицаОрганизаций КАК ФизическиеЛица)
| И СтраховыеВзносы.Организация = &Организация
| И СтраховыеВзносы.Период МЕЖДУ &НачалоПериода И &ОкончаниеПериода
|
|СГРУППИРОВАТЬ ПО
| СтраховыеВзносы.ФизическоеЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СведенияОДоходах.ФизическоеЛицо КАК ФизическоеЛицо,
| СУММА(СведенияОДоходах.БазаПФР) КАК БазаПФР,
| СУММА(СведенияОДоходах.БазаФОМС) КАК БазаФОМС,
| СУММА(СведенияОДоходах.БазаФСС) КАК БазаФСС,
| СУММА(СведенияОДоходах.БазаФСС_НС) КАК БазаФСС_НС,
| СУММА(ВЫБОР
| КОГДА СведенияОДоходах.ОблагаетсяВзносамиНаДоплатуШахтерам
| ТОГДА СведенияОДоходах.БазаПФР
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаДоплатаШахтерам,
| СУММА(ВЫБОР
| КОГДА СведенияОДоходах.ОблагаетсяВзносамиНаДоплатуЛетчикам
| ТОГДА СведенияОДоходах.БазаПФР
| ИНАЧЕ 0
| КОНЕЦ) КАК БазаДоплатаЛетчикам,
| СУММА(СведенияОДоходах.БазаПодземныеИВредныеРаботы) КАК БазаПодземныеИВредныеРаботыБезСпецОценки,
| СУММА(СведенияОДоходах.БазаПодземныеИВредныеРаботыОпасный + СведенияОДоходах.БазаПодземныеИВредныеРаботыВредный1 + СведенияОДоходах.БазаПодземныеИВредныеРаботыВредный2 + СведенияОДоходах.БазаПодземныеИВредныеРаботыВредный3 + СведенияОДоходах.БазаПодземныеИВредныеРаботыВредный4) КАК БазаПодземныеИВредныеРаботыСпецОценка,
| СУММА(СведенияОДоходах.БазаТяжелыеИПрочиеРаботы) КАК БазаТяжелыеИПрочиеРаботыБезСпецОценки,
| СУММА(СведенияОДоходах.БазаТяжелыеИПрочиеРаботыОпасный + СведенияОДоходах.БазаТяжелыеИПрочиеРаботыВредный1 + СведенияОДоходах.БазаТяжелыеИПрочиеРаботыВредный2 + СведенияОДоходах.БазаТяжелыеИПрочиеРаботыВредный3 + СведенияОДоходах.БазаТяжелыеИПрочиеРаботыВредный4) КАК БазаТяжелыеИПрочиеРаботыСпецОценка
|ПОМЕСТИТЬ ВТДоходыФизическихЛиц
|ИЗ
| ВТСведенияОДоходах КАК СведенияОДоходах
|ГДЕ
| СведенияОДоходах.Организация = &Организация
|
|СГРУППИРОВАТЬ ПО
| СведенияОДоходах.ФизическоеЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Взносы.ФизическоеЛицо КАК ФизическоеЛицо,
| ВЫБОР
| КОГДА Взносы.ФССНесчастныеСлучаи > 0
| И Доходы.БазаФСС_НС > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ФССНесчастныеСлучаи / Доходы.БазаФСС_НС КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ КАК СтавкаФСС_НС,
| ВЫБОР
| КОГДА Взносы.ПФР > 0
| И Доходы.БазаПФР > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ПФР / Доходы.БазаПФР КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ + ВЫБОР
| КОГДА Взносы.ФСС > 0
| И Доходы.БазаФСС > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ФСС / Доходы.БазаФСС КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ + ВЫБОР
| КОГДА Взносы.ФФОМС > 0
| И Доходы.БазаФОМС > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ФФОМС / Доходы.БазаФОМС КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ + ВЫБОР
| КОГДА Взносы.ПФРНаДоплатуЛетчикам > 0
| И Доходы.БазаДоплатаЛетчикам > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ПФРНаДоплатуЛетчикам / Доходы.БазаДоплатаЛетчикам КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ + ВЫБОР
| КОГДА Взносы.ПФРНаДоплатуШахтерам > 0
| И Доходы.БазаДоплатаШахтерам > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ПФРНаДоплатуШахтерам / Доходы.БазаДоплатаШахтерам КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ + ВЫБОР
| КОГДА Взносы.ПФРЗаЗанятыхНаПодземныхИВредныхРаботахБезСпецОценки > 0
| И Доходы.БазаПодземныеИВредныеРаботыБезСпецОценки > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ПФРЗаЗанятыхНаПодземныхИВредныхРаботахБезСпецОценки / Доходы.БазаПодземныеИВредныеРаботыБезСпецОценки КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ + ВЫБОР
| КОГДА Взносы.ПФРЗаЗанятыхНаТяжелыхИПрочихРаботахБезСпецОценки > 0
| И Доходы.БазаТяжелыеИПрочиеРаботыБезСпецОценки > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ПФРЗаЗанятыхНаТяжелыхИПрочихРаботахБезСпецОценки / Доходы.БазаТяжелыеИПрочиеРаботыБезСпецОценки КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ + ВЫБОР
| КОГДА Взносы.ПФРЗаЗанятыхНаПодземныхИВредныхРаботахСпецОценка > 0
| И Доходы.БазаПодземныеИВредныеРаботыСпецОценка > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ПФРЗаЗанятыхНаПодземныхИВредныхРаботахСпецОценка / Доходы.БазаПодземныеИВредныеРаботыСпецОценка КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ + ВЫБОР
| КОГДА Взносы.ПФРЗаЗанятыхНаТяжелыхИПрочихРаботахСпецОценка > 0
| И Доходы.БазаТяжелыеИПрочиеРаботыСпецОценка > 0
| ТОГДА ВЫРАЗИТЬ(100 * Взносы.ПФРЗаЗанятыхНаТяжелыхИПрочихРаботахСпецОценка / Доходы.БазаТяжелыеИПрочиеРаботыСпецОценка КАК ЧИСЛО(7, 4))
| ИНАЧЕ 0
| КОНЕЦ КАК СтавкаСтраховыхВзносов
|ПОМЕСТИТЬ ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит
|ИЗ
| ВТВзносыФизическихЛиц КАК Взносы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДоходыФизическихЛиц КАК Доходы
| ПО Взносы.ФизическоеЛицо = Доходы.ФизическоеЛицо
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.ФизическоеЛицо КАК ФизическоеЛицо,
| ВЫБОР
| КОГДА ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаФСС_НС = 0 Тогда 0
| КОГДА ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаФСС_НС <> 0 Тогда 0.2
| КОНЕЦ КАК СтавкаФСС_НС,
| ВЫБОР
| КОГДА ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов = 0
| ТОГДА 0
| КОГДА ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов <= 30
| ТОГДА 30
| КОГДА ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов > 30 и ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов <= 32
| ТОГДА 32
| КОГДА ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов >= 34 и ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов < 36
| ТОГДА 34
| КОГДА ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов >= 36 и ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов < 38
| ТОГДА 36
| КОГДА ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит.СтавкаСтраховыхВзносов >= 38
| ТОГДА 38
| КОНЕЦ КАК СтавкаСтраховыхВзносов
|ПОМЕСТИТЬ ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств
|ИЗ
| ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит КАК ВТЭффективныеСтавкиВзносовДляОценочныхОбязательств_предварит";
Запрос.Выполнить();
КонецПроцедуры
Так как когда пользователи авто заполняют документ "Резервы по оплате труда", то на вкладке Взносы: очень часто бьются суммы процентов взносов и ФСС, т.е. вместо 30% или 32% или 34% - может быть любая сумма....у декретчиц так и будет, потому что у них нету текущего дохода и по ним расчетчики правят в резервах в ручную, а вот у других если начинают биться суммы взносов - то это первый признак, что что-то не так и сотрудника нужно крыжить...Например, если сотрудник врач, и по приему на работу ему по спец.оценке труда дали 3,2 класс вредности, по этому классу ему полагается надбавка к зарплате 8%, но так же полагается и дополнительный страховой взнос +4%, а изменение в штатном расписании по этой должности с учетом класса вредности, например, вовремя забыли сделать, поэтому во вкладке Взносы документа "Резервы по оплате труда" у такого сотрудника будет что-то наподобие 32,22%....Потому что там простая формула расчета ставки взноса: берутся начисленные сотруднику взносы, делится на начисленный в этом месяце доход, умножается на 100%, а так как в этом случае - не было изменения Штатки, то дополнительное начисление 8% ему было, а вот взносов дополнительных не начислялось.....Позже сделаю отчет по таким сомнительным взносам, чтобы можно было проверить что не так с конкретными сотрудниками. А предлагаемый выше код - просто при заполнении документа "Резервы по оплате труда" будет выводить ровные ставки взносов (кроме декретчиц).
п.с.Обработку можно откыть через Файл-Открыть, или прикрепить как внешнюю: Администрирование-ПечатныеФормы и обработки-добавить
Особая благодарность Александру Субботину, за его идею в Заполнение документа Перенос данных остатками по регистру ЗУП 3.1 как можно сразу несколько регистров заполнять в документе Перенос данных.
Проверено на следующих конфигурациях и релизах:
- Зарплата и управление персоналом, редакция 3.1, релизы 3.1.32.66