helpf.pro
Регистрация
 +4 
Распечатать

Отображение PDF файлов в 1С используя ActiveX Adobe PDF Reader

Часто при разработке какого-либо функционала в 1С мы делаем прикрепление файлов pdf.
Итак, Первым делом идет Выбор файла, далее нужно быстро просмотреть приложенный файл.
Для решения используются следующие варианты:
файл Выбирается по кнопке Выбор файла и помещается в Реквизит с типом Хранилище Значений
Код 1C v 8.х
 Процедура КнопкаВыбратьСканНажатие(Элемент)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл";
Диалог.ПолноеИмяФайла = "";
Фильтр = "Все файлы (*.*)|*.*";
Диалог.Фильтр = Фильтр;
Если Диалог.Выбрать() Тогда
Попытка
ПутьКВнешнемуФайлу = Диалог.ПолноеИмяФайла;
СканФайл = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПутьКВнешнемуФайлу));
СканНазвание = СтрЗаменить(Диалог.ПолноеИмяФайла, Диалог.Каталог,"");
Исключение
СканНазвание = "ОШИБКА!";
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецПроцедуры


Для открытия используем:
1. Открытие файла в программе Adobe Acrobat Reader
для этого используйте код:
Код 1C v 8.х
 Процедура ОсновныеДействияФормыПечатьСканВорд(Кнопка)
ИмяМакета = СканФайл;
Если Прав(СканНазвание,3)="doc" или Прав(СканНазвание,3)="docx" Тогда
Состояние("Идет печать в Word");
УниверсальныеМеханизмы.НапечататьВнешнююФорму(Ссылка, ИмяМакета);
Иначе
ИмяКаталога = КаталогВременныхФайлов();
ИмяФайла = "vrem" + Формат(ТекущаяДата(),"ДФ=yyyyMMddhhmmss")+СокрЛП(Прав(СканНазвание,5));
ИмяФайла = РаботаСФайлами.ПолучитьИмяФайла(ИмяКаталога, ИмяФайла);
ДвоичныеДанные = ИмяМакета.Получить();
Если ДвоичныеДанные = Неопределено Тогда
Предупреждение("Не могу открыть файл, прикрепите новый внешний файл!");
Иначе
ДвоичныеДанные.Записать(ИмяФайла);
ЗапуститьПриложение(ИмяФайла);
КонецЕсли;
КонецЕсли;
КонецПроцедуры


2. Добавляем на форму элемент ActiveX Adobe PDF Reader
для этого используйте код:
Код 1C v 8.х
 Процедура ОсновныеДействияФормыПечатьСканВорд(Кнопка)
ИмяМакета = СканФайл;
Если Прав(СканНазвание,3)="doc" или Прав(СканНазвание,3)="docx" Тогда
Состояние("Идет печать в Word");
УниверсальныеМеханизмы.НапечататьВнешнююФорму(Ссылка, ИмяМакета);
Иначе
ИмяКаталога = КаталогВременныхФайлов();
ИмяФайла = "vrem" + Формат(ТекущаяДата(),"ДФ=yyyyMMddhhmmss")+СокрЛП(Прав(СканНазвание,5));
ИмяФайла = РаботаСФайлами.ПолучитьИмяФайла(ИмяКаталога, ИмяФайла);
ДвоичныеДанные = ИмяМакета.Получить();
Если ДвоичныеДанные = Неопределено Тогда
Предупреждение("Не могу открыть файл, прикрепите новый внешний файл!");
Иначе
ДвоичныеДанные.Записать(ИмяФайла);
// Вывод в элемент ActiveX Adobe PDF Reader
ЭлементыФормы.PDFСканДоговор.LoadFile(ИмяФайла);
КонецЕсли;
КонецЕсли;
КонецПроцедуры


Вот так это выглядит:
title
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 46225
 +4 
Распечатать
Возможно, вас также заинтересует
Вывести табличный документ в PDF 19
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок =
Выгрузка в PDF из 1С (Средствами OpenOffice) 0
Возникла задача отправлять счета почтой. PDFcreator не подошел поскольку не удалось вместить счет на одну страницу по ширине. Решил попробовать OpenOffice. Как сохранять в PDF нашел быстро, а вот как уместить счет на одну страницу вширь искал долго.
Загрузка данных в 1С из PDF 5
В данной статье описан пример реализации загрузки данных накладных из PDF файлов для одного крупного Ритейла... И так у Нас есть несколько файлов в формате pdf, которые нам необходимо загрузить в 1С. Чтение PDF файлов из 1С Первым дело я стал
Как декодировать (преобразовать) Unicode в 1С 0
При разработке очередного обмена с интернет магазином через API столкнулисть что сайт возвращает ответ в виде: {"ok":"true","description":"u0421u0442u0430u0442u0443u0441 u0437u0430u043au0430u0437u0430 u0438u0437u043cu0435u043du043
Как получить Временный каталог или Временный файл 5
Временный каталог: КаталогВременныхФайлов() Получает имя каталога, который используется программой для размещения временных файлов. Пример: ГдеИскать = КаталогВременныхФайлов(); // В тонком клиенте код работает ИмяФайла = КаталогВременны
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.