Каталог решений - Исправление в расчете вознаграждения платежного агента

Исправление в расчете вознаграждения платежного агента

Исправление в расчете вознаграждения платежного агента

В наличии

После расчета «экономной» зарплаты за апрель (спасибо эпидемии короновируса) неожиданно возникла ошибка в расчете вознаграждения платежного агента. Ошибку 1С обещала зарегистрировать под номером 10222615, но когда она будет исправлена, они не знают и сроки не ставят. Потому что ошибка не критичная, возникает редко при определенных обстоятельствах.

Категория:

Описание

Суть проблемы:

У сотрудника Булатова Игоря Виленовича оклад 16 000 руб.

На него введены два исполнительных листа по 25% каждый на одного и того же получателя через почту России. Один по достижении предела – задолженность по алиментам. Второй по достижении 18 лет ребенку.

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

При расчете зарплаты сумма удержания по каждому исполнительному листу составляет 3 480,00 руб.

Но сумма почтовых сборов не соответствует ожиданиям!

На текущий момент тарифы почты России выглядят следующим образом:

При расчете почтового сбора должна учитываться общая сумма удержаний 6 960 * 2% + 190 = 329,20 – то есть на каждого по 164,60. Это меньше чем результат расчета программы.

Допустим, что расчет выполняется по каждому документу отдельно – 3 480 * 4% + 90 = 229,20. Это больше чем результат расчета программы.

Оказалось, что программа использовала для расчета общую сумму удержания, а вот тариф, соответствующий одному документу в отдельности – 6 960 * 4% + 90 = 368,40 – как раз 184,20 на документ.

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

Подобная ошибка наблюдается в версиях ЗУП 3.1.13.188 и 3.1.13.219.

Как исправить:

Подвох оказался в общем модуле Исполнительный листыПроцедура РассчитатьВознагражденияПлатежныхАгентов.

При определении тарифа разработчики предусмотрели проверку, которая останавливает процедуру поиска, если тариф уже найден:

Если Тариф <> Неопределено Тогда
   Продолжить;
КонецЕсли;

Пока Выборка.Следующий() Цикл
    Тариф = Новый Структура("Процент, Сумма, МинимальнаяСумма, МаксимальнаяСумма");
    ЗаполнитьЗначенияСвойств(Тариф, Выборка);
    Если Выборка.СуммаУдержанияОборот <= Выборка.Порог Или Выборка.Порог = 0 Тогда
        Прервать;
    КонецЕсли;
КонецЦикла;

Но в случае, описанном выше – тариф для одного документа не подходит для расчета общих почтовых сборов. Так этот код следует заменить на:

Пока Выборка.Следующий() Цикл
    Тариф = Новый Структура("Процент, Сумма, МинимальнаяСумма, МаксимальнаяСумма");
    ЗаполнитьЗначенияСвойств(Тариф, Выборка);
    Если СуммаУдержанияОборот <= Выборка.Порог Или Выборка.Порог = 0 Тогда
        Прервать;
    КонецЕсли;
КонецЦикла;

Здесь при изменении общей сумме удержания происходит замена тарифа почтового сбора. Это не сильно увеличит время расчета, но позволит сэкономить несколько нервных клеток 🙂.

has been added to your cart:
Оформление заказа