Разработка и Конфигурация · 12 мин
Как работают задачи в 1С 8
Как устроены задачи в 1С 8: связь с бизнес-процессами, адресация исполнителей, формирование и выполнение задач, типовые ошибки и практические советы.
Задачи в 1С 8 — это отдельный тип объектов конфигурации, предназначенный для организации работы пользователей: поручений, согласований, этапов бизнес-процессов. В отличие от документов и справочников, задача описывает не факт хозяйственной деятельности, а действие, которое должен выполнить конкретный сотрудник или группа сотрудников.
Механизм задач тесно связан с механизмом бизнес-процессов: типовой сценарий выглядит так — бизнес-процесс стартует, движется по карте маршрута и в точках действия автоматически создаёт задачи исполнителям. Пользователь видит задачу в своём списке, открывает её, выполняет требуемое действие и отмечает выполнение — после чего процесс движется дальше.
Понимание того, как устроены задачи, нужно и разработчику, который строит схему согласования, и администратору, который разбирается, почему у пользователя «зависла» задача или почему поручение ушло не тому сотруднику. Ниже разобраны устройство объекта, адресация, жизненный цикл и типовые проблемы.
Что такое объект «Задача» и чем он отличается от других объектов
Задача — прикладной объект конфигурации со своими реквизитами, табличными частями, формами и макетами. Как и документ, задача существует в базе данных как запись с уникальной ссылкой, имеет дату и номер, может быть помечена на удаление. Но есть принципиальные отличия.
Во-первых, у задачи есть предопределённые системные свойства: «Выполнена» (булево), «БизнесПроцесс» (ссылка на породивший её процесс), «ТочкаМаршрута» (точка карты, в которой она создана). Во-вторых, задачи не проводятся и не делают движений по регистрам в типовом смысле — хотя разработчик может программно записывать данные при выполнении задачи. В-третьих, именно к задачам привязан механизм адресации: роли и параметры адресации определяют, кто увидит задачу в своём списке.
Один вид задач в конфигурации может обслуживать несколько видов бизнес-процессов. Например, типовая задача «Задача исполнителя» в конфигурациях на БСП (библиотека стандартных подсистем) используется для согласования, ознакомления, поручений и других процессов одновременно — различие задаётся через реквизиты и точку маршрута.
Как устроена карта маршрута и где рождаются задачи
Карта маршрута бизнес-процесса — это графическая схема в конфигураторе, состоящая из точек и соединяющих их линий. Основные виды точек: старт, завершение, точка действия, точка условия (ветвление по значению реквизита), точка разделения (параллельные ветки), точка слияния (ожидание завершения параллельных веток), точка обработки (выполнение произвольного кода без создания задачи).
Задачи создаются только в точках действия. Когда выполнение процесса доходит до такой точки, система автоматически формирует объект задачи, заполняет реквизиты по настройкам точки и определяет адресатов. В свойствах точки действия указывается, какой вид задач создавать, как заполнять её реквизиты и как адресовать.
Важно понимать: процесс не «ждёт» в привычном смысле. После создания задачи исполнение маршрута приостанавливается на уровне логики — точка маршрута остаётся активной, пока все созданные в ней задачи не будут выполнены. Только после этого процесс переходит к следующей точке.
Адресация: как система определяет исполнителя
Адресация задач строится на ролях исполнителей и параметрах адресации. Роль — объект конфигурации (например, «Согласующий бухгалтерии»), а параметры адресации — характеристики, уточняющие контекст: подразделение, организация, склад. Сопоставление конкретных пользователей ролям обычно хранится в регистре сведений «Исполнители задач» (название может отличаться в конкретной конфигурации).
Когда процесс создаёт задачу, он заполняет реквизиты адресации: роль и значения параметров. Пользователь видит задачу в своём списке, если он назначен исполнителем по этой роли с совпадающими параметрами. Если роль назначена нескольким сотрудникам подразделения, задачу видят все они — и после выполнения одним из них она, как правило, исчезает у остальных (зависит от реализации).
Типовая ошибка настройки — незаполненный регистр исполнителей. Процесс стартует, задача создаётся, но её не видит никто: роль существует, а пользователей по ней не назначено. Второй симптом той же группы — задачу видит лишний сотрудник, потому что в регистре указана роль без уточняющего параметра адресации (например, без подразделения).
Как проверить адресацию
По роли и параметрам адресации назначен хотя бы один активный пользователь
Записей нет или пользователь помечен как недействительный — задачи «повиснут»
Подразделение/организация в задаче совпадают с тем, что указано у исполнителя в регистре
Значения не совпадают — задачу видит не тот сотрудник или никто
Новая задача появляется в списке сразу после старта процесса
Задача есть в общем списке, но у исполнителя не отображается
Жизненный цикл задачи: от создания до выполнения
Стандартный цикл выглядит так. Пользователь или регламентное задание стартует бизнес-процесс. Процесс доходит до точки действия — создаётся задача с датой, номером, заполненными реквизитами и адресацией. Исполнитель открывает задачу из списка «Мои задачи», видит предмет (ссылку на документ), описание и срок. Он выполняет требуемое действие — например, проверяет счёт — и нажимает кнопку «Выполнено» (или выбирает результат согласования, если форма это предусматривает).
Программно выполнение фиксируется методом ВыполнитьЗадачу() объекта задачи: устанавливается признак «Выполнена = Истина», задача записывается, и бизнес-процесс получает сигнал продолжить движение по маршруту. Если в точке действия было несколько задач, процесс ждёт выполнения всех.
- 1Найдите бизнес-процесс, породивший задачу: в форме задачи есть ссылка на процесс.
- 2Откройте карту маршрута процесса (команда «Карта маршрута» в форме процесса) — активные точки обычно подсвечены.
- 3Проверьте реквизиты адресации задачи: роль и параметры.
- 4Сверьте их с регистром исполнителей — кто реально назначен.
- 5Откройте задачу от имени исполнителя и выполните её; убедитесь, что процесс перешёл к следующей точке.
Отмена и прерывание — отдельная история. Если процесс пометить на удаление или прервать (в типовых есть команда «Прервать»), активные задачи по нему теряют смысл, но сами по себе не всегда удаляются автоматически — в некоторых конфигурациях они остаются в списках, пока их не пометят на удаление. Это нужно учитывать при чистке базы.
Где пользователь работает с задачами и как настроить список
Основной интерфейс исполнителя — динамический список задач с отбором по текущему пользователю. В типовых конфигурациях это рабочее место «Мои задачи» или аналог. Отбор строится по реквизитам адресации и признаку «Выполнена = Ложь». Дополнительно настраивают отборы по сроку, важности, виду процесса.
Разработчик может создать произвольную форму списка задач с собственным запросом динамического списка — например, объединить задачи разных видов в одном окне или добавить колонки с реквизитами предмета. При этом важно не сломать производительность: соединения с документами-предметами в запросе списка на больших базах заметно замедляют открытие.
Если пользователи жалуются, что список задач открывается медленно, первым делом смотрите запрос динамического списка: левые соединения с документами и вычисляемые поля вроде «дней просрочено» на каждую строку — самые частые причины. Ограничьте выборку периодом и уберите лишние соединения.
Оповещения, сроки и контроль просрочки
Сама по себе платформа не шлёт уведомления о новых задачах — это реализуется прикладным кодом. Типовой подход: при записи задачи или в обработчике бизнес-процесса формируется письмо через интернет-почту либо запись в регистр уведомлений, а регламентное задание рассылает их. В конфигурациях на БСП есть подсистема обсуждений и напоминаний, которую можно задействовать.
Контроль сроков обычно строится так: у задачи или процесса есть реквизит «Срок исполнения», а регламентное задание периодически выбирает невыполненные задачи с истёкшим сроком и выполняет действие — уведомляет руководителя, эскалирует задачу или меняет её важность. Эскалация (переадресация вышестоящему исполнителю) делается программно: создаётся новая задача с другой адресацией либо меняются реквизиты существующей.
Типовые проблемы и способы их решения
Чаще всего встречаются четыре ситуации. Первая — задача не видна никому: причина в пустом регистре исполнителей или несовпадении параметров адресации. Вторая — задача видна лишним людям: роль назначена без уточняющих параметров. Третья — процесс завис: задача удалена или выполнена в обход штатного механизма, точка маршрута не закрылась. Четвёртая — дубли задач: пользователь дважды стартовал процесс по одному документу, либо регламентное задание стартует процессы без проверки уже существующих.
Диагностика начинается с карты маршрута процесса: она показывает, на какой точке стоит выполнение. Далее проверяются задачи по этому процессу (в форме процесса обычно есть переход к списку его задач), их адресация и признак выполнения. Для массовых проблем пишут сервисную обработку: выборка процессов с активными точками старше заданной даты и анализ их задач.
Что важно запомнить
Задача — поручение пользователю, рождаемое бизнес-процессом в точке действия карты маршрута. Кто увидит задачу, определяют роли и параметры адресации через регистр исполнителей. Выполнение задачи двигает процесс дальше, а удаление задачи в обход процесса — главный способ его «повесить». Диагностику всегда начинайте с карты маршрута и проверки адресации.
FAQ
Можно ли создать задачу без бизнес-процесса?
Да, программно: создать объект задачи, заполнить реквизиты и записать. Так делают простые поручения без маршрута. Но тогда не будет карты маршрута, автоматического перехода по этапам и штатной связи с процессом — всю логику контроля придётся реализовывать самостоятельно.
Почему задачу видит сразу несколько сотрудников?
Потому что роль из реквизитов задачи назначена нескольким исполнителям в регистре исполнителей с подходящими параметрами адресации. Это нормальный режим групповой адресации: кто первый выполнил задачу, тот и закрыл её. Если такое поведение не нужно, сузьте адресацию параметрами или измените состав исполнителей роли.
Что происходит с уже запущенными процессами при изменении карты маршрута?
Запущенные экземпляры продолжают выполняться по той версии карты, которая была актуальна на момент их старта, — изменения применяются только к новым процессам. Поэтому перед существенной переделкой маршрута стоит завершить или прервать активные процессы старой версии.
Как массово завершить «зависшие» задачи?
Штатного инструмента нет, пишется сервисная обработка: выборка невыполненных задач по отбору (например, по прерванным или помеченным на удаление процессам) и вызов метода ВыполнитьЗадачу() либо пометка удаления. Обязательно проверяйте состояние родительского процесса, чтобы не закрыть задачи живых процессов, и сначала испытывайте обработку на копии базы.
Может ли задача выполняться автоматически, без пользователя?
Да. Если действие не требует человека, в карте маршрута используют точку обработки с программным кодом вместо точки действия — задача тогда не создаётся вовсе. Либо регламентное задание само находит задачи определённого вида и выполняет их методом ВыполнитьЗадачу() по заданным условиям.
Как узнать, кто и когда выполнил задачу?
В самой задаче обычно есть реквизиты исполнителя и даты выполнения (в типовых — «Исполнитель», «ДатаИсполнения»). Если их нет или нужна полная история изменений, подключают версионирование объектов или журнал регистрации с отбором по ссылке на задачу — там видны все сеансы записи.