Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2021, 04:48

Открыть форму выбора с уже ранее выбранной строкой

Автор skillful, 15 ноя 2019, 20:31

0 Пользователей и 1 гость просматривают эту тему.

skillful

УТ 10.3. Форма управляемая. Даже не знаю как сформулировать вопрос.
Смотрите скриншоты:
1. Выбираешь в табличной части определенную, уже выбранную номенклатуру. Открывается форма выбора номенклатуры.
2. На втором скриншоте открыта форма с выделенной самой первой строкой, а должна быть по умолчанию та, что выбрана в табличной части.

Вот код Процедуры НоменклатураНачалоВыбора
&НаКлиенте
Процедура РаботыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора("ФормаВыбора", Элемент);
//ФормаВыбора.Отбор.ВидНоменклатуры.Установить(Справочники.ВидыНоменклатуры.НайтиПоКоду("000000002"));
//ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидНоменклатуры.Доступность = Ложь;
///ФормаВыбора.ОткрытьМодально();
ФормаВыбора.Открыть();

КонецПроцедуры


Нужно, чтобы после открытия формы выбора номенклатуры по умолчанию была выделена строка "Услуга с НДС"


wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

skillful

Цитата: wise от 17 ноя 2019, 16:33
(0) установите "Список.ТекущаяСтрока"
Не совсем понял. Как установить и куда?
Добавлено: 17 ноя 2019, 18:23


ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = Справочники.Номенклатура.НайтиПоКоду(Элементы.Работы.ТекущиеДанные.Номенклатура.Код);
Пока сделал так. Но слишком длинно. Как нибудь можно сократить?

bsn-chita

Я бы так сделал.

&НаКлиенте
Процедура ТоварыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ЗначениеЗаполнено(ТекущиеДанные.Номенклатура) Тогда
СтандартнаяОбработка = Ложь;
Парам = Новый Структура("ТекущаяСтрока", ТекущиеДанные.Номенклатура);
ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора", Парам, Элемент);
КонецЕсли;
КонецПроцедуры

LexaK

как сделать покороче

ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = Справочники.Номенклатура.НайтиПоКоду(Элементы.Работы.ТекущиеДанные.Номенклатура.Код);

у вас Номенклатура в текущей строке это уже ссылка, и ее не надо искать повторно
вот ваш вариант сокращенный

ФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока = Элементы.Работы.ТекущиеДанные.Номенклатура;
ответ Понравился? (в смысле пригодился?)

skillful


Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск