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

13.04.23

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

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

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

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

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

Результат:

 

 

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

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

Запрос:

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

Результат:

 

 

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

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

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

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

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

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

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

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

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

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

 

 

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

 

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

См. также

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

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

29400 руб.

29.06.2023    8227    25    15    

32

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта 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    98148    117    1    

127

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

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

60000 руб.

06.10.2023    6873    39    21    

46

Зарплата Оперативный учет 8.3.14 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Расширение предназначено для конфигурации 1С:Управление торговлей 11х и позволяет выполнить расчет сумм к выплате по результатам работы сотрудников. Благодаря этому решению можно легко получать готовые суммы бонусов и выплат менеджерам по продажам на основании данных о продажах. Возможность доработки расширения позволяет реализовать любые, самые уникальные варианты расчета сумм к выплате – с минимальными затратами.

24000 руб.

04.06.2025    349    2    0    

3

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3500 руб.

07.02.2023    8980    97    17    

53

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

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

12000 руб.

28.07.2016    62972    168    145    

139

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

Обработка предназначена для заполнения нецикличных графиков работы для вахтового метода работы и для работы в полевых условиях труда. Вводятся все виды времени вахтового цикла. Календарь вахтовика позволяет не заполнять индивидуальные графики работы на каждого сотрудника, что сильно снижает трудозатраты на ввод данных. Решение предназначено для ЗУП 3.х; ЕРП 2.х; КА 2.х; ЗКГУ 3.х. Благодаря использованию обычных графиков работы, норму времени можно указать по графику пятидневки.

6600 руб.

18.12.2019    28521    36    6    

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