Добрый день.
Не могу разобраться как при открытии формы ДОЖДАТЬСЯ нажатия на ней определенной кнопки и только потом продолжать выполнять код дальше. На клиенте.
1/ВызываюДопФорму из активной, она открывается
ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",,,,,,,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);
Нужно чтобы по нажатию кнопки ОК или ОТМЕНА в Доп Форме продолжалось выполнение кода
Нужно Так:
Форма открывается,
пользователь вводит значения,
после этого проверка,
закрытие формы
и ПРОДОЛЖЕНИЕ кода
после открытия формы код продолжается
Данные="";
ввестистроку(Данные,"Выберитеноменклатуру",ложь);
Сейчас я получаю окно доп формы открытое и ввести строку поверх формы открытой
Заранее спасибо
- в одном из параметров передается созданное оповещение.
После вызова пишешь Возврат;
Шаг 2.
&НаКлиенте
Процедура КакоетоИмя(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
// Обработка результат
КонецПроцедуры
Шаг 3. В открываемой форме делаешь кнопку "ОК" или любую другую. В ее код помещаешь нечто такое:
СтруктураЗакрытия = Новый Структура;
СтруктураЗакрытия.Вставить("Значение1", Значение1);
// можно и не структуру, а что удобно будет обрабатывать в дальнейшем.
Закрыть(СтруктураЗакрытия);
В результате на шаге 2 получаем в переменной "Результат" структуру из шага 3.
- в одном из параметров передается созданное оповещение.
После вызова пишешь Возврат;
Шаг 2.
&НаКлиенте
Процедура КакоетоИмя(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
// Обработка результат
КонецПроцедуры
Шаг 3. В открываемой форме делаешь кнопку "ОК" или любую другую. В ее код помещаешь нечто такое:
СтруктураЗакрытия = Новый Структура;
СтруктураЗакрытия.Вставить("Значение1", Значение1);
// можно и не структуру, а что удобно будет обрабатывать в дальнейшем.
Закрыть(СтруктураЗакрытия);
В результате на шаге 2 получаем в переменной "Результат" структуру из шага 3.
Оповещение = Новый ОписаниеОповещения("КакоетоИмя", ЭтаФорма);
Параметр = Новый Структура("Оповещение",Оповещение);
ОткрытьФорму("Обработка.API_WILDBERRIES_УТ.Форма.ДопФорма",Параметр,,,,,,РежимОткрытияокнаФормы.БлокироватьВесьИнтерфейс);
***Здесь получаю ошибку
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'val':
форма: Элемент
имя: {http://v8.1c.ru/8.2/mngsrv/ws}val
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ОписаниеОповещения'
***
и он не останавливается. Я пыталась делать через ПоказатьВводЗначения, тоже не помогло. Что нужно еще сделать?
Похоже я очень сильно туплю((
&НаКлиенте
Процедура КакоетоИмя(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
// Обработка результат
КонецПроцедуры
(12) Он и не будет выполняться, если это последняя строчка в процедуре.
А иначе - зачем писать последующий код, если перед ним жестоко написать Возврат?
Далее, на слове ОткрытьФормуМодально нажимаете ПКМ, выбираете: Рефакторинг -> Нерекомендуемые серверные вызовы -> Преобразовать вызов.
Соглашаетесь с созданием новой процедуры и даете ей имя.
Все что нужно будет преобразовано в асинхронное выполнение.
Может следует попробовать новые методы от 1С "Асинх и Ждать", которые Реализовано в версии 8.3.18.1128.
Сам не пробовал еще, но это как раз замена модальности. подробности тут