Немодально из списка значений выбрать значение и получить ответ
Добрый день, всем
1С:Предприятие 8.3 (8.3.9.2170) - УТ (11.1.10.94)
Мне надо немодально из списка значений выбрать значение и получить ответ.
Никак не получается.
МОДАЛЬНО:
Но программа ругается, что использование модальных окон запрещено.
Перепробовала кучу вариантов из инета, чегото не то пишу, а чего не пойму
1С:Предприятие 8.3 (8.3.9.2170) - УТ (11.1.10.94)
Мне надо немодально из списка значений выбрать значение и получить ответ.
Никак не получается.
МОДАЛЬНО:
СписокВидовОбъектов = Новый СписокЗначений;
СписокВидовОбъектов.Добавить("Документ","Документ");
СписокВидовОбъектов.Добавить("Справочник","Справочник");
ВыбЭлемент = СписокВидовОбъектов.НайтиПоЗначению("Документ");
ВыбЭлемент = СписокВидовОбъектов.ВыбратьЭлемент("Выберите вид объекта", ВыбЭлемент);
Но программа ругается, что использование модальных окон запрещено.
Перепробовала кучу вариантов из инета, чегото не то пишу, а чего не пойму
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) встаем на последней приведенной строке кода. Выбираем из контекстного меню Рефакторинг - Нерекомендуемые синхронные вызовы - Преобразовать вызовы модуля.
Удивляемся. При необходимости подправляем.
Удивляемся. При необходимости подправляем.
(1)
Вероятно, для Вас два решения:
1) Смотрите внимательно процедуру для события НачалоВыбора (Вы ведь, скорее всего вы в неё хотите внедрить свой код?). Вам надо всего-то сформированный список значений сохранить в параметр ДанныеВыбора, а параметр СтандартнаяОбработка установить в Ложь.
2) Смотрите, как предложили в (3)
Вероятно, для Вас два решения:
1) Смотрите внимательно процедуру для события НачалоВыбора (Вы ведь, скорее всего вы в неё хотите внедрить свой код?). Вам надо всего-то сформированный список значений сохранить в параметр ДанныеВыбора, а параметр СтандартнаяОбработка установить в Ложь.
2) Смотрите, как предложили в (3)
(2)
Добрый день.
Спасибо, но не получилось что то. Попробовала:
В выбор не заходит, ничего не дает выбрать, вылетает из программы по ошибке. Что делаю не так?
Добрый день.
Спасибо, но не получилось что то. Попробовала:
СписокВидовОбъектов = Новый СписокЗначений;
СписокВидовОбъектов.Добавить("Документ","Документ");
СписокВидовОбъектов.Добавить("Справочник","Справочник");
Оповещение = Новый ОписаниеОповещения("ВыполнитьПослеВыбора", ЭтаФорма);
ПоказатьВыборИзСписка(Оповещение, СписокВидовОбъектов);//,Элемент,ВыбЗнач1);
&НаКлиенте
Процедура ВыполнитьПослеВыбора(Результат, ПараметрыОповещения) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
ПоказатьВ выбор не заходит, ничего не дает выбрать, вылетает из программы по ошибке. Что делаю не так?
(5) визуально вроде бы верно все.. единственное можете попробовать сделать необязательным параметр ПараметрыОповещения - вы же его не задаете при создании обработчика оповещения.
Процедура ВыполнитьПослеВыбора(Результат, ПараметрыОповещения = Неопределено) Экспорт
(10) одно другому не мешает. в (9) дело говорят, платформенный метод ПоказатьВыборИзСписка можно считать костылём, который быстро сделали из-за ввода немодальности. Хорошим решением в данной задаче сделать свой красивую и удобную пользователю форму.
ps блокировать можно интерфейс владельца, а не весь интерфейс.
ps блокировать можно интерфейс владельца, а не весь интерфейс.
(13) да что вы говорите...
&НаКлиенте
Процедура Команда1(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения(
"Команда1Продолжение",
ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ТестХром",, ЭтаФорма,,,,
ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура Команда1Продолжение(Результат, Параметры) Экспорт
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Ещё один правильный немодальный вариант:
Спис = Новый СписокЗначений;
спис.Добавить("1");
спис.Добавить("2");
ПоказатьВыборИзМеню(Новый ОписаниеОповещения("ОбработатьВыборИзСписка",ЭтотОбъект), спис);
&НаКлиенте
Процедура ОбработатьВыборИзСписка(парам1, парам2) Экспорт
Если парам1 = Неопределено Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
Показать
А вот вам и не костыли подъехали:
СписокДляВыбора = Новый СписокЗначений;
СписокДляВыбора.Добавить("1");
СписокДляВыбора.Добавить("2");
ОповещениеПослеВыбораЭлемента = Новый ОписаниеОповещения("ПослеВыбораЭлемента", ЭтотОбъект);
СписокДляВыбора.ПоказатьВыборЭлемента(ОповещениеПослеВыбораЭлемента, "Выберите что-то");
&НаКлиенте
Процедура ПослеВыбораЭлемента(ВыбранныйЭлемент, СписокПараметров) Экспорт
Если ВыбранныйЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
СписокДляВыбора = Новый СписокЗначений;
СписокДляВыбора.Добавить("1");
СписокДляВыбора.Добавить("2");
ОповещениеПослеВыбораЭлемента = Новый ОписаниеОповещения("ПослеВыбораЭлемента", ЭтотОбъект);
СписокДляВыбора.ПоказатьВыборЭлемента(ОповещениеПослеВыбораЭлемента, "Выберите что-то");
&НаКлиенте
Процедура ПослеВыбораЭлемента(ВыбранныйЭлемент, СписокПараметров) Экспорт
Если ВыбранныйЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот