Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка ПолучитьИзВременногоХранилища в управляемом приложении

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

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

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


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


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

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

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

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.