Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 07:05

Метод ОповеститьОВыборе() не вызывает событие Обработка выбора

Автор dart909, 20 июл 2015, 14:07

0 Пользователей и 1 гость просматривают эту тему.

dart909

Добрый день подскажите пожалуйста. Не пойму почему Метод ОповеститьОВыборе() не вызывает событие Обработка выбора . Вот код:

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

&НаСервере 
Функция ПолучитьДолжностьДиспетчер()
   Диспетчер = Справочники.Должности.НайтиПоНаименованию("Диспетчер");
   Возврат Диспетчер
КонецФункции

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

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

vitasw

Пичаль пичальная.
1.Судя по коду - у вас управляемое приложение. В управляемых формах не принято программно играться с формой до ее открытия. Для того чтобы открыть форму с отбором нужно использовать параметры формы.
Почитайте тут: http://v8.1c.ru/metod/faq2/answer.jsp?id=548

2. Не вызывает обработку выбора потому что в качестве владельца для открываемой формы вы указываете саму форму
Цитата: dart909 от 20 июл 2015, 14:07ФормаВыбора = ПолучитьФорму("Справочник.Сотрудники.Форма.ФормаВыбора",,ЭтаФорма);

о обработку выбора повесили на элемент формы:

Цитата: dart909 от 20 июл 2015, 14:07Процедура ДиспетчерОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Нужно или обработку выбора навешивать на саму форму или в качестве владельца формы указывать элемент формы. Если в качестве владельца указывать саму форму, то обязательно нужна обработка выбора формы, если же в качестве владельца указывать эелемент формы, то в принципе обработка выбора вообще не нужна.

dart909

Цитата: vitasw от 20 июл 2015, 14:22
Пичаль пичальная.
1.Судя по коду - у вас управляемое приложение. В управляемых формах не принято программно играться с формой до ее открытия. Для того чтобы открыть форму с отбором нужно использовать параметры формы.
Почитайте тут: http://v8.1c.ru/metod/faq2/answer.jsp?id=548

2. Не вызывает обработку выбора потому что в качестве владельца для открываемой формы вы указываете саму форму
Цитата: dart909 от 20 июл 2015, 14:07ФормаВыбора = ПолучитьФорму("Справочник.Сотрудники.Форма.ФормаВыбора",,ЭтаФорма);

о обработку выбора повесили на элемент формы:

Цитата: dart909 от 20 июл 2015, 14:07Процедура ДиспетчерОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Нужно или обработку выбора навешивать на саму форму или в качестве владельца формы указывать элемент формы. Если в качестве владельца указывать саму форму, то обязательно нужна обработка выбора формы, если же в качестве владельца указывать эелемент формы, то в принципе обработка выбора вообще не нужна.
Добавлено: 20 июл 2015, 14:49


Изменил ЭтаФорма на Элемент. Если правильно понял..Но все равно событие не вызывается

vitasw

Цитата: dart909 от 20 июл 2015, 14:48Изменил ЭтаФорма на Элемент. Если правильно понял..Но все равно событие не вызывается
Как вы это определили?

Цитата: dart909 от 20 июл 2015, 14:07
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
  СтандартнаяОбработка = Ложь;
Уберите это.

Вы вообще отладчиком пользоваться умеете?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск