Пример доработки ЗУП 2.5 для 6-НДФЛ и для сохранения галочки Исчисленный налог = Удержанный налог

13.04.16

Задачи пользователя - Адаптация типовых решений

В данной статье рассмотрено мое решение изменения ЗУП 2.5 для сохранения в настройках галки "Исчисленный налог = Удержанный налог". Подробно расписывать преимущества этой галки не буду, в инете есть множество материалов, где описано, что Вас ждет, если эту галку снять.

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

Наименование Файл Версия Размер
ОтчетОСравнении.mxl
.mxl 113,75Kb
2
.mxl 1 113,75Kb 2 Скачать
ОбработкаПереброскиРеквизита
.epf 6,81Kb
3
.epf 6,81Kb 3 Скачать

ВНИМАНИЕ! Уважаемые коллеги, получилась комичная ситуация, что 1С доработало типовую Зуп 2.5 в 102 релизе так же, как и я, это сделал в начале Года! Тему можно отправлять в Архив.

Для тех, кто уже внес изменения, как у меня. Я написал небольшую обработку, для переброски из Доработанного реквизита в типовой, дату Удержания-Выплаты З/П. Не знаю как сделать Обработку бесплатной, поэтому пишите в личку.

 

Суть моей доработки  проста, создать Дату Удержанного НДФЛ в документе "Начисление зарплаты сотрудникам организаций" (Рис. 1), где мы можем проставить дату выплаты З/П по данному начислению. У кого-то возникнет ситуация выплаты начисления разными датами, для этого мы создаем и в Табличной части "НДФЛ" одноименный реквизит где имеем возможность проставить дату Удержания индивидуально для каждого сотрудника и суммы Налога. См. Рис 1.

Небольшое преимущество данного примера, это выведение добавленных реквизитов программным способом. И при обновлении Вам необходимо будет сохранять всего одну строку в Типовом модуле. (См. пункт 4 данной инструкции)

 

1. Создаем реквизит документа с типом дата в документе "Начисление зарплаты сотрудникам организаций", у меня имя "РТ_ДатаУдержанияНДФЛ"

2. Создаем одноименный реквизит с Типом значения Дата в ТЧ "НДФЛ".

3. Создаем Наш Общий модуль, у меня он называется "РТ_ОбщийМодуль".

Заполнение модуля:

#Область ДоработкаНДФЛУдержанный

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

Процедура ВыводДополнительныхРеквизитов(ДокументОбъект, ФормаДокумента) Экспорт

    // Вывод или сохранение дополнительных реквизитов
    // Если элемент формы существует то сохраняем значение
    Элемент = ФормаДокумента.ЭлементыФормы.Найти("РТ_ДатаУдержанияНДФЛ");

	Если Элемент = Неопределено Тогда
		
        // Создание заголовка
        Элемент = ФормаДокумента.ЭлементыФормы.Добавить(Тип("Надпись"), "ЗаголовокРТ_ДатаУдержанияНДФЛ", Истина, ФормаДокумента.Панель);
        Элемент.Заголовок = "Дата Удержания НДФЛ:";

        // Настройка
        Элемент.Лево = 416;
        Элемент.Верх = 102;
        Элемент.Высота = 19;
        Элемент.Ширина = 140;

        // Установка привязок
	Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ФормаДокумента.ЭлементыФормы.ЗаголовокРТ_ДатаУдержанияНДФЛ, ГраницаЭлементаУправления.Верх);
        Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Право, ФормаДокумента.ЭлементыФормы.ПериодНачисленияДатаОкончания, ГраницаЭлементаУправления.Право);
        Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Лево, ФормаДокумента.ЭлементыФормы.ПериодНачисленияДатаОкончания, ГраницаЭлементаУправления.Право);

        // Создание поле ввода
        Элемент = ФормаДокумента.ЭлементыФормы.Добавить(Тип("ПолеВвода"), "РТ_ДатаУдержанияНДФЛ", Истина, ФормаДокумента.Панель);
        Элемент.ТипЗначения = Новый ОписаниеТипов("Дата");
        Элемент.Данные = "РТ_ДатаУдержанияНДФЛ";

        // Настройка
        Элемент.Лево = 416 + 140;
        Элемент.Верх = 102;
        Элемент.Высота = 19;
        Элемент.Ширина = 92;

        // Установка привязок
	Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ФормаДокумента.ЭлементыФормы.РТ_ДатаУдержанияНДФЛ, ГраницаЭлементаУправления.Верх);
	Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Право, ФормаДокумента.ЭлементыФормы.Ответственный, ГраницаЭлементаУправления.Право);
        Элемент.УстановитьПривязку(ГраницаЭлементаУправления.Лево,ФормаДокумента.ЭлементыФормы.ПериодНачисленияДатаОкончания, ГраницаЭлементаУправления.Право);

		//Выводим в таличную часть реквизиты
		ЭлементыФормы = ФормаДокумента.ЭлементыФормы;
		ЭлементыФормы.НДФЛ.Колонки.Добавить("РТ_ДатаУдержанияНДФЛ", "Дата удержания НДФЛ");
		ЭлементыФормы.НДФЛ.Колонки.РТ_ДатаУдержанияНДФЛ.Данные = "РТ_ДатаУдержанияНДФЛ";
		ЭлементыФормы.НДФЛ.Колонки.РТ_ДатаУдержанияНДФЛ.УстановитьЭлементУправления(Тип("ПолеВвода"));
		ЭлементыФормы.НДФЛ.Колонки.РТ_ДатаУдержанияНДФЛ.ЭлементУправления.КнопкаВыбора = Истина;
		
    КонецЕсли;

КонецПроцедуры

Процедура РТ_ПроведениеНачислениеЗПОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
	
	//Если у нас не упрощенный режим, ничего не трогаем!
	УпрощенныйУчетНДФЛ = ПроцедурыУправленияПерсоналом.ЗначениеУчетнойПолитикиПоПерсоналуОрганизации(глЗначениеПеременной("глУчетнаяПолитикаПоПерсоналуОрганизации"), Источник.Организация, "УпрощенныйУчетНДФЛ");
	Если НЕ УпрощенныйУчетНДФЛ Тогда 
		Возврат
	КонецЕсли;

	ДатаУдержанияНДФЛ = Источник.РТ_ДатаУдержанияНДФЛ;
	
	ТЗ_НДФЛ_сДатами = ПолучитьЛичныеДатыУдержания(Источник.Ссылка);
	Если ТЗ_НДФЛ_сДатами.Количество() = 0 Тогда 
		ДатыВТЧ = Ложь;
	Иначе 
		ДатыВТЧ = Истина;
	КонецЕсли;
	
	Если ДатаУдержанияНДФЛ <> Дата(1,1,1) Тогда 
		НДФЛ_Удерж = Источник.Движения.НДФЛРасчетыСБюджетом;
		НДФЛ_Удерж.Записывать = Истина;
		Для Каждого Записи из НДФЛ_Удерж Цикл
			
			Если Записи.ВидСтроки = Перечисления.НДФЛРасчетыСБюджетомВидСтроки.Удержание Тогда
				
				Записи.Период = ДатаУдержанияНДФЛ;
				
				//Проверяем даты Удержания НДФЛ в талице
				Если ДатыВТЧ Тогда 
					
					Для Каждого СтрокаТЗ из ТЗ_НДФЛ_сДатами Цикл 
						Если СтрокаТЗ.ФизЛицо = Записи.ФизЛицо И СтрокаТЗ.Налог = Записи.Налог И СтрокаТЗ.ПодразделениеОрганизации = Записи.ПодразделениеОрганизации  Тогда 
						Записи.Период = СтрокаТЗ.РТ_ДатаУдержанияНДФЛ;
						КонецЕсли;
					КонецЦикла;	
				КонецЕсли;
				
			КонецЕсли;
			
		КонецЦикла;		
	КонецЕсли;
	
КонецПроцедуры

Функция ПолучитьЛичныеДатыУдержания(Ссылка)

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

	
	РезультатЗапроса = Запрос.Выполнить();
		
	Возврат РезультатЗапроса.Выгрузить();	

КонецФункции // ПолучитьЛичныеДатыУдержания(Источник.Ссылка);()

#КонецОбласти

4. В конце процедуры "ПриОткрытии" Формы документа "Начисление зарплаты сотрудникам организаций" вставляем:

//Измения +
	РТ_ОбщийМодуль.ВыводДополнительныхРеквизитов(ДокументОбъект,ЭтаФорма);
	//Изменения -

 Это единственное изменение, которое необходимо будет сохранять при Обновлении конфы.

5. Создаем Подписку на событие Источник = ДокументОбъект.НачислениеЗарплатыРаботникамОрганизаций, Событие = ОбработкаПроведения, Обработчик = РТ_ОбщийМодуль.РТ_ПроведениеНачислениеЗПОбработкаПроведения.

На этом все. Обращу внимание, что в моем Общем модуле есть процедура "РТ_УдалитьУдержаниеВВыплатеЗПОбработкаПроведения", она создана для Подписки при проведении Ведомости на выплату З/П. Не описывал создание этой подписки по причине того, что в релизе 2.5.101.2 разработчки убрал движение этого документа по регистру "НДФЛРасчетыСБюджетом", но я у себя оставил.

Так же для Бухгалтеров создал Внешний отчет для сверки 6-НДФЛ: //infostart.ru/public/505533/

Первые отчеты ушли на этой неделе, будем смотреть, что скажут в ИФНС, но в 6-НДФЛ все было красиво.

 

P.S

Знаю, что Код местами туповат, но сделал так...

6-НДФЛ Доработка

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

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

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

29400 руб.

29.06.2023    4372    8    4    

16

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

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

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

7200 руб.

02.08.2023    2897    4    0    

19

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

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

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1117    dimanich70    6    

13

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

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

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    1933    13    avmartynov    10    

43

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2020    21    progmaster    7    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. GeterX 1301 16.04.16 16:38 Сейчас в теме
А в ЗКБУ 1.0 в качестве даты удержания используется дата документа, так планирую со следующем обновлением такое сделают и в ЗУП 2.5
2. Beta 11 19.04.16 10:07 Сейчас в теме
В ожидании чудо-релиза, прописала доработку, все работает!!!
3. lotan 63 19.04.16 10:14 Сейчас в теме
(2) Beta, наверное зря дописывали... Говорят там будет типовая дата Удержания в начислении З/П. Единственное наверное чего не будет, так даты Удержания в Табличной части.
Если так будет в 102 релизе, сюда выложу обработку, переброски из доработанного реквизита в Типовой даты.
4. stroganov_ru 32 22.04.16 09:24 Сейчас в теме
(3) Вы правы, даты удержания в табличной части нет.
Оставьте свое сообщение