|
Как из модуля упр. формы обратиться к модулю объекта | ☑ | ||
---|---|---|---|---|
0
mirrr
15.10.11
✎
21:10
|
Есть отчет, как из модуля упр. формы отчета можно обратиться к процедуре в модуле объекта отчета?
|
|||
1
mikecool
15.10.11
✎
21:13
|
если экспортная - создать объект и уже через точку от объекта обращаться
|
|||
2
mikecool
15.10.11
✎
21:13
|
+1 или разместить функцию в модуле менеждера
|
|||
3
mirrr
15.10.11
✎
21:24
|
во внеш. отчете модуль менеджера?
|
|||
4
mikecool
15.10.11
✎
21:46
|
(3) у каждого объекта есть модуль менеджера - щелкни пкм на любом и узри первую строку
|
|||
5
mirrr
15.10.11
✎
21:49
|
выложи скрин, как у внеш. отчета зайти в модуль менеджера
|
|||
6
mikecool
15.10.11
✎
21:54
|
(5) про внешний хз
сижу дома - какие скрины? нет у мня тут эски |
|||
7
БибиГон
15.10.11
✎
21:56
|
во внешнем нету :)
|
|||
8
mirrr
15.10.11
✎
21:56
|
создал в модуле объекта эспортную процедуру. Вызываю ее из упр. формы из процедуры и &НаКлиенте и &НаСервере пробовал. Пишет "Процедура или функция с указанным именем не определена", т.е не видит экспортную процедуру. Что не так?
|
|||
9
mikecool
15.10.11
✎
21:57
|
если это внешний отчет - то никак, интегрируй в конфигурацию
|
|||
10
mirrr
15.10.11
✎
22:01
|
(9) при проверке модуля упр. формы выдает ошибку как в (8), типа процедуру экспортную не видит. Если делаю то же в не управляемой форме - все нормально. Как в модуле упр. формы обратиться к экспортной процедуре модуля объекта?
|
|||
11
БибиГон
15.10.11
✎
22:04
|
как ее вызываешь? код выложи.
|
|||
12
anastasia1188
15.10.11
✎
22:06
|
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
ОтчетОбъект.ЭкпортнаяФункция(); |
|||
13
mirrr
15.10.11
✎
22:07
|
(11) в модуле упр.формы:
при нажатии на кнопку: &НаКлиенте Процедура а() сформироватьНаСервере(); КонецПроцедуры Процедура сформироватьНаСервере() ЭкспортнаяПроцедура(); //на эту строку ругается КонецПроцедуры В модуле объекта: Процедура ЭкспортнаяПроцедура() Экспорт |
|||
14
anastasia1188
15.10.11
✎
22:09
|
&НаКлиенте
Процедура а() сформироватьНаСервере(); КонецПроцедуры Процедура сформироватьНаСервере() ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); ОтчетОбъект.ЭкпортнаяФункция(); КонецПроцедуры |
|||
15
mikecool
15.10.11
✎
22:09
|
а просто Объект.Процедура()
|
|||
16
mikecool
15.10.11
✎
22:09
|
?
|
|||
17
anastasia1188
15.10.11
✎
22:10
|
(15) В управляемых форма Объет - Это тип "ДанныеФормыСтруктура", а не ОтчетОбъкт
|
|||
18
anastasia1188
15.10.11
✎
22:11
|
(17) В управляемых формах Объект - Это тип "ДанныеФормыСтруктура", а не ОтчетОбъект
|
|||
19
mirrr
15.10.11
✎
22:22
|
как потом можно из модуля объекта обращаться к реквизитам упр. формы. Т.е. просто через имя реквизита нельзя.
|
|||
20
anastasia1188
15.10.11
✎
22:26
|
(19) Функцию вызвать получилось?)
|
|||
21
mirrr
15.10.11
✎
22:27
|
угу
|
|||
22
БибиГон
15.10.11
✎
22:28
|
ЭлементыФормы вроде
|
|||
23
mirrr
15.10.11
✎
22:30
|
РеквизитФормыВЗначение доступен только на сервере, а как к данным упр.формы из модуля объекта обратиться
|
|||
24
anastasia1188
15.10.11
✎
22:32
|
К данным формы можно обращаться как на сервере так и на клиенте
|
|||
25
anastasia1188
15.10.11
✎
22:34
|
&НаКлиенте
Процедура а() сформироватьНаСервере(); КонецПроцедуры Процедура сформироватьНаСервере() ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); ОтчетОбъект.ЭкпортнаяФункция(); КонецПроцедуры В модуле объекта: ЭкспортнаяФунция(УправляемаяФорма) УправляемаяФорма.Реквизит = ""; КонецФункции |
|||
26
mirrr
15.10.11
✎
22:34
|
я ошибся в (19)
|
|||
27
anastasia1188
15.10.11
✎
22:34
|
(25)
&НаКлиенте Процедура а() сформироватьНаСервере(); КонецПроцедуры Процедура сформироватьНаСервере() ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); ОтчетОбъект.ЭкпортнаяФункция(); КонецПроцедуры В модуле объекта: Функция ЭкспортнаяФунция(УправляемаяФорма) УправляемаяФорма.Реквизит = ""; КонецФункции |
|||
28
mirrr
15.10.11
✎
22:35
|
(27) так не будет работать, или надо при вызове ф-ии параметр передать?
тчетОбъект.ЭкпортнаяФункция(УправляемаяФорма); |
|||
29
anastasia1188
15.10.11
✎
22:37
|
(28) Да, конечно, забыла написать
|
|||
30
anastasia1188
15.10.11
✎
22:38
|
(29) надо передать Управляемую Форму в качестве параметра.
|
|||
31
anastasia1188
15.10.11
✎
22:39
|
(27) А вообще на мой взгляд, как-то криво менять процедурой модуля объекта, реквизиты формы. Думаю лучше оформить это функцией, которая бы возвращала бы на форму нужные значения реквизитов и изменять их после выполнения функции в форме.
|
|||
32
mirrr
15.10.11
✎
22:41
|
я не меняю, а просто значения реквизитов получаю.
(30) тогда может лучше не упр.форму передавать, а ОтчетОбъект? |
|||
33
mirrr
15.10.11
✎
22:46
|
на форме есть ТабличныйДокумент, можно его из модуля объекта заполнить? Отладчиком его не вижу из модуля объекта
|
|||
34
anastasia1188
15.10.11
✎
22:46
|
(32) Тогда проще передать в качестве параметров значения реквизитов
В модуле объекта: Функция ЭкспортнаяФунция(Реквизит1, Реквзит2...) УправляемаяФорма.Реквизит = ""; КонецФункции |
|||
35
anastasia1188
15.10.11
✎
22:48
|
Я бы так делала:
&НаКлиенте Процедура а() сформироватьНаСервере(); КонецПроцедуры Процедура сформироватьНаСервере() ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); ТабличныйДокумент = ОтчетОбъект.ПолучитьТабДок(); КонецПроцедуры В модуле объекта: Функция ПолучитьТабДок() РезультатФункци = Новый ТабличныйДокумент; // формируешь ТабДок Возврат РезультатФункции; КонецФункции |
|||
36
mirrr
15.10.11
✎
22:49
|
(34) зачем УправляемаяФорма.Реквизит = ""; ?
просто Реквизит="" |
|||
37
anastasia1188
15.10.11
✎
22:51
|
(36) Забыла отредактировать тело функции, хотела сказать что передаешь значения реквизитов в качестве параметров, и потом делаешь с ними что нужно.
|
|||
38
anastasia1188
15.10.11
✎
22:51
|
(36) см. (35)
|
|||
39
mirrr
15.10.11
✎
23:06
|
получилось через передачу параметров.
(30) как можно упр.форму передать, получитьформу() на сервере не работает |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |