Доброго дня!
Есть несколько организаций.
В печатной форме необходимо вывести логотип определенной организации.
Картинка находится в хранилище дополнительной информации.
Прикреплять картинку в макет документа присваивая область не подходит.
Добрый день.
Исправляйте печатную форму. С анализом какая фирма с соответствующем отображением этого логотипа и всё.
candrey @ Сегодня, 12:45
,
Я правильно понял?
Функция ПолучитьКартинку(Файл) Экспорт
ВерсияСсылка = Файл.ТекущаяВерсия;
ТипХраненияФайла = ВерсияСсылка.ТипХраненияФайла;
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
Если НЕ ВерсияСсылка.Том.Пустая() Тогда
ПолныйПуть = ФайловыеФункции.ПолныйПутьТома(ВерсияСсылка.Том) + ВерсияСсылка.ПутьКФайлу;
ДвоичныеДанные = Новый ДвоичныеДанные(ПолныйПуть);
КонецЕсли;
Иначе
ДвоичныеДанные = ВерсияСсылка.ФайлХранилище.Получить();
КонецЕсли;
Возврат Новый Картинка(ДвоичныеДанные);
КонецФункции
//Запрос
ВЫБРАТЬ
| СчетНаОплату.Организация.ФайлКартинки.Ссылка КАК Файл
|ИЗ
| Документ.СчетНаОплату КАК СчетНаОплату
после запроса вставляем картинку:
Если ЗначениеЗаполнено(Файл) Тогда
Рисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Верх = 0;
Рисунок.Высота = 15;
Рисунок.Ширина = 15;
Рисунок.Лево = 0;
Рисунок.Картинка = ПолучитьКартинку(Файл);
КонецЕсли;
Тема закрыта
Решил вопрос так:
Создайте в макете область Заголовок и обязательно в ней создайте картинку пустую. Растянув ее под нужный размер и дайте имя Логотип
Запрос = Новый Запрос;Запрос.
Текст =
"ВЫБРАТЬ
| ХранилищеДополнительнойИнформации.Ссылка,
| ХранилищеДополнительнойИнформации.Объект,
| ХранилищеДополнительнойИнформации.Хранилище,
| ХранилищеДополнительнойИнформации.ИмяФайла
|ИЗ
| Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
| ХранилищеДополнительнойИнформации.Объект = &Организация";
Запрос.УстановитьПараметр("Организация", Организация);
ВыборкаДетальныеЗаписиКартинки=Запрос.Выполнить().Выбрать();
Пока ВыборкаДетальныеЗаписиКартинки.Следующий() Цикл
Если ВыборкаДетальныеЗаписиКартинки.Ссылка.Наименование = "Логотип" Тогда // картинка с именем "Логотип"
ОбластьМакетаЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакетаЗаголовок.Рисунки.Логотип.Картинка = ВыборкаДетальныеЗаписиКартинки.Хранилище.Получить();
КонецЕсли;
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакетаЗаголовок);
Если у вас все работает как Вы задумали то Ок.
Макет с другими организациями пробывали? Отрабатывает нормально?
candrey @ Вчера, 19:00
,
Макет с другими организациями тоже нормально отрабатывает.
candrey @ 23.03.17, 19:00
,
Подскажите, как сделать чтобы выводило на печать, если нет картинки в реквизите Организации?
logist @ Сегодня, 14:48
,
печатную форму документа без логотипа
Запрос = Новый Запрос;Запрос.
Текст =
"ВЫБРАТЬ
| ХранилищеДополнительнойИнформации.Ссылка,
| ХранилищеДополнительнойИнформации.Объект,
| ХранилищеДополнительнойИнформации.Хранилище,
| ХранилищеДополнительнойИнформации.ИмяФайла
|ИЗ
| Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
| ХранилищеДополнительнойИнформации.Объект = &Организация";
Запрос.УстановитьПараметр("Организация", Организация);
ВыборкаДетальныеЗаписиКартинки=Запрос.Выполнить().Выбрать();
Пока ВыборкаДетальныеЗаписиКартинки.Следующий() Цикл
Если ВыборкаДетальныеЗаписиКартинки.Ссылка.Наименование = "Логотип" Тогда // картинка с именем "Логотип"
ОбластьМакетаЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакетаЗаголовок.Рисунки.Логотип.Картинка = ВыборкаДетальныеЗаписиКартинки.Хранилище.Получить();
КонецЕсли;
КонецЦикла;
ТабДокумент.Вывести(ОбластьМакетаЗаголовок);
ОбластьМакетаЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Картинка = ВыборкаДетальныеЗаписиКартинки.Хранилище.Получить();
Если Не Картинка = Неопределено Тогд
ОбластьМакетаЗаголовок.Рисунки.Логотип.Картинка = Картинка;
КонецЕсли;
logist @ Сегодня, 15:29
,
Ошибку пишет
Значение не является значением объектного типа (Получить)
Картинка = ВыборкаДетальныеЗаписиКартинки.Хранилище.Получить();
Тоесть нужно выводить на печать даже если у организации нет логотипа
1) Если есть логотип прикручивайте логотип к соответствующей организации.
2) Если логотипа нету. Нужно чтоб выводило пустоту - прикрутите к этой организации (к другой где нету логотипа) пустой логотип- "Пустой фаил без рисунка"
3) Если выводить логотип ненужно то перед выводом делайте проверку на логотип. Если есть логотип то печатаем его. Если нету его то пропускаем идем дальше печатаем без логотипа.
Определяйте сами. Что вам больше подходит.
Ставьте точку остановка в этом коде перед ошибкой и смотрите в отладчике что там.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua