Имя: Пароль:
1C
1С v8
ОбработкаВыбора в управляемой форме срабатывает дважды
0 Управляемые Формы
 
06.02.12
18:03
Есть документ, в котором есть команда, суть которой - выбрать обработчик из модуля "ОбработкаЗаполнения"

В модуле формы документа:


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

Вызывается управляемая форма списка, в которой есть код:


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

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   ОповеститьОВыборе(ВыбраннаяСтрока);
   ТекущийСписокОтбора = Список.Отбор.Элементы[3].ПравоеЗначение;
   ТекущийСписокОтбора.Добавить(ВыбраннаяСтрока);
   ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Ссылка", ТекущийСписокОтбора, ВидСравненияКомпоновкиДанных.НеВСписке);
КонецПроцедуры

В модуле формы документа есть еще

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

Так вот, Выбираю в форме выбора двойным кликом заказ покупателя, а в процедуру "ОбработкаВыбора" заходит дважды. Что я не так делаю?
1 Управляемые Формы
 
06.02.12
18:05
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
//ЗАБЫЛ
//
СтандартнаяОбработка = Ложь;
//
   ОповеститьОВыборе(ВыбраннаяСтрока);
   ТекущийСписокОтбора = Список.Отбор.Элементы[3].ПравоеЗначение;
   ТекущийСписокОтбора.Добавить(ВыбраннаяСтрока);
   ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Список.Отбор, "Ссылка", ТекущийСписокОтбора, ВидСравненияКомпоновкиДанных.НеВСписке);
КонецПроцедуры
2 Mort
 
06.02.12
18:14
ОповеститьОВыборе(ВыбраннаяСтрока) - раз, стандартная обработка - два
3 Управляемые Формы
 
06.02.12
18:21
(2) Спасибо! Разобрался )