Расширение для печати файла картинки в отчетах. (ERP 2)

Отчеты

Расширение 1С для печати файла картинки номенклатуры в отчетах без изменения основной конфигурации. Тестирование на платформе 8.3.11.2954, конфигурация ERP 2.4.4.124 (Demo).

Установить расширение в небезопасном режиме.

Чтобы картинка вывелась в отчет, нужно добавить в выбираемые поля реквизит ФайлКартинки из Номенклатуры, без дополнительных реквизитов. В противном случае, в отчет попадут именно значения реквизитов присоединенного файла.

Управлять размером картинки (Маленькая, Средняя, Большая) можно из меню всех команд "Размер картинки" перед формированием отчета. По умолчанию - Средняя.

Реализовано переопределением двух форм отчетов (общей и универсального) в процедуре ФоновоеЗаданиеЗагрузитьРезультат(). Данная процедура переопределяется полностью ("Вместо"), поэтому необходимо отслеживать возможные изменения алгоритма этих процедур в основной конфигурации и соответствующим образом модифицировать данное расширение.

 

Скачать файлы

Наименование Файл Версия Размер
Печать изображений номенклатуры в отчетах. ERP 2:
.cfe 41,89Kb
04.06.18
0
.cfe 41,89Kb Скачать

См. также

Комментарии
1. d (belyavsky) 2 25.03.18 12:50 Сейчас в теме
Попробовал прикрутить это к Управление торговлей, редакция 11 (11.4.3.123), 1С:Предприятие 8.3 (8.3.11.2924)
Добавил в 2 функции модуля КомпоновкаДанныхСервер необходимые, так же добавил новый общий модуль РасширениеОтчетыСервер (достаточно добавить общий модуль или надо делать расширение?), куда скопировал необходимые процедуры, пробую делать отчеты, а в отчетах все равно выводится имя файла картинки, где ошибаюсь или что я делаю не так?
2. d (belyavsky) 2 25.03.18 13:23 Сейчас в теме
Вот результат
Прикрепленные файлы:
3. kylux 18 25.03.18 22:18 Сейчас в теме
Странно, что у Вас двух функций в модуле КомпоновкаДанныхСервер нет (т.е. в этом модуле нужно в существующие функции добавить кусочки кода, как я это сделал в ERP). Возможно в торговле система печати устроена по другому, посмотрю, по свободе.
4. d (belyavsky) 2 26.03.18 13:32 Сейчас в теме
(3) вы меня неправильно поняли, функции ОбработатьРасшифровку и СформироватьОтчет в общем модуле КомпоновкаДанныхСервер есть, туда я добавил
// АНБ - Вкрапление для печати вместо файла картинки реальной картинки!

Если РасширениеОтчетыСервер.ПроверитьИспользованиеФайлаКартинки(ОтчетОбъект.КомпоновщикНастроек.Настройки.Выбор.Элементы) Тогда
РасширениеОтчетыСервер.ВывестиФайлыКартинок(ТаблицаРезультатаОтчета, ДанныеРасшифровки);
КонецЕсли;

создал новый общий модуль РасширениеОтчетыСервер, туда скопировал содержимое файла МодульПечатиФайлаКартинки.txt, выбираю в отчете именно Номенклатура.Файл картинки, но она не выводится
5. kylux 18 26.03.18 14:00 Сейчас в теме
(4) Тогда другой вопрос, Вы отладчиком в тот участок кода попадаете? который вставили. Если нет, то возможно отчет, который Вы используете не использует стандартные механизмы формирования.

Вообще алгоритм очень прост и очевиден, после того, как сформировался табличный документ с помощью СКД, или каким-то другим алгоритмом, необходимо выполнить тот код, который из двух строчек, Например, в 10.3 пришлось-бы в каждый отчет, где нужно вывести картинку, добавлять этот функционал после построения. Нам все отчеты формируются в модуле объекта отчета, и нет надстройки, наподобие в ERP.

Хотя возможно у Вас другая проблема, или у меня там ошибка, во всяком случае у меня это живет в реале... Можете конфиг для теста в облаке выложить, гляну на досуге.
6. d (belyavsky) 2 29.03.18 03:35 Сейчас в теме
7. kylux 18 03.04.18 14:47 Сейчас в теме
(6) Коллега, каюсь! При подготовке статьи на форум пропустил еще одно место вставки, для случаев когда отчет формируется в фоновом задании. Необходимо похожие две строчки вставить в модуль ВариантыОтчетов в процедуру "СформироватьОтчет":

// Формирует отчет с указанными параметрами.
Функция СформироватьОтчет(Знач Параметры, Знач ПроверятьЗаполнение, Знач ПолучатьФлажокПустой) Экспорт
...

	ОтчетОбъект.СкомпоноватьРезультат(Результат.ТабличныйДокумент, Результат.Расшифровка);
	//Вкрапление для печати вместо файла картинки реальной картинки!	
	Если РасширениеОтчетыСервер.ПроверитьИспользованиеФайлаКартинки(ОтчетОбъект.КомпоновщикНастроек.Настройки.Выбор.Элементы) Тогда
		РасширениеОтчетыСервер.ВывестиФайлыКартинок(Результат.ТабличныйДокумент, Результат.Расшифровка);
	КонецЕсли;
	// 
Показать


ссылку на конфиг готовый выложу вечером в личку!

Еще раз приношу извинения!
8. d (belyavsky) 2 03.04.18 15:51 Сейчас в теме
Все равно лучше не стало :(
Прикрепленные файлы:
9. kylux 18 03.04.18 16:26 Сейчас в теме
(8) там есть вариант отчета Универсальный отчет - копия? может я уж совсем перегрелся, не ту базу выслал
12. d (belyavsky) 2 03.04.18 16:56 Сейчас в теме
(9)
чета Универсальный отчет - копия? может я уж совсем перегрелся, не ту базу выслал
вариантов отчета у универсального отчета нету
10. kylux 18 03.04.18 16:28 Сейчас в теме
(8) у Вас там в базе фотография только у вентилятора одна установлена в номенклатуре
11. d (belyavsky) 2 03.04.18 16:55 Сейчас в теме
я добавил еще и для молока
Прикрепленные файлы:
13. kylux 18 03.04.18 17:05 Сейчас в теме
(11) сейчас попробую файловую базу сделать, что-то мне подсказывает что у Вас не серверный вариант?

в аттаче собственно ваши данные :)
Прикрепленные файлы:
14. d (belyavsky) 2 03.04.18 17:14 Сейчас в теме
я проверил универсальный отчет на справончике номенклатуры и именно там все работает :) а в регистр накопления добавляю - не показывает, но там не просто файл картинки, а номенклатура.файл картинки!
15. kylux 18 03.04.18 17:20 Сейчас в теме
(14) да я увидел уже :), разберусь... это уже дело принципа! причем мне самому этот функционал понадобится из регистров! отпишусь, когда сделаю...
16. d (belyavsky) 2 03.04.18 17:47 Сейчас в теме
(15) есть кстати еще одно предложении в догонку, чтобы в функции

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


анализировались не только поля на в полях и сортировках но и в структуре, более того как частный случай в составе группировки.
17. kylux 18 03.04.18 18:03 Сейчас в теме
(16) кстати не только в справочнике номенклатуре, в документах тоже без проблем, и там "Номенклатура.Файл картинки", на скрине в заголовке статьи, поэтому это даже забавно, в чем там залип при регистрах )

насчет анализа в группировках в структуре, мне кажется это излишним, все-таки первичен справочник номенклатуры, причем там только одно поле картинки, поэтому группировка все равно должна быть по номенклатуре, а присоединенные файлы они всегда идентичны в части логики группировки номенклатуре, т.е. владельцем выступает уникальный объект номенклатуры и только один, как вариант, чтобы ссылка номенклатуры из структуры не попадала в отчет вовсе, а только картинка... хз
18. kylux 18 04.06.18 09:42 Сейчас в теме
(16) дошли руки, наконец, полностью переделал - теперь нет необходимости изменять основную конфигурацию, не знаю, даст ли сайт скачать новую версию... если нет, сброшу в личку или по почте
Оставьте свое сообщение