База знаний Appliner
Календарь
С помощью компонента “Календарь” пользователь может создавать, редактировать и просматривать события. Это может быть полезно для планирования встреч, поставок, выставок, собраний и любого типа задач.

Для работы с компонентом необходимо предварительно подготовить структуру данных. Данная структура будет выступать источником/хранилищем данных о задачах. А так-же связью с карточками (создания, редактирования, просмотра) в соответствии с типом задачи. Задачи могут иметь произвольный тип, заданный разработчиком ФП. Например: звонок, встреча, поставка, выставка и т.д..
Структура данных
Таблица “Задачи” «tasks». Содержит информацию о задачах
| № | Наименование | Описание | Тип |
| 1 | title | Заголовок задачи | Короткий текст |
| 2 | start_date | Дата/ время начала задачи | Дата и время |
| 3 | end_date | Дата/ время завершения задачи | Дата и время |
| 4 | duration | Продолжительность задачи | Целое число |
| 5 | description | Описание задачи | Многострочный текст |
| 6 | type | Тип задачи | Связь с таблицей (Многие к Одному) Типы задач |
| 7 | tasks_status | Статус задачи | Связь с таблицей (Многие к Одному) Статусы |
| 8 | calendars | Календари | Связь с таблицей (Многие ко Многим) Календари |
| 9 | priority | Приоритет задачи | Связь с таблицей (Многие к Одному) Приоритеты задач |
| 10 | color | Цвет задачи * | Короткий текст |
| 11 | all_day | Признак того что событие продлится весь день | Логический |
| 12 | implementer | Исполнитель задачи | Короткий текст |
| 13 | author | Автор задачи | Короткий текст |
Таблица “Типы задач” «tasks_type». Содержит информацию о типах задача
| № | Наименование | Описание | Тип |
| 1 | type_name | Название типа задачи | Короткий текст |
| 2 | description | Описание | Многострочный текст |
| 3 | tasks | Список задач | Связь с таблицей (Один ко Многим) Задачи |
| 4 | color | Цвет отображения типа * | Короткий текст |
| 5 | icon | Иконка для отображения типа | Короткий текст |
Таблица “Статусы задач” «tasks_status». Информация о статусах
| № | Наименование | Описание | Тип |
| 1 | title | Название статуса | Короткий текст |
| 2 | description | Описание | Многострочный текст |
| 3 | tasks | Список задач | Связь с таблицей (Один ко Многим) Задачи |
| 4 | color | Цвет отображения * | Короткий текст |
| 5 | icon | Иконка для отображения | Короткий текст |
| 6 | sequence_number | Порядковый номер статуса | Целое число |
Таблица “Приоритеты задач” «tasks_priority»
| № | Наименование | Описание | Тип |
| 1 | title | Название статуса | Короткий текст |
| 2 | description | Описание | Многострочный текст |
| 3 | tasks | Список задач | Связь с таблицей (Один ко Многим) Задачи |
| 4 | color | Цвет отображения * | Короткий текст |
| 5 | icon | Иконка для отображения | Короткий текст |
| 6 | sequence_number | Порядковый номер приоритета (чем меньше, тем выше приоритет) | Целое число |
Таблица “Календари” «calendars». Группа календарей
Таблицасодержит информацию о календарях. Служит источником данных для компонента “Календарь”. В качестве источника может быть выбрано несколько моделей данных с календарями.
| № | Наименование | Описание | Тип |
| 1 | title | Название | Короткий текст |
| 2 | description | Описание | Многострочный текст |
| 3 | tasks | Список задач | Связь с таблицей (Многие ко Многим) Задачи |
| 4 | color | Цвет отображения * | Короткий текст |
| 5 | icon | Иконка для отображения | Короткий текст |
| 6 | author | Автор календаря | Короткий текст |
* Для заполнения полей с именем “color” (цвет) следует использовать шестнадцатеричный код цвета (#FF00FF). Таблица HTML цветов: https://colorscheme.ru/html-colors.html
Добавление компонента на страницу

Создание, редактирование, удаления события
Добавление новой задачи
Для добавления новой задачи необходимо:
- предварительно подготовить страницу в Конструкторе форм;
- на странице разместить компонент добавления новой записи (например: “Форма”);
- выбрать в качестве источника, таблицу содержащую данные о задачах
- далее, в Настройках – выпадающий список: “Страница создания” компонента “Календарь”, выбрать нужную страницу.
Теперь, при щелчке в области календаря или кнопке “Добавить событие”, будет открываться фрейм с указанной страницей создания новой задачи.
Если настройки “Страницы создания” и/или “Страницы редактирования” (см. далее) оставить не заполненными, то будет открываться окно создания/ редактирования события “по умолчанию” (с минимальным набором редактируемых полей).

В настройках компонента можно задать размер фрейма в пикселях.
Редактирование задачи
Для редактирования задачи из Календаря выполните следующие действия:
- Создайте страницу с компонентами для редактирования записи в таблице (например: “Форма”). Добавьте параметр страницы с именем “id” (обязательно). В этот параметр будет передаваться идентификатор задачи. Страниц может быть несколько. Допустим если необходимо для каждого типа задачи открывать уникальную страницу редактирования;
- Создайте процедуру, которая в качестве выходного параметра будет возвращать ключ страницы редактирования. Наименование выходного параметра, например: “pageKey”. На вход процедуры, в параметр “id”, передаётся идентификатор задачи;
- Процедура должна возвращать ключ страницы в зависимости от условия. Например: для разного типа задач “Встреча” или “Поставка товара на склад” будет открываться уникальная страница редактирования.
4. В настройках компонента “Календарь” выберите созданную процедуру: Настройки → Настройки → Страница редактирования

Вид календаря: “Мини”
В настройках компонента “Календарь” выберите: Настройки → Вид календаря → Мини

Настройка повторяющихся событий
Для создания повторяющегося события заполните поле recurrence_rule в таблице-источнике задач

Инструкция: как задать правило повторения события
Поле recurrence_rule определяет, как часто и каким образом событие повторяется. Вы можете использовать простые слова для базовых случаев или полный формат iCalendar (RFC 5545) для гибкой настройки.
1. Простой способ (для частых случаев)
Если вам нужно стандартное повторение, просто укажите одно из слов:
| Значение | Что получится |
|---|---|
daily |
каждый день |
weekly |
каждую неделю |
monthly |
каждый месяц |
yearly |
каждый год |
2. Полный формат (гибкая настройка)
Используйте параметры через точку с запятой. Обязателен параметр FREQ:
text
FREQ=…; параметр2=…; параметр3=…
2.1 Базовая частота (FREQ)
| Значение | Описание |
|---|---|
FREQ=DAILY |
каждый день |
FREQ=WEEKLY |
каждую неделю |
FREQ=MONTHLY |
каждый месяц |
FREQ=YEARLY |
каждый год |
2.2 Интервал повторения (INTERVAL)
Позволяет пропускать дни, недели, месяцы:
| Пример правила | Что получится |
|---|---|
FREQ=DAILY;INTERVAL=2 |
каждые 2 дня |
FREQ=WEEKLY;INTERVAL=2 |
каждые 2 недели |
FREQ=MONTHLY;INTERVAL=3 |
каждые 3 месяца |
2.3 Выбор конкретных дней недели (BYDAY)
Коды дней: MO TU WE TH FR SA SU
| Пример правила | Что получится |
|---|---|
FREQ=WEEKLY;BYDAY=MO |
каждый понедельник |
FREQ=WEEKLY;BYDAY=MO,WE,FR |
понедельник, среда, пятница |
FREQ=WEEKLY;BYDAY=SA,SU |
суббота и воскресенье |
FREQ=MONTHLY;BYDAY=1MO |
первый понедельник месяца |
FREQ=MONTHLY;BYDAY=-1FR |
последняя пятница месяца |
2.4 Выбор конкретных чисел месяца (BYMONTHDAY)
| Пример правила | Что получится |
|---|---|
FREQ=MONTHLY;BYMONTHDAY=1 |
1-го числа каждого месяца |
FREQ=MONTHLY;BYMONTHDAY=15 |
15-го числа каждого месяца |
FREQ=MONTHLY;BYMONTHDAY=-1 |
последний день каждого месяца |
2.5 Выбор конкретных месяцев (BYMONTH)
| Пример правила | Что получится |
|---|---|
FREQ=YEARLY;BYMONTH=1;BYMONTHDAY=1 |
1 января каждого года |
FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=31 |
31 декабря каждого года |
2.6 Ограничение количества повторений (COUNT)
| Пример правила | Что получится |
|---|---|
FREQ=DAILY;COUNT=5 |
5 дней подряд (начиная с даты события) |
FREQ=WEEKLY;BYDAY=MO;COUNT=10 |
10 понедельников |
2.7 Окончание по дате (UNTIL)
Дата указывается в формате ГГГГММДД.
| Пример правила | Что получится |
|---|---|
FREQ=DAILY;UNTIL=20251231 |
каждый день до 31 декабря 2025 года |
FREQ=WEEKLY;BYDAY=MO;UNTIL=20251231 |
каждый понедельник до 31 декабря 2025 года |
3. Сложные примеры (всё вместе)
| Пример правила | Что получится |
|---|---|
FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,FR |
каждые две недели по понедельникам и пятницам |
FREQ=MONTHLY;BYDAY=1MO;COUNT=12 |
первый понедельник каждого месяца, всего 12 раз |
FREQ=YEARLY;BYMONTH=9;BYMONTHDAY=1 |
1 сентября каждого года |
FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR |
каждый рабочий день (пн–пт) |
Важные замечания
Если вы указываете полный формат, не смешивайте его с простыми значениями (daily, weekly и т.д.) – выберите что‑то одно.
Параметры BYDAY, BYMONTHDAY, BYMONTH можно комбинировать в одном правиле.
COUNT и UNTIL нельзя использовать одновременно – выберите одно ограничение.
При указании дней недели в месячном повторении (FREQ=MONTHLY;BYDAY=1MO) число (1, 2, -1) означает номер недели в месяце.
Теперь вы можете составить любое правило повторения для вашего календаря.