Размещение PDF в Поле HTML управляемой формы для просмотра веб-клиентом

14.10.22

Разработка - Работа с интерфейсом

Объекты ActiveX недоступны для размещения в управляемых формах, как было ранее в обычных, при этом необходимость размещения таких объектов востребована. Покопался на форумах, мне нужно было разместить файл PDF в управляемой форме, чтобы доступ был в веб-клиенте. В тонком клиенте получилось (не как в обычной форме, но довольно просто), а в веб-клиенте потребовалось покопаться. Привожу описание как сделал размещение файла PDF, с целью чтобы вы не спотыкались на моих граблях.

Файлы

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

Наименование Скачано Купить файл
_ОткрытиеHTML.epf
.epf 5,80Kb
59 2 500 руб. Купить

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Объекты ActiveX недоступны для размещения в управляемых формах, как было ранее в обычных, при этом необходимость размещения таких объектов востребована. 
Покопался на форумах, мне нужно было разместить файл PDF в управляемой форме, чтобы доступ был в веб-клиенте. В тонком клиенте получилось (не как в обычной форме, но довольно просто), а в веб-клиенте потребовалось покопаться. Привожу описание как сделал размещение файла PDF.  

Сразу замечу, что у Вас уже должен быть установлен веб-сервер и база 1С опубликована на нем.
Моя ситуация: веб-сервер IIS, база 1С 8.3 в клиент-серверном варианте.
В качестве примера создаю простую обработку с управляемой формой.

1) В начале нам необходимо разместить на форме объект, который будет визуально отображать наш файл.
Для этого:
- Добавим реквизит формы "Реквизит1" с типом "Строка"
- Разместим реквизит на управляемой форме
- Изменим для реквизита на форме свойство "Вид", установив его в "Поле HTML документа"



 
 
2) ВАРИАНТ для Тонкий клиент, Толстый клиент:

Открытие файла осуществляется простым присваиванием реквизиту формы "Реквизит1" пути к файлу.



Примечание: Здесь, например, можно организовать диалог выбора файла и отображать конкретный файл. 
Если же, например, файлы хранятся в базе, то предварительно сохранить файл в предопределенный каталог.  


3) ВАРИАНТ для Веб-клиент:

Документ HTML в веб-клиенте приобретает тип "ВнешнийОбъект", в тонком клиенте он имеет тип "COM-объект". Исходя из этой ограничивающей особенности режима веб-клиента "Реквизит1" необходимо определять ещё на сервере тегами HTML.



data = "путь к опубликованному на веб-сервере файлу"
type = "тип приложения для открытия"
width = "ширина окна"
height = "высота окна"

ВНИМАНИЕ: Чтобы опубликовать файл на веб-сервере его достаточно поместить в корневую папку веб-сервера. Для IIS положить в папку: "...\inetpub\wwwroot" (у меня был путь "C:\inetpub\wwwroot").
Т.е. в данном примере файл лежал в C:\inetpub\wwwroot\Example_file.pdf  (в теге это текст data = "http://localhost/Example_file.pdf")

 В итоге имеем:



 
Примечание: В тексте data = "http://localhost/Example_file.pdf"localhost - это условное обозначение веб-сервера на локальном компьютере. Здесь вам нужно будет указывать либо localhost, либо ip адрес веб-сервера внутрисетевой data = "http://192.168.10.174/Example_file.pdf" или внешний адрес data = "http://195.04.04.04/Example_file.pdf" (возможно с указанием порта).
 

 
 Другие публикации автора
Расширение: Быстрые отборы через буфер [Alt+C] Копировать, [Alt+V] Вставить Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации клавиш [Alt+C] Копировать, [Alt+V] Вставить.
Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.
Гарантированное проведение документов (подключаемое расширение) Гарантированное проведение указанного в регистре сведений списка документов. Регистрируем документы к проведению с помощью произвольных отборов СКД в регистре сведений, далее запускаем фоновое проведение в нескольких потоках. Проведенные документы удаляются из регистра, по непроведенным регистрируются ошибки.
Ускорим проведение в 1С:Управление холдингом В 1С:Управление холдингом есть "нехороший" запрос, который съедает значительную часть времени проведения документов. Если его подправить, то проведение заметно ускорится.
Динамическая кнопка VS Комбинация клавиш Часто требуется ко всем формам или к списку форм привязать новые действия. Но как это сделать не меняя каждую форму и в идеале не меняя конфигурацию? Ниже будет описано, как запрограммировать новые действия через расширение (т.е. не меняя конфигурации) и сделать это универсально (не меняя каждую форму).
Параметризация печатных форм под контрагентов (подключаемое расширение) Расширение добавляет возможности параметризации печати для контрагентов. Подробнее описано здесь //infostart.ru/1c/articles/1510459/
Просмотр объектов очереди сообщений в 1С:Документооборот В базах с бесшовной интеграцией с 1С:Документооборот есть Регистр сведений "Очередь сообщений в 1С:Документооборот". Для пользователя он мало информативен. Расширение позволяет просматривать сообщение в человеческом виде. И понимать проблему до объекта.
Поддержка пользователей [Alt+S] (подключаемое расширение) Расширение, подключаемое к базе 1С для решения задач поддержки пользователей. Позволяет быстро (по кнопке или комбинации клавиш Alt+S), не выходя из программы 1С из любой формы, создать обращение к консультантам и программистам со скринами, файлами, в привязке к проблемному объекту (документу, справочнику, отчету, обработке и т.п.). Вести переписку по обращениям, отслеживать их выполнение с трудозатратами и уведомлять участников через механизмы: Telegram, Обсуждения 1С и Электронную почту. Код открыт и расширение может развиваться и быть доработано под индивидуальные потребности.
Интерактивная справка [Alt+I] (подключаемое расширение) Дополнительная справка, подключаемая к базе 1С. Содержит дерево разделов и статьи. Позволяет создавать статьи с картинками, прикреплять к ним файлы и видео, а также связывать статьи с объектами 1С (документам, справочникам, отчетам). Вызывается на динамически создаваемую кнопку панели либо быстрой комбинацией клавиш Alt+I.
Защита объектов от изменения обменом Расширение позволяет пользователю заблокировать объект 1С (документ, справочник) от изменения последующими загрузками данных или обменами.

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

HTML PDF ActiveX

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    89303    65    44    

75

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

6088 руб.

17.10.2025    2868    3    0    

2

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    9328    2    2    

6

Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

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

20.08.2024    54256    mrXoxot    44    

139

Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    28710    smielka    39    

119

Инструментарий разработчика Работа с интерфейсом Программист 1С 8.3 Абонемент ($m)

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

1 стартмани

10.04.2023    18351    186    acces969    31    

132

Инструментарий разработчика Универсальные функции 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 1С:Документооборот Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    27587    254    sapervodichka    118    

141

Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

12.08.2022    15556    top_1c    39    

98
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. 1c-intelligence 13187 07.07.14 21:34 Сейчас в теме
Файл pdf еще можно хранить в базе, в реквизите типа ХранилищеЗначения, каком-нибудь справочнике, потом получать на него навигационную ссылку, и эту ссылку подставлять в тег. Это вариант для веб-клиента.
collider; _7445_; Anchoret; NN2P; pt_olga; AllexSoft; BigB; dour-dead; fillipok; sapervodichka; +10 Ответить
2. sapervodichka 7622 08.07.14 10:13 Сейчас в теме
(1) 1c-intelligence, Спасибо
3. EmpireSer 15.07.14 10:28 Сейчас в теме
Как я знаю веб клиенты могут открывать и локальные файлы
Например путь к локальному файлу "new 2.txt" для веб клиента (например Хром) будет выглядить как:
file:///D:/new%20%202.txt

Может и у Вас так получится открывать локальные PDF.
4. 1c-intelligence 13187 16.07.14 07:25 Сейчас в теме
Для тонкого клиента, когда файл хранится где-то в хранилище значения, можно при открытии формы писать его во временный файл, и в поле html уже ссылаться на временный файл. При этом поле html разбирается даже без расширения файла, что это pdf и нормально его показывает.
5. нормальный такой 93 17.07.14 12:10 Сейчас в теме
учитесь обрабатывать файлы на сервере. Используйте ВременноеХранилище.
В нашей конфе мы тоже пользует ПолеHTMLДокумента для отображения всяких картинок и pdf

HTML код для реквизита формы
htmlТекст = 
"< html >		
|< head >
|< /head >
|< body >"+previewTAG+"
|< /body >< /html >";


previewTAG - меняется в зависимоти от типа вложения, если pdf, то передаем туда
previewTAG = "< EMBED width=100% height=100% type=""application/pdf"" src="+АдресВременногоХранилища+" >< /EMBED >";


АдресВременногоХранилища - в свою очередь содержит в себе реальный АдресВременногоХранилища полученые методом глобального контекста ПоместитьВоВременноеХранилище(<Данные>, <Адрес>)

При использовании Временного Хранилаща - вам не нужно хранить временные файлы ан сервере!
hydro2588_2015; vladimir-89; dvk09; solaru; Xershi; DO_WHILE_LOOP; antgol; JohnyDeath; BushNik; globalteddi; Chronic; AllexSoft; monkbest; endym; ZOMI; CratosX; BigB; rozer; sapervodichka; +19 Ответить
6. bpc222 2153 16.11.14 19:49 Сейчас в теме
(5) нормальный такой,

с pdf-все ок. А как быть с mht-файлом? Какой тип этого embed? Может кто в курсе?
36. dvk09 2 07.10.21 03:02 Сейчас в теме
(35) Но там нет((

message/rfc822: E-mail; EML-файлы, MIME-файлы, MHT-файлы, MHTML-файлы (RFC 2045 и RFC 2046)

Взял тут:

https://ru.wikipedia.org/wiki/Список_MIME-типов
8. vpaoli 25 31.07.15 15:25 Сейчас в теме
Использую (5) нормальный такой, все отлично, но есть необходимость отключить показаз pdf-линейки с кнопками ( в том числе сохранение файла) . Нет ни у кого решения на эту тему ?
17. place.ru 06.03.19 11:27 Сейчас в теме
(8) удалось убрать эту линейку с кнопками в итоге? сейчас сам столкнулся с этим
18. vpaoli 25 06.03.19 16:02 Сейчас в теме
(17) ну Вы проснулись почти через 4 года )) Да уж не помню справился или нет... скорее всего справился , но как именно мой головной мозг уже не помнит.
16. sermalp 28.08.18 12:22 Сейчас в теме
(5)

ПоместитьВоВременноеХранилище(<Данные>, <Адрес>) - какой тип у параметра <Данные>?

Спасибо!
23. mpeg1989 133 16.08.19 11:07 Сейчас в теме
(5)
При использовании Временного Хранилаща - вам не нужно хранить временные файлы ан сервере!

Т.е. временное хранилище не хранит файлы на сервере?
26. user1014203 07.10.19 08:22 Сейчас в теме
(5)Добрый день.
На платформе 3.8.14 или 3.8.15 удалось отобразить pdf? Код приведенный выше работает в 3.8.13 и ниже, а начиная с 14 версии нет.
7OH; it@contlog.ru; codewriter; hikeman; user609101_arbusenok; Hobbit_Jedi; +6 Ответить
7. Patriot1C 02.04.15 16:30 Сейчас в теме
"Объекты ActiveX недоступны для размещения в управляемых формах" - не верьте 1C.
<OBJECT> - и есть ActiveХ объект в НТМL поле, которое в Winodws само является ActiveX

9. Чарик 2 31.07.15 15:43 Сейчас в теме
интересное решение, иногда нужно через веб-1с отображать различные документы
10. user636219_dmitriy.gomzin 29.12.16 09:34 Сейчас в теме
Неожиданно перестал отображать в поле XTML следующий код "<EMBED width=100% height=100% type="application/pdf" src="C:\Users\USER\AppData\Local\Temp\2\v8_6C52_1a.pdf"></EMBED>" Возможно после установки платформы 8.3.9, проверить не могу. Через iframe все работает, т.е. вот так "<iframe src="C:\Users\USER\AppData\Local\Temp\2\v8_6C52_1a.pdf"></iframe>. Но iframe отображает pdf в отдельном окне, запуская акробат. Заворачивал embed в object то же самое. Не показывает файл и все. Настройки IE не менялись. Есть идеи?
11. ipoloskov 165 08.02.17 19:08 Сейчас в теме
(10) аналогичная ситуация. Причем клиенты не жалуются, значит, у них все нормально открывается. А у меня пустое окно. IE11
с iframe работает
27. user1014203 07.10.19 09:15 Сейчас в теме
(10)
.

Добрый день.
Подскажите на платформе 3.8.14 - 3.8.15 пробовали сделать просмотр pdf?
На 3.8.13 работало из через iframe и без, а после перехода на 3.8.15 получаю вот такую картину (см. скрин)
Прикрепленные файлы:
Hobbit_Jedi; +1 Ответить
28. s.sintsov 254 09.10.19 17:33 Сейчас в теме
(27) Добрый день, решение не нашли?
29. user1014203 10.10.19 08:48 Сейчас в теме
(28) Добрый день.
1С отказались от IE и перешли на WebKit, теперь pdf теги object и embed я так понял что не работают, либо не работают для pdf.
По этой ссылке https://forum.infostart.ru/forum15/topic217090/ есть обработка внизу для просмотра - она не слишком функциональная, но думаю стоит копаться в этом направлении. Тоесть писать свой просмотрщик pdf на html+js, к примеру там используется библиотека pdf.js.
На данный момент пытаюсь переписать пример от pdf.js - https://mozilla.github.io/pdf.js/web/viewer.html.
30. andy_zhav 200 18.10.19 14:52 Сейчас в теме
(28) Раньше сталкивался с этой проблемой. Все оказалось очень просто. Проблема в 64 битном клиенте. Поставьте 32 и будет счастье
12. KazanKokos 11 07.04.17 16:45 Сейчас в теме
А xls так смотреть можно? хочется чтобы оператор перед тем как отправить файл на регламент визуально убедилась что он именно от нужного поставщика
14. top_1c 4169 01.09.17 11:48 Сейчас в теме
(12)
Для обычных форм https://infostart.ru/public/293839/ (хитрая, конвертирует exel или word в PDF и аналогично как тут показано его можно выводить на экран для предварительного просмотра)
Для управляемых форм https://infostart.ru/public/120714/ (но она не идеальная, но открывает прямо ворд допустим в окне 1С, нужно быть админом на компе как понимаю).
13. пользователь 23.05.17 10:33
Сообщение было скрыто модератором.
...
15. lion-killer 23 04.07.18 13:54 Сейчас в теме
Вместо просмотра открывается сохранение файла. Что я делаю не так?
19. mentozavr 75 06.05.19 17:20 Сейчас в теме
На обычном клиенте все работает нормально. а на web клиенте показывать pdf отказывается
20. sapervodichka 7622 06.05.19 17:42 Сейчас в теме
(19) Значит вы что-то не по мануалу сделали, у коллег работает. Задайте на форуме вопрос с описанием действий для воспроизведения. Здесь в комментариях вы указали недостаточно информации, чтобы что-то подсказать по теме.
21. mentozavr 75 06.05.19 20:57 Сейчас в теме
(20) Делаю собственную конфигурацию под свои нужды. появилась необходимость отображения документа (в будущем и других) в поле HTML.
На толстом клиенте все отображается замышательно
когда открываю на web клиенте то ничего не отображается пишет "Не удалось загрузить PDF-документ."
в поле html передается ссылка <ht ml><EMB ED id='PDF' width=100% height=100% type="application/pdf" src="e1cib/data/Документ.РаботаСКандидатом.ДанныеРезюме?ref=b8fab42e991711d511e96b2bd81ec6db"></EMBED></html>

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
АдресМ = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ДанныеРезюме");
//#Если ВебКлиент Тогда
//АдресМ = ПолучитьНавигационнуюСсылкуИнформационнойБазы()+"/#"+ ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ДанныеРезюме");
//#КонецЕсли
//сообщить (АдресМ);
#Если ВебКлиент Тогда
Если Не ПодключитьРасширениеРаботыСФайлами() Тогда
УстановитьРасширениеРаботыСФайлами();
ПодключитьРасширениеРаботыСФайлами();
КонецЕсли;
#КонецЕсли
Реквизит1 = "<ht ml><EMB ED id='PDF' width=100% height=100% type=""application/pdf"" src="""+АдресМ+"""></EMBED></html>";
сообщить (Реквизит1);

//Реквизит1 = АдресМ;
КонецПроцедуры
В чем может быть проблема, может кто сталкивался. Спасибо заранее.
22. DO_WHILE_LOOP 360 03.08.19 12:00 Сейчас в теме
Можно использовать и такой вариант...
Прикрепленные файлы:
suepifanov; sapervodichka; +2 Ответить
24. mpeg1989 133 16.08.19 11:12 Сейчас в теме
(22) На IE8 для base64 ограничение в 32Кб
25. DO_WHILE_LOOP 360 16.08.19 14:50 Сейчас в теме
(24) там как раз для IE Base64 перегоняется в blob, а для остальных Base64
31. Beast42 13.10.20 08:32 Сейчас в теме
на 8.3.17 не робит это вот всё(
32. slimuz 02.08.21 07:21 Сейчас в теме
После обновления платформы на 8.3.18.1363 ошибка при открытии формы с pdf:
Couldn't read a file ....
33. sapervodichka 7622 02.08.21 09:25 Сейчас в теме
(32) в веб-сервере может ограничения прописать на новую платформу
34. slimuz 03.08.21 07:29 Сейчас в теме
(33)
в веб-сервере может ограничения прописать на новую платформу

Я не через веб, я через тонкий клиент (реквизит формы "Реквизит1")
Для отправки сообщения требуется регистрация/авторизация