1с задать вопрос (БСП)
В последнее время стал часто изучать библиотеку стандартных подсистем от 1с. И нашел там интересное решение с формой вопроса пользователю. Задать вопрос там представлено не в стандартном скучно варианте, а с возможностью самому формировать структуру кнопок, для ответа пользователя.
Представьте, что теперь вы сами можете с помощью готового решения, рисовать свою форму вопроса пользователю программно. Хотите свои кнопок и свои вариантов действий? Не вопрос! 5 минут – и у вас готовое решение!
В данном случае ‘Значение’ будет текстом на кнопке ответа. А ‘ключ’ – возвращаемым значением, благодаря которому мы сможем обработать ответ пользователя:
1 2 3 4 5 6 7 8 9 10 11 |
Процедура ОбработкаВопроса(РезультатВопроса, Параметры) Экспорт Если РезультатВопроса <> Неопределено Тогда Если РезультатВопроса.Значение = "ЧитатьСтатьи" Тогда КонецЕсли; КонецЕсли; КонецПроцедуры |
Так же дополнительно можно использовать и параметры оповещения, которые будут доступны после выбора ответа пользователя в процедуре обработки оповещения.
Для наглядности работы с вопросом пользователю из ‘БСП’ в обработке можно прям на форме конструировать вопросы и ответы. А уже при встраивании в свою конфигурацию программным способом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
&НаКлиенте Процедура ТестКонструкторВопроса(Команда) Если ЭтаФорма.ТаблицаВопросов.Количество() = 0 Тогда Возврат; КонецЕсли; ПараметрыОповещения = Новый Структура; Оповещение = Новый ОписаниеОповещения("ОбработкаВопроса", ЭтотОбъект, ПараметрыОповещения); ТекстВопроса = НСтр("ru = '" + СокрЛП(ЭтаФорма.Вопрос) + "'"); //1-ый вариант Кнопки = Новый СписокЗначений(); Для Каждого СтрокаТЗ Из ЭтаФорма.ТаблицаВопросов Цикл Кнопки.Добавить(СокрЛП(СтрокаТЗ.Ключ), НСтр("ru = '" + СокрЛП(СтрокаТЗ.Значение) + "'")); КонецЦикла; //2-ой вариант делаем это через код //Кнопки = Новый СписокЗначений(); //Кнопки.Добавить("Перейти", НСтр("ru = 'Перейти на сайт'")); //Кнопки.Добавить("Продолжить", НСтр("ru = 'Продолжить'")); //Кнопки.Добавить("Завершить", НСтр("ru = 'Завершить работу'")); //Кнопки.Добавить("Перезапустить", НСтр("ru = 'Перезапустить программу'")); ПараметрыВопроса = ПараметрыВопросаПользователю(); ПараметрыВопроса.Заголовок = НСтр("ru = 'Переход на сайт'"); ПараметрыВопроса.БлокироватьВесьИнтерфейс = Истина; ПоказатьВопросПользователю(Оповещение, ТекстВопроса, Кнопки, ПараметрыВопроса); КонецПроцедуры |
Качаем бесплатно обработку и используем в своих решениях. Удачи!
Скачать файлы 1с вопрос пользователю (БСП) (.epf)