Немодально из списка значений выбрать значение и получить ответ

1. toptap 27.02.17 13:38 Сейчас в теме
Добрый день, всем
1С:Предприятие 8.3 (8.3.9.2170) - УТ (11.1.10.94)

Мне надо немодально из списка значений выбрать значение и получить ответ.
Никак не получается.

МОДАЛЬНО:
СписокВидовОбъектов = Новый СписокЗначений;
	СписокВидовОбъектов.Добавить("Документ","Документ");
	СписокВидовОбъектов.Добавить("Справочник","Справочник");
	ВыбЭлемент = СписокВидовОбъектов.НайтиПоЗначению("Документ");
	ВыбЭлемент = СписокВидовОбъектов.ВыбратьЭлемент("Выберите вид объекта", ВыбЭлемент);

Но программа ругается, что использование модальных окон запрещено.
Перепробовала кучу вариантов из инета, чегото не то пишу, а чего не пойму
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. spacecraft 27.02.17 13:46 Сейчас в теме
(1) встаем на последней приведенной строке кода. Выбираем из контекстного меню Рефакторинг - Нерекомендуемые синхронные вызовы - Преобразовать вызовы модуля.
Удивляемся. При необходимости подправляем.
Пользователь 1С; Voland775; Alex17; vladyko_kiu; AloneWolf; @Fancy; Igorro82IT; user1573043; Date; AnryMc; Veric; Redoubtable; Windsor77; Lolmes; fores1c; justaria; Mahon83; Bolnov; m1_1976; s0u1; ut2k5; seperblunt2; +22 Ответить
18. m1_1976 13 01.08.20 11:06 Сейчас в теме
(3) Блин!!! Столько лет зря... оказывается вот как можно было!
Рефакторинг...
Bayker; Пользователь 1С; luda33; Igorro82IT; Windsor77; +5 Ответить
19. fores1c 16.02.21 11:33 Сейчас в теме
(3)Я в шоке. Мир никогда не станет прежним
Пользователь 1С; luda33; Igorro82IT; Windsor77; +4 Ответить
4. japopov 68 27.02.17 13:56 Сейчас в теме
(1)
Вероятно, для Вас два решения:
1) Смотрите внимательно процедуру для события НачалоВыбора (Вы ведь, скорее всего вы в неё хотите внедрить свой код?). Вам надо всего-то сформированный список значений сохранить в параметр ДанныеВыбора, а параметр СтандартнаяОбработка установить в Ложь.
2) Смотрите, как предложили в (3)
Egovigor; 1cv7; +2 Ответить
2. sommid 27.02.17 13:41 Сейчас в теме
почитайте в справке про объект ПоказатьВыборИзСписка()
5. toptap 02.03.17 15:20 Сейчас в теме
(2)
Добрый день.
Спасибо, но не получилось что то. Попробовала:

СписокВидовОбъектов = Новый СписокЗначений;
	СписокВидовОбъектов.Добавить("Документ","Документ");
	СписокВидовОбъектов.Добавить("Справочник","Справочник");
	
Оповещение = Новый ОписаниеОповещения("ВыполнитьПослеВыбора", ЭтаФорма);
ПоказатьВыборИзСписка(Оповещение, СписокВидовОбъектов);//,Элемент,ВыбЗнач1);

&НаКлиенте 
Процедура ВыполнитьПослеВыбора(Результат, ПараметрыОповещения) Экспорт
	
	Если Результат = Неопределено Тогда 
		Возврат;
	КонецЕсли;
	
КонецПроцедуры
Показать

В выбор не заходит, ничего не дает выбрать, вылетает из программы по ошибке. Что делаю не так?
15. sommid 03.03.17 10:20 Сейчас в теме
(5) визуально вроде бы верно все.. единственное можете попробовать сделать необязательным параметр ПараметрыОповещения - вы же его не задаете при создании обработчика оповещения.
Процедура ВыполнитьПослеВыбора(Результат, ПараметрыОповещения = Неопределено) Экспорт
16. toptap 09.03.17 12:15 Сейчас в теме
(15)
Спасибо, нго так все равно не работает...
6. igel9780 173 02.03.17 15:27 Сейчас в теме
А что в ошибке написано? А на какой строчке ошибка?
7. toptap 02.03.17 16:13 Сейчас в теме
(6)
В выбор не заходит. Программа говоритв в окошке: "Подождите, идет сбор данных об ошибке..." и потом программа просто закрывается (вылетает)
8. japopov 68 02.03.17 16:29 Сейчас в теме
(7) А можно подробнее по самое начало задачи. Когда Вам надо сделать выбор из списка? Мой ответ (4) не подойдёт? Там же стандартно всё...
11. igel9780 173 03.03.17 08:38 Сейчас в теме
(7) Где-то у вас серьезная ошибка, которая вызывает переполнение стека 1С:Предприятия. Возможно, вызов серверной процедуры там где не положено.
9. caponid 02.03.17 16:46 Сейчас в теме
Создать свою форму с блджеком и .. выводом списка и открывать её с установленным свойством "Режим открытия окна" - "Блокировать весь интерфейс"
10. igel9780 173 03.03.17 08:36 Сейчас в теме
(9) Ээээ... Где логика? Человек хочет перейти на асинхронные вызовы, а вы предлагаете окно, блокирующее весь интерфейс.
12. kolya_tlt 86 03.03.17 09:01 Сейчас в теме
(10) одно другому не мешает. в (9) дело говорят, платформенный метод ПоказатьВыборИзСписка можно считать костылём, который быстро сделали из-за ввода немодальности. Хорошим решением в данной задаче сделать свой красивую и удобную пользователю форму.

ps блокировать можно интерфейс владельца, а не весь интерфейс.
13. igel9780 173 03.03.17 09:06 Сейчас в теме
(12) Ну да. Ну да. А свежий Chrome или Mozilla тут же пошлёт ваше окно в жопу. Ибо нефиг.
14. kolya_tlt 86 03.03.17 09:36 Сейчас в теме
(13) да что вы говорите...

&НаКлиенте
Процедура Команда1(Команда)
	
	ОписаниеОповещения = Новый ОписаниеОповещения(
		"Команда1Продолжение",
		ЭтотОбъект);
	
	ОткрытьФорму("ОбщаяФорма.ТестХром",, ЭтаФорма,,,,
		ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	
КонецПроцедуры
	
&НаКлиенте
Процедура Команда1Продолжение(Результат, Параметры) Экспорт 
	
	
	
КонецПроцедуры
Показать


Прикрепленные файлы:
17. ДимокШ 7 03.02.18 13:18 Сейчас в теме
Ещё один правильный немодальный вариант:

Спис = Новый СписокЗначений;
спис.Добавить("1");
спис.Добавить("2");
ПоказатьВыборИзМеню(Новый ОписаниеОповещения("ОбработатьВыборИзСписка",ЭтотОбъект), спис);

&НаКлиенте
Процедура ОбработатьВыборИзСписка(парам1, парам2) Экспорт
	Если парам1 = Неопределено Тогда
		Возврат;
	КонецЕсли; 
КонецПроцедуры

Показать
20. user828152 10.11.23 20:50 Сейчас в теме
А вот вам и не костыли подъехали:

СписокДляВыбора = Новый СписокЗначений;
СписокДляВыбора.Добавить("1");
СписокДляВыбора.Добавить("2");

ОповещениеПослеВыбораЭлемента = Новый ОписаниеОповещения("ПослеВыбораЭлемента", ЭтотОбъект);

СписокДляВыбора.ПоказатьВыборЭлемента(ОповещениеПослеВыбораЭлемента, "Выберите что-то");

&НаКлиенте
Процедура ПослеВыбораЭлемента(ВыбранныйЭлемент, СписокПараметров) Экспорт
Если ВыбранныйЭлемент = Неопределено Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот