Обход ошибки в ЗУП 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    148272    655    374    

240

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

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

48000 руб.

24.04.2017    51553    104    165    

91

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

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

84000 руб.

19.08.2020    25478    25    1    

26

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

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

5940 руб.

27.05.2021    38484    277    96    

209

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта Платформа 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С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

16800 руб.

01.11.2012    94737    111    1    

119

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    6400    17    5    

26

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

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

84000 руб.

07.06.2021    13379    2    3    

3

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

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

12000 руб.

28.07.2016    61142    157    141    

132
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. prog-eg 86 17.04.23 14:10 Сейчас в теме
2. bolikov 20 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)
Оставьте свое сообщение