Почему в 1С:Бухгалтерии 3.0 не заполняется отработанное время по новому начислению зарплаты

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

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

Разберем архитектурные особенности «1С:Бухгалтерии 8» (редакция 3.0), выясним причину такого поведения программы и рассмотрим правильные варианты решения этой задачи.

В чем причина: архитектурные особенности расчета зарплаты в БП 3.0

В отличие от специализированной конфигурации «1С:Зарплата и управление персоналом», в «1С:Бухгалтерии 3.0» подсистема расчета зарплаты и кадрового учета представлена в упрощенном виде. Автоматический расчет отработанного времени по графику пятидневной рабочей недели жестко привязан к предопределенному элементу плана видов расчета Начисления — «Оплата по окладу».

У каждого начисления в конфигурации существует скрытый реквизит КатегорияНачисления (значение перечисления КатегорииНачисленийИНеоплаченногоВремени):

  1. Для предопределенного системного начисления «Оплата по окладу» реквизит имеет значение Повременная оплата труда. Именно при наличии этого значения алгоритм документа Начисление зарплаты обращается к производственному календарю и автоматически заполняет отработанные дни и часы.
  2. При создании нового начисления вручную или копированием типового элемента реквизиту КатегорияНачисления программно присваивается значение Прочее. Этот реквизит намеренно не выведен на форму начисления, поэтому изменить его стандартными средствами пользовательского интерфейса нельзя.

В результате по всем пользовательским начислениям программа считает сумму фиксированной величиной (как доплату или разовую премию) и не рассчитывает рабочее время.

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

Чаще всего новые начисления (например, «Оплата оклад 20», «Оплата оклад 26», «Оплата оклад 44») создают исключительно ради того, чтобы разнести затраты по зарплате разных сотрудников на разные бухгалтерские счета (20.01, 26, 44.01, 25). В «1С:Бухгалтерии 3.0» дублировать начисления для этой цели не требуется и методически неверно.

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

  1. Уровень документа: непосредственно в строке документа Начисление зарплаты можно вручную указать конкретный Способ отражения для разового изменения счета учета.
  2. Уровень сотрудника: перейдем в раздел Зарплата и кадры → справочник Сотрудники. В карточке нужного сотрудника откроем ссылку Выплата, учет затрат и в поле Учет расходов выберем требуемый способ отражения (с нужным счетом затрат: 20, 26, 44 и соответствующими субконто).
  3. Уровень подразделения: если все сотрудники определенного отдела должны относиться на один счет затрат, перейдем в карточку подразделения (раздел Главное или Зарплата и кадры → Подразделения) и заполним поле Способ отражения зарплаты в бухучете.
  4. Уровень всей организации: общее правило по умолчанию настраивается в разделе Зарплата и кадры → Настройки зарплаты → Порядок учета зарплаты → вкладка Зарплата → поле Способ отражения в бух. учете.

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

Технический способ: программное изменение реквизита «КатегорияНачисления»

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

Вариант 1. Обработка «Групповое изменение реквизитов»

  1. Перейдем в раздел Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов.
  2. В поле «Выбирать элементы» укажем Начисления (План видов расчета).
  3. Обязательно настроим отбор по конкретному начислению, чтобы не перезаписать параметры всех элементов базы.
  4. В дополнительных параметрах (кнопка «Дополнительные параметры») включим флаг Показывать служебные реквизиты.
  5. Найдем реквизит Категория начисления и выберем значение Повременная оплата труда.
  6. Нажмем кнопку Изменить реквизиты.

Вариант 2. Программный код во внешней обработке

Для гарантированной установки значения можно выполнить следующий фрагмент кода:


ОбъектНачисления = СсылкаНаНачисление.ПолучитьОбъект();
ОбъектНачисления.КатегорияНачисления = Перечисления.КатегорииНачисленийИНеоплаченногоВремени.ПовременнаяОплатаТруда;
ОбъектНачисления.Записать();

Внимание: принудительное изменение категории начисления может повлиять на автоматическое заполнение среднего заработка для больничных, отпусков и регламентированных отчетов. Рекомендуется использовать базовое предопределенное начисление «Оплата по окладу».

Дополнительные причины, почему время может не заполняться

Если даже при использовании типового начисления дни и часы не рассчитываются, проверим следующие настройки:

  1. Производственный календарь: перейдем в раздел Справочники → Производственные календари. Календарь на текущий расчетный год должен быть создан, заполнен и записан.
  2. Ограничение численности (более 60 человек): если в информационной базе зарегистрировано более 60 сотрудников, конфигурация автоматически отключает детализированный учет рабочего времени в документе начисления зарплаты.
  3. Настройка внешней программы: проверим в разделе Зарплата и кадры → Настройки зарплаты, чтобы переключатель стоял в положении В этой программе, а не во внешней базе ЗУП.
← На главную