Поле PDF-документа.
Полное описание, параметры и ограничения
ВидПоляФормы.ПолеPDFДокумента (FormFieldType.PDFDocumentField)
ВидПоляФормы (FormFieldType)
ПолеPDFДокумента (PDFDocumentField)
Доступен, начиная с версии 8.3.21.
Описание:
Поле PDF-документа.
Использование в версии:
Доступен, начиная с версии 8.3.21.
Методическая информация
Практические примеры
Встроить свою одностраничную PDF-памятку в управляемую форму
Настоящий реквизит ДокументPDF связывается с полем вида ПолеPDFДокумента и заполняется собственным документом из двоичного макета.
Где и как запускать
Серверный обработчик собственной управляемой формы; тонкий / толстый клиент.
Подготовка
В своей учебной конфигурации создайте обработку УчебныйПросмотрPDF и её управляемую форму. На форме добавьте обычную группу ГруппаПросмотра. Реквизит ДокументКниги и поле ПолеКнигиPDF заранее НЕ создавайте: их добавляет основной обработчик.
В обработке создайте макет УчебныйPDF типа ДвоичныеДанные. Вручную загрузите в него свой настоящий одностраничный PDF, например собственную памятку «Книга — 3 шт.». Текстовый файл, переименованный в .pdf, не подходит. Пароль / подписи для этого опыта не нужны.
Основной блок — ПриСозданииНаСервере именно своей формы; назначьте его этому событию. Откройте форму в тонком / толстом клиенте. Это встроенное поле формы, а не отдельное окно ДокументPDF.Показать().
Схема связи РеквизитФормы с типом ДокументPDF → ПолеФормы.Вид=ПолеPDFДокумента → ПутьКДанным подтверждается реализацией интеграции с 1С:Документооборот в исходниках УНФ. Здесь нет вызовов библиотечных модулей УНФ: пример самодостаточен на платформе.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Реквизиты = Новый Массив;
Реквизиты.Добавить(Новый РеквизитФормы("ДокументКниги", Новый ОписаниеТипов("ДокументPDF")));
ИзменитьРеквизиты(Реквизиты);
Поле = Элементы.Добавить("ПолеКнигиPDF", Тип("ПолеФормы"), Элементы.ГруппаПросмотра);
Поле.Вид = ВидПоляФормы.ПолеPDFДокумента;
Поле.ПутьКДанным = "ДокументКниги";
Данные = Обработки.УчебныйПросмотрPDF.ПолучитьМакет("УчебныйPDF");
Поток = Данные.ОткрытьПотокДляЧтения();
Попытка
ДокументКниги = Новый ДокументPDF;
ДокументКниги.Прочитать(Поток);
Исключение
Поток.Закрыть();
ВызватьИсключение;
КонецПопытки;
Поток.Закрыть();
Сообщить("Страниц собственного PDF: " + Строка(ДокументКниги.КоличествоСтраниц()));
КонецПроцедурыРазбор по шагам
Подготовьте свой настоящий двоичный PDF-макет и пустую группу.
Добавьте реквизит и связанное поле на сервере.
Прочитайте PDF из потока и проверьте встроенное отображение собственной страницы.
Как проверить результат
ПутьКДанным указывает на ДокументPDF, не на строку пути, URL или ХранилищеЗначения. Вид назначается настоящему ПолеФормы до заполнения документа.
Поток закрывается и после чтения, и при исключении. Документ остаётся в реквизите формы; отдельного сохранения, печати и проверки подписей нет.
Макет содержит только собственные данные. BSL, открытие PDF, запись файлов и печать при сборке HTML не исполнялись.
Ожидаемый результат
Есть непустой собственный PDF и действительная типизированная связь с управляемым полем.
На что обратить внимание
Не создавайте каждый раз второй реквизит с тем же именем и не подменяйте встроенный просмотр открытием внешнего приложения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.