Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Подбор в ТЧ документа из регистра сведений

Подбор в ТЧ документа из регистра сведений
Я
   Масянька
 
05.08.20 - 10:49
День добрый!
Есть РС, есть док-т. Нужно в ТЧ док-та выбрать из РС.
Реквизит ТЧ - строка (в который нужно выбрать).
Реквизит РС - строка (который нужно добавить.
В форме документа у реквизита:

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

    СтандартнаяОбработка = Ложь;
    
    ТекущаяСтрока = ЭлементыФормы.Материалы.ТекущаяСтрока;
    
    Парам = Новый Структура;
    Отбор = Новый Структура;
    Отбор.Вставить("Номенклатура", ТекущаяСтрока.Номенклатура);
    Парам.Вставить("Отбор", Отбор);
    
    ОткрытьФорму("РегистрСведений.СрокиГарантииНоменклатуры.ФормаСписка", Парам, ЭтотОбъект);

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

РС форма списка:
Процедура РегистрСведенийСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    
   ВыбранныйНаборДанных = Новый Структура("СерийныйНомер, ДокументОприходования");
    ВыбранныйНаборДанных.СерийныйНомер = Элемент.ТекущаяСтрока.СерийныйНомер;
    ВыбранныйНаборДанных.ДокументОприходования = Элемент.ТекущиеДанные.ДокументОприходования;
   ОповеститьОВыборе(ВыбранныйНаборДанных);
    
КонецПроцедуры

Не работает...
Что не так?
Спасибо.
   PuhUfa
 
1 - 05.08.20 - 10:55
(1) ОповеститьОВыборе оповещает не того, ну или ОбработкаВыбора висит не там, это смотря с какой стороны смотреть -)
   Масянька
 
2 - 05.08.20 - 11:00
(1) ОбработкаВыбора висит на реквизите ТЧ док-та.
   Масянька
 
3 - 05.08.20 - 11:01
+(2) Нужном реквизите.
   PuhUfa
 
4 - 05.08.20 - 11:02
(2) Мы не возражаем -) А теперь посмотри кого оповещает - ОповеститьОВыборе(ВыбранныйНаборДанных);
   FIXXXL
 
5 - 05.08.20 - 11:07
(2) ОткрытьФорму("РегистрСведений.СрокиГарантииНоменклатуры.ФормаСписка", Парам, ЭтотОбъект); тут владелец - исходная ФОРМА, не элемент
   Ёпрст
 
6 - 05.08.20 - 11:08
(0) для оф нужно пользовать текущиеданные, обработкавыбора нужно назначить самой форме, а не реквизиту. Передавать надо этаформа, а не этотобъект
   FIXXXL
 
7 - 05.08.20 - 11:08
(5) + соответственно ОповеститьОВыборе() из РС оповещает ФОРМУ, а не Элемент формы
   Ёпрст
 
8 - 05.08.20 - 11:10
И..для оф можно не использовать оповестить о выборе, а свму форму открывать в режиме выбора
   Масянька
 
9 - 05.08.20 - 11:10
Обычные формы (не УФ).
   Масянька
 
10 - 05.08.20 - 11:11
(5) Это я уже и так, и этак.
Изначально - ОткрытьФорму("РегистрСведений.СрокиГарантииНоменклатуры.ФормаСписка", Парам)
   Масянька
 
11 - 05.08.20 - 11:12
(8) У меня РС.
Я попыталась в РС (списке выбора):
Процедура ПриОткрытии()
    
    РежимВыбора = Истина;
    ЗакрыватьПриВыборе = Истина;
КонецПроцедуры
   Масянька
 
12 - 05.08.20 - 11:14
+ (11) Результат тот же - пусто.
   FIXXXL
 
13 - 05.08.20 - 11:15
(10) кароч
или
ОткрытьФорму("РегистрСведений.СрокиГарантииНоменклатуры.ФормаСписка", Парам, ЭЛЕМЕНТ)
или ОбработкаВыбора() вешай на форму и поптом присваивай то что прилетело тек.строке в ТЧ
   Масянька
 
14 - 05.08.20 - 11:23
Оставила:
форма док-та:
Процедура МатериалыСерийныйНомерНачалоВыбора(Элемент, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    
    ТекущаяСтрока = ЭлементыФормы.Материалы.ТекущаяСтрока;
    
    Парам = Новый Структура; 
    Отбор = Новый Структура; 
    Отбор.Вставить("Номенклатура", ТекущаяСтрока.Номенклатура);
    Парам.Вставить("Отбор", Отбор); 
    
    ОткрытьФорму("РегистрСведений.СрокиГарантииНоменклатуры.ФормаСписка", Парам, Элемент);

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

РС форма списка:
Процедура РегистрСведенийСписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    
    ВыбранныйНаборДанных = Новый Структура("СерийныйНомер, ДокументОприходования");
    ВыбранныйНаборДанных.СерийныйНомер = Элемент.ТекущаяСтрока.СерийныйНомер;
    ВыбранныйНаборДанных.ДокументОприходования = Элемент.ТекущиеДанные.ДокументОприходования;
    ОповеститьОВыборе(ВыбранныйНаборДанных);
    
КонецПроцедуры

В поле (реквизит ТЧ) - CY есть, но - открылось окно док-та Поступления ТМЦ. А вызов был из требования. Откуда поступление?
   Масянька
 
15 - 05.08.20 - 11:39
(13) Спасибо!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.