Другое · 10 мин
Как посчитать выходные дни в 1С
Как посчитать выходные дни в 1С: производственный календарь, графики работы, отчёты и запрос на встроенном языке. Пошаговая инструкция с проверкой результата.
Посчитать выходные дни в 1С можно несколькими способами — и выбор зависит от того, что именно нужно: выходные по общему производственному календарю, по графику конкретного сотрудника или по произвольному периоду в собственном отчёте. В типовых конфигурациях (1С:ЗУП, 1С:Бухгалтерия, 1С:ERP) вся информация о выходных хранится в регламентированном производственном календаре и в графиках работы сотрудников, поэтому ручного подсчёта обычно не требуется.
Ключевой момент: программа различает выходные по производственному календарю (суббота, воскресенье, праздничные дни) и выходные по индивидуальному графику — например, при сменном режиме «два через два» выходным может быть любой день недели. Если считать не тем инструментом, результат будет неверным, а ошибка вылезет в табеле, расчёте отпускных или оплате работы в выходной день.
Ниже разобраны основные способы: просмотр производственного календаря, проверка графика работы, использование типовых отчётов, а также программный подсчёт выходных через запрос и функции встроенного языка для тех, кто дорабатывает конфигурацию или пишет внешнюю обработку.
Где в 1С хранятся данные о выходных днях
Источником данных о выходных служит производственный календарь — предопределённый справочник, который заполняется автоматически при обновлении конфигурации или вручную через обработку. Фактические даты хранятся в регистре сведений «Данные производственного календаря», где каждому дню присвоен вид: рабочий, предпраздничный, суббота, воскресенье или праздничный.
Поверх календаря строятся графики работы сотрудников: пятидневка, шестидневка, сменные графики. График ссылается на производственный календарь, но может иметь собственные выходные. Поэтому, прежде чем считать, определите, какой именно источник вам нужен: общероссийский календарь, региональный (в некоторых субъектах есть дополнительные праздники) или график конкретного подразделения.
Как посмотреть выходные в производственном календаре
В 1С:ЗУП и 1С:Бухгалтерии (ред. 3) откройте «Главное меню» → «Все функции» → «Справочники» → «Производственные календари» либо в ЗУП путь «Настройка» → «Производственные календари». Откроется форма календаря, где выходные и праздничные дни подсвечены цветом, а в нижней части или в печатной форме указано суммарное количество календарных, рабочих и выходных дней за год и по кварталам.
Если нужна цифра для документа или письма, используйте кнопку «Печать» — печатная форма календаря содержит итоговую таблицу: количество выходных и праздничных дней по месяцам и за год. Это самый быстрый способ получить готовую сводку без каких-либо вычислений.
- 1Откройте «Настройка» → «Производственные календари» (в ЗУП) или «Все функции» → «Справочники» → «Производственные календари»
- 2Выберите нужный календарь, если их несколько (федеральный, региональный)
- 3Проверьте, что календарь заполнен на нужный год — пустой календарь даст нулевые значения
- 4Нажмите «Печать» и возьмите количество выходных дней из итоговой таблицы
Как посчитать выходные по графику сотрудника
Для сотрудников на пятидневке выходные совпадают с производственным календарём, но для сменных графиков это не так. В 1С:ЗУП откройте «Настройка» → «Графики работы сотрудников», выберите нужный график — программа покажет помесячную сетку с рабочими и выходными днями и итоговые количества за каждый месяц.
Для проверки по конкретному человеку удобнее отчёты. В разделе «Кадры» или «Зарплата» → «Отчёты» найдите «Табель учёта рабочего времени (Т-13)» или «График работы». Сформировав табель за месяц, вы увидите обозначения «В» (выходные) по каждому сотруднику — их можно посчитать визуально или выгрузить отчёт в Excel и просуммировать.
Если сотрудник работал в выходной по приказу, эти дни в табеле отражаются кодом «РВ» и не считаются выходными для целей оплаты — учитывайте это при подсчёте фактического отдыха.
Подсчёт выходных за произвольный период в отчётах
Типовые отчёты обычно строятся за месяц, квартал или год. Если нужен нестандартный интервал — например, с 15 марта по 20 июня для расчёта компенсации — используйте отчёт с настройкой периода. В ЗУП подойдёт «Остатки отпусков» и «Табель» с произвольными датами, а в универсальных конфигурациях — «Универсальный отчёт», где в качестве источника можно выбрать регистр сведений «Данные производственного календаря».
В универсальном отчёте добавьте отбор по периоду и по виду дня («Суббота», «Воскресенье», «Праздник»), сгруппируйте по виду дня — и получите точное количество выходных любого типа за указанный интервал. Этот способ не требует программирования и доступен пользователю с правами на отчёты.
Способы подсчёта выходных
Подходит для общих цифр по году или месяцу; не учитывает индивидуальные графики
Показывает фактические выходные конкретного сотрудника; строится только за учётный период
Гибкий период и фильтры; требует навыка настройки отчётов
Любые условия и автоматизация; нужны права разработчика или внешняя обработка
Программный подсчёт выходных дней
Для разработчиков и внедренцев выходные считаются запросом к регистру сведений «ДанныеПроизводственногоКалендаря». Типовой запрос выглядит так: выбираются записи за период, где вид дня входит в список «Суббота», «Воскресенье», «Праздник», и считается их количество.
ВЫБРАТЬ
КОЛИЧЕСТВО(ДанныеКалендаря.Дата) КАК ВыходныхДней
ИЗ
РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеКалендаря
ГДЕ
ДанныеКалендаря.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И ДанныеКалендаря.ВидДня В (&ВидыВыходных)
И ДанныеКалендаря.ПроизводственныйКалендарь = &Календарь
В параметр «ВидыВыходных» передайте массив из перечисления «ВидыДнейПроизводственногоКалендаря»: Суббота, Воскресенье, Праздник. Если нужно считать только праздничные дни без суббот и воскресений — оставьте один элемент. Для сменных графиков вместо календаря анализируйте регистры графиков работы (в ЗУП это данные графиков работы сотрудников), где выходной определяется отсутствием рабочих часов на дату.
Простая альтернатива без запроса — перебор дат в цикле с функцией «ДеньНедели()»: значения 6 и 7 соответствуют субботе и воскресенью. Но такой способ не учитывает праздники и переносы, поэтому для кадровых и зарплатных расчётов он не подходит — используйте только данные календаря.
ВидыВыходных = Новый Массив;
ВидыВыходных.Добавить(Перечисления.ВидыДнейПроизводственногоКалендаря.Суббота);
ВидыВыходных.Добавить(Перечисления.ВидыДнейПроизводственногоКалендаря.Воскресенье);
ВидыВыходных.Добавить(Перечисления.ВидыДнейПроизводственногоКалендаря.Праздник);Частые ошибки и как их избежать
Самая распространённая проблема — незаполненный производственный календарь на нужный год. Признак: отчёты показывают нулевую норму времени, а запрос возвращает пустой результат. Решение — заполнить календарь кнопкой «Заполнить по умолчанию» в форме календаря или обновить конфигурацию.
Вторая типичная ошибка — смешение календарных и рабочих дней при расчёте отпускных: отпуск считается в календарных днях (выходные входят), а праздничные дни в отпуск не включаются. Если вы считаете выходные для кадрового документа, сверьтесь, какой метод расчёта требуется по правилам учёта.
Третья ошибка — использование федерального календаря для региона с дополнительными праздниками. Если в организации заведён региональный календарь, убедитесь, что графики сотрудников ссылаются именно на него, иначе подсчёт выходных будет расходиться с фактом.
Проверка результата
После любого способа подсчёта полезно выполнить перекрёстную проверку: сравните число выходных из отчёта с печатной формой производственного календаря за тот же период. Для стандартной пятидневки значения должны совпадать точно.
Для программного расчёта выведите не только количество, но и список дат выходных — так легко заметить пропуск праздника или лишний день из-за неверного отбора по виду дня.
Как проверить результат
Совпадает с печатной формой производственного календаря
Меньше — не учтены праздники; больше — ошибка отбора
Календарь заполнен на весь нужный год
Пустые месяцы, нулевая норма времени
Ссылается на актуальный календарь организации
График привязан к другому (федеральному) календарю
FAQ
Как посчитать только праздничные дни без суббот и воскресений?
В запросе к регистру «ДанныеПроизводственногоКалендаря» оставьте в отборе только вид дня «Праздник». В пользовательском режиме то же даёт универсальный отчёт с фильтром по виду дня. Перенесённые праздники учитываются автоматически, если календарь заполнен корректно.
Почему запрос возвращает ноль выходных?
Чаще всего производственный календарь не заполнен на запрошенный период или в отборе указан другой календарь, чем тот, что реально заполнен. Проверьте справочник «Производственные календари» и заполните его кнопкой «Заполнить по умолчанию».
Как посчитать выходные между двумя датами без доступа к конфигуратору?
Используйте «Универсальный отчёт» по регистру сведений «Данные производственного календаря»: задайте период, отбор по видам дней и группировку. Альтернатива — выгрузить табель в Excel и просуммировать ячейки с кодом «В».
Входят ли выходные в отпуск при подсчёте дней?
Обычные выходные (суббота, воскресенье) входят в календарные дни отпуска, а нерабочие праздничные дни — нет. 1С:ЗУП учитывает это автоматически при оформлении документа «Отпуск», поэтому ручной корректировки обычно не требуется.
Как учесть работу в выходной по приказу?
Оформите документ «Работа в выходные и праздничные дни» (в ЗУП). День будет отражён в табеле кодом «РВ» и оплачен по повышенной ставке или компенсирован отгулом — в зависимости от выбора в документе.
Что важно запомнить
Выходные в 1С считаются по производственному календарю или графику сотрудника: для общих цифр достаточно печатной формы календаря, для сотрудника — табеля, для произвольного периода — универсального отчёта или запроса к регистру «ДанныеПроизводственногоКалендаря». Перед подсчётом убедитесь, что календарь заполнен, и не смешивайте выходные по календарю с выходными по сменному графику.