Хочется человеческий выбор из списка (из нескольких значений), чтобы при этом на форме место было только на одно значение, а при нажатии открывался рядышком выбор на форме. Выбор типа подменю в мобильном интерфейсе сделать невозможно. Штатный выбор открывается либо снизу формы "барабаном", либо в отдельном окне. В этой статье упоминается реализация, когда как-то через условное оформление выкрутились, чтобы при управлении видимостью "своего" списка выбора не менялась общая "сетка" формы. Но у меня не получается. Я уже чего только не пробовал.
Ближе всего к желаемому получилось через "Поле переключателя" с видом "Переключатель" - классический радиобатон. Если я управляю им через видимость и отображаю, когда надо произвести выбор а после выбора прячу - то выглядит фактически как выпадающее меню (со сдвижкой нижних элементов формы). Но верстка при этом заметно "прыгает" - меняются горизонтальные размеры элементов в этом вертикальном ряду. Вот как бы этого избежать. Или альтернативу какую.
Как "кирпичиками" автор статьи выводил - я вообще не понял.
(2) 1С:Предприятие 8.3 (8.3.18.1363), мобильная платформа 8.3.18.60. Пишется мобильное приложение "с нуля".
Нет проблем проапгрейдиться, если это чем-то поможет.
Получилось!
Не так как в статье, но меня устроило. Вполне ничего выглядит. Без всяких управления видимостью и условного оформления.
Элементы списка завел как декорации в свертываемой группе элементов формы.
В заголовке свернутой группы вывел название выбранного элемента.
При нажатии на декорацию элемента (гиперссылка) в развернутой группе - изменяется заголовок группы, меняется значение нужного реквизита и группа сворачивается.
Свертка/развертка группы выглядит вполне подходяще для списка выбора.
У элемента списка выбора есть значение и представление
Например значение это ГУИД справочника, а представление это наименование элемента справочника
//СобытиеПоляВвода НачалоВыбора
&НаКлиенте
Процедура ПолеВводаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СписокНужныхЭлементов = Элементы.ПолеВвода.СписокВыбора;
СписокНужныхЭлементов.Очистить();
МассивСтрокСписка = ПолучитьМассивСтрокСписка();//Заполняем список нужными значениями
Если МассивСтрокСписка.Количество() > 0 Тогда
Для Каждого ЭлементМассива Из МассивСтрокСписка Цикл
СписокНужныхЭлементов.Добавить(ЭлементМассива.<ЗначениеЭлементаСписка>,ЭлементМассива.<ПредставлениеЭлементаСписка>);
КонецЦикла;
Иначе
ПоказатьПредупреждение(,"Данные не найдены",5,"Ошибка получения списка");
КонецЕсли;
КонецПроцедуры
//Событие ОбработкаВыбора
&НаКлиенте
Процедура ПолеВводаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
<ЗначениеЭлементаСписка> = ВыбранноеЗначение;
<ПредставлениеЭлементаСписка> = Элементы.ПолеВвода.СписокВыбора.НайтиПоЗначению(<ЗначениеЭлементаСписка>).Представление;
КонецПроцедуры
//Как показать установленное значение в форме
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ВыбранноеЗначение = ПолучитьСтруктуруВыбранногоЗначения();
//Получаем структуру Значение/Представление, например из сохраненных настроек
Если ВыбранноеЗначение <> Неопределено Тогда
<ПредставлениеЭлементаСписка>=ВыбранноеЗначение.<ПредставлениеЭлементаСписка>;
<ЗначениеЭлементаСписка> = ВыбранноеЗначение.<ЗначениеЭлементаСписка>;
Элементы.ПолеВвода.СписокВыбора.Добавить(<ЗначениеЭлементаСписка> ,<ПредставлениеЭлементаСписка>);
КонецЕсли;
КонецПроцедуры
(5) Возможно, вы не поняли суть проблемы.
Суть проблемы - в некрасивом отображении выбора из списка в мобильном интерфейсе.
Если попробовать осуществить выбор значения для поля ввода в режиме выбора из списка, то где бы это поле ввода не находилось - в самом низу экрана откроется "бочонок" прокрутки выбора значения. Что выглядит мягко говоря не очень.