ОткрытиеФормы УТ11 модально

1. 22.06.22 11:15 Сейчас в теме
Добрый день.
Не могу разобраться как при открытии формы ДОЖДАТЬСЯ нажатия на ней определенной кнопки и только потом продолжать выполнять код дальше. На клиенте.
1/ВызываюДопФорму из активной, она открывается
ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",,,,,,,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);
Нужно чтобы по нажатию кнопки ОК или ОТМЕНА в Доп Форме продолжалось выполнение кода
Нужно Так:
Форма открывается,
пользователь вводит значения,
после этого проверка,
закрытие формы
и ПРОДОЛЖЕНИЕ кода

после открытия формы код продолжается
Данные="";
ввестистроку(Данные,"Выберитеноменклатуру",ложь);

Сейчас я получаю окно доп формы открытое и ввести строку поверх формы открытой
Заранее спасибо
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Найденные решения
2. Pavel Rodinchenko 22.06.22 11:33 Сейчас в теме +0.3 $m
(1)
Шаг 1.
Оповещение = Новый ОписаниеОповещения("КакоетоИмя", ЭтаФорма);

ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",,,,,,,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);
- в одном из параметров передается созданное оповещение.
После вызова пишешь Возврат;

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

// Обработка результат
КонецПроцедуры


Шаг 3. В открываемой форме делаешь кнопку "ОК" или любую другую. В ее код помещаешь нечто такое:
СтруктураЗакрытия = Новый Структура;
СтруктураЗакрытия.Вставить("Значение1", Значение1);
// можно и не структуру, а что удобно будет обрабатывать в дальнейшем.
Закрыть(СтруктураЗакрытия);


В результате на шаге 2 получаем в переменной "Результат" структуру из шага 3.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Pavel Rodinchenko 22.06.22 11:33 Сейчас в теме +0.3 $m
(1)
Шаг 1.
Оповещение = Новый ОписаниеОповещения("КакоетоИмя", ЭтаФорма);

ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",,,,,,,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);
- в одном из параметров передается созданное оповещение.
После вызова пишешь Возврат;

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

// Обработка результат
КонецПроцедуры


Шаг 3. В открываемой форме делаешь кнопку "ОК" или любую другую. В ее код помещаешь нечто такое:
СтруктураЗакрытия = Новый Структура;
СтруктураЗакрытия.Вставить("Значение1", Значение1);
// можно и не структуру, а что удобно будет обрабатывать в дальнейшем.
Закрыть(СтруктураЗакрытия);


В результате на шаге 2 получаем в переменной "Результат" структуру из шага 3.
5. user1268945 22.06.22 12:16 Сейчас в теме
(2)
Оповещение = Новый ОписаниеОповещения("КакоетоИмя", ЭтаФорма);
Параметр = Новый Структура("Оповещение",Оповещение);
				ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",Параметр,,,,,,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);

***Здесь получаю ошибку
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'val':
	форма: Элемент
	имя: {http://v8.1c.ru/8.2/mngsrv/ws}val
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ОписаниеОповещения'
***
и он не останавливается. Я пыталась делать через ПоказатьВводЗначения, тоже не помогло. Что нужно еще сделать? 
Похоже я очень сильно туплю((


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

// Обработка результат
КонецПроцедуры
Показать
6. Pavel Rodinchenko 22.06.22 15:47 Сейчас в теме
(5)
ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",Параметр,,,,,,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);

заменить на
ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",,,,,,Оповещение,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);
8. user1268945 22.06.22 17:04 Сейчас в теме
(6)продолжает выполнение кода
9. FatPanzer 16 22.06.22 17:07 Сейчас в теме
(8) ОткрытьФорму() - должно быть последним оператором в процедуре.
Pavel Rodinchenko; +1 Ответить
10. Pavel Rodinchenko 22.06.22 17:21 Сейчас в теме
(8)Внимательнее читать надо)
следовательно:
ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",,,,,,Оповещение,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);
Возврат;
Прикрепленные файлы:
11. FatPanzer 16 22.06.22 17:36 Сейчас в теме
12. Pavel Rodinchenko 22.06.22 17:46 Сейчас в теме
(11)Чтобы код дальше не выполнялся, если он есть. А если нет, то можно и не писать
13. FatPanzer 16 22.06.22 17:49 Сейчас в теме
(12) Он и не будет выполняться, если это последняя строчка в процедуре.
А иначе - зачем писать последующий код, если перед ним жестоко написать Возврат?
14. Pavel Rodinchenko 22.06.22 18:00 Сейчас в теме
(13)ну судя по 8 ответу код там все же есть
15. FatPanzer 16 22.06.22 18:02 Сейчас в теме
(14) И? То есть предлагаете оставить последующий говнокод, воткнув перед ним оператор Возврат?
17. user1268945 23.06.22 07:53 Сейчас в теме
(10) код выполнялся дальше,разделила на разные процедуры,все ок,спасибо
16. spacecraft 22.06.22 18:10 Сейчас в теме
(1) в конфигураторе есть инструменты, которые могут помочь.

Пишите:

ОткрытьФормуМодально("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма");

Далее, на слове ОткрытьФормуМодально нажимаете ПКМ, выбираете: Рефакторинг -> Нерекомендуемые серверные вызовы -> Преобразовать вызов.
Соглашаетесь с созданием новой процедуры и даете ей имя.
Все что нужно будет преобразовано в асинхронное выполнение.
3. antz 22.06.22 11:33 Сейчас в теме
при открытии заполнять параметр ОповещениеОЗакрытии
или прямо из формы оповещать, в форме, из которой открывается, ловить оповещение
4. soft_wind 22.06.22 11:35 Сейчас в теме
вот пример

&НаКлиенте
Процедура Инструментарий(Команда)

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

	лкФорма = ОткрытьФорму("ВнешняяОбработка.КонсольЗапросовУФ.Форма.ФормаКоманд",,Этаформа,,,,лкОповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
Показать
7. KVIKS 125 22.06.22 16:16 Сейчас в теме
Может следует попробовать новые методы от 1С "Асинх и Ждать", которые Реализовано в версии 8.3.18.1128.
Сам не пробовал еще, но это как раз замена модальности. подробности тут

Заметки из Зазеркалья
Оставьте свое сообщение
Вакансии
Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 190 000 руб.
Полный день

Ведущий аналитик-разработчик 1С
Москва
зарплата от 230 000 руб. до 270 000 руб.
Полный день

1С:Эксперт по производительности
Москва
зарплата от 400 000 руб. до 950 000 руб.
Полный день

Ведущий аналитик 1С (ERP, ЗУП)
Краснодар
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Тверь
зарплата от 150 000 руб. до 250 000 руб.
Полный день