ВариантыТочкиМаршрутаБизнесПроцесса.Получить

Методы · Get

Получает значение по индексу. Работает аналогично оператору [].

Синтаксис

Получить(<Индекс>)
Полное описание, параметры и ограничения

ВариантыТочкиМаршрутаБизнесПроцесса.Получить (BusinessProcessRoutePointCases.Get)

ВариантыТочкиМаршрутаБизнесПроцесса (BusinessProcessRoutePointCases)

Получить (Get)

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

Синтаксис:
Получить(<Индекс>)
Параметры:

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

Описание:

Получает значение по индексу. Работает аналогично оператору [].

Доступность:

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

Примечание:
Применяется в случаях, когда использование оператора [] невозможно.
Использование в версии:

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

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

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

Проверить настоящие варианты и их исходящие переходы

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

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

Полный серверный общий модуль УчебныйЦикл85, собственный новый стенд УчебныеКартыМаршрута85; отдельный управляемый клиентский модуль вызова.

Подготовка

  1. Новая пустая конфигурация УчебныеКартыМаршрута85 на платформе8.5.1.1343, управляемое приложение и толстый клиент Windows. Рабочие конфигурации и чужие карты не используются.

  2. Задачи → УчебнаяЗадача85: строковый номер9 с автонумерацией, Наименование100. Все действия в картах одиночные, Групповая=Ложь; адресация, обязательные пользовательские реквизиты и групповые задачи не нужны.

  3. Бизнес-процессы → УчебныйПроцесс85, УчебныйВыбор85 и УчебныйПодпроцесс85: строковые номера9 с автонумерацией, Задача=УчебнаяЗадача85. В новой конфигурации только эти3 вида процессов.

  4. Главная карта УчебныйПроцесс85: Старт85 → Проверка85(Действие) → Условие85(Условие). Выход Да к Принято85(Действие), выход Нет к Отклонено85(Действие); оба далее к СлияниеУсловия85(Слияние).

  5. После СлияниеУсловия85 → Разделение85(Разделение). Две стрелки к ВетвьА85/ВетвьБ85(Действие); оба к СлияниеВетвей85(Слияние) → Вложенный85(ВложенныйБизнесПроцесс) → Финиш85(Завершение).

  6. У Вложенный85 в настройке вложенного процесса выберите именно УчебныйПодпроцесс85. Его карта: Старт85 → Проверка85(Действие) → Финиш85(Завершение).

  7. Карта УчебныйВыбор85: Старт85 → Выбор85(ВыборВарианта). Создайте два варианта Коротко85 и Полно85; соедините первый с Быстрый85(Действие), второй с Подробный85(Действие); оба к Слияние85 → Финиш85.

  8. Имена точек/вариантов — именно идентификаторы метаданных, не только отображаемые подписи. Настройте направления стрелок и выходы Да/Нет/вариантов в редакторе карты.

  9. НаименованиеЗадачи и Пояснение — фактические строки настройки действия. Можно оставить стандартные значения; код читает их и показывает в паспорте, не предполагает непустой текст или фактически созданную задачу.

  10. Все модули объектов/менеджеров/точек, обработчики условий/выбора варианта и подписки пустые. Этот урок читает статические метаданные, не запускает исполнение ни одной карты.

  11. Общие → Общие модули → УчебныйЦикл85: Сервер и ВызовСервера Истина, Глобальный/Привилегированный Ложь; остальные флаги и повторное использование выключены. Вставьте основной модуль одного урока целиком.

  12. Обработки → Запуск85 → управляемая форма Форма: ПодтверждаюПустойСтенд85 и Занято85 Булево исходно Ложь; Итог85 Строка неограниченной длины только для просмотра.

  13. Отдельный полный модуль формы из дополнительного блока: команда ВыполнитьПример85 назначена кнопке, Действие=ВыполнитьСвойЦикл85. Процедура ВыполнитьСвойЦикл85 вызывает УчебныйЦикл85.ВыполнитьПример85.

  14. F7 и обновление только своего стенда. runtimeVerifiedScenarios=0: 1С, доступ к метаданным/ссылкам точек/менеджерам/вариантам здесь реально не выполнялся.

  15. После согласия будущий ручной опыт проверяет реальные собственные типы и статические связи. Не заменяйте точки произвольными структурами, UUID, номерами или неизвестным ИсходныйОбъект.

  16. Нет СоздатьБизнесПроцесс/Записать/Старт/выполнения задачи, транзакции, удаления, файлов, сети, печати, архива или новой резервной копии. Для разных уроков заменяется целиком основной модуль, не склеиваются одноимённые функции.

Функция ВыполнитьПример85(Согласие) Экспорт
    Если Не Согласие Тогда
        ВызватьИсключение "Только собственный новый стенд УчебныеКартыМаршрута85 с согласием";
    КонецЕсли;
    Точки = БизнесПроцессы.УчебныйВыбор85.ТочкиМаршрута;
    ТочкаВыбора = Точки.Выбор85;
    Если ТочкаВыбора.Вид <> ВидТочкиМаршрутаБизнесПроцесса.ВыборВарианта Тогда
        ВызватьИсключение "Собственная точка должна быть именно ВыборВарианта";
    КонецЕсли;
    Варианты = ТочкаВыбора.Варианты;
    Если ТипЗнч(Варианты) <> Тип("ВариантыТочкиМаршрутаБизнесПроцесса") Тогда
        ВызватьИсключение "Нужна реальная коллекция вариантов собственной точки";
    КонецЕсли;
    Если Варианты.Количество() <> 2 Тогда
        ВызватьИсключение "В собственной точке должны быть два подготовленных варианта";
    КонецЕсли;
    ПервыйВариант = Варианты.Получить(0);
    ВторойВариант = Варианты.Получить(1);
    Если ПервыйВариант <> Варианты[0] Или ВторойВариант <> Варианты[1] Или ПервыйВариант = ВторойВариант Тогда
        ВызватьИсключение "Индексный метод и оператор должны возвращать те же разные варианты";
    КонецЕсли;
    Если ТипЗнч(ПервыйВариант) <> Тип("ВариантТочкиМаршрутаБизнесПроцесса")
        Или ТипЗнч(ВторойВариант) <> Тип("ВариантТочкиМаршрутаБизнесПроцесса") Тогда
        ВызватьИсключение "Переход требует реальный элемент варианта, не номер или строку";
    КонецЕсли;
    Если Варианты.Коротко85 = Варианты.Полно85 Тогда
        ВызватьИсключение "Именованные собственные варианты должны различаться";
    КонецЕсли;
    Если ТочкаВыбора.ПолучитьИсходящуюТочку(Варианты.Коротко85) <> Точки.Быстрый85
        Или ТочкаВыбора.ПолучитьИсходящуюТочку(Варианты.Полно85) <> Точки.Подробный85 Тогда
        ВызватьИсключение "Именованные варианты указывают не на собственные ожидаемые действия";
    КонецЕсли;
    НайденКороткий = Ложь;
    НайденПолный = Ложь;
    Для Каждого Вариант Из Варианты Цикл
        Если Вариант = Варианты.Коротко85 И Не НайденКороткий Тогда
            НайденКороткий = Истина;
        ИначеЕсли Вариант = Варианты.Полно85 И Не НайденПолный Тогда
            НайденПолный = Истина;
        Иначе
            ВызватьИсключение "Коллекция вернула повторный или неизвестный вариант";
        КонецЕсли;
    КонецЦикла;
    Если Не НайденКороткий Или Не НайденПолный Тогда
        ВызватьИсключение "Обход не нашёл оба собственных именованных варианта";
    КонецЕсли;
    Возврат "Количество/Получить/индексы и обход настоящей коллекции согласованы. Коротко85 ведёт к Быстрый85, Полно85 к Подробный85. Порядок имён не угадывался; выбор в исполняемом процессе не выполнялся.";
КонецФункции
Управляемый запуск чтения карты

УчебныеКартыМаршрута85 → Обработки → Запуск85 → Формы → Форма → Модуль

Полный модуль своей управляемой формы; команда ВыполнитьПример85 имеет Действие=ВыполнитьСвойЦикл85, серверный вызов УчебныйЦикл85.ВыполнитьПример85.

&НаКлиенте
Процедура ВыполнитьСвойЦикл85(Команда)
    Если Не ПодтверждаюПустойСтенд85 Или Занято85 Тогда
        ВызватьИсключение "Нужно собственное подтверждение и отсутствие другого опыта";
    КонецЕсли;
    Занято85 = Истина;
    Попытка
        Итог85 = УчебныйЦикл85.ВыполнитьПример85(ПодтверждаюПустойСтенд85);
    Исключение
        Занято85 = Ложь;
        Итог85 = ОписаниеОшибки();
        ВызватьИсключение;
    КонецПопытки;
    Занято85 = Ложь;
КонецПроцедуры

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

  1. Проверяются свой стенд, согласие и версия; ТочкаВыбора реально получена из карты УчебныйВыбор85.

  2. Вид ВыборВарианта проверяется до Варианты; тип коллекции и число2 подтверждаются.

  3. Получить(0)/(1) сравниваются с операторами[]; тип элементов подтверждает настоящие варианты.

  4. Именованный Коротко85 передаётся перегрузке перехода и ведёт к Быстрый85, Полно85 к Подробный85.

  5. Для каждого обходит коллекцию и доказывает наличие обоих собственных именованных вариантов без повторов.

  6. Порядок имён не угадывается и выбор в живом процессе не выполняется; результат относится к статической карте.

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

  1. Варианты — настоящая коллекция точки выбора, Количество=2.

  2. Метод и оператор индекса дают те же реальные элементы.

  3. Тип элемента соответствует ВариантТочкиМаршрутаБизнесПроцесса.

  4. Именованные элементы ведут к правильным собственным действиям.

  5. Обход находит оба варианта, но процесс не исполняется.

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

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

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

  1. Ссылка точки — элемент метаданных карты, не запись задачи, не UUID и не строковый идентификатор ветви. Доступ осуществляется через настоящий менеджер и ТочкиМаршрута.

  2. ПолучитьИсходящуюТочку без аргумента допустим для обычного последовательного перехода; Булево нужно для Условие; настоящий ВариантТочкиМаршрутаБизнесПроцесса нужен для ВыборВарианта.

  3. У Разделение несколько исходящих точек: нужен ПолучитьИсходящиеТочки. Он не является универсальным методом любой точки; вид проверяется до вызова.

  4. Варианты доступно только у ВыборВарианта, ВложенныйПроцесс только у вложенной точки, Групповая/Пояснение только у действия. Не читайте эти свойства без подходящего вида.

  5. ВложенныйПроцесс возвращает менеджер вида, не запущенный экземпляр подпроцесса. Метаданные менеджера проверяют настройку, но не доказывают фактическое исполнение.

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

  7. Массив входящих/исходящих точек не гарантирует удобный порядок ветвей. При двух связях проверяется состав и отсутствие повторов, не позиция А/Б.

  8. Варианты.Получить использует индекс с0, как оператор[]. Код сравнивает результаты двух способов, но имена Коротко85/Полно85 не приписываются индексам по догадке.

  9. Номер индекса и строка имени не являются параметром варианта для ПолучитьИсходящуюТочку. Передаётся реальный элемент коллекции собственной точки.

  10. ТипВсеСсылки относится к ссылкам процессов, ТипВсеСсылкиТочекМаршрутаБизнесПроцессов — к ссылкам точек. ОписаниеТипов не является самими объектами базы или списком записей.

  11. Коллекция БизнесПроцессы содержит менеджеры метаданных, не все запущенные процессы. Доступ по имени/обход не записывает новый процесс.

  12. Чтение перехода Истина/Ложь здесь лишь проверяет стрелку статической карты. Обработчик условия не вычислялся; выбранный путь исполняемого процесса не подтверждён.

  13. Все показанные свойства точек readonly. Исправлять карту нужно в своих метаданных конфигуратора, не присваиваниями Вид/Варианты/ВложенныйПроцесс/Групповая.

  14. Этот стенд показывает структуру, не готовый исполняемый бизнес-процесс. Пустые обработчики/адресация не позволяют объявить работу реального маршрута проверенной.

  15. Все проверки статические, runtimeVerifiedScenarios=0. Реальная1С и GUI/базы здесь не запускались; новые резервные копии и архивы не создавались.

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

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

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

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

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