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

1. user1268945 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 22.06.22 17:07 Сейчас в теме
(8) ОткрытьФорму() - должно быть последним оператором в процедуре.
Pavel Rodinchenko; +1 Ответить
10. Pavel Rodinchenko 22.06.22 17:21 Сейчас в теме
(8)Внимательнее читать надо)
следовательно:
ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",,,,,,Оповещение,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);
Возврат;
Прикрепленные файлы:
11. FatPanzer 22.06.22 17:36 Сейчас в теме
(10) Зачем писать Возврат?
12. Pavel Rodinchenko 22.06.22 17:46 Сейчас в теме
(11)Чтобы код дальше не выполнялся, если он есть. А если нет, то можно и не писать
13. FatPanzer 22.06.22 17:49 Сейчас в теме
(12) Он и не будет выполняться, если это последняя строчка в процедуре.
А иначе - зачем писать последующий код, если перед ним жестоко написать Возврат?
14. Pavel Rodinchenko 22.06.22 18:00 Сейчас в теме
(13)ну судя по 8 ответу код там все же есть
15. FatPanzer 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 399 22.06.22 16:16 Сейчас в теме
Может следует попробовать новые методы от 1С "Асинх и Ждать", которые Реализовано в версии 8.3.18.1128.
Сам не пробовал еще, но это как раз замена модальности. подробности тут

Заметки из Зазеркалья
Оставьте свое сообщение

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