Тип: ФиксированныйМассив. Определяет параметры выбора. Фиксированный массив из элементов типа ПараметрВыбора. Пример: НовыйПараметр = Новый ПараметрВыбора("Отбор.Наименование", "МойСправочник"); НовыйМассив = Новый Массив(); НовыйМассив.Добавить(НовыйПараметр); НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив); Элементы.Реквизит1.ПараметрыВыбора = НовыеПараметры;
Полное описание, параметры и ограничения
Расширение поля формы для поля ввода.ПараметрыВыбора (Form field extension for a text box.ChoiceParameters)
Расширение поля формы для поля ввода (Form field extension for a text box)
ПараметрыВыбора (ChoiceParameters)
Доступен, начиная с версии 8.2.
Использование:
Чтение и запись.
Описание:
Тип: ФиксированныйМассив.
Определяет параметры выбора. Фиксированный массив из элементов типа ПараметрВыбора.
Пример:
НовыйПараметр = Новый ПараметрВыбора("Отбор.Наименование", "МойСправочник");
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(НовыйПараметр);
НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
Элементы.Реквизит1.ПараметрыВыбора = НовыеПараметры;
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Связать отбор книги с фактической секцией формы
СвязьПараметраВыбора передаёт текущее УчебнаяСекция в Отбор.Секция. При смене секции режим Очищать предотвращает сохранение прежнего выбора в связанном поле.
Где и как запускать
Полный модуль своей управляемой формы в новой конфигурации УчебныйВыборВвода85. Настольный тонкий клиент Windows; типовые данные и проверка ссылок читаются на сервере. Запуск в 1С не проверен.
Подготовка
Создайте с нуля отдельную конфигурацию УчебныйВыборВвода85: управляемое приложение, Такси, язык Русский, платформа 8.5.1.1343, без расширений, общих реквизитов-разделителей и прикладных обработчиков. Не используйте рабочую базу.
Создайте иерархический справочник УчебныеКниги85, иерархия групп и элементов, код Строка длиной 10 без автонумерации, наименование Строка 100. Добавьте реквизиты МеткаСтенда (Строка 30, для группы и элемента) и Секция (Строка 30, для элемента).
В своём новом стенде вручную заведите группы BOOKGROUP/Книги и PENGROUP/Канцелярия. В первой группе заведите BOOK/Книга и ALBUM/Альбом с Секция = Книги, во второй PEN/Ручка с Секция = Канцелярия. У всех этих собственных записей МеткаСтенда = owned-input85. Других записей не создавайте.
Каждый урок — отдельная новая управляемая форма внешней обработки. Назначьте ПриСозданииНаСервере, вставьте полный модуль. Реквизиты, поле и учебную команду код создаёт сам: вручную одноимённые элементы не добавляйте.
После F7 обновите только собственную конфигурацию. Запускайте настольный тонкий клиент Windows. Уроки не выполнялись: runtimeVerifiedScenarios=0, фактическое отображение и стандартный выбор ещё требуют отдельного ручного теста.
Будущий ручной опыт читает только свои подготовленные записи и меняет данные формы в памяти. Код не создаёт, не записывает и не удаляет объекты базы или файлы, не вызывает внешнюю сеть, печать или привилегированный режим.
Коды BOOK, ALBUM, PEN и метка owned-input85 — конкретные значения подготовленного собственного стенда, не имена товаров вашей конфигурации. Если подготовка не совпала, исправляйте только свой стенд, не отключайте защиту для production.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Метаданные.ОбщиеРеквизиты.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только собственный новый неразделённый стенд УчебныйВыборВвода85";
КонецЕсли;
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебнаяКнига", Новый ОписаниеТипов("СправочникСсылка.УчебныеКниги85")));
Новые.Добавить(Новый РеквизитФормы("УчебнаяСекция", Новый ОписаниеТипов("Строка")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
УчебнаяСекция = "Книги";
УчебнаяКнига = Справочники.УчебныеКниги85.ПустаяСсылка();
Поле = Элементы.Добавить("ПолеУчебнойКниги", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеВвода;
Поле.ПутьКДанным = "УчебнаяКнига";
Поле.Заголовок = "Только свой учебный товар";
Поле.ВыборГруппИЭлементов = ГруппыИЭлементы.Элементы;
Поле.КнопкаВыбора = Истина;
Поле.КнопкаВыпадающегоСписка = Истина;
Поле.КнопкаСоздания = Ложь;
Параметры = Новый Массив;
Параметры.Добавить(Новый ПараметрВыбора("Отбор.МеткаСтенда", "owned-input85"));
Поле.ПараметрыВыбора = Новый ФиксированныйМассив(Параметры);
Секции = Элементы.Добавить("ПолеУчебнойСекции", Тип("ПолеФормы"));
Секции.Вид = ВидПоляФормы.ПолеВвода;
Секции.ПутьКДанным = "УчебнаяСекция";
Секции.Заголовок = "Секция своего выбора";
Секции.РежимВыбораИзСписка = Истина;
Секции.СписокВыбора.Добавить("Книги", "Книги");
Секции.СписокВыбора.Добавить("Канцелярия", "Канцелярия");
Связи = Новый Массив;
Связи.Добавить(Новый СвязьПараметраВыбора("Отбор.Секция", "УчебнаяСекция", РежимИзмененияСвязанногоЗначения.Очищать));
Поле.СвязиПараметровВыбора = Новый ФиксированныйМассив(Связи);
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить свой выбор";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Сообщить(ПроверитьСвоюКнигуНаСервере());
КонецПроцедуры
&НаСервере
Функция ПроверитьСвоюКнигуНаСервере()
Если Метаданные.ОбщиеРеквизиты.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только собственный новый неразделённый стенд УчебныйВыборВвода85";
КонецЕсли;
Если Не ЗначениеЗаполнено(УчебнаяКнига) Тогда
Возврат "Сначала выберите свою учебную книгу";
КонецЕсли;
Если УчебнаяКнига.ЭтоГруппа Или УчебнаяКнига.МеткаСтенда <> "owned-input85" Тогда
Возврат "Нужен свой учебный элемент, а не группа или запись с иной меткой";
КонецЕсли;
Если УчебнаяКнига.Секция <> УчебнаяСекция Тогда
Возврат "Выбранная книга не соответствует фактической текущей секции";
КонецЕсли;
Если УчебнаяКнига.Код <> "BOOK" И УчебнаяКнига.Код <> "ALBUM" И УчебнаяКнига.Код <> "PEN" Тогда
Возврат "Выбрана запись вне трёх подготовленных собственных товаров";
КонецЕсли;
Возврат "Свой элемент: " + УчебнаяКнига.Наименование + "; секция: " + УчебнаяКнига.Секция;
КонецФункции
Разбор по шагам
Постоянная метка стенда остаётся в ПараметрыВыбора. Текущая секция берётся отдельно из собственного реквизита формы, а не зашита вторым постоянным параметром.
СвязиПараметровВыбора — ФиксированныйМассив объектов СвязьПараметраВыбора. Связь создаётся на сервере, где запись этого свойства разрешена.
Путь УчебнаяСекция совпадает с реально добавленным реквизитом. Отбор.Секция совпадает с реальным реквизитом собственной книги.
При исходном Книги выберите BOOK. Измените секцию на Канцелярия: прежний выбор должен очиститься, после открытия выбора доступна PEN.
Проверка на сервере сопоставляет настоящую Секция выбранного элемента и текущее значение формы. Она не полагается только на факт очистки или видимое меню.
В стандартной форме выбора отбор может ограничивать содержимое при сохранении групп для навигации. Состав и поведение проверяются отдельно в своей конфигурации.
Как проверить результат
Книги → BOOK/ALBUM; Канцелярия → PEN. Проверка сообщает именно выбранный собственный элемент и его секцию.
После смены секции прежняя ссылка не должна оставаться выбранной; без нового выбора команда предлагает выбрать книгу.
Если вручную нарушить соответствие в собственном стенде, серверная проверка сообщает несовпадение, а не успех.
Ожидаемый результат
Динамический параметр действительно зависит от данных формы и имеет контроль смены и согласованности выбранного значения.
На что обратить внимание
Путь связи — реквизит формы, не его текущая строковая величина. Не передавайте Книги вместо УчебнаяСекция вторым аргументом.
СвязиПараметровВыбора нельзя присваивать в клиентском обработчике.
Очищать относится к связанному значению формы и не удаляет книгу из базы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Выбирать элементы своей иерархии и передать постоянный отбор
Поле допускает только элементы УчебныеКниги85 и передаёт стандартной форме выбора метку собственного стенда. Проверка результата отдельно от настройки интерфейса.
Где и как запускать
Полный модуль своей управляемой формы в новой конфигурации УчебныйВыборВвода85. Настольный тонкий клиент Windows; типовые данные и проверка ссылок читаются на сервере. Запуск в 1С не проверен.
Подготовка
Создайте с нуля отдельную конфигурацию УчебныйВыборВвода85: управляемое приложение, Такси, язык Русский, платформа 8.5.1.1343, без расширений, общих реквизитов-разделителей и прикладных обработчиков. Не используйте рабочую базу.
Создайте иерархический справочник УчебныеКниги85, иерархия групп и элементов, код Строка длиной 10 без автонумерации, наименование Строка 100. Добавьте реквизиты МеткаСтенда (Строка 30, для группы и элемента) и Секция (Строка 30, для элемента).
В своём новом стенде вручную заведите группы BOOKGROUP/Книги и PENGROUP/Канцелярия. В первой группе заведите BOOK/Книга и ALBUM/Альбом с Секция = Книги, во второй PEN/Ручка с Секция = Канцелярия. У всех этих собственных записей МеткаСтенда = owned-input85. Других записей не создавайте.
Каждый урок — отдельная новая управляемая форма внешней обработки. Назначьте ПриСозданииНаСервере, вставьте полный модуль. Реквизиты, поле и учебную команду код создаёт сам: вручную одноимённые элементы не добавляйте.
После F7 обновите только собственную конфигурацию. Запускайте настольный тонкий клиент Windows. Уроки не выполнялись: runtimeVerifiedScenarios=0, фактическое отображение и стандартный выбор ещё требуют отдельного ручного теста.
Будущий ручной опыт читает только свои подготовленные записи и меняет данные формы в памяти. Код не создаёт, не записывает и не удаляет объекты базы или файлы, не вызывает внешнюю сеть, печать или привилегированный режим.
Коды BOOK, ALBUM, PEN и метка owned-input85 — конкретные значения подготовленного собственного стенда, не имена товаров вашей конфигурации. Если подготовка не совпала, исправляйте только свой стенд, не отключайте защиту для production.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Метаданные.ОбщиеРеквизиты.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только собственный новый неразделённый стенд УчебныйВыборВвода85";
КонецЕсли;
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебнаяКнига", Новый ОписаниеТипов("СправочникСсылка.УчебныеКниги85")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
УчебнаяКнига = Справочники.УчебныеКниги85.ПустаяСсылка();
Поле = Элементы.Добавить("ПолеУчебнойКниги", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеВвода;
Поле.ПутьКДанным = "УчебнаяКнига";
Поле.Заголовок = "Только свой учебный товар";
Поле.ВыборГруппИЭлементов = ГруппыИЭлементы.Элементы;
Поле.КнопкаВыбора = Истина;
Поле.КнопкаВыпадающегоСписка = Истина;
Поле.КнопкаСоздания = Ложь;
Параметры = Новый Массив;
Параметры.Добавить(Новый ПараметрВыбора("Отбор.МеткаСтенда", "owned-input85"));
Поле.ПараметрыВыбора = Новый ФиксированныйМассив(Параметры);
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить свой выбор";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Сообщить(ПроверитьСвоюКнигуНаСервере());
КонецПроцедуры
&НаСервере
Функция ПроверитьСвоюКнигуНаСервере()
Если Метаданные.ОбщиеРеквизиты.Количество() <> 0 Тогда
ВызватьИсключение "Нужен только собственный новый неразделённый стенд УчебныйВыборВвода85";
КонецЕсли;
Если Не ЗначениеЗаполнено(УчебнаяКнига) Тогда
Возврат "Сначала выберите свою учебную книгу";
КонецЕсли;
Если УчебнаяКнига.ЭтоГруппа Или УчебнаяКнига.МеткаСтенда <> "owned-input85" Тогда
Возврат "Нужен свой учебный элемент, а не группа или запись с иной меткой";
КонецЕсли;
Если УчебнаяКнига.Код <> "BOOK" И УчебнаяКнига.Код <> "ALBUM" И УчебнаяКнига.Код <> "PEN" Тогда
Возврат "Выбрана запись вне трёх подготовленных собственных товаров";
КонецЕсли;
Возврат "Свой элемент: " + УчебнаяКнига.Наименование + "; секция: " + УчебнаяКнига.Секция;
КонецФункции
Разбор по шагам
Сначала создаются два собственных реквизита и настоящий элемент ПолеФормы вида ПолеВвода с точным ПутьКДанным.
ВыборГруппИЭлементов получает ГруппыИЭлементы.Элементы. Группы остаются узлами навигации и не должны становиться выбранным товаром.
ПараметрыВыбора — ФиксированныйМассив объектов ПараметрВыбора. Отбор.МеткаСтенда соответствует реально созданному реквизиту своего справочника.
Откройте стандартный выбор кнопкой поля. Выберите BOOK, ALBUM или PEN в соответствующей группе; не подставляйте произвольную ссылку в код.
Учебная кнопка выполняет отдельный серверный контроль: заполненность, ЭтоГруппа, фактическая метка и код. Ссылка и её реквизиты не читаются в тонком клиенте.
Настройка выбора не является проверкой прав или универсальным серверным запретом. Собственная проверка результата остаётся обязательной.
Как проверить результат
Выберите BOOK → Свой элемент: Книга; секция: Книги. PEN → Ручка; Канцелярия.
Попробуйте выбрать BOOKGROUP как значение: группа не должна приниматься. Навигация внутрь группы допустима.
Пустое поле → подсказка выбора. Если стандартная форма не применила отбор, не объявляйте настройку проверенной: проверьте вид её основного списка и поддержку параметра в своей форме.
Ожидаемый результат
Иерархическая навигация, ограничение элементов и постоянный отбор показаны на собственном каталоге с независимой проверкой выбранной ссылки.
На что обратить внимание
ГруппыИЭлементы — перечисление поля формы, не ИспользованиеГруппИЭлементов из метаданных.
Имя параметра должно быть поддержано фактической формой выбора; строка Отбор.МеткаСтенда не создаёт реквизит автоматически.
Настройка UI не защищает рабочие данные. Не переносите имя собственной конфигурации или реквизита в production.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.