|
Странное поведение поля формы | ☑ | ||
---|---|---|---|---|
0
alexshape
11.07.17
✎
07:42
|
Привет всем, кто сталкивался с такой особенностью. Есть обычное поле ввода на форме, при вводе текста в него после нажатия на пробел текст пропадает. Код получает данные с интернет сервиса и записывает все это в список выбора хначений для поле ввода. Но вот особенность если передавать в процедуру реквизит формы "СписокРеквизитовОрганизации", то текст введенный в поле пропадает после пробела, а если не передавать то остается и можно с ним работать мСписокДляВыбора = ПолучитьСписокДляВыбора(Текст, СписокРеквизитовОрганизации);
&НаКлиенте Процедура ПолеПоискаПоИННАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка) Если СтрДлина(Текст) > 3 Тогда Элемент.СписокВыбора.Очистить(); мСписокДляВыбора = ПолучитьСписокДляВыбора(Текст, СписокРеквизитовОрганизации); Для Сч = 0 по мСписокДляВыбора.Количество()-1 Цикл Элемент.СписокВыбора.Добавить(мСписокДляВыбора[Сч],мСписокДляВыбора[Сч]); Сч = Сч + 1; КонецЦикла; КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьСписокДляВыбора(Текст,СписокРеквизитовОрганизации) мЗначения = Новый Массив; HTTPЗапрос = Новый HTTPЗапрос(); HTTPЗапрос.АдресРесурса = "/api/v2/suggest/party"; HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/xml"); HTTPЗапрос.Заголовки.Вставить("Accept", "application/xml"); HTTPЗапрос.Заголовки.Вставить("Authorization", "Token "+Token); HTTPЗапрос.УстановитьТелоИзСтроки("<req><query>" + Текст + "</query></req>"); Соединение = Новый HTTPСоединение("dadata.ru",,,,,, Новый ЗащищенноеСоединениеOpenSSL); ОтветHTTP = Соединение.ОтправитьДляОбработки(HTTPЗапрос); Тело = ОтветHTTP.ПолучитьТелоКакСтроку(); Если ОтветHTTP.КодСостояния = 200 Тогда ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.УстановитьСтроку(Тело); ЧтениеXML.ПерейтиКСодержимому(); ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML); ЧтениеXML.Закрыть(); стрЗначение = ""; Если ОбъектXDTO.Свойства().Получить("suggestions") <> Неопределено Тогда Если ТипЗнч(ОбъектXDTO.suggestions) = Тип("СписокXDTO") Тогда Для каждого Ключ Из ОбъектXDTO.suggestions Цикл ДобавитьвМассивЗначений(мЗначения,Ключ); КонецЦикла; ИначеЕсли ТипЗнч(ОбъектXDTO.suggestions) = Тип("ОбъектXDTO") Тогда ДобавитьвМассивЗначений(мЗначения,ОбъектXDTO.suggestions); КонецЕсли; КонецЕсли; КонецЕсли; Возврат мЗначения; КонецФункции |
|||
1
Тихий омут
11.07.17
✎
07:53
|
Два вопроса.
Первый. Если в твоей функции ПолучитьСписокДляВыбора() переменная СписокРеквизитовОрганизации не используется, то зачем её передавать? Второй. А нет ли тут какого-то особого поведения платформы - т.к. функция у тебя определена на сервере без контекста, а ты туда передаешь реквизит формы? Т.е. если поменять определение на просто на сервере, поведение меняется или нет? |
|||
2
Имитация работы
11.07.17
✎
07:55
|
(1) контекстный вызов при автоподборе делать нельзя
(0) напиши перед параметром списком Знач (: |
|||
3
RomaH
naïve
11.07.17
✎
07:56
|
(1) если будет контекстный вызов сервера - поведение будет "непредсказуемо"
|
|||
4
alexshape
11.07.17
✎
07:57
|
(1) Первое: СписокРеквизитовОрганизации я собираюсь использовать
Второе: &НаСервере та же ошибка |
|||
5
alexshape
11.07.17
✎
07:59
|
(2) Т.е. более одного параметра нельзя передавать?
|
|||
6
RomaH
naïve
11.07.17
✎
08:03
|
поиграй со свойство поля - Обновление текста редактирования
|
|||
7
alexshape
11.07.17
✎
08:07
|
(6) Обновление текста редактирования помогло спасибо. С чем связанно то что Контекстный вызов не работает при автоподборе, из за частоты вызовов?
|
|||
8
Имитация работы
11.07.17
✎
08:11
|
(7) с требованиями вендора. СП почитай, наконец
|
|||
9
RomaH
naïve
11.07.17
✎
08:12
|
(7) он работает
но форма передается на сервер и возвращается с него - обновляется а при непосредственной работе с формой лучше ничего не обновлять |
|||
10
alexshape
11.07.17
✎
08:18
|
(8) Да, нашел: В обработчике данного события нельзя использовать серверные методы формы с директивой компиляции &НаСервере.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |