Имя: Пароль:
 
1C
1С v8
Внешняя печатная форма на Activate УФ
0 Sayan_mi
 
01.12.17
14:11
День добрый.
Не подскажите ли как обойти ситуацию.
Макет хранится в обработке.
Получить его:
ткОбъект = РеквизитФормыВЗначение("Объект");
Макет = ткОбъект.ПолучитьМакет("Макет");
Могу только на сервере.
А получить вордовский документ
MsWord =  Макет.Получить();
Только на клиенте. Причем передать Макет с сервера на клиент не получается. Как обходится эта ситуация?
1 1c-bs
 
01.12.17
14:20
(0) Через ТабличныйДокумент например.
2 nordbox
 
01.12.17
14:26
ИМХО
а функцию написать которая бы выполнялась на сервере и  возвращала макет, а на клиенте ее вызвать пробовала?
3 nordbox
 
01.12.17
14:29
&НаСервере
Функция ВернутьМакет()
ткОбъект = РеквизитФормыВЗначение("Объект");
Макет = ткОбъект.ПолучитьМакет("Макет");
КонецФункции

&НаКлиенте
Процедура ЧтоТоСделать()
МакетНаКлиенте=ВернутьМакет()
КонецПроцедуры
4 Sayan_mi
 
01.12.17
14:42
(3) я так и сделал, так оно не работает выдаёт ошибку: Ошибка отображения типов: Отсутствует отображение для типа "ОблочкаActiveDocement".
5 Sayan_mi
 
01.12.17
14:44
(4) имеется в виду выдаёт при передаче макета.
6 Сергиус
 
01.12.17
14:51
(0)А какая цель итоговая? Отобразить на клиенте файл? Зачем тогда тащить туда макет(на клиент) - сделай все на сервере, сохрани там получившийся файл в ДвоичныеДанные, их и верни на клиента. А там уж обработно в файл ворд отобрази.
7 nordbox
 
01.12.17
14:57
8 Sayan_mi
 
01.12.17
15:12
(6) А как на сервере подправить макет? MsWord =  Макет.Получить(); На сервере не работает.
9 Сергиус
 
01.12.17
16:20
(8)В смысле подправить? На сервере может быть не доступно отображение, а работа с макетом там 100% возможна.
10 Сергиус
 
01.12.17
16:21
+(9)Повторю вопрос - какая итоговая цель, что нужно сделать/получить?
11 Sayan_mi
 
04.12.17
08:19
(10) Нужно вывести внешний отчет в котором макет ActiveDocument. С обычным макетом проблем нет Прекрасно на сервере заполняется и передаётся в коллекцию печатных форм.
при ActiveDocument на сервере не срабатывает Макет.Получить(), на клиент не могу передать макет.
12 LordCMEPTb
 
04.12.17
12:16
А если макет сделать двоичными данными, на сервере их получить, на клиента вернуть, а уже на клиенте открыть и редактировать в com-приложении?
13 Сергиус
 
04.12.17
13:17
(11)Скорее всего на сервере не установлен Word.
14 Flover
 
04.12.17
13:25
1. Макет хранится в двоичных данных
2. На сервере получаешь двоичные данные и передаешь их клиенту
3. на клиенте сохраняешь эти двоичные данные и открываешь их через комобъект ворда. ворд должен быть на компе установлен.
4. работаешь на клиенте с комобъектом ворда.

П.С. при работе на сервере с вордом - у пользователя, под которым запкускается сервер 1С, обычно это USER1C должны быть права на ззапуск комобъектов + должны быть права на апись файлов.
По умолчанию таких прав у данного пользователя нет и попытка поработать с вордом или экселем, хоть они установлены на сервере приводет к ошибке.
15 4serg
 
04.12.17
13:50
Поддерживаю 14. ActiveDocument заменяем на двоичные данные и работаем.