Изменить программно вычеты НДФЛ после расчёта
Есть Документ "Начисление Зарплаты", все считается нормально, но у бухгалтерии есть одно требование.
поскольку в организации много внутренних совместителей, бухгалтерия хочет, чтобы налоговые вычеты при расчёте з/п цеплялись только к по основному месту работы (сейчас налоговые вычеты размазываются пропорционально з/п на все места работы основное и совместительство).
Внешних совместителей пока не трогаем.
Где производится расчёт вычетов и что изменить, чтобы получить требуемое?
поскольку в организации много внутренних совместителей, бухгалтерия хочет, чтобы налоговые вычеты при расчёте з/п цеплялись только к по основному месту работы (сейчас налоговые вычеты размазываются пропорционально з/п на все места работы основное и совместительство).
Внешних совместителей пока не трогаем.
Где производится расчёт вычетов и что изменить, чтобы получить требуемое?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Есть 2 варианта - Лопатить функцию УчетНДФЛ.РассчитатьНалогПоОсновнойСтавке или действительно создавать постобработку.
Но с постобработкой непонятно откуда брать суммы вычетов и виды занятости сотрудников
Я создал расширение конфигурации сделал в форме документа НачислениеЗарблаты на вкладке НДФЛ (табличная часть) кнопку - которая вызывает обработчик на Клиенте
В обработчике создал функцию выборки из регистраСведений - имею проблему данные не могу передать из функции.
"а если вычет окажется больше суммы дохода по основному рабочему месту" - эээ, это вычет из налога, а не из дохода
&НаСервере
Функция ТекстЗапросВыборВидовЗанятостиПоСотруднику()
Текст =
"ВЫБРАТЬ
| ВидыЗанятостиСрезПоследних.Период,
| ВидыЗанятостиСрезПоследних.Активность,
| ВидыЗанятостиСрезПоследних.Сотрудник,
| ВидыЗанятостиСрезПоследних.ГоловнаяОрганизация,
| ВидыЗанятостиСрезПоследних.ФизическоеЛицо,
| ВидыЗанятостиСрезПоследних.ВидЗанятости,
| ВидыЗанятостиСрезПоследних.ДействуетДо
|ИЗ
| РегистрСведений.ВидыЗанятостиСотрудников.СрезПоследних(
| &ВыбМесяцНачисления,
| Активность = Истина И
| Сотрудник = &ВыбСотрудник
| ) КАК ВидыЗанятостиСрезПоследних
|УПОРЯДОЧИТЬ ПО
| ВидыЗанятостиСрезПоследних.ГоловнаяОрганизация";
Возврат Текст;
КонецФункции
&НаСервере
/// Выбор из регистра сведений ВидыЗанятости строк для сотрудника
// Параметр Выбсотрудник - Ссылка на сотрудника
// Возвращает таблицу сведений по запросу возвращаемому функцией
// ТекстЗапросВыборВидовЗанятостиПоСотруднику()
Функция ВыборИзРегистраСведенийВидовЗанятостиСотрудника(ВыбСотрудник, ВыбМесяцНачисления)
// Выбор из регистра сведений
// За возможности выборки наиболее поздних записей регистра
// сведений (среза последних) в разрезе заданной аналитики
// отвечает виртуальная таблица СрезПоследних.
// У неё есть следующие параметры:
// 1. Период (включительно)
// 2. Условие (например, Организация = &ВыбОрганизация)
// Получим цены на бананы для каждого контрагента
// на конец 1 квартала 2014 года (включительно)
// по организации ООО "Ромашка".
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапросВыборВидовЗанятостиПоСотруднику();
Запрос.УстановитьПараметр("ВыбСотрудник", ВыбСотрудник);
Запрос.УстановитьПараметр("ВыбМесяцНачисления", ВыбМесяцНачисления);
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса;
КонецФункции
&НаКлиенте
Процедура РВычет_РВ_ПересчитатьВычетыПосле(Команда)
Для каждого СтрокаТаблицы из Объект.НДФЛ Цикл
Записи = ВыборИзРегистраСведенийВидовЗанятостиСотрудника(СтрокаТаблицы.ФизическоеЛицо, Объект.МесяцНачисления).Выбрать();
ЗДЕСЬ ИМЕЮ НЕСООТВЕТСТВИЕ ТИПОВ
Пока Записи.Следующий() Цикл
Сообщить ("СОТРУДНИК: " + Записи.Сотрудник + " "+
"ФИЗИЧЕСКОЕлицо: "+Записи.ФизическоеЛицо + " " +
"ГОЛОВНАЯОрганизация " +Записи.ГоловнаяОрганизация + " " +
"ВИДЗанятости " +Записи.ВидЗанятости + " "
"ДЕЙСТВУЕТдо " +Записи.ДействуетДо);
КонецЦикла;
/// выбор из регистра сведений
КонецЦикла;
КонецПроцедуры
Но с постобработкой непонятно откуда брать суммы вычетов и виды занятости сотрудников
Я создал расширение конфигурации сделал в форме документа НачислениеЗарблаты на вкладке НДФЛ (табличная часть) кнопку - которая вызывает обработчик на Клиенте
В обработчике создал функцию выборки из регистраСведений - имею проблему данные не могу передать из функции.
"а если вычет окажется больше суммы дохода по основному рабочему месту" - эээ, это вычет из налога, а не из дохода
&НаСервере
Функция ТекстЗапросВыборВидовЗанятостиПоСотруднику()
Текст =
"ВЫБРАТЬ
| ВидыЗанятостиСрезПоследних.Период,
| ВидыЗанятостиСрезПоследних.Активность,
| ВидыЗанятостиСрезПоследних.Сотрудник,
| ВидыЗанятостиСрезПоследних.ГоловнаяОрганизация,
| ВидыЗанятостиСрезПоследних.ФизическоеЛицо,
| ВидыЗанятостиСрезПоследних.ВидЗанятости,
| ВидыЗанятостиСрезПоследних.ДействуетДо
|ИЗ
| РегистрСведений.ВидыЗанятостиСотрудников.СрезПоследних(
| &ВыбМесяцНачисления,
| Активность = Истина И
| Сотрудник = &ВыбСотрудник
| ) КАК ВидыЗанятостиСрезПоследних
|УПОРЯДОЧИТЬ ПО
| ВидыЗанятостиСрезПоследних.ГоловнаяОрганизация";
Возврат Текст;
КонецФункции
&НаСервере
/// Выбор из регистра сведений ВидыЗанятости строк для сотрудника
// Параметр Выбсотрудник - Ссылка на сотрудника
// Возвращает таблицу сведений по запросу возвращаемому функцией
// ТекстЗапросВыборВидовЗанятостиПоСотруднику()
Функция ВыборИзРегистраСведенийВидовЗанятостиСотрудника(ВыбСотрудник, ВыбМесяцНачисления)
// Выбор из регистра сведений
// За возможности выборки наиболее поздних записей регистра
// сведений (среза последних) в разрезе заданной аналитики
// отвечает виртуальная таблица СрезПоследних.
// У неё есть следующие параметры:
// 1. Период (включительно)
// 2. Условие (например, Организация = &ВыбОрганизация)
// Получим цены на бананы для каждого контрагента
// на конец 1 квартала 2014 года (включительно)
// по организации ООО "Ромашка".
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапросВыборВидовЗанятостиПоСотруднику();
Запрос.УстановитьПараметр("ВыбСотрудник", ВыбСотрудник);
Запрос.УстановитьПараметр("ВыбМесяцНачисления", ВыбМесяцНачисления);
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса;
КонецФункции
&НаКлиенте
Процедура РВычет_РВ_ПересчитатьВычетыПосле(Команда)
Для каждого СтрокаТаблицы из Объект.НДФЛ Цикл
Записи = ВыборИзРегистраСведенийВидовЗанятостиСотрудника(СтрокаТаблицы.ФизическоеЛицо, Объект.МесяцНачисления).Выбрать();
ЗДЕСЬ ИМЕЮ НЕСООТВЕТСТВИЕ ТИПОВ
Пока Записи.Следующий() Цикл
Сообщить ("СОТРУДНИК: " + Записи.Сотрудник + " "+
"ФИЗИЧЕСКОЕлицо: "+Записи.ФизическоеЛицо + " " +
"ГОЛОВНАЯОрганизация " +Записи.ГоловнаяОрганизация + " " +
"ВИДЗанятости " +Записи.ВидЗанятости + " "
"ДЕЙСТВУЕТдо " +Записи.ДействуетДо);
КонецЦикла;
/// выбор из регистра сведений
КонецЦикла;
КонецПроцедуры
(5)
Что такое "вычет из налога"?
(5)
Если не будете делать постобработкой, сразу обговорите с клиентом о возможных работах после обновлений.
Разработчик постоянно переписывает общие модули, такое ощущение, что по факту уже на 4 редакции работаем
эээ, это вычет из налога, а не из дохода
Что такое "вычет из налога"?
(5)
Но с постобработкой непонятно откуда брать суммы вычетов и виды занятости сотрудников
Если не будете делать постобработкой, сразу обговорите с клиентом о возможных работах после обновлений.
Разработчик постоянно переписывает общие модули, такое ощущение, что по факту уже на 4 редакции работаем
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот