0
RomaH
naïve
13.09.19
✎
11:13
|
Интегрирую Дадату
Пользователь набирает строку - с сервиса получаю массив структур с описанием адресов
как реализовать выбор?
&НаКлиенте
Процедура АдресВПроизвольнойФормеОкончаниеВводаТекстаПосле(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
///....
ДанныеВыбора = Новый СписокЗначений;
Для Каждого фк_Адрес Из СтруктураАдреса.suggestions Цикл
ДанныеВыбора.Добавить(фк_Адрес.data,фк_Адрес.unrestricted_value);
КонецЦикла;
КонецПроцедуры
сейчас поле ввода - из реквизита формы типа строка
но при выборе в поле рисует "Структура" (что естественно)
как при выборе мне получить значение которое выбрал пользователь (объект), а в поле ввод отобразить строку - представление этого объекта?
|
|
2
RomaH
naïve
13.09.19
✎
12:05
|
сделал хранение через переменную модуля формы типа соответствие
но ИМХО, криво это
&НаКлиенте
Перем СоответствиеДанныхАдресов;
&НаКлиенте
Процедура АдресВПроизвольнойФормеОбработкаВыбораПосле(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ВыбранноеЗначениеАдреса = СоответствиеДанныхАдресов[ВыбранноеЗначение];
Если ВыбранноеЗначение = Неопределено Тогда
Возврат;
КонецЕсли;
&НаКлиенте
Процедура АдресВПроизвольнойФормеАвтоПодборПосле(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СписокАдресов = ПолучитьСписокПоАдресуВПроизвольнойФорме(Текст);
//пкЗаполнитьПоАдресуВПроизвольнойФорме(API_KEY, Текст);
СтруктураАдреса = ЗначениеИзJSON(СписокАдресов);
ДанныеВыбора = Новый СписокЗначений;
СоответствиеДанныхАдресов = Новый Соответствие;
Для Каждого фк_Адрес Из СтруктураАдреса.suggestions Цикл
ДанныеВыбора.Добавить(фк_Адрес.unrestricted_value);
СоответствиеДанныхАдресов.Вставить(фк_Адрес.unrestricted_value,фк_Адрес.data);
КонецЦикла;
КонецПроцедуры
|
|