Почему не начисляется зарплата и не заполняются сотрудники после переноса данных в 1С:ЗУП 3.1?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При нетиповом переносе кадровой истории и плановых начислений в программу 1С:Зарплата и управление персоналом 3.1 пользователи часто сталкиваются с ситуацией, когда документ Начисление зарплаты и взносов не заполняется по кнопке Заполнить, хотя при ручном подборе сотрудники отображаются. Также сотрудники могут отсутствовать в общем списке работающих.

Разберем причины такого поведения платформы, проанализируем взаимосвязь кадровых регистров и рассмотрим пошаговый алгоритм исправления ошибок переноса данных.

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

В конфигурации 1С:ЗУП 3.1 механизм автозаполнения расчетных документов кардинально отличается от ранних версий (например, ЗУП 2.5 или ЗиК 7.7). Алгоритмы заполнения опираются не только на регистраторы и основные срезы последних, но и на специализированные интервальные регистры и агрегирующие структуры данных:

  1. Битые ссылки в реквизите ГоловнойСотрудник: в справочнике Сотрудники и регистрах сведений КадроваяИсторияСотрудников и КадроваяИсторияСотрудниковИнтервальный для основных сотрудников этот реквизит должен ссылаться на самого себя, а для совместителей — на основного сотрудника. Если при переносе образовалось значение <Объект не найден>, типовые запросы исключают сотрудника из выборки.
  2. Рассинхронизация интервальных регистров: регистры КадроваяИсторияСотрудниковИнтервальный, ВидыЗанятостиСотрудниковИнтервальный и ПлановыеНачисленияИнтервальный содержат поля ДатаНачала, ДатаОкончания и ПериодПредыдущейЗаписи. При прямой записи данных эти границы часто формируются некорректно.
  3. Неактуальный регистр ТекущиеКадровыеДанныеСотрудников: фильтрация в формах списков и автоподбор работающих сотрудников опираются на срез текущего состояния.
  4. Нарушение временной хронологии документов одной даты: если Прием на работу и Кадровый перевод созданы на один день со временем 00:00:00, платформа при проведении перевода сообщает, что сотрудник еще не принят на работу.

Шаг 1. Устранение битых ссылок в реквизите ГоловнойСотрудник

Проанализируем состояние справочника Сотрудники. Для устранения битых ссылок необходимо программно или с помощью группового изменения реквизитов установить корректные значения.

Посмотрим на пример обработки для восстановления реквизита ГоловнойСотрудник у основных работников:


Выборка = Справочники.Сотрудники.Выбрать();
Пока Выборка.Следующий() Цикл
    СотрудникОбъект = Выборка.ПолучитьОбъект();
    Если СотрудникОбъект.ЭтоГоловнойСотрудник ИЛИ СотрудникОбъект.ГоловнойСотрудник.ПолучитьОбъект() = Неопределено Тогда
        СотрудникОбъект.ГоловнойСотрудник = СотрудникОбъект.Ссылка;
        СотрудникОбъект.Записать();
    КонецЕсли;
КонецЦикла;

Шаг 2. Корректировка времени документов и последовательное перепроведение

Если при попытке провести Кадровый перевод возникает ошибка «Сотрудник не принят на дату кадрового перемещения», разберем порядок действий:

  1. Откроем журнал кадровых документов и проверим время создания документов приема и переводов.
  2. Установим для документов Прием на работу время 00:00:00, а для последующих кадровых переводов на ту же дату — время 12:00:00 или более позднее.
  3. Если в информационной базе включен контроль штатного расписания, перейдем в раздел Настройка → Кадровый учет → Штатное расписание и временно снимем флаг автоматического контроля штатного расписания перед массовым перепроведением.
  4. Выполним последовательное проведение документов кадрового учета в строгом хронологическом порядке.

Шаг 3. Принудительный пересчет интервальных регистров сведений

После проведения документов необходимо перезаполнить интервальные таблицы конфигурации, чтобы типовые механизмы расчета зарплаты увидели актуальные срезы данных.

Рассмотрим, как запустить обновление интервалов:

  1. Через меню Функции для технического специалиста (или Все функции) откроем регистр сведений КадроваяИсторияСотрудниковИнтервальный.
  2. В командной панели нажмем Еще → Перезаполнить регистр.
  3. Повторим процедуру для регистров ВидыЗанятостиСотрудниковИнтервальный и ПлановыеНачисленияИнтервальный.

Также обновление интервальных данных можно вызвать программно с помощью процедур общего модуля конфигурации:


ЗарплатаКадрыОбщиеНаборыДанных.ОбновитьИнтервальныйРегистр("КадроваяИсторияСотрудников");
ЗарплатаКадрыОбщиеНаборыДанных.ОбновитьИнтервальныйРегистр("ПлановыеНачисления");
ЗарплатаКадрыОбщиеНаборыДанных.ОбновитьИнтервальныйРегистр("ВидыЗанятостиСотрудников");

Рекомендации по корректному переносу данных

Чтобы избежать ошибок с рассинхронизацией кадровой истории и битыми ссылками при переходе со старых версий (1С:ЗиК 7.7, 1С:ЗУП 2.5), рекомендуется использовать регламентированный вариант переноса остатков:

  1. Документ «Начальная штатная расстановка»: фиксирует актуальные кадровые состояния, позиции штатного расписания, оклады, тарифные ставки и стажи на дату начала эксплуатации без необходимости переноса всей цепочки первичных документов.
  2. Служебный документ «Перенос данных»: при прямой загрузке остатков в регистры сведений обеспечивает заполнение срезов с автоматическим формированием интервалов через регламентные процедуры.

После устранения битых ссылок и перезаполнения интервальных регистров создадим новый документ Начисление зарплаты и взносов и нажмем Заполнить — сотрудники и их плановые начисления отразятся в табличной части автоматически.

← На главную