Направление работ: WebLk Код раздела: 5.2 Раздел: Заказы > Календарь Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 17.07.26


1. Назначение

Раздел обеспечивает партнеру календарное представление заказов и заявок по объектам и площадкам партнерской зоны.

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

Интерфейс использует объекты и площадки партнера, состав заказа и состояния заказа, определенные в Back-разделах 2.1 «Объекты партнеров», 2.2 «Площадки партнеров», 3.1 «Состав заказа» и 3.2 «Процессинг заказов».

2. Ключевые понятия

Календарь заказов — экран WebLk, на котором события партнерской зоны отображаются по времени, датам, объектам и площадкам.

Объект — объект партнера, площадки которого могут быть выбраны для отображения в календаре.

Площадка — площадка объекта партнера, для которой в календаре отображаются временные слоты и события.

Заказ — заказ партнера, содержащий данные о клиенте, дате и времени, стоимости, состоянии и связанных признаках.

Бронирование — форма заказа, которая резервирует временной слот и проходит основной процессинг.

Событие календаря — отображение заказа или бронирования в календарной сетке с доступными данными и индикаторами.

Новый заказ — заказ в процессе создания партнером. Такое событие календаря отображается выбранным и переходит в другое состояние после завершения создания заказа.

Заявка — форма заказа, работа с которой выполняется в отдельном сценарии WebLk 5.4.1.

Абонемент — сущность, связанная с карточкой абонемента в WebLk 5.5.2.

Источник заказа — канал создания заказа: «Мобильное приложение», «Каталог MUSbooking», «Виджет», «Внешние календари» или «Telegram бот».

Состояние заказа — текущее состояние заказа, обозначенное постоянным индикатором в событии календаря.

Заказ без статуса — заказ по интеграции или пустой заказ, созданный партнером для перекрытия временного слота. Такой заказ доступен для удаления через дополнительные действия.

3. Scope

Входит

S1: Календарь и переходы в другие разделы

S2: Варианты отображения: день, неделя и месяц

S3: Смена даты

S4: Справка по состояниям

S5: Удаление заказа без статуса

S6: Состояния экрана и адаптивы

Не входит

4. BR

Указаны в пункте 4 разделов Back: 2.1 Объекты партнеров, 2.2 Площадки партнеров, 3.1 Состав заказа и 3.2 Процессинг заказов.

5. Функциональные требования (UC + FR)

IDСценарийФункциональное требованиеBRВесСтатус
S1: FR5.2-1Партнер открывает раздел «Календарь»Интерфейс открывает календарь заказов партнерской зоны и показывает панель управления, календарную сетку, события календаря и постоянную строку состояний заказов.1Частично
OQ5.2-6
S1: FR5.2-2Партнер просматривает панель управления календаремИнтерфейс показывает выбор объектов и площадок, переключатели «День», «Неделя» и «Месяц», кнопки перехода к предыдущему и следующему периоду и отображение текущего периода или даты, по нажатию на которое открывается календарь выбора даты.

Интерфейс также показывает кнопку справки и кнопку дополнительных действий. При нажатии на кнопку дополнительных действий интерфейс показывает:
- «Горизонтальное отображение»;
- «Создать горящую репетицию»;
- «Удалить заказы без статуса».
1Частично
OQ5.2-1
S1: FR5.2-3Партнер переключает вариант отображения в панели управленияИнтерфейс отмечает выбранный вариант «День», «Неделя» или «Месяц» и перестраивает период, заголовки и события календаря без перехода в другой раздел.1Реализовано
OQ5.2-14
S1: FR5.2-4Партнер выбирает «Горизонтальное отображение»Интерфейс переводит партнера в WebLk 5.2.2 «Горизонтальное отображение».2Частично
OQ5.2-1
S1: FR5.2-5Партнер выбирает «Создать горящую репетицию»Интерфейс переводит партнера в WebLk 5.2.3 «Создание горящего предложения».1Не реализовано
OQ5.2-2
S1: FR5.2-6Партнер выбирает «Удалить заказы без статуса»Интерфейс запускает сценарий удаления заказов без статуса, описанный в S5.1Не реализовано
OQ5.2-2
S1: FR5.2-7Партнер открывает выбор объектов и площадокИнтерфейс позволяет выбрать все объекты и площадки. При выборе пункта «Все» интерфейс переводит партнера в WebLk 5.2.1 «Все объекты» и отображает площадки всех объектов.

Интерфейс позволяет выбрать пункт «Все» внутри отдельного объекта, чтобы отобразить все его площадки, либо выбрать несколько отдельных площадок.

При снятии выбора отдельной площадки интерфейс также снимает выбор соответствующего пункта «Все».

Интерфейс позволяет выполнить действие «Отменить выбор» и возвращает исходный набор выбранных площадок.
1Частично
OQ5.2-3
S1: FR5.2-8Партнер просматривает событие календаряИнтерфейс показывает в событии календаря доступные данные: имя клиента или наименование «Новый заказ», время начала и окончания, стоимость и индикатор состояния заказа.

Интерфейс также показывает индикатор источника заказа и, при наличии соответствующих данных, индикаторы информации о заказе.
1Частично
OQ5.2-4
S1: FR5.2-9Партнер просматривает источник и информацию о заказеИнтерфейс всегда показывает в событии календаря источник заказа и обозначает его одним из вариантов:
- «Мобильное приложение»;
- «Каталог MUSbooking»;
- «Виджет»;
- «Внешние календари»;
- «Telegram бот».

Интерфейс показывает информацию о заказе только при наличии соответствующих данных:
- комментарий;
- дополнительное оборудование;
- ограничения клиента;
- абонемент;
- оплата online.
2Частично
OQ5.2-4, OQ5.2-5
S1: FR5.2-10Партнер просматривает легенду состояний заказовИнтерфейс постоянно показывает в календаре легенду состояний заказов. Легенда сопоставляет визуальные индикаторы с состояниями «Без статуса», «Зарезервировано», «Частично оплачено», «Оплачено», «Выбрано» и «Закрытый заказ» и позволяет визуально определить состояние события календаря.1Частично
OQ5.2-6
S1: FR5.2-11Партнер выбирает свободный временной слотИнтерфейс создает событие календаря с пометкой «Новый заказ» и переводит партнера в WebLk 5.3.1 «Создание бронирования» с контекстом выбранных даты, времени и площадки.1Реализовано
OQ5.2-14
S1: FR5.2-12Партнер выбирает событиеИнтерфейс переводит партнера в WebLk 5.3.2 «Карточка заказа» для выбранного события календаря.1Реализовано
OQ5.2-14
S1: FR5.2-13Партнер выбирает заявкуИнтерфейс переводит партнера в WebLk 5.4.1 «Работа с заявкой и ее преобразование в заказ» для выбранной заявки.1Не реализовано
OQ5.2-7
S1: FR5.2-14Партнер выбирает абонементИнтерфейс переводит партнера в WebLk 5.5.2 «Карточка абонемента» для выбранного абонемента.1Не реализовано
OQ5.2-8
S2: FR5.2-15Партнер выбирает «День» в панели управленияИнтерфейс показывает выбранную дату со шкалой времени, индикатором текущего времени и группирует события календаря по выбранным объектам и площадкам.1Реализовано
OQ5.2-15
S2: FR5.2-16Партнер просматривает дневное отображение выбранных площадокИнтерфейс формирует колонки по выбранным объектам и площадкам. Заголовок объекта объединяет относящиеся к нему выбранные площадки, а события календаря остаются привязаны к своим площадкам и временным слотам. Ширина и количество видимых колонок адаптируются к составу выбора и доступной области экрана.1Реализовано
OQ5.2-15
S2: FR5.2-17Партнер просматривает дневное отображение с площадками, которые не помещаются на экранеИнтерфейс сохраняет доступ ко всем выбранным площадкам и событиям календаря через горизонтальную прокрутку календарной сетки.2Реализовано
OQ5.2-15
S2: FR5.2-18Партнер выбирает «Неделя» в панели управленияИнтерфейс показывает последовательность дней недели со шкалой времени и размещает события календаря в днях и временных слотах выбранной недели.1Реализовано
OQ5.2-15
S2: FR5.2-19Партнер просматривает недельное отображение выбранных площадокИнтерфейс перестраивает недельное отображение с учетом выбранных объектов и площадок, сохраняя привязку событий календаря к дням и временным слотам. Если данные не помещаются в доступной области экрана, интерфейс сохраняет доступ к ним через горизонтальную прокрутку.1Реализовано
OQ5.2-15
S2: FR5.2-20Партнер выбирает «Месяц» в панели управленияИнтерфейс показывает календарную сетку месяца с названиями дней недели, датами и событиями календаря внутри соответствующих дней.1Реализовано
OQ5.2-15
S2: FR5.2-21Партнер просматривает события в режиме месячного отображенияИнтерфейс изменяет вид событий календаря для месячной сетки, показывает количество заказов в соответствующих состояниях внутри дня и выделяет текущий день месяца.2Реализовано
OQ5.2-15
S3: FR5.2-22Партнер переходит к предыдущему или следующему периодуИнтерфейс изменяет дату на предыдущий или следующий день, неделю либо месяц в зависимости от выбранного варианта отображения и обновляет события календаря.1Реализовано
OQ5.2-14
S3: FR5.2-23Партнер нажимает на отображение текущего периода или датыИнтерфейс открывает календарь выбора даты поверх текущего экрана, показывает месяц, дни недели и доступные даты и отмечает сегодняшний день.

До выбора новой даты действие «Применить» неактивно, а действие «Сбросить» доступно.
1Частично
OQ5.2-9
S3: FR5.2-24Партнер выбирает датуИнтерфейс отмечает выбранную дату в календаре выбора даты. Действие «Применить» становится активным.1Реализовано
OQ5.2-9
S3: FR5.2-25Партнер нажимает «Сбросить»Интерфейс снимает сделанный выбор даты и возвращает календарь выбора даты в исходное состояние.2Не реализовано
OQ5.2-9
S3: FR5.2-26Партнер нажимает «Применить»Интерфейс закрывает календарь выбора даты, показывает примененную дату в панели управления и обновляет календарную сетку и события для выбранной даты или содержащего ее периода.1Частично
OQ5.2-9
S4: FR5.2-27Партнер открывает справкуИнтерфейс открывает боковую панель справки, сохраняя календарь доступным для просмотра.2Частично
OQ5.2-10
S4: FR5.2-28Партнер просматривает источники заказов в справкеВ блоке «Источники заказов» интерфейс показывает обозначения «Мобильное приложение», «Каталог MUSbooking», «Виджет», «Внешние календари» и «Telegram бот».2Не реализовано
OQ5.2-10
S4: FR5.2-29Партнер просматривает информацию о заказе в справкеВ блоке «Информация о заказе» интерфейс показывает обозначения «Содержит комментарий», «Доп. оборудование», «Клиент с ограничениями», «Абонемент» и «Оплачен online».2Не реализовано
OQ5.2-10
S4: FR5.2-30Партнер нажимает «Скрыть»Интерфейс закрывает боковую панель справки и возвращает календарю полную доступную область.3Не реализовано
OQ5.2-10
S5: FR5.2-31Партнер выбирает «Удалить заказы без статуса»Интерфейс затемняет текущий экран и показывает окно подтверждения с заголовком «Удалить заказы без статуса?», пояснением «Заказы интегрированные из других сервисов также будут удалены» и кнопками «Отменить» и «Подтвердить».1Не реализовано
OQ5.2-2
S5: FR5.2-32Партнер нажимает «Отменить»Интерфейс закрывает окно подтверждения без удаления событий календаря и возвращает партнера к календарю.2Не реализовано
OQ5.2-2
S5: FR5.2-33Партнер нажимает «Подтвердить»Интерфейс закрывает окно подтверждения, удаляет из текущего календаря заказы без статуса и обновляет показанные события.1Не реализовано
OQ5.2-2
S6: FR5.2-34Партнер открывает календарь, данные загружаютсяИнтерфейс показывает состояние загрузки, соответствующее выбранному варианту «День», «Неделя» или «Месяц», до отображения календарной сетки и событий.2Частично
OQ5.2-11
S6: FR5.2-35Партнер открывает календарь на экране другого размераИнтерфейс адаптирует страницу календаря, панель управления, календарную сетку, события календаря, справку и модальные окна для desktop, laptop, tablet и mobile.1Реализовано
OQ5.2-15

6. Открытые вопросы

Сверка с кодом: BRD 5.2 v0.1 · репозиторий musbooking_personal_account · commit d6f907bf / main · 26.07.26 · якорь features.fsd/order-calendar + widgets.fsd/order-calendar Сводка: 15 вопросов (Open 13 · Подтверждено 2) Важно: в репозитории две реализации календаря — устаревшая components/calendar/ и действующая FSD-версия. Страница /orders/calendar использует FSD-версию, сверка сделана по ней (см. OQ5.2-12). Маршрутизация без сверки с гайдбуком (гайдбук не передавался).

IDИсточникВопросКомуСтатусРекомендацииИтоговое решение
OQ5.2-1Код FR5.2-2, FR5.2-4Требование говорит: в панели управления есть кнопка справки и кнопка дополнительных действий с тремя пунктами — «Горизонтальное отображение», «Создать горящую репетицию», «Удалить заказы без статуса». В коде меню дополнительных действий нет вообще: в панели стоят четыре отдельные кнопки-тумблера — подсказки, «Использовать правила бронирования», «Горизонтальный режим» и переключатель «К списку заказов / К календарю». Горизонтальное отображение включается тумблером, а не пунктом меню, и в режиме «День» этот тумблер скрыт совсем. Кнопка подсказок показывается только на мобильном (при ширине окна меньше 640 пикселей), на десктопе справку открыть нечем. Отдельно: переключатель вариантов отображения подписан «Сегодня», «Неделя», «Месяц» — вместо «День» стоит «Сегодня». \ features.fsd/order-calendar/ui/Core/Controls.vue:32-58 (кнопки), :34 (справка только на мобильном), :45 (тумблер скрыт в режиме «День»), :128-132 (подписи)БизнесOpen(А) Привести код к BRD: собрать три действия в одно меню и вернуть справку на десктоп. Это заметная переработка панели, но два из трёх пунктов меню сейчас вообще отсутствуют (см. OQ5.2-2), так что делать её всё равно придётся. (Б) Признать текущую панель целевой и переписать FR5.2-2: тумблеры вместо меню. Тогда отдельно решите судьбу справки на десктопе — сейчас блок подсказок доступен только на узком экране, и это выглядит недосмотром, а не решением. Подпись «Сегодня» вместо «День» стоит поправить в любом случае: она вводит в заблуждение, потому что режим показывает выбранный день, а не обязательно сегодняшний.
OQ5.2-2Код FR5.2-5, FR5.2-6, FR5.2-31, FR5.2-32, FR5.2-33Требование говорит: из календаря можно создать горящую репетицию (раздел 5.2.3) и удалить заказы без статуса — с окном подтверждения «Удалить заказы без статуса?», пояснением про заказы из внешних сервисов и кнопками «Отменить» и «Подтвердить». В коде обеих возможностей нет: ни в действующей FSD-версии календаря, ни в устаревшей нет ни одного упоминания горящих предложений и ни одного упоминания удаления заказов без статуса — ни кнопки, ни окна подтверждения, ни запроса к бэкенду. Это пять требований раздела, три из которых веса 1. \ поиск по features.fsd/order-calendar и widgets.fsd/order-calendar совпадений не даётБизнесOpenПодтвердить, в каком состоянии находятся оба сценария: это ещё не реализованная функциональность (тогда раздел BRD описывает целевое состояние, и это стоит пометить прямо в требованиях) или они реализованы где-то за пределами календаря. Замечу, что на бэкенде горящие предложения есть — см. сверку Back 2.7.2, но с фиксированной скидкой 50% и только на текущие сутки; это стоит учесть при постановке задачи на кабинет. После ответа — тикет в Bitrix на реализацию, приоритет по весу требований.
OQ5.2-3Код FR5.2-7Требование говорит: в выборе объектов и площадок есть пункт «Все» (и для всех объектов, и внутри отдельного объекта), снятие выбора площадки снимает и соответствующий «Все», а действие «Отменить выбор» возвращает исходный набор площадок. В коде дерево выбора реализовано, пункты «Все объекты» и «Все площадки» есть, массовый выбор работает. А действия «Отменить выбор» (возврата к исходному набору) в компоненте нет — сбросить изменения одним действием нельзя. \ components/UI/filters/FilterTreeMenu.vue:498 (массовый выбор), :574 и :625 (пункты «Все»); действия отмены в компоненте не найденоБизнесOpen(А) Подтвердить требование — тогда доработка небольшая: запоминать набор на момент открытия меню и восстанавливать его по действию. (Б) Снять «Отменить выбор» из FR5.2-7, если партнёру достаточно снять галочки вручную. Уточните заодно, что считать «исходным набором» — состояние на момент открытия меню или сохранённый ранее выбор партнёра.
OQ5.2-4Код FR5.2-8, FR5.2-9Требование говорит: в событии календаря показываются индикаторы информации о заказе при наличии данных — комментарий, дополнительное оборудование, ограничения клиента, абонемент, оплата online. В коде из пяти индикаторов работает один: комментарий. Список дополнительных иконок жёстко возвращает пустой массив с пометкой «если нужны дополнительные иконки, добавить здесь», а признак ограничений клиента — константа «нет», поэтому значок ограничений не появится никогда, какие бы данные ни пришли. \ features.fsd/order-calendar/ui/Events/Event.vue:297-300 (пустой список иконок), :283 (константа ограничений), :52 и :92 (работающий значок комментария)РазработкаOpenЗавести тикет в Bitrix: подключить индикаторы к реальным данным заказа — оборудование, абонемент, оплата online, ограничения клиента. Продуктового выбора нет: требование описывает пять индикаторов, показывается один. Первым шагом уточнить у разработки, приходят ли эти признаки в модели заказа календаря: если нет, задача расширяется до правки запроса.
OQ5.2-5Код FR5.2-9Требование говорит: источник заказа обозначается одним из пяти вариантов — «Мобильное приложение», «Каталог MUSbooking», «Виджет», «Внешние календари», «Telegram бот». В коде источников семь, и набор не совпадает: кабинет партнёра, мобильное приложение, виджет, YClients, AppEvent, Google Календарь и каталог. Telegram-бота среди них нет, а «Внешние календари» из требования разложены на два отдельных источника (YClients и Google Календарь). В самом справочнике оставлен комментарий, что идентификаторы виджет-каталога и внешнего календаря «добавятся позже». \ composables/useSourceMapper.ts:5-14 (список источников и комментарий), :18-35 (соответствие числовых кодов)БизнесOpen(А) Привести BRD к коду (рекоменд.): перечислить фактические источники и решить, показывать ли YClients и Google Календарь по отдельности или объединять их подписью «Внешние календари» — второе ближе к тому, что нужно партнёру, и не требует правки справочника. (Б) Если заказы действительно приходят из Telegram-бота, нужен отдельный источник — это доработка и на бэкенде, и в кабинете; проверьте по разделу Телеграм бот, создаёт ли он заказы вообще или только уведомляет.
OQ5.2-6Код FR5.2-10, FR5.2-1Требование говорит: легенда постоянно показана в календаре и сопоставляет индикаторы с состояниями «Без статуса», «Зарезервировано», «Частично оплачено», «Оплачено», «Выбрано» и «Закрытый заказ». В коде легенда есть, но состав другой: «Без статуса», «Зарезервировано», «Оплачено полностью», «Оплачено частично», «Закрыто», «Отменено». Состояния «Выбрано» в легенде нет (хотя выделение выбранного события в коде реализовано), зато есть «Отменено», которого нет в требовании. Формулировки трёх состояний отличаются от BRD дословно. Кроме того, легенда скрыта на мобильном — там вместо неё выдвижная панель подсказок, то есть «постоянно показывает» выполняется только на широком экране. \ features.fsd/order-calendar/ui/Core/Root.vue:350-361 (состав легенды), :146 (скрытие на мобильном), features.fsd/order-calendar/ui/Events/Event.vue:278-280 (выделение выбранного события)БизнесOpen(А) Привести BRD к коду (рекоменд.): зафиксировать шесть фактических состояний с их названиями. Состояние «Отменено» в календаре нужно — партнёр должен отличать отменённый заказ от закрытого. (Б) Если «Выбрано» должно быть в легенде как отдельная строка — это правка на один элемент. Отдельно подтвердите поведение на мобильном: панель подсказок вместо постоянной легенды выглядит осознанным решением, но в FR5.2-1 и FR5.2-10 оно не описано.
OQ5.2-7Код FR5.2-13Требование говорит: выбор заявки в календаре переводит партнёра в раздел 5.4.1 «Работа с заявкой». В коде заявки в календаре не реализованы: список заявок — это функция, всегда возвращающая пустой массив с комментарием «пока просто пустой массив, до реализации», а обработчик выбора заявки только пишет в журнал «Заявки пока не реализованы» и ничего не делает. Компоненты отображения заявок при этом написаны и подключены во все виды календаря — они просто никогда не получают данных. \ features.fsd/order-calendar/ui/Core/Root.vue:389 (пустой список), :405-407 (заглушка обработчика), :59-141 (подключение компонентов заявок)РазработкаOpenЗавести тикет в Bitrix: подключить заявки к календарю — загрузку и переход в карточку заявки. Продуктового выбора нет, требование веса 1. Уточнить у разработки, есть ли готовый метод получения заявок для периода: компоненты отображения уже написаны, поэтому работа может свестись к загрузке данных. До реализации стоит понимать, что партнёр сейчас не видит заявки в календаре вообще.
OQ5.2-8Код FR5.2-14Требование говорит: выбор абонемента в календаре переводит партнёра в 5.5.2 «Карточка абонемента». В коде абонементов в календаре нет ни в каком виде: ни отдельного типа события, ни признака у заказа, ни перехода — поиск по действующей и устаревшей реализациям календаря не даёт ни одного совпадения. Отмечу, что индикатор «Абонемент» в событии тоже не выводится (см. OQ5.2-4). \ поиск по features.fsd/order-calendar и widgets.fsd/order-calendar совпадений не даётБизнесOpenПодтвердить, как абонемент должен выглядеть в календаре: отдельным событием, признаком у обычного заказа или он туда вообще не попадает. От ответа зависит объём: во втором случае достаточно индикатора и перехода из карточки заказа, в первом — это новый тип события со своей загрузкой. Вопрос логично закрыть вместе с OQ5.2-4, где речь про индикатор абонемента в событии.
OQ5.2-9Код FR5.2-23, FR5.2-25, FR5.2-26Требование говорит: по нажатию на текущий период открывается календарь выбора даты с действиями «Применить» (неактивно до выбора) и «Сбросить»; «Применить» закрывает календарь и обновляет сетку. В коде календарь выбора даты открывается и дату выбрать можно, но кнопок «Применить» и «Сбросить» в компоненте нет — выбранная дата применяется сразу, без подтверждения, и сбросить выбор отдельным действием нельзя. \ components/UI/fields/DateInput.vue (компонент выбора даты; действий «Применить»/«Сбросить» не найдено), features.fsd/order-calendar/ui/Core/Controls.vue:24-30 (подключение)БизнесOpen(А) Признать текущее поведение целевым (рекоменд.): применение по выбору даты — на один клик короче и привычнее; тогда FR5.2-23, FR5.2-25 и FR5.2-26 переписываются под него, а FR5.2-24 остаётся как есть. (Б) Если подтверждение нужно (например, чтобы не дёргать загрузку на каждый клик) — это доработка компонента выбора даты, и она затронет все места, где он используется, не только календарь.
OQ5.2-10Код FR5.2-27, FR5.2-28, FR5.2-29, FR5.2-30Требование говорит: справка открывается боковой панелью, содержит блоки «Источники заказов» и «Информация о заказе» с перечисленными обозначениями и закрывается действием «Скрыть». В коде справка есть только как выдвижная панель на мобильном (кнопка подсказок показывается при ширине меньше 640 пикселей, см. OQ5.2-1). Блоков «Источники заказов» и «Информация о заказе» в ней нет — в календаре выводится только легенда состояний заказов; действия «Скрыть» тоже нет. \ features.fsd/order-calendar/ui/Core/Controls.vue:33-38 (кнопка только на мобильном), features.fsd/order-calendar/ui/Core/Legend.vue (только состояния)БизнесOpenРешать вместе с OQ5.2-1 и OQ5.2-6 — это один и тот же узел. Если справка нужна на десктопе, то её содержимое (источники и индикаторы информации) имеет смысл делать после OQ5.2-4 и OQ5.2-5: объяснять в справке значки, которые не выводятся, бессмысленно. Порядок работ: сначала индикаторы, потом справка.
OQ5.2-11Код FR5.2-34Требование говорит: при загрузке показывается состояние, соответствующее выбранному варианту «День», «Неделя» или «Месяц». В коде скелетоны есть, но они общие: одна заглушка панели управления и одна заглушка сетки, одинаковые для всех трёх режимов. Кроме того, на странице календаря объявлено отдельное вычисляемое состояние загрузки сетки — с проверкой готовности баз и статусов запросов — но в разметке оно не используется: показ скелетона завязан только на готовность пользователя и партнёрской зоны. \ pages/orders/calendar.vue:5-13 (общие скелетоны), :91-123 (неиспользуемое состояние загрузки сетки), :72-80 (фактическое условие)РазработкаOpenЗавести тикет в Bitrix: либо задействовать уже написанное состояние загрузки сетки, либо удалить его как мёртвый код. Различать скелетоны по режиму — вопрос к дизайну: если разница только в разметке сетки, это дешёвая правка, и её стоит сделать заодно. Практическое следствие текущего кода: сетка показывается до того, как загрузились заказы, поэтому партнёр видит пустой календарь и потом появляющиеся события.
OQ5.2-12Код вне BRDПроблема: в репозитории две параллельные реализации календаря — устаревшая в components/calendar/ (около 10 600 строк) и действующая FSD-версия в features.fsd/order-calendar/ (около 15 100 строк). Обе содержат одинаковый набор файлов: панель управления, легенду, виды «День», «Неделя», «Месяц», горизонтальный режим, события и заявки. Страница /orders/calendar использует FSD-версию, поэтому сверка сделана по ней, но устаревшая версия остаётся в сборке и отличается по поведению — например, в ней тумблер горизонтального режима виден всегда, а в FSD-версии скрыт в режиме «День». \ pages/orders/calendar.vue:16 и :28 (используется FSD-версия), components/calendar/Core/Controls.vue против features.fsd/order-calendar/ui/Core/Controls.vueРазработкаOpenЗавести тикет в Bitrix на техуборку: удалить устаревшую реализацию, если миграция завершена, либо явно пометить её как устаревшую и назначить срок удаления. Продуктового выбора нет. Это важно не только для сборки: при следующей сверке или доработке легко открыть не тот файл — названия компонентов совпадают, а поведение расходится.
OQ5.2-13Код вне BRDЧто нашли: в панели управления есть две кнопки, которых нет в BRD. Первая — тумблер «Использовать правила бронирования»: судя по названию и по тому, что рядом лежит отдельный модуль проверки правил на 736 строк, он включает проверку заказа по правилам бронирования прямо в календаре. Вторая — переключатель между списком заказов и календарём («К списку заказов» / «К календарю»), который просто меняет адрес страницы. В BRD на этом месте описана кнопка справки и кнопка дополнительных действий. \ features.fsd/order-calendar/ui/Core/Controls.vue:39-43 (правила бронирования), :51-57 и :75-81 (переключение страниц), features.fsd/order-calendar/composables/useOrderValidation.ts (модуль проверки правил)БизнесOpenПодтвердить обе кнопки и внести их в FR5.2-2. По правилам бронирования отдельно уточните, что означает выключенное состояние тумблера: партнёр может создать заказ в обход правил или проверка просто не подсвечивается в сетке — это разные вещи, и вторая безобидна, а первая требует описания в BRD. Переключатель «К списку заказов» — навигация между разделами, его достаточно упомянуть одной строкой.
OQ5.2-14Код FR5.2-3, FR5.2-11, FR5.2-12, FR5.2-22Что подтверждено: переключение между вариантами отображения перестраивает календарь без перехода на другую страницу; выбор свободного слота создаёт новое событие и открывает форму создания заказа с контекстом даты, времени и площадки; выбор события открывает карточку заказа; стрелки «назад» и «вперёд» листают период в соответствии с выбранным режимом. \ features.fsd/order-calendar/ui/Core/Controls.vue:16-22 и :134-… (смена режима), features.fsd/order-calendar/ui/Core/Root.vue:995-1000 (создание заказа), :506-532 (открытие карточки заказа), components/UI/fields/DateInput.vue:17-24 и :44-51 (стрелки периода)ПодтвержденоРасхождения нет.
OQ5.2-15Код FR5.2-15FR5.2-21, FR5.2-35Что подтверждено: все три варианта отображения реализованы отдельными компонентами — день, неделя и месяц, плюс отдельный вариант недели для мобильного и горизонтальный режим. Дневной и недельный виды строят колонки по выбранным объектам и площадкам со шкалой времени и горизонтальной прокруткой, месячный — сетку дней с событиями внутри дня. Адаптивность заложена в панели управления и в самих видах: разметка перестраивается на ширинах 940, 640 и 480 пикселей, для мобильного есть отдельные компоненты и выдвижные панели. \ features.fsd/order-calendar/ui/Views/ (Day.vue, Week.vue, Month.vue, MobileWeek.vue, Horizontal.vue), features.fsd/order-calendar/ui/Grid/ (сетка и заголовки), ui/Core/Controls.vue:87-136 (адаптивная разметка панели)ПодтвержденоРасхождения нет.

Подстраницы