При автоматизации расчета заработной платы в программе 1С:Зарплата и Управление Персоналом 3.1 (ЗУП) внедренцы и бухгалтеры часто сталкиваются со специфическими системами оплаты труда, принятыми на конкретных предприятиях. Одна из таких систем — сдельно-премиальная (или сдельно-прогрессивная) оплата труда, завязанная на отработанное время и динамический коэффициент выполнения нормы. При этом норма и фактическая выработка могут рассчитываться ежедневно во внешней базе данных, а в 1С:ЗУП необходимо получить корректный итоговый расчет.
В этой статье мы подробно разберем, как методологически правильно организовать такой расчет в 1С:ЗУП 3.1, почему стандартный документ «Сдельные работы» может не подойти для вашей задачи, и как настроить гибкую схему расчета с использованием произвольных показателей и формул.
---
Рассмотрим ситуацию, описанную пользователем. На предприятии действует следующая схема оплаты:
Сумма начисления = Отработанные часы × Часовая ставка × Коэффициент нормы
При этом:
На первый взгляд кажется, что это классическая сдельная оплата. Однако в терминологии программы 1С:ЗУП 3.1 сдельный заработок всегда жестко привязан к объёму выполненных работ (количеству изготовленных деталей, оказанных услуг и т. д.), выраженных в натуральных единицах, и их расценкам. В данном же случае первичным является отработанное время (часы) и коэффициент эффективности (КТУ или процент выполнения нормы). Это означает, что перед нами — повременно-премиальная система оплаты с применением индивидуального KPI.
Если мы попытаемся внедрить это через стандартный механизм сдельных нарядов, то столкнемся с методологическим тупиком: программа будет требовать указания конкретных видов работ и расценок из справочника, в то время как у нас есть только часы и динамический коэффициент. Проанализируем, как решить эту задачу красиво и без программирования.
---
Для начала рассмотрим, как классическая сдельно-прогрессивная оплата реализуется в типовом функционале согласно методическим руководствам (в частности, по рекомендациям известных экспертов, таких как Е. А. Грянина). Этот способ подойдет вам, если вы решите вести полноценный учет выработки непосредственно в 1С:ЗУП.
При сдельно-прогрессивной оплате выработка сотрудника в пределах нормы оплачивается по базовым тарифам, а сверх нормы — по повышенным расценкам. Для реализации такой схемы в программе настраивается два начисления:
Сдельные работы.Проанализируем пример настройки формулы для доплаты за перевыполнение нормы. Допустим, при перевыполнении нормы до 120% оплата сверх нормы производится по полуторному тарифу, а свыше 120% — по двойному. Формула такого начисления будет выглядеть следующим образом:
? (ПроцентВыполненияНормы > 120, СдельныйЗаработок * 0.4, ? (ПроцентВыполненияНормы > 100, СдельныйЗаработок * 0.2, 0))
При этом сам показатель ПроцентВыполненияНормы может рассчитываться как отношение фактически выполненного объема работ к плановой норме за месяц. Отработанное время при этом фиксируется в табеле учета рабочего времени (документ Табель) для контроля соблюдения нормы времени по производственному календарю.
Критический минус данного подхода для нашей задачи: он ориентирован на расчет по итогам месяца и требует детального ведения справочника видов работ и ввода ежедневных нарядов в 1С. Если же нормы и проценты их выполнения меняются каждый день и рассчитываются во внешней системе, то переносить весь этот массив первичных данных в 1С:ЗУП нецелесообразно.
---
Выясним, как реализовать требования автора наиболее эффективным способом. Поскольку у нас есть внешняя база данных, где начальник смены ежедневно фиксирует процент выполнения нормы, мы можем переложить математический расчет «эффективного времени» на эту внешнюю систему. А в 1С:ЗУП мы будем передавать уже готовый, предобработанный показатель.
Сформулируем логику: вместо передачи отдельно отработанных часов и отдельно коэффициента, внешняя база за каждый день считает показатель Эффективное время в часах:
Эффективное время = Фактически отработанные часы × Коэффициент выполнения нормы
Пример:
Разберем по шагам, как настроить этот механизм в 1С:ЗУП 3.1.
Перейдем в раздел Настройка — Показатели расчета зарплаты и нажмем кнопку Создать. Заполним реквизиты нового показателя:
ЭффективноеВремяВЧасахЧтобы программа знала, каким документом вводить этот показатель, нам нужно настроить шаблон. Перейдем в раздел Настройка — Шаблоны ввода исходных данных и создадим новый шаблон:
ЭффективноеВремяВЧасах.Теперь создадим само начисление, которое будет производить расчет. Перейдем в раздел Настройка — Начисления и нажмем Создать:
ЭффективноеВремяВЧасах.ТарифнаяСтавкаЧасовая * ЭффективноеВремяВЧасах
Примечание: Если у ваших сотрудников установлена не часовая ставка, а месячный оклад, то вместо ТарифнаяСтавкаЧасовая можно использовать предопределенный показатель СтоимостьЧаса.
---
Поскольку норма и коэффициенты рассчитываются во внешней базе данных, ручной ввод этих показателей в 1С:ЗУП силами расчетчика будет трудоемким процессом. Необходимо настроить автоматический обмен данными.
Для реализации обмена программист может использовать стандартные механизмы платформы 1С:Предприятие 8.3:
Данные для расчета зарплаты.Рассмотрим пример кода на встроенном языке 1С, который может использоваться в обработке загрузки данных для автоматического создания документа ДанныеДляРасчетаЗарплаты:
НовыйДокумент = Документы.ДанныеДляРасчетаЗарплаты.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.ПериодРегистрации = НачалоМесяца(ТекущаяДата());
НовыйДокумент.НастройкаЗаполнения = Справочники.ШаблоныВводаИсходныхДанных.НайтиПоНаименованию("Ввод эффективного времени за день");
// Заполнение табличной части сотрудниками и показателями
НоваяСтрока = НовыйДокумент.Показатели.Добавить();
НоваяСтрока.Сотрудник = Справочники.Сотрудники.НайтиПоКоду("00001");
НоваяСтрока.Показатель = ПланыВидовХарактеристик.ПоказателиРасчетаЗарплаты.НайтиПоНаименованию("Эффективное время в часах");
НоваяСтрока.Значение = 12.5; // Пример рассчитанных эффективных часов за день
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
---
Важный методологический вопрос, который часто задают бухгалтеры: «Если мы умножаем часы на коэффициент, то в табеле у нас тоже изменятся часы? Как отчитываться перед контролирующими органами?».
Согласно законодательству РФ, в государственном Табеле учета рабочего времени (форма Т-12 или Т-13) должны отражаться фактически отработанные сотрудником часы по факту его нахождения на рабочем месте (например, стандартные 8 часов в день), независимо от того, насколько он перевыполнил или недовыполнил норму.
Описанная нами схема с «Эффективными часами» идеально решает этот вопрос:
Табель (или по графику работы сотрудника) в 1С:ЗУП регистрируется реальное время явки — например, 8 часов. Это время идет в официальную статистику и отчетность.Данные для расчета зарплаты регистрируется показатель ЭффективноеВремяВЧасах (например, 16 часов за счет коэффициента 2.0). Данный показатель используется исключительно для расчета денежного начисления в документе Начисление зарплаты и взносов и никак не портит официальную статистику отработанного времени сотрудника.Таким образом, мы получаем абсолютно прозрачный, методологически верный и автоматизированный расчет сложной сдельно-премиальной оплаты труда, который полностью удовлетворяет требованиям как управленческого учета, так и регламентируемой отчетности.