Имя: Пароль:
1C
1С v8
Как из модуля упр. формы обратиться к модулю объекта
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) как можно упр.форму передать, получитьформу() на сервере не работает
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой