0. mxm2 1176 14.03.13 17:01 Сейчас в теме

Картинка в таблице СКД (управляемое приложение) на примере УТ11, простое решение "в лоб" или легкая модификация стандартного отчета Прайс-Лист

Картинка выводится непосредственно при формировании макета, на основании информации получаемой запросом СКД. Причем этой информацией являются только ссылки на элементы справочника, имеющего связь с изображением.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. @lexandr 162 08.04.13 12:02 Сейчас в теме
Пришлось немного эту функцию переделать, а то ошибки иногда выдает, а так очень помогло, вывел в прайс на ут 11.1.1.13 картинку.

Функция ВернутьЗначениеПараметраНастройкиСКД(КоллекцияЭлементовНастройки, ИмяНастройки, ЗначениеПоУмолчанию = Неопределено)

Настройка = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяНастройки);
Если Настройка = Неопределено Тогда Возврат ЗначениеПоУмолчанию; КонецЕсли;
НастрокаПоИД = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(Настройка.ИдентификаторПользовательскойНастройки);
Если НастрокаПоИД = Неопределено Тогда
Возврат ЗначениеПоУмолчанию;
Конецесли;
Если Не ЗначениеЗаполнено(НастрокаПоИД.Значение) Тогда
Если Не ЗначениеПоУмолчанию = Неопределено Тогда
НастрокаПоИД.Значение = ЗначениеПоУмолчанию;
КонецЕсли;
КонецЕсли;
Возврат ?(НастрокаПоИД.Использование, НастрокаПоИД.Значение, ЗначениеПоУмолчанию);
КонецФункции
Nigelist; +1 Ответить
2. mxm2 1176 08.04.13 13:26 Сейчас в теме
(1) @lexandr, Странно, у меня вообще ошибок не возникало никогда, причем во всех трех версиях отчета, даже здесь http://infostart.ru/public/178422/, возможно проблема в том, что какое-либо поле исключено из пользовательских настроек.
30. Nigelist 09.03.19 03:53 Сейчас в теме
3. tolyan_ekb 176 11.06.13 08:16 Сейчас в теме
Отличное решение без доп. макета. На основе публикации сделал похожее для картинок из внешних файлов. Огромное спасибо.
4. tolyan_ekb 176 11.06.13 09:35 Сейчас в теме
Почему-то у меня не получается изменить высоту строки с изображением. Пробовал и явно, и с помощью изменения в коде
Область.ВысотаСтроки = ШиринаКолонкиИзображения * 134.31 / 0.3759;
5. mxm2 1176 11.06.13 10:00 Сейчас в теме
(4) tolyan_ekb,

вот здесь: http://infostart.ru/public/178422/

Upd 07.04.2013: Добавлена возможность подгонки строки прайса по высоте отображаемой картинки (устанавливается в параметрах), использует стандартную библиотеку wiaaut.dll, доступную, например в windows 7, и не будет работать, если сервер вертится на linux системе (файл ПрайсЛистХX)


родной адекватно работающей функции - не нашел.
6. mxm2 1176 11.06.13 10:12 Сейчас в теме
(4) tolyan_ekb, смотрите пятый комментарий.
8. tolyan_ekb 176 13.06.13 11:22 Сейчас в теме
(6) спасибо. Но я установил высоту напрямую в условном оформлении, после чего она изменилась. Возможно, программно чего-то не доуказал.
9. varovinm 25.10.13 13:35 Сейчас в теме
(6) Спасибо!
Не срабатывает инициализация ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки)
Дело в том, что у меня в СКД есть параметры в которых задано выражение, например, Справочники.Валюты.НайтиПоКоду("156"). Может быть подскажете как получить значение у этих параметров????
Прикрепленные файлы:
10. mxm2 1176 25.10.13 15:35 Сейчас в теме
(9) varovinm, попробуйте
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки, Истина);

вообще лучше либо задавать валюту в параметрах (неявно), либо получать её в запросе, например из констант.
7. mxm2 1176 11.06.13 13:12 Сейчас в теме
(4) tolyan_ekb, еще возможно в Вашем макете стоИт ограничение минимальной высоты строки или автовысота.
11. killexx 16.12.13 23:47 Сейчас в теме
Реально ли сделать такой прайс для 1С 8.1, "Управление торговлей для Украины", редакция 2.3 ?
Прикрепленные файлы:
12. mxm2 1176 17.12.13 08:05 Сейчас в теме
(11) killexx, Реально всё. Если Ваша конфигурация на управляемых формах то за образец можете использовать текущую разработку. Если же на обычных формах - то, например вот эту http://infostart.ru/public/151012/.
13. MarryJane 25 24.11.14 14:13 Сейчас в теме
Коллеги, а скажите может есть мысли при выведении отчета с картинками уж больно долго выводится. Может у кого нить есть мысли куда копать. (Я попробывал выводить в УПР интерфейсе и в простом, так вот в простом интерфейсе выводится быстрее на порядок). может начать смотреть размеры картинок.
14. ReSY 115 04.12.14 12:10 Сейчас в теме
Понравилась реализация, автору плюс! На примере публикации создал отчет. Большое спасибо.
15. Graf71 04.06.15 14:24 Сейчас в теме
Спасибо автору за публикацию. Очень помогло в собственной разработке.
16. sergiowood 2 08.06.15 01:06 Сейчас в теме
Попробовал сделать по данной схеме отчёт, выдаёт ошибку
"Поле изображение не может быть использовано в группировке номенклатура, упаковка, характеристика"
Подскажите пожалуйста в чём может быть проблемка?
Делал на УТ 11.1.4.14 , на основе типового отчёта "Прайс"
Если "изображение" как ресурс, то ошибку не выдаёт но и поле "изображение" не выводит вообще
18. Lev292 34 22.11.16 23:43 Сейчас в теме
В последних версиях УТ11 этот отчет уже не работает!!!
Ребята из 1С сами задействовали Процедуру ПриКомпоновкеРезультата и если там поставить СтандартнаяОбработка = Ложь. то отчет перестает работать
19. ssn5810 79 25.03.17 00:37 Сейчас в теме
Да отчет не работает
Метод объекта не обнаружен ПолучитьПараметр
Jack_off; Aquashop; +2 Ответить
20. Margo_X 05.04.17 14:26 Сейчас в теме
В версии УТ 11 _11.3.2.207 отчет не работает

Метод объекта не обнаружен ПолучитьПараметр
Jack_off; ewgeniy1000; Aquashop; +3 Ответить
21. Orchild 08.08.17 11:23 Сейчас в теме
Функция ПоучитьПараметр находится в общем модуле КомпоновкаДанныхКлиентСервер.
22. waol 268 10.10.17 10:29 Сейчас в теме
прекрасно - работает )
спасибо!
23. bad_wag 29 17.11.17 14:59 Сейчас в теме
На небольших объемах все это хорошо работает, но когда в отчете тысячи строк и в каждой картинка время ожидание неприемлемо велико. Есть у кого нибудь идеи как оптимизировать этот нюанс? Очень бы хотелось без изменения конфигурации
24. RocKeR_13 795 30.05.18 11:42 Сейчас в теме
Хм, делал по аналогии и такая получается штука: в файловой базе 550 строк с картинками выводит за 3-4 минуты, перевожу базу на SQL - спустя полчасатак никаких результатов и не видно... Пока отладку не включал, вставил записи в ЖР: в процедуре "ПриКомпоновкеРезультата" строку "ПроцессорВывода.ЗакончитьВывод();" успешно проходит... Картинки пробовал и в базе размещать, и в каталогах
UPD: спустя 40 минут все-таки вывел
27. Els11 53 13.10.18 21:30 Сейчас в теме
(24) Самое узкое место в выводе отчета с картинками это передача его обратно с сервера на клиента, При передаче платформа сериализует табличный документ и передает таким образом в разы больше информации , чем нужно. А на клиенте съедаются в это время Гигабайты.дискового постранства. У меня при выводе отчета продаж за месяц отчет вообще падал с ошибкой формата потока. Нашел следующий выход:
Если отчет не в типовом решении, то в обработку на сервер не надо передавать табличный документ.
При окончании обработки на сервере созданный табличный документ помещается во временной хранилище. Адрес временного хранилища можно задать или в реквизите формы или передать с клиента. А на клиенте уже из временного хранилища создается табличный документ. Что-то типа следующего:
&НаКлиенте
Процедура Сформировать(Команда)
	Адрес = "";
	СформироватьОтчетНаСервере(Адрес, Период);
	
	ТабДок = ПолучитьИзВременногоХранилища(Адрес);
	ТабДок.Показать();
КонецПроцедуры

&НаСервере
Процедура СформироватьОтчетНаСервере(Адрес, Период);
	ТабДок = Новый ТабличныйДокумент;
	ОбъектОтчет = РеквизитФормыВЗначение("Отчет");
	ОбъектОтчет.СформироватьОтчет(ТабДок, Период);
	
	Адрес = ПоместитьВоВременноеХранилище(ТабДок,ЭтаФорма.УникальныйИдентификатор);
КонецПроцедуры
Показать

Если про типовое решение, то в отчете по себестоимости и выручке продаж сделал так:
1) скопировал и создал из типового отчета свой отчет ОтчетПродажиСИзображением
2) Скопировал общую форму отчета и поместил ее в новый отчет
3) Выбрал форму отчета - новую форму отчета
4) в новой форме отчета добавил реквизит АдресН Тип строка неограниченной длины
5) в форме отчета в процедуре ФоновоеЗаданиеЗагрузитьРезультат закомментировал стандартную передачу результата табличного документа и добавил строку по помещению табличного документа во временное хранилище
	//ОтчетТабличныйДокумент = РезультатФормирования.ТабличныйДокумент;
	АдресН = ПоместитьВоВременноеХранилище(РезультатФормирования.ТабличныйДокумент,ЭтаФорма.УникальныйИдентификатор);

6) в процедуре ПослеФормирванияНаКлиенте добавил строку в начале процедуры
	ОтчетТабличныйДокумент = ПолучитьИзВременногоХранилища(АдресН);

Отчет из полутора тысяч строк вводится за 3 минуты. Отчет за месяц, который ранее не выводился вообще, выводится менее 15 минут. Работает в фоне, при условии, что отчет в конфигурации, а не внешний. Все сделанные доработки тоже касаются варианта, что отчет встроенный. Если внешний, то возможно алгоритмы идут по другим веткам и потребуются доработки.
Serj1C; RocKeR_13; acanta; +3 Ответить
25. Els11 53 25.09.18 12:52 Сейчас в теме
Для текущих версий ЕРП и УТ11 в процедуре ВывестиИзображениеНоменклатуры вместо обращения к РС Присоединенные файлы необходимо прописать следующее (Сначала закомментированный код):
//Если ЭлементСправочника.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
// СтуктураРег = РегистрыСведений.ПрисоединенныеФайлы.Получить(Новый Структура("ПрисоединенныйФайл", ЭлементСправочника));
// ДанныеКартинки = СтуктураРег.ХранимыйФайл.Получить();
//Иначе
// ДанныеКартинки = ?(ЗначениеЗаполнено(ЭлементСправочника.Том.ПолныйПутьWindows), ЭлементСправочника.Том.ПолныйПутьWindows, ЭлементСправочника.Том.ПолныйПутьLinux)
// + ЭлементСправочника.ПутьКФайлу;
//КонецЕсли;

Вместо закомментированного, следующее

ДанныеКартинки = ПолучитьИзВременногоХранилища(РаботаСФайлами.ДанныеФайла(ЭлементСправочника).СсылкаНаДвоичныеДанныеФайла);

P.s. Если кто кинет ссылку на инструкцию как в комментариях красиво код оформлять, буду благодарен. (Чтобы красненькое красненьким было, синенькое сининьким).
ba2000; alexruzh67; +2 Ответить
26. RocKeR_13 795 25.09.18 17:30 Сейчас в теме
(25)
Вот так))
Прикрепленные файлы:
28. user771753 24.10.18 21:12 Сейчас в теме
Айайай братюня затащил вообще молодец, все работает, даже без допиливания))) красавчик вообще, лукаснул тебе)))
29. Serj1C 479 21.02.19 12:15 Сейчас в теме
В 8.3.14 вывод картинок в СКД появится из коробки!

Для системы компоновки данных реализована возможность отображения картинок, расположенных в информационной базе. В отчете могут отображаться картинки, заданные в качестве навигационной ссылки на картинку и собственно картинкой, размещенной в реквизите типа ХранилищеЗначения.
Для объектов ОформлениеКомпоновкиДанных и ОформлениеЯчейкиТаблицыОбластиКомпоновкиДанных реализованы свойства ВыводитьКартинку, РазмерКартинки, ПоложениеТекстаОтносительноКартинки, ГоризонтальноеПоложениеКартинки, ВертикальноеПоложениеКартиинки.

В режиме совместимости с версией 8.3.13 поведение по умолчанию не изменилось.

Источник: https://dl04.1c.ru/content/Platform/8_3_14_1565/1cv8upd_8_3_14_1565.htm#a06301e2-a9ff-11e8-a3f7-0050569f678a
igee12; YPermitin; Spacer; +3 Ответить
31. notka 115 09.10.19 18:52 Сейчас в теме
Добрый день, может кто подскажет ((( Бьюсь с выводом картинок и вроде все норм, кроме того что картинка пустая. Картинки хранятся и в томах и в информационной базе. База УТ 11.3, платформа 8.3.10. Неделю уже всеми способами ковыряюсь, все равно пустые(
32. Clio24 06.02.20 15:15 Сейчас в теме
Увы и Ах! Все написанное выше уже не актуально для УТ 11.4.8.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата до 150 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 150 000 руб.
Полный день

Ведущий программист 1С (УТ 11)
Москва
зарплата до 200 000 руб.
Полный день