Печать прайс-листа с картинками для 1С Предприятие 7.7 Торговля и Склад 9.2 - пример реализации

Опубликовал Chaotic в раздел Обработки - Ценообразование, прайсы

Задача: требуется вывести в прайс фотографии товаров. Фотографии не хранятся в БД, ссылки на файлы генерируются в момент формирования прайса.

При создании статьи за основу взят материал aleksdbs из темы http://forum.infostart.ru/forum11/topic110387/.

Берем стандартную обработку "Печать прайс-листа".

Добавляем в модуль формы следующую процедуру:

Процедура ВывестиРисунок(ОбъектКартинка, Путь)
	Картинка = СоздатьОбъект("Картинка");
    Картинка.Загрузить(Путь);
	
	ОбъектКартинка.РежимРисования(3);
    ОбъектКартинка.УстановитьКартинку(Картинка);
КонецПроцедуры

В макет прайса добавляем 2 колонки "Фото" и "БезФото". В колонку "Фото" вставляем Объект "Картинка" ("Таблица" -> "Вставить рисунок" - > "Картинка"), нажимаем "Отмена" в диалоговом окне загрузки картинки. В свойствах объекта картинки в поле "Текст" пишем

ВывестиРисунок(ИсхТабл.ТекущийОбъект, Путь)

Должно получиться примерно следующее:

Макет

В процедуру Сформировать() после вывода цен добавляем

//Путь к картинке формируется на основе кода номенклатуры
	//возможны варианты: наименования картинок формируются на основе
	//артикулов или при необходимости, добавляем реквизит в справочник
	//Номенклатура и храним путь к картинке в нем

	Путь = "D:\1SBase\ПрайсСКартинками\"+ТекЭлем.Код+".jpg";
			
	Если ФС.СуществуетФайл(Путь)=0 Тогда
		Путь = "";
		ИсхТабл.ПрисоединитьСекцию("Номенклатура|БезФото");
	Иначе
		ИсхТабл.ПрисоединитьСекцию("Номенклатура|Фото");
	КонецЕсли;

Готово!

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

Наименование Файл Версия Размер
ПрайсСКартинками.ert
.ert 205,00Kb
29.06.14
43
.ert 1 205,00Kb 43 Скачать

См. также

Комментарии
1. Андрей Ка (user629924_info) 29.11.16 00:14 Сейчас в теме
//Путь к картинке формируется на основе кода номенклатуры
//возможны варианты: наименования картинок формируются на основе
//артикулов или при необходимости, добавляем реквизит в справочник
//Номенклатура и храним путь к картинке в нем


чет у меня в этой фразе не сходится мысли
2. rjhev korum (корум) 297 29.11.16 09:28 Сейчас в теме
(0)
Фотографии не хранятся в БД

Сколько работал с 7.7, ни разу не видел, чтобы фотографии хоть кто-то хранил в БД, которая не приспособлена для этого от слова совсем.
3. Андрей Ка (user629924_info) 02.12.16 22:28 Сейчас в теме
Вот немного допилил форму,
а вот по артикулу цеплять, так не получилось((
(пока что учусь)
Прикрепленные файлы:
Price.ert
4. Дмитрий Дрейцер (MadDAD) 115 05.12.16 08:44 Сейчас в теме
(2) Ну если база на скуле, то ничего не мешает хранить картинки в ней, для Dbf тоже вариантов есть. Конечно без внешних объектов не обойтись но дело то не в базе.
5. Сергей (Che) Коцюра (CheBurator) 3370 05.12.16 17:15 Сейчас в теме
прайс с картинками сожоет при формировании оперативу, а при сохранении в эксель будет весить сотни мегабайт
6. Иваныч Иванов (Иваныч) 23 29.12.16 16:43 Сейчас в теме
(2)
А у меня в каталоге базы есть папка PIC, в ней все картинки, привязка по коду. Если неправильно понял ваш ответ, поправьте.
7. rjhev korum (корум) 297 30.12.16 09:11 Сейчас в теме
(6)
в каталоге базы есть папка PIC, в ней все картинки

так неспортивно. Это рядом, но не в базе :)
"внутри базы" = как в 1с8, прямо внутри.
8. Иваныч Иванов (Иваныч) 23 30.12.16 14:52 Сейчас в теме
понятно, но пока на 8 переходить не думаю.
9. Chaotic 8 30.01.17 00:04 Сейчас в теме
(1) путь к картинке формируется на основе кода номенклатуры

ниже есть пример
"D:\1SBase\ПрайсСКартинками\"+ТекЭлем.Код+".jpg";
то есть, например:
D:\1SBase\ПрайсСКартинками\00011123.jpg

Возможны варианты - наименования (имена файлов) картинок могут формироваться на основе артикула, то есть, например:
D:\1SBase\ПрайсСКартинками\112S-35.jpg

или можно добавить реквизит в справочник Номенклатура, обозвать его ПутьККартинке и писать туда путь к файлу.