Странный сбой начисления зарплаты в БП3
Клиент обратился с проблемой, что не начисляется зарплата.
Я уже было попенял на прошлый похожий случай.
Но анализ показал, что подразделения заполнены.
Решение проблемы с заполнением сотрудников в начисление зарплаты
Проведение тестового кадрового перевода решило проблему по одному сотруднику. Даже когда я убрал проведение, зарплата стала по нему начисляться.
Это навело меня на мыль, что проблема в интервальных регистрах, я зашел в каждый из 4 интервальных регистра зарплаты:

И нажал там Еще — Перезаполнить регистр. Визуально там записей добавилось.
Еще можно перезаполнить регистр «Основные сотрудники физических лиц».
После этого зарплата заполнялась корректно.
В базу клиента переносились кадровые документы с движениями из другой базы, видимо, не пересчитались автоматом кадровые интервальные регистры, которые пересчитываются при проведении.
Интересно, можно как-то принудительно вызвать их пересчет одной кнопкой?
Решение проблемы с подбором в документ начисление зарплаты
Однако осталась проблема — при нажатии подбор сотрудники не добавлялись в документ начисление зарплаты.
Те сотрудники, которые не добавлялись, имели пустую дату приема.
Дата приема выводится в список сотрудников из регистра ТекущиеКадровыеДанныеСотрудников:

Мне показалось, что этот регистр перезаполняется при записи константы «Использовать кадровый учет»:

Но там есть хитрое условие:

Я выполнил специальный код:
Источник = Константы.ИспользоватьКадровыйУчет.СоздатьМенеджерЗначения(); Источник.Значение = ложь; Источник.ДополнительныеСвойства.Вставить("ЗаполнитьТекущиеКадровыеДанныеСотрудников", Истина); Отказ = ложь; РасчетЗарплатыДляНебольшихОрганизацийСобытия.ЗаполнитьТекущиеКадровыеДанныеСотрудников(Источник, Отказ);
Но код помог частично, по каким-то сотрудникам записи заполнились, по каким-то нет.
Я поискал, где еще заполняется этот регистр, нашел и выполнил другой код:
З = Новый Запрос( "ВЫБРАТЬ Ссылка ИЗ Справочник.Сотрудники"); Сотрудники = З.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); СотрудникиСОтмененнымСобытиемПрием = Новый Массив(); КадровыйУчет.ОбновитьТекущиеКадровыеДанныеСпискаСотрудников(Сотрудники, СотрудникиСОтмененнымСобытиемПрием);
Этот код справился. Опять в БП многочисленное дублирование кода. Ну и не мешало бы добавить кнопку перезаполнения этого регистра, ау, 1С!
Среда: БП 3.0.195.40, Объем: 1.5 час
