Снова передача данных между формами. #303671


#0 by panas_ukr_net
Вот нужно было мне передать параметр между формами. И хочу сказать что самые красивые варианты, а именно 5 и 6 не работают в 8,1 или просто не работают у меня. Переменные появляются но из других форм они в неопределенном состоянии. Получилось только через глобальную переменную - 7-й вариант. Кто-то еще пробовал эти варианты?
#1 by ТелепатБот
#2 by RomaH
"Переменные появляются но из других форм они в неопределенном состоянии" а переведи на русский
#3 by panas_ukr_net
Ну написано что если во второй форме написать Перем ИмяПеременной Экспорт а из первой в нее что-то записать например так То потом во второй форме в переменной ИмяПеременной типа увидем ПередаваемыйПараметр, а видим мы там Неопределено Тоже самое если наоборот
#4 by RomaH
? давай реальный текст обработки
#5 by panas_ukr_net
Ну только название документа меняется:
#6 by RomaH
маладец, а дальше?
#7 by panas_ukr_net
Та не. Мне нужно из формы документа РеализацияТоваровУслуг в которой я написал Перем ИмяПеременной Экспорт сделать Если ИмяПеременной = Неопределено Тогда
#8 by RomaH
короче - иди читай что-нибудь на ночь ДругаяФорма = Документы.РеализацияТоваровУслуг.ПолучитьФорму("ФормаДокумента"); ты инициализировал переменную - что с ней дальше-то делаешь? "Мне нужно из формы документа РеализацияТоваровУслуг в которой я написал " форма эта откуда взялась?
#9 by panas_ukr_net
тю ну что за народ все нужно разжевать открыто две формы в первой форме объявлена переменная "ИмяПеременной" из второй формы я в эту переменную что-то записываю делается это так: в отладчике я вижу что ДругаяФорма.ИмяПеременной присвоилось значение все нормально теперь перехожу в другую форму ловлю отладчиком там допустим событие "при активизации строки" и смотрю что там записано в переменной "ИмяПеременной" и в итоге там ничего не записано какую мне книжку прочитать на какой странице, чтоб увидеть в этой переменной строку "Роман перечитал все книги." Так и ладно бы я записывал а потом открывал форму, что мне вообще-то изначально было нужно. Так я же даже не закрываю и соответственно переменные не переинициализируются. Открыто сразу две формы.
#10 by Всеяд
Прочитай свой последний абзац. В нём - ответ на все твои вопросы. Если ответов не найдётся, проверь на равенство открытую форму и "Другая форма".
#11 by panas_ukr_net
Как мне сравнить открытую форму? В открытой форме я могу получить форму функцией ЭтаФорма но в контексте этой формы у меня не будет переменной ДругаяФорма так как она у нас объявлена в другой форме. Скажите как сравнить и я сравню. А если у вас возник вопрос с чего я вообще решил, что в преременной должно что-то быть то прочитайте ссылку в или в . Пункт 5.
#12 by panas_ukr_net
тоесть если я открою форму то переменные уже затерлись а если не открою то переменные еще не перечитались. Так?
#13 by clarion
Ну приехали, а с чего ты взял, что получаешь форму которая у тебя открыта?!...
#14 by panas_ukr_net
точно! наконец-то что-то в тему спасибо. тогда могу ли я как-то получить форму которую открыл не из кода. тоесть я могу указать "код уникальности" открывая форму но если форма открыта просто при подборе то могу ли я как-то получить ссылку на нее. Не заморачиваясь с Стандартнаяобработка = Ложь а потом открывая формы
#15 by panas_ukr_net
Получается что если у меня открыта форма допустим подбора товара из накладной то все что я знаю о форме владельце это только то что там какое-то поле ввода. Если же я хочу знать больше то при открытии подбора (НачалоВыбора) я должен отменить стандартную обработку и открыть подбор самостоятельно передав в качестве параметра ЭтаФорма. Потом мне там еще нужно написать режимвыбора = истина и закрыватьпривыборе = истина. Потом в открытой форме мне нужно обработать событие Выбор и передать в форму владелец то что там выбрано а потом еще в форме владельце мне нужно обработать событие "обработкаВыбора" и проделывая весь этот гемор в очередной раз я наткнулся на ту статью в книге знаний на которую дана ссылка вверху. И в результате получается что для того чтоб передать параметр так как там написано мне все равно нужно самому открывать форму. Тогда возникает вопрос зачем там вообще передавать параметр таким извращенным образом если мы и так имеем доступ к форме владельцу через свойство владелец. Или может все же можно как-то сделать это без гемора?!!
#16 by Fragster
использовать ОткрытьФорму с ключем уникальности...
#17 by clarion
Ну не обязательно самому форму открывать, если знаешь КлючУникальности ;)
#18 by panas_ukr_net
вот у меня есть форма с полем ввода тип значения которой справочник где мне написать ключ уникальности при этом не отменяя стандартную обработку ?
#19 by panas_ukr_net
тип значения которого (поля ввода) хотел сказать
#20 by Fragster
У форм, открытых стандартным образом ключ уникальности пустое значение типа Неопределено. Если для "ПолучитьФорму" Использовать его, то если форма открыта, то открытую форму, если же нет, то откроешь новую форму... потом можно делать все, что угодно..
#21 by panas_ukr_net
Звучит крассиво. Но пробую и все равно открывается другая форма. Можете написать код?
#22 by Fragster
Склад - это СправочникСсылка.Склады, но работает для всех
#23 by Валерыч
попробуй использовать не экспортную переменную в форме, а реквизит формы с тем же именем.
#24 by panas_ukr_net
такой код может перехватить только ту форму которую сам же раньше и открыл, а не ту которая открыта стандартным образом. с реквизитом формы все точно так же, как и с экспортными переменными. Теперь задача состоит в том, чтобы получить именно ту форму которая открыта интерактивно либо признать то, что в книге знаний эти способы описаны не верно.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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