Календарь в 1С 8.3: от выбора даты до своего планировщика

· 9 мин

Содержание

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

Синхронизации с Google Календарём и Outlook в типовых конфигурациях нет. Её делают обработкой: выгрузкой событий в файл .ics или обменом через API. Ниже все четыре варианта по порядку, от простого к сложному.

Какой календарь вам нужен: четыре сценария

Под словом «календарь» в 1С скрываются разные вещи. Определите свою задачу, и половина работы отпадёт.

ЗадачаЧто использоватьНужен программист?
📅 Выбрать дату в документе, посмотреть день неделиВстроенный календарь платформыНет
🧮 Посчитать рабочие дни, норму часов, отпускПроизводственный календарь и графики работыНет
🗂 Видеть события, сроки, встречи в 1СВнешняя обработка или расширение с планировщикомДля установки готовой — нет
🔄 Видеть события 1С в Google или OutlookВыгрузка .ics или обмен через APIДа
Что вы хотите получить?

Встроенный календарь платформы: что есть без доработок

Платформа 1С:Предприятие 8.3 показывает календарь в двух местах. Ставить ничего не надо.

1. У поля даты. В любом документе, журнале или отчёте рядом с датой есть кнопка выбора. Нажмите её, и откроется календарь на месяц. Листайте месяцы стрелками, двойной щелчок по дню подставит дату.

2. Отдельным окном. Откройте главное меню (кнопка с тремя полосками в левом верхнем углу), затем Сервис → Календарь. Окно висит поверх программы и не мешает работе. Удобно, когда нужно быстро посчитать, на какой день недели выпадает срок.

💡 Полезные приёмы при вводе дат:

  • ⌨️ Дату можно набрать без точек: 071026 превратится в 07.10.2026.
  • 📌 Сегодняшний день в календаре выделен, по нему легко сориентироваться, если пролистали далеко назад.
  • 📆 В отчётах кнопка с многоточием у периода открывает выбор стандартного интервала: месяц, квартал, год.

Если кнопки календаря у поля нет, это поле не типа «Дата», а строка или число. Так бывает в самописных доработках. Чинить нужно в конфигурации, а не в настройках пользователя.

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

Производственный календарь хранит рабочие, выходные, праздничные и предпраздничные дни. От него зависят нормы времени, расчёт отпускных, больничных, табель. Графики работы строятся поверх него.

Где найти производственный календарь

КонфигурацияГде открыть
1С:ЗУП 3.1Настройка → Производственные календари
1С:Бухгалтерия 3.0Раздел Зарплата и кадры, группа справочников и настроек; быстрее всего через Все функции → Справочники → Производственные календари

Пункт «Все функции» включается в главном меню: Сервис → Параметры → флажок «Отображать команду “Все функции”».

Как добавить календарь на новый год

  1. Откройте справочник и выберите календарь «Российская Федерация».
  2. Переключите год стрелками в шапке формы.
  3. Если дни не размечены, данные придут с обновлением конфигурации или классификаторов. Обновите программу через Администрирование → Интернет-поддержка и сервисы.
  4. Если праздники объявили позже выхода релиза, разметьте дни вручную: щёлкните по дню и смените его вид (рабочий, выходной, праздник, предпраздничный).
  5. Для переноса выходного укажите дату, с которой его перенесли. Тогда отчёты покажут перенос корректно.
  6. Запишите календарь.

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

Свой календарь для региона или филиала

В Татарстане, Башкортостане и ряде других регионов есть свои праздники. Для них создают отдельный производственный календарь:

  1. В списке календарей нажмите «Создать».
  2. Укажите наименование, например «Татарстан».
  3. Выберите базовый календарь «Российская Федерация», если такое поле есть в форме: изменения федерального календаря подтянутся сами.
  4. Разметьте региональные праздники.
  5. Укажите этот календарь в графиках работы сотрудников филиала.

Графики работы

В ЗУП графики открываются в Настройка → Графики работы сотрудников. В Бухгалтерии ищите справочник «Графики работы» в разделе Зарплата и кадры.

  • 🕘 Пятидневка заполняется автоматически по производственному календарю.
  • 🔁 Сменный график (сутки через трое, 2/2) задают циклом: длина цикла, часы в каждый день, дата отсчёта.
  • 🌙 Для ночных и вечерних часов в ЗУП в графике указывают их отдельно, иначе доплаты не начислятся.

После создания графика нажмите кнопку заполнения на нужный год. Без этого шага график пустой, и норма времени будет нулевой.

Проверка календаря перед новым годом
Выполнено: 0 / 5

Установка готового календаря событий через внешнюю обработку

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

Разовый запуск

  1. Главное меню → Файл → Открыть.
  2. Выберите файл .epf.
  3. Платформа покажет предупреждение о безопасности. Открывайте, только если доверяете источнику файла.

Для разового открытия у пользователя должно быть право на интерактивное открытие внешних обработок. Обычно оно есть только у администратора.

Постоянное подключение

В Бухгалтерии 3.0, ЗУП 3.1 и УТ 11:

  1. Включите флажок в Администрирование → Печатные формы, отчеты и обработки → «Дополнительные отчеты и обработки».
  2. Откройте список по ссылке «Дополнительные отчеты и обработки».
  3. Нажмите «Добавить из файла» и выберите .epf.
  4. На закладке размещения укажите раздел, в котором появится команда.
  5. Отметьте пользователей или группы, которым она доступна. Запишите.

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

Внешняя обработка выполняет любой код с правами пользователя. Не ставьте файлы из неизвестных источников. Перед подключением в рабочую базу проверьте обработку на копии.

Как выбрать обработку

  • ✅ Явно указана поддержка вашей конфигурации и режима (файловая, клиент-серверная, веб-клиент).
  • ✅ События хранятся в базе, а не в файле на компьютере пользователя.
  • ✅ Есть права доступа: сотрудник видит свои события и общие.
  • ❌ Обработка требует снять защиту от опасных действий для всех пользователей.

Синхронизация календаря 1С с Google и Outlook

Готовой двусторонней синхронизации в типовых конфигурациях 1С нет. Выбор зависит от того, нужна ли обратная связь.

СпособНаправлениеСложностьОграничения
Файл .ics по расписанию1С → календарьНизкаяОбновление с задержкой, только чтение
COM-объект Outlook1С ↔ OutlookСредняяТолько Windows, Outlook установлен на компьютере
API Google Calendar1С ↔ GoogleВысокаяНужна авторизация OAuth 2.0 и доступ в интернет с сервера

Простой путь: выгрузка в iCalendar

Формат .ics понимают Google Календарь, Outlook, календари телефонов. Регламентное задание пишет файл, файл публикуется по ссылке, календарь подписывается на неё.

Пример процедуры выгрузки. На входе таблица значений с колонками Начало, Окончание, Тема, Ид:

Процедура ВыгрузитьВICS(ТаблицаСобытий, ИмяФайла) Экспорт

    Запись = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
    Запись.ЗаписатьСтроку("BEGIN:VCALENDAR");
    Запись.ЗаписатьСтроку("VERSION:2.0");
    Запись.ЗаписатьСтроку("PRODID:-//1s-83//calendar//RU");

    Для Каждого Событие Из ТаблицаСобытий Цикл
        Запись.ЗаписатьСтроку("BEGIN:VEVENT");
        Запись.ЗаписатьСтроку("UID:" + Событие.Ид + "@company.local");
        Запись.ЗаписатьСтроку("DTSTAMP:" + Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMddTHHmmss"));
        Запись.ЗаписатьСтроку("DTSTART:" + Формат(Событие.Начало, "ДФ=yyyyMMddTHHmmss"));
        Запись.ЗаписатьСтроку("DTEND:" + Формат(Событие.Окончание, "ДФ=yyyyMMddTHHmmss"));
        Запись.ЗаписатьСтроку("SUMMARY:" + Событие.Тема);
        Запись.ЗаписатьСтроку("END:VEVENT");
    КонецЦикла;

    Запись.ЗаписатьСтроку("END:VCALENDAR");
    Запись.Закрыть();

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

Время здесь «плавающее», без часового пояса: календарь покажет его в поясе пользователя. Для сотрудников в разных поясах переводите время в UTC и добавляйте к нему букву Z.

Outlook на рабочем месте

На Windows с установленным Outlook клиентский код создаёт объект Новый COMОбъект("Outlook.Application") и добавляет встречи в календарь пользователя. Работает только в тонком клиенте под Windows, в веб-клиенте и на Linux — нет.

Google Calendar

Обмен идёт через HTTPСоединение и HTTPЗапрос к API Google. Сложная часть — получить и хранить токены OAuth 2.0 и обновлять их. Закладывайте на такую доработку несколько дней работы программиста.

Свой виджет календаря: доработка формы

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

Поле календаря

  1. В расширении добавьте форме реквизит типа Дата.
  2. Перетащите его в элементы формы.
  3. В свойствах элемента выберите вид «Поле календаря».
  4. В обработчике ПриИзменении реквизита обновляйте список событий на выбранный день.

Получится месячная сетка прямо в форме, без отдельного окна.

Планировщик

Для расписания с интервалами (встречи, смены, брони) в платформе 8.3 есть элемент «Планировщик». Реквизит формы получает тип Планировщик, элемент формы — вид «Поле планировщика». События добавляются кодом:

&НаСервере
Процедура ЗаполнитьПланировщик()

    Планировщик.Элементы.Очистить();

    Элемент = Планировщик.Элементы.Добавить(НачалоДня(ТекущаяДатаСеанса()) + 10 * 3600,
        НачалоДня(ТекущаяДатаСеанса()) + 11 * 3600);
    Элемент.Текст = "Сверка с поставщиком";

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

Пример добавляет встречу на сегодня с 10:00 до 11:00. В реальной форме события читают запросом из справочника или регистра, где они хранятся.

💡 Для хранения событий заведите в расширении свой справочник или регистр сведений: дата начала, дата окончания, тема, ответственный. Права настраиваются отдельной ролью расширения.

Частые ошибки и как их исправить

Диагностика: выберите симптом

Перед правкой производственного календаря в периоде с уже рассчитанной зарплатой сделайте резервную копию базы.

Частые вопросы

Можно ли перенести производственный календарь из одной базы в другую?
Да, но обычно не нужно: календарь приходит с обновлениями в каждую базу. Для своих региональных календарей используйте выгрузку и загрузку через универсальный обмен или разметьте их вручную.
Почему в Бухгалтерии нет графика сменной работы?
Есть, но функции зарплаты в Бухгалтерии упрощены. Для сложных сменных графиков, суммированного учёта и ночных часов используйте ЗУП.
Будет ли календарь событий работать в веб-клиенте?
Поле календаря и планировщик работают в веб-клиенте. Не работает только то, что завязано на COM-объекты и локальные файлы, например запись напрямую в Outlook.
Можно ли показывать события 1С на телефоне без доработок?
Нет. Нужна хотя бы выгрузка в формат .ics и публикация файла по ссылке, к которой подключится календарь телефона.
Слетит ли свой календарь после обновления конфигурации?
Если он сделан расширением или внешней обработкой — нет. Если правили саму конфигурацию, после обновления изменения придётся сравнивать и переносить.