Имя: Пароль:
1C
 
Запуск процедуры &НаКлиенте модуля объекта из процедуры &НаКлиенте формы
0 Симпатяга
 
11.12.18
11:17
Осваиваю УФ
Никак не пойму.
Есть на форме процедура.

На клиенте. Из нее я обращаюсь через Объект к процедуре в модуле объекта.

Функции на форме

&НаКлиенте
Процедура Печать()
МойОбъект = ПолучитьОбъектНаСервере();
ЭтотОбъект1.Печать();
КонецПроцедуры

&НаСервере
Процедура ПолучитьОбъектНаСервере()
ЭтотОбъект1 = РеквизитФормыВЗначение("Объект");
Возврат ЭтотОбъект1;
КонецПроцедуры

Выдает ошибку по передачи между сервером и клиентом.

Дело в том, что процедура в модуле объекта Печать должна быть именно на клиенте. Если серверная была бы, то с формы из функции ПолучитьОбъектНаСервере() сразу бы обратился к функции в модуле
1 Numerus Mikhail
 
11.12.18
11:18
Все процедуры и функции модуля объекта априори выполняются на сервере.
2 Симпатяга
 
11.12.18
11:18
(0) в первой процедуре ЭтотОбъект1= МойОбъект
3 Симпатяга
 
11.12.18
11:19
(1) мне нужно сформировать документ Word на клиенте. внешняя пф
4 Numerus Mikhail
 
11.12.18
11:20
&НаКлиенте
Процедура Печать()
МакетИлиЧтоТут = ПолучитьОбъектНаСервере();
МакетИлиЧтоТут.Показать();
КонецПроцедуры

&НаСервере
Процедура ПолучитьОбъектНаСервере()
ЭтотОбъект1 = РеквизитФормыВЗначение("Объект");
МакетИлиЧтоТут = ЭтотОбъект1.Печать()
Возврат МакетИлиЧтоТут;
КонецПроцедуры
5 Numerus Mikhail
 
11.12.18
11:21
(3) Формируй на сервере и передавай двоичные данные на клиент
Или формируй на клиенте, но тогда модуль объекта тебе не подходит.
6 Симпатяга
 
11.12.18
11:26
(5) на сервере не установлен word
7 Симпатяга
 
11.12.18
11:27
(1) а для чего тогда &НаКлиенте в модуле внешней обработки?
8 Diman000
 
11.12.18
11:30
(7) А для чего знак деления в выражении 3/0?
&НаКлиенте это не для модуля внешней обработки, это для всего. Но в модуле объекта этой директивой пользоваться нельзя.
9 Numerus Mikhail
 
11.12.18
11:35
(7) Вообще не вижу проблемы тогда
Если у тебя не установлен ворд на сервере, значит процедура Печать() уже полностью написана под клиент, следовательно тебе просто надо перенести ее на форму или в общий клиентский модуль.
10 Alexandr_U1982
 
11.12.18
11:37
(3) В серверной функции извлекаешь данные из базы, помещаешь в структуру. Структуру возвращаешь на клиент и на клиенте формируешь документ Word.
11 Симпатяга
 
11.12.18
11:38
(9) в общий модуль нельзя. конфа не измененная.
т.е. я делаю внешнюю печатную форму. из модуля объекта обращаюсь и создаю форму. в ней пишу свой код. открываю Ворд и закрываю форму.
я правильно понял?
12 Alexandr_U1982
 
11.12.18
11:41
13 Симпатяга
 
11.12.18
13:44
(12) Спасибо. Разобрался!
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс