Расписание по дням

Сегодня я хочу познакомить вас с достаточно масштабной новинкой, только что появившейся в ваших аккаунтах. Без преувеличения скажу, что зачастую вокруг подобного функционала строится отдельно стоящий и вполне себе коммерчески успешный сервис. В случае с ПланФиксом это просто еще один тесно интегрированный с соседями “кирпичик”, но знатоки сразу оценят масштаб волны, которую можно оседлать с его помощью.

Расписание по дням - Новая волна использования ПланФикса

Речь идет о новом типе списка Планировщика под названием “Расписание по дням”, который поможет вам управлять расписанием почти любых объектов.


Как это выглядит и работает

Простой и всем понятный кейс — квартиры в посуточную аренду. Есть список квартир, есть календарь, нужно понимать по каждой квартире кому и на какие даты она сдана, а когда свободна:

Расписание квартир в посуточную аренду
кликните для просмотра в полном размере

В процессе разговора с потенциальным съемщиком видим свободные квартиры на интересующие его даты и их стоимость. Подобрав нужную, тут же выделяем диапазон дат, на которые ее хотят снять и оформляем бронирование:

Выбор дат для бронирования квартиры в аренду

В появившемся окошке выбираем клиента (или добавляем нового), фиксируем цену, о которой договорились, сумму залога и, по необходимости, другие поля:

Оформления данных брони квартиры, стоимость аренды, размер брони, данные клиента

Жмем “Создать” и видим наше бронирование в календаре:

Бронирование квартиры за клиентом в календаре броней

Цвет бронирования определяется его статусом и позволяет сразу увидеть, оплачен только залог или полная стоимость. Клик на бронирование вызывает карточку, в которой я настроил нужные мне поля:

Карточка бронирования квартиры в календаре

Если у вас включена интеграция с IP-телефонией, сразу из этой карточки можно позвонить клиенту и уточнить то, что вас интересует. Но главное тут даже не это, а то, что прямо в календаре у вас перед глазами есть вся нужная информация. По сути, «Расписание по дням» в данном случае представляет собой полностью самодостаточное рабочее место риелтора, занимающегося посуточной сдачей квартир.

Другой пример — распорядок работы техники. Примерно та же история: есть список техники с дополнительными реквизитами, есть календарь ее загрузки по дням:

Календарь загруженности техники на объектах

Тут же создаем задачи-наряды, определяем какая техника когда и на каких объектах занята. Все просто и наглядно.

Ну и еще один пример, чтобы разбавить квартирно-техническую тему — журнал учета посещаемости:

Журнал учета посещаемости в ПланФиксе

И снова все похоже, только вместо техники и квартир справочник учеников, да сетка помельче.

Думаю, этих примеров достаточно для того, чтобы составить первое представление. Давайте заглянем под капот и посмотрим, как устроен новый тип списка “Расписание по дням”.


Как это устроено

Давайте зайдем в планировщик “Бронирование квартир” и подробно рассмотрим параметры списка “Расписание по дням”.

Начнем с того, что пока этот список доступен только для задач. Блок настройки параметров отбора задач в расписание стандартный и не отличается от других списков Планировщика — вы можете указать в нем любые нужные условия. У меня это задачи, созданные по определенному шаблону:

Бронирование квартир - настройки планировщика

Дальше идет блок настроек самого расписания. Первым делом нужно указать, по какому полю оно будет строиться. У меня это поле задачи под названием “Бронь квартиры”. Оно имеет тип “Запись справочника” и оперирует справочником квартир. Тут же есть возможность отобразить дополнительные поля справочника. Зачастую это очень удобно — например, рядом с адресом квартиры я отобразил базовую стоимость ее аренды, чтобы ее всегда было видно в ходе работы с расписанием:

Настройка расписания по записям справочника

Следующая настройка определяет цветовое выделение блоков в расписании:

Выбор способа раскраски блоков в расписании: по статусу задачу или вручную

Я выбрал вариант “По статусу”, так как это позволяет хорошо различать в расписании бронирования, которые еще не оплачены.

Далее нам необходимо добавить строки, которые будут отображаться в расписании. В нашем примере это все квартиры, арендой которых мы управляем:

Настройка объектов, по которым строится расписание

Я знаю, что обязательно возникнет вопрос “А зачем их добавлять, пусть просто все записи справочника там отобразятся?” На это у нас есть стандартный ответ, и даже два:

  • Записей в справочнике может быть столько, что планировщик не сможет отобразить получившееся расписание.
  • Так у вас есть возможность управлять тем, какие записи справочника будут отображаться в расписании, а какие там не нужны.

Теперь давайте укажем, какие поля будут определять дату начала и окончания блока в расписании. Это могут быть как стандартные поля с датами начала и завершения задачи, так и любые добавленные вами поля типа “Дата”:

Расписание может строиться по произвольным полям-датам задачи

В моем примере даты хранятся в кастомных полях “Заезд” и “Выезд”. Эти названия понятны конечному пользователю и не пересекаются с датами начала и завершения задачи-бронирования, что тоже является плюсом. Например, реальное завершение задачи может происходить не тогда, когда клиент выезжает из квартиры, а когда все расчеты с ним завершены, деньги сданы в кассу и пройден внутренний контроль по подготовке квартиры ко въезду следующего постояльца.

Дальше идут стандартные настройки отображения календарной сетки и мини-карточки задачи, которые нет смысла отдельно рассматривать — они точно такие же, как и в других списках Планировщика.

В качестве дополнительной информации добавлю ссылки на скриншоты настроек двух других расписаний, которые приводил в качестве примеров выше:


Возможности и ограничения

  • Расписание может быть построено по полям типа “Список”, “Задача”, “Запись справочника”, “Набор значений справочника”, “Контакт”, “Сотрудник”, “Контрагент”, “Группа, сотрудник или контакт”, ”Список пользователей”.
  • Задачи в расписании можно перетаскивать по дням и изменять их длительность, просто потянув за край мышкой. А еще — перемещать между строками-объектами. То есть, простым перетаскиванием можно заменить бронь одной квартиры на другую, или заменить выбывший из строя погрузчик его “братом”. В полном соответствии с принципами Планировщика ПланФикса, соответствующее поле задачи при этом получит новое значение.
  • Новый тип списка “Расписание по дням” работает только для платных аккаунтов. Но при желании вы можете зарегистрировать новый аккаунт, в течение 30 дней бесплатно опробовать всякие варианты его использования и решить, имеет ли смысл переводить ваш основной аккаунт на платный тариф.

Вот такие новости. Потестируйте этого нового “зверя” в работе и напишите нам, что у вас получилось. Наверняка у вас появятся ситуации и идеи, которые потребуют доработок расписания — не держите их в себе, присылайте нам 🙂 Сообщения об ошибках мы тоже с благодарностью принимаем.

Кстати, мы с удовольствием опубликуем интересные кейсы применения Планировщика в нашей рубрике Рассказ от первого лица. Если у вас есть чем поделиться, присылайте свои рассказы в нашу Службу поддержки с соответствующей темой, сделаем интересную публикацию.

49 Comments

  1. Аватар

    Н-А-К-О-Н-Е-Ц — Т-О!!! Ура, спасибо команде Планфикса. У меня в прошлом году было 2 кейса и я споткнулся об отсутствие такого планировщика. Пришлось программировать всё самостоятельно через API. А теперь действительно, можно управлять занятостью любых объектов через такой планировщик. Очень хорошая новость!

      1. Аватар

        Пообщались с Олесей в Планфиксе…
        К сожалению, дело в том, что кастомные поля, имеющиеся в моих задачах на бронирование имеют тип «Дата и время», поэтому данный вид планировщика работает с ними неправильно.
        В-общем, самым чудесным-расчудесным вариантом был бы планировщик типа Timeline, который укрупнялся бы от дней до часов, тогда можно было бы решать не только «посуточные» кейсы, но и почасовые, более чем на одни сутки. Как, например, с прокатом автомобилей.
        Пожалуйста, доработайте этот функционал. Это будет просто огонь, когда заработает такой планировщик!

        1. Дмитрий Гончаренко

          Технически сложно совместить работу с днями и часами в одном планировщике, Андрей. Пока не беремся за такое. Но не думать об этом невозможно, конечно)

  2. Аватар

    Супер ! Спасибо, все работает но есть нюанс, возможно подскажете рещение ?
    Есть резервация на 4м номере http://prntscr.com/rzmxq8 С 20го по 27е
    Я перетаскиваю ее мышкой, на 3й номер как указано стрелкой.
    Как видено из расписания, последняя дата перетаскиваемой резервации, перехлестывается с первым днем другой резервации на 3м номере.
    В результате, планфикс автоматом делает смещение перетаскиваемой резервации на день раньше и на день раньше она заканчивается http://prntscr.com/rzmzvx
    Можно ли как то избежать этого, и либо не перемещать в таком случаеб либо либо задавать вопрос.
    Спасибо

    1. Дмитрий Гончаренко

      Спасибо за пример, обсудим что тут можно сделать. А для чего вообще перетаскивать резервацию «с перехлестом»?

      1. Аватар

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

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

        1. Дмитрий Гончаренко

          Хорошо, если речь идет сугубо об ошибочном перетаскивании, то разве человек, который перетащил и получил резервацию не на ожидаемый даты (с 19 по 26 вместо с 20 по 27 в Вашем примере) не увидит, что это не то, чего он хотел? Да еще и в другом объекте, скорее всего. И не перетащит сразу же на нужный объект/даты?

          1. Аватар

            Вы, право, очень высокого мнения о рядовых пользователях, Дмитрий. Мой личный опыт, увы, далек от вашего идеала.
            Я и сам, не сразу заметил что произошло, когда ставил эксперименты сегодня.
            Вероятнее всего, правильным рещением будет показывать при попытке переноса заадачи с перехлестом http://prntscr.com/rzqkfy выделять переносимый объект (наприимер красным) давая понять пользователю, что такой перенос не возможен, и в случае если пользователь это проигнорирует, не делать такого переноса.

        1. Дмитрий Гончаренко

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

  3. Аватар

    О! Прекрасное и давно ожидаемое представление.
    Через одно место можно реализовать было другим способом …
    Нужно потестировать.

    А как в расписание добавлять «ресурсы»? Например это переговорная комната. Но есть докладчики (сотрудники), выступающие (приглашенные) … есть клип-чарты и проекторы. Комнату забронировали. Добавили туда проектор и докладчика … А как понять что на это время они уже заняты и в другой комнате на это же время получить предупреждение?

    1. Дмитрий Гончаренко

      Тут у меня такие соображения:
      1. Управление ресурсами в классическом варианте это все же немного другая тема, со своей спецификой. Для такой работы нужен свой особый инструмент.
      2. Если пытаться решать задачу управления ресурсами текущими инструментами, то скорее всего для подобного примера лучше подходит почасовое расписание, а не расписание по дням.
      3. В этом примере сразу несколько ресурсов и управлять ими нужно в соответствующих планировщиках. То есть, отдельно видеть загруженность проектора в планировщике «Расписание проектора» и отдельно загруженность докладчика в его расписании. Смотреть на них глазами и искать компромиссы. Какую-то автоматизацию в плане поиска первого свободного окна для N объектов я пока не вижу. Предупреждение тоже не думаю, что получится выводить — это ведь обычные задачи/аналитики, тут нет какой-то особо хитрой логики «занятости объекта», кроме графического отображения на почасовой или календарной сетке. Что возвращает нас к пункту 1.

      1. Аватар

        Думаю вы неправы.
        Сложное управление ресурсами — да, нужен Майкрософт Project.

        Берем ваш же пример, заказ строительной техники, бульдозеров …
        Пусть в организации есть 5 бульдозеров.
        У них есть характеристики. Не все подходят под каждую задачу.

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

        Но бульдозеру нужен водитель! Это «ресурс». Бульдозер без водителя никому не нужен. Имеем расписание бульдозеров, но не имеем возможность указать ресурсы: водителей. А они болеют, имеют разную с квалификацию (права разной категории, а бульдозер с прицепом). Как управлять ресурсами?

        В результате такое расписание ждут многие и очень давно, спасибо … но как его применять без простых ресурсов? … Да никак … ((

        1. Дмитрий Гончаренко

          Примерно об этом я и написал в п.3 — только смотреть глазами в разных планировщиках, по бульдозерам отдельно, по водителями отдельно. Примерно таким образом мы решаем проблему управления расписанием учебных курсов, там нужно одновременно найти «окно» в незанятых аудиториях и преподавателя на это время. В том случае используется обычный почасовой календарь, но это вторично. Увидеть как это происходит, можно в этом видео https://www.youtube.com/watch?v=9HoNBotqRDo, начиная с 1:10.

  4. Аватар

    Круто! Нужный планировщик!

    И сразу пожелание
    Начал настраивать загрузку оборудования.
    Оборудование хранится в справочнике,
    В задаче, где оборудование используется, размещается ссылка на справочник.

    Строю расписание по дням.
    В строках хочу вывести оборудование.
    И сталкиваюсь с тем, что оборудование для отображения нужно набирать из справочника руками.
    При этом в этом месяце одно оборудование задействовано, а в следующем — то, которое сейчас используется будет простаивать, а использоваться — другое.
    Можно ли сделать, чтобы набор оборудования в строках планировщика формировался автоматически? Либо на основании всех неархивных записей справочника, либо по тем записям, которые задействованы в задачах, попадающих в планировщик.

    1. Дмитрий Гончаренко

      Спасибо, Сергей!
      На этот вопрос я попытался дать ответ в тексте поста, цитирую:
      —-
      Я знаю, что обязательно возникнет вопрос “А зачем их добавлять, пусть просто все записи справочника там отобразятся?” На это у нас есть стандартный ответ, и даже два:

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

      Так что в описанном примере придется каждый месяц корректировать планировщик — ну или делать копию и модернизировать ее на следующий месяц. Автоматического наполнения объектами в этом случае ждать не стоит, это «наворот на наворот», который и делать сложно, и разобраться в настройках потом мало кто сможет.

  5. Аватар

    Я поддерживаю просьбу о почасовой сетке из комментария Sergey Boychuk. Почасовое расписание не совсем удобно при планировании работы переговорных комнат. Возможно, для контроля занятости сотрудников — это Ок, но для других ресурсов не очень.
    Было бы отлично для выбора отображения День иметь возможность установить Шаг сетки — полчаса, час.

      1. Аватар

        Дмитрий, написала в службу поддержки задачку — Планировщик типа «Расписание».
        Там уже ранее задавала вопросы по Планировщику типа Расписание.
        Надеюсь на скорый ответ, т.к. тема очень важная.

    1. Дмитрий Гончаренко

      Это хороший вопрос, Виктор. Попробую ответить.

      Есть одно принципиальное преимущество, которое вытекает из идеологии ПланФикса: любой инструмент (и расписание по дням в частности) это не отдельный блок функционала, а тесно связанная с другими объектами системы штука. Попробую развернуть эту мысль, т.к. понимаю что без примеров непонятно.

      Когда в расписании фиксируется новый блок занятости, это не просто полоска — это новая задача. Соответственно, она автоматически получает все возможности, которые накоплены в ПланФиксе на этот момент:
      — Она будет отображена во всех других планировщиках, фильтрах, отчетах системы, в которые подойдет по условиям.
      — В ней можно будет общаться с коллегами и с клиентом.
      — В ней можно вести учет доходов и расходов, затраченного времени, сгоревших лампочек — в общем, всего, что понадобится конкретной компании в ее работе.
      — В ней можно обмениваться документами — ну или сгенерировать для клиента счет / карточку бронирования / договор / что нужно конкретно в Вашем случае.
      — В эту задачу можно добавлять напоминания, которые будут приходить нужным людям в нужное время по выбранным каналам связи.
      — На нее можно навешивать любую доступную автоматизацию при помощи автоматических сценариев. Например, создание брони будет сразу автоматически генерировать несколько других задач разным отделам и службам.
      — Сами задачи-бронирования также можно создавать не только вручную на календаре, но и автоматическими сценариями — и эти задачи будут точно так же отображаться в расписании, как и созданные вручную.
      — Ну и еще куча всего, что может ПланФикс и что невозможно перечислить в одном комментарии.

      Это важно, поэтому повторю основную мысль другими словами: ничего из этого мы не писали специально для расписания. Оно получило весь этот багаж возможностей автоматически, в момент «рождения», за счет идеологии ПланФикса, которая позволяет создавать очень сложные системы из очень ограниченного набора сущностей.

      Следующие блоки функционала, которые будут появляться в системе, точно также будут связаны с объектами системы и ее инструментами — в том числе с расписанием. И точно также причина будет не в том, что мы «навернем» их многочисленными связями, а во внутреннем устройстве ПланФикса, подчиненном определенной логике.

      Именно поэтому опытные пользователи ПланФикса позитивно встречают эту новость — они видят в ней не просто полоски на календаре, а возможности, которые открывает расписание в связке с остальным функционалом системы.

      1. Аватар

        Спасибо, Дмитрий. Очень уважаю вас за вдумчивые, спокойные ответы по существу. Человек устроен так, что он постоянно сравнивает и ищет лучшее. Я занимаюсь внедрением CRM и проектных систем и есть два хороших заказчика, которые сидят в Asana и Yougile (российская разработка) — знаете, что первое я услышал от обоих ЛПР, когда установил им Планфикс? «Тормозит». Я смотрел вашу конференцию разработчиков, где был подобный вопрос по скорости — но здесь ведь даже нюанс не в объеме БД и проектов (а аккаунты совсем пустые!) — суть в том, что даже в любых элементарных действиях — создать проект, задачу, контакт — Планфикс очень задумчив. CEO и ЛПРы привыкли к скорости и отзывчивости и вся дальнейшая демонстрация ваших возможностей перекрывается этим печальным фактом.

        1. Дмитрий Гончаренко

          Я не занимался прямым сравнением скорости выполнения типовых операций в разных системах, но вполне допускаю, что создание задачи или проекта в ПланФиксе может занимать чуть больше времени. Объясняется это обилием функционала и внутренней сложностью системы — мы даем управлять тем, что в других системах «железобетонно» и непоколебимо, но каждый такой «шарнир» требует ресурсов: запросов к базе, дополнительных строк кода, который должен отрабатываться при совершении действия и т.п.

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

  6. Аватар

    «О, алиллуйя! Демиурги меня услышали!!!» — подумал я, когда прочитал название этого поста. Ибо про этот «журнал учета посещаемости» службу поддержки замучил уже…. года три как? 🙂

    И теперь мы на один шаг ближе к моей мечте. Спасибо!

    Скажите, а планируете ли вы добавить возможность строить «расписание по дням» на основе аналитик, прикрепленных к задачам?
    Если да — тогда мечта бы исполнилась ))

    1. Аватар

      Этот тип планировщика строит расписание по полям. По аналитикам он строить не будет. Вам нужно или менять текущее хранение данных на поля или использовать планировщик «Расписание», которое оперирует аналитиками.

      1. Аватар

        Спасибо, Михаил, за ответ!
        Позвольте не согласиться с предлагаемыми вами решениям применительно к «Журналу учёта посещаемости».

        1. Изменение формата хранения данных.
        В подавляющем большинстве случаев посещаемость учеников гораздо эффективнее хранить в аналитиках. Честно говоря, очень сложно придумать ситуацию, когда для каждого отдельного урока для отдельно взятого ученика необходимо создавать отдельную задачу… При более-менее интенсивном учебном процессе возникнет просто огромное количество задач, которыми будет крайне неудобно оперировать (и наверняка создаст большую нагрузку на ПФ).

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

        2. Использование планировщика типа «Расписание» — подходит лучше. Ибо этот тип планировщика уже умеет отображать информацию из используемых нами аналитик. Но, к сожалению, делает это совсем в ином формате, нежели все привыкли видеть, как «журнал учёта посещаемости» и потому не пригоден к использованию 🙁

        Можно ли надеяться на то, что планировщик «Расписание» сможет отображать даты не «сверху вниз», как это сделано сейчас, а «слева направо» — именно так, как все уже давно привыкли видеть в многочисленных журналах.
        Т.е. так, чтобы даты располагались не в строках, а в колонках.

        Если да — то все образовательные учреждения были бы крайне благодарны команде Планфикса за исполнение их мечт )))

  7. Аватар

    А планируется реализация какого-то модуля, чтобы люди (не имеющие доступа к Планфиксу) могли заходить по ссылке и делать бронь на определенные часы? И чтобы они при этом видели, какие часы уже заняты.

    1. Дмитрий Гончаренко

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

      1. Аватар

        Просто этот вид намного удобнее. Наглядно видно сколько задач должны быть закончены в какой день. И можно их как перетаскивать на нужный период (и срок автоматически изменится) и наоборот — мышью дату перетянул и задача сама в нужные период перестроилась. И места меньше занимает.
        Другими инструментами можно, конечно, на скриншоте в сравнении — насколько расписание удобнее. https://prnt.sc/s98ivm

        1. Дмитрий Гончаренко

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

          Пример: на Вашем скриншоте есть задача «неделя» с датами с 27.04 по 03.05. При этом она находится в строке «Текущая неделя», но уже не является задачей на текущую неделю, т.к. затрагивает 2 соседние недели. И это не говоря уже о том, что совершенно непонятно что должно происходить при ее перетаскивании в другие строки получившегося расписания.

          1. Аватар

            с 27.04 по 03.05 это как раз текущая неделя. А вообще, Дмитрий, я пытаюсь сделать наглядную картину загруженности производственного цеха. Задачи все у него одинаковые, просто так видно, на какой день их приходится слишком много и можно сразу какой-то день «разгрузить» перетащив несколько задач на другой. Если «в копилке» есть более красивые и правильные идеологически решения — буду благодарен за указание нужного направления.

            1. Дмитрий Гончаренко

              >> Задачи все у него одинаковые, просто так видно, на какой день их приходится слишком много и можно сразу какой-то день «разгрузить» перетащив несколько задач на другой.

              — Вообще, Календарь задач лучше всего подходит для такой цели, на мой взгляд:
              — он показывает задачи в нужной детализации, от 1 дня до месяца;
              — видно, на какой день или дни приходится больше всего задач
              — можно тут же перетаскиванием менять загрузку.

              1. Аватар

                Спасибо, Дмитрий. Когда появляется новый функционал, уж очень хочется его как-то использовать даже тогда, когда это не оптимально. 🙂

  8. Аватар

    А можно ли сделать горизонтальную прокрутку по времени. То есть при наведении в шапку форму где указывается время, что бы время двигалось при скролинге?

Добавить комментарий