|
v7: Передача параметров между обработками. | ☑ | ||
---|---|---|---|---|
0
Knowledge
02.09.13
✎
11:36
|
-------------------------------------------------------------------------------------------------------
Вызывающая обработка: Процедура Сформировать() ПолноеИмяФайла = …… Сп_Параметры = СоздатьОбъект("СписокЗначений"); Сп_Параметры.ДобавитьЗначение(ВыбНачПериода); Сп_Параметры.ДобавитьЗначение(ВыбКонПериода); ОткрытьФорму("Отчет",Сп_Параметры,ПолноеИмяФайла); Результат = Сп_Параметры.ТЗ_По_Машинам; Сп_Параметры.Форма.Закрыть(); КонецПроцедуры// Сформировать Вызываемая обработка: Процедура ПриОткрытии() Параметры = Форма.Параметр; Если ПустоеЗначение(Параметры) = 0 Тогда ДатаНачала = Параметры.ПолучитьЗначение(1); ДатаКонца = Параметры.ПолучитьЗначение(2); Сформировать();// Формирует ТЗ_По_Машинам; //СтатусВозврата(0); //Форма.Закрыть(); КонецЕсли; КонецПроцедуры // ПриОткрытии В вызывающей процедуре после вызова функции «ОткрытьФорму("Отчет",Сп_Параметры,ПолноеИмяФайла);» становиться доступен контекст вызываемой формы, чтобы передать ТЗ_По_Машинам нужно разместить эту таблицу значений на форме и открыть её (форму). При этом на экране появляется форма диалога вызываемой обработки. Вопрос: Можно ли передать ТЗ_По_Машинам в вызываемую обработку так, чтобы не было видно форма диалога вызываемой обработки? |
|||
1
ДенисЧ
02.09.13
✎
11:37
|
Чо?
Зачем её на форму выпихивать? |
|||
2
mikecool
02.09.13
✎
11:37
|
можно, в Сп_Параметры
|
|||
3
skunk
02.09.13
✎
11:38
|
да
|
|||
4
mikecool
02.09.13
✎
11:38
|
(3) приз за самый лаконичный ответ в студию! )
|
|||
5
Ёпрст
02.09.13
✎
11:38
|
статусВозврата(0) воткни в приоткрытии
|
|||
6
Cthulhu
02.09.13
✎
11:53
|
(5): только предупреди человека, что при таком финте ушами из самой обработки в параметре нихрена не приедет.. а то вдруг ему надо и взад чонить вернуть из обработки, ммм?..
|
|||
7
Knowledge
02.09.13
✎
12:05
|
(1) если не разместить на форме, то ТЗ_По_Машинам не будет в контексте формы в вызывающей обработке.
(5)если СтатусВозврата(0);- тогда форма не откроется и её контекст не будет доступен в вызывающей обработке. Я пробовал. |
|||
8
Knowledge
02.09.13
✎
12:08
|
(6) правильно думаешь мне нужно вернуть таблицу значений ТЗ_По_Машинам, которая формируется в вызываемой обработке.
|
|||
9
skunk
02.09.13
✎
12:10
|
зачем тебе доступ к контексту?
|
|||
10
Knowledge
02.09.13
✎
12:14
|
(9) а как получить в вызывающей обработке таблицу значений ТЗ_По_Машинам, которая формируется в вызываемой обработке.
|
|||
11
Knowledge
02.09.13
✎
12:20
|
(1) пардон можно присвоить ТЗ_По_Машинам в Форма.Папраметр, Но все равно вызываемю форму нужно открыть.
|
|||
12
uno-group
02.09.13
✎
12:21
|
Странненько всегда возвращала при статусвозврата(0) ты там где надо пихаешь. в приоткрытии() форма.параметр="веть возврощает же"; Может если его пытаться засунуть в призакрытии то естественно так как форма не открывалась то она и не закрывается и эта процедура не отрабатывает. на крайняк мозно через глобальную переменную
|
|||
13
skunk
02.09.13
✎
12:22
|
(10)ну например все через тот-же параметр формы
|
|||
14
skunk
02.09.13
✎
12:22
|
(11)не надо
|
|||
15
skunk
02.09.13
✎
12:23
|
тебе надо сформировать переделать немного
|
|||
16
Ёпрст
02.09.13
✎
12:24
|
(11) зачем ?
|
|||
17
Knowledge
02.09.13
✎
12:28
|
(14-16) Если поставлю СтатусВозврата(0) в вызываемой обработке, то в вызывающей обработке в Сп_Параметры так и останется исходный список значений и не будет доступа к ТЗ_По_Машинам , которая мне нужна.
|
|||
18
Ёпрст
02.09.13
✎
12:29
|
(17) у тебя её при любом раскладе не будет в коде в (0)
|
|||
19
Ёпрст
02.09.13
✎
12:29
|
открывай поделку модально
|
|||
20
Ёпрст
02.09.13
✎
12:30
|
только, зачем её открывать - хз.
|
|||
21
skunk
02.09.13
✎
12:31
|
(17)да что ты прицепился к этой тз на форме ...
|
|||
22
Knowledge
02.09.13
✎
12:41
|
(17) Всё разобрался:
Вызывающая обработка: Процедура Сформировать() ПолноеИмяФайла = …… Сп_Параметры = СоздатьОбъект("СписокЗначений"); Сп_Параметры.ДобавитьЗначение(ВыбНачПериода); Сп_Параметры.ДобавитьЗначение(ВыбКонПериода); ОткрытьФормуМодально("Отчет",Сп_Параметры,ПолноеИмяФайла); ТЗ_По_Машинам = Сп_Параметры ; КонецПроцедуры// Сформировать Вызываемая обработка: Процедура ПриОткрытии() Параметры = Форма.Параметр; Если ПустоеЗначение(Параметры) = 0 Тогда ДатаНачала = Параметры.ПолучитьЗначение(1); ДатаКонца = Параметры.ПолучитьЗначение(2); Сформировать();// Формирует ТЗ_По_Машинам; Форма.Парамет р = ТЗ_По_Машинам; СтатусВозврата(0); КонецЕсли; КонецПроцедуры // ПриОткрытии |
|||
23
Knowledge
02.09.13
✎
12:43
|
Всем спасибо
|
|||
24
Cthulhu
02.09.13
✎
15:18
|
(23): неужто код (22) возвращает в параметрем (в место открытия формы) ТЗ?..
(подсказка: если использовать "Форма.Закоыть()" вместо "СтатусВозврата(0)" - то вернет то, что ты присвоил параметру) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |