Имя: Пароль:
1C
1С v8
УФ: ОбработкаВыбора
, ,
0 mirrr
 
15.05.12
14:31
На УФ документа кнопка "Подбор". Ее обработчик:

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

Открывается форма выбора справочника, но при 2-м нажатии не отрабатывает процедура "ОбработкаВыбора" и номенклатура не попадает в документ. В чем может быть дело?
1 PiVa123
 
15.05.12
14:34
В ПолучитьФорму  нет владельца формы - некому отправлять ОбработкуВыбора
2 mirrr
 
15.05.12
14:52
(1) написал
 ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",П,Объект.Состав);
то же самое. Что не так делаю?
3 experimentator76
 
15.05.12
14:55
(2) вероятно надо где-то выбор обработать ;)
4 mirrr
 
15.05.12
14:56
(3) В обработкувыбора не попадает.
5 PiVa123
 
15.05.12
14:56
(2) - Молодец- только надо было написать
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",П,ЭтаФорма);
6 mirrr
 
15.05.12
15:00
(5) В обычных формах вроде владельцем была таб. часть, а не вся форма?
7 hhhh
 
15.05.12
15:02
(6) табчасть - это же вообще данные.
8 PiVa123
 
15.05.12
15:03
(6) - Разве ?

Синтаксис:

ПолучитьФормуВыбора(<Форма>, <Владелец>, <КлючУникальности>)
Параметры:

<Форма> (необязательный)

Тип: Строка; ОбъектМетаданных: Форма .
Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы. Если параметр не указан, то используется основная форма, заданная в конфигураторе.
<Владелец> (необязательный)

Тип: Форма; Элемент управления.
Объект, который будет являться владельцем открываемой формы.
9 mirrr
 
15.05.12
15:07
(7) таб. часть - это элемент управления
из (8) <Владелец> (необязательный)
Тип: Форма; Элемент управления.
пример из бгу:
Процедура КоманднаяПанель1ДействиеПодбор(Кнопка)
   РаботаСДиалогами.ОткрытьПодборНоменклатурыПоСправочнику(ЭлементыФормы.Материалы,,Ложь);
КонецПроцедуры
Процедура КоманднаяПанель1ДействиеПодбор(Кнопка)
   РаботаСДиалогами.ОткрытьПодборНоменклатурыПоСправочнику(ЭлементыФормы.Материалы,,Ложь);
КонецПроцедуры

Формы обычные, в качестве владельца передается таб. часть "Материалы". Для УФ это не работает?
10 mirrr
 
15.05.12
15:09
(9)*

Процедура ОткрытьПодборНоменклатурыПоСправочнику(ТаблПоле, ЭтоТара = Ложь, ЗакрыватьПриВыборе = Истина) Экспорт
   ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(,ТаблПоле);
   ФормаВыбора.ЗакрыватьПриВыборе = Ложь;
   ФормаВыбора.ПараметрВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Элементы;
   
   Если ЭтоТара Тогда
       ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
       ФормаВыбора.Отбор.ТипНоменклатуры.Установить(Перечисления.ТипыНоменклатуры.Тара);
   КонецЕсли;    
   
   ФормаВыбора.ЗакрыватьПриВыборе = ЗакрыватьПриВыборе;
   ФормаВыбора.Открыть();
КонецПроцедуры
11 acsent
 
15.05.12
15:10
Объект.Состав ну ни как не элемент формы. Учи матчасть
12 acsent
 
15.05.12
15:11
Ты наверно и ссылку от объекта не можешь отличить
13 PiVa123
 
15.05.12
15:12
(10) - Ну можно и таблицу формы - но не в табличную часть объекта

ТаблицаФормы (FormTable)
ОбработкаВыбора (ChoiceProcessing)
Синтаксис:

ОбработкаВыбора(<ВыбранноеЗначение>, <СтандартнаяОбработка>)

СП хоть открываете или это не обязательно ?
14 mirrr
 
15.05.12
15:15
а как надо было вместо этого написать?
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",П,Объект.Состав);
15 mirrr
 
15.05.12
15:17
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",П,ЭтаФорма.Элементы.Состав);
16 PiVa123
 
15.05.12
15:18
(14) ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",П,Элементы.Состав);
Если конечно элемент таблицы формы так на форме наказывается "Состав"
17 mirrr
 
15.05.12
15:22
да спасибо. Если ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",П,ЭтаФорма);
то отрабатывает обработчик ОбработкаВыбора
если ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора",П,Элементы.Состав), то обработчик "СоставОбработкаВыбора"
18 mirrr
 
15.05.12
15:24
вот бы еще узнать, как при 2-ом нажатии на элемент справочника вывести окошко для ввода количества.
19 vmv
 
15.05.12
15:30
(18) ввестизначение() или подобная этом хрень
20 vmv
 
15.05.12
15:31
+(19) для индикации нажатий ввести клиентскую булевую переменную "ПервоеНажатие" если уж извращаться, то по страшному
21 mirrr
 
15.05.12
15:35
(20) сделал через "ВвестиЧисло"
Закон Брукера: Даже маленькая практика стоит большой теории.