Как обновить производственный календарь в 1С:УПП 1.3 и исправить ошибки в графиках работы в связи с нерабочими днями

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Промышленность, строительство и АПК
← На главную

В период введения нерабочих дней с сохранением заработной платы в 2020 году многие пользователи и администраторы конфигурации 1С:Управление производственным предприятием (УПП), редакция 1.3 столкнулись с рядом технических сложностей. Основные проблемы касались обновления производственного календаря, некорректного расчета нормы времени и возникновения системных ошибок при попытке редактирования графиков работы сотрудников.

В данной статье мы подробно разберем, как правильно обновить календарь, почему возникает популярная ошибка Индекс находится за границами массива и как настроить программу так, чтобы в табеле (форма Т-13) корректно отображались оплачиваемые нерабочие дни.

Причина возникновения ошибки «Индекс находится за границами массива»

При переходе на релизы 1.3.137.1 и 1.3.137.2 многие программисты заметили, что справочник ГрафикиРаботы перестает открываться или выдает ошибку в модуле формы. Проанализируем ситуацию: ошибка ВидДня = Данные[НомерДня - 1].ВидДня; возникает из-за того, что в регистре сведений РегламентированныйПроизводственныйКалендарь отсутствуют записи за полный 2020 год или они записаны некорректно.

Выясним причину: при автоматическом обновлении конфигурация пытается прописать в регистр только записи, касающиеся карантинных дней (пять дней в конце марта — начале апреля). Если до этого момента календарь на 2020 год не был заполнен «по умолчанию» пользователем, в регистре образуется «дыра»: вместо 366 записей там оказывается всего 5 записей. Когда программный код пытается получить данные за конкретный день года, массив данных оказывается меньше ожидаемого размера, что и приводит к критической ошибке.

Инструкция по исправлению производственного календаря

Если вы столкнулись с невозможностью открыть график работы, выполним следующие шаги по восстановлению данных:

  1. Очистка некорректных записей. Нам необходимо полностью удалить записи регистра за 2020 год, чтобы система позволила перезаполнить их заново. Для этого воспользуемся внешней обработкой или консолью кода:

НаборЗаписей = РегистрыСведений.РегламентированныйПроизводственныйКалендарь.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Год.Установить(Дата(2020, 1, 1)); // В УПП отбор обычно идет по началу года
НаборЗаписей.Записать(); 
  1. Ручное заполнение календаря. После очистки регистра зайдем в интерфейс программы: Операции — Регистры сведений — Регламентированный производственный календарь (или через меню настройки зарплаты).
  2. Нажмем кнопку «Заполнить по умолчанию». Теперь, когда в регистре нет старых «битых» записей, система создаст все 366 записей корректно.
  3. После этого проверьте, что «президентские» нерабочие дни отмечены особым образом. В новых релизах УПП для этого предусмотрен механизм ОсобыеНерабочиеДни.

Настройка учета и отражение в табеле (код ОН)

Многие бухгалтеры требуют, чтобы в табеле учета рабочего времени вместо стандартной «Я» (явка) стоял код «ОН» (оплачиваемый нерабочий день) или «НД». В типовой УПП 1.3, в отличие от ЗУП 3.1, этот механизм не всегда срабатывает автоматически. Рассмотрим, как реализовать это через настройки видов расчета:

Создание нового вида начисления:

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

Если сотрудники продолжают работать удаленно, им следует оставить код «Я». Для этого придется создать два разных графика работы: один — для «карантинных» сотрудников (с нулевыми часами в нерабочие дни и заполненным нормирующим графиком), другой — для работающих удаленно.

Отражение невыходов документом «Неявки и возвраты»

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

Резюме по расчету среднего заработка: проанализируем рекомендации Минтруда. Время и суммы, выплаченные за нерабочие дни, не должны учитываться при расчете среднего заработка для будущих отпусков и больничных. Поэтому при создании нового вида расчета «ОН» убедитесь, что он не включен в базу для расчета среднего заработка (закладка «Расчет среднего заработка» в настройках вида расчета).

Таким образом, комбинируя техническое исправление регистра сведений и гибкую настройку видов начислений, мы обеспечим корректную работу 1С:УПП 1.3 в условиях меняющегося законодательства.

← На главную