Выбрать альтернативную форму УчебноеСогласование

Учебные задачи

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

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

Модуль менеджера собственного объекта: серверный платформенный обработчик без директив. Дополнительный блок — клиентская команда другой учебной формы.

Подготовка

  1. Работайте в отдельной пустой учебной конфигурации. Создайте справочник УчебныеИсполнители и предопределённый элемент Демонстрационный с наименованием Учебный исполнитель.

  2. Создайте задачу УчебныеСогласования: строковый номер длиной 12, автонумерация, наименование длиной 100. Добавьте реквизит адресации Исполнитель типа СправочникСсылка.УчебныеИсполнители и выберите его основным реквизитом адресации. Здесь используется прямая адресация; регистр ролевой адресации не нужен.

  3. Создайте параметр сеанса УчебныйИсполнитель того же ссылочного типа. В свойстве задачи Текущий исполнитель выберите этот параметр. Запросы урока передают исполнителя явно и не зависят от начального значения параметра сеанса.

  4. Создайте бизнес-процесс УчебноеСогласование со строковым номером длиной 12 и автонумерацией. В свойстве Задача выберите УчебныеСогласования. Карта маршрута: Старт (начало) → Согласовать (действие) → Завершение. В точке Согласовать задайте адресацию Исполнитель = Демонстрационный, Групповая = Ложь.

  5. И у задачи, и у бизнес-процесса создайте обычные реквизиты КомментарийУчебный (Строка 100), Сумма (Число 12.2), Подтверждено (Булево), ЗапретУдаления (Булево). Добавьте табличную часть Детали с колонками Наименование (Строка 100) и Количество (Число 10.0).

  6. Создайте общий реквизит УчебныйИсточник типа Строка 20, Разделение данных = Не использовать. Включите только учебную задачу и бизнес-процесс в его состав. Это не разделитель и не настройка рабочей конфигурации.

  7. У БизнесПроцесс УчебноеСогласование создайте две управляемые формы одного подходящего вида: ОсновнаяУчебная и УчебнаяАльтернатива. Для ФормаСписка назначьте основной только ОсновнаяУчебная; УчебнаяАльтернатива не должна быть основной.

  8. Для списочных объектов используйте мастер формы списка с его обычным основным реквизитом. Для перечисления создайте формы выбора, для обработки / отчёта — соответствующие основные формы. У альтернативы задайте заголовок Альтернативная учебная форма и добавьте такую же текстовую декорацию.

  9. В модуле менеджера УчебноеСогласование разместите основной обработчик целиком. Не вызывайте в нём ОткрытьФорму и не размещайте его в модуле самой формы.

  10. Обновите учебную базу. В своей внешней обработке с управляемой формой создайте команду ОткрытьУчебнуюФорму; её клиентский обработчик возьмите из дополнительного блока. Списки могут быть пустыми: этот урок ничего не создаёт и не записывает.

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

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

  1. Клиент запрашивает ФормаСписка через ОткрытьФорму; обработчик вызывается платформой на сервере.

  2. Только для указанного вида назначается имя УчебнаяАльтернатива в пределах данного объекта метаданных.

  3. СтандартнаяОбработка = Ложь применяет собственный выбор. ПовторноеИспользование = Ложь отключает повторное использование формы для этого запроса, а не кэш всей платформы.

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

  1. Открылась форма с заголовком Альтернативная учебная форма, хотя клиент запросил стандартное имя.

  2. Запрос другого стандартного вида не переопределяется. При прямом открытии именованной формы этот обработчик стандартного выбора не следует использовать как универсальный перехват.

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

Событие менеджера выбирает конкретную существующую форму своего объекта.

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

  1. Имя альтернативы локально для объекта метаданных; нельзя указать в ВыбраннаяФорма полный путь формы другого объекта.

  2. Не вызывайте повторное получение стандартной формы внутри обработчика: это может повторно вызвать тот же выбор.

  3. Открытие списка не создаёт записей и не является проверкой выполнения бухгалтерского или расчётного кода.

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

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

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

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

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