Делаем день выходным в 1С: календарь, графики и код
Содержание
Чтобы добавить выходной день, откройте производственный календарь
, выделите нужную дату и смените её вид на «Выходной». Путь в ЗУП 3.1 — Настройка → Производственные календари, в Бухгалтерии 3.0 — Зарплата и кадры → Справочники и настройки → Производственные календари. После правки обязательно перезаполните графики работы, иначе новый выходной не попадёт в табель и в начисления.
Выходной день в 1С добавляют в трёх ситуациях: правительство перенесло выходной и федеральный календарь поменялся; в регионе есть свой нерабочий праздник; либо выходной нужен одному сотруднику, а не всей компании. Для первых двух случаев правят производственный календарь, для третьего — график работы или кадровый документ. Ниже — каждый способ с точными путями, плюс программная правка для разработчика.
Что меняет вид дня в календаре
Производственный календарь — это основа, из которой строятся графики работы, норма времени за месяц и оплата. У каждой даты есть вид дня:
- 🟢 Рабочий — обычный день, входит в норму времени.
- ⚪ Выходной — суббота, воскресенье или перенесённый выходной.
- 🔴 Нерабочий праздничный — дни из ст. 112 ТК РФ; работа в них оплачивается не менее чем вдвое (ст. 153 ТК РФ).
- 🟡 Предпраздничный — рабочий день, сокращённый на час.
Когда вы меняете вид дня на «Выходной», день перестаёт входить в норму рабочего времени. Это влияет на оклад за неполный месяц, на суммированный учёт, на оплату сверхурочных и работы в выходной. Поэтому важно не просто поправить календарь, а прогнать изменение дальше — до графиков и до документов начисления.
Отдельно стоит помнить про логику переноса. Если правительство переносит выходной с праздника на будний день, в календаре меняются сразу две даты: будний день становится нерабочим, а суббота — рабочей. Норма времени за год при этом не плывёт. Если же вы просто добавляете выходной (корпоративный день отдыха), норма за месяц уменьшится — и это нормально, но проверьте, не сломает ли это расчёт у окладников и на суммированном учёте.
Производственных календарей может быть несколько. Один — федеральный, остальные — под регионы или под подразделения со своим режимом. Правьте именно тот, на который ссылаются нужные графики работы.
Правим производственный календарь вручную
Ручная правка подходит, когда нужно отметить один-два дня: региональный праздник, корпоративный выходной, точечный перенос.
- Откройте список календарей: ЗУП 3.1 —
Настройка → Производственные календари; Бухгалтерия 3.0 —Зарплата и кадры → Справочники и настройки → Производственные календари(в части релизов пункт лежит в группе «Настройки»). - Выберите нужный календарь и нужный год — год переключается в шапке формы.
- Выделите дату в сетке месяцев. Можно выделить сразу несколько дней с
Ctrl. - В командной панели над календарём задайте выделенным дням вид «Выходной».
- Запишите изменения.
Если вы делаете «рабочую субботу» (перенос), операций две: субботу помечаете рабочим днём, а будний день, на который перенесён выходной, — выходным. Норма времени за месяц при корректном переносе не меняется.
После правки календаря обязательно перезаполните графики работы — без этого новый выходной не попадёт ни в табель, ни в расчёт зарплаты.
Правка «задним числом» не пересчитывает уже проведённые начисления. Если месяц закрыт, после смены вида дня перепроведите и пересчитайте документ начисления за этот период вручную.
Обновление календаря из интернет-поддержки
Когда дни переносит правительство, не нужно расставлять их руками — 1С подтягивает официальный календарь автоматически.
Для этого должна быть подключена интернет-поддержка: Администрирование → Интернет-поддержка и сервисы, вход под логином 1С. После подключения в форме производственного календаря появляется команда обновления (заполнения по умолчанию) — она загружает актуальные выходные и праздники на выбранный год с сервера 1С.
Порядок такой:
- Подключите интернет-поддержку в разделе
Администрирование. - Откройте производственный календарь на нужный год.
- Запустите обновление календаря из командной панели.
- Сверьте перенесённые дни с официальным производственным календарём на год.
- Перезаполните графики работы.
Обновление календаря можно поставить на автоматику. В типовых конфигурациях есть регламентное задание, которое периодически обновляет производственный календарь из сервиса. Включается оно в настройках регламентных и фоновых заданий в разделе Администрирование.
Если вы правили календарь руками, помните: заполнение «по умолчанию» перезаписывает дни официальными значениями и может затереть ваш региональный выходной. В этом случае держите региональные дни в отдельном календаре, а федеральный обновляйте автоматически.
Когда интернет-поддержка не подключена (например, база работает без доступа в сеть), команды обновления в календаре не будет. Тогда остаётся ручной способ: сверьтесь с официальным производственным календарём на год и расставьте перенесённые дни самостоятельно по шагам из раздела выше.
Перезаполнение графиков работы сотрудников
График работы — это уже расчётная сущность: именно из него берутся отработанные и нормо-часы. График строится на основе производственного календаря, но не пересобирается сам по себе. После любой правки календаря графики нужно перезаполнить.
- Откройте список графиков: ЗУП 3.1 —
Настройка → Графики работы сотрудников; Бухгалтерия 3.0 —Зарплата и кадры → Справочники и настройки → Графики работы. - Откройте график, которого коснулось изменение.
- Нажмите заполнение графика — он пересоберётся по текущему календарю.
- Проверьте, что спорная дата стала нерабочей, и запишите график.
- Повторите для всех графиков, которые ссылаются на изменённый календарь.
Если графиков много и все они на одном календаре, перезаполнять нужно каждый — общего «пересчитать всё» для графиков в типовых нет. Поэтому на практике удобнее держать минимум графиков и один-два календаря.
Пока график не перезаполнен, сотрудник на нём будет считаться работавшим в «новый» выходной. В табеле выйдет лишняя норма, а в расчёте — лишний отработанный день.
Программное изменение календаря для разработчика
Если выходные нужно проставлять массово (например, при переносе данных или для своей обработки), данные производственного календаря можно менять из кода. Хранятся они в регистре сведений с данными производственного календаря.
Общая логика:
- Прочитать набор записей регистра по отбору: календарь и год.
- Найти или добавить запись на нужную дату.
- Установить вид дня «Выходной» (значение берётся из перечисления видов дней календаря).
- Записать набор.
- Отдельно инициировать перезаполнение графиков — прямая запись в регистр графики не пересобирает.
Точные имена регистра, измерений и перечисления уточните в конфигураторе своей базы — в разных релизах они могут отличаться. Каркас набора записей выглядит так:
НаборЗаписей = РегистрыСведений.ДанныеПроизводственногоКалендаря.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Календарь.Установить(Календарь);
НаборЗаписей.Отбор.Год.Установить(2027);
НаборЗаписей.Прочитать();
// найти запись на нужную дату в НаборЗаписей и выставить ей вид дня «Выходной»,
// при отсутствии — добавить новую строку
НаборЗаписей.Записать();
Прямая запись в регистр обходит обычный пересчёт. После программной правки обязательно перезаполните графики — руками или вызовом соответствующего метода конфигурации. Не меняйте календарь в коде на работающей базе, когда идёт расчёт зарплаты.
Если не уверены в именах объектов — не придумывайте их, а посмотрите структуру регистра и состав реквизитов прямо в конфигураторе, в ветке «Регистры сведений».
Чем отличается правка в Бухгалтерии, ЗУП и УТ
Механизм один — производственный календарь, — но путь к нему зависит от конфигурации. В Бухгалтерии и ЗУП календарь обслуживает зарплату и кадры; в Управлении торговлей зарплаты нет, и календарь там используется для расчёта сроков (отгрузки, заказы, планирование), а не для начислений.
| Конфигурация | Путь к производственным календарям |
|---|---|
| ЗУП 3.1 | Настройка → Производственные календари |
| Бухгалтерия 3.0 | Зарплата и кадры → Справочники и настройки → Производственные календари |
| Управление торговлей 11 | НСИ и администрирование — в блоке настроек календарей (для расчёта дат, не для зарплаты) |
В УТ 11 не рассчитываются графики работы сотрудников в кадровом смысле — не ищите там табель и норму времени. Если в компании на УТ ведут ещё и зарплату, это делает отдельная конфигурация (ЗУП или Бухгалтерия), и календарь правят в ней.
Как проверить, что выходной встал правильно
После правки стоит убедиться, что изменение дошло до расчёта, а не осталось в одном календаре.
- Откройте производственный календарь на нужный год и убедитесь, что дата отмечена как выходная.
- Откройте график работы сотрудника за этот месяц — на спорной дате не должно быть запланированных часов.
- Сверьте норму времени за месяц в графике: при простом добавлении выходного она уменьшится, при корректном переносе — останется прежней.
- Для закрытого месяца пересчитайте документ начисления и посмотрите, изменилась ли оплата и отработанное время.
Если календарь поправлен, а в графике дата всё ещё рабочая — график не перезаполнен. Если поправлен и график, а начисление не изменилось — документ начисления нужно пересчитать заново.
Частые ошибки
Правка календаря ломается не на самом дне, а на том, что идёт после него.
- ❌ Поправили не тот год. Год переключается в шапке формы; легко оставить прошлый. Выходной уходит «в никуда».
- ❌ Забыли перезаполнить графики. Самая частая причина, почему выходной не виден в табеле. Календарь — источник, график — потребитель; потребителя надо обновить.
- ❌ Правят федеральный календарь под региональный праздник. Следующее автообновление из интернет-поддержки затрёт правку. Региональные дни держите в отдельном календаре.
- ❌ Меняют вид дня в закрытом периоде и ждут, что зарплата пересчитается сама. Проведённые документы не пересчитываются автоматически — их нужно перепровести вручную.
- ❌ Путают выходной и нерабочий праздничный. Для оплаты работы в этот день это разные вещи: праздничный по ст. 153 ТК РФ оплачивается не менее чем вдвое.
Частые вопросы
Чем «Выходной» отличается от «Нерабочего праздничного дня» в календаре?
Пересчитается ли уже начисленная зарплата, если сделать день выходным задним числом?
Можно ли держать несколько производственных календарей для разных регионов?
Влияет ли правка календаря на отпускные и больничный?
Почему в календаре нет команды автоматического обновления?
Администрирование → Интернет-поддержка и сервисы. Если доступа в сеть у базы нет, обновить календарь из сервиса не получится — перенесённые дни придётся расставить вручную.Источники
- Трудовой кодекс РФ, ст. 111 «Выходные дни»
- Трудовой кодекс РФ, ст. 112 «Нерабочие праздничные дни»
- Трудовой кодекс РФ, ст. 153 «Оплата труда в выходные и нерабочие праздничные дни»