Как изменить оклад в карточке сотрудника в 1С:ЗУП без редактирования документа приема

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

В практике работы с конфигурацией «1С:Зарплата и управление персоналом 3.1» часто возникает ситуация, когда данные в карточке сотрудника отображаются некорректно. Одной из наиболее раздражающих проблем является пустое поле «Оклад» при том, что общий Фонд оплаты труда (ФОТ) рассчитан верно. Ситуация осложняется, когда первичные документы (например, «Прием на работу») уже находятся в закрытом периоде или заблокированы политикой компании. В этой статье мы подробно разберем технические причины возникновения этой ошибки и изучим способы её решения без нарушения целостности кадровых документов.

Почему оклад не отображается в карточке сотрудника?

Для начала проанализируем, как программа формирует данные для отображения в форме сотрудника. Поле «Оклад» в интерфейсе 1С:ЗУП не является простым реквизитом справочника Сотрудники. Это вычисляемое значение, которое подтягивается динамически. Программа анализирует записи в регистрах сведений и пытается определить, какая часть плановых начислений является основной тарифной ставкой.

Основными причинами «пустоты» могут быть:

  1. Несоответствие в регистрах: Данные в регистре Плановый ФОТ Итоги или Текущая тарифная ставка отсутствуют или не связаны с конкретным начислением.
  2. Настройки состава ФОТ: В системных настройках начисление «Оплата по окладу» не отмечено как часть совокупной тарифной ставки.
  3. Технический сбой: При проведении документа приема не сработал механизм записи вспомогательных данных в регистры сведений из-за программных ошибок или некорректных ручных правок.

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

Метод 1: Проверка настроек совокупной тарифной ставки

Прежде чем приступать к низкоуровневой правке регистров, нам необходимо убедиться, что сама программа «понимает», что считать окладом. Если в настройках состава ФОТ не выбраны нужные показатели, поле в карточке будет пустым даже при наличии данных в документах.

Разберем алгоритм проверки:

  1. Перейдем в раздел Настройка — Расчет зарплаты.
  2. Найдем гиперссылку Настройка состава совокупной тарифной ставки.
  3. В открывшемся окне проверим список Выбранные показатели. Там обязательно должен находиться показатель Оклад (или тот показатель, который используется в вашем основном начислении).
  4. Если показатель находится в левой части (доступные показатели), перенесем его вправо и нажмем ОК.

Важно: После изменения этой настройки данные в карточках сотрудников не обновятся мгновенно. Потребуется выполнить пересчет ФОТ, о котором мы поговорим ниже.

Метод 2: Использование сервиса «Пересчет планового ФОТ»

В 1С:ЗУП предусмотрен штатный механизм актуализации данных в регистрах без перепроведения документов. Это идеальный вариант, если «религия не позволяет» трогать старые документы приема.

Выполним следующие действия:

  1. Зайдем в раздел Зарплата (или Администрирование в зависимости от прав доступа) — Сервис — Пересчет планового ФОТ.
  2. В открывшейся форме можно выбрать конкретных сотрудников, у которых наблюдается проблема.
  3. Нажмем кнопку Выполнить пересчет.

Этот процесс принудительно обновляет записи в регистре Плановый ФОТ итоги. Программа заново считывает данные из действующих документов Прием на работу, Кадровый перевод и Изменение оплаты труда и перезаписывает «витринные» значения, которые мы видим в карточке.

Метод 3: Анализ и корректировка регистра «Плановый ФОТ Итоги»

Если штатный пересчет не помог, проанализируем ситуацию на уровне базы данных. Значение оклада в форме берется напрямую из регистра сведений ПлановыйФОТИтоги. Если в этом регистре ФОТ заполнен, а реквизит ТарифнаяСтавка пуст, мы увидим проблему в интерфейсе.

Рассмотрим структуру этого регистра. Он содержит:

Попытка ручной правки через «Все функции» (или «Функции для технического специалиста») может не принести долгосрочного результата, так как при любом кадровом событии система заново перезапишет данные. Однако для разового исправления «зависших» восьми душ это допустимо. Нужно убедиться, что в записи регистра заполнены все измерения, включая Головная организация, иначе форма сотрудника не сможет сопоставить данные.

Метод 4: Программное решение через внешнюю обработку

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

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


Процедура ИсправитьОкладСотрудника(ВыбСотрудник, НужныйОклад) Экспорт
    
    // Создаем набор записей для регистра текущих ставок
    Набор = РегистрыСведений.ТекущиеТарифныеСтавкиСотрудников.СоздатьНаборЗаписей();
    Набор.Отбор.Сотрудник.Установить(ВыбСотрудник);
    Набор.Прочитать();
    
    Если Набор.Количество() > 0 Тогда
        Для Каждого Запись Из Набор Цикл
            Запись.ТекущаяТарифнаяСтавка = НужныйОклад;
            // Также важно обновить ФОТ, если он отличается
            Запись.ТекущийФОТ = НужныйОклад; 
        КонецЦикла;
        Набор.Записать();
        Сообщить("Данные по сотруднику " + ВыбСотрудник + " успешно обновлены.");
    КонецЕсли;

КонецПроцедуры

Однако помните, что простое изменение ТекущиеТарифныеСтавкиСотрудников — это полумера. Данные в карточку могут подтягиваться и из регистра ПлановыйФОТИтоги. Поэтому комплексное решение должно затрагивать оба регистра.

Метод 5: Использование документа «Изменение оплаты труда»

Если вам запрещено менять документ приема, но разрешено создавать новые документы текущей датой, воспользуемся документом Изменение оплаты труда. Это «облегченная» версия кадрового перевода, которая влияет только на финансовые показатели.

Разберем по шагам этот «лайфхак»:

  1. Создаем документ Изменение оплаты труда.
  2. Выбираем сотрудника, у которого пустой оклад.
  3. Программа подтянет текущие данные. Даже если визуально оклад верный, нажмем на кнопку Пересчитать ФОТ (обычно выглядит как значок с карандашом или две круговые стрелки рядом с полем ФОТ).
  4. Проводим документ.

Часто этого действия достаточно, чтобы механизмы платформы «проснулись» и корректно заполнили все вспомогательные регистры сведений. Если же оклад в документе все равно не отображается, попробуйте изменить его на 1 копейку, провести, а затем вернуть прежнее значение и провести снова. Это инициирует полную перезапись движений по регистрам ФОТ.

Резюме и рекомендации

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

Подведем итоги наших действий:

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

← На главную