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