В период введения нерабочих дней с сохранением заработной платы в 2020 году многие пользователи и администраторы конфигурации 1С:Управление производственным предприятием (УПП), редакция 1.3 столкнулись с рядом технических сложностей. Основные проблемы касались обновления производственного календаря, некорректного расчета нормы времени и возникновения системных ошибок при попытке редактирования графиков работы сотрудников.
В данной статье мы подробно разберем, как правильно обновить календарь, почему возникает популярная ошибка Индекс находится за границами массива и как настроить программу так, чтобы в табеле (форма Т-13) корректно отображались оплачиваемые нерабочие дни.
При переходе на релизы 1.3.137.1 и 1.3.137.2 многие программисты заметили, что справочник ГрафикиРаботы перестает открываться или выдает ошибку в модуле формы. Проанализируем ситуацию: ошибка ВидДня = Данные[НомерДня - 1].ВидДня; возникает из-за того, что в регистре сведений РегламентированныйПроизводственныйКалендарь отсутствуют записи за полный 2020 год или они записаны некорректно.
Выясним причину: при автоматическом обновлении конфигурация пытается прописать в регистр только записи, касающиеся карантинных дней (пять дней в конце марта — начале апреля). Если до этого момента календарь на 2020 год не был заполнен «по умолчанию» пользователем, в регистре образуется «дыра»: вместо 366 записей там оказывается всего 5 записей. Когда программный код пытается получить данные за конкретный день года, массив данных оказывается меньше ожидаемого размера, что и приводит к критической ошибке.
Если вы столкнулись с невозможностью открыть график работы, выполним следующие шаги по восстановлению данных:
НаборЗаписей = РегистрыСведений.РегламентированныйПроизводственныйКалендарь.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Год.Установить(Дата(2020, 1, 1)); // В УПП отбор обычно идет по началу года
НаборЗаписей.Записать();
Операции — Регистры сведений — Регламентированный производственный календарь (или через меню настройки зарплаты).ОсобыеНерабочиеДни.Многие бухгалтеры требуют, чтобы в табеле учета рабочего времени вместо стандартной «Я» (явка) стоял код «ОН» (оплачиваемый нерабочий день) или «НД». В типовой УПП 1.3, в отличие от ЗУП 3.1, этот механизм не всегда срабатывает автоматически. Рассмотрим, как реализовать это через настройки видов расчета:
Создание нового вида начисления:
ОсновныеНачисленияОрганизаций.По среднему заработку или настроим формулу, аналогичную окладу, если политика предприятия подразумевает полную выплату оклада за эти дни.Если сотрудники продолжают работать удаленно, им следует оставить код «Я». Для этого придется создать два разных графика работы: один — для «карантинных» сотрудников (с нулевыми часами в нерабочие дни и заполненным нормирующим графиком), другой — для работающих удаленно.
Рассмотрим альтернативный, более простой способ без изменения конфигурации. Мы можем использовать штатный механизм документов Неявки и возвраты в организации:
Резюме по расчету среднего заработка: проанализируем рекомендации Минтруда. Время и суммы, выплаченные за нерабочие дни, не должны учитываться при расчете среднего заработка для будущих отпусков и больничных. Поэтому при создании нового вида расчета «ОН» убедитесь, что он не включен в базу для расчета среднего заработка (закладка «Расчет среднего заработка» в настройках вида расчета).
Таким образом, комбинируя техническое исправление регистра сведений и гибкую настройку видов начислений, мы обеспечим корректную работу 1С:УПП 1.3 в условиях меняющегося законодательства.