Странный сбой начисления зарплаты в БП3

Клиент обратился с проблемой, что не начисляется зарплата.

Я уже было попенял на прошлый похожий случай.

Но анализ показал, что подразделения заполнены.

Решение проблемы с заполнением сотрудников в начисление зарплаты

Проведение тестового кадрового перевода решило проблему по одному сотруднику. Даже когда я убрал проведение, зарплата стала по нему начисляться.

Это навело меня на мыль, что проблема в интервальных регистрах, я зашел в каждый из 4 интервальных регистра зарплаты:

И нажал там Еще — Перезаполнить регистр. Визуально там записей добавилось.

Еще можно перезаполнить регистр «Основные сотрудники физических лиц».

После этого зарплата заполнялась корректно.

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

Интересно, можно как-то принудительно вызвать их пересчет одной кнопкой?

Решение проблемы с подбором в документ начисление зарплаты

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

Те сотрудники, которые не добавлялись, имели пустую дату приема.

Дата приема выводится в список сотрудников из регистра ТекущиеКадровыеДанныеСотрудников:

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

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

Я выполнил специальный код:

Источник = Константы.ИспользоватьКадровыйУчет.СоздатьМенеджерЗначения();
Источник.Значение = ложь;
Источник.ДополнительныеСвойства.Вставить("ЗаполнитьТекущиеКадровыеДанныеСотрудников", Истина);
Отказ = ложь;
РасчетЗарплатыДляНебольшихОрганизацийСобытия.ЗаполнитьТекущиеКадровыеДанныеСотрудников(Источник, Отказ);

Но код помог частично, по каким-то сотрудникам записи заполнились, по каким-то нет.

Я поискал, где еще заполняется этот регистр, нашел и выполнил другой код:

З = Новый Запрос(
"ВЫБРАТЬ Ссылка ИЗ Справочник.Сотрудники");
Сотрудники = З.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");      
СотрудникиСОтмененнымСобытиемПрием = Новый Массив();
КадровыйУчет.ОбновитьТекущиеКадровыеДанныеСпискаСотрудников(Сотрудники, СотрудникиСОтмененнымСобытиемПрием);

Этот код справился. Опять в БП многочисленное дублирование кода. Ну и не мешало бы добавить кнопку перезаполнения этого регистра, ау, 1С!

Среда: БП 3.0.195.40, Объем: 1.5 час