Почему после перехода с ЗУП 2.5 на ЗУП 2.5 КОРП появляются лишние начисления по управленческому учету?

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

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

Анализируем причину появления управленческих начислений

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

Проанализируем программный код обработки проведения, который отвечает за сбор данных для управленческого учета. Если мы посмотрим на запрос в базовой версии или версии ПРОФ, то увидим следующее условие:


ГДЕ
    Результаты.ПериодРегистрации = &парамНачало
    И УчетЗаработкаРаботников.УчетНачисленийПоОрганизации
    И Результаты.Результат <> 0

В данном случае, если в регистре сведений УчетЗаработкаРаботников для конкретного физического лица отсутствует запись (то есть соединение возвращает NULL), условие УчетЗаработкаРаботников.УчетНачисленийПоОрганизации просто не выполняется. Система игнорирует такие записи, и управленческие движения не формируются автоматически.

Теперь рассмотрим, как изменился этот же участок кода в версии ЗУП КОРП. Разработчики изменили логику на «обратную», добавив проверку на пустое значение:


ГДЕ
    Результаты.ПериодРегистрации = &парамНачало
    И НЕ ЕСТЬNULL(УчетЗаработкаРаботников.УчетНачисленийПоОрганизации, ЛОЖЬ)
    И Результаты.Результат <> 0

Выясним, что это означает на практике. Функция ЕСТЬNULL проверяет, есть ли запись в регистре. Если записи для сотрудника нет (значение NULL), функция подставляет ЛОЖЬ. Далее срабатывает оператор НЕ, превращая ЛОЖЬ в ИСТИНА. В итоге запрос выбирает данные по всем сотрудникам, у которых не установлена настройка учета по организации. Система считает, что раз вы перешли на КОРП, то обязаны вести управленческий учет, и начинает автоматически «подтягивать» данные из бухгалтерского учета в управленческий, создавая технические записи.

Что такое «Начислено по бухгалтерии» и откуда оно берется?

В плане видов расчета УправленческиеНачисления версии КОРП существует предопределенный элемент — НачисленоПоБухгалтерии. Его назначение — обеспечить идентичность сумм в двух видах учета. Рассмотрим механизм его работы:

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

Именно поэтому после перехода пользователи видят новые строки в расчетных листах или отчетах. Для системы КОРП это штатное поведение, сигнализирующее о готовности к параллельному расчету зарплаты по двум разным алгоритмам (например, если управленческий оклад выше официального).

Инструкция по устранению лишних движений

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

Способ 1: Индивидуальная настройка через карточку сотрудника

Этот метод подойдет, если проблема возникла по нескольким новым сотрудникам. Пройдем по шагам:

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

После этого при перепроведении документа Начисление зарплаты сотрудникам организаций лишние движения по управленческому учету исчезнут.

Способ 2: Массовое заполнение регистра (рекомендуется после перехода)

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

Рассмотрим алгоритм действий:

  1. Откроем обработку «Групповая обработка справочников и документов» (или «Групповое изменение реквизитов», в зависимости от доступного инструментария в вашей базе).
  2. Нам необходимо создать записи в регистре сведений Учет заработка работников.
  3. Для каждого сотрудника, работающего в организации, должна появиться запись с установленным булевым значением ИСТИНА в поле УчетНачисленийПоОрганизации.
  4. Если вы используете прямое редактирование регистра (через «Операции» — «Регистры сведений»), убедитесь, что период записи соответствует началу периода, с которого вы начали работать в версии КОРП.

Проанализируем результат: как только по всем сотрудникам в регистре появятся записи с включенным флагом, условие в запросе НЕ ЕСТЬNULL(..., ЛОЖЬ) для них превратится в НЕ ИСТИНА, что даст ЛОЖЬ. В результате данные перестанут попадать в выборку для формирования технических управленческих движений.

Резюме для технического специалиста

Подводя итог, можно сказать, что «непонятное поведение» программы — это не баг, а заложенная разработчиками особенность версии КОРП. Основная разница заключается в обработке NULL-значений в регистре УчетЗаработкаРаботников.

Чтобы избежать путаницы у пользователей и лишних вопросов от кадровиков:

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

← На главную