Имя: Пароль:
1C
1С v8
УФ Из формы выбора получить значение из другой колонки
0 Надежда25
 
21.08.19
14:32
Добрый день!
Как из формы выбора получить два значения из строки выбора? То есть мне нужна не только Номенклатура, но и значение размера.
&НаКлиенте
Процедура ВыдачаСпецодеждыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;  
        ПараметрыФормы = Новый Структура;
    Отбор = Новый Структура;
    Отбор.Вставить("Владелец", СтрокаТЧ.ВидНоменклатуры);
    ПараметрыФормы.Вставить("Отбор", Отбор);
        ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбораДляВыдачи", ПараметрыФормы, ЭтаФорма.Элементы.ВыдачаСпецодеждыНоменклатура);
КонецПроцедуры

Спасибо.
1 Надежда25
 
26.08.19
10:28
Попробую поднять.
В форме выбора произвольный запрос, которым я выбираю из регистра остатки по номенклатуре и размерам.
Если использовать ОписаниеОповещения, то я могу получить доступ ко всем реквизитам справочника Номенклатура, но размера там нет. Можно ли в
Процедура ВыдачаСпецодеждыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
указать, что ДанныеВыбора - это строка?
Или как-то по другому это делается?
2 hhhh
 
26.08.19
10:31
(1) подбором пусть пользуются.
3 Надежда25
 
26.08.19
10:42
Мне нужны два значения из одной строки. То есть пользователь выбирает Номенклатуру, а вместе с ней в другую ячейку ТЧ записывается и размер. В форме выбора в процедуре ПередЗакрытием я вижу это значение, но: 1) не знаю как передать в нужную форму попроще, 2) мне кажется, что правильнее это сделать в текущей форме. Прочитать строку, а не элемент.
4 aleks_default
 
26.08.19
11:10
Закрыть(Новый Структура("Номенклатура,Размер",Номенклатура,размер));
5 aleks_default
 
26.08.19
11:12
Опять же зависит как описана обработка выбора в форме владельце
6 aleks_default
 
26.08.19
11:12
Может через временное хранилище
7 Надежда25
 
26.08.19
11:28
(4) Закрыть - это где?
Форма выбора - динамический список с произвольным отбором.
8 aleks_default
 
26.08.19
11:32
(7)Это в форме выбора. Покажи что в событии ОбработкаВыбора таблицы ВыдачаСпецодеждыНоменклатура
9 Надежда25
 
26.08.19
11:46
Ничего. У меня в ОбработкуВыбора не приходит. Вот здесь вижу размер и через хранилище могу передать.
&НаКлиенте
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    ВыбрСтрока = Элементы.Список.ТекущиеДанные;
    //Размер = ВыбрСтрока.Размер;
КонецПроцедуры
10 aleks_default
 
26.08.19
11:48
Ну значит в обработкеоповещения формы что-то должно быть
11 aleks_default
 
26.08.19
11:59
ОповеститьОВыборе у вас в форме выбора же есть где-то? Вот передавайте туда структуру а не ссылку, ну и в обработке оповещения правильно обработать выбор
12 Надежда25
 
26.08.19
15:15
Спасибо, aleks_default. Я делаю так (ниже). В ДополнительныхПараметрах в Процедуре ВыборЗавершение есть Номенклатура и Размер, но они пустые. Как туда прочитать значения из строки выбора?
&НаКлиенте
Процедура ВыдачаСпецодеждыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;    
СтрокаТЧ = Элементы.ВыдачаСпецодежды.ТекущиеДанные;
ПараметрыФормы = Новый Структура;
    Отбор = Новый Структура;
    Отбор.Вставить("Владелец", СтрокаТЧ.ВидНоменклатуры);
    ПараметрыФормы.Вставить("Отбор", Отбор);
ПараметрыОповещения = Новый Структура("Номенклатура, Размер", СтрокаТЧ.Номенклатура, СтрокаТЧ.Размер);
    ОписаниеОповещения = Новый ОписаниеОповещения("ВыборЗавершение", ЭтотОбъект, ПараметрыОповещения);
     ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбораДляВыдачи", ПараметрыФормы, ЭтотОбъект,,,,ОписаниеОповещения);
КонецПроцедуры

Процедура ВыборЗавершение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
        
КонецПроцедуры
13 aleks_default
 
26.08.19
15:30
Я не очень понял, зачем вы тогда вообще в открываемую форму передаете параметры?
14 aleks_default
 
26.08.19
15:36
Давайте начнем с того что такое Размер? Это характеристика номенклатуры или реквизит? Если реквизит, то его можно получить уже после завершения выбора номенклатуры
15 aleks_default
 
26.08.19
15:42
Если это характеристика и ее нужно получить из формы выбора, то тогда только так как я уже описывал выше - в форме ФормаВыбораДляВыдачи находите метод ОповеститьОВыборе(...) и вставляете в нго в качестве параметра не Номенклатуру а Структуру состоящую из Номенклатуры и Размера. И потом вы получите эту структуру в процедуре ВыборЗавершение в параметре РезультатЗакрытия
16 Надежда25
 
26.08.19
15:49
Размер - это справочник. В документе "Получении спецодежды" указывается номенклатура и размер. Затем из регистра накопления делается отбор по остаткам (номенклатура, размер).
В открываемую форму передаю отбор по владельцу "Вид номенклатуры". Справочник Номенклатура подчинен справочнику "Вид номенклатуры" (Одежда, Обувь), также как и Справочник "Размеры", т..к. у видов одежды одни и те же размеры.
17 aleks_default
 
26.08.19
15:53
Ну то есть это что-то вроде характеристики, понятно. Ну и что не получается с (15)?
18 Надежда25
 
26.08.19
16:03
В форме метода ОповеститьОВыборе(...) у меня нет.