Вход | Регистрация


Не работает правильно обработчик события в УФ

Не работает правильно обработчик события в УФ
Я
   23th
 
13.11.18 - 12:28
Я сделал обрбаотку события "ОкончаниеВводаТекста" в поле формы.
Самое интересное почему то при окончании не выходит форма выбора значения из списка - ДанныеВыбора. Раньше вроде все работало.
В чем может быть дело? Всем спасибо!
Платформа 8.3.12.1616

&НаКлиенте
Процедура ТелефонОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
    
    ОчисткаПолей();
    
    Если СтрДлина(Текст) > 5 тогда 
        
        ДанныеВыбора = ПолучитьСпиоокКонтактовПоТелефону(Текст);
        
    КонецЕсли;
    
    Если ДанныеВыбора = Неопределено тогда
        Телефон = СокрЛП(Текст);
    КонецЕсли;    
    
КонецПроцедуры
 
 
   tesseract
 
1 - 13.11.18 - 12:33
(0) Точно работала? СтандартнаяОбработка=Ложь должна быть.
   AlvlSpb
 
2 - 13.11.18 - 12:35
(0) А не орфография виновата?
ДанныеВыбора = ПолучитьСпиОокКонтактовПоТелефону(Текст);
   23th
 
3 - 13.11.18 - 12:37
(2) не орфография

СтандартнаяОбработка = Ложь делал....
   tesseract
 
4 - 13.11.18 - 12:39
(3) >>В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.

ТЕ ПолучитьСпиОокКонтактовПоТелефону(Текст); должна находится в общем модуле, если она северная.
   23th
 
5 - 13.11.18 - 12:40
(4) как понять в общем модуле?

&НаСервере
Функция ПолучитьСписокКонтактовПоТелефону(НомерТелефона)
    
    НомерТелефона = СтрЗаменить(НомерТелефона,"(","");
    НомерТелефона = СтрЗаменить(НомерТелефона,")","");
    НомерТелефона = СтрЗаменить(НомерТелефона,"-","");
    НомерТелефона = СтрЗаменить(НомерТелефона," ","");
    НомерТелефона = СтрЗаменить(НомерТелефона,"+","");
    ЧислоСимволов = СтрДлина(НомерТелефона);
    НомерТелефона = Сред(НомерТелефона, 2, ЧислоСимволов);
    НомерТелефона = "8" + НомерТелефона;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонтактныеЛицаПартнеровКонтактнаяИнформация.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.КонтактныеЛицаПартнеров.КонтактнаяИнформация КАК КонтактныеЛицаПартнеровКонтактнаяИнформация
    |ГДЕ
    |    КонтактныеЛицаПартнеровКонтактнаяИнформация.Тип = &Тип
    |    И КонтактныеЛицаПартнеровКонтактнаяИнформация.НомерТелефона = &НомерТелефона
    |    И КонтактныеЛицаПартнеровКонтактнаяИнформация.Вид = &Вид";
    
    Запрос.УстановитьПараметр("Тип",Перечисления.ТипыКонтактнойИнформации.Телефон); 
    Запрос.УстановитьПараметр("НомерТелефона",НомерТелефона);
    Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.МобильныйТелефонКонтактногоЛица);
    РезультатЗапроса = Запрос.Выполнить();
    СписокСсылок = Новый СписокЗначений;
    
    Если РезультатЗапроса.Пустой() тогда
        Телефон = НомерТелефона;
    Иначе
        
        ВыборкаТелефона = РезультатЗапроса.Выбрать();
        СтруктураСписка = Новый Структура;
        
        Пока ВыборкаТелефона.Следующий() цикл
            
            СтруктураСписка.Вставить("КонтактноеЛицо", ВыборкаТелефона.Ссылка);
            Если ВыборкаТелефона.Ссылка.РолиКонтактногоЛица.Количество() > 0 тогда
                СтруктураСписка.Вставить("Роль", ВыборкаТелефона.Ссылка.РолиКонтактногоЛица.Получить(0).РольКонтактногоЛица);
            Иначе
                СтруктураСписка.Вставить("Роль", "нет ролей!");
            КонецЕсли;
            
            СписокСсылок.Добавить(СтруктураСписка, Строка(СтруктураСписка.КонтактноеЛицо)+","+Строка(СтруктураСписка.Роль));
        КонецЦикла;
        
    КонецЕсли;
    
    Возврат СписокСсылок;
    
КонецФункции
   23th
 
6 - 13.11.18 - 12:44
(4)
я запрос то могу сделать только на сервере.
   Cyberhawk
 
7 - 13.11.18 - 12:44
(5) НаСервереБезКонтекста в модуле формы, если не поможет - выноси метод в общий модуль
   НастоящееИмя
 
8 - 13.11.18 - 12:54
Почему в теле процедуры ПолучитьСпиоокКонтактовПоТелефону, а сама функция ПолучитьСписокКонтактовПоТелефону.
Точно не здесь проблема?
   23th
 
9 - 13.11.18 - 13:12
(7) Поставил НаСервереБезКонтекста
не работает именно когда вызывается процедура
ОчисткаПолей();
    
а она у меня на клиенте...
   FIXXXL
 
10 - 13.11.18 - 13:19
(9) где именно поставил?
 
 Рекламное место пустует
   Cyberhawk
 
11 - 13.11.18 - 13:20
"она у меня на клиенте" // Ну может она все равно сервер дергает, в т.ч. и неявно
   23th
 
12 - 13.11.18 - 15:35
я понял, работа с реквизитами формы почему то сразу убивает обработчик события и он перестает отрабатывать.

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