Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1. Как правило, такие ограничения бизнес-логики как ограничения выбора, должны быть одинаковыми для всех форм, в которых редактируется тот или иной объект. Поэтому задавать параметры выбора и связи параметров выбора (между зависимым и ведущими реквизитами) рекомендуется в свойствах объектов метаданных - в реквизитах справочников, документов и т.п.
2. Однако могут встречаться случаи, когда ограничения выбора могут зависеть от конкретного сценария работы. В таких случаях параметры выбора могут быть уточнены по месту, в конкретной форме.
Например, в конфигурации имеются
Требуется реализовать возможность выбора только основных сотрудников в зависимости от значения функциональной опции ВыбратьТолькоИзОсновыхСотрудников. Для этого необходимо
Тогда установка связи для параметра Отбор.Организация в свойствах реквизита Сотрудник документа ПриказОПриеме и связи для параметра Отбор.ВидСотрудника в поле формы документа ПриказОПриеме приведет к тому, что в режиме 1С:Предприятия будут работать обе связи параметра выбора. Таким образом, при выборе сотрудника в форме приказа о приеме отбор в списке сотрудников будет установлен как по организации, заполненной в документе, так и по виду сотрудника, который будет определен на основании функциональной опции.
3. Параметры выбора, указанные в метаданных объектов, учитываются при выборе значений в отборах отчетов и динамических списков. Поэтому их рекомендуется задавать и для объектов, которые не редактируются интерактивно.
Например, в конфигурации имеются
Тогда установка параметра Отбор.ТипНоменклатуры со значением Товар в свойствах измерения Номенклатура регистра ТоварыНаСкладе сократит список доступных значений в отборе отчета, не позволив выбрать номенклатуру с типом Услуга, которая не может храниться на складе.
4. Не рекомендуется указывать в связях параметров выбора Режим изменения связанного значения = Очищать. Вместо этого необходимо написать программный код, выполняющий условную очистку зависимого значения при несоответствии новым значениям ведущих реквизитов.
При безусловной очистке возможны следующие проблемы:
Например, в конфигурации имеются
Владелец Характеристики должен соответствовать реквизиту ВидНоменклатуры из справочника Номенклатура.
Неправильно:

Пример условной очистки:
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
ТекущаяСтрока.Характеристика = ХарактеристикаПоУмолчанию(ТекущаяСтрока.Номенклатура, ТекущаяСтрока.Характеристика);
КонецПроцедуры
// Возвращает характеристику по умолчанию для номенклатуры.
//
// Параметры:
// Номенклатура - СправочникСсылка.Номенклатура - номенклатура, для которой необходимо получить характеристику.
// ТекущееЗначение - СправочникСсылка.ХарактеристикиНоменклатуры - текущее значение характеристики.
//
// Возвращаемое значение:
// СправочникСсылка.ХарактеристикиНоменклатуры - подобранное значение:
// 1. Если текущее значение удовлетворяет условиям, то возвращается текущее значение.
// 2. Если найдено только одно значение, соответствующее условиям, то возвращается оно.
// 3. Если нет подходящих значений, либо значений несколько, то возвращается пустая ссылка.
//
&НаСервереБезКонтекста
Функция ХарактеристикаПоУмолчанию(Номенклатура, ТекущееЗначение)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 2
| ХарактеристикаНоменклатуры.Ссылка КАК Ссылка,
| ХарактеристикаНоменклатуры.Ссылка = &ТекущееЗначение КАК ЭтоТекущееЗначение
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
| ПО Номенклатура.ВидНоменклатуры = ХарактеристикаНоменклатуры.Владелец
|ГДЕ
| Номенклатура.Ссылка = &Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| ЭтоТекущееЗначение УБЫВ";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("ТекущееЗначение", ТекущееЗначение);
Выборка = Запрос.Выполнить().Выбрать();
Если Не Выборка.Следующий() Тогда
// Ни одно значение не подходит
Возврат Справочники.ХарактеристикаНоменклатуры.ПустаяСсылка();
ИначеЕсли Выборка.ЭтоТекущееЗначение Или Выборка.Количество() = 1 Тогда
// Текущее значение подходит или найдено единственное подходящее
Возврат Выборка.Ссылка;
Иначе // Значений несколько, невозможно выбрать значение "по умолчанию"
Возврат Справочники.ХарактеристикаНоменклатуры.ПустаяСсылка();
КонецЕсли;
КонецФункции
4.1. Если повторный выбор значения ведущего реквизита без его фактического изменения невозможен, а также если каждому значению зависимого реквизита соответствует не более одного значения ведущего реквизита, то допустима безусловная очистка (Режим изменения связанного значения = Очищать) связанного реквизита при изменении ведущего реквизита.
Например, в конфигурации имеются
Значение флага ЦенаВключаетНДС элемента справочника «ВидыЦен», выбираемого в зависимом реквизите «ВидЦен» документа «ЗаказПоставщику», должно быть равно значению ведущего реквизита «ЦенаВключаетНДС» документа, так как:
В этом случае, безусловная очистка зависимого реквизита ВидЦены при изменении ведущего флага ЦенаВключаетНДС в документе является допустимой.
5. Для заполнения реквизитов нового объекта, который создается из поля выбора или формы выбора с установленными отборами, рекомендуется добавлять необходимые параметры выбора в структуру Отбор, так как ее свойства и значения передаются в параметр ДанныеЗаполнения процедуры события ОбработкаЗаполнения.
Для этого перед именем параметра нужно добавить префикс «Отбор.».
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура")
И ДанныеЗаполнения.Свойство("Номенклатура") Тогда
Владелец = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеЗаполнения.Номенклатура, "ВидНоменклатуры");
КонецЕсли;
КонецПроцедуры