Для того чтобы предоставить пользователю возможность интерактивного выбора некоторого значения, следует воспользоваться функцией ВвестиЗначение().
Например, для того чтобы выбрать элемент справочника Номенклатура, можно использовать следующий вариант вызова этой функции:
// Переменная, в которой будет сохранено выбранное пользователем значение. Перем Справ;
ВвестиЗначение(Справ, "Текст подсказки", "СправочникСсылка.Номенклатура");
Если перед вызовом функции задать переменной Справ некоторое значение, то оно будет использовано в диалоге выбора как значение по умолчанию, на котором будет установлен курсор. В этом случае не требуется явного задания выбираемого типа - он будет определен по типу переменной, в которую принимается выбираемое значение:
&НаКлиенте Процедура Пример(Команда)
Справ = ПолучитьСсылкуНаЭлементСправочника();
ВвестиЗначение(Справ);
КонецПроцедуры
&НаСервереБезКонтекста Функция ПолучитьСсылкуНаЭлементСправочника()
СсылкаНаЭлемент = Справочники.Номенклатура.НайтиПоКоду("000000001");
Возврат СсылкаНаЭлемент;
КонецФункции
В качестве третьего параметра этой функции может быть передан объект ОписаниеТипов. Его использование позволяет выбирать значения составного типа:
// Переменная, в которой будет сохранено выбранное пользователем значение. Перем Справ;
Массив = Новый Массив; Массив.Добавить(Тип("СправочникСсылка.ФизическиеЛица")); Массив.Добавить(Тип("СправочникСсылка.ЮридическиеЛица"));
НовоеОписание = Новый ОписаниеТипов(Массив);
ВвестиЗначение(Справ, ,НовоеОписание);
Аналогичные действия можно выполнить и без использования функции ВвестиЗначение(). В этом случае появляются разнообразные возможности по управлению формой выбора. Например, можно задать владельца при выборе из формы подчиненного справочника.
Приведенный ниже код исполняется в форме списка справочника Контрагенты. Ему подчинен справочник ДоговорыВзаиморасчетов. В качестве владельца указывается текущий контрагент, на котором установлен курсор в списке (Элементы.Список.ТекущаяСтрока):
ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);
ВыбранныйДоговор = ОткрытьФормуМодально("Справочник.ДоговорыВзаиморасчетов.ФормаВыбора", ПараметрыФормы);