К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как работают задачи в 1С 8

Как устроены задачи в 1С 8: связь с бизнес-процессами, адресация исполнителей, формирование и выполнение задач, типовые ошибки и практические советы.

Задачи в 1С 8 — это отдельный тип объектов конфигурации, предназначенный для организации работы пользователей: поручений, согласований, этапов бизнес-процессов. В отличие от документов и справочников, задача описывает не факт хозяйственной деятельности, а действие, которое должен выполнить конкретный сотрудник или группа сотрудников.

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

Понимание того, как устроены задачи, нужно и разработчику, который строит схему согласования, и администратору, который разбирается, почему у пользователя «зависла» задача или почему поручение ушло не тому сотруднику. Ниже разобраны устройство объекта, адресация, жизненный цикл и типовые проблемы.

Что такое объект «Задача» и чем он отличается от других объектов

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

Во-первых, у задачи есть предопределённые системные свойства: «Выполнена» (булево), «БизнесПроцесс» (ссылка на породивший её процесс), «ТочкаМаршрута» (точка карты, в которой она создана). Во-вторых, задачи не проводятся и не делают движений по регистрам в типовом смысле — хотя разработчик может программно записывать данные при выполнении задачи. В-третьих, именно к задачам привязан механизм адресации: роли и параметры адресации определяют, кто увидит задачу в своём списке.

Один вид задач в конфигурации может обслуживать несколько видов бизнес-процессов. Например, типовая задача «Задача исполнителя» в конфигурациях на БСП (библиотека стандартных подсистем) используется для согласования, ознакомления, поручений и других процессов одновременно — различие задаётся через реквизиты и точку маршрута.

Как устроена карта маршрута и где рождаются задачи

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

Задачи создаются только в точках действия. Когда выполнение процесса доходит до такой точки, система автоматически формирует объект задачи, заполняет реквизиты по настройкам точки и определяет адресатов. В свойствах точки действия указывается, какой вид задач создавать, как заполнять её реквизиты и как адресовать.

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

Адресация: как система определяет исполнителя

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

Когда процесс создаёт задачу, он заполняет реквизиты адресации: роль и значения параметров. Пользователь видит задачу в своём списке, если он назначен исполнителем по этой роли с совпадающими параметрами. Если роль назначена нескольким сотрудникам подразделения, задачу видят все они — и после выполнения одним из них она, как правило, исчезает у остальных (зависит от реализации).

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

Контрольные точки

Как проверить адресацию

Заполнен ли регистр исполнителей задач по нужной роли
Норма

По роли и параметрам адресации назначен хотя бы один активный пользователь

Тревожный признак

Записей нет или пользователь помечен как недействительный — задачи «повиснут»

Параметры адресации в задаче
Норма

Подразделение/организация в задаче совпадают с тем, что указано у исполнителя в регистре

Тревожный признак

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

Список задач пользователя
Норма

Новая задача появляется в списке сразу после старта процесса

Тревожный признак

Задача есть в общем списке, но у исполнителя не отображается

Жизненный цикл задачи: от создания до выполнения

Стандартный цикл выглядит так. Пользователь или регламентное задание стартует бизнес-процесс. Процесс доходит до точки действия — создаётся задача с датой, номером, заполненными реквизитами и адресацией. Исполнитель открывает задачу из списка «Мои задачи», видит предмет (ссылку на документ), описание и срок. Он выполняет требуемое действие — например, проверяет счёт — и нажимает кнопку «Выполнено» (или выбирает результат согласования, если форма это предусматривает).

Программно выполнение фиксируется методом ВыполнитьЗадачу() объекта задачи: устанавливается признак «Выполнена = Истина», задача записывается, и бизнес-процесс получает сигнал продолжить движение по маршруту. Если в точке действия было несколько задач, процесс ждёт выполнения всех.

Как проследить задачу от старта до завершения
  1. 1
    Найдите бизнес-процесс, породивший задачу: в форме задачи есть ссылка на процесс.
  2. 2
    Откройте карту маршрута процесса (команда «Карта маршрута» в форме процесса) — активные точки обычно подсвечены.
  3. 3
    Проверьте реквизиты адресации задачи: роль и параметры.
  4. 4
    Сверьте их с регистром исполнителей — кто реально назначен.
  5. 5
    Откройте задачу от имени исполнителя и выполните её; убедитесь, что процесс перешёл к следующей точке.

Отмена и прерывание — отдельная история. Если процесс пометить на удаление или прервать (в типовых есть команда «Прервать»), активные задачи по нему теряют смысл, но сами по себе не всегда удаляются автоматически — в некоторых конфигурациях они остаются в списках, пока их не пометят на удаление. Это нужно учитывать при чистке базы.

Где пользователь работает с задачами и как настроить список

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

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

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

Оповещения, сроки и контроль просрочки

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

Контроль сроков обычно строится так: у задачи или процесса есть реквизит «Срок исполнения», а регламентное задание периодически выбирает невыполненные задачи с истёкшим сроком и выполняет действие — уведомляет руководителя, эскалирует задачу или меняет её важность. Эскалация (переадресация вышестоящему исполнителю) делается программно: создаётся новая задача с другой адресацией либо меняются реквизиты существующей.

Типовые проблемы и способы их решения

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

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

Типичные ошибки
01
Удаление невыполненной задачи вместо прерывания процесса — процесс зависает на активной точке маршрута.
02
Адресация только по роли без параметров — задачу получают сотрудники всех подразделений.
03
Старт процесса без проверки дублей — по одному документу висят две цепочки согласования.
04
Изменение карты маршрута в конфигураторе без учёта уже запущенных процессов — старые экземпляры продолжают идти по старой схеме, что сбивает диагностику.
05
Отсутствие регламентного контроля просрочки — просроченные задачи копятся незаметно.
Итог

Что важно запомнить

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

FAQ

Можно ли создать задачу без бизнес-процесса?

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

Почему задачу видит сразу несколько сотрудников?

Потому что роль из реквизитов задачи назначена нескольким исполнителям в регистре исполнителей с подходящими параметрами адресации. Это нормальный режим групповой адресации: кто первый выполнил задачу, тот и закрыл её. Если такое поведение не нужно, сузьте адресацию параметрами или измените состав исполнителей роли.

Что происходит с уже запущенными процессами при изменении карты маршрута?

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

Как массово завершить «зависшие» задачи?

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

Может ли задача выполняться автоматически, без пользователя?

Да. Если действие не требует человека, в карте маршрута используют точку обработки с программным кодом вместо точки действия — задача тогда не создаётся вовсе. Либо регламентное задание само находит задачи определённого вида и выполняет их методом ВыполнитьЗадачу() по заданным условиям.

Как узнать, кто и когда выполнил задачу?

В самой задаче обычно есть реквизиты исполнителя и даты выполнения (в типовых — «Исполнитель», «ДатаИсполнения»). Если их нет или нужна полная история изменений, подключают версионирование объектов или журнал регистрации с отбором по ссылке на задачу — там видны все сеансы записи.