Проблема с выводом картинок в табличный документ на сервере

1. fancy 35 01.06.17 09:48 Сейчас в теме
Есть печатная форма, в которую нужно вывести картинки из опр. каталога по имени файла

Результат. - Табличный документ

Картинка - Тип значения Картинка (доступна на сервере, проверял)

Использовал разные методы (все работают при формировании печ. формы на толстом клиенте и не работают при создании печ. формы на сервере)

1) В выводимой секции макета "Строка" добавил картинку с именем Пикт

Код :

Строка.Рисунки.Пикт.Картинка = Картинка;


не работает, выводится картинка, которая задана изначально в макете

2)

ОбластьКартинки = Результат.Область(Результат.ВысотаТаблицы-1,2);
			
ОбластьКартинки.Картинка = Картинка;


3)
ОбластьКартинки = Результат.Область(Результат.ВысотаТаблицы-1,2);
			Рис = Строка.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
			Рис.РазмерКартинки = РазмерКартинки.Пропорционально;
			Рис.Картинка = Картинка;
			Рис.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
			Рис.Расположить(ОбластьКартинки);


Вообще задача такая - печ. форма документа с картинками должна быть сохранена в pdf и отправлена по почте, проверял и в mxl, xls, doc
файл на почту приходит без картинок

Может кто-то сталкивался с этим или у кого-то есть реально рабочий код просьба ответить

Сервер 1С:Предприятие 8.3 (8.3.8.2054)
По теме из базы знаний
Найденные решения
6. fancy 35 02.06.17 09:26 Сейчас в теме
Всем спасибо разобрался, проблема была в другом (сам ступил).

Формирутеся ВНЕШНЯЯ печатная форма на сервре

т.е создается
Обработка = ВнешниеОбработки.Создать(ИмяФайла);


но. тк по умолчанию внешняя обработка содается в безопасном режиме
то в ней не разрешен конструктор

Картинка = Новый Картинка(ИмяФайла);

поменял строчку создания обработки на

Обработка = ВнешниеОбработки.Создать(ИмяФайла,Ложь);


все заработало
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. golovinaea 01.06.17 10:14 Сейчас в теме
(1) Фаниль, добрый день! У меня работает следующий вариант:
Картинка = Новый Картинка (ПолныйПуть);
КоллекцияРисунков = ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Индекс=ТабДок.Рисунки.Индекс(КоллекцияРисунков);
ТабДок.Рисунки[Индекс].Картинка = Картинка;
Адрес = "R" + НомерСтроки + "C5:R" + НомерСтроки + "C5";
ТабДок.Рисунки[Индекс].Расположить(ТабДок.Область(Адрес));
3. KazanKokos 10 01.06.17 10:17 Сейчас в теме
у меня так работает
Запрос = Новый Запрос;
	ЗАпрос.Текст =
	"ВЫБРАТЬ
	|	СправочникХранилищеДополнительнойИнформации.Ссылка,
	|	СправочникХранилищеДополнительнойИнформации.ПометкаУдаления,
	|	СправочникХранилищеДополнительнойИнформации.Наименование,
	|	СправочникХранилищеДополнительнойИнформации.ВидДанных,
	|	СправочникХранилищеДополнительнойИнформации.ИмяФайла,
	|	СправочникХранилищеДополнительнойИнформации.Объект,
	|	СправочникХранилищеДополнительнойИнформации.Хранилище,
	|	СправочникХранилищеДополнительнойИнформации.ТекстФайла,
	|	СправочникХранилищеДополнительнойИнформации.Предопределенный,
	|	СправочникХранилищеДополнительнойИнформации.ИмяПредопределенныхДанных
	|ИЗ
	|	Справочник.ХранилищеДополнительнойИнформации КАК СправочникХранилищеДополнительнойИнформации
	|ГДЕ
	|	СправочникХранилищеДополнительнойИнформации.Объект = &ПретензияСсылка
	|	И НЕ СправочникХранилищеДополнительнойИнформации.ПометкаУдаления";
	Запрос.УстановитьПараметр("ПретензияСсылка",Объект.Ссылка);
	вИзображения = Запрос.Выполнить().Выбрать();
	МакетГалереи             = Документы.Претензия.ПолучитьМакет("МакетГалереи");
	ОбластьИзображения        = МакетГалереи.ПолучитьОбласть("Изображение|ЯчейкаИзображения");
	СтраницаГалереи.Очистить();
	ТекущаяКолонка = 1;
	Пока вИзображения.Следующий() Цикл
		Изображение = вИзображения.ссылка;
		ТекущаяКолонка = ?(ТекущаяКолонка < 5,ТекущаяКолонка,1);
		
		ОбластьИзображения.Параметры.Наименование = Изображение.Наименование;
		Картинка = Изображение.Хранилище.Получить();
		Если ТипЗнч(Картинка) <> Тип("Картинка")Тогда
			Попытка
				Картинка = Новый Картинка(Изображение.Хранилище.Получить());
			Исключение
			КонецПопытки;
		КонецЕсли;	
		ОбластьИзображения.Рисунки.Фотография.Картинка = Картинка; 
		ОбластьИзображения.Рисунки.Фотография.Расшифровка  = вИзображения.Ссылка;
		Если ТекущаяКолонка = 1 Тогда
			СтраницаГалереи.Вывести(ОбластьИзображения);
		Иначе
			СтраницаГалереи.Присоединить(ОбластьИзображения);
		КонецЕсли;	
	    ТекущаяКолонка = ТекущаяКолонка + 1;
	КонецЦикла;	
Показать

давно делал. запрос было лень сокращать видимо. куча лишний полей.
4. ipoloskov 162 01.06.17 10:26 Сейчас в теме
Чудес не бывает. Отладчик что показывает? Программа заходит вообще на строку Строка.Рисунки.Пикт.Картинка = Картинка;? Попробуйте создать макет с одной большой областью и одной картинкой и проверьте формирование. Выведите табличный документ на экран. Проверьте, что у картинки не стоит признак "Не выводить на печать".

MXL, встроенный в тело письма в формате HTML, картинки режет. Но у вас же не этот случай?
5. fancy 35 01.06.17 13:19 Сейчас в теме
Спасибо за отклики, буду пробовать


(4)
MXL, встроенный в тело письма в формате HTML, картинки режет. Но у вас же не этот случай?


даже без сохранения табл. документа попробовал - в серверном модуле формирую табл. документ с картинками, запихиваю его в хранилище значения и возвращаю на клиента. На клиенте из хранилища получаю таб. документ и показываю его -картинки не изменились
6. fancy 35 02.06.17 09:26 Сейчас в теме
Всем спасибо разобрался, проблема была в другом (сам ступил).

Формирутеся ВНЕШНЯЯ печатная форма на сервре

т.е создается
Обработка = ВнешниеОбработки.Создать(ИмяФайла);


но. тк по умолчанию внешняя обработка содается в безопасном режиме
то в ней не разрешен конструктор

Картинка = Новый Картинка(ИмяФайла);

поменял строчку создания обработки на

Обработка = ВнешниеОбработки.Создать(ИмяФайла,Ложь);


все заработало
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот