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

05.10.21

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

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

Скачать исходный код

Наименование Файл Версия Размер
скрипт для удаления зависших сеансов winword
.7z 52,92Kb
21
.7z 52,92Kb 21 Скачать

Обработчик после регистрации нужного вида документа выполняет конвертацию файлов, прикрепленных к внутреннему документу формата 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С:Документооборот - цена на лицензии КОРП, ПРОФ и ДГУ

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

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

48500 руб.

19.02.2016    107311    105    5    

86

1С:Архив

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 Платные (руб)

"1С:Архив" – это универсальная система, обеспечивающая надежное долговременное хранение документов с гарантией юридической значимости на неограниченный срок. "1С:Архив" разработан на основе нормативно-правовых актов по архивному делу, поддерживает операции хранения документов – от попадания в архив до уничтожения – и не имеет ограничений на объем хранимых данных. "1С:Архив" сопровождается методологической поддержкой в виде организационных документов по хранению, входящих в состав "Комплекта нормативных документов" к "Методике управления документами и совместной работой", разработанной специалистами фирмы "1С". Использование "1С:Архива" позволяет организовать единое хранилище всех бумажных и электронных документов из разных информационных систем, вести архивный учет в соответствии с требованиями Росархива и снизить нагрузку на учетные системы. Продукт подходит для малых, средних, крупных предприятий и учреждений любых отраслей.

90000 руб.

24.10.2022    4966    5    1    

4

Таймлист (1С:Совещание, Таймлист Лайт)

Документооборот и делопроизводство (СЭД) Конфигурации 1cv8

«Таймлист» – экосистема сервисов («Таймлист Лайт», «1C:Совещание», «Таймлист Recorder»), основанная на искусственном интеллекте Таймлист, который позволяет эффективно работать с легкими поручениями за счет фиксации всех важных идей при расшифровке и последующем формировании автопротокола встречи. Сервисы, в которые интегрирован ИИ, позволяют работать с задачами (поручениями), полученными из автопротокола.

10000 руб.

06.12.2023    1512    0    0    

7

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в 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С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    102082    298    173    

314

Легкий документооборот (+чат-бот для Telegram)

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

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

14900 руб.

15.11.2018    28122    26    48    

58

1С:Бухгалтерия 3.0 ПРОФ + 1С:Документооборот. Модуль интеграции 1С:БП и 1С:ДО (ПРОФ или КОРП)

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

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

30000 руб.

23.05.2017    54098    34    67    

41

Шаблоны.doc - документы Word из 1С (1С:Совместимо!)

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

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

2000 руб.

05.09.2017    90318    62    82    

96

ЭДО: организация архива оригиналов первичных документов, комплексный отчет по ошибкам

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

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

14880 руб.

17.12.2018    44471    58    51    

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