Обход ошибки в ЗУП 3 при начислении НДФЛ по обособленным подразделениям

13.04.23

Учетные задачи - Зарплата

Если в организации есть обособленные подразделения, ЗУП неверно считает НДФЛ. Для программистов предлагается способ обхода этой ошибки. Смысл в том, чтобы документ сторнировал аванс только своего подразделения.

Если сотрудник работал за месяц в разных обособленных подразделениях,  при проведении документа «Начисление зарплаты»  по первому из них программа сторнирует  доход  и НДФЛ, исчисленный документом «Начисление зарплаты за первую половину месяца» по обоим подразделениям, и записывает его на первое.

Запрос по доходам:

ВЫБРАТЬ
	СведенияОДоходахНДФЛ.Регистратор КАК Регистратор,
	СведенияОДоходахНДФЛ.ДатаПолученияДохода КАК ДатаПолученияДохода,
	СведенияОДоходахНДФЛ.СуммаДохода КАК СуммаДохода,
	СведенияОДоходахНДФЛ.Начисление КАК Начисление,
	СведенияОДоходахНДФЛ.Подразделение КАК Подразделение,
	СведенияОДоходахНДФЛ.Период КАК Период,
	СведенияОДоходахНДФЛ.СуммаВычета КАК СуммаВычета,
	СведенияОДоходахНДФЛ.Сотрудник.Код КАК СотрудникКод
ИЗ
	РегистрНакопления.СведенияОДоходахНДФЛ КАК СведенияОДоходахНДФЛ
ГДЕ
	СведенияОДоходахНДФЛ.ФизическоеЛицо = &ФизическоеЛицо
	И СведенияОДоходахНДФЛ.Период >= &Период
ИТОГИ
	СУММА(СуммаДохода),
	СУММА(СуммаВычета)
ПО
	Подразделение,
	Регистратор

Результат:

 

 

Видим, что Начисление зарплаты №390(Отдел маркетинга) сторнировало доход по обоим подразделениям, в том числе и по Апт. пункту.

Теперь по налогу

Запрос:

ВЫБРАТЬ
	РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Регистратор КАК Регистратор,
	РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Сумма КАК Сумма,
	РасчетыНалогоплательщиковСБюджетомПоНДФЛ.Подразделение КАК Подразделение,
	РасчетыНалогоплательщиковСБюджетомПоНДФЛ.РасчетМежрасчетногоПериода КАК РасчетМежрасчетногоПериода,
	РасчетыНалогоплательщиковСБюджетомПоНДФЛ.СуммаВыплаченногоДохода КАК СуммаВыплаченногоДохода,
	РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ВидДвижения КАК ВидДвижения
ИЗ
	РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ КАК РасчетыНалогоплательщиковСБюджетомПоНДФЛ
ГДЕ
	РасчетыНалогоплательщиковСБюджетомПоНДФЛ.ФизическоеЛицо = &ФизическоеЛицо
УПОРЯДОЧИТЬ ПО
	Подразделение

Результат:

 

 

Сто рублей налога взяли с аванса в Апт. пункте, а сторнировали в отделе маркетинга.

Смысл исправлений: чтобы каждое начисление зарплаты сторнировало аванс(Доход и налог) только своего подразделения.

Общий модуль УчетНДФЛ

Процедура ДополнитьДвиженияСписаниемАванса(

После запроса из ВТАвансыНалоговКПогашению КАК ВыплаченныеАвансы

Результаты = Запрос.ВыполнитьПакет();
		Результат = Результаты[2];
		Если Не Результат.Пустой() Тогда
			АвансыКЗачету = Результат.Выгрузить();
			//Начало вставки    
			
			//при учете доходов идет перебор по СтрокаОкончательногоРасчета, откуда можно взять подразделение, а тут  надо смотреть всю таблицу
			КоличествоЭлементов = АвансыКЗачету.Количество(); 
			Счетчик=0;
			Пока Счетчик < КоличествоЭлементов Цикл
				Струка = Новый Структура;
				Струка.Вставить("ФизическоеЛицо",АвансыКЗачету[Счетчик].ФизическоеЛицо);
				мСтрок = ДанныеОДоходахОкончательногоРасчета.НайтиСтроки(Струка); 
				Если мСтрок.Количество()=0 Тогда 
					Сообщить("Строки дохода не найдены");  
					Счетчик=Счетчик+1;
			        Продолжить;
				КонецЕсли; 
				Найдено = Ложь;
				Для каждого мт из мСтрок Цикл
					Если мт.РегистрацияВНалоговомОргане = АвансыКЗачету[Счетчик].Подразделение.РегистрацияВНалоговомОргане Тогда
						Найдено = Истина;
					КонецЕсли;	
				КонеЦЦикла;	
				Если НЕ Найдено  Тогда // 
					АвансыКЗачету.Удалить(Счетчик);
					КоличествоЭлементов = КоличествоЭлементов - 1; 
				Иначе
					Счетчик=Счетчик+1;
				КонецЕсли;
			КОнецЦикла;
			//Конец вставки
			Если Не Результаты[3].Пустой() Тогда // Авансы остались незачтенными из-за начисления в окончательный расчет недостаточных сумм.
				СтрокиКПогашению = Результаты[3].Выгрузить();
				ИндексироватьТаблицу = АвансыКЗачету.Количество() > 100;
				ПоляОтбора = "ФизическоеЛицо,ЗарегистрированоПриНачисленииАванса,КатегорияДохода,СтавкаНалогообложенияРезидента,ВидДвижения,ВариантУдержания,Подразделение";
				ЗачестьИсчисленныеНалогиВСчетОкончательногоРасчета(Неопределено, СтрокиКПогашению, АвансыКЗачету, ПоляОтбора, ИндексироватьТаблицу);
				Если (АвансыКЗачету.Итог("Сумма") > 0 Или АвансыКЗачету.Итог("СуммаСПревышения") > 0) И (СтрокиКПогашению.Итог("Сумма") > 0 Или СтрокиКПогашению.Итог("СуммаСПревышения") > 0) Тогда
					ПоляОтбора = "ФизическоеЛицо,ЗарегистрированоПриНачисленииАванса,КатегорияДохода,СтавкаНалогообложенияРезидента,ВидДвижения,ВариантУдержания";
					ЗачестьИсчисленныеНалогиВСчетОкончательногоРасчета(Неопределено, СтрокиКПогашению, АвансыКЗачету, ПоляОтбора, ИндексироватьТаблицу);
				КонецЕсли;
			КонецЕсли;

Процедура ЗачестьАвансовыеДоходыВСчетОкончательногоРасчета(

с самого начала

ДобавлятьЗаписиВДвижения = НаборЗаписей <> Неопределено;
	СтруктураОтбора = Новый Структура(ПоляОтбора);
	Если ИндексироватьТаблицу Тогда
		ДанныеОкончательногоРасчета.Индексы.Добавить(ПоляОтбора);
	КонецЕсли;
	Для каждого СтрокаАвансов Из АвансыКЗачету Цикл
		Если СтрокаАвансов.СуммаДохода = 0 И СтрокаАвансов.СуммаВычета = 0 Тогда
			Продолжить;
		КонецЕсли;
		ЗаполнитьЗначенияСвойств(СтруктураОтбора, СтрокаАвансов); //струкотб приемник!
		Для каждого СтрокаОкончательногоРасчета Из ДанныеОкончательногоРасчета.НайтиСтроки(СтруктураОтбора) Цикл
			Если СтрокаОкончательногоРасчета.СуммаДохода < 0 И СтрокаОкончательногоРасчета.СуммаВычета < 0 Тогда
				Продолжить;
			КонецЕсли;
			//Начало вставки
					Если НЕ СтрокаОкончательногоРасчета.Подразделение=СтрокаАвансов.Подразделение Тогда
						Продолжить;
					КонецЕсли;	
			//Конец вставки
			СуммаДоходаКЗачету = Мин(СтрокаАвансов.СуммаДохода, СтрокаОкончательногоРасчета.СуммаДохода);

В результате Начисление зарплаты каждого подразделения сторнирует только свое:

 

 

И налоги после:

 

ЗУП НДФЛ Ошибка

См. также

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    147656    651    362    

236

Внешние источники данных Зарплата Бюджетный учет Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

48000 руб.

24.04.2017    51305    101    165    

89

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    25244    22    1    

25

Зарплата Роли и права Системный администратор Бухгалтер Платформа 1С v8.3 Бухгалтерский учет Управление правами 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5940 руб.

27.05.2021    38071    271    96    

207

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Торговля и склад 7.7 Бытовые услуги, сервис Оптовая торговля, дистрибуция, логистика Электротехника и микроэлектроника Управленческий учет Платные (руб)

Модуль или расширение «Сервисный центр для 1С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

14800 руб.

01.11.2012    94479    115    1    

119

Зарплата Программист Бизнес-аналитик Бухгалтер Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

При заполнении ведомости на выплату зарплаты вылазят задолженности прошлых периодов, которых быть не должно? Наша обработка позволяется убрать эти доходы прошлых периодов за пару секунд. Больше не нужно тратить часы на анализ каждого такого случая.

33600 руб.

14.09.2022    15934    72    26    

73

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4324    16    1    

33

Перенос данных 1C Зарплата Бюджетный учет Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет зарплаты для бюджетных учреждений 3.5» и «КАМИН:Зарплата для бюджетных учреждений 5.5» на конфигурацию «Зарплата и кадры государственного учреждения».

12000 руб.

28.07.2016    61024    153    141    

129
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. prog-eg 86 17.04.23 14:10 Сейчас в теме
2. bolikov 17 20.04.23 13:17 Сейчас в теме
3. aleksey2 89 31.05.23 12:00 Сейчас в теме
И СведенияОДоходахНДФЛ.ЗарегистрированоПриНачисленииАванса > ДатаВремя (1,1,1)
4. tany13 08.06.23 22:12 Сейчас в теме
а если у меня сотрудники- совместители в разных организациях, но головная организация одна.
Такая же чехарда. Поможет?
5. Stas84 10.08.23 22:40 Сейчас в теме
Спасибо за статью, два дня не мог разобраться с проблемой.
Очень похоже на зарегистрированную ошибку Ошибка 50013306
https://bugboard.v8.1c.ru/error/000066324
у нас как раз из-за некорректного сторно аванса, задваиваются обороты по НДФЛ в разрезе подразделений, например по одному подразделению +700000, по другому -680000, а в сумме получается нормально
6. Stas84 13.08.23 12:06 Сейчас в теме
Перепровел документы с января 2023, используя рекомендации из данной публикации. Похоже, что Ошибка 50013306 (о которой я писал выше) и ее исправление к данной проблеме не относятся, более того рекомендации по ее исправлению мне помешали и в итоге я их убрал.

К данной публикации хочу добавить. В моем случае оба подразделения, в которых работал сотрудник зарегистрированы в одной налоговой, поэтому я немного изменил код из данной публикации.



Для каждого мт из мСтрок Цикл
	Если мт.РегистрацияВНалоговомОргане = АвансыКЗачету[Счетчик].Подразделение.РегистрацияВНалоговомОргане Тогда
		Найдено = Истина;
	КонецЕсли;	
КонеЦЦикла;	


Заменил на

Для каждого мт из мСтрок Цикл
	Если мт.Подразделение = АвансыКЗачету[Счетчик].Подразделение Тогда
		Найдено = Истина;
		Прервать;
	КонецЕсли;	
КонеЦЦикла;	


РЕЛИЗ ЗУП 3.1 (3.1.27.23)
Оставьте свое сообщение