Создание календаря в 1С:Предприятие — одна из самых востребованных задач среди разработчиков и пользователей системы. Без правильно настроенного календаря невозможно корректно рассчитать зарплату, спланировать производственные процессы или организовать рабочий график сотрудников. В этой статье мы разберём все способы создания календарей: от стандартных инструментов платформы до программного формирования через 1С:Предприятие 8.3.

Вы узнаете, как настроить производственный календарь с учётом праздников и выходных, создать индивидуальный график работы для сотрудников, а также автоматизировать процесс обновления календарей через внешние источники. Материал будет полезен как начинающим пользователям, так и опытным программистам , которые хотят оптимизировать работу с датами в своих конфигурациях.

Зачем нужен календарь в 1С и какие задачи он решает

Календарь в — это не просто инструмент для отображения дат. Он выполняет критически важные функции:

  • 📅 Расчёт зарплаты — определяет количество рабочих дней для начисления окладов, премий, больничных.
  • ⚙️ Производственное планирование — помогает распределять задачи с учётом выходных и праздников.
  • 👥 Учёт рабочего времени — фиксирует графики смен, отпусков, командировок.
  • 📊 Аналитика — используется в отчётах для сравнения периодов (например,"рабочие дни vs выходные").

Без корректного календаря система может неправильно рассчитывать НДФЛ, страховые взносы или выдавать ошибки при формировании графиков. Например, если в календаре не указан перенос выходного дня из-за государственного праздника, зарплатный модуль посчитает этот день как рабочий, что приведёт к искажению начислений.

📊 Какой календарь вам нужно создать в 1С?
Производственный (стандартный)
Индивидуальный для сотрудников
Календарь для расчёта зарплаты
Другой вариант

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

Типы календарей в 1С: какой выбрать для вашей задачи

Платформа 1С:Предприятие 8.3 поддерживает несколько типов календарей. Их выбор зависит от целей использования:

Тип календаря Назначение Где используется Пример
Производственный Стандартный календарь с учётом государственных праздников и выходных. Зарплата, планирование производства, логистика. 5-дневная рабочая неделя с выходными в субботу-воскресенье.
Индивидуальный Персонализированный график для сотрудников или подразделений. Учёт рабочего времени, сменный график. 2 через 2, сутки через трое.
Рабочий Календарь для расчёта рабочего времени (например, 40-часовая неделя). Табельный учёт, начисление оплаты. 6-дневка с одним выходным.
Праздничный Список нерабочих дней (государственные и корпоративные праздники). Интеграция с зарплатными модулями. 1 января — Новый год, 9 мая — День Победы.

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

⚠️ Внимание: В некоторых отраслях (например, медицина, МЧС) действуют специальные правила учёта рабочего времени. Перед настройкой календаря уточните требования в Трудовом кодексе РФ или отраслевых нормативных актах.

Способ 1: Создание календаря через стандартные инструменты 1С

Если вам не требуется глубокая кастомизация, можно воспользоваться встроенными механизмами платформы. Рассмотрим процесс на примере 1С:Зарплата и Управление Персоналом 8.3:

  1. Откройте раздел Настройка → Производственные календари.
  2. Нажмите Создать и выберите тип календаря (например, Производственный календарь организации).
  3. Укажите Наименование (например,"Основной календарь 2026") и Организацию, для которой он создаётся.
  4. В разделе График работы настройте:
    • 📆 Тип недели (5-дневная, 6-дневная, непрерывная).
    • Продолжительность рабочего дня (например, 8 часов).
    • 🎉 Праздничные дни (добавьте из справочника или вручную).
  • Сохраните календарь и привяжите его к организации в настройках учёта.
  • Для проверки корректности календаря используйте отчёт Производственный календарь (Отчёты → Персонал → Производственный календарь). Он покажет количество рабочих дней, часов и праздников по месяцам.

    Указаны все государственные праздники|

    Корректно настроены выходные дни|

    Продолжительность рабочей недели соответствует ТК РФ|

    Календарь привязан к нужной организации-->

    Если в вашей конфигурации нет раздела Производственные календари, значит, функционал реализован иначе. Например, в 1С:Бухгалтерия 8.3 календарь настраивается в разделе Зарплата и кадры → Настройки зарплаты → Производственные календари.

    Способ 2: Программное создание календаря на языке 1С

    Для гибкой настройки (например, автоматическое обновление праздников или интеграция с внешними системами) используйте встроенный язык 1С. Ниже приведён пример кода для создания производственного календаря с учётом праздников:

    Процедура СоздатьПроизводственныйКалендарь
    

    // Создаём новый календарь

    Календарь = КалендариПроизводственные.СоздатьКалендарь;

    Календарь.Наименование ="Календарь 2026 (авто)";

    Календарь.Организация = Справочники.Организации.НайтиПоНаименованию("ООО Ромашка");

    Календарь.Год = 2026;

    // Настраиваем график работы (5-дневка, 8 часов)

    График = Календарь.ГрафикиРаботы.Добавить;

    График.ТипНедели = ТипНеделиКалендаря.Пятидневная;

    График.ПродолжительностьРабочегоДня = 8;

    // Добавляем праздничные дни (пример для 2026 года)

    Праздники = Новый Массив;

    Праздники.Добавить('20260101'); // 1 января

    Праздники.Добавить('20260102'); // 2 января

    Праздники.Добавить('20260107'); // Рождество

    //... добавьте остальные праздники

    Для Каждого ДатаПраздника Из Праздники Цикл

    Календарь.ПраздничныеДни.Добавить(Дата(Лев(ДатаПраздника, 4), Сред(ДатаПраздника, 5, 2), Прав(ДатаПраздника, 2)));

    КонецЦикла;

    // Сохраняем календарь

    Календарь.Записать;

    КонецПроцедуры

    Этот код создаёт базовый календарь с фиксированными праздничными днями. Для динамического обновления (например, загрузка праздников с сайта КонсультантПлюс или Гарант) потребуется доработать процедуру, добавив HTTP-запросы или интеграцию с внешними API.

    💡

    Чтобы избежать ошибок при загрузке праздников, используйте проверку формата даты. Например, функция Дата(Год, Месяц, День) вернёт ошибку, если передать некорректные значения (например, 32 января).

    Для автоматизации процесса можно создать регламентное задание, которое будет ежегодно обновлять календарь. Например:

    Процедура ОбновитьПраздники
    

    Запрос = Новый HTTPЗапрос("https://api.garant.ru/holidays/2026");

    Ответ = Запрос.Выполнить;

    Данные = JSON.Прочитать(Ответ.ПолучитьТекст);

    // Обработка данных и обновление календаря

    КонецПроцедуры

    ⚠️ Внимание: При использовании внешних API проверьте лицензионные соглашения. Некоторые сервисы (например, КонсультантПлюс) запрещают автоматизированный парсинг данных без согласования.

    Способ 3: Импорт календаря из Excel или внешних источников

    Если у вас уже есть готовый календарь в формате Excel, CSV или XML, его можно импортировать в с минимальными доработками. Для этого:

    1. Подготовьте файл с колонками:
      • 📅 Дата (формат ДД.ММ.ГГГГ).
      • 🏢 Тип дня ("Рабочий","Выходной","Праздник").
      • Продолжительность (например,"8 часов" для рабочих дней).
  • В создайте обработку для загрузки данных. Пример кода:
    Процедура ЗагрузитьКалендарьИзExcel(ПутьКФайлу)
    

    Таблица = Новый ТаблицаЗначений;

    Таблица.ПрочитатьExcel(ПутьКФайлу);

    Календарь = КалендариПроизводственные.СоздатьКалендарь;

    Календарь.Наименование ="Импортированный календарь 2026";

    Для Каждого Строка Из Таблица Цикл

    День = Календарь.Дни.Добавить;

    День.Дата = Строка.Дата;

    День.ТипДня = Строка.ТипДня;

    День.Продолжительность = Строка.Продолжительность;

    КонецЦикла;

    Календарь.Записать;

    КонецПроцедуры

  • Запустите обработку и проверьте результат в справочнике календарей.
  • Для удобства можно использовать готовые обработки из каталога 1С:ИТС или Infostart. Например, обработка"Загрузка производственного календаря из Excel" автоматически преобразует данные в нужный формат и загружает их в базу.

    Что делать, если при импорте даты сбиваются?

    Если даты в Excel отображаются корректно, но в 1С загружаются как"31.12.1899", проверьте формат ячеек в исходном файле. Excel хранит даты как числа (количество дней с 1900 года), а 1С ожидает строку в формате"ДД.ММ.ГГГГ". Решение:

    1. В Excel выделите колонку с датами.

    2. Нажмите правой кнопкой →"Формат ячеек" → выберите"Текстовый".

    3. Сохраните файл и повторите импорт.

    Если вам нужно обновить календарь для нескольких лет, можно использовать массовую загрузку с помощью COM-соединения или ADO. Однако этот метод требует знаний в области программирования и настройки прав доступа.

    Настройка индивидуальных графиков работы для сотрудников

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

    Чтобы создать персональный график:

    1. Перейдите в раздел Кадры → Графики работы сотрудников.
    2. Нажмите Создать и выберите тип графика (например, Сменный график).
    3. Укажите параметры:
      • 🔄 Периодичность (еженедельно, ежемесячно).
      • Длительность смены (например, 12 часов для вахтового метода).
      • 📅 Выходные дни (можно указать плавающие выходные).
    4. Сохраните график и привяжите его к сотруднику в его карточке (Кадры → Сотрудники → [Выбрать сотрудника] → График работы).
    5. Для автоматизации можно использовать типовые графики. Например, в 1С:ЗУП уже есть шаблоны:

      -"Пятидневка (8 часов)".

      -"Сутки через трое".

      -"2 через 2".

      Если нужного шаблона нет, создайте его вручную или скопируйте существующий с доработками. Например, для удалённой работы можно настроить график с плавающим началом рабочего дня (например, с 10:00 до 19:00).

      💡

      Индивидуальные графики позволяют учитывать особенности работы каждого сотрудника, но требуют регулярного контроля. Например, если сотрудник перешёл на другой график, необходимо обновить его настройки в 1С, иначе расчёт зарплаты будет некорректным.

      Обновление календаря: как добавить праздники и переносы выходных

      Ежегодно правительство РФ утверждает производственный календарь с учётом переносов выходных дней. Чтобы ваша система работала корректно, необходимо своевременно обновлять эти данные.

      Способы обновления:

      • 🔄 Ручной ввод — подходит для небольших компаний. Откройте календарь в и вручную добавьте/удалите праздничные дни.
      • 📥 Импорт из файла — скачайте актуальный календарь с сайта КонсультантПлюс в формате Excel и загрузите его через обработку.
      • 🤖 Автоматическое обновление — напишите скрипт, который будет парсить официальные источники (например, http://government.ru) и обновлять календарь.

      Пример кода для добавления праздничного дня:

      Процедура ДобавитьПраздничныйДень(Календарь, Дата, Наименование)
      

      Праздник = Календарь.ПраздничныеДни.Добавить;

      Праздник.Дата = Дата;

      Праздник.Наименование = Наименование;

      Праздник.ТипДня = ТипДняКалендаря.Праздничный;

      КонецПроцедуры

      // Пример вызова:

      ДобавитьПраздничныйДень(Календарь,'20260509',"День Победы");

      Для массового обновления используйте групповую обработку. Например, можно написать процедуру, которая сравнивает текущий календарь с эталонным и автоматически добавляет недостающие дни.

      ⚠️ Внимание: При переносе выходных дней (например, если суббота становится рабочей, а понедельник — выходным) обязательно обновляйте не только календарь, но и графики работы сотрудников. Иначе возникнут ошибки в табеле учёта рабочего времени.

      Типичные ошибки при работе с календарями в 1С и как их избежать

      Даже опытные пользователи иногда сталкиваются с проблемами при настройке календарей. Рассмотрим наиболее распространённые ошибки и способы их решения:

      Ошибка Причина Решение
      Некорректный расчёт зарплаты В календаре не указаны праздничные дни или переносы выходных. Обновите календарь согласно официальному производственному календарю РФ.
      Ошибка"Не найден календарь для организации" Календарь не привязан к организации в настройках. Проверьте настройки в разделе Зарплата → Настройки зарплаты.
      Дублирование праздничных дней При импорте данные добавились поверх существующих. Перед импортом очистите список праздников или используйте режим"Обновить существующие".
      Несовпадение рабочих дней в отчётах Сотруднику назначен индивидуальный график, но в отчётах используется общий календарь. Настройте отчёт так, чтобы он учитывал персональные графики.

      Чтобы избежать ошибок, следуйте простым правилам:

      • 🔍 Проверяйте актуальность данных — раз в год обновляйте календарь с учётом новых праздников.
      • 🔗 Синхронизируйте графики — если изменился календарь организации, обновите индивидуальные графики сотрудников.
      • 📊 Тестируйте расчёты — после изменения календаря проверьте зарплатные начисления на тестовом примере.

    Если ошибка уже возникла, используйте журнал регистрации (Администрирование → Журнал регистрации) для поиска причин. Например, если зарплата рассчитана неверно, фильтруйте журнал по событиям РасчётЗарплаты.

    FAQ: Ответы на частые вопросы о календарях в 1С

    Как перенести календарь из одной базы 1С в другую?

    Используйте выгрузку/загрузку данных через XML или DT (формат обмена данными). Для этого:

    1. В исходной базе выгрузите справочник Производственные календари (раздел Администрирование → Выгрузка данных).
    2. В целевой базе загрузите файл через Администрирование → Загрузка данных.

    Если конфигурации отличаются, может потребоваться доработка правил обмена.

    Можно ли в 1С создать календарь с плавающими выходными (например, суббота-воскресенье чередуются)?

    Да, для этого:

    1. Создайте индивидуальный график работы.
    2. В настройках графика укажите Плавающие выходные и настройте правила чередования.
    3. Привяжите график к сотруднику или подразделению.

    В 1С:ЗУП 3.1 эта функция поддерживается"из коробки".

    Как в 1С учесть региональные праздники (например, День города)?

    Региональные праздники добавляются вручную:

    1. Откройте нужный календарь в разделе Производственные календари.
    2. Перейдите на вкладку Праздничные дни и добавьте новую запись.
    3. Укажите дату и наименование (например,"День города Москва — 07.09.2026").

    Если региональных праздников много, целесообразно создать отдельный справочник праздников и интегрировать его с календарём.

    Почему в отчёте"Производственный календарь" не отображаются праздничные дни?

    Возможные причины:

    • Праздники добавлены в другой календарь (проверьте привязку к организации).
    • Фильтр в отчёте установлен на другой период (измените даты).
    • Ошибка в данных (откройте календарь в режиме редактирования и проверьте список праздников).

    Если проблема сохраняется, обновите конфигурацию базы (Администрирование → Обновление конфигурации).

    Как автоматизировать обновление календаря на каждый год?

    Настройте регламентное задание:

    1. Создайте обработку, которая будет скачивать актуальный календарь с официального сайта (например, http://government.ru).
    2. Добавьте её в регламентные задания (Администрирование → Регламентные задания).
    3. Установите расписание (например, ежегодно 1 декабря).

    Для парсинга данных можно использовать HTTPСоединение или готовые обработки из Infostart.