Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 01:44

получение данных из хранилища значений при печати

Автор maxipunchik, 23 янв 2015, 14:17

0 Пользователей и 1 гость просматривают эту тему.

maxipunchik

Столкнулся с такой проблемой. Хочу распечатать элемент из справочника. У меня это резюме с фотографией соискателя. Фото хранится в реквизите типа Хранилищезначения. Так вот, как напечатать фото, скажем, из библиотеки картинок в определенную область я нашел в синтакс помощнике. А вот как получить данные из реквизита и поместить их в картинку не могу разобраться. Помогите кто знает

LexaK

вот за 5 минут маленький тестик набросал
который картинку из ХранилищаЗначений в табличный документ выводит
в область печати вставьте любую картинку, свою я назвал КартинкаТест, и в нее выводите ту которую вам надо.


Процедура Печать()

Данные = Хранилище.Получить();
Если ТипЗнч(Данные) = Тип("Картинка") Тогда
лкКартинка = Данные;
ИначеЕсли ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
лкКартинка = Новый Картинка(Данные, Ложь);
КонецЕсли;

лкМакет = ПолучитьМакет("Макет");
лкОбласть = лкМакет.ПолучитьОбласть("Тест");
лкОбласть.Параметры.Дата = ТекущаяДата();
лкОбласть.Рисунки.КартинкаТест.Картинка = лкКартинка;

лкТаб = Новый ТабличныйДокумент;
лкТаб.Вывести(лкОбласть);
лкТаб.Показать();


КонецПроцедуры
если помогло нажмите: Спасибо!

maxipunchik

Цитата: LexaK от 23 янв 2015, 17:49
вот за 5 минут маленький тестик набросал
который картинку из ХранилищаЗначений в табличный документ выводит
в область печати вставьте любую картинку, свою я назвал КартинкаТест, и в нее выводите ту которую вам надо.


Процедура Печать()

Данные = Хранилище.Получить();
Если ТипЗнч(Данные) = Тип("Картинка") Тогда
лкКартинка = Данные;
ИначеЕсли ТипЗнч(Данные) = Тип("ДвоичныеДанные") Тогда
лкКартинка = Новый Картинка(Данные, Ложь);
КонецЕсли;

лкМакет = ПолучитьМакет("Макет");
лкОбласть = лкМакет.ПолучитьОбласть("Тест");
лкОбласть.Параметры.Дата = ТекущаяДата();
лкОбласть.Рисунки.КартинкаТест.Картинка = лкКартинка;

лкТаб = Новый ТабличныйДокумент;
лкТаб.Вывести(лкОбласть);
лкТаб.Показать();


КонецПроцедуры

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

LexaK

как вы говорите картинка у вас в хранилище,
моя переменная Хранилище это переменная с типом ХранилищеЗначений.
у него есть метод Получить(), почитайте СП (синтаксис помощник)

а дальше в примере код как вашу картинку достать из хранилища и поместить в табличный документ, который вы потом можете распечатать/сохранить/отправить.
если помогло нажмите: Спасибо!

maxipunchik

Цитата: LexaK от 23 янв 2015, 18:59
как вы говорите картинка у вас в хранилище,
моя переменная Хранилище это переменная с типом ХранилищеЗначений.
у него есть метод Получить(), почитайте СП (синтаксис помощник)

а дальше в примере код как вашу картинку достать из хранилища и поместить в табличный документ, который вы потом можете распечатать/сохранить/отправить.
моя картинка лежит в реквизите справочника, тип реквизита хранилищезначения, а не в каком-либо общем хранилище.

LexaK

Цитировать
моя картинка лежит в реквизите справочника, тип реквизита хранилищезначения,
и
Цитировать
моя переменная Хранилище это переменная с типом ХранилищеЗначений.
это одно и тоже (только разные названия переменных), используйте код примера (естественно с небольшими изменениями) и у вас все получится!
если помогло нажмите: Спасибо!

Похожие темы (5)

Рейтинг@Mail.ru

Поиск