Имя: Пароль:
1C
1С v8
Програмная установка действия элемнту на УФ
0 Alex_MA
 
02.10.13
14:06
Здравствуйте!

// Программное добавление элемента:

Элемент_QP_КолонкаТаблицыКонтактныеЛицаСПравомПодписи = Элементы.Добавить("QP_КолонкаКонтактноеЛицо", Тип("ПолеФормы"), Элемент_QP_ТаблицаКонтактныеЛицаСПравомПодписи);
Элемент_QP_КолонкаТаблицыКонтактныеЛицаСПравомПодписи.ПутьКДанным = "Объект.QP_КонтактныеЛицаСПравомПодписи.КонтактноеЛицо";
Элемент_QP_КолонкаТаблицыКонтактныеЛицаСПравомПодписи.Вид = ВидПоляФормы.ПолеВвода;

// Установка действия    
Элемент_QP_КолонкаТаблицыКонтактныеЛицаСПравомПодписи.УстановитьДействие("НачалоВыбора", "QP_КонтактноеЛицоСПравомПодписиНачалоВыбораИзСписка");

// В форме элемента добавляю следующую процедуру:

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

&НаСервере
Функция QP_ПолучитьСтруктуруДанныхДляОткрытияКонтактныхЛиц()
    
    СтруктураПараметров = Новый Структура;
    СтруктураОтбора     = Новый Структура;
    СтруктураОтбора.Вставить("Владелец", Объект.Контрагент.Партнер);
    СтруктураПараметров.Вставить("Отбор", СтруктураОтбора);
    
    Возврат СтруктураПараметров;
    
КонецФункции

Даже если СтандартнаяОбработка = Ложь,
программа все равно открывает две формы выбора, а мне нужно только ту у которой я установил отборы.
Где я ошибся ?

Спасибо за внимание.
1 Dmitry1c
 
02.10.13
14:10
Ты перепутал "НачалоВыбораИзСписка" с "НачалоВыбора"
2 Dmitry1c
 
02.10.13
14:14
Да, и еще

ОткрытьФорму("Справочник.КонтактныеЛицаПартнеров.ФормаВыбора", QP_ПолучитьСтруктуруДанныхДляОткрытияКонтактныхЛиц());

Тут надо передавать владельца-элемент управления (поле выбора), иначе обработка выбора не отработает нормально.
3 samozvanec
 
02.10.13
14:14
(1) опередил)
кстате, не факт. хотя, возможно, у него оба события привязаны. хотя, возможно он так и хочет.
4 Alex_MA
 
02.10.13
14:24
(1)но вот тут то правильно установлено действие "НачалоВыбора" и все равно какое имя у процедуры в модуле формы, даже если оно такое "QP_КонтактноеЛицоСПравомПодписиНачалоВыбораИзСписка"

// Установка действия    
Элемент_QP_КолонкаТаблицыКонтактныеЛицаСПравомПодписи.УстановитьДействие("НачалоВыбора", "QP_КонтактноеЛицоСПравомПодписиНачалоВыбораИзСписка");

(2)Это не понял
5 andreymongol82
 
02.10.13
14:26
(4) Третий параметр "ОткрытьФорму" - владелец - это элемент или форма
6 samozvanec
 
02.10.13
14:26
(4) непрограммно НачалоВыбораИзСписка у тебя не установлено?
7 Alex_MA
 
02.10.13
14:27
(6)нет
8 Alex_MA
 
02.10.13
14:41
Все заработало.
Большое человеческое всем спасибо :)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн