Имя: Пароль:
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) как можно упр.форму передать, получитьформу() на сервере не работает
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn