Работа с документами PDF

12.04.23

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Начиная с версии 8.3.21, в платформе 1С:Предприятие появились новые объекты для работы с популярным форматом PDF. Примеров использования в типовых конфигурациях пока найти не удалось, но задачи, где это было бы полезно, встречаются. В результате решения некоторых из них и родилось представляемое вашему вниманию расширение.

Файлы

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

Наименование Скачано Купить файл
Работа с документами PDF:
.cfe 45,41Kb ver:1.0.0.1
97 2 500 руб. Купить

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

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

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

Расскажу подробнее, какие задачи были и как решались.

  • Предварительный просмотр. Проблема: при добавлении присоединенных файлов для картинок он работает, а для PDF-файлов нет. С новым объектом ДокументPDF это легко исправить. Решение: в форме обработки "Работа с файлами" добавим реквизит pdf_Документ, разместим его на форме в виде элемента "Поле PDF документа", перехватим событие ОбновитьПредпросмотр() и прочитаем двичные данные файла, отобразив на форме.
	ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанныхФайла);
	Поток = ДвоичныеДанныеФайла.ОткрытьПотокДляЧтения();
	ЭтотОбъект.pdf_Документ.Прочитать(Поток);
  • Групповая печать и отправка. Задача: требуется из произвольного документа иметь возможность сразу по всем позициям номенклатуры распечатать/отправить присоединенные файлы. Здесь документ не обязательно должен иметь формат PDF. Это может быть docx, xlsx, pdf, любая картинка... Решение: добавим общую команду, открывающую форму, которая считывает нужную информацию. В форме разместим команду печати "Сразу на принтер" и команду "Отправить", которая будут работать по аналогии с командами в форме типовой обработки "Работа с файлами".
  • В процессе тестирования предыдущей задачи также столкнулись ещё с рядом проблем: 1. PDF-файлы не удавалось напечатать из 1с. На помощь опять пришёл ДокументPDF и его методы Прочитать(), Напечатать(). Решение: перехват обработчика РаботаСФайламиКлиент.НапечататьФайлыВыполнение().

&Вместо("НапечататьФайлыВыполнение")
Процедура pdf_НапечататьФайлыВыполнение(ОбработчикРезультата, ПараметрыВыполнения)
	
	Если ПараметрыВыполнения.НомерФайла >= ПараметрыВыполнения.ДанныеФайлов.Количество() Тогда
		Возврат;
	КонецЕсли;
	ПараметрыВыполнения.ДанныеФайла = 
		РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляПечати(ПараметрыВыполнения.ДанныеФайлов[ПараметрыВыполнения.НомерФайла],
		ПараметрыВыполнения.УникальныйИдентификатор);
		
	Если НРег(ПараметрыВыполнения.ДанныеФайла.Расширение) = "pdf" Тогда
		ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ПараметрыВыполнения.ДанныеФайла.СсылкаНаДвоичныеДанныеФайла);
		Поток = ДвоичныеДанныеФайла.ОткрытьПотокДляЧтения();

		пДокументPDF = Новый ДокументPDF;
		пДокументPDF.Прочитать(Поток);
		пДокументPDF.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
		
		// переходим к печати следующего файла.
		ПараметрыВыполнения.НомерФайла = ПараметрыВыполнения.НомерФайла + 1;
		Обработчик = Новый ОписаниеОповещения("НапечататьФайлыВыполнение", ЭтотОбъект, ПараметрыВыполнения);
		ВыполнитьОбработкуОповещения(Обработчик);
	Иначе
		ПродолжитьВызов(ОбработчикРезультата, ПараметрыВыполнения);
	КонецЕсли;
	
КонецПроцедуры
  • 2 проблема: печать картинок "сразу на принтер" работала не со всех рабочих мест. Кроме того, если и работала, выдавала лишние диалоговые окна настроек печати. Решение: при добавлении картинок сохранять их в pdf-формате. Сначала было решено опробовать метод создания Документа PDF и добавление в него картинки через ОписаниеОтображаемогоОбъектаPDF. На деле оказалось, что такой PDF весит в несколько раз больше исходной картинки (как пример, я оставил этот код в расширении, если кому интересно). Ну а после использовал классический вариант с картинкой в Табличном документе, который сохраняется в формате PDF. Результат порадовал - размер файла оставался примерно тем же, что у исходной картинки.

Итого, какие задачи по работе с Присоединенными файлами может помочь Вам решить расширение из данной публикации:

  1. Предварительный просмотр прикрепленных PDF прямо в 1С;
  2. Групповая печать и отправка присоединенных файлов (в т.ч. PDF) по всей номенклатуре из документа "Счет покупателю", "Счет от поставщика" (перечень типов документов, из которых будет доступна комнда печати/отправки, легко расширяется. Достаточно добавить нужный документ в Определяемый тип pdf_ДокументыСФайламиТоваров и экспортную функцию pdf_ТекстЗапросаВТНоменклатура() в модуль менеджера этого документа по аналогии с существующими);
  3. Добавление картинок с сохранением их в pdf-формате.

Протестировано на БП 3.0.133.17, платформа 8.3.22.1709 (должно работать на платформе не ниже 8.3.21.*).

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

См. также

НДС 22% Учетные задачи ККМ Файловый обмен (TXT, XML, DBF), FTP 1С 8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Бухгалтерский учет Налоговый учет НДС Платные (руб)

Готовое обновление для конфигурации 1С:Управление торговлей 10.3, 1С:Комплексная автоматизация 1.1 , 1С:Управление производственным предприятием 1.3 обеспечивающее полную поддержку новой ставки НДС 22%. Для 1С:УТ 10.3 реализована поддержка печати чеков ККМ, а также Правила обмена с 1С:БП 3.0. Решение встраивает необходимые изменения в перечисления и документы, включая торговые операции и печатные формы.

12200 руб.

16.12.2025    7886    83    0    

78

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    159177    951    317    

479

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.267.x) и БП 3.0 (3.0.194.x). Правила подходят для версии ПРОФ и КОРП.

38000 34200 руб.

15.12.2021    33224    247    64    

188

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    187137    352    287    

413

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    62206    80    130    

78

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16531 руб.

18.02.2016    201379    668    543    

560

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.25.x).

38000 34200 руб.

23.07.2020    66916    311    88    

250
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ubnkfl 12.04.23 11:54 Сейчас в теме
Вы, случаем, не в курсе - умеет 1С ставить пароль на pdf?
2. VladimirElohov 137 12.04.23 13:27 Сейчас в теме
(1)
Вы, случаем, не в курсе - умеет 1С ставить пароль на pdf?

Cам ещё не пробовал, но в документации заявлено, должна уметь.
Прикрепленные файлы:
3. TMV 2 13.04.23 20:03 Сейчас в теме
Можно ли конвертировать в pdf из docx?
4. VladimirElohov 137 13.04.23 22:43 Сейчас в теме
(3)
Можно ли конвертировать в pdf из docx?

Пожалуй, самый простой вариант - сделать это с использованием COM-объекта "Word.Application". Для этого потребуется установленный пакет MS Office. Приведу кусок кода из публикации https://infostart.ru/public/1793311/
MSWord = Новый COMОбъект("Word.Application");
MSWord.Visible = Ложь;  
Документ  = MSWord.Application.Documents.Open(Элемент); 			
MSWord.ActiveDocument.Styles(-1).Font.Name = "Times New Roman"; 
MSWord.ActiveDocument.SaveAs2(ФайлВФорматеПДФ, 17,,,,,, Истина);				
Документ.Close(0);
MSWord.Quit();
begemotoff35; +1 Ответить
5. TMV 2 14.04.23 08:07 Сейчас в теме
(4) Так не интересно. Имелось ввиду здесь:
Начиная с версии 8.3.21, в платформе 1С:Предприятие появились новые объекты для работы с популярным форматом PDF
19. ixijixi 2141 26.07.24 12:49 Сейчас в теме
(5) Так тут нужны новые объекты для работы с популярным форматом DOCX, а не PDF =)
0x00; TMV; +2 Ответить
6. Prom-komplekt 03.08.23 06:43 Сейчас в теме
А как у вас реализован выбор принтера?
пДокументPDF.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
7. xvchk 06.09.23 14:38 Сейчас в теме
(6)
А как у вас реализован выбор принтера?


Добрый день. Тот же вопрос. ДокументPDF дает напечатать без показа окна только на принтер по умолчанию. Удалось как-то реализовать выбор принтера и настройки параметров печати (поля, масштаб и т.д.)?
umberto_nobile; +1 Ответить
9. VladimirElohov 137 24.09.23 23:06 Сейчас в теме
(7) Вглубь этих механизмов не копал. Заказчика устроила печать на принте по умолчанию без доп.настроек
8. avkuz 06.09.23 14:44 Сейчас в теме
У меня почему-то при отображении сохраненного в 1С ПДФ - он "ломается".
прикрепляю картинку: слева, как в хроме он выглядит - справа, как в 1С
платформу поставил 8.3.23.1865
Прикрепленные файлы:
10. VladimirElohov 137 24.09.23 23:21 Сейчас в теме
(8) Тоже сталкивался с подобным в процессе тестирования на pdf-сканах. Похоже на баг платформы. На партнерском форуме есть ветка с обсуждением темы "Показ документа PDF в клиентском приложении". Один из коллег там ёмко выразился на этот счёт: "Просмотром pdf это можно назвать с натяжкой. Это скорее отображение картинок, сконвертированных из pdf-файла".
11. DELOVOYDOM 11.11.23 01:33 Сейчас в теме
Скачал обработку, но мне нужен только предпросмотр был. Ничего не работает в итоге. Как ни крутил не понял что куда как вставлять какую обработку перехватывать. Все равно пишет нет данных для предварительного просмотра. Версия 21
12. VladimirElohov 137 19.12.23 12:15 Сейчас в теме
(11)
Версия 21

Релиз конфигурации у вас какой? В новых версиях что-то могло сильно поменяться, что требует актуализации расширения.
13. DELOVOYDOM 20.12.23 14:28 Сейчас в теме
(12) Да все разобрался работает, спасибо. Уже сделал даже автоматическое прикрепления файла пдф к документу 1с путем перетаскивания файла с рабочего стола или проводника
14. YA_1003343880 29.03.24 10:47 Сейчас в теме
(13) Как сделал? Разве есть события по перетаскиванию из внешнего приложения?
15. VladimirElohov 137 05.04.24 12:27 Сейчас в теме
(14)
Разве есть события по перетаскиванию из внешнего приложения?

У формы таких событий, вроде, нет. А вот у некоторых элементов формы очень даже: DragStart, DragCheck, DragEnd, Drag.
Если интересно, можете посмотреть, как такое реализовано в типовой обработке Работа с файлами (форма Присоединенные файлы).
Прикрепленные файлы:
16. user595194_bendery_sh 17.04.24 10:40 Сейчас в теме
А что такое КоллекцияВложенийPDF ?
Можно ли в один файл PDF напихать несколько других файлов PDF чтобы получилость подобие многостраничного PDF ?
17. VladimirElohov 137 17.04.24 13:18 Сейчас в теме
(16)
А что такое КоллекцияВложенийPDF ?

На практике не пользовался. Но насколько я понимаю, формат PDF предусматривает возможность добавления вложений, которые по умолчанию не отображаются на страницах. По сути, как файлы-вложения в электронных-письмах.
18. user1497432 01.05.24 11:32 Сейчас в теме
Коллеги, при чтении данных в ПДФ документ на веб клиенте использую метод "ПрочитатьАсинх". Система требует установить расширение по работе с файлами. Однако в описании работы с ПДФ документами для релиза платформы 8.3.24 утверждается, что расширение для работы с файлами не требуется в веб-клиенте. Кто-то сталкивался с такой проблемой? Благодарю
20. ravasfc 25.11.24 07:48 Сейчас в теме
Добрый день, судя по коду:
пДокументPDF = Новый ДокументPDF;
пДокументPDF.Прочитать(Поток);
пДокументPDF.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

У вас на печать выводится каждый документ в новом окне, а не делали чтобы в одном окне все выводилось?
dbachinsky; +1 Ответить
21. batyaevyug 14.01.25 17:31 Сейчас в теме
Добрый день!
Платформа 8.3.25.1394
Конфигурация - Управление торговлей и взаимоотношениями с клиентами:
1С:Управление торговлей (11.5.12.53) + Модуль 1С:CRM (3.1.26.8)
Версия продукта (3.1.26.9)

Столкнулись с тем, что сформированный отчет в ТабДок при сохранении именно в PDF, стал размером в 10 раз больше
22. unknown181538 164 22.05.25 02:13 Сейчас в теме
(0) немного оффтоп, но хочется хоть где-то этим поделиться
ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанныхФайла);
	Поток = ДвоичныеДанныеФайла.ОткрытьПотокДляЧтения();
	ЭтотОбъект.pdf_Документ.Прочитать(Поток);

выполненная на сервере выдает ошибку:
"по причине:
Недопустимый формат"
а
pdf_Документ.Прочитать( недоступна на веб-клиенте....
Поэтому возвращаюсь к старым методам через HTML документ :((
23. Шахтер 16.11.25 16:40 Сейчас в теме
Открывается пустым документpdf на веб-клиенте. Почему?
В тонком клиенте все красививо показывает.
Платформа 8.3.23
ДокументPDF = Новый ДокументPDF;
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла);
Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения();
ДокументPDF.ПрочитатьАсинх(Поток);
ДокументPDF.Показать();
24. VladimirElohov 137 07.03.26 14:58 Сейчас в теме
(23) Для работы некоторых методов из приведённого листинга в веб-клиенте требуется наличие расширения работы с файлами. Возможно, в этом дело?
Для отправки сообщения требуется регистрация/авторизация