Преобразование doc/docx в PDF для 1С: Документооборот 8 КОРП, ПРОФ, ДГУ через обработчик бизнес-событий

05.10.21

Функциональные - Документооборот и делопроизводство (СЭД)

Обработчик после регистрации нужного вида документа выполняет конвертацию файлов, прикрепленных к внутреннему документу формата doc/docx, в формат PDF и добавляет эти файлы к документу. Не требует изменений в конфигурации.

Скачать файл

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

Наименование По подписке [?] Купить один файл
скрипт для удаления зависших сеансов winword
.7z 52,92Kb
25
25 Скачать (1 SM) Купить за 1 850 руб.

Обработчик после регистрации нужного вида документа выполняет конвертацию файлов, прикрепленных к внутреннему документу формата doc/docx, в формат PDF и добавляет эти файлы к документу.

Обработчик вешается на подписку при выполнении задачи. Обязательно наличие установленного офиса на сервере 1С, т.к. конвертация осуществляется средствами Winword.

Для корректной работы необходимо выполнить настройки на сервере 1С //infostart.ru/1c/articles/325873/

Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать. Источник https://support.microsoft.com/kb/257757

Для избежания зависания процесса winword  написал скрипт, который убивает зависшие сеансы на сервере
Код скрипта приложен в архиве. Файл скрипта необходимо поместить на сервере 1С в папку C:\Windows\Tasks и добавить его запуск в планировщик заданий Windows

Совместимо с 1С:Документооборот 2.1 (версии КОРП, ПРОФ, ДГУ), платформа 1С:Предприятие 8.3. 

Тестировал на версии Документооборот 8 КОРП, редакция 2.1 (2.1.28.14).

 

Код обработчика:

 // Поиск объекта
Задача = Событие.Источник;

СоздаватьPDF   = Ложь;

Если ТипЗнч(Задача.БизнесПроцесс) = Тип("БизнесПроцессСсылка.Утверждение") 
    И Задача.ТочкаМаршрута = БизнесПроцессы.Утверждение.ТочкиМаршрута.Утвердить
    И Задача.БизнесПроцесс.РезультатУтверждения = Перечисления.РезультатыУтверждения.Утверждено Тогда
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Предметы.РольПредмета,
        |    Предметы.Предмет КАК Предмет
        |ИЗ
        |    Задача.ЗадачаИсполнителя.Предметы КАК Предметы
        |ГДЕ
        |    Предметы.Ссылка = &ЗадачаСсылка";
    
    Запрос.УстановитьПараметр("ЗадачаСсылка", Задача);
    Результат = Запрос.Выполнить();
    
    Если Не Результат.Пустой() Тогда
        
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
            
            Объект = Выборка.Предмет.ПолучитьОбъект();
            Если ТипЗнч(Объект.Ссылка) = Тип("СправочникСсылка.ВнутренниеДокументы") Тогда
                НаименованиеВидаДокумента = СокрЛП(Объект.ВидДокумента.Наименование);
				СоздаватьPDF=(ВидДокумента= /// Нужный ВидДокумента);
                /// СоздаватьPDF=(НаименованиеВидаДокумента = "Договор услуг"); 
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    
КонецЕсли;
 
////////////////////////////////////
// СОЗДАНИЕ PDF ВЕРСИЙ DOC ФАЙЛОВ //
////////////////////////////////////
   
Если СоздаватьPDF Тогда
 
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Файлы.Ссылка КАК Файл
        |ИЗ
        |    Справочник.Файлы КАК Файлы
        |ГДЕ
        |    Файлы.ВладелецФайла = &ВладелецФайла
        |    И НЕ Файлы.ПометкаУдаления";

    Запрос.УстановитьПараметр("ВладелецФайла", Объект.Ссылка);
   
    РезультатЗапроса = Запрос.Выполнить();
    Если НЕ РезультатЗапроса.Пустой() Тогда
               
        Выборка = РезультатЗапроса.Выбрать();
        Пока Выборка.Следующий() Цикл
        
            ДанныеФайла = РаботаСФайламиВызовСервера.ДанныеФайлаДляСохранения(Выборка.Файл);
            Если НЕ (ДанныеФайла.Расширение = "doc" ИЛИ ДанныеФайла.Расширение = "docx" ИЛИ ДанныеФайла.Расширение = "odt" ) Тогда
                Продолжить;
            КонецЕсли;
            
            FileDOC = ПолучитьИмяВременногоФайла(ДанныеФайла.Расширение);
            FilePDF = ПолучитьИмяВременногоФайла("pdf");
            
             Если Данныефайла.ТипХраненияФайла=Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда 
            	ДвоичныеДанныеDOC = РаботаСФайламиВызовСервера.ПолучитьХранилищеФайлаИзИнформационнойБазы(ДанныеФайла.ТекущаяВерсия).Получить();
			Иначе
				ДвоичныеДанныеDOC = РаботаСФайламиВызовСервера.ПолучитьДвоичныеДанныеФайла(Выборка.Файл);
			КонецЕсли;

            ДвоичныеДанныеDOC.Записать(FileDOC);
            
            MSWordApp = Новый COMОбъект("Word.Application");
            MSWordApp.Visible = False;                     
            MSWordApp.Documents.Open(FileDOC);
            
            WordDocument = MSWordApp.Application.Documents(1);
            WordDocument.Activate();
            WordDocument.SaveAs(FilePDF, 17);
            
            MSWordApp.Application.Quit();
            
            СведенияОФайле = РаботаСФайламиКлиентСервер.СведенияОФайле("ФайлСВерсией", Новый Файл(FilePDF));
            СведенияОФайле.ИмяБезРасширения              = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(
                                                               Объект.Получатели[0].Получатель.НаименованиеКороткое,"");
            СведенияОФайле.Автор                         = ДанныеФайла.АвторТекущейВерсии;
            СведенияОФайле.НоваяВерсияАвтор              = ДанныеФайла.АвторТекущейВерсии;
            СведенияОФайле.АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(FilePDF));
            
            НовыйФайлPDF = РаботаСФайламиВызовСервера.СоздатьФайлСВерсией(ДанныеФайла.Владелец, СведенияОФайле);
            
        КонецЦикла;
        
    КонецЕсли;
    
КонецЕсли;

 

Документооборот PDF doc docx конвертация pdf преобразование

См. также

Бухгалтер Пользователь Руководитель проекта Платформа 1С v8.3 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:ДО!

48500 руб.

19.02.2016    109457    130    5    

102

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

96000 руб.

11.06.2015    58029    36    20    

45

SALE! 30%

Перенос данных 1C Учет документов Системный администратор Программист Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Бесшовная интеграция с 1С:Документооборот (КОРП или ПРОФ) - вот что обеспечит Вам и Вашим сотрудникам оперативный доступ и продуктивную работу с документами в учётной системе 1С на базе "1С:Бухгалтерия предприятия 3.0 ПРОФ". Бесшовный обмен и связь позволяют экономить до 60% времени на поиск и согласование первичной документации (актов, счетов-фактур, накладных), не говоря уже о других полезных функциональных возможностях: создании и запуске бизнес-процессов, работе с электронной почтой, штрихкодировании документов и многом другом.

30000 руб.

23.05.2017    57423    36    68    

43

ЭДО и ОФД Учет документов Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Мощный, единый инструмент для решения всех проблем, связанных с переходом на ЭДО. Экономит бумагу и время - организует архив оригиналов первичных документов прямо в базе 1С, в прикрепленных файлах к соответствующим документам. С помощью комплексного отчета по ошибкам в ЭДО позволяет выявить и исправить все возможные ошибки - ошибочно сопоставленные документы, не подписанные документы, подписанные, но не загруженные в 1С документы. Автоматически сопоставляет не сопоставленные между собой документы. Может работать по расписанию и присылать отчет о состоянии архива/по ошибкам на почту. Взаимодействует напрямую с сервисами Диадок/СБИС, имеет интуитивно понятный интерфейс и учитывает 3-х летний опыт 40+ клиентов.

14880 руб.

17.12.2018    46154    66    61    

79

Email рассылки Взаиморасчеты Акт сверки Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Данная обработка позволяет сократить объем ручных операций, выполняемых ежемесячно бухгалтером или его помощником за счет автоматизации систематического процесса.

7800 руб.

12.02.2019    33552    27    24    

26

Печатные формы Учет документов Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Управленческий учет Платные (руб)

Приложение для быстрого создания макетов печатных документов, заполняемых из 1С:Предприятие, без привлечения программистов и запуска конфигуратора. Шаблон готовится в редакторе MS Word, отлично освоенном офисными служащими. Так, на подготовку нового шаблона договора купли продажи со спецификацией потребуется 25 минут. Приложение будет полезно, если Вы работаете со множеством Word-шаблонов или если Вам надо часто создавать новые шаблоны. Есть сертификат "1С: Совместимо!". Версия ПРОФ доступна в виде расширения.

2000 руб.

05.09.2017    93243    67    100    

101
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1328 05.10.21 22:06 Сейчас в теме
Рассматривали использование отдельного HTTP сервиса для преобразования?
Первое что нагуглил https://gotenberg.dev/, через модуль LibreOffice решает данную задачу.
2. Aletar 14.11.22 11:24 Сейчас в теме
(1) Да, метод хороший. Тоже его использовал.

На инфостарте уже предлагали похожий вариант: https://infostart.ru/1c/articles/1592714/

Upd: хотя на момент комментарий ещё не предлагали )
Оставьте свое сообщение