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

05.10.21

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
скрипт для удаления зависших сеансов winword
.7z 52,92Kb
24
24 Скачать (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    108330    116    5    

93

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в основных типовых конфигурациях. Ролевая адресация, условная маршрутизация, чат-бот telegram, интеграция с n8n, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    29833    36    49    

71

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

Продукт "Апрель Софт: Бухгалтерия позаказного производства, ред. 3.0" предназначен для удобного и оперативного управления процессами производства, отгрузок и снабжения в производственных компаниях. Программный продукт открывает новые функциональные возможности для ведения документооборота.

11400 руб.

18.02.2016    22879    1    1    

5

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    106029    307    173    

322

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

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

30000 руб.

23.05.2017    55796    35    67    

42

Документооборот и делопроизводство (СЭД) ЭДО и ОФД Учет документов Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

14880 руб.

17.12.2018    45487    65    57    

78

Перенос данных 1C Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Оптовая торговля Производство готовой продукции (работ, услуг) Системный администратор Программист Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Позволяет выгрузить документы поступления или реализации с данными на закладках "товары" и "услуги" и счета-фактуры в файл Excel (.CSV)и загрузить их, используя настройки преобразования. Выгрузка и загрузка работает в обоих релизах бухгалтерии ( 8.2->8.2, 8.2->8.3, 8.3->8.2, 8.3->8.3). Удобна для обмена документами между базами контрагентов (реализацию в поступление, поступление в реализацию), либо внутри одной базы (поступление из реализации с уменьшением цены на % , реализация из поступления с повышением цены на %), либо перенос документов в копию. Не использует правила обмена, поэтому не зависит от релизов конфигураций. Работает с конфигурациями 8.2 и 8.3 (есть обычная и управляемая форма). Файл обмена универсальный для обоих редакций. ВНИМАНИЕ ! В связи с наличием неуправляемых форм обработка не работает в сервисе 1С:Fresh.

4800 руб.

14.04.2015    105181    204    106    

197
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 1327 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: хотя на момент комментарий ещё не предлагали )
Оставьте свое сообщение