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

13.04.23

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

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

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

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

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

Результат:

 

 

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

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

Запрос:

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

Результат:

 

 

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

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

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

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

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

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

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

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

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

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

 

 

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

 

Вступайте в нашу телеграмм-группу Инфостарт

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

9675 руб.

27.05.2021    58062    499    129    

355

Разработка Адаптация типовых решений Производство готовой продукции (работ, услуг) Розничная торговля 1С:Управление торговлей 10 Россия Платные (руб)

Доработка для 1С:Управление торговлей 10.3 (релиз 10.3.88.3) добавляет поддержку маркировки новых категорий товаров согласно постановлениям Правительства РФ 2025–2026 гг. Конфигурация УТ 10.3 снята с поддержки — новые маркируемые категории в типовую поставку больше не попадают. Доработка закрывает этот пробел: новые виды номенклатуры, обмен с ГИС МТ «Честный Знак». Поставляется в виде файла .cf

14640 руб.

23.04.2026    1755    13    13    

16

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

Расширение для создания и настройки обмена с консолидированной базой ЗУП. Код разработки под определенные требования проекта.

85400 руб.

11.07.2025    5995    4    1    

4

Адаптация типовых решений БСП (Библиотека стандартных подсистем) Кадровый учет ЭДО и ОФД 1C:Бухгалтерия 1С:Зарплата и кадры 7.7 1C:ERP 1С:ЗУП 1С:УТ 1С:ДО Платные (руб)

Наше расширение 1С Госключ обеспечивает интеграцию любой конфигурации 1С на базе БСП с мобильным приложением «Госключ», позволяя сотрудникам подписывать кадровые документы (КЭДО) и документы материальной ответственности (МОЛ, ПБ) усиленной электронной подписью прямо со смартфона. Решение автоматизирует формирование и отправку документов на подпись, отслеживает статусы подписания и хранит подписанные файлы непосредственно в базе 1С

25000 руб.

06.03.2026    1550    4    0    

3

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

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

20740 руб.

28.07.2016    71853    193    160    

159

Печатные формы Адаптация типовых решений Бухгалтер Пользователь 1С:Предприятие 8 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, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с соответствующими именами, при выводе на печать в размещённые картинки будут выводиться факсимиле из прикреплённых рисунков. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

6000 руб.

07.02.2023    13749    120    25    

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

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



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


Заменил на

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


РЕЛИЗ ЗУП 3.1 (3.1.27.23)
Для отправки сообщения требуется регистрация/авторизация