1C:ДО 2.1. Преобразование в PDF после автозаполнения шаблона
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Там ничего сложного, в расширении формы элемента внутреннего дока (или входящего или исходящего) добавляю кнопку, на неё такой код:
Единственно, я что-то менял в стандартной функции добавления файла, но убей не помню чего и зачем и комментов что-то не сделал((.
Оболочка = Новый COMОбъект("WScript.Shell");
КаталогДанныхПользователя = Оболочка.ExpandEnvironmentStrings("%APPDATA%");
ПутьККаталогу = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(КаталогДанныхПользователя);
ДанныеФайла = РаботаСФайламиВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка,
Неопределено,
ЭтаФорма.УникальныйИдентификатор,
Неопределено,
ПредыдущийАдресФайла);
РаботаСФайламиКлиент.ПолучитьФайлВерсииВРабочийКаталог(
Неопределено,
ДанныеФайла,
"",
ЭтаФорма.УникальныйИдентификатор,
Неопределено);
ДанныеФайла = РаботаСФайламиВызовСервера.ДанныеФайлаДляОткрытия(ТекущиеДанные.Ссылка,
Неопределено,
ЭтаФорма.УникальныйИдентификатор,
Неопределено,
ПредыдущийАдресФайла);
Если ДанныеФайла.Расширение = "doc" ИЛИ ДанныеФайла.Расширение = "docx" Тогда
ИмяФайлаПДФ = ДанныеФайла.ПолноеНаименованиеВерсии + ".pdf";
ИмяФайла = ДанныеФайла.ПолноеИмяФайлаВРабочемКаталоге;
ФайлВФорматеПДФ = ПутьККаталогу+ИмяФайлаПДФ;
MSWord = Новый COMОбъект("Word.Application");
MSWord.Visible = Ложь;
MSWord.Documents.Open(ИмяФайла);
ДокументВорд = MSWord.Application.Documents(1);
ДокументВорд.Activate();
ДокументВорд.SaveAs(ФайлВФорматеПДФ, 17);
MSWord.Application.Quit();
// добавляем получившийся файл в карточку документа
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("ВладелецФайла",ДанныеФайла.Владелец);
ПараметрыВыполнения.Вставить("ДобавлениеОригинала",Ложь);
ПараметрыВыполнения.Вставить("ИдентификаторРодительскойФормы",Неопределено);
ПараметрыВыполнения.Вставить("НеОткрыватьКарточкуПослеСозданияФайла",Истина);
ПараметрыВыполнения.Вставить("ОбработчикРезультата",Неопределено);
ПараметрыВыполнения.Вставить("ПараметрыОповещения",Неопределено);
ПараметрыВыполнения.Вставить("СписокОповещений",Неопределено);
ПараметрыВыполнения.Вставить("ПолноеИмяФайла",ФайлВФорматеПДФ);
ПараметрыВыполнения.Вставить("ИмяСоздаваемогоФайла",Неопределено);
ПараметрыВыполнения.Вставить("ФормаВладелец",ЭтаФорма);
РаботаСФайламиКлиент.ДобавитьИзФайловойСистемыСРасширениемСинхронно(ПараметрыВыполнения);
ПоказатьЕдинственно, я что-то менял в стандартной функции добавления файла, но убей не помню чего и зачем и комментов что-то не сделал((.
Вот не знаю, можно ли считать это "без доработки" - я делал с помощью расширения конфигурации. Я, правда, кнопку сделал для конвертации. Сама конвертация примитивно, с помощью ворда, который невидимо открывает файл, сохраняет его в пдф и закрывается. Далее, чтобы добавить его в карточку документа, можно попробовать воспользоваться процедурами общего модуля "РаботаСФайламиКлиент".
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот