Календарь¶
Календарь управляет событиями, встречами, повесткой и рабочими днями организации.
Он работает поверх нескольких источников — встроенного календаря 1Формы, Exchange и CalDav — и объединяет их в единый пользовательский сценарий.
Бизнес-объекты¶
Календарь оперирует несколькими видами данных:
- Календарное событие/встреча.
- Агенда (выборка событий по периоду).
- Непрочитанные сообщения календаря.
- Производственный календарь (рабочие/нерабочие дни).
Основные сценарии¶
Календарь охватывает несколько ключевых сценариев — от создания и согласования встречи до загрузки сетки и синхронизации с Outlook.
1. Действия со встречей¶
Создание, изменение, удаление и действия по событию (принять, отклонить и т.п.).
1a. Постановка встречи в чужой календарь¶
Пользователь может создать встречу, находясь в чужом календаре (например, открыв календарь коллеги). Правила:
- Организатором может быть текущий пользователь или владелец просматриваемого календаря. Если право создавать встречи в этом календаре есть, поле «Организатор» доступно для выбора из этих двух, по умолчанию подставляется владелец. Права нет — организатором становится текущий пользователь, а поле недоступно. В своём календаре поле тоже недоступно: организатор — сам пользователь.
- Владелец просматриваемого календаря, если он не стал организатором, автоматически добавляется в обязательные участники.
- Текущий пользователь также добавляется в участники.
- В помощнике по планированию оба участника отображаются корректно.
- Организатор закрепляется за встречей при создании: при последующем изменении он берётся из сохранённой встречи. Пользователь, не являющийся организатором, может изменить только статус занятости — тема, место, описание, участники, повторяемость, вложения и время восстанавливаются из сохранённых значений, ICS-письмо в этом случае не рассылается.
- Удалить встречу может организатор, даже если она находится в чужом календаре. Обратное тоже верно: чужую встречу нельзя удалить и из собственного календаря — право на удаление определяет организатор встречи, а не владелец календаря, в котором она видна. Отмена подчиняется тому же правилу: отменить встречу может её организатор, а не владелец календаря, — организатор может отменить свою встречу и в чужом календаре.
Кто может создавать и править. Во встроенном календаре 1Формы, в CalDav и во встречах-приглашениях создать встречу в чужом календаре может только владелец этого календаря или системный робот — права на просмотр событий для этого недостаточно. В Exchange возможность определяется правами почтовой папки владельца: создание — правом на создание элементов, а редактирование и удаление — только полным доступом к элементам папки; ролей уровня «свои элементы» для этого мало. Ни в одном источнике нельзя создавать, редактировать и удалять события в календаре, недоступном для просмотра, а возможность создавать не означает возможности удалять.
Кнопка «Создать встречу» в шапке календаря показывается всегда, наличие права она не проверяет: право проверяется при сохранении. Если его нет или оно отозвано, пока форма была открыта, сохранение отклоняется с сообщением «Нет прав на создание встречи в календаре {владелец}», форма остаётся открытой с введёнными данными и переключается в режим без права — организатором становится текущий пользователь, выбор организатора недоступен.
2. Загрузка календарной сетки¶
Пользователь получает события за выбранный период и отображение нерабочих дней для планирования. События видимого периода подгружаются порциями, пока не будут загружены все.
Переиспользование загруженного диапазона. Уже загруженные периоды запоминаются в браузере. Навигация по датам и переключение масштаба — месяц, неделя, день — внутри загруженного диапазона не порождают обращений к серверу; при открытии соседнего периода дозапрашивается только его недостающая часть. Запомненное разделено по действующему пользователю и режиму перевоплощения, владельцу отображаемого календаря, категории, применённому фильтру, часовому поясу отображения и источнику данных — события разных пользователей, категорий и фильтров между собой не смешиваются. Сигнал об изменении данных сбрасывает запомненное для текущей области, и видимый диапазон перечитывается.
Точечное обновление сетки. При обновлении данных сетка не перерисовывается целиком: система сравнивает показанный набор событий с новым и добавляет, обновляет или убирает только изменившиеся. Смена даты или названия события не приводит к перерисовке соседних событий и «миганию» сетки.
Устаревшие ответы. Если во время загрузки пользователь переключился на другой период или сменил фильтры, запоздавший ответ прерванной загрузки в сетку не попадает — показаны данные того периода, который открыт сейчас.
3. Работа со счётчиком непрочитанных¶
Счётчик автоматически пересчитывается при изменениях в сообщениях встреч.
4. Управление производственным календарём¶
Администратор обновляет рабочие и праздничные дни; изменения используются в расчётах сроков и в отображении календаря.
5. Календарное представление категории¶
В календарном представлении категории задачи и события отображаются в виде календаря с масштабом день, неделя или месяц. Каждая задача — активная ссылка на карточку. Клик по свободному слоту открывает карточку создания задачи.

Масштабы¶
Доступно несколько масштабов отображения:
| Масштаб | Описание |
|---|---|
| Месяц | Задачи на месяц, список |
| Месяц (Карточка) | Задачи на месяц, карточки |
| Неделя | Задачи на неделю, список |
| Расписание | Задачи на неделю, карточки |
| Рабочая неделя | Задачи на неделю без выходных, список |
| День | Задачи на день, список |
В масштабе «Месяц» ячейка дня показывает не больше четырёх событий; остальные сворачиваются в ссылку «+ ещё N», которая раскрывает полный список дня во всплывающем окне. В масштабе «Месяц (Карточка)» ограничения нет — выводятся все события дня.
Администратор может предопределить доступные масштабы и масштаб по умолчанию. Выбор пользователя сохраняется между сессиями.
Карточка в масштабе «Расписание». В этом масштабе задача выводится карточкой, собранной по шаблону канбана — тому же, что настраивается для представления «Канбан»: шапка, тело и подвал с выбранными полями и дополнительными параметрами. Шаблон берётся по категории самой задачи, поэтому в представлении с задачами нескольких категорий карточки могут выглядеть по-разному. Если у категории шаблон не задан, задача показывается прежней карточкой календаря: название, статус, срок и теги, ниже — исполнитель. Настройка шаблона — в конструкторе карточки канбана.
Фильтрация¶
События в календаре можно отобрать по дате и роли пользователя (кнопка на панели инструментов и заголовок диалога называются «Отбор»):
| Параметр фильтра | Описание |
|---|---|
| Срок | Активные задачи со сроком, независимо от исполнителя |
| Срок (Исполнитель) | Активные задачи, где пользователь — исполнитель |
| Срок (Ответственный) | Активные задачи, где пользователь — ответственный |
| Срок (Завершённые) | Завершённые/отклонённые задачи, где пользователь — исполнитель |
| Дата завершения | Завершённые/отклонённые задачи по дате завершения |
| Встречи | Только для категорий типа «Календарь» — по диапазону дат в параметрах «С» и «По» |
| Напоминания | Напоминания по задаче |
| Подписи | Запрошенные подписи, акцептант — текущий пользователь |
| Начало работы | Задачи по дате начала работы |
| Создание | Задачи по дате создания |
Дополнительно доступны фильтры по статусу (активные / закрытые / все), по роли (исполнитель, ответственный, организатор, наблюдатель, автор) и по дополнительным параметрам категории (ДП). Все фильтры объединяются по «И»; множественный выбор внутри одного ДП — по «ИЛИ». Настройки сохраняются отдельно для каждой категории. В персональном календаре выбранный «Отбор» хранится в браузере отдельно для своего календаря и для календарей коллег: для всех чужих календарей действует один общий набор, и он не меняет отбор своего.
События по сроку и по дате завершения одной задачи показываются раздельно — это две отметки, а не одна. У отметки «Дата завершения» в контекстном меню есть только «Открыть в новой вкладке»: перенести срок и сменить статус из неё нельзя, потому что она показывает уже зафиксированную дату завершения, а не срок.
Поддерживаемые типы ДП для фильтрации. Список ДП формируется автоматически из параметров, настроенных администратором для категории; в фильтры попадают только те ДП, на которые у пользователя есть права просмотра.
| Тип ДП | Как работает фильтр |
|---|---|
| Список (выбор из значений) | Выпадающий список с выбором одного или нескольких значений |
| Да/Нет (чекбокс) | Чекбокс для фильтрации по значению «Да» / «Нет» |
| Текст | Поле для ввода текста (поиск по вхождению) |
| Число | Диапазон значений (от и до) |
| Дата | Выбор диапазона дат |
| Связь с другой категорией | Выпадающий список связанных объектов |
| Пользователь | Выбор пользователя из справочника |
| Lookup / выбор из списка | Выбор одного значения из выпадающего списка |
| MultiLookup | Выбор одного или нескольких значений |
Чтобы ДП появился в фильтрах календаря, помимо его создания и наличия у пользователя прав на просмотр, администратор должен включить ДП в настройку «Настройка вида календарь» в прочих настройках категории (правый клик по категории → Настройки → Прочее → Настройка вида календарь).
Количество одновременно применяемых фильтров по ДП не ограничено. Первая загрузка большого диапазона с фильтрами на категории с десятками тысяч задач идёт на сервер и может занять заметное время; последующие переходы по датам и смена масштаба внутри уже загруженного диапазона выполняются без обращения к серверу — см. «Загрузка календарной сетки».
Экспорт в CSV¶
По кнопке «В CSV» выгружаются события за месяц в соответствии с текущими фильтрами:
| Колонка | Обозначение |
|---|---|
| Start | Дата начала события или срок задачи |
| End | Дата окончания или срок задачи |
| Title | Текст задачи или название события |
| Type | CalendarEvent — событие, Task — задача |
| Organizer | Организатор события или исполнитель задачи |
| TaskId | Номер задачи (для типа Task) |
6. Персональный календарь¶
Открывается из иконки «Календарь» в панели навигации. Под индикатором — счётчик непрочитанных событий.
Внешний вид:
- Серым показываются выходные и праздники; рабочие дни на субботу/воскресенье и предпраздничные — белым (как рабочие).
- В видах «Неделя» и «День» серым также заливается нерабочее время суток — до начала и после конца рабочего дня по заданному графику работы (по умолчанию с 09:00 до 18:00); при границах 00:00 или 24:00 заливки нет.
- Текущая дата выделена цветом, текущее время — красная черта.
Периоды: Месяц / Неделя / Рабочая неделя / День / Список. По умолчанию — Рабочая неделя (без выходных, праздничные дни видны). Кнопка «Сегодня» возвращает к текущей дате; стрелки ←/→ — на период вперёд/назад. Из представлений Месяц / Неделя / Рабочая неделя клик по дате переключает на День.
Ранее загруженные периоды переиспользуются: переход стрелками вперёд и назад и смена масштаба внутри загруженного диапазона не приводят к повторному обращению к серверу — см. «Загрузка календарной сетки».

Добавление чужих календарей. Кнопка «Добавить календарь» позволяет видеть события до 5 пользователей одновременно. Каждый получает свой цвет; чтобы убрать — крестик в бейдже.
Кнопка «События» открывает страницу с табличным представлением почтовых календарных событий за последние две недели (организатор, название, дата встречи) — это все изменения по встречам, отображающиеся в почтовом ящике пользователя. Новые события выделяются жирным; кнопка «Прочитать все» помечает прочитанными все видимые на странице. Прочтение синхронизируется с почтовым ящиком пользователя. Клик по строке открывает карточку события; кнопка обновления — рядом. Счётчик непрочитанных рядом с иконкой календаря в панели навигации.
Фильтр¶
В персональном календаре кнопка на панели инструментов и её диалог называются «Отбор». В них доступны фильтры по дате задачи и роли пользователя:
| Параметр | Что показывает |
|---|---|
| Срок (Исполнитель) | Активные задачи с пользователем-исполнителем по дате срока |
| Срок (Ответственный) | Активные задачи с пользователем-ответственным по дате срока |
| Срок (Завершённые) | Завершённые/отклонённые задачи по дате срока |
| Дата завершения | Завершённые/отклонённые по дате фактического завершения |
| Встречи | Встречи, в которых пользователь участвует |
| Напоминания | Напоминания по задачам |
| Подписи | Запрошенные подписи (пользователь — акцептант) — по дате срока подписи |
| Начало работы | По дате начала работы над задачей |
| Создание | По дате создания задачи |
Отбор встреч по повторениям. В блоке «По повторениям» выбирается одно значение: «Не выбрано» — повторения не учитываются, «Только повторяющиеся» — показываются только встречи из повторяющихся серий, «Только встречи без повторений» — только одиночные встречи. Выбор хранится в браузере и действует и на сетку календаря, и на выгрузку в CSV. В календаре категории, в календаре без встреч и в виджете с заданными типами событий блок не показывается.
В «Только повторяющиеся» попадает вся серия: и сама повторяющаяся встреча, и её вхождения, включая те, которые отредактировали отдельно от серии. В «Только встречи без повторений» остаются одиночные встречи, а серии и их вхождения скрываются.
Отбор встреч по связи с задачей. В блоке «Связь с задачей» выбирается «Не выбрано», «Да» или «Нет»: «Да» оставляет только встречи, связанные с задачей, «Нет» — только встречи без такой связи, «Не выбрано» связь не учитывает. Выбор так же хранится в браузере, действует на сетку и на выгрузку в CSV и скрыт в тех же календарях, что и блок «По повторениям».
Отбор по связи с задачей опирается на связь, которую отдаёт провайдер календаря. У встреч 1Формы это сохранённая связь встречи с задачей, у Exchange — служебное свойство события, которое проставляется при создании встречи из задачи. Встречи Exchange, созданные в календаре 1Формы, такого свойства не получают: ссылка на задачу у них живёт только в тексте события и показывается на карточке, поэтому по отбору «Связь с задачей = Да» такие встречи не находятся.
Отбор отменённых встреч. В блоке «Показать отменённые встречи» выбирается «Не выбрано», «Да» или «Нет»: при «Нет» отменённые встречи в календаре не показываются, при «Да» и «Не выбрано» показываются вместе с остальными. Выбор так же хранится в браузере, действует на сетку и на выгрузку в CSV и скрыт в тех же календарях, что и блок «По повторениям».
Отбор встреч по занятости. В блоке «Занятость (Exchange)» можно отметить одно или несколько состояний — «Свободен», «Занят», «Под вопросом», «Нет на месте», «Работаю в другом месте»: тогда в календаре остаются только встречи с отмеченными состояниями занятости. Если не отмечено ни одно, отбор по занятости не применяется. Выбор так же хранится в браузере, действует на сетку и на выгрузку в CSV и скрыт в тех же календарях, что и блок «По повторениям».
В блоке перечислены только эти пять состояний. Занятость, которую провайдер не сообщил, отдельным пунктом не отбирается: у встреч из CalDAV и у встреч-задач с нераспознанным состоянием занятость считается неопределённой.
Отбор встреч по организатору. В блоке «Организатор» выбирается один сотрудник: поле устроено как поле выбора получателей в письме, имя подставляется из справочника с поиском. Пока выбор не сделан, отбор по организатору не применяется; сделанный выбор сужает календарь до встреч, организатором которых выступает выбранный сотрудник. Выбор так же хранится в браузере, действует на сетку и на выгрузку в CSV и скрыт в тех же календарях, что и блок «По повторениям».
Отбор идёт по организатору встречи, а не по её участникам: сотрудник, приглашённый на встречу, но не являющийся её организатором, по этому отбору встречу не увидит. Адрес внешнего получателя, у которого нет учётной записи в 1Форме, в отбор не попадает и выборку не сужает.
При просмотре собственного календаря — задачи текущего пользователя; при просмотре чужого — задачи целевого пользователя, видимые текущему по правам.
Интервал задачи на сетке. Когда задача попадает на сетку календаря, её начало и конец берутся по настройкам её категории: если в категории указаны дополнительные параметры даты начала и окончания, интервал строится по ним, иначе — по системным полям задачи, дате начала работы и сроку. Правило действует и когда в календаре показаны задачи сразу нескольких категорий: каждая категория отбирается по своим настройкам, поэтому задача с интервалом в дополнительных параметрах попадает в видимое окно независимо от того, одна категория выбрана или несколько.
Выгрузка в CSV¶
Кнопка «В CSV» скачивает события за весь месяц с учётом текущих фильтров (даже если открыт период Неделя или День). Колонки: Start, End, Title, Type (CalendarEvent/Task), Organizer, TaskId.
Отображение событий¶
Событие — активная ссылка на карточку. Длительность отражается растягиванием ячейки от даты/времени начала до конца.
Контекстное меню (ПКМ) — набор пунктов зависит от того, кем в этой встрече является текущий пользователь:
- Вы организатор — «Отменить встречу».
- Вы участник — «Принять», «Под вопросом», «Отклонить».
Отменить встречу может только её организатор: право на отмену определяет организатор, а не владелец календаря, в котором встреча видна. Ответить на приглашение за другого участника нельзя — попытку изменить чужой ответ система отклонит. Набор доступных пунктов приходит с сервера и зависит от источника календаря.

Выбор отражается в поле «Статус» карточки встречи и в виде вертикальной полосы слева:
| Полоса | Статус |
|---|---|
| Зелёная | Свободен |
| Синяя | Занят |
| Жёлтая | Под вопросом |
| Серая | Нет на месте |
Полоса соответствует значению поля «Показывать как» в карточке события. Иконки в правом нижнем углу — повторяющаяся встреча и наличие вложений.
Подсказка при наведении. Наведение на событие в сетке показывает подсказку: название, тип события, период, место проведения, статус занятости и участников. Если в месте проведения указана ссылка, она открывается прямо из подсказки; для ссылки на ВКС вместо адреса выводится «Присоединиться». Подсказка появляется и у остальных отметок календаря — сроков, начала работы, создания и завершения задач, подписей и напоминаний: в ней показывается тип отметки, задача и её дата.
Просмотр календарей других пользователей¶
В профиле пользователя — вкладка «Календарь» (полный) и блок встреч на текущую неделю на вкладке «Профиль». Кнопка раскрытия на полный экран — в правом верхнем углу.
Календарь другого сотрудника показывается по его местному времени: часы на сетке, полосы нерабочего времени и линия текущего момента расставлены по часовому поясу владельца календаря, а не зрителя. Когда пояса различаются, рядом с заголовком периода выводится метка смещения владельца от UTC (например, «UTC+3») — она показывает, что время на сетке не совпадает с собственным временем зрителя. Встреча, созданная из такого календаря, открывается с тем же временем, что на сетке, — см. «Часовой пояс при создании встречи» в разделе «Карточка календарного события».
При ограничении доступа администратором события чужих сотрудников отображаются как некликабельные синие слоты «Занят» без деталей. В профиле и краткой карточке отображается только статус (Занят / Под вопросом / Нет на месте / Свободен) и время.
Тот же уровень доступа действует в блоке встреч на вкладке «Профиль» и в статусах коллег в списке сотрудников. Что именно видно, зависит от уровня:
| Уровень | Чужие встречи в профиле | Чужие отсутствия в статусах коллег |
|---|---|---|
| Нет доступа | встреча не показывается | запись об отсутствии не показывается |
| Только занятость | имя занятости, место не выводится, ссылки нет | время и имя занятости; если имя пустое — «Занят» |
| Тема и место | тема и место встречи, ссылки нет | как при «только занятости»: у отсутствия нет темы и места |
| Полные сведения | тема, место и ссылка на встречу | полный текст отсутствия |
Свои встречи и свои отсутствия всегда показываются полностью.
Оповещения о встречах¶
За 15 минут до начала события в правом верхнем углу под панелью навигации появляется баннер: время, название встречи, активная ссылка из поля «Место встречи» (открывается в новой вкладке).
| Действие | Эффект |
|---|---|
| Отложить на 5 / 10 минут / до начала | Скрыть баннер на выбранное время |
| Закрыть (крестик) | Скрыть напоминание до конца встречи |
Независимо от выбранного отложенного времени, баннер всегда показывается за 1 минуту до начала. Если встреча отменена — оповещение не показывается.
Пока встреча идёт, в баннере выводится отметка «Сейчас»; после её окончания — «Просрочено» и в скобках время начала. Просроченное напоминание автоматически скрывается через 30 минут после окончания встречи. Отложенное напоминание не скрывается автоматически: оно остаётся на экране и во время встречи, и после неё, пока пользователь не закроет его или не перейдёт по ссылке подключения.
Цвет баннера — противоположный теме приложения (тёмный в светлой, светлый в тёмной).
При свёрнутом или неактивном окне — приходят уведомления рабочего стола, клик по уведомлению переключает на 1Форму.
Оповещения отключаются в персональных настройках уведомлений: пункт «Напоминания о встречах».
7. Карточка календарного события¶
Способы создания¶
Создать встречу можно из нескольких мест интерфейса:
| Способ | Поведение |
|---|---|
| Кнопка «Создать встречу» в календаре | Открывает пустую карточку |
| Кнопка «Создать» в панели навигации → «Встречу» | Открывает пустую карточку |
| Клик по свободной ячейке календаря | Подтягиваются дата и время начала/окончания (по умолчанию +30 мин). Растягивание мыши без отпускания задаёт более длинный интервал |
| Меню «Запланировать» в шапке задачи | Подписчики задачи автоматически добавляются в участники |
Поля карточки¶
Карточка события состоит из следующих полей:
| Поле | Поведение |
|---|---|
| Организатор | По умолчанию — создатель события. При создании из чужого календаря поле доступно для выбора, если есть право создавать встречи в этом календаре: выбрать можно владельца календаря (подставляется по умолчанию) или себя. Права нет — организатором становится текущий пользователь, поле недоступно. Переключение организатора пересобирает обязательных участников: тот из двоих, кто не стал организатором, добавляется в участники; уже добавленные вручную участники сохраняются. При изменении встречи организатор берётся из сохранённых значений и не меняется |
| Название * | Обязательное |
| Участники | Пользователи системы и внешние email (формат pochta@mail.ru; иначе значение удаляется). Кнопка «Помощник по планированию» открывает подбор времени |
| Длительность | 5 / 10 / 15 / 30 / 45 мин, 1 / 1,5 / 2 ч. После выбора пересчитывает время окончания |
| Дата и время | При включении «Весь день» обе границы — 00:00. Если время не выбрано вручную, начало автозаполняется округлением до ближайшего часа вперёд (16:00, 16:34 или 16:55 → 17:00). При сдвиге окончания раньше начала система автоматически сдвигает начало, чтобы сохранить положительную продолжительность. Границы времени встречи проверяются на сервере при любом способе создания и при изменении встречи, в том числе при переносе и растягивании в сетке календаря: обе даты должны попадать в диапазон с 01.01.1753 по 31.12.9999, а окончание — быть строго позже начала; нулевая и отрицательная продолжительность не принимаются. В режиме «Весь день» окончание рассчитывается от следующих суток, поэтому 31.12.9999 в этом режиме выбрать нельзя. Встреча с недопустимыми датами не создаётся и не сохраняется, вместо этого возвращается сообщение о том, какая именно граница неверна |
| Повторять | Никогда / Ежедневно / Еженедельно / Ежемесячно в тот же день / Ежемесячно на той же неделе / Ежегодно в тот же день / Ежегодно на той же неделе. Недоступно в Exchange-режимах «Синхронизация» и «Выключено» |
| Место встречи | Адрес или ссылка. Кнопка «Ссылка на встречу» автоматически добавляет ссылку на личную ВКС в это поле и подпись со ссылкой в «Описание». Если у комнаты установлен пароль — в описание добавляется строка «Код доступа: XXXX». Ссылка, подпись и строка с кодом доступа входят в служебный блок, который система собирает сама: он пересобирается целиком при открытии карточки и при изменении полей «Связано с» и «Место встречи», поэтому ручные правки внутри блока не сохраняются. Текст за пределами блока не затрагивается; при снятии ВКС-ссылки блок удаляется вместе с разделителем. Название площадки в поле берётся из параметра «Имя приложения» в Общих настройках приложения режима администрирования. Иконка справа копирует ссылку. Ссылка распознаётся в значении поля по образцу адреса, и служебные символы в нём — кавычки, угловые скобки — подпись и разметку описания не ломают |
| Показывать как | Тип отсутствия: Отпуск / Встреча / Удалённая работа / Прочее. Тип определяет цвет имени пользователя в системе во время события. Список настраивается администратором |
| Связано с | Номер связанной задачи. После создания — в задачу публикуется автоматический служебный комментарий участникам от имени организатора. В почтовом уведомлении о встрече, связанной с задачей, отображается блок «Перейти» со ссылкой на эту задачу. При заполненном поле в «Описание» встречи добавляется строка «Встреча создана из: #номер» со ссылкой на задачу — она входит в служебный блок, который система собирает сама (см. «Место встречи»). Если у встречи есть и ссылка на видеоконференцию, и связь с задачей, обе части выводятся в одном блоке. Для пользователей с провайдером календаря CalDAV поле не отображается — ни при создании, ни в карточке встречи: связь встречи с задачей для CalDAV не хранится. Поле ведётся у организатора и переносится в карточки участников: при создании встречи, при замене связанной задачи и при её очистке. Значение в карточке участника перезаписывается, только когда оно отличается от значения у организатора. |
| Статус (для участника) | Принять / Под вопросом / Отклонить. До выбора — «Неизвестно». Кнопки блокируются на время выполнения перехода. После того как переход выполнен, кнопка выбора текущего статуса исчезает, а кнопки остальных действий остаются доступны. Участник всегда может изменить решение — оставшиеся варианты остаются доступными |
| Описание | Текст |
| Файлы | Вложения |
Ссылка на конференцию и определение встречи. Если в поле «Место встречи» указан адрес конференции, по нему определяется, какая встреча связана с комнатой ВКС: страница конференции показывает авторизованному пользователю название встречи, время начала и окончания, а для повторяющейся встречи — время ближайшего повторения. Адрес распознаётся и в прямой форме, и в форме страницы портала (/conference?room=…); сравнение идёт по полному адресу, поэтому ссылка с похожим именем комнаты внутри другого адреса встречей не считается. Встречи внешних календарей (Exchange, CalDAV) в этом сценарии не участвуют.
Часовой пояс при создании встречи. Карточка, открытая из календаря, показывает дату и время в часовом поясе этого календаря: в календаре другого сотрудника — в поясе владельца, так же как на его сетке; в своём календаре и при создании из панели навигации или из задачи — в поясе из профиля пользователя. Под полями даты и времени выводится строка «Часовой пояс» со смещением от UTC на дату начала (например, «UTC+3»), если пояс календаря отличается от пояса пользователя или если пояс организатора или кого-то из сотрудников в «Участниках» отличается от пояса календаря либо не определён; когда пояс участника определить не удалось, открывается сообщение об ошибке загрузки. При сохранении встреча записывается как один момент времени, и каждый участник видит её в своём местном времени; события «весь день» по датам не сдвигаются. Часовой пояс в самой встрече не сохраняется: при изменении встречи время показывается в поясе пользователя.

Участники и их статусы¶
В карточке события рядом с основными полями выводится список участников с их ответами на приглашение: «Принял», «Под вопросом», «Отказался», «Не ответил». Создатель встречи отмечен как «Организатор». Если ответ не получен от календаря — например, участник добавлен внешним адресом — статус показывается как «Не указан».
Над списком — общее число участников и разбивка по ответам: приняли, под вопросом, не ответили, отказались, не указано. Список можно упорядочить по порядку добавления, по статусу или по алфавиту; выбранный порядок действует до закрытия карточки и не сохраняется. Сначала показываются первые десять участников, остальные раскрываются ссылкой «Показать все».
Поведение для отсутствий¶
При создании отсутствия в поле Участники автоматически указывается сотрудник, для которого регистрируется отсутствие (можно регистрировать для других при наличии прав, например HR за заболевшего). При создании из профиля пользователя в поле Уведомить автоматически добавляется его непосредственный руководитель и прямые подчинённые.
Текст чужого отсутствия показывается, только если у смотрящего есть доступ к задаче отсутствия; иначе вместо него выводится общая подпись о событии. Своё отсутствие владелец видит полностью. То же правило действует в мобильном приложении.
Состав отсутствия при разных уровнях доступа. Отсутствие чужого сотрудника в профиле, краткой информации, списке коллег и результатах поиска пользователей собирается по уровню доступа смотрящего к календарю владельца. Если доступа нет, запись не показывается вовсе. При уровнях «только занятость» и «тема и место» остаются период отсутствия и название состояния занятости, а текст отсутствия и список участников не показываются. При полном доступе выводится исходный текст отсутствия, а для отсутствия, созданного задачей, дополнительно показываются участники задачи; у отсутствия по встрече участники не показываются. Своё отсутствие владелец видит полностью.
Название состояния занятости берётся из того же справочника, что и в сетке календаря, поэтому совпадает с подписью встречи при том же уровне доступа.
Отсутствия в сигналах присутствия. Тот же состав данных приходит и в сигналах, которые обновляют статус коллеги без перезагрузки страницы, — «стал онлайн» и «печатает». Данные собираются отдельно для каждого получателя по его правам, поэтому один и тот же сигнал разным людям приходит с разным составом сведений.
Изменение события¶
Кто и как может менять уже созданное событие:
- Организатор переходит к редактированию встречи прямо из карточки просмотра — кнопкой с карандашом в панели действий. У участников этой кнопки нет.
- Список участников может менять только организатор.
- Сохранение встречи не сбрасывает ответы участников: если состав не менялся, каждый участник считается тем же, и его ответ на приглашение сохраняется — в том числе когда почта в карточке пользователя не заполнена или отличается от той, что записана у встречи.
- Организатор и каждый участник имеют отдельную карточку события в своём календаре.
- Изменения организатора синхронизируются с задачами всех участников.
- Изменения участника действуют только в его карточке (не у остальных). При сдвиге времени участником организатор получает уведомление.
- При удалении встречи организатором её копии в календарях других участников не удаляются: они отвязываются от встречи организатора и остаются у участников самостоятельными событиями.
- При синхронизации с Exchange у участника доступна кнопка «Предложить новое время» с двумя вариантами:
- Принять под вопросом и предложить другое время — при отказе организатора статус меняется на «Под вопросом».
- Отклонить и предложить другое время — при отказе статус «Отклонено» и удаление из участников.
- Кнопка «Ссылка на встречу» в режиме редактирования отображается, если поле «Место встречи» пустое.
- Перетаскивание: перенос карточки в календаре меняет дату и время. Если встреча повторяющаяся или в ней есть участники кроме организатора, система спрашивает подтверждение с новой датой — до подтверждения перенос не сохраняется.
При переносе отдельного вхождения повторяющейся встречи меняется только это вхождение — остальные встречи серии остаются на прежних датах; это относится и к первому вхождению, дата которого совпадает с началом серии.
Отменённые встречи¶
Отображаются серыми блоками с перечёркнутым названием. Карточка открывается только для чтения; в ней доступна кнопка «Удалить из календаря» (также через ПКМ по событию). В календарях других пользователей кнопка не отображается.
У отменённой повторяющейся встречи рядом появляется «Удалить ряд из календаря» (то же действие есть в контекстном меню события на сетке календаря) — она убирает из календаря участника все вхождения серии сразу, а не одно выбранное. Действие затрагивает только календарь того, кто его выполнил: организатор и остальные участники ничего не теряют. Убираются лишь те вхождения, которые организатор действительно отменил: вхождения той же серии, оставшиеся активными, остаются в календаре. Удалить ряд можно только у встречи, полученной от организатора и им же отменённой; во встроенном календаре 1Формы и в Exchange это поддерживается, у остальных источников — нет.

Вложения в карточке¶
Файлы — в блоке «Вложения». Если у пользователя нет права на редактирование и вложений нет — блок скрыт. При наведении справа: «Скачать всё одним архивом» и «Вложить файл». ПКМ по файлу — Скачать / Открыть в новой вкладке / Скопировать ссылку / Удалить. Офисные файлы открываются для просмотра в R7 / OnlyOffice.
Учёт трудозатрат¶
При назначении встречи участникам автоматически фиксируются плановые трудозатраты по времени встречи. По окончании встречи у тех, кто принял участие (статус «Принять»), фиксируются фактические трудозатраты.
8. Синхронизация с Outlook / Exchange¶
При включённой синхронизации события из 1Формы появляются в Outlook (и наоборот) в течение одной минуты. Изменения параметров встречи в одной системе отражаются в другой. Цвет встречи в Outlook соответствует значению поля «Показывать как» в карточке события.
Технические подробности синхронизации с Exchange — provider-ews.md.
Повторяющиеся события: правила синхронизации¶
Повторяющиеся встречи синхронизируются по особым правилам — изменение повтора в одной системе по-разному отражается в другой:
| Действие в системе-источнике | Эффект в системе-приёмнике |
|---|---|
| Снятие признака повтора в 1Форме | В Exchange признак повтора не снимается (событие остаётся повторяющимся) |
| Установка/изменение повтора в 1Форме | Новые созданные встречи в Exchange не синхронизируются |
| Снятие или изменение повтора в Outlook | В 1Форме соответствующие встречи отклоняются |
| Удаление ряда повторяющихся встреч в 1Форме | В Exchange они отклоняются |
| Установка повтора в Outlook | В 1Форме создаётся соответствующее повторение и связанные задачи |
При повторяющейся задаче с количеством повторов «Без ограничений» изначально создаётся фиксированное число повторов (по умолчанию 50, настраивается в общих настройках), затем встречи досоздаются ежедневно.
В ленту пользователю отправляется уведомление только при создании первого повторяющегося события — для последующих повторов сообщений не приходит.
При увольнении участника встречи (организатора или участника) встреча создаётся от имени служебного пользователя «Диспетчер задач»; в полях «Участники встречи» / «Организатор» указывается этот пользователь. Для уволенного встречи не создаются; уже созданные до увольнения остаются как есть.
Внешние пользователи¶
«Внешние» — те, кто не зарегистрирован в 1Форме, но имеет доступ к календарям Exchange.
Если встреча создаётся в Exchange:
- Организатор-внешний сотрудник → в 1Форме встреча ставится от служебного пользователя; в поле «Участники» — email внешнего; задача организатора не создаётся.
- Организатор — пользователь 1Формы с выключенной синхронизацией Exchange → организатором становится он, но задача организатора не создаётся.
- Участник-внешний сотрудник → в поле «Участники» указывается его email.
- Участник — пользователь 1Формы с выключенной синхронизацией → попадает в «Участники», но задача ему не ставится.
Если встреча создаётся в 1Форме:
- Внешний сотрудник не может быть организатором.
- Организатор с выключенной синхронизацией Exchange → встреча не создаётся в Exchange.
- Участник-внешний сотрудник → задача в 1Форме ему не ставится; при включённой синхронизации у организатора — встреча ставится только в Exchange.
- Участник 1Формы с выключенной синхронизацией → задача ставится в 1Форме; при включённой синхронизации у организатора — также ставится встреча в Exchange.
Письмо-приглашение внешнему участнику. При создании или изменении встречи в 1Форме внешнему участнику (его email указан в поле «Участники») на этот адрес отправляется письмо-приглашение: HTML-тело по шаблону и вложенный файл календаря .ics. В теле указываются название встречи, дата и время (для встречи «весь день» — только дата), описание и место проведения (если поле «Место» содержит ссылку — кликабельной, иначе текстом; при пустом поле блок не выводится). Подписи письма локализованы. Это относится к доставке приглашения по SMTP (работа с сервисами Exchange отключена либо синхронизация идёт по SMTP); при прямой синхронизации с Exchange приглашение отправляет сам Exchange, и шаблон 1Формы не применяется.
Приглашения на встречи только для чтения. Часть встреч приходит из Exchange приглашением, а не готовой встречей. Такое событие в 1Форме открывается только для просмотра: видны название, время, место, описание, организатор, участники, повторяемость и вложения, но кнопок ответа нет — принять, отклонить или предложить другое время можно в Outlook. Напоминание по такому событию не приходит, и связь с задачей у него не заполняется.
Чужое приватное приглашение не открывается вовсе. Если доступ к календарю коллеги ограничен, приглашение показывается урезанным — так же, как обычные встречи при том же уровне доступа.
9. Помощник по планированию¶
Позволяет подобрать время встречи, удобное для всех приглашённых участников.
Как открыть: кнопка «Помощник по планированию» в карточке создания встречи (категория типа «Календарь»).
Что отображается:
- Временная сетка с занятыми и свободными слотами каждого участника.
- При наведении на занятый слот — всплывающая подсказка с названием встречи из календаря пользователя.
- Участники отображаются с учётом их источника календаря (встроенный календарь 1Формы или Exchange).
Позволяет выбрать временной слот, в котором все участники свободны, и сразу использовать его для встречи.
Часовые пояса участников. Сетка строится в часовом поясе встречи: он берётся из параметра, с которым открыт помощник, а если параметра нет — из профиля текущего пользователя. Границы рабочего дня общие для всех — из настроек рабочего времени приложения, — но у каждого участника отсчитываются в его собственном поясе и уже потом проецируются на шкалу встречи. Поэтому у коллеги из другого пояса рабочее время смещено относительно шкалы, а нерабочее закрашено серым. Шкала по умолчанию охватывает часы с 8:00 до 20:00 и расширяется, если чьи-то рабочие часы или встречи выходят за эти границы.
Доступность и часовой пояс профиля. Свободные и занятые интервалы участника считаются в часовом поясе его профиля: рабочее окно из настроек приложения переводится в абсолютное время по этому поясу, поэтому при просмотре из другого пояса границы рабочего дня не смещаются, а интервалы совпадают с тем, что показывает Outlook за тот же период. Если сотрудник сменил часовой пояс в профиле, занятость пересчитывается автоматически: кеш сбрасывается, данные обновляются следом. Смена пояса, пришедшая из синхронизации с каталогом или из 1С, обрабатывается так же, как ручная правка профиля; если пояс не менялся, доступность не пересобирается.
Если часовой пояс участника определить не удалось, рядом с именем выводится «Часовой пояс неизвестен». Чужой пояс вместо него не подставляется: рабочие часы для такой строки не показываются, и выбрать по ней слот нельзя.
Выбор слота. Клик по свободному месту в строке участника выбирает часовой слот, который начинается с целого часа под курсором, и возвращает его в карточку встречи в часовом поясе встречи. Клик по занятому слоту слот не выбирает.
Выделенный интервал встречи. Если помощник открыт из формы, где у встречи уже заданы начало и окончание, её интервал рисуется на шкале каждой строки сплошной полосой основного цвета темы — он виден независимо от занятости участников. При наведении на полосу выводится подсказка «Новая встреча». Если время встречи не задано, полоса не отображается.
Продолжительность возвращаемого слота — та же, что была у встречи в форме; если ни начала, ни окончания в форме нет, слот занимает час. При переходе на другой день полоса переносится на этот день с тем же временем суток и той же продолжительностью. Клик по полосе выделенного интервала время не выбирает и помощник не закрывает.
Кнопка «Помощник по планированию» недоступна для встреч «Весь день» и для встреч, у которых начало и окончание приходятся на разные календарные дни: помощник подбирает время однодневной встречи.

Бизнес-правила¶
Работа календаря подчиняется нескольким общим принципам:
- Для каждой операции используется активный и доступный пользователю источник календаря.
- Изменения событий отражаются и во внешнем источнике, и в интерфейсе 1Формы.
- Производственный календарь является единой опорной моделью для нерабочих дней.
- Ошибки источника календаря не должны оставлять интерфейс в незаметно устаревшем состоянии.
- Фильтрация календаря категории:
- Все фильтры объединяются по принципу «И»
- Множественный выбор внутри одного ДП работает по принципу «ИЛИ»
- Настройки фильтров изолированы по категориям и пользователям
- В фильтрацию по ДП попадают только те параметры, на которые у пользователя есть права просмотра
- Экспорт в CSV учитывает все активные фильтры
Связи с другими доменами¶
Календарь опирается на смежные домены:
- tasks/business.md — встречи и события как задачи.
- integrations/business.md — внешние источники календаря (Exchange, CalDav).
- notifications/business.md — оповещения и счётчики.
Диагностика синхронизации и типичные ошибки настройки — в admin.md.