ЗУП: не считаются календарные дни среднего заработка
Клиент столкнулся с проблемой. В форме «Ввод данных для расчета среднего заработка» не заполняется строка «Норма дней (по производственному календарю)»:
В итоге не считается средний заработок, т.к. количество дней получается равно нулю. Если поставить количество дней вручную, то почитает.
Обратился на Мисту, там не подсказали. Логика тоже не подсказывала ничего конкретного, пришлось брать в руки отладчик.
Регистр «Данные времени для расчета среднего (общий)» заполняется здесь:
Отладчик показывает, что колонка ОтработаноДнейКалендарных не заполнена:
Начинаем проверять временные таблицы:
Использую код вида: Запрос.МенеджерВременныхТаблиц.Таблицы[13].ПолучитьДанные().Выгрузить()
Количество календарных дней считается в объединении из трех запросов, но для наших целей можно смотреть только эту его часть:
Нужно проверить таблицу ВТДанныеПроизводственногоКалендаряПоГрафикам. Тут меня ждал сюрприз — таблица пустая.
Ну что же, вернемся немного назад, где заполняется эта таблица:
В рамочки я взял таблицы, которые надо проверить. И в первую очередь ВТПериодыГрафиков, т.к. к ней делается левое соединение. Эта таблица тоже пустая. Почему?
Анализируем код заполнения таблицы ВТПериодыГрафиков:
ВТФактическийПериодДействия и ВТВидыНачислений заполнены, таблица ВТФПДСотрудников тоже заполнена:
А вот таблица ВТПериодыГрафиков пустая, потому что ЗачетНормыВремени = ложь во всех строках.
Осталось разобраться, почему это поле равно ложь.
Значение Истина поле
Во всех частях объединенного запроса кроме первой ЗачетНормыВремени = истина, а вот в первой задается в самом начислении.
Но тут 1С, как обычно, радует нас оригинальными решениями. Над этим кодом нужно помедитировать, чтобы понять, что там во вложенном запросе?
Я не стал пробовать раскусить логику методистов 1С а просто посмотрел значение этого начисления в отладчике в таблице ВТВидыНачислений:
Как видите, все самые основные начисления идут без «Зачет нормы времени».
Идём в форму начисления:
И получаем:
В начислении стоит вид времени «За работу неполную смену в пределах нормы времени»:
Меняем на «За работу полную смену в пределах нормы времени»:
После перепроведения информация о часах и календарных днях в среднем заработке появляется:
Проверим теперь изменится ли средний заработок за май при использовании обработки «Зарплата — Сервис — Обновить данные для расчета среднего заработка»:
И о чудо — после прогона этой обработки в данных о среднем заработке появляется количество календарных дней (на картинке видно в сравнении с апрелем):
К сожалению, что повлечет смена вида времени, я не знаю, в чем честно и признался клиенту.
Объем: 3 час. Среда: 3.1.18.217
Свежие комментарии