Выполняет задачу. Для задачи свойство Выполнена устанавливается равным Истина и она записывается. При выполнении этого метода бизнес-процесс, породивший задачу, получает соответствующую нотификацию и выполняет переход к следующей точке маршрута бизнес-процесса. В процессе выполнения этого метода происходит вызов событий ПередВыполнением и ПриВыполнении у задачи и соответствующей ей точке маршрута.
Синтаксис
ВыполнитьЗадачу()Примеры платформы
Если ТекущаяЗадача.ПроверитьВыполнение() Тогда
ТекущаяЗадача.ВыполнитьЗадачу();
КонецЕслиПолное описание, параметры и ограничения
ЗадачаОбъект.<Имя задачи>.ВыполнитьЗадачу (TaskObject.<Task name>.ExecuteTask)
ЗадачаОбъект.<Имя задачи> (TaskObject.<Task name>)
ВыполнитьЗадачу (ExecuteTask)
Доступен, начиная с версии 8.0.
Синтаксис:
ВыполнитьЗадачу()
Описание:
Выполняет задачу. Для задачи свойство Выполнена устанавливается равным Истина и она записывается. При выполнении этого метода бизнес-процесс, породивший задачу, получает соответствующую нотификацию и выполняет переход к следующей точке маршрута бизнес-процесса. В процессе выполнения этого метода происходит вызов событий ПередВыполнением и ПриВыполнении у задачи и соответствующей ей точке маршрута.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
Если ТекущаяЗадача.ПроверитьВыполнение() Тогда
ТекущаяЗадача.ВыполнитьЗадачу();
КонецЕсли
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Пройти собственный учебный маршрут и отменить весь опыт
Старт порождает задачу точки действия. Находим её только по своему новому процессу, выполняем и перечитываем завершённый процесс. Всё происходит внутри отменяемой учебной транзакции.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
В этой отдельной пустой конфигурации Учебная85 добавьте Задачи → УчебнаяЗадача: длина номера 9, тип Строка, автонумерация; наименование длиной 100. Добавьте реквизит Комментарий (Строка, 100), без проверки заполнения.
Добавьте Бизнес-процессы → УчебныйПроцесс: длина номера 9, тип Строка, автонумерация, реквизит Комментарий (Строка, 100), без проверки заполнения. В свойстве Задача выберите УчебнаяЗадача.
Карта маршрута: одна точка старта Старт → одна одиночная точка действия ПодготовитьКнигу → одна точка завершения Финиш. Соедините их стрелками; в представлении точки действия укажите Подготовить учебную книгу.
Адресацию задач, групповые/условные/вложенные точки и обработчики маршрута для этой задачи не добавляйте. Модули задачи и процесса, подписки и внешние действия должны быть пустыми. Обновите конфигурацию базы данных.
Все имена здесь относятся к новым учебным объектам, не к рабочей КА2/УНФ/УТ/БП. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.
Если Метаданные.БизнесПроцессы.Найти("УчебныйПроцесс") = Неопределено
Или Метаданные.Задачи.Найти("УчебнаяЗадача") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебные процесс, задачу и карту маршрута";
КонецЕсли;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Нельзя запускать внутри чужой транзакции";
КонецЕсли;
СсылкаПроцесса = БизнесПроцессы.УчебныйПроцесс.ПолучитьСсылку(Новый УникальныйИдентификатор);
НачатьТранзакцию();
Попытка
Процесс = БизнесПроцессы.УчебныйПроцесс.СоздатьБизнесПроцесс();
Процесс.УстановитьСсылкуНового(СсылкаПроцесса);
Процесс.Дата = Дата(2026, 10, 3, 10, 0, 0);
Процесс.Комментарий = "Только собственный учебный маршрут";
Процесс.Записать();
Процесс.Старт(БизнесПроцессы.УчебныйПроцесс.ТочкиМаршрута.Старт);
Процесс.Прочитать();
Сообщить(Процесс.Стартован);
Сообщить(Не Процесс.Завершен);
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| УчебныеЗадачи.Ссылка КАК Ссылка
|ИЗ Задача.УчебнаяЗадача КАК УчебныеЗадачи
|ГДЕ УчебныеЗадачи.БизнесПроцесс = &Процесс";
Запрос.УстановитьПараметр("Процесс", СсылкаПроцесса);
Найденные = Запрос.Выполнить().Выгрузить();
Если Найденные.Количество() <> 1 Тогда
ВызватьИсключение "Ожидается ровно одна собственная задача одиночной точки; проверьте учебную карту и адресацию";
КонецЕсли;
СсылкаЗадачи = Найденные.Получить(0).Ссылка;
Задача = СсылкаЗадачи.ПолучитьОбъект();
Если Задача = Неопределено Тогда
ВызватьИсключение "Порождённая учебная задача не найдена";
КонецЕсли;
Если Задача.БизнесПроцесс <> СсылкаПроцесса Тогда
ВызватьИсключение "Нельзя выполнять задачу чужого процесса";
КонецЕсли;
Сообщить(Не Задача.Выполнена);
Сообщить(Задача.ТочкаМаршрута = БизнесПроцессы.УчебныйПроцесс.ТочкиМаршрута.ПодготовитьКнигу);
Задача.ВыполнитьЗадачу();
Задача.Прочитать();
Процесс.Прочитать();
Сообщить(Задача.Выполнена);
Сообщить(Процесс.Завершен);
ОтменитьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
Сообщить(Не ТранзакцияАктивна());
Сообщить(СсылкаПроцесса.ПолучитьОбъект() = Неопределено);
Сообщить(СсылкаЗадачи.ПолучитьОбъект() = Неопределено);Разбор по шагам
Перед запуском точно выполните подготовку карты: один Старт, одна одиночная точка действия, один Финиш, без адресации и обработчиков.
Назначаем новый UUID процессу, записываем внутри своей транзакции и вызываем Старт с конкретной точкой, не устанавливаем флаг вручную.
Запрос параметризован ссылкой только что созданного процесса. Чужие задачи не выбираются; при количестве не 1 выполнение останавливается.
ПолучитьОбъект проверяется на отсутствие, а принадлежность процессу проверяется ещё раз перед ВыполнитьЗадачу.
ВыполнитьЗадачу записывает выполнение и уведомляет процесс. Прочитать обновляет оба экземпляра, затем транзакция намеренно отменяется.
Как проверить результат
Шесть сравнений в транзакции Истина: старт, ожидание, невыполненная собственная задача нужной точки, выполненная задача, завершённый процесс.
После отката ещё три Истина: транзакция закрыта, процесс и порождённая задача отсутствуют.
В этом упражнении нет фиксации, отправки письма, файла или доступа к рабочим задачам.
Ожидаемый результат
На собственной последовательной карте показано, чем реальные Старт и ВыполнитьЗадачу отличаются от присваивания флагов.
На что обратить внимание
Только отдельная пустая учебная база. В рабочем процессе события могут записывать другие данные и обращаться во внешние системы.
ПроверитьВыполнение предназначен для проверки условий автоматизированного исполнения; без обработчиков он Ложь. Здесь явно выполняется учебная задача, а не реализуется производственный робот.
Откат не отменяет внешние действия. Пустые модули и отсутствие подписок — обязательная часть подготовки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.