Картинки во внешней печатной форме (Шапка и табличная часть)

27.05.19

Разработка - Универсальные функции

Способы вывести на печать картинку в шапке и в табличной части внешней печатной формы. Управление торговлей, редакция 11 (11.4.7.150).

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Картинки во Внешней печатной форме (Шапка и табличная часть):
.epf 7,31Kb ver:1.0
56 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

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

Оформить подписку и скачать решение со скидкой

Доброго времени суток.

Недавно столкнулся с задачей вывода картинок на печать из табличной части документа (Заказ клиента, картинки из описания номенклатуры)


Google выдал довольно много вариантов исполнения, но ни один из них у меня не сработал.
Поэтому решил написать эту статью, думаю начинающим специалистам будет полезно.

Итак есть два способа задать место для картинки в макете:
1) Вставить картинку в макет, как отдельный объект, обращение будет происходить по Имени



2) Привязать её к конкретной ячейке, обращение будет происходить по Параметру Картинки



В первом случае картинка не может быть больше выделенной области и при этом может быть перемещена пользователем при просмотре печатной формы.

-Пример перемещения картинки при просмотре:

-Вот так будет выглядеть изменение размера в свойствах картинки с Пропорционально   на  Реальный размер

Во втором случае картинка будет жестко привязана к ячейке и может растягиваться пропорционально ширине колонки.  (*будет растягиваться по ширине картинки пропорционально ширине ячейки. )
Ниже пример с картинками разных размеров и пропорций.

Далее перейдем непосредственно к коду обработки

Функция, формирующая печатную форму:

Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати)
		
	ТабличныйДокумент = Новый ТабличныйДокумент;	
	ТабличныйДокумент.АвтоМасштаб = Истина;
	//ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	МакетОбработки    = ПолучитьМакет("МакетМакетыч");
	
//Шапка   
	ЗаполнениеШапки(СсылкаНаОбъект, МакетОбработки, ТабличныйДокумент);

//ТЧ
	ЗаполнениеТЧ(СсылкаНаОбъект, МакетОбработки, ТабличныйДокумент);
		
	Возврат ТабличныйДокумент;
КонецФункции


Здесь нас интересует только вторая и третья (закомментированная) строки.

Строка  

ТабличныйДокумент.АвтоМасштаб = Истина;

необходима для того, чтобы картинки не выходили за границы листа при печати

Строка

ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;


позволят распечатать макет в альбомной ориентации по умолчанию.
 

Вывод картинки на форму рассмотрим на примере табличной части так как в обоих случаях код практически идентичен.
 

Функция ЗаполнениеТЧ(СсылкаНаОбъект, МакетОбработки, ТабличныйДокумент)
		
	Для Каждого ТекущаяСтрока из СсылкаНаОбъект.Товары Цикл
		
		ОбластьТовары                        = МакетОбработки.ПолучитьОбласть("Товары");	
		
		ОбластьТовары.Параметры.Номенклатура = ТекущаяСтрока.Номенклатура;
	
		ФайлКартинки 			             = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущаяСтрока.Номенклатура, "ФайлКартинки");
	
		Если ЗначениеЗаполнено(ФайлКартинки.Наименование) Тогда
			
			ДвоичныеДанныеФайла                   = РаботаСФайлами.ДвоичныеДанныеФайла(ФайлКартинки);	
			Если ТипЗнч(ДвоичныеДанныеФайла)      = Тип("Картинка") Тогда
				Картинка                          = ДвоичныеДанныеФайла;
			ИначеЕсли ТипЗнч(ДвоичныеДанныеФайла) = Тип("ДвоичныеДанные") Тогда
				Картинка                          = Новый Картинка(ДвоичныеДанныеФайла);
			Иначе
				Картинка                          = Новый Картинка;
			КонецЕсли;
			ОбластьТовары.Параметры.Фото1         = Картинка;
			
		КонецЕсли;
			
		Если НЕ ТабличныйДокумент.ПроверитьВывод(ОбластьТовары) Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		ТабличныйДокумент.Вывести(ОбластьТовары);
		
	КонецЦикла;
	
КонецФункции	

В 4ой строке находим файл картинки в базе

ФайлКартинки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущаяСтрока.Номенклатура, "ФайлКартинки");

ТекущаяСтрока.Номенклатура - Ссылка на необходимый элемент справочника

“ФайлКартинки” – Наименование реквизита содержащего картинку

В 5ой строке проверяем наличие картинки в вышеуказанном реквизите. Без этого при попытке печати форма выдаст ошибку, если хоть одна из картинок не заполнена.

Если ЗначениеЗаполнено(ФайлКартинки.Наименование) Тогда

ФайлКартинки.Наименование – проверяемый реквизит, если файла картинки нет, то его наименование будет не заполнено.
 

С 6-ой по 13-ую строки (как и 4-ая) фрагмент типового кода УТ 11.4 отвечающего за печать картинок

ДвоичныеДанныеФайла = РаботаСФайлами.ДвоичныеДанныеФайла(ФайлКартинки);	
	
    Если ТипЗнч(ДвоичныеДанныеФайла)      = Тип("Картинка") Тогда
		Картинка                          = ДвоичныеДанныеФайла;
	ИначеЕсли ТипЗнч(ДвоичныеДанныеФайла) = Тип("ДвоичныеДанные") Тогда
		Картинка                          = Новый Картинка(ДвоичныеДанныеФайла);
	Иначе
		Картинка                          = Новый Картинка;
	КонецЕсли;
	

И наконец непосредственно помещение картинки на макет:
Для первого способа:

ОбластьШапки.Рисунки.Логотип.Картинка = Картинка;

Для второго способа:   

ОбластьТовары.Параметры.Фото1 = Картинка;

Всё готово, вы великолепны !
Образец обработки будет в прикрепленных файлах.

INFOSTART PrintWizard: Конструктор печатных форм в 1С 8.3

INFOSTART PrintWizard помогает быстро создавать и унифицировать печатные формы в 1С. Снижает трудозатраты разработчиков, повышает качество и прозрачность отчётов, наводит порядок в корпоративных шаблонах документов.


Вступайте в нашу телеграмм-группу Инфостарт

ВПФ Картинка УТ Табличная часть

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    4114    Abysswalker    10    

46

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

14.05.2025    7666    DeerCven    15    

61

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    52665    dimanich70    84    

174

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7670    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    67127    atdonya    31    

72

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    9594    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Eva_electra 31.05.19 18:44 Сейчас в теме
А если у номенклатуры несколько картинок в файлах - можно вывести конкретную?
2. Hatson 540 24.09.20 10:46 Сейчас в теме
(1) что вы! Это черная магия ))
4. esqado 02.12.21 19:10 Сейчас в теме
(1) можно обратиться запросом к справочнику (если у вас это справочник), установить отбор по владельцу.
Потом, через типовые методы получить двоичные данные из регистра (если они в регистре).
Или сразу в одном запросе через левое соединение получить двоичные данные и установить необходимый фильтр.
3. stein13 12 14.12.20 11:59 Сейчас в теме
спасибо за подробную информацию!
5. esqado 02.12.21 19:11 Сейчас в теме
Как изменить высоту (размер) картинки по второму варианту, чтобы впихнуть картинку в оставшееся свободное пространство табличного документа?
6. user1589535 15.03.22 13:26 Сейчас в теме
7. Farhat95 24.08.22 10:25 Сейчас в теме
На УТ 10.3 пойдет такой код ?
8. CYCTAHOH 15.12.22 20:03 Сейчас в теме
Хороший метод, но может знаете почему вместе с картинкой у меня в ячейке может быть слово "картинка"?
11. user1893560 12.01.23 10:25 Сейчас в теме
(8) Ячейка должна быть пустой. В свойствах ячейки Заполнение: Текст.
Ali_q; doronin70; user1587185; +3 Ответить
15. user1086781 19.10.23 10:54 Сейчас в теме
(11) не слушай этих ит-шников в худи, надпись "Картинка" появляется если заполнить поле "Параметр" в свойстве ячейки, а надо заполнить поле "Параметр картинки"
Прикрепленные файлы:
criptid; sh_max; +2 Ответить
9. taasha25 13 22.12.22 13:30 Сейчас в теме
В УТ 11.4 работает. Благодарю! Плюсик поставить не дает.
10. taasha25 13 22.12.22 13:31 Сейчас в теме
(9)Оказывается я уже поставила раньше.)
12. Kirill_A 02.03.23 14:22 Сейчас в теме
Все отлично но слово "Картинка" в ячейке отображается как текст- не знаю как его убрать...
14. fed9 26.09.23 15:04 Сейчас в теме
(12)
Добавь ПараметрКартинки
13. angabanga5 13.07.23 14:22 Сейчас в теме
тек чет у меня вариант с параметром не работает. вроде все удачно проходит по отладке, но картинки не видать в форме. нет ее .УПД пардон, это я лажанул
16. MK0203 24.09.25 12:15 Сейчас в теме
Добрый день, огромное спасибо за проделанную работу, помощь начинающим специалистам колосальная!
Но у меня выбивает ошибку
"{ВнешняяОбработка.КПклиентуСКартинкой.МодульОбъекта(141)}: Поле объекта не обнаружено (Фото)"
никак не могу устранить...помогите пожалуйста.
Прикрепленные файлы:
Для отправки сообщения требуется регистрация/авторизация