Работа с документами 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% из Базы знаний

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

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

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

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

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

  • Предварительный просмотр. Проблема: при добавлении присоединенных файлов для картинок он работает, а для 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.*).

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

См. также

Перенос данных 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    160539    968    317    

482

SALE! 10%

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

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 37800 руб.

15.12.2021    34104    257    64    

194

Перенос данных 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    188137    357    289    

417

Перенос данных 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    62711    82    132    

81

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

Перенос данных из БП 2 в БП 3 готовые правила конвертации данных (КД 2), сэкономьте свое время! | Выполнить переход с БП 2 на БП 3 в ситуациях, когда простым обновлением перейти не получается | Переносится вся справочная информация, документы за выбранный период, а также начальные остатки на выбранную дату (то есть можно еще и свертку базы сделать при переносе) | Есть фильтр по организациям при выгрузке данных | Перенос можно проверить перед покупкой прямо на вашем сервере! Обращайтесь за проверкой!

50600 руб.

21.05.2019    57925    80    131    

73

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

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

05.10.2022    13392    15    8    

16

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

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

58000 руб.

15.04.2019    83927    224    175    

161
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 2148 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 167 22.05.25 02:13 Сейчас в теме
(0) немного оффтоп, но хочется хоть где-то этим поделиться
ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(АдресДанныхФайла);
	Поток = ДвоичныеДанныеФайла.ОткрытьПотокДляЧтения();
	ЭтотОбъект.pdf_Документ.Прочитать(Поток);

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