Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   как вывести картинку в скд? (http://forums.kuban.ru/f1040/kak_vyvesti_kartinku_v_skd-4077042.html)

LivingStar 19.04.2013 10:53

как вывести картинку в скд?
 
Ругается на несовместимость типов

Картинка = ПолучитьИзВременногоХранилища( НавигационнаяСсылкаКартинки(ЗначениеВыводимыхДанных, Новый УникальныйИдентификатор));
Если Картинка <> неопределено Тогда
ДокументРезультат.Рисунки[Индекс].Картинка = Картинка;
КонецЕсли;

LivingStar 19.04.2013 10:54

вот код который в модуле СКД

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Картинка = неопределено;
СтандартнаяОбработка = Ложь;
ДокументРезультат.Очистить();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
//ПроцессорВывода.Вывести(ДокументРезультат);
// 2013_04_18 ->
ПолеПоКоторомуНеобходимоПолучитьЗначение = "НоменклатураФайлКартинки";
//ПолеПоКоторомуНеобходимоПолучитьЗначение = "НоменклатураФайлКартинкиТекстХранилище";
// 2013_04_18 <-
ПроцессорВывода.НачатьВывод();
Пока истина Цикл
ЭлементРезультата = ПроцессорКомпоновки.Следующий();
Если ЭлементРезультата = Неопределено Тогда
прервать;
КонецЕсли;
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
Если ЭлементРезультата.ЗначенияПараметров.Количество() > 0 Тогда
ЗначениеВыводимыхДанных = Неопределено;
Для каждого ЗначениеПараметра из ЭлементРезультата.ЗначенияПараметров Цикл
Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
ПоляРасшифровки = ДанныеРасшифровки.Элементы[ЗначениеПараметра.Значение].ПолучитьПоля();
Для Каждого ПолеРасшифровки из ПоляРасшифровки Цикл
Если ПолеРасшифровки.Поле = ПолеПоКоторомуНеобходимоПолучитьЗначение Тогда
ЗначениеВыводимыхДанных = ПолеРасшифровки.Значение;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Если ЗначениеЗаполнено(ЗначениеВыводимыхДанных) Тогда
Рис = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рис.РазмерКартинки = РазмерКартинки.РеальныйРазмер;
Индекс = ДокументРезультат.Рисунки.Индекс(Рис);
// 04.19 ->
//Картинка = НавигационнаяСсылкаКартинки(ЗначениеВыводимыхДанных, Новый УникальныйИдентификатор);
//Н = ПоместитьВоВременноеХранилище(ЗначениеВыводимыхДанных, Новый УникальныйИдентификатор);
// 04.19 <-
// 2013_04_18 ->
//Картинка = ЗначениеВыводимыхДанных.ФайлХранилище.Получить();
Картинка = ПолучитьИзВременногоХранилища( НавигационнаяСсылкаКартинки(ЗначениеВыводимыхДанных, Новый УникальныйИдентификатор));
Если Картинка <> неопределено Тогда
ДокументРезультат.Рисунки[Индекс].Картинка = Картинка;
КонецЕсли;
//Если ЗначениеВыводимыхДанных.ЭтоГруппа Тогда
// ДокументРезультат.Рисунки[Индекс].Картинка = БиблиотекаКартинок.ГруппаИЭлемент;
//Иначе
// ДокументРезультат.Рисунки[Индекс].Картинка = БиблиотекаКартинок.Сформировать;
//КонецЕсли;
// 2013_04_18 <-
ВысотаТабДок = ДокументРезультат.ВысотаТаблицы;
ОбластьДляКартинки = ДокументРезультат.НайтиТекст("%Картинка%");
Если ОбластьДляКартинки <> Неопределено Тогда
ДокументРезультат.Рисунки[Индекс].Расположить(ОбластьДляКартинки);
ОбластьДляКартинки.Текст = "%КартинкаДобавлена%"
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();
КонецПроцедуры
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------
Функция НавигационнаяСсылкаКартинки(ФайлКартинки, ИдентификаторФормы)
УстановитьПривилегированныйРежим(Истина);
Возврат ПрисоединенныеФайлы.ПолучитьДанныеФайла(ФайлКартинки, ИдентификаторФормы).СсылкаНаДвоичныеДанныеФайла;
КонецФункции
// --------------------------------------------------------------------------------------------------------------------------------------------------------------------


Текущее время: 04:42. Часовой пояс GMT +3.