ЗадачаОбъект.<Имя задачи>.ТочкаМаршрута

Свойства · RoutePoint

Тип: ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса>. Содержит ссылку на точку маршрута породившего задачу бизнес-процесса (может быть пустой).

Полное описание, параметры и ограничения

ЗадачаОбъект.<Имя задачи>.ТочкаМаршрута (TaskObject.<Task name>.RoutePoint)

ЗадачаОбъект.<Имя задачи> (TaskObject.<Task name>)

ТочкаМаршрута (RoutePoint)

Доступен, начиная с версии 8.0.

Использование:
Чтение и запись.
Описание:
Тип: ТочкаМаршрутаБизнесПроцессаСсылка.<Имя бизнес-процесса>.
Содержит ссылку на точку маршрута породившего задачу бизнес-процесса (может быть пустой).
Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

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

Назначенные UUID создают идентичность, не существование. Для учебной задачи указываем ссылку будущего процесса и реальную точку его карты, но запуск не выполняем.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

  6. В этой отдельной пустой конфигурации Учебная85 добавьте Задачи → УчебнаяЗадача: длина номера 9, тип Строка, автонумерация; наименование длиной 100. Добавьте реквизит Комментарий (Строка, 100), без проверки заполнения.

  7. Добавьте Бизнес-процессы → УчебныйПроцесс: длина номера 9, тип Строка, автонумерация, реквизит Комментарий (Строка, 100), без проверки заполнения. В свойстве Задача выберите УчебнаяЗадача.

  8. Карта маршрута: одна точка старта Старт → одна одиночная точка действия ПодготовитьКнигу → одна точка завершения Финиш. Соедините их стрелками; в представлении точки действия укажите Подготовить учебную книгу.

  9. Адресацию задач, групповые/условные/вложенные точки и обработчики маршрута для этой задачи не добавляйте. Модули задачи и процесса, подписки и внешние действия должны быть пустыми. Обновите конфигурацию базы данных.

  10. Все имена здесь относятся к новым учебным объектам, не к рабочей КА2/УНФ/УТ/БП. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.

Если Метаданные.БизнесПроцессы.Найти("УчебныйПроцесс") = Неопределено
    Или Метаданные.Задачи.Найти("УчебнаяЗадача") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебные процесс, задачу и карту маршрута";
КонецЕсли;
Процесс = БизнесПроцессы.УчебныйПроцесс.СоздатьБизнесПроцесс();
Задача = Задачи.УчебнаяЗадача.СоздатьЗадачу();
ИдентификаторПроцесса = Новый УникальныйИдентификатор;
ИдентификаторЗадачи = Новый УникальныйИдентификатор;
СсылкаПроцесса = БизнесПроцессы.УчебныйПроцесс.ПолучитьСсылку(ИдентификаторПроцесса);
СсылкаЗадачи = Задачи.УчебнаяЗадача.ПолучитьСсылку(ИдентификаторЗадачи);
Процесс.УстановитьСсылкуНового(СсылкаПроцесса);
Задача.УстановитьСсылкуНового(СсылкаЗадачи);
Задача.БизнесПроцесс = СсылкаПроцесса;
Задача.ТочкаМаршрута = БизнесПроцессы.УчебныйПроцесс.ТочкиМаршрута.ПодготовитьКнигу;
Сообщить(Процесс.ПолучитьСсылкуНового() = СсылкаПроцесса);
Сообщить(Задача.ПолучитьСсылкуНового() = СсылкаЗадачи);
Сообщить(СсылкаПроцесса.УникальныйИдентификатор() = ИдентификаторПроцесса);
Сообщить(СсылкаЗадачи.УникальныйИдентификатор() = ИдентификаторЗадачи);
Сообщить(Задача.БизнесПроцесс = СсылкаПроцесса);
Сообщить(Задача.ТочкаМаршрута.Имя = "ПодготовитьКнигу");
Сообщить(СсылкаПроцесса.ПолучитьОбъект() = Неопределено);
Сообщить(СсылкаЗадачи.ПолучитьОбъект() = Неопределено);

Разбор по шагам

  1. ПолучитьСсылку формирует ссылку из собственного UUID и не записывает объект.

  2. УстановитьСсылкуНового назначает идентичность будущей записи; уникальность будет проверяться при записи.

  3. ТочкаМаршрута берётся из менеджера учебного процесса, а не создаётся строкой произвольного имени.

  4. Задача содержит плановую ссылку процесса, но ПолучитьОбъект обеих ссылок возвращает отсутствие записи.

Как проверить результат

  1. Восемь сравнений Истина. Плановые идентификаторы совпали, обе записи отсутствуют.

  2. В коде нет Старт или ВыполнитьЗадачу; карта ещё не продвинулась.

Ожидаемый результат

Разделены ссылка, точка метаданных маршрута и наличие объекта в базе.

На что обратить внимание

  1. Непустая ссылка не доказывает существование процесса или выполнение задачи.

  2. Это упражнение по идентичности. В рабочем механизме задачи должны порождаться маршрутом, не вручную подменять его состояние.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Пройти собственный учебный маршрут и отменить весь опыт

Старт порождает задачу точки действия. Находим её только по своему новому процессу, выполняем и перечитываем завершённый процесс. Всё происходит внутри отменяемой учебной транзакции.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

  6. В этой отдельной пустой конфигурации Учебная85 добавьте Задачи → УчебнаяЗадача: длина номера 9, тип Строка, автонумерация; наименование длиной 100. Добавьте реквизит Комментарий (Строка, 100), без проверки заполнения.

  7. Добавьте Бизнес-процессы → УчебныйПроцесс: длина номера 9, тип Строка, автонумерация, реквизит Комментарий (Строка, 100), без проверки заполнения. В свойстве Задача выберите УчебнаяЗадача.

  8. Карта маршрута: одна точка старта Старт → одна одиночная точка действия ПодготовитьКнигу → одна точка завершения Финиш. Соедините их стрелками; в представлении точки действия укажите Подготовить учебную книгу.

  9. Адресацию задач, групповые/условные/вложенные точки и обработчики маршрута для этой задачи не добавляйте. Модули задачи и процесса, подписки и внешние действия должны быть пустыми. Обновите конфигурацию базы данных.

  10. Все имена здесь относятся к новым учебным объектам, не к рабочей КА2/УНФ/УТ/БП. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.

Если Метаданные.БизнесПроцессы.Найти("УчебныйПроцесс") = Неопределено
    Или Метаданные.Задачи.Найти("УчебнаяЗадача") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебные процесс, задачу и карту маршрута";
КонецЕсли;
Если ТранзакцияАктивна() Тогда
    ВызватьИсключение "Нельзя запускать внутри чужой транзакции";
КонецЕсли;
СсылкаПроцесса = БизнесПроцессы.УчебныйПроцесс.ПолучитьСсылку(Новый УникальныйИдентификатор);
НачатьТранзакцию();
Попытка
    Процесс = БизнесПроцессы.УчебныйПроцесс.СоздатьБизнесПроцесс();
    Процесс.УстановитьСсылкуНового(СсылкаПроцесса);
    Процесс.Дата = Дата(2026, 10, 3, 10, 0, 0);
    Процесс.Комментарий = "Только собственный учебный маршрут";
    Процесс.Записать();
    Процесс.Старт(БизнесПроцессы.УчебныйПроцесс.ТочкиМаршрута.Старт);
    Процесс.Прочитать();
    Сообщить(Процесс.Стартован);
    Сообщить(Не Процесс.Завершен);
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    УчебныеЗадачи.Ссылка КАК Ссылка
    |ИЗ Задача.УчебнаяЗадача КАК УчебныеЗадачи
    |ГДЕ УчебныеЗадачи.БизнесПроцесс = &Процесс";
    Запрос.УстановитьПараметр("Процесс", СсылкаПроцесса);
    Найденные = Запрос.Выполнить().Выгрузить();
    Если Найденные.Количество() <> 1 Тогда
        ВызватьИсключение "Ожидается ровно одна собственная задача одиночной точки; проверьте учебную карту и адресацию";
    КонецЕсли;
    СсылкаЗадачи = Найденные.Получить(0).Ссылка;
    Задача = СсылкаЗадачи.ПолучитьОбъект();
    Если Задача = Неопределено Тогда
        ВызватьИсключение "Порождённая учебная задача не найдена";
    КонецЕсли;
    Если Задача.БизнесПроцесс <> СсылкаПроцесса Тогда
        ВызватьИсключение "Нельзя выполнять задачу чужого процесса";
    КонецЕсли;
    Сообщить(Не Задача.Выполнена);
    Сообщить(Задача.ТочкаМаршрута = БизнесПроцессы.УчебныйПроцесс.ТочкиМаршрута.ПодготовитьКнигу);
    Задача.ВыполнитьЗадачу();
    Задача.Прочитать();
    Процесс.Прочитать();
    Сообщить(Задача.Выполнена);
    Сообщить(Процесс.Завершен);
    ОтменитьТранзакцию();
Исключение
    Если ТранзакцияАктивна() Тогда
        ОтменитьТранзакцию();
    КонецЕсли;
    ВызватьИсключение;
КонецПопытки;
Сообщить(Не ТранзакцияАктивна());
Сообщить(СсылкаПроцесса.ПолучитьОбъект() = Неопределено);
Сообщить(СсылкаЗадачи.ПолучитьОбъект() = Неопределено);

Разбор по шагам

  1. Перед запуском точно выполните подготовку карты: один Старт, одна одиночная точка действия, один Финиш, без адресации и обработчиков.

  2. Назначаем новый UUID процессу, записываем внутри своей транзакции и вызываем Старт с конкретной точкой, не устанавливаем флаг вручную.

  3. Запрос параметризован ссылкой только что созданного процесса. Чужие задачи не выбираются; при количестве не 1 выполнение останавливается.

  4. ПолучитьОбъект проверяется на отсутствие, а принадлежность процессу проверяется ещё раз перед ВыполнитьЗадачу.

  5. ВыполнитьЗадачу записывает выполнение и уведомляет процесс. Прочитать обновляет оба экземпляра, затем транзакция намеренно отменяется.

Как проверить результат

  1. Шесть сравнений в транзакции Истина: старт, ожидание, невыполненная собственная задача нужной точки, выполненная задача, завершённый процесс.

  2. После отката ещё три Истина: транзакция закрыта, процесс и порождённая задача отсутствуют.

  3. В этом упражнении нет фиксации, отправки письма, файла или доступа к рабочим задачам.

Ожидаемый результат

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

На что обратить внимание

  1. Только отдельная пустая учебная база. В рабочем процессе события могут записывать другие данные и обращаться во внешние системы.

  2. ПроверитьВыполнение предназначен для проверки условий автоматизированного исполнения; без обработчиков он Ложь. Здесь явно выполняется учебная задача, а не реализуется производственный робот.

  3. Откат не отменяет внешние действия. Пустые модули и отсутствие подписок — обязательная часть подготовки.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.