В функции Вопрос() поменять названия кнопок Да+Нет
Все наверно сталкивались с этой функцией: ,
и думаю идея переобзывать кнопки в зависимости от ситуации уже посещала ваши светлые головы. Поделитесь, плиз, если это можно сделать! Или, если ТОЧНО нельзя.
Спасибо.
Если Вопрос("Перед заполнением таблица будет очищена,"+РазделительСтрок+"а существующие строки удалены. Продолжать?","ОК+Отмена") = "ОК" Тогда
...и думаю идея переобзывать кнопки в зависимости от ситуации уже посещала ваши светлые головы. Поделитесь, плиз, если это можно сделать! Или, если ТОЧНО нельзя.
Спасибо.
По теме из базы знаний
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
- Чат-бот для интернет-магазина в Телеграмм и 1С [demobot] - увеличение продаж
- Универсальный редактор табличных частей документов РеСольДо
- Быстрый фронт в базе размером 8.8 терабайт – наши стандарты при разработке компонентов системы
- Управление отпусками в 1С:ЗУП
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вопрос(<?>,)
Синтаксис:
Вопрос(<Текст_вопроса>,<Режим>,<Таймаут>)
Назначение:
Вывести окно вопроса и получить ответ.
Возвращает ответную реакцию в виде числа или строки, в соответствии с заданием параметра <Режим>:
-1 или 'Таймаут' ('Timeout'), если закончилось время ожидания ответа;
1 или 'ОК' ('ОК'), если если нажата кнопка OK;
2 или 'Отмена' ('Cancel'), если нажата кнопка Отмена;
3 или 'Стоп' ('Abort'), если нажата кнопка Стоп;
4 или 'Повтор' ('Retry'), если нажата кнопка Повтор;
5 или 'Пропустить' ('Ignore'), если нажата кнопка Пропустить;
6 или 'Да' ('Yes'), если нажата кнопка Да;
7 или 'Нет' ('No'), если нажата кнопка Нет.
Параметры:
<Текст_вопроса> - cтрока текста вопроса;
<Режим> - определяет набор кнопок диалога в виде числа или строки (в скобках английское написание):
0 или 'ОК' ('ОК') - кнопка OK;
1 или 'ОК+Отмена' ('OK+Cancel') - кнопки OK и Отмена;
2 или 'Стоп+Повтор+Пропустить' ('Abort+Retry+Ignore') - кнопки Стоп, Повтор, Пропустить;
3 или 'Да+Нет+Отмена' ('Yes+No+Cancel') - кнопки Да, Нет, Отмена;
4 или 'Да+Нет' ('Yes+No') - кнопки Да, Нет;
5 или 'Повтор+Отмена' ('Retry+Cancel') - кнопки Повтор, Отмена;
(любое другое значение или отсутствие параметра равносильно 0);
<Таймаут> - число секунд времени ожидания ответа (если опущен или 0, то без ограничения).
Подробнее см. в документации, глава 'Системные процедуры и функции'
Синтаксис:
Вопрос(<Текст_вопроса>,<Режим>,<Таймаут>)
Назначение:
Вывести окно вопроса и получить ответ.
Возвращает ответную реакцию в виде числа или строки, в соответствии с заданием параметра <Режим>:
-1 или 'Таймаут' ('Timeout'), если закончилось время ожидания ответа;
1 или 'ОК' ('ОК'), если если нажата кнопка OK;
2 или 'Отмена' ('Cancel'), если нажата кнопка Отмена;
3 или 'Стоп' ('Abort'), если нажата кнопка Стоп;
4 или 'Повтор' ('Retry'), если нажата кнопка Повтор;
5 или 'Пропустить' ('Ignore'), если нажата кнопка Пропустить;
6 или 'Да' ('Yes'), если нажата кнопка Да;
7 или 'Нет' ('No'), если нажата кнопка Нет.
Параметры:
<Текст_вопроса> - cтрока текста вопроса;
<Режим> - определяет набор кнопок диалога в виде числа или строки (в скобках английское написание):
0 или 'ОК' ('ОК') - кнопка OK;
1 или 'ОК+Отмена' ('OK+Cancel') - кнопки OK и Отмена;
2 или 'Стоп+Повтор+Пропустить' ('Abort+Retry+Ignore') - кнопки Стоп, Повтор, Пропустить;
3 или 'Да+Нет+Отмена' ('Yes+No+Cancel') - кнопки Да, Нет, Отмена;
4 или 'Да+Нет' ('Yes+No') - кнопки Да, Нет;
5 или 'Повтор+Отмена' ('Retry+Cancel') - кнопки Повтор, Отмена;
(любое другое значение или отсутствие параметра равносильно 0);
<Таймаут> - число секунд времени ожидания ответа (если опущен или 0, то без ограничения).
Подробнее см. в документации, глава 'Системные процедуры и функции'
Если недостаточно (4), можно сделать набор обработок, которые будут задавать все нужные вопросы.
У меня, например, таких в ассортименте.
У меня, например, таких в ассортименте.
Ну вот удачный пример Как кнопку "Запросить согласование" сопоставить с стандартным ответом "Да", а "Отозвать запрос на согласование с ответом "Нет" ??
<Кнопки> (обязательный)
Тип: РежимДиалогаВопрос; СписокЗначений.
Задает состав и текст кнопок диалога, а также, связанные с кнопками значения.
При использовании типа СписокЗначений:
Значение – содержит значение, связанное с кнопкой. Это значение является возвращаемым значением при выборе кнопки. В качестве значения может использоваться значение перечисления КодВозвратаДиалога, а также другие значения;
Представление – задает текст кнопки. Если представление не задано и в качестве значения используется значение перечисления КодВозвратаДиалога, то используется стандартное представление;
Картинка – не используется (должна быть пустой);
Пометка – не используется (должна быть пустой).
При использовании типа СписокЗначений список не должен быть пустым.
Тип: РежимДиалогаВопрос; СписокЗначений.
Задает состав и текст кнопок диалога, а также, связанные с кнопками значения.
При использовании типа СписокЗначений:
Значение – содержит значение, связанное с кнопкой. Это значение является возвращаемым значением при выборе кнопки. В качестве значения может использоваться значение перечисления КодВозвратаДиалога, а также другие значения;
Представление – задает текст кнопки. Если представление не задано и в качестве значения используется значение перечисления КодВозвратаДиалога, то используется стандартное представление;
Картинка – не используется (должна быть пустой);
Пометка – не используется (должна быть пустой).
При использовании типа СписокЗначений список не должен быть пустым.
В уф делаю так, в обычных нет под рукой примера, но как помню не сильно отличается код
| Код |
|---|
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.Да, "Записать");
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, "Отмена");
ПоказатьВопрос(Новый ОписаниеОповещения("ОбработкаОтветаНаВопросВозможностиЗаписиОтказа", ЭтотОбъект,Новый Структура("СтатусПеревода,Записывать", "Отказ", Истина)), "Для продолжения необходимо записать документ!",СписокКнопок,10);Показать полностью |
(16)
спасибо. Отличный метод. Сам бы я еще сидел и думал)
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.Да, "Записать");
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, "Отмена");
ПоказатьВопрос(Новый ОписаниеОповещения("ОбработкаОтветаНаВопросВозможностиЗаписиОтказа", ЭтотОбъект,Новый Структура("СтатусПеревода,Записывать", "Отказ", Истина)), "Для продолжения необходимо записать документ!",СписокКнопок,10);
СписокКнопок.Добавить(КодВозвратаДиалога.Да, "Записать");
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, "Отмена");
ПоказатьВопрос(Новый ОписаниеОповещения("ОбработкаОтветаНаВопросВозможностиЗаписиОтказа", ЭтотОбъект,Новый Структура("СтатусПеревода,Записывать", "Отказ", Истина)), "Для продолжения необходимо записать документ!",СписокКнопок,10);
спасибо. Отличный метод. Сам бы я еще сидел и думал)
Прикольные ребята - один поднимает пост трехлетней давности, второй рассказывает про уф в ветке про семерку.
Столкнулся с ошибкой:
Оказалось, платформа не умеет отображать вопрос с кнопками, у которых указана картинка.
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, "Отмена",,БиблиотекаКартинок.Ненавижу1С);
Ошибка при вызове метода контекста (ПоказатьВопрос): Несоответствие типов (параметр номер '3')
Оказалось, платформа не умеет отображать вопрос с кнопками, у которых указана картинка.
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, "Отмена",,БиблиотекаКартинок.Ненавижу1С);
(23) нет, вы смотрите на строчку добавления кнопки, а ошибка возникает на вызове вопроса, кнопки там идут третьим параметром. При добавлении кнопки третий параметр - это Пометка.
Платформа 8.3.15.1656
&НаКлиенте
Процедура КакаяТоКоманда(Команда)
ПараметрыОповещения = Новый Структура("Парам1", "Мой параметр");
Оповещение = Новый ОписаниеОповещения("ЗаполнитьВСоответствияЦентральныйСерверПослеЗакрытияВопроса ", ЭтотОбъект, ПараметрыОповещения);
ЗаголовокВопроса = "Можно ли добавлять картинки в кнопки вопроса?";
ТекстВопроса = "Если вы видите этот вопрос, значит в платформе пофиксили этот момент";
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить("РазмножитьНаВсе","Размножить на все",,БиблиотекаКартинок.РазбитьСтроку);
СписокКнопок.Добавить("ЗаменитьНаУказанный","Заменить",,БиблиотекаКартинок.ЗаполнитьПоОснованию);
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, "Отмена");
ПоказатьВопрос(Оповещение, ТекстВопроса, СписокКнопок,,,ЗаголовокВопроса);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьВСоответствияЦентральныйСерверПослеЗакрытияВопроса(Результат, ПараметрыОповещения) Экспорт
Если Результат = КодВозвратаДиалога.Отмена Или Результат = Неопределено Тогда
Возврат;
Иначе
КодНаСервере(Результат, ПараметрыОповещения);
КонецЕсли;
КонецПроцедуры ПоказатьПлатформа 8.3.15.1656
(25) 1С:Предприятие 8.3 (8.3.15.1565)
Ну вот текст менять можно, картинки не реализовали. Возможно на разных релизах это не документированная фича!
При использовании типа СписокЗначений:
Значение – содержит значение, связанное с кнопкой. Это значение является возвращаемым значением при выборе кнопки. В качестве значения может использоваться значение перечисления КодВозвратаДиалога, а также другие значения;
Представление – задает текст кнопки. Если представление не задано и в качестве значения используется значение перечисления КодВозвратаДиалога, то используется стандартное представление;
Картинка – не используется (должна быть пустой);
Пометка – не используется (должна быть пустой).
Значение – содержит значение, связанное с кнопкой. Это значение является возвращаемым значением при выборе кнопки. В качестве значения может использоваться значение перечисления КодВозвратаДиалога, а также другие значения;
Представление – задает текст кнопки. Если представление не задано и в качестве значения используется значение перечисления КодВозвратаДиалога, то используется стандартное представление;
Картинка – не используется (должна быть пустой);
Пометка – не используется (должна быть пустой).
Ну вот текст менять можно, картинки не реализовали. Возможно на разных релизах это не документированная фича!
Вопрос: можно ли методом ПоказатьВопрос сделать так, чтобы можно было выбрать 2-3 варианта из предложенных ответов?
(30) Можно. Вопрос неактуален, но я напишу для себя! Чтобы потом, когда забуду и понадобится, найти свой же пост))
Можно хоть 20 вариантов - все прекрасно работает! Коды ответа просто цифирями вместо КодВозвратаДиалога
&НаКлиенте
Процедура Команда1(Команда)
Опов = Новый ОписаниеОповещения("Команда1Завершение", ЭтотОбъект);
СЗ = Новый СписокЗначений;
СЗ.Добавить(1, "Кнопка1");
СЗ.Добавить(2, "Кнопка2");
СЗ.Добавить(3, "Кнопка3");
СЗ.Добавить(4, "Кнопка4");
СЗ.Добавить(5, "Кнопка5");
ПоказатьВопрос(Опов, "Нажмите чего - нибудь", СЗ);
КонецПроцедуры
&НаКлиенте
Процедура Команда1Завершение(Ответ, Парамс) Экспорт
Если Ответ = 1 Тогда
Сообщить("Нажата кнопка 1");
ИначеЕсли Ответ = 2 Тогда
Сообщить("Нажата кнопка 2");
ИначеЕсли Ответ = 3 Тогда
Сообщить("Нажата кнопка 3");
ИначеЕсли Ответ = 4 Тогда
Сообщить("Нажата кнопка 4");
ИначеЕсли Ответ = 5 Тогда
Сообщить("Нажата кнопка 5");
КонецЕсли;
КонецПроцедуры
ПоказатьМожно хоть 20 вариантов - все прекрасно работает! Коды ответа просто цифирями вместо КодВозвратаДиалога
Код с заменой имен кнопок для обычных форм
Если ДокументВыгруженВБП() Тогда
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить(КодВозвратаДиалога.Да, "Перенести");
СписокКнопок.Добавить(КодВозвратаДиалога.Нет, "Не переносить");
СписокКнопок.Добавить(КодВозвратаДиалога.Отмена, "Отмена");
Режим = РежимДиалогаВопрос.ДаНетОтмена;
ТекстВопроса = "Документ уже выгружен. Перенести изменения в бухгалтерию?";
Ответ = Вопрос(ТекстВопроса,СписокКнопок, 0);
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Отказ = Истина;
Иначе
Если Ответ = КодВозвратаДиалога.Да Тогда
СброситьФлагВыгрузки();
КонецЕсли;
КонецЕсли
КонецЕсли; Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
