Балуясь с мобильной платформой, после нескольких дней неимоверного восторга ("А-а-а, я пишу приложения под Ифоны и прочие ксяоми!!!"), при написании одной конфигурации для себя, обнаружил что мне не хватает выразительных средств для организации взаимодействия с пользователем. В частности, при показатьВыборИзСписка мне не нравится, что список отображается сверху формы (неудобно при большом формате телефона) , при включении РежимВыбораИзСписка у поля список отображается снизу и только с центральным выравниванием (некрасиво), а в показатьВопрос (да и в остальных приведенных случаях) - меня не устраивает размер шрифтов (я слышал, что носить лупу с собой для управления телефоном - моветон и дикость).*
Для морального удовлетворения и в целях эстетического воспитания масс написал нижепредложенную обработку "СпроситьПользователя", в которой почти все визуальные элементы можно кастомизировать передаваемым в форму параметром.
Использование обработки
После интеграции обработки в вашу конфигурацию, вызов обработки осуществляется стандартным методом асинхронного вызова:
ОткрытьФорму("Обработка.СпроситьПользователя.Форма.Форма",ПараметрВызова,ЭтотОбъект,,,,ОповещениеОВыборе);
Где «ОповещениеОВыборе» - значение типа ОписаниеОповещения:
ОповещениеОВыборе = Новый ОписаниеОповещения("РеакцияНаВыборПользователя",этотОбъект);
ПараметрВызова – структура, в наиболее полном варианте содержащая ключи:
параметрВызова=новый структура("ПараметрыОтображения, Заголовок, Пиктограмма, ТекстВопроса, ВариантыОтветов, ОтображенияОтветов, ВозвращаемыйПараметр",
новый структура("ГоризонтальноеПоложение, ВертикальноеПоложение",<строка_ГоризонтальноеПоложение>,<строка_ВертикальноеПоложение>),
<Строка_Заголовка>,
новый структура("Текст, ЦветТекста, ЦветФона, Размер", <строка_символ>,<новый цвет(?,?,?)>,<новый цвет(?,?,?)>,<число_размер>),
новый структура("Текст, ЦветТекста, ЦветФона, Размер", <строка_Текста_Вопроса>,<новый цвет(?,?,?)>,<новый цвет(?,?,?)>,<число_размер>),
<Массив_или_список_вопросов>,
<массив_или_список_параметров_кнопок>,
<произвольное_значение>
);
а в минимальном:
параметрВызова=новый структура("ТекстВопроса", <Строка_текста_вопроса>);
в этом случае форма будет отображена как предупреждение с одной кнопкой "Ок".
"ПараметрыОтображения" - значение типа "Строка" для управления горизонтальным положением элементов. Может принимать значения "Лево|Центр|Право"
- ИЛИ структура["ГоризонтальноеПоложение,ВертикальноеПоложение"] - со значениями типа "строка" для управления горизонтальным ("Лево|Центр|Право") и вертикальным ("Верх|Центр|Низ") положением элементов соответственно.
"Заголовок" - значение типа "Строка": строка заголовка формы
"Пиктограмма" - значение типа "Строка(3)" для отображения символов в верхней части формы
- ИЛИ структура["Текст, ЦветТекста, ЦветФона, Размер"]
где
"Текст" - "строка(3)": строка символов в верхней части формы
"ЦветТекста" - "Цвет": цвет текста декорации пиктограммы
"ЦветФона" - "Цвет": цвет фона декорации пиктограммы
"Размер" - "Число": размер шрифта декорации пиктограммы
"ТекстВопроса" - значение типа "Строка": строка содержащая вопрос пользователю
- ИЛИ структура["Текст, ЦветТекста, ЦветФона, Размер"]
где
"Текст" - "строка": строка содержащая вопрос пользователю
"ЦветТекста" - "Цвет": цвет текста вопроса
"ЦветФона" - "Цвет": цвет фона вопроса
"Размер" - "Число": размер шрифта вопроса
"ВозвращаемыйПараметр" - "Произвольный", данное значение будет возвращено в третем поле ("ВозвращаемыйПараметр") возвращаемой структуры
"ВариантыОтветов" - "Строка" - единственная кнопка
- ИЛИ "Массив" значений предлагаемых вариантов
- ИЛИ "СписокЗначений" значений предлагаемых к выбору
- ИЛИ "СписокЗначений", содержащий "СпискиЗначений" или "Массивы" значений. В этом случае представление значений верхнего уровня будет служить названием группировок кнопок.
"ОтображенияОтветов" - "Число", определяет размер шрифта во всех кнопках ответов
- ИЛИ "Цвет", определяет цвет текста всех кнопок ответа
- ИЛИ структура["ЦветТекста, ЦветФона, Размер"] определяющая отображение всех кнопок ответа
- ИЛИ массив или список значений приведенных выше вариантов, в этом случае определяет поведение каждой кнопки соответственно индекса.
Любой ключ структуры может отсутствовать, а любая вложенная структура может быть заменена примитивным типом для определения одного конкретного параметра.
Возвращаемое значение
Возвращает значение типа структура со следующими ключами "Индекс", "Значение", "ВозвращаемыйПараметр"
где "Индекс": "число" индекс выбранного пользователем ответа во входящей коллекции ответов, или -1 в случае закрытия формы без выбора
"Значение" : "произвольный", зависящий от входящих значений - значение выбранного пользователем ответа, "неопределено" в случае отсутствия выбора
"ВозвращаемыйПараметр": "произвольный", содержит параметр, переданный в форму в параметре "ВозвращаемыйПараметр". служит для сквозной передачи дополнительных данных
Известные недостатки обработки
- отсутствие возможности использовать значения системного перечисления КодВозвратаДиалога в качестве параметра ответов («Отсутствует отображение для типа…»);
- узкое поле применимости (только мобильные приложения);
- отсутствие графических пиктограмм;
- отсутствие объективной необходимости в разработке этой обработки.
*) Приведенная информация описывает поведение мобильной платформы версии 8.3.11.61. В дальнейших версиях поведение платформы может быть улучшено, но я не имею возможности проверить это.