Каждый расчетчик заработной платы хотя бы раз сталкивался с ситуацией, когда казалось бы полностью рассчитанный и проверенный документ «Отпуск» при повторном открытии или перерасчете перед закрытием месяца внезапно меняет итоговую сумму. Колебания могут казаться незначительными — от 50 до 100 рублей по каждому сотруднику, но в масштабах организации это приводит к расхождениям в учете и вызывает массу вопросов со стороны проверяющих органов и самих работников. При детальном анализе расчета среднего заработка выясняется, что программа без видимых причин изменяет суммы премий за прошлые периоды, которые были начислены сотрудникам ранее.
В этой статье мы подробно разберем внутренние механизмы программы 1С:Зарплата и управление персоналом (редакция 3.1), выясним, почему «плывут» суммы премий, как на это влияют производственный календарь и проведение документов текущего месяца, а также рассмотрим четыре практических способа исправления ситуации.
Для начала проанализируем, почему программа берет в расчет не полную сумму начисленной премии (например, 36 000 рублей), а усеченную — например, 30 836,07 рублей или 30 710,20 рублей. Первоисточником такого поведения является законодательство РФ, а именно Постановление Правительства РФ № 922 «Об особенностях порядка исчисления средней заработной платы».
Даже если в настройках начисления на вкладке «Средний заработок» для премии указано, что это «Премия, полностью учитываемая», алгоритмы 1С:ЗУП будут принудительно пересчитывать ее пропорционально отработанному времени в расчетном периоде, если выполняется следующее условие: базовый период премии (период, за который она начислена) хотя бы частично выходит за рамки расчетного периода для отпуска.
Рассмотрим конкретный пример:
Но почему сумма одной и той же премии меняется непосредственно при перерасчете документа «Отпуск» в течение одного и того же месяца? Здесь работают два ключевых фактора:
Во-первых, это влияние производственного календаря. Коэффициент пропорциональности рассчитывается по формуле:
Доля времени = Отработано дней (часов) по пятидневке / Норма дней (часов) по пятидневке за расчетный период
Если в процессе работы в программу устанавливались обновления конфигурации или патчи, вносились изменения в регламентированный производственный календарь (например, из-за переноса праздничных дней, введения региональных нерабочих дней или корректировки норм рабочего времени), то показатель нормы времени в знаменателе формулы меняется. Даже изменение нормы на 1 день или несколько часов во всем 12-месячном периоде сдвигает итоговый коэффициент. При перерасчете документа «Отпуск» программа обращается к обновленному календарю, коэффициент меняется, и сумма премии колеблется на незначительную величину.
Во-вторых, проведение документов начисления за текущий месяц. Первичный расчет отпуска часто производится в середине месяца, когда окончательный расчет зарплаты за текущий месяц еще не выполнен. На этот момент в программе отсутствуют точные данные об отработанном времени за последний месяц расчетного периода. Перед расчетом общей зарплаты расчетчики проводят документ «Начисление зарплаты и взносов» и табели. При повторном расчете или перепроведении документа «Отпуск» программа видит зафиксированное фактическое время за этот месяц в регистре накопления Данные о начислениях для расчета среднего заработка (общий). Изменение отработанного времени (числителя в формуле) мгновенно приводит к пересчету доли премии.
Если у вас возникли сомнения, проводил ли кто-то документы начисления премий за прошлые периоды или менял ли настройки, необходимо проанализировать движения по регистрам. Для этого технические специалисты и продвинутые аналитики могут воспользоваться встроенными инструментами платформы.
Для просмотра записей регистра воспользуемся запросом. Рассмотрим пример кода, который позволяет извлечь данные по начислениям конкретного сотрудника для расчета среднего заработка:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СреднийЗаработок.Сотрудник КАК Сотрудник,
| СреднийЗаработок.ПериодРегистрации КАК ПериодРегистрации,
| СреднийЗаработок.БазовыйПериодНачало КАК БазовыйПериодНачало,
| СреднийЗаработок.БазовыйПериодКонец КАК БазовыйПериодКонец,
| СреднийЗаработок.Сумма КАК Сумма,
| СреднийЗаработок.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий КАК СреднийЗаработок
|ГДЕ
| СреднийЗаработок.Сотрудник = &Сотрудник
|УПОРЯДОЧИТЬ ПО
| ПериодРегистрации РАСХ";
Запрос.УстановитьПараметр("Сотрудник", ВыбранныйСотрудник);
РезультатЗапроса = Запрос.Выполнить();
Анализируя колонки БазовыйПериодНачало и БазовыйПериодКонец, мы сможем точно определить, выходит ли период начисления премии за рамки расчетного периода отпуска.
Если расчетчики требуют вернуть полную сумму премии (36 000 рублей) в расчет среднего заработка или зафиксировать ранее рассчитанные суммы, мы можем применить один из следующих вариантов решения задачи.
Это самый быстрый и безопасный способ, который не затрагивает прошлые закрытые периоды и не требует монопольного доступа к базе данных.
Если период, в котором начислялась исходная премия, еще открыт для редактирования, целесообразно исправить первоисточник проблемы.
Данные о начислениях для расчета среднего заработка (общий) обновятся автоматически.Если прошлые периоды уже закрыты, заблокированы датой запрета изменения данных, и перепроводить старые документы категорически нельзя, мы можем скорректировать записи регистра вручную.
Данные о начислениях для расчета среднего заработка (общий), установите напротив него флаг и нажмите «ОК».Бывают ситуации, когда изменения в производственный календарь или в настройки видов расчета были внесены массово, но данные в регистрах среднего заработка «зависли» и не обновились автоматически. Для этого в программе предусмотрен специальный сервисный механизм.
Проанализировав описанные механизмы, мы видим, что поведение программы 1С:ЗУП 3.1 строго подчинено логике законодательства и текущим настройкам системы. Своевременный контроль дат базовых периодов начисления премий и понимание работы регистров позволят вам оперативно решать подобные расхождения и сдавать отчетность без ошибок.