Расширение формы клиентского приложения для задачи.ПараметрыВыбора

Свойства · ChoiceParameters

Тип: ФиксированнаяСтруктура. Значения, по которым проверяется возможность выбора для форм, находящихся в режиме выбора.

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

Расширение формы клиентского приложения для задачи.ПараметрыВыбора (Managed form extension for tasks.ChoiceParameters)

Расширение формы клиентского приложения для задачи (Managed form extension for tasks)

ПараметрыВыбора (ChoiceParameters)

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

Использование:
Чтение и запись.
Описание:
Тип: ФиксированнаяСтруктура.
Значения, по которым проверяется возможность выбора для форм, находящихся в режиме выбора.
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент.

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

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

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

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

Вернуть свою карточку в поле: Задача, ПараметрыВыбора

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

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

Серверный обработчик своей карточки; клиентские обработчики карточки и родителя приведены отдельно.

Подготовка

  1. Отдельная собственная учебная конфигурация. Создайте Задача УчебныеЗадачиВыбора с реквизитом УчебныйМаркер Строка 20. Заранее сохраните одну собственную карточку с маркером КНИГИ. Существующие объекты рабочей конфигурации не используйте.

  2. У собственного объекта создайте управляемую форму УчебнаяКарточка: основной реквизит Объект соответствующего объектного типа, выведите УчебныйМаркер. Основной блок назначьте её ПриСозданииНаСервере; клиентскую команду ЗавершитьСвойВыбор выведите кнопкой, ИзменяетСохраняемыеДанные=Ложь.

  3. Родительская управляемая форма своей обработки: реквизит Выбранное типа ЗадачаСсылка.УчебныеЗадачиВыбора и одноимённое поле. Команда ОткрытьСвоюКарточку с кнопкой; событию ОбработкаВыбора поля назначьте дополнительный обработчик.

  4. Два блока родителя (получение ссылки / открытие) и его ОбработкаВыбора помещаются только в родительский модуль. ПриСозданииНаСервере и ЗавершитьСвойВыбор — только в модуль карточки. При открытии передаётся реальная ссылка, не пустая новая карточка.

  5. Подготовьте собственную сохранённую учебную задачу штатным способом в своей конфигурации. Настройки её связи с бизнес-процессом / исполнителем задайте в собственной модели; пример выбора не выполняет и не переназначает задачу.

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

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

  1. Подготовьте собственную сохранённую карточку и две формы.

  2. Нажмите кнопку родителя и затем ЗавершитьСвойВыбор в карточке.

  3. Проверьте ОбработкаВыбора родительского поля и выбранную ссылку.

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

  1. РежимВыбора относится к форме объекта. При закрытии с непустой ссылкой платформа передаёт выбор владельцу; это не то же самое, что форма списка с режимом выбора.

  2. ПараметрыВыбора — ФиксированнаяСтруктура. Здесь УчебныйМаркер — наше собственное условие, и соответствие ему проверяется показанным кодом. Это не обещание автоматической обработки произвольных имён параметров платформой.

  3. ВыборДоступен задаётся по реальным данным карточки. Включён ТолькоПросмотр: данные не меняются между проверкой и закрытием. BSL, формы, записи и бизнес-процессы при сборке HTML не выполнялись.

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

Есть полный цикл выбора существующего собственного объекта без записи и универсального getter-примера.

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

  1. Не закрывайте новую незаписанную карточку с пустой ссылкой в ожидании такого же результата. Отмена / закрытие окна и подтверждение выбора требуют отдельной политики вашего приложения.

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

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

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

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

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