Задачи и бизнес-процессы 1С 8.3: от поручения коллеге до кода

· 10 мин

Содержание

Задача в 1С 8.3 — это объект конфигурации платформы, который хранит поручение конкретному исполнителю или роли: что сделать, к какому сроку и в рамках какого процесса. Задачи почти никогда не живут сами по себе. Их порождает бизнес-процесс, когда доходит до точки маршрута «Действие», а выполнение задачи двигает процесс дальше.

В типовых конфигурациях на Библиотеке стандартных подсистем (БП 3.0, ЗУП 3.1, УТ 11, КА, ERP) механизм уже готов: есть задача «Задача исполнителя», бизнес-процесс «Задание» и списки «Мои задачи». Пользователю достаточно включить его в администрировании. Программисту — понять, как устроены точки маршрута, адресация и события модуля.

Что такое задача в 1С 8.3 и чем она не является

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

  • 🔹 Номер и Дата — как у документа;
  • 🔹 Наименование — короткая формулировка поручения;
  • 🔹 Выполнена — флаг завершения;
  • 🔹 БизнесПроцесс — ссылка на процесс-владелец;
  • 🔹 ТочкаМаршрута — шаг процесса, на котором задача создана;
  • 🔹 ПометкаУдаления.

Всё остальное — срок, автор, важность, описание, результат — добавляют обычными реквизитами.

Слово «задача» в 1С встречается и в других смыслах. Путаница из-за этого частая, поэтому сразу разведём понятия:

Что называют «задачей»Что это на самом делеКто исполняет
Задача (объект метаданных)Поручение человеку внутри бизнес-процессаПользователь
«Список задач» бухгалтера в БП 3.0Календарь отчётности и платежей в разделе «Главное»Бухгалтер, по напоминанию
Регламентное заданиеКод, который сервер запускает по расписаниюСервер 1С
Фоновое заданиеКод, запущенный асинхронно из другого кодаСервер 1С

Дальше речь только о первой строке — о задачах как поручениях людям.

Виды задач: личное поручение, задача роли, шаг маршрута

По тому, кому адресована задача и откуда она взялась, на практике выделяют три варианта.

1. Личное поручение. Задача адресована конкретному пользователю. В БСП это бизнес-процесс «Задание»: автор указывает исполнителя, срок и описание. Если включить проверку, после выполнения появится вторая задача — проверяющему.

2. Задача роли. Исполнитель — не человек, а роль: «Главный бухгалтер», «Кладовщик склада №2», «Согласующий по договорам». Задачу видят все, кто в эту роль включён. Первый, кто взял её в работу, становится исполнителем, у остальных она уходит из списка «к выполнению».

3. Шаг маршрута. Задача создаётся автоматически процессом согласования, заявки или закрытия месяца. Пользователь мог ничего не создавать — он просто получил свою часть работы.

Как устроена адресация

За «кому видна задача» отвечает адресация. В свойствах объекта «Задача» указывают:

  • 🔸 регистр сведений адресации — в нём хранится, кто входит в какую роль и по какому объекту (в БСП это регистр исполнителей задач);
  • 🔸 реквизиты адресации — реквизиты задачи, каждый связан с измерением этого регистра;
  • 🔸 основной реквизит адресации — по нему отбирается конкретный исполнитель.

Благодаря этому одну задачу можно адресовать «роли Согласующий по организации ООО Ромашка», и платформа сама поймёт, кому её показать.

Роли исполнителей в БСП — это не роли прав доступа из Конфигуратора. Это обычный справочник, который заполняет администратор базы. Человек может иметь полные права и при этом не входить ни в одну роль исполнителей.

Как создать задачу в 1С 8.3 вручную

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

Дальше — порядок для поручения коллеге:

  1. Откройте список бизнес-процессов «Задания» или нажмите «Создать» в форме списка «Мои задачи».
  2. Заполните краткое наименование. Оно попадёт в список задач исполнителя, поэтому пишите глаголом: «Сверить расчёты с ООО Альфа за сентябрь».
  3. Выберите исполнителя — пользователя или роль.
  4. Установите срок. Время тоже имеет значение: задача со сроком «до 18:00» станет просроченной в 18:01.
  5. Укажите предмет — документ, контрагента, договор, к которому относится поручение. Тогда задача будет видна и из карточки этого объекта.
  6. Опишите, что именно нужно сделать и в каком виде вернуть результат.
  7. Если результат нужно проверить, включите проверку и выберите проверяющего.
  8. Нажмите «Стартовать и закрыть».

Именно кнопка старта создаёт задачу. Если записать процесс, но не стартовать его, задача у исполнителя не появится.

Перед стартом поручения
Выполнено: 0 / 6

Автоматическое создание задач по событиям

Ручные поручения — малая часть. Основная польза от задач появляется, когда они создаются сами.

Без программирования

В типовых конфигурациях есть несколько готовых сценариев:

  • 📌 задание можно создать прямо из документа или справочника, если для объекта включены бизнес-процессы — тогда предмет заполнится автоматически;
  • 📌 в некоторых решениях (КА, ERP, Документооборот) есть шаблоны процессов: согласование, исполнение, ознакомление — их настраивают, а не программируют;
  • 📌 задачи роли распределяются сами, как только администратор заполнил состав ролей.

С доработкой

Если нужно, чтобы задача появлялась при наступлении события, есть четыре проверенных способа:

СпособКогда срабатываетГде применять
Запуск процесса из модуля объектаПри записи или проведении документа«Проведён счёт больше 100 000 — согласовать с финдиректором»
Подписка на событиеПри записи объектов нескольких видовОдно правило на десяток документов
Регламентное заданиеПо расписанию«Каждый понедельник проверить просроченную дебиторку»
HTTP-сервисПо внешнему запросуЗаявка с сайта или из другой системы

Доработку модуля типового документа делайте через расширение конфигурации , а не правкой основной конфигурации. Иначе каждое обновление превратится в сравнение и объединение.

Как исполнитель работает с задачей и как руководитель её контролирует

Исполнитель

Рабочее место — список «Мои задачи». Там видны задачи, адресованные лично и через роли. Типовой порядок:

  1. Открыть задачу, прочитать описание и предмет.
  2. Для задачи роли — принять её к исполнению. Тогда коллеги по роли увидят, что задача занята.
  3. Сделать работу в базе: провести документ , сверить расчёты, заполнить справочник.
  4. Записать результат в комментарии к выполнению.
  5. Нажать кнопку выполнения. Задача получит флаг Выполнена, процесс перейдёт к следующей точке.

Если задачу невозможно выполнить, правильнее вернуть её автору с комментарием, а не держать в списке неделями.

Автор и руководитель

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

  • 📊 раз в неделю отбирать невыполненные задачи со сроком в прошлом;
  • 📊 смотреть, у кого из исполнителей копится больше всего открытых задач;
  • 📊 проверять задачи роли, которые никто не принял, — это первый признак, что состав роли устарел.

В БСП есть регламентные задания, которые по расписанию проверяют сроки задач и рассылают исполнителям уведомления. Их включают в списке регламентных операций раздела Администрирование.

Программирование задач в 1С 8.3: примеры кода

Чтобы задачи появлялись по вашему маршруту, нужен собственный бизнес-процесс. Связка такая: объект «Бизнес-процесс» ссылается на объект «Задача», а в графической схеме маршрута расставлены точки.

Типы точек маршрута:

ТочкаЧто делает
СтартНачало процесса
ДействиеСоздаёт задачу исполнителю и ждёт её выполнения
УсловиеВетвление «да/нет» по результату кода
Выбор вариантаВетвление на несколько путей
Разделение / СлияниеПараллельные ветки и их сведение
ОбработкаВыполняет код без участия человека
ПодпроцессЗапускает вложенный процесс
ЗавершениеКонец процесса

Запуск процесса из кода

Пример для собственного процесса «СогласованиеСчета» с реквизитами Документ и Сумма. Код можно вызвать из модуля документа после проведения:

Процедура ЗапуститьСогласование(СчетСсылка, СуммаСчета) Экспорт

	Процесс = БизнесПроцессы.СогласованиеСчета.СоздатьБизнесПроцесс();
	Процесс.Дата = ТекущаяДатаСеанса();
	Процесс.Документ = СчетСсылка;
	Процесс.Сумма = СуммаСчета;
	Процесс.Записать();
	Процесс.Старт();

КонецПроцедуры

Метод Старт() переводит процесс в первую точку маршрута и создаёт задачи. Без него в базе останется записанный, но не стартованный процесс.

Заполнение задачи при создании

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

Процедура СогласоватьПриСозданииЗадач(ТочкаМаршрутаБизнесПроцесса, ФормируемыеЗадачи, Отказ)

	Для Каждого Задача Из ФормируемыеЗадачи Цикл
		Задача.Наименование = СтрШаблон("Согласовать счёт %1 на сумму %2",
			Строка(Документ), Формат(Сумма, "ЧДЦ=2; ЧГ=3"));
		Задача.СрокИсполнения = ТекущаяДатаСеанса() + 2 * 86400; // двое суток
	КонецЦикла;

КонецПроцедуры

Если нужно сформировать задачи полностью самостоятельно, используйте обработчик ПередСозданиемЗадач и параметр СтандартнаяОбработка.

Ветвление по сумме

Для точки «Условие» обработчик ПроверкаУсловия возвращает результат через параметр:

Процедура ПроверкаСуммыПроверкаУсловия(ТочкаМаршрутаБизнесПроцесса, Результат)

	Результат = (Сумма > 100000);

КонецПроцедуры

Ветка «Истина» ведёт к финдиректору, «Ложь» — сразу к оплате.

Выполнение задачи из кода

ЗадачаОбъект = ЗадачаСсылка.ПолучитьОбъект();
ЗадачаОбъект.ВыполнитьЗадачу();

Метод ВыполнитьЗадачу() записывает задачу и продвигает процесс. Для проверки бизнес-логики перед завершением задачи у точки «Действие» есть событие ПриВыполнении с параметром Отказ.

Запрос невыполненных задач

Для БСП-задачи «ЗадачаИсполнителя» с реквизитами Исполнитель и СрокИсполнения:

ВЫБРАТЬ
	Задачи.Ссылка,
	Задачи.Наименование,
	Задачи.СрокИсполнения
ИЗ
	Задача.ЗадачаИсполнителя КАК Задачи
ГДЕ
	НЕ Задачи.Выполнена
	И НЕ Задачи.ПометкаУдаления
	И Задачи.Исполнитель = &Исполнитель
	И Задачи.СрокИсполнения < &ТекущаяДата
УПОРЯДОЧИТЬ ПО
	Задачи.СрокИсполнения

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

Интеграция задач с почтой, телефонией и мессенджерами

Из коробки задачи общаются с внешним миром через почту. В БСП исполнителю можно отправлять уведомления о новых и просроченных задачах. Условия:

  • ✉️ в базе настроена системная учётная запись электронной почты;
  • ✉️ у пользователя в контактной информации указан адрес;
  • ✉️ включены соответствующие регламентные задания.

Всё остальное — доработка.

Мессенджеры. Самый частый вариант — бот в Telegram. В обработчике ПриСозданииЗадач или подписке на запись задачи формируете текст и отправляете его HTTP-запросом к API мессенджера через HTTPСоединение. Токен бота храните в защищённом хранилище или константе с ограниченным доступом, а не в коде модуля.

Телефония. Обычно работает в обратную сторону: АТС при пропущенном звонке вызывает HTTP-сервис 1С, тот находит контрагента по номеру и стартует процесс «Перезвонить» с задачей менеджеру.

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

Какой механизм выбрать под вашу задачу?

Ошибки, из-за которых задачи «теряются»

Эти проблемы встречаются при внедрении чаще всего:

  • ❌ Флаг Выполнена ставят напрямую. Задача выглядит закрытой, но процесс стоит на месте. Завершать нужно через ВыполнитьЗадачу() или кнопку в форме.
  • ❌ Роль исполнителей пустая. Задача создана, но не видна никому. Проверяйте состав ролей после увольнений и переводов.
  • ❌ Процесс записан, но не стартован. Задач нет, хотя процесс в списке есть.
  • ❌ Пометка удаления вместо остановки. Помеченный на удаление процесс и его задачи висят в базе до удаления помеченных. Ненужный процесс правильнее остановить или прервать штатной командой.
  • ❌ Доработки в основной конфигурации. Через полгода типовая не обновляется без ручного сравнения.
  • ❌ Срок без времени. Задача «до 15 октября» со временем 00:00 становится просроченной в начале рабочего дня, а не в конце.

Частые вопросы

Можно ли создать задачу без бизнес-процесса?
Платформа позволяет записать задачу и без процесса, но тогда её выполнение ничего не запускает. Для одиночных поручений в БСП используют процесс «Задание» — он и есть «задача с минимальным маршрутом».
Видит ли исполнитель задачи, если у него нет прав на предмет?
Задачу — да, если есть права на сами задачи. Открыть документ-предмет без прав на него он не сможет, и выполнить работу тоже.
Как передать задачу другому сотруднику?
В БСП задачу можно перенаправить: в форме задачи есть команда переадресации. Исходный исполнитель и комментарий сохраняются в истории.
Сколько задач выдерживает база?
Задачи — обычные объекты с табличным хранением. Десятки тысяч закрытых задач на производительность не влияют, если запросы к ним используют индексированные реквизиты и отбор по Выполнена.
Где задачи в 1С 8.3 Бухгалтерия, если меню их не показывает?
Значит, не включён флажок бизнес-процессов в разделе Администрирование или у пользователя нет прав на подсистему. В «Список задач» раздела «Главное» искать их не нужно — это календарь бухгалтера, другой механизм.