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

12.04.23

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Работа с документами PDF:
.cfe 45,41Kb ver:1.0.0.1
66
66 Скачать (1 SM) Купить за 1 850 руб.

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

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

См. также

SALE! 15%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 руб.

12.06.2017    142220    802    297    

423

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

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

35000 руб.

15.12.2021    24348    172    51    

131

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

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

35000 руб.

23.07.2020    51913    229    71    

187

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 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" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    171433    305    257    

381

SALE! 10%

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

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

53111 47800 руб.

03.12.2020    36867    95    66    

92

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

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

15300 руб.

18.02.2016    187189    591    512    

529

SALE! 10%

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

Перенос данных из ERP в УПП 1.3 | из КА 2 в КА 1.1 | из КА 2 в УПП 1.3 | из КА 2 в УТ 10.3 | из ERP в КА 1.1 | из ERP в УТ 10.3 | из УТ 11 в УТ 10.3 | из УТ 11 в УПП 1.3 | из УТ 11 в КА 1.1 | Можно переносить только новые объекты, найденные в приемнике перезаписываться не будут | Есть фильтр по организации при выгрузке данных | Оперативно обновляем на новые релизы 1С

53111 47800 руб.

28.11.2015    83391    33    125    

65

SALE! 10%

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

55778 50200 руб.

24.04.2015    195318    152    244    

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

Cам ещё не пробовал, но в документации заявлено, должна уметь.
Прикрепленные файлы:
3. TMV 14 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 14 14.04.23 08:07 Сейчас в теме
(4) Так не интересно. Имелось ввиду здесь:
Начиная с версии 8.3.21, в платформе 1С:Предприятие появились новые объекты для работы с популярным форматом PDF
19. ixijixi 1930 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 дает напечатать без показа окна только на принтер по умолчанию. Удалось как-то реализовать выбор принтера и настройки параметров печати (поля, масштаб и т.д.)?
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.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

У вас на печать выводится каждый документ в новом окне, а не делали чтобы в одном окне все выводилось?
Оставьте свое сообщение