v7: Форма.Параметр Форма.Закрыть() Как передать параметр из закрываемой формы #785415


#0 by lmlg1
Доброго времени суток, уважаемые  форумчане! 1сv7.7 Старая конфа, нужно кой чего дописать Задача: Обработка1(o1) и Обработка2(о2) внешние Нужно чтобы Обработка1 запускала Обработку2 с передаваемым в О2 параметром. о2 открывается и в процедуре приОткрытии по условиям переданного в о2 параметра запускается та или иная функция(ф1). Тут вроде все понятно. Теперь вопросы: как закрыть форму о2 и обратно в о1 передать результат ф1? Если оставляю спорную строку(третья снизу СтатусВозврата;), то форма о2 закрывается, но не передает параметр. Если убираю спорную строку, то Форма НЕ закрывается, но передает параметр. Как сделать чтобы и форма закрылась и параметр передался? Форма.Закрыть-пробовал, НЕ помогает. Заранее благодарен за ответ
#1 by Torquader
И чего может быть сложного ? Если мы в параметре передаём список значений (только в функцию ОткрытьФорму нужно будет передать другую переменную, в которую скопировать переменную списка. Тогда форма изменяет список и в основной форме это видно. Другое дело, что нужно также передавать ссылку на основную форму, чтобы можно было её как-то пнуть, например, через ложное закрытие - можно также через повторное открытие, но нужно передать имя формы, чтобы её можно было повторно открыть и через тот же параметр передать ей команду.
#2 by Lazy Stranger
я бы не парил себе мозг: ОткрытьФормуМодально и тогда можно просто через глобальную переменную результат передать
#3 by Torquader
Только переключиться в меню нельзя.
#4 by lmlg1
Спасибо,откликнувшимся.   Torquader. Видимо мои познания в 1С не дотягивают до Ваших, поэтому применить теоретическую трактовку в практическую не могу. Если возможно кусочек кода, того что Вы облекли в слова. Lazy Stranger. Спасибо учту,  но не хотел лезть в глобальник. Заранее благодарен.
#5 by Torquader
В форме, из которой вызываем: Если ТипЗначения(Родитель)<>100 Тогда   Сообщить("Родительскую форму уже закрыли и нет смысла туда что-то передавать");
#6 by lmlg1
Спасибо, с утра попоробую
#7 by Torquader
Я код писал по памяти, изредка заглядывая в описание команд, так что, если что-то не взлетит - заглянуть в СП и посмотреть на порядок команд. Ну и я про закрытие дочерней формы забыл - после передачи параметра она остаётся открытой - там надо Форма.Закрыть в конце вставить.
#8 by lmlg1
Бегло посмотрел код. Еще раз спасибо принцип ясен. Не понял только, Мы обрабатываем ответ только при закрытии о1? Теоретически я могу обработать ответ в любой процедуре правильно? Сейчас загрузили задачей другой, как смогу попробую.
#9 by Масянька
Очень рекомендую разобраться. Например, открой реализацию и разбери подбор номенклатуры. Разберешь - станет намного понятнее с передачей параметров откуда-то куда-то.
#10 by lmlg1
Да как передавать параметры вроде понятно. Не понятно, от чего вторая форма сформировав нужный ответ не закрывается.
#11 by Масянька
Да ничего тебе не понятно.
#12 by lmlg1
Спасибо всем. Уважаемый  Torquader, Вам отдельное СПАСИБО. По Вашим рекомендациям все получилось.
#13 by lmlg1
В конце кода для дочерней формы нужно было
#15 by Torquader
А Статус возврата зачем - там же обычная функция по кнопке вызывается - ей этот статус - до лампочки.
#16 by lmlg1
Без него дочерняя форма висит мордой кирпичом и не закрывается. :(
#17 by Злопчинский
Если пред определённая вызывает другие процы, то в них можно статус ставить, он будет для вызвавшей мамы
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С