Выбор элемента из формы списка регистра сведений

1. AndrewKop 25.03.19 11:09 Сейчас в теме
Делаю ДЗ по Гилеву в УТ11.4 (демо)
Есть форма списка справочника ШаблоныЗаказовКлиентов (у регистра 2 реквизита: Контрагент и ЗаказКлиента). Модуль формы:
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	ОповеститьОВыборе(ВыбраннаяСтрока);
	СтандартнаяОбработка = Ложь;
КонецПроцедуры

Есть форма обработки (модуль):
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
	Отбор = Новый Структура("Контрагент",СсылкаНаКонтрагента);
	ФормаСпискаРегСведенийПараметры = Новый Структура("Отбор,РежимВыбора,ТолькоПросмотр,МножественныйВыбор",Отбор,Истина,Истина,Ложь);
	
	ОткрытьФорму("РегистрСведений.ШаблоныЗаказовКлиентов.ФормаСписка",ФормаСпискаРегСведенийПараметры,ЭтаФорма);
КонецПроцедуры // ВыполнитьКоманду()

&НаКлиенте
Процедура ВыбратьЭлементРегистра(Команда)
	ВыполнитьКоманду(1);
КонецПроцедуры


&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
	
КонецПроцедуры
Показать


В процедуре ОбработкаВыбора не могу получить значения ВыбранноеЗначение.Контрагент или ВыбранноеЗначение. ЗаказКлиента. Что не так делаю?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. user633533_encantado 11 25.03.19 11:17 Сейчас в теме
На клиенте и не получится, на сервер выбранное значение передавай и там с ним работай.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. SedovSU@mail.ru 297 25.03.19 13:23 Сейчас в теме
У вас есть элемент, например Элемент.Контрагент. Есть кнопка - команда. Есть регистр сведений. При выборе значения регистра сведений, нужно подставить его в поле Элемент.Контрагент.

1. Нажимаем на команду

&НаКлиенте
Процедура ВыбратьЭлементРегистра(Команда)
    ВыполнитьКоманду(1);
КонецПроцедуры


2. Выполняем команду

&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
    Отбор = Новый Структура("Контрагент",СсылкаНаКонтрагента);
    ФормаСпискаРегСведенийПараметры = Новый Структура("Отбор,РежимВыбора,ТолькоПросмотр,МножественныйВыбор",Отбор,Истина,Истина,Ложь);
    
    ОткрытьФорму("РегистрСведений.ШаблоныЗаказовКлиентов.ФормаСписка",ФормаСпискаРегСведенийПараметры,Элемент); // вот тут элемент.контрагент
КонецПроцедуры // ВыполнитьКоманду()


3. Выбираем значение

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ОповеститьОВыборе(ВыбраннаяСтрока);
СтандартнаяОбработка = Ложь;
КонецПроцедуры

4. ОбработкаВыбора у элемента

Процедура КонтрагентОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Контрагент = ВыбранноеЗначение.Контрагент
КонецПроцедуры


Можно сделать через опевещения формы, подход тотже
2. user633533_encantado 11 25.03.19 11:17 Сейчас в теме
На клиенте и не получится, на сервер выбранное значение передавай и там с ним работай.
3. SlavaKron 25.03.19 11:18 Сейчас в теме
Ключ записи содержит только значения ключевых полей. Чтобы получить значения реквизитов записи, воспользуйтесь методом СоздатьМенеджерЗаписи регистра сведений, заполните значение ключевых полей из ВыбраннаяСтрока и используйте метод Прочитать() менеджера.
SayDimas; +1 Ответить
4. SedovSU@mail.ru 297 25.03.19 13:03 Сейчас в теме
Вот вы когда открываете форму списка, вы указываете владельца формы - ЭтаФорма. Следовательно у вас когда будет оповещение о выборе работать. то она оповестить форму. а вам нужно чтобы оповестила элемент. Когда открываете форму вкачестве владельца укажите ЭлементФормы. Далее когда вы выберите значение на форме списка то у вас оповестить элемент (у него в событие ОбработкаВыбора вы уже получите то что нужно)
6. SedovSU@mail.ru 297 25.03.19 13:27 Сейчас в теме
А вот все таки у вас все верно сделано, вы просто поменяйте параметр который передаете и все получиться

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

Процедура ОбработкаВыбора(выбранноезначение, Источник)
Если ТипЗначения(ВыбранноеЗначение) = Тип("Структура) Тогда
Контрагент = ВыбранноеЗначение.Контраент
Конецесли
Конецпроцедуры

А тот пример который у вас, вы не можете получить ключзаписи на клиенте поэтому и не доступно, если передать на сервер то все получиться
8. AndrewKop 25.03.19 15:29 Сейчас в теме
(6) Возьму на заметку. Спасибо!
7. AndrewKop 25.03.19 15:26 Сейчас в теме
Спасибо всем, кто отписался! На &НаСервере все отлично получилось.
9. burza 13.04.23 12:31 Сейчас в теме
как передать на сервер выбраное значения подскажите?
10. пользователь 13.04.23 12:42
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот