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

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

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

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

Разберем причину: изменение логики работы показателей

Первым делом проанализируем ситуацию, которая сложилась у большинства пользователей после обновления конфигурации. Раньше система позволяла вводить значения показателей вручную в документах начисления, даже если в настройках самого показателя стоял признак Накапливается по нескольким документам. Однако в последних версиях платформы и конфигурации ЗУП Проф/Корп разработчики ужесточили контроль за типами данных.

Основная проблема заключается в несоответствии настройки показателя способу его ввода в документе. Если для показателя (например, Тариф) установлено, что он Накапливается, программа ожидает, что данные в регистры попадут через документ Данные для расчета зарплаты. Когда вы пытаетесь ввести это значение напрямую в Разовом начислении, система воспринимает это как методическую ошибку и игнорирует введенные данные при записи, так как механизм накопления работает через другие регистры накопления.

Решение №1: Изменение настройки показателя

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

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

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

Решение №2: Проверка настройки Вида начисления

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

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

Проанализируем формулу начисления

Рассмотрим пример формулы, который часто вызывает затруднения:

Тариф * КалендарныеДни * 8

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

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

Влияние настройки «Несколько тарифных ставок»

Посмотрим на ситуацию под другим углом. Если в настройках состава начислений и удержаний (раздел Настройка — Расчет зарплаты — Настройка состава начислений и удержаний) включена опция Использовать несколько тарифных ставок для одного сотрудника, поведение поля Тариф может измениться.

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

Технические нюансы: фоновые задания и ошибки релиза

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

Если в этот момент происходит блокировка таблиц или прерывание связи с сервером, визуально данные остаются в поле, но в физическую таблицу базы данных они не попадают. Рекомендуем в таких случаях:

  1. Обновить конфигурацию до последнего актуального патча или релиза (проблема была исправлена в последующих сборках).
  2. Если обновление невозможно, вводить данные небольшими порциями (по 5-10 сотрудников) и сразу нажимать кнопку Записать (дискета), чтобы зафиксировать изменения в базе.

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

← На главную