Имя: Пароль:
1C
1С v8
Передача параметра и возврат
0 vel1c
 
17.05.13
13:02
Привет. 8.2 управляемые формы.
Я нуб. Не пинайте.
В модуле форме списка справочника номенклатура открываю
общую форму модально с передачей параметра.
парам1 = новый структура("Ключ1",знач1);
формавыб = получитьформу("ОбщаяФорма.ВыборНоменклатурыПоШтрихкоду",парам1,этаформа);
       Формавыб.Штрихкод = Штрихкод;
       Формавыб.ВладелецФормы = ЭтаФорма;
       Формавыб.ОткрытьМодально();

В общей форме создаю параметр с именем "ключ1". делаю ключевым чтобы срок жизни был не только в процедуре ПриСозданииНаСервере().
Он там ловится, все ок. Потом я его меняю в других процедурах, тож все нормально. А дальше вот незнаю: КАК ВЕРНУТЬ его обратно в форму списка при закрытии общей формы?
Коряво конечно написал вопрос, но я стараюсь.
1 Cube
 
17.05.13
13:05
СП украли?

УправляемаяФорма (ManagedForm)
ОткрытьМодально (DoModal)

Возвращаемое значение:
Тип: Произвольный.
Команда закрытия формы.
Если форма открывалась для выбора, возвращает выбранное значение (или массив значений, в случае разрешенного множественного выделения в открываемой форме). Если значение не выбрано, возвращается Неопределено.


УправляемаяФорма (ManagedForm)
Закрыть (Close)
Синтаксис:

Закрыть(<ПараметрЗакрытия>)
Параметры:

<ПараметрЗакрытия> (необязательный)

Тип: Произвольный.
Параметр закрытия формы, открытой в модальном режиме. Это значение будет возвращено как результат метода, открывающего форму модально.
Значение по умолчанию: Неопределено
Описание:

Закрывает форму. Если закрываемая форма была открыта в модальном режиме, то метод может передать команду закрытия методу, открывшему форму.
2 vel1c
 
17.05.13
13:15
спасибо за ответ.
Форма используется не для выбора.
Я это читал. А можно пример для моего случая.
Или если не трудно объясните пожалуйста :где выполняется
команда закрытия? в общей форме?. и на какое событие её вешать? Призакрытии? Просто я на примере лучше пойму.
3 vel1c
 
17.05.13
13:35
все на обеде )
апну штоле
4 hhhh
 
17.05.13
13:44
(3) в любом месте можете. Ставите

Закрыть(<ПараметрЗакрытия>)

как в (1) написано. Хоть даже в при открытии.
5 vvp91
 
17.05.13
13:49
>>> (4), (2)
ответ не верный.

>>> (0) делаю ключевым чтобы срок жизни
т.е. делаешь постоянный параметр формы с названием "Ключ1" на вкладке Параметры конструктора формы?
Тогда так:

парам1 = новый структура("Ключ1",знач1);
формавыб = получитьформу("ОбщаяФорма.ВыборНоменклатурыПоШтрихкоду",парам1,этаформа);
Формавыб.Штрихкод = Штрихкод;
Формавыб.ВладелецФормы = ЭтаФорма;
Формавыб.ОткрытьМодально();

Сообщить(Строка(Формавыб.ключ1)); // параметр живет, пока живет форма, и доступен извне.
6 vel1c
 
17.05.13
14:13
(5)  он мне говорит
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(374)}: Поле объекта не обнаружено (ключ1)
       Сообщить(Строка(Формавыб.ключ1));
7 vvp91
 
17.05.13
14:17
>>> (6)
упс! надо так:

Сообщить(Строка(Формавыб.Параметры.ключ1));

еще можно сделать реквизит формы и устанавливать его. тогда обращение будет как в (5).
8 vel1c
 
17.05.13
14:31
Извиняюсь, не было возможности ответить.
vvp91 СПАСИБО ВАМ БОЛЬШОЕ.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший