Версия для печати Поиск
Главная Для начинающих разработчиков Учимся программировать

Не могу найти функцию Выбрать(), которая была в платформе 7.7 у документов, справочников и счетов

Для того чтобы предоставить пользователю возможность интерактивного выбора некоторого значения, следует воспользоваться функцией ВвестиЗначение().

Например, для того чтобы выбрать элемент справочника Номенклатура, можно использовать следующий вариант вызова этой функции:

// Переменная, в которой будет сохранено выбранное пользователем значение.
Перем Справ;
ВвестиЗначение(Справ, "Текст подсказки", "СправочникСсылка.Номенклатура");

Если перед вызовом функции задать переменной Справ некоторое значение, то оно будет использовано в диалоге выбора как значение по умолчанию, на котором будет установлен курсор. В этом случае не требуется явного задания выбираемого типа - он будет определен по типу переменной, в которую принимается выбираемое значение:

&НаКлиенте
Процедура Пример(Команда)
   Справ = ПолучитьСсылкуНаЭлементСправочника();
   ВвестиЗначение(Справ);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСсылкуНаЭлементСправочника()
   СсылкаНаЭлемент = Справочники.Номенклатура.НайтиПоКоду("000000001");
   Возврат СсылкаНаЭлемент;
КонецФункции

В качестве третьего параметра этой функции может быть передан объект ОписаниеТипов. Его использование позволяет выбирать значения составного типа:

// Переменная, в которой будет сохранено выбранное пользователем значение.
Перем Справ;
Массив = Новый Массив;
Массив.Добавить(Тип("СправочникСсылка.ФизическиеЛица"));
Массив.Добавить(Тип("СправочникСсылка.ЮридическиеЛица"));
НовоеОписание = Новый ОписаниеТипов(Массив);
ВвестиЗначение(Справ, ,НовоеОписание);

Аналогичные действия можно выполнить и без использования функции ВвестиЗначение(). В этом случае появляются разнообразные возможности по управлению формой выбора. Например, можно задать владельца при выборе из формы подчиненного справочника.

Приведенный ниже код исполняется в форме списка справочника Контрагенты. Ему подчинен справочник ДоговорыВзаиморасчетов. В качестве владельца указывается текущий контрагент, на котором установлен курсор в списке (Элементы.Список.ТекущаяСтрока):  

ЗначениеОтбора = Новый Структура("Владелец", Элементы.Список.ТекущаяСтрока); 

ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);

ВыбранныйДоговор = ОткрытьФормуМодально("Справочник.ДоговорыВзаиморасчетов.ФормаВыбора", ПараметрыФормы); 

Последнее обновление: 08.06.2012

Обсудить статью на форуме

Задать другой вопрос / Закрыть