Имя: Пароль:
1C
1С v8
Ошибка ПолучитьИзВременногоХранилища в управляемом приложении
0 DomenER
 
14.05.19
10:12
Всем привет.

Пытаюсь передать шаблон ActiveDocument с сервера на клиент, но появляется ошибка. Подскажите как можно исправить?

Код общего модуля:
&НаСервере
Функция ПолучитьДанныеМакета(ИмяМакета) экспорт
АдресХранилища = Новый УникальныйИдентификатор();
Макет             = Справочники.гпаДоговора.ПолучитьМакет(ИмяМакета); //ОбработкаОбъект.ПолучитьМакет(ИмяМакета);
Возврат ПоместитьВоВременноеХранилище(Макет, АдресХранилища);
КонецФункции


Код из формы:
&НаКлиенте
Процедура Тест(Команда)
    Индификатор = гпаОбщийМодуль.ПолучитьДанныеМакета("Макет");
    МакетПисьма = ПолучитьИзВременногоХранилища(Индификатор);


Индификатор  заполняется и вижу ссылку в конфигураторе, а вот на 2-й строке вываливается ошибка:
Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)

Office на серваке нету.
1 fisher
 
14.05.19
10:17
Боюсь, у меня плохие новости...
2 DomenER
 
14.05.19
10:18
(1) Что не так делаю?
3 palsergeich
 
14.05.19
10:19
Наверное не надо передавать ActiveDocument в другой контекст. Логично же
4 DomenER
 
14.05.19
10:23
(3) Т.е. 1С-ка не может принять в контексте клиента шаблон ActiveDocument?
Здесь в комментах пишут пример с передачей через хранилище http://catalog.mista.ru/public/270277/
5 Cyberhawk
 
14.05.19
10:25
"Индификатор" лол
6 DomenER
 
14.05.19
10:26
(5) Взято из примера. И имена переменных пока не важна.
7 Cyberhawk
 
14.05.19
10:31
(6) Какого примера?
8 DomenER
 
14.05.19
10:34
9 sqr4
 
14.05.19
10:38
Так в статье из (4)
Таким образом наша предыдущая схема превращается вот во что:

1 – &НаСервере Получаем макет ActiveDocument

2 – &НаСервере Сохраняем полученный макет в файл и возвращаем на клиент полное имя файла (полный путь + наименование с расширением)

3 – &НаКлиенте Инициализируем COM-объект из файла

4 -  &НаКлиенте заполняем и выводим этот COM-объект
10 DomenER
 
14.05.19
10:39
(9) В комментах написан пример через временное хранилище.
11 Cyberhawk
 
14.05.19
10:40
ВХ надо к форме привязанный передавать, а не генерировать на сервере
12 sqr4
 
14.05.19
10:43
(10) Так там в качестве макета передаются двоичные данные, а у вас?
13 DomenER
 
14.05.19
10:44
(12) У меня ActiveDocument. Выходит двоичные данные передать можно, а ActiveDocument через ВХ уже нельзя.
14 sqr4
 
14.05.19
10:46
(13) Так там и весь прикол в этом
15 DrZombi
 
гуру
14.05.19
10:46
(0) Передать на клиент "Двоичный тип", т.е. файлик сохранить...
И открыть на клиенте :)
16 palsergeich
 
14.05.19
10:47
(13) совершенно верно
17 DrZombi
 
гуру
14.05.19
10:47
(13) ActiveDocument  - это ОЛЕ, карл, ОЛЕ :)
https://docs.microsoft.com/ru-ru/office/vba/api/word.application
18 DomenER
 
14.05.19
10:49
(15) Похоже так и придётся. Хотелось проще - через ActiveDocument.

Или вариант сохранять файл на сервере во временный каталог и передавать его на клиент. Нет простых путей у 1С-ки...
19 sqr4
 
14.05.19
11:02
(18) наверно на делфи, такое вообще офигеешь делать.
20 palsergeich
 
14.05.19
11:09
(18) А при чем тут одинэска, окружение меняется, на чем не делай - просто не выйдет
21 DomenER
 
14.05.19
11:36
(20) В обычных (не управляемых) формах как то проще всё получалось с шаблонами работать...
22 palsergeich
 
14.05.19
11:37
(21) а вот попробовал бы ты его передать в ОМ с директивой компиляции Сервер без Клиент обычное приложение
23 palsergeich
 
14.05.19
11:37
Результат был бы абсолютно тот же
24 Franchiser
 
гуру
14.05.19
12:04
АдресХранилища = Новый УникальныйИдентификатор();
Это адрес хранилища???
25 DomenER
 
14.05.19
15:44
(24) генерируется строка вида "d550ae44-43e2-4e0c-a3e7-9f655747015f"