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

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

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

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

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

не работает именно когда вызывается процедура
ОчисткаПолей();
    
а она у меня на клиенте...
10 FIXXXL
 
13.11.18
13:19
(9) где именно поставил?
11 Cyberhawk
 
13.11.18
13:20
"она у меня на клиенте" // Ну может она все равно сервер дергает, в т.ч. и неявно
12 23th
 
13.11.18
15:35
я понял, работа с реквизитами формы почему то сразу убивает обработчик события и он перестает отрабатывать.