Имя: Пароль:
1C
 
Обычные формы вызов с клиента на сервер ошибка функция не определена
,
0 Бешеный заяц
 
16.10.18
12:26
В форме обработки создана процедура которая вызывает функцию "ПечатьТОРГ13()"

Процедура СоздатьЭД()
    
    Если ВидДокумента = перечисления.ВидыДокументовЭДО.Торг13 Тогда
        МакетДокумента = ПечатьТОРГ13();
    КонецЕсли;    
    
    ИмяФйла = КаталогВременныхФайлов()+Строка(ВидДокумента)+СсылкаНаОбъект.Номер+".pdf";
    МакетДокумента.Записать(ИмяФйла,"pdf");
    Оповестить("ОбновитьФорму",ЭтаФорма , ВладелецФормы);
    
    ЭтаФорма.Закрыть();
Конецпроцедуры





Функция ПечатьТОРГ13() располложена в модуля объекта обработки с препроцессором на сервере

&НаСервере
Функция ПечатьТОРГ13()      Экспорт

Вывел на сервер в смязи с тем что раньше эта процедура была в Модуле менеджера документа и кидала мутабельные значения на сервере соответственно запустить её на кленте без значительной переделки не получиться.


Вопрос почему клиент не видит серверную функцию? ведь клиент должен без ограничений вызывать сервер? на УФ это спош и рядом когда процедуры парно создают клиент вызывает сервер, а обратно результат.


{Обработка.СозданиеЭД.Форма.Форма.Форма(64,20)}: Процедура или функция с указанным именем не определена (ПечатьТОРГ13)
        МакетДокумента = <<?>>ПечатьТОРГ13();
1 youalex
 
16.10.18
12:32
(0) >>ведь клиент должен без ограничений вызывать сервер?

ЕМНИП, единственный способ из ОФ сходить на сервер - вызов процедуры ОМ с галкой Сервер (и только)
2 Cyberhawk
 
16.10.18
12:33
Каким препроцессором? Не путай и убери директиву компиляции из ОМ
3 Бешеный заяц
 
16.10.18
12:45
(2) {Обработка.СозданиеЭД.МодульОбъекта(196)}: Ошибка при вызове метода контекста (ПредставлениеСерий)
            ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаСтрокТовары);
по причине:
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ПредставлениеСерий ().
4 Бешеный заяц
 
16.10.18
12:45
(3) нужно чать серверных функций к себе в сервер забирать
5 Cyberhawk
 
16.10.18
12:46
Конечно, ведь код у тебя на клиенте в толстом клиенте выполняется. А вызываешь ты серверный модуль без флага компиляции "Клиент (ОП)" или без флага "Вызов сервера".
6 Cyberhawk
 
16.10.18
12:47
Так что или ставь соотв. флажки у ОМ, либо вызывай доступный толстому клиенту аналог нужного метода, либо структуру вместо выборки передавай
7 youalex
 
16.10.18
12:48
(3) Уверен, что тебе нужно передавать именно ВыборкаСтрокТовары
а не ВыборкаСтрокТовары.Номенклатура, например?
8 Бешеный заяц
 
16.10.18
12:54
(7) нет именно строку документа так как уже непостредственно в функции идет обращение и к номенклатуре и к сериии из этой строки.

Незнал особенности обычных форм, на УФ проще вызовы работают...
9 Бешеный заяц
 
16.10.18
12:55
значит на клиент переношу функцию...
10 catena
 
16.10.18
13:19
"на УФ проще вызовы работают"

Ну вот и дожили.

А структура вместо строки не прокатит?
11 Бешеный заяц
 
16.10.18
13:33
(10) что дожили? в УФ из процедуры на клиенте например Сформировать() вызываю Функцию сервера причем в этой же самой форме, а в обычных только через общий модуль как я понял.

Нет структуру не буду лучше к себе перетащу функцию
12 catena
 
16.10.18
13:47
(11)До сих пор слышала только вопли, что УФ сложнее))
13 Valery
 
16.10.18
13:58
РеквизитФормыВЗначение("Объект").ПечатьТОРГ13() таким чудом
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший