В условиях современной разработки или управления сервисными службами возникает необходимость не просто фиксировать задачи, а выстраивать их в четкую последовательность. В этой статье мы разберем, как на базе платформы 1С реализовать механизм электронной очереди, который позволит автоматически определять приоритетность работы и момент, когда сотрудник сможет приступить к выполнению нового задания.
Для начала проанализируем, какие объекты метаданных лучше всего подходят для нашей цели. В платформе 1С существует стандартный объект Задача, который тесно связан с бизнес-процессами. Однако для создания гибкой очереди одного этого объекта может быть недостаточно. Рассмотрим два подхода:
Задача, целесообразно использовать РегистрСведений. Назовем его, например, ОчередьЗадач.Разберем подробнее структуру регистра сведений для управления очередью. Нам понадобятся следующие измерения и ресурсы:
Пользователи) — кто выполняет задачу.Выясним, какой способ распределения задач будет наиболее эффективным для вашей команды. Проанализируем две основные стратегии:
Стратегия «Вытягивания» (Pull): Это классический вариант электронной очереди. Исполнитель, освободившись, нажимает кнопку «Взять следующую задачу». Система сама анализирует регистр и выдает наиболее приоритетную запись. Это исключает ситуацию, когда сотрудники выбирают задачи «попроще», игнорируя важные, но сложные задания.
Рассмотрим пример кода для получения следующей задачи из очереди:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ОчередьЗадач.Задача КАК Задача
|ИЗ
| РегистрСведений.ОчередьЗадач КАК ОчередьЗадач
|ГДЕ
| ОчередьЗадач.Исполнитель = &ТекущийПользователь
| И ОчередьЗадач.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗадач.ВТопке)
|УПОРЯДОЧИТЬ ПО
| ОчередьЗадач.Приоритет.Порядок ВОЗР,
| ОчередьЗадач.Порядок ВОЗР,
| ОчередьЗадач.ДатаПостановки ВОЗР";
Запрос.УстановитьПараметр("ТекущийПользователь", ПараметрыСеанса.ТекущийПользователь);
Результат = Запрос.Выполнить();
Стратегия «Проталкивания» (Push): В этом случае система автоматически назначает задачу на свободного сотрудника. Для реализации этого механизма нам потребуется регламентное задание, которое будет мониторить загрузку персонала.
Часто бывает так, что несколько задач имеют одинаковый высокий приоритет. Чтобы корректно выстроить их в ряд, мы внедрим понятие позиции в приоритете. Это числовой реквизит, который позволяет «двигать» задачи внутри одной группы важности. В Библиотеке Стандартных Подсистем (БСП) для этих целей часто используется реквизит РеквизитДопУпорядочивания.
Рассмотрим, как реализовать механизм «поднятия» задачи в очереди. Нам нужно изменить значение порядка текущей задачи и скорректировать позиции остальных задач в этой же группе приоритета. Это гарантирует, что очередь останется целостной.
Для руководителя важно понимать, когда очередь «рассосется». Проанализируем, как рассчитать плановое время завершения. Для этого каждой задаче при постановке в очередь необходимо назначать Плановую трудоемкость.
Логика расчета будет следующей:
Для визуализации этой информации идеально подходит объект ДиаграммаГанта. Посмотрим, как это выглядит на практике: по горизонтали — время, по вертикали — сотрудники. Задачи отображаются отрезками, длина которых соответствует трудоемкости. Так мы сразу увидим узкие места в нашей очереди.
Чтобы задачи с низким приоритетом не зависали в очереди вечно, внедрим механизм динамического веса. Мы можем использовать коэффициент ожидания: чем дольше задача находится в статусе «Ожидание», тем выше становится ее виртуальный приоритет.
Рассмотрим формулу расчета веса задачи:
Вес = (Приоритет * 100) + (ВремяОжиданияВМинутах / 60)
Используя такой подход в запросе к очереди, мы добьемся того, что спустя определенное время «старая» задача с низким приоритетом поднимется выше «свежей» задачи со средним приоритетом.
Эффективная электронная очередь невозможна без оперативных уведомлений. Разберем, как использовать СистемуВзаимодействия (1С:Диалог). Как только в очередь сотрудника попадает критическая задача или когда наступает его очередь выполнять следующее задание, система должна отправить push-уведомление прямо в интерфейс 1С.
Это минимизирует простои между выполнением задач. Исполнителю не нужно постоянно обновлять список или заглядывать в почту — платформа сама сообщит ему: «Ваша следующая задача готова к работе».
Мы рассмотрели комплексный подход к созданию электронной очереди в 1С. Реализация на базе РегистраСведений с использованием механизмов приоритезации и плановой трудоемкости позволяет создать прозрачную и управляемую систему. Помните, что ключевым фактором успеха является не только программный код, но и дисциплина заполнения данных о трудоемкости задач. Используйте графические инструменты платформы, такие как диаграммы Ганта и дашборды, чтобы сделать работу очереди наглядной для всей команды.