[СКД] Вывод картинки в результат любого отчета на СКД

20.12.19

Разработка - Работа с интерфейсом

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

Для примера делаю запрос к остаткам и выбираю реквизит "ФайлКартинка" справочника Номенклатура.

 

 

У реквизита тип СправочникСсылка.НоменклатураПрисоединенныеФайлы (механизм БСП)

 

 

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

 

 

В СКД поле "картинка" добавляю в группировку

 

 

В модуле отчета в Процедура ПриКомпоновкеРезультата

-программно формирую отчет и обрабатываю РасшифровкуКомпоновкиДанных.

-ищу в расшифровке поле с картинкой.

-получаю двоичные данные (я воспользовался фунцией БСП) РаботаСФайлами.ДвоичныеДанныеФайла(ФайлКартинки.Значение), если у вас не БСП, то просто получите из реквизита с типом ХранилищеЗначения двоичные данные.

-помещаю картину в табличный документ

 

 


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;	
		
	НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();

	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

	Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки);

	ПроцессорКомпоновкиСКД = Новый ПроцессорКомпоновкиДанных;

	ПроцессорКомпоновкиСКД.Инициализировать(Макет,, ДанныеРасшифровки);

	ДокументРезультат.Очистить();

	ПроцессорВыводаСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

	ПроцессорВыводаСКД.УстановитьДокумент(ДокументРезультат);

	ПроцессорВыводаСКД.Вывести(ПроцессорКомпоновкиСКД);
	
	КолвоСтрок = ДокументРезультат.ВысотаТаблицы;
	КолвоКолонок = ДокументРезультат.ШиринаТаблицы;
	Для Строка = 1 По КолвоСтрок Цикл
		Для Колонка = 1 По КолвоКолонок Цикл
			Область =  ДокументРезультат.Область(Строка,Колонка);
			Расшифровка = Область.Расшифровка;
			Если ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
				ПоляРасшифровки = ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля();
				ФайлКартинки = ПоляРасшифровки.Найти("Картинка");
				Если ФайлКартинки <> Неопределено Тогда
					КартинкаДД = РаботаСФайлами.ДвоичныеДанныеФайла(ФайлКартинки.Значение);
					Картинка = Новый Картинка(КартинкаДД);
					КартинкаДок = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
					КартинкаДок.Картинка = Картинка;
					КартинкаДок.РазмерКартинки = РазмерКартинки.АвтоРазмер;
					КартинкаДок.Расположить(Область);	
				КонецЕсли;	
			КонецЕсли;	
		КонецЦикла;		
	КонецЦикла;	
	
КонецПроцедуры

 

В результате получаю в группировке картинку.

 

 

 

Тестировал: 1С:Комплексная автоматизация 2 (2.4.9.98)

1С:Предприятие 8.3 (8.3.15.1747)

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61713    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54321    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    16626    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10570    745    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    9490    150    acces969    31    

115

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3582    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12014    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. echo77 1868 09.12.19 10:18 Сейчас в теме
(0) Все проще начиная с 8.3.14 СКД уже сама может выводить картинки в Табличный документ https://vk.com/neticompany?w=wall-73155890_4571
abasovit; koks17v; Merkalov; Lazio; Serg O.; adhocprog; pahich; GATTUSO; Antonov.AV; D_e_X_T_e_R; barneotec; marinka2010-92; andmakarov; DoctorRoza; rpgshnik; hmanubis; Sinsinmin; Shepico; Lexaero; CatBlack; rusmm93; mrmasson; A_Max; dsdred; Apokal1985; 07Iris; Caputsinka; kondrat1C; Бэнни; +29 Ответить
2. John_d 5204 09.12.19 10:37 Сейчас в теме
(1) Как быть если в БСП выбран тип хранения файлов не базе, а в томах на диске?
ФайлОбъект.ТипХраненияФайла В томах на диске ПеречислениеСсылка.ТипыХраненияФайлов
user986734; Alexx48; +2 Ответить
4. echo77 1868 09.12.19 10:39 Сейчас в теме
(2) Думаю, так же, как в вашем примере РаботаСФайлами.ДвоичныеДанныеФайла(). Так же можно написать в выражении вычисляемого поля?
5. RustIG 1301 09.12.19 10:42 Сейчас в теме
(4) где доказательства? автор опробовал метод, представил ощутимый результат. а вы что представили? рекламу на фирму?
7. Spacer 355 09.12.19 11:40 Сейчас в теме
(1)Если б еще кто-то кинул пример как это делать.
Я пробовал согласно описанию, но то-то ничего не вышло.
8. echo77 1868 09.12.19 11:45 Сейчас в теме
3. RustIG 1301 09.12.19 10:38 Сейчас в теме
(0) молодец! разобрался и другим расписал.
(1) что за ссылка? где описание метода? где расшифровка вашей новости?
6. echo77 1868 09.12.19 10:53 Сейчас в теме
(3) Держите схему. Она простая, попробуйте
Прикрепленные файлы:
Схема.xml
Поручик; +1 Ответить
9. EVKash 14 09.12.19 11:46 Сейчас в теме
10. vis_tmp 32 09.12.19 13:59 Сейчас в теме
Спасибо, полезный пример вывода картинки в отчёт.
11. пользователь 09.12.19 14:47
(0) Есди никто не будет против, то добавлю сюда связанную ссылку.

Делал подобную публикацию про картинки в СКД (в шапке, в самом отчете и про новые возможности платформы):

https://infostart.ru/public/1125765/
ByNiko1984; wowik; ids79; adhocprog; +4 Ответить
12. sikuda 673 09.12.19 16:27 Сейчас в теме
Да приведенный метод работает - https://youtu.be/7a4pasFe7P4
- Но по опыту разгребания чужой базы скажу - на средних картинках и многочисленности отчетов выполнение срубается (режим совместимости 8.3.12). Вылет Регламентного задания с ошибкой обеспечен.
ByNiko1984; +1 Ответить
13. demon_infernal 39 10.12.19 12:50 Сейчас в теме
А если размер хранимой картинки будет 1800 на 1200 - перед выводом ее желательно уменьшить, иначе сохраняемый XLS может иметь очень большие размеры.
Начиная с 8.3.14 для этого есть объект ОбрабатываемаяКартинка
15. пользователь 12.12.19 19:51
(14) все статьи хороши. Плюсы доставлены )
user986734; John_d; +2 Ответить
16. m..adm 255 13.12.19 04:31 Сейчас в теме
Обход потом всего табличного документа по всем его ячейкам занятие не хитрое, но представьте что в нем уйма строк и предостаточно колонок. Получение полей расшифровок по каждой ячейки отчета в данном случае съест уйму времени при его формировании.
YPermitin; +1 Ответить
17. vika64 75 21.02.22 20:11 Сейчас в теме
18. Andruykha 178 21.04.23 18:13 Сейчас в теме
в УНФ в отчете Продажи получилось сделать картинки, спасибо!
Оставьте свое сообщение