6-НДФЛ из ЗУП 2.5 без проблем. Специальная обработка проведения документов. Методика

19.10.16

Разработка - Механизмы типовых конфигураций

Сдача 6-НДФЛ из ЗУП 2.5 с минимальными временными затратами. Специальная обработка проведения документов.

Скачать файлы

Наименование Файл Версия Размер
Отдельно обработка проведения
.epf 9,46Kb
56
.epf 9,46Kb 56 Скачать

Все, кто пытался сформировать отчет 6-НДФЛ сталкивался с трудностями, возникающими в ЗУП 2.5 со снятой галкой в учетной политике "При начислении НДФЛ принимать удержанный как исчисленный":

  • Запрет на перепроведение выплат сотрудникам, если позже уже есть выплаты. Например нашли ошибку: не верно стоит дата получения дохода в отпуске или больничном, после исправления на верную нужно провести выплаты, что не представляется возможным.
  • При проведении выплаты межрасчетных начислений НДФЛ зачастую удерживается не этой выплаты, а с предыдущей. Например если человек уходит в отпуск в начале месяца и получет отпускные до зарплаты за предудущий месяц, то программа удерживает НДФЛ не с отпускных а с невыплаченной зарплаты, и 6-НДФЛ заполняется при этом не корректно.

Получается что 6-НДФЛ не получается сформировать в ЗУП 2.5 в общем случае без привлечения программистов.

Для решения указанных проблем предлагается следующая методика формирования отчета.

Во вложении обработка проведения документов, которую можно открыть в 1С ЗУП 2.5 через меню Файл-Открыть (или зарегистрировать во внешних обработках). Суть обработки в том, чтобы перепроводить документы не в хронологическом порядке:

  • Распроводятся документы по организации за указанный период. Для корректной работы обработки необходимо указывать период от начала квартала до последнего документа введенного в базу.
  • Проводятся сначала документы созданные в первом месяца квартала, но относящиеся к предудущему расчетному периоду в хронологической последовательности. Например выплаты за прошлый месяц.
  • Проводятся документы созданные в первом месяце квартала и относящиеся к расчетному периоду этого же месяца  в хронологической последовательности
  • Проводятся документы созданные в первом месяце квартала и относящиеся к расчетному периоду следующего месяца (если такие имеются)  в хронологической последовательности
  • Далее  второй месяц квартала, и так далее

Для такого метода существует требование, чтобы начиления были раньше выплат. Например если отпуск выплачивается 22.06, то дата документа начисления отпуска была 21.06, если выплата расчетных человеку при увольнении 22.06, то документ начисления зарплаты по нему, в котором расчитывается НДФЛ, был проведен 21.06, не смотря на то что программа предлагает провести его в конце месяца.

Поскольку документы проводятся в обработке с нарушение хронологи выплат, то чтобы программа давала возможноть запуска обработки необходимо в конфигурацию внести определенные изменения:

  • Снять с полной поддержки и сделать возможноть добавления новых объектов.
  • В параметры сеанса добавить НеПроверятьХронологиюУчетаУдержанногоНДФЛ тип Булево.
  • Включить редактирование Общих модулей:
    • ЗарплатаКВыплатеОрганизацийПереопределяемый
    • ПроведениеРасчетов
    • СтандартныеПодсистемыСервер
  • Внести изменения в модуль ЗарплатаКВыплатеОрганизацийПереопределяемый
Процедура ПровестиВзаиморасчеты(Документ, Отказ, Заголовок, РегистрироватьТолькоНДФЛ = Ложь) Экспорт
	
	Если Не РегистрироватьТолькоНДФЛ Тогда
		
		ПроведениеРасчетов.ПроверитьХронологиюУчетаУдержанногоНДФЛ(Документ.Организация, Документ.Зарплата.ВыгрузитьКолонку("ФизЛицо"), Документ.Дата, Отказ, Заголовок);
		Если Отказ Тогда
			Возврат
		КонецЕсли;
		
		Для Каждого СтрокаЗарплаты Из Документ.Зарплата Цикл
				
			СтрокаДвижения = Документ.Движения.ВзаиморасчетыСРаботникамиОрганизаций.ДобавитьРасход();
			
			СтрокаДвижения.Период       		= Документ.Дата;
			
			СтрокаДвижения.Организация			= Документ.Организация;
			СтрокаДвижения.Физлицо		 		= СтрокаЗарплаты.Физлицо;
			СтрокаДвижения.ПериодВзаиморасчетов	= Документ.ПериодРегистрации;
			
			СтрокаДвижения.СуммаВзаиморасчетов	= СтрокаЗарплаты.Сумма;
			
			СтрокаДвижения.ХарактерВыплаты		= Документ.ХарактерВыплаты;
			СтрокаДвижения.Ведомость     		= Документ.Ссылка;
			СтрокаДвижения.СпособВыплаты		= Документ.СпособВыплаты; 
			
			Если Документ.СпособВыплаты = Перечисления.СпособыВыплатыЗарплаты.ЧерезКассу И СтрокаЗарплаты.ВыплаченностьЗарплаты = Перечисления.ВыплаченностьЗарплаты.Задепонировано Тогда
				
				СтрокаДвижения = Документ.Движения.ВзаиморасчетыСДепонентамиОрганизаций.ДобавитьПриход();
				
				СтрокаДвижения.Период				= Документ.Дата;
				
				СтрокаДвижения.Организация			= Документ.Организация;
				СтрокаДвижения.Физлицо		 		= СтрокаЗарплаты.Физлицо;
				СтрокаДвижения.Ведомость			= Документ.Ссылка;
				
				// Ресурсы
				СтрокаДвижения.Сумма				= СтрокаЗарплаты.Сумма + СтрокаЗарплаты.КомпенсацияЗаЗадержкуЗарплаты; 
				
			КонецЕсли;	
			
			СтрокаДвижения = Документ.Движения.СведенияОВыплатахРаботникамОрганизацийПоПлатежнымВедомостям.Добавить();
			
			СтрокаДвижения.ФизЛицо   = СтрокаЗарплаты.ФизЛицо;
			СтрокаДвижения.Ведомость = Документ.Ссылка;

		КонецЦикла;	
		
	КонецЕсли;
	
	// По регистру расчетов с бюджетом по НДФЛ
	ГоловнаяОрганизация = ОбщегоНазначенияЗК.ГоловнаяОрганизация(Документ.Организация);
// сергей (	
	//Если Документ.ХарактерВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Зарплата Тогда
	//	ДатаНДФЛ = Макс(Документ.Дата, КонецМесяца(Документ.ПериодРегистрации));
	//Иначе
	//	ДатаНДФЛ = Документ.Дата;
	//КонецЕсли;
	Если ПараметрыСеанса.НеПроверятьХронологиюУчетаУдержанногоНДФЛ Тогда
        ДатаНДФЛ = Макс(Документ.Дата, КонецМесяца(Документ.ПериодРегистрации));
	Иначе	
		Если Документ.ХарактерВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Зарплата Тогда
			ДатаНДФЛ = Макс(Документ.Дата, КонецМесяца(Документ.ПериодРегистрации));
		Иначе
			ДатаНДФЛ = Документ.Дата;
		КонецЕсли;
	КонецЕсли;	
// сергей )	
	
	СтруктураДокумента = Новый Структура;
	СтруктураДокумента.Вставить("ДатаНДФЛ", КонецДня(ДатаНДФЛ));
	СтруктураДокумента.Вставить("Ссылка", Документ.Ссылка);
	СтруктураДокумента.Вставить("Период", Документ.Дата);
	СтруктураДокумента.Вставить("ОбособленноеПодразделение", Документ.Организация);
	СтруктураДокумента.Вставить("Организация", ГоловнаяОрганизация);
	СтруктураДокумента.Вставить("ХарактерВыплаты", Документ.ХарактерВыплаты);
	
	ТекстТаблицыВыплаты = 
	"ВЫБРАТЬ
	|	ЗарплатаКВыплате.Физлицо КАК ФизЛицо,
	|	СУММА(ЗарплатаКВыплате.Сумма) КАК Сумма
	|ПОМЕСТИТЬ ВТВыплатыФизлицам
	|ИЗ
	|	Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплате
	|ГДЕ
	|	ЗарплатаКВыплате.Ссылка = &ДокументСсылка
	|	И (ЗарплатаКВыплате.Ссылка.СпособВыплаты = ЗНАЧЕНИЕ(Перечисление.СпособыВыплатыЗарплаты.ЧерезБанк)
	|			ИЛИ ЗарплатаКВыплате.ВыплаченностьЗарплаты = ЗНАЧЕНИЕ(Перечисление.ВыплаченностьЗарплаты.Выплачено)
	|			ИЛИ ЗарплатаКВыплате.ВыплаченностьЗарплаты = ЗНАЧЕНИЕ(Перечисление.ВыплаченностьЗарплаты.Задепонировано))
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗарплатаКВыплате.Физлицо
	|
	|ИМЕЮЩИЕ
	|	СУММА(ЗарплатаКВыплате.Сумма) <> 0
	|
	|ИНДЕКСИРОВАТЬ ПО
	|	ФизЛицо";
	
	ПроведениеРасчетовПереопределяемый.СформироватьРасчетыПоНДФЛПриВыплате(СтруктураДокумента, ТекстТаблицыВыплаты, Документ.Движения.НДФЛРасчетыСБюджетом, Документ.Движения.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ);
	
КонецПроцедуры
  • Внести изменения в модуль ПроведениеРасчетов
Процедура ПроверитьХронологиюУчетаУдержанногоНДФЛ(Организация, Сотрудники, ДатаРегистрации, Отказ, Заголовок) Экспорт
// Сергей (
	Если ПараметрыСеанса.НеПроверятьХронологиюУчетаУдержанногоНДФЛ Тогда
		Возврат;
    КонецЕсли;
// Сергей )
	
	УпрощенныйУчетНДФЛ = ПроцедурыУправленияПерсоналом.ЗначениеУчетнойПолитикиПоПерсоналуОрганизации(глЗначениеПеременной("глУчетнаяПолитикаПоПерсоналуОрганизации"), Организация, "УпрощенныйУчетНДФЛ");
	Если УпрощенныйУчетНДФЛ Тогда
		Возврат
	КонецЕсли;
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("ДатаРегистрации", КонецДня(ДатаРегистрации));
	Запрос.УстановитьПараметр("Сотрудники", Сотрудники);
	Запрос.УстановитьПараметр("ОбособленноеПодразделение", Организация);
	Запрос.УстановитьПараметр("Организация", ОбщегоНазначенияЗК.ГоловнаяОрганизация(Организация));
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	НДФЛРасчетыСБюджетом.Регистратор,
	|	ПРЕДСТАВЛЕНИЕССЫЛКИ(НДФЛРасчетыСБюджетом.Регистратор) КАК Описание
	|ИЗ
	|	РегистрНакопления.НДФЛРасчетыСБюджетом КАК НДФЛРасчетыСБюджетом
	|ГДЕ
	|	НДФЛРасчетыСБюджетом.ФизЛицо В(&Сотрудники)
	|	И НДФЛРасчетыСБюджетом.Организация = &Организация
	|	И НДФЛРасчетыСБюджетом.ОбособленноеПодразделение = &ОбособленноеПодразделение
	|	И НДФЛРасчетыСБюджетом.Период > &ДатаРегистрации
	|	И НДФЛРасчетыСБюджетом.ВидСтроки = ЗНАЧЕНИЕ(Перечисление.НДФЛРасчетыСБюджетомВидСтроки.Удержание)
	|	И НДФЛРасчетыСБюджетом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)";
	Результат = Запрос.Выполнить();
	
	Если Результат.Пустой() Тогда
		Возврат
	КонецЕсли;
	
	Выборка = Результат.Выбрать();
	ОбщегоНазначенияЗК.ВывестиИнформациюОбОшибке("Выявлено нарушение хронологии в учете удержанного НДФЛ: в данных присутствуют будущие записи, произведенные документом(ами)", Отказ, Заголовок);		
	Пока Выборка.Следующий() Цикл
		ОбщегоНазначенияЗК.ВывестиИнформациюОбОшибке("", Отказ, Заголовок, Перечисления.ВидыСообщений.Информация, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Новый Структура("Представление,Расшифровка", Выборка.Описание, Выборка.Регистратор)));		
	КонецЦикла;
	ОбщегоНазначенияЗК.ВывестиИнформациюОбОшибке("Чтобы провести текущий документ, необходимо отменить проведение указанных документов.", Отказ, Заголовок, Перечисления.ВидыСообщений.Информация);		

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

Все изменения помечены как "\\ Сергей".

Обработка 6-НДФЛ методика

См. также

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2347    YA_418728146    11    

40

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

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

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1013    6    2ncom    3    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

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

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4825    mrXoxot    11    

99

Ключи аналитик учета в ЕРП, КА, УТ

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

Разбираемся, зачем в системе ЕРП созданы справочники: ключи аналитик учета, зачем созданы аналогичные по набору измерений регистры сведений. Какие проблемы они решают, какие создают новые и что с этим делать.

08.11.2023    7033    ids79    25    

74

Распределение по базе среднего в ЗИКГУ 3.1

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 Россия Бюджетный учет Абонемент ($m)

Результат расчета начислений (отпуск, БЛ и т.д.) может распределятся по базе среднего заработка. У таких начислений на вкладке "Налоги, взносы, бухучет" стоит галка "По базе среднего заработка". Но бывают случаи, что данное распределение необходимо скорректировать.

1 стартмани

14.09.2023    445    2    Vlx    0    

1

Расширение типового механизма настройки заполнения бухгалтерской отчетности (на примере конфигурации 1С:ERP. Управление холдингом 3.1.8.15)

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

В статье приведен алгоритм доработок типового механизма настройки заполнения бухгалтерской отчетности на примере конфигурации 1С:ERP. Управление холдингом (3.1.8.15). Цель доработок - сделать процесс настроек более гибким и удобным для пользователей

11.09.2023    1926    ICL-Soft    3    

12

Разбор механизма "Настройки полей формы" в 1С:ERP. Управление холдингом

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

В данной статье я постараюсь разобрать механизм, который Вам может встретиться на просторах типовой конфигурации 1С:ERP. Управление холдингом. Я не могу гарантировать, что этот механизм не исключат из следующих версий конфигурации (как, собственно, и любой другой). К сожалению, мне не удалось найти его ни в одном модуле конфигурации "Библиотеки стандартных подсистем". Мне он показался интересным, и захотелось более детально во всем этом разобраться.

18.07.2023    2154    it_box    1    

7

Работа с контактной информацией. Часть 2

Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

05.06.2023    6948    biimmap    4    

41
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Anesk 17 05.10.16 20:36 Сейчас в теме
Создал аналогичную для себя. Но сейчас новый релиз вышел, который учитывает взаиморасчеты
2. webester 26 06.10.16 09:29 Сейчас в теме
Это че серьезно за 1$m можно скачать актуальный cf ЗУП? Как мило ;)
3. oksja 8 19.10.16 05:38 Сейчас в теме
Огромный респект за идею!!! Вот уж действительно всё гениальное просто. Предложенный в статье способ проведения документов наиболее приближен к естественной хронологии учета и поэтому 2й раздел приобретает более правильный вид. Я бы сказала что это одна из немногих действительно ценных публикаций по теме 6ндфл на инфостарте. С разрешения автора могу опубликовать адаптированную мной обработку для бюджетной зарплаты с небольшими улучшениями. Ещё раз спасибо!
4. diolkost 30.01.17 19:44 Сейчас в теме
Здравствуйте, у меня не работает обработка.
5. vlaskin 82 31.01.17 10:42 Сейчас в теме
(4) Здравствуйте, можете написать более конкретно?
6. diolkost 31.01.17 14:23 Сейчас в теме
Здравствуйте, при запуске "все документы" ничего не происходит.
Прикрепленные файлы:
7. diolkost 27.02.17 13:11 Сейчас в теме
Здравствуйте, я так и не получила ответ на свой вопрос, что не работает обработка.
Оставьте свое сообщение