Проблема НДФЛ аванса (и вариант решения) в ЗУП 3.1.23.653 / 3.1.25.37
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Утро началось с того, что прочитал новость об очередной проблеме в ЗУП на БЭ https://buhexpert8.ru/1s-zup/glavnaya-1s-zup/novosti-zup/oshibka-v-zup-3-1-23-653-3-1-25-37-ne-rasschityvaetsya-ndfl-s-avansa.html
Проверил - в одной из организаций проблема проявляется.
В документе "Начисление за первую половину" в ТЧ "Начисления" - 60 человек, в ТЧ "НДФЛ" - 20 (в предыдущие месяца - количество +/- совпадало).
Не поленился, написал простое расширение для перерасчета каждого сотрудника (стандартное - выделить всех и "Пересчитать сотрудника") проблемы не решает.
В расширении - заимствовал процедуру "ПриСозданииНаСервере" формы "ФормаДокумента"
Собственно, все содержимое расширения - вот оно
&НаСервере
Процедура НДФЛА_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
НоваяКоманда = ЭтаФорма.Команды.Добавить("НДФЛА_ПересчитатьВсехСотрудников");
НоваяКоманда.Заголовок = "ПересчитатьВсехСотрудников";
НоваяКоманда.Действие = "НДФЛА_ДействиеКомандыПересчитатьВсехСотрудников"; //указываем только имя процедуры
НоваяКнопка = Элементы.Вставить("КнопкаНДФЛА_ПересчитатьВсехСотрудников", Тип("КнопкаФормы"),ЭтаФорма.Элементы.ОсновныеКоманды);
НоваяКнопка.Заголовок = "Пересчитать всех сотрудников";
НоваяКнопка.ИмяКоманды = "НДФЛА_ПересчитатьВсехСотрудников";
КонецПроцедуры
&НаКлиенте
Процедура НДФЛА_ДействиеКомандыПересчитатьВсехСотрудников()
Для каждого стр из Объект.Начисления цикл
Массив = Новый Массив();
Массив.Добавить(стр.НомерСтроки-1);
НДФЛА_ДействиеРасчетСотрудникаБезИтогов("Начисления",Массив,"Сотрудник",Тип("СправочникСсылка.Сотрудники"));
КонецЦикла;
НДФЛА_ДействиеРасчетИтогов();
КонецПроцедуры
&НаСервере
Процедура НДФЛА_ДействиеРасчетСотрудникаБезИтогов(ИмяТаблицы, ВыбранныеСтроки, ВедущееПоле, ТипВедущегоПоля)
РасчетЗарплатыРасширенный.ПересчитатьСотрудникаНаСервере(ЭтаФорма, ИмяТаблицы, ВыбранныеСтроки, ВедущееПоле, ТипВедущегоПоля);
КонецПроцедуры
&НаСервере
Процедура НДФЛА_ДействиеРасчетИтогов()
РассчитатьИтогиПоДокументу();
КонецПроцедуры
То есть - добавил новую команду, новую кнопку, назначил этой кнопке добавленную команду, и, собственно, выполнение этой добавленной команды путём обхода ТЧ "Начисления" и выполнения стандартного действия перерасчета.
Не самый быстрый вариант (чуть больше секунды на одного сотрудника), но - какой есть.
Методика:
0. Добавляем расширение в конфигурацию, перезапускаем, чтобы оно сработало.
1. Создаём документ, стандартно заполняем.
2. Смотрим на сумму НДФЛ, количество сотрудников в ТЧ "НДФЛ"
3. Нажимаем добавленную кнопку "Пересчитать всех сотрудников", ждём
4. Смотрим на сумму НДФЛ, количество сотрудников в ТЧ "НДФЛ"
Всё.
Проверялось на ЗУП ПРОФ 3.1.23.653 и 3.1.25.37
Вступайте в нашу телеграмм-группу Инфостарт