При переходе на программу «1С:Зарплата и управление персоналом» пользователи нередко сталкиваются с ситуацией, когда по табелю сотруднику введено одно количество часов (например, 16 часов), а в расчетном листке или документе начисления отображается в два раза больше (32 часа). Дополнительно сложность диагностики увеличивается тем, что расчет зарплаты в современных версиях выполняется в фоновом режиме, из-за чего стандартная точка останова в Конфигураторе не срабатывает. Разберем по шагам, почему возникает эта ошибка, как включить отладку и как исправить дубли видов начислений.
Проанализируем механику формирования строк начисления и расчета времени. Удвоение отработанных часов чаще всего вызвано следующими факторами:
ОКЛЧС), то при кадровом оформлении («Прием на работу» или «Изменение оплаты сотрудников») сотруднику могли быть ошибочно назначены оба вида расчета одновременно. При проведении документа «Начисление зарплаты и взносов» программа формирует две отдельные строки, каждая из которых берет время по табелю (по 16 часов). В печатной форме «Расчетный листок» начисления часто объединяются или выводятся последовательно, суммируя часы до 32.В типовых конфигурациях на платформе «1С:Предприятие 8.3» перерасчет документов зарплаты вынесен в фоновые потоки, чтобы интерфейс пользователя не зависал при обработке больших списков. По умолчанию Конфигуратор к таким заданиям не подключается. Выполним подключение отладки по шагам:
ragent) запущен с параметром -debug. Без этого параметра подключение к фоновым потокам на сервере будет невозможно.После включения автоматического подключения точки останова в модулях расчета начнут штатно срабатывать при нажатии кнопки пересчета в пользовательском режиме.
Рассмотрим ситуацию, когда документ «Начисление зарплаты и взносов» вовсе не заполняет оплату по окладу без предварительно проведенного документа «Табель». В нормальном режиме 1С:ЗУП способна выполнять расчет на основе графиков работы методом отклонений без обязательного ввода табелей.
Если этого не происходит, причина кроется в отсутствии данных в регистре сведений ГрафикиРаботыПоВидамВремени:
Начисления в конфигурации 1С:ЗУП хранятся в объекте метаданных ПланВидовРасчета.Начисления. При появлении дублирующихся начислений просто пометить один из элементов на удаление не удается, так как на него ссылаются другие объекты — например, начисление «Доплата до среднего заработка» использует его в качестве базового.
Разберем способы очистки и устранения дублей:
БазовыеВидыРасчета, ВедущиеВидыРасчета и ВытесняющиеВидыРасчета. Если требуется программно исключить ссылку на ошибочный вид расчета из ведущих или базовых начислений, выполним следующий код во внешней обработке:
ОбъектДоплаты = СсылкаНаДоплату.ПолучитьОбъект();
// Удаляем ссылку из базовых начислений
КоличествоСтрок = ОбъектДоплаты.БазовыеВидыРасчета.Количество();
Для Индекс = 1 По КоличествоСтрок Цикл
Строка = ОбъектДоплаты.БазовыеВидыРасчета[КоличествоСтрок - Индекс];
Если Строка.ВидРасчета = ЛишнийВидРасчета Тогда
ОбъектДоплаты.БазовыеВидыРасчета.Удалить(Строка);
КонецЕсли;
КонецЦикла;
ОбъектДоплаты.Записать();
После устранения дублирующегося вида расчета и проверки регистра «Плановые начисления» пересчитаем документ начисления зарплаты — отработанное время сотрудника будет соответствовать данным табеля.