Ошибка при вызове метода контекста (Run)
Здравствуйте. Нашел статью по работе с pdf https://infostart.ru/1c/articles/723898/ , сделал себе обработку, из статьи взял только разделение файла на странице. При попытке запустить скрипт вылезает ошибка
Ошибка при вызове метода контекста (Run)
{ВнешняяОбработка.РаботаСPDF.Форма.Форма.Форма(47)}:Скрипт.Run(ТекстКоманды,0,1);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Произошла исключительная ситуация (0x80070002)
[ОшибкаИспользованияВстроенногоЯзыка]
. Я так понял, что ошибка из за неправильного текста команды, только не могу разобраться, с чем связано. Подскажите, пожалуйста, что не так? Код обработки {ВнешняяОбработка.РаботаСPDF.Форма.Форма.Форма(47)}:Скрипт.Run(ТекстКоманды,0,1);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Произошла исключительная ситуация (0x80070002)
[ОшибкаИспользованияВстроенногоЯзыка]
&НаКлиенте
Процедура Команда1(Команда)
ИмяИсходногоФайла = "D:\Files\Тестовый файл.pdf";
Скрипт = Новый COMОбъект("WScript.Shell");
ИмяКаталогаУтилит = """C:\Program Files (x86)\PDFtk Server\bin\";
КаталогОбмена = "D:\Files\Новая папка\";
ДокументPDF = Новый ДокументPDF;
ДокументPDF.Прочитать(ИмяИсходногоФайла);
КоличествоСтраниц = ДокументPDF.КоличествоСтраниц();
Страница = 1;
Пока Страница <= КоличествоСтраниц Цикл
ИмяСводногоФайла = "page-" + (Формат(Страница, "ЧЦ=3; ЧВН=")) + ".pdf";
ИмяФайлаРезультата = КаталогОбмена + ИмяСводногоФайла;
ТекстКоманды = ИмяКаталогаУтилит + "pdftk.exe"" " + ИмяИсходногоФайла + " cat " + Страница + " output " + """" + ИмяФайлаРезультата + """";
Скрипт.Run(ТекстКоманды,0,1);
ФайлАнализа = Новый Файл(ИмяФайлаРезультата);
ФайлАнализа.УстановитьВремяИзменения(ТекущаяДата());
Страница = Страница + 1;
КонецЦикла;
Команда1НаСервере();
КонецПроцедуры
ПоказатьПо теме из базы знаний
- ГОСиД - Универсал (2.00 / 21.08.15 / CaSH)
- .NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия
- Ловец дедлоков СУБД
- Описание почти всех событий технологического журнала
- Автоматическая классификация ошибок технологического журнала
Найденные решения
(3) Вот так у меня работает:
Вы же установили pdftk-server?https://www.pdflabs.com/tools/pdftk-server/
&НаКлиенте
Процедура Команда1(Команда)
ИмяИсходногоФайла = "D:\ГРБС.PDF";
Скрипт = Новый COMОбъект("WScript.Shell");
ИмяКаталогаУтилит = """C:\Program Files (x86)\PDFtk Server\bin\";
КаталогОбмена = "G:\хрень\";
ДокументPDF = Новый ДокументPDF;
ДокументPDF.Прочитать(ИмяИсходногоФайла);
КоличествоСтраниц = ДокументPDF.КоличествоСтраниц();
Страница = 1;
Пока Страница <= КоличествоСтраниц Цикл
ИмяСводногоФайла = "page-" + (Формат(Страница, "ЧЦ=3; ЧВН=")) + ".pdf";
ИмяФайлаРезультата = КаталогОбмена + ИмяСводногоФайла;
ТекстКоманды = ИмяКаталогаУтилит + "pdftk.exe"" " +""""+ ИмяИсходногоФайла +""""+ " cat " + Страница + " output " + """" + ИмяФайлаРезультата + """";
Скрипт.Run(ТекстКоманды,0,1);
ФайлАнализа = Новый Файл(ИмяФайлаРезультата);
ФайлАнализа.УстановитьВремяИзменения(ТекущаяДата());
Страница = Страница + 1;
КонецЦикла;
КонецПроцедуры
ПоказатьВы же установили pdftk-server?
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
А ИмяИсходногоФайла не нужно ли взять в двойные кавычки, как каталог утилит?
первое, что я попробовал, это добавить кавычки. Может неправильно что то сделал, но результат не изменился, ошибка такая же . Вот варианты, которые пробовал &НаКлиенте
Процедура Команда1(Команда)
ИмяИсходногоФайла = "D:\Files\Тестовый файл.pdf";
Скрипт = Новый COMОбъект("WScript.Shell");
ИмяКаталогаУтилит = """C:\Program Files (x86)\PDFtk Server\bin\";
КаталогОбмена = "D:\Files\Новая папка\";
ДокументPDF = Новый ДокументPDF;
ДокументPDF.Прочитать(ИмяИсходногоФайла);
КоличествоСтраниц = ДокументPDF.КоличествоСтраниц();
Страница = 1;
ИмяИсходногоФайла = """D:\Files\Тестовый файл.pdf""";
//ИмяИсходногоФайла = """" + ИмяИсходногоФайла + """";
Пока Страница <= КоличествоСтраниц Цикл
ИмяСводногоФайла = "page-" + (Формат(Страница, "ЧЦ=3; ЧВН=")) + ".pdf";
ИмяФайлаРезультата = КаталогОбмена + ИмяСводногоФайла;
ТекстКоманды = ИмяКаталогаУтилит + "pdftk.exe"" " + ИмяИсходногоФайла + " cat " + Страница + " output " + """" + ИмяФайлаРезультата + """";
Скрипт.Run(ТекстКоманды,0,1);
ФайлАнализа = Новый Файл(ИмяФайлаРезультата);
ФайлАнализа.УстановитьВремяИзменения(ТекущаяДата());
Страница = Страница + 1;
КонецЦикла;
Команда1НаСервере();
КонецПроцедуры
Показать
(3) Вот так у меня работает:
Вы же установили pdftk-server?https://www.pdflabs.com/tools/pdftk-server/
&НаКлиенте
Процедура Команда1(Команда)
ИмяИсходногоФайла = "D:\ГРБС.PDF";
Скрипт = Новый COMОбъект("WScript.Shell");
ИмяКаталогаУтилит = """C:\Program Files (x86)\PDFtk Server\bin\";
КаталогОбмена = "G:\хрень\";
ДокументPDF = Новый ДокументPDF;
ДокументPDF.Прочитать(ИмяИсходногоФайла);
КоличествоСтраниц = ДокументPDF.КоличествоСтраниц();
Страница = 1;
Пока Страница <= КоличествоСтраниц Цикл
ИмяСводногоФайла = "page-" + (Формат(Страница, "ЧЦ=3; ЧВН=")) + ".pdf";
ИмяФайлаРезультата = КаталогОбмена + ИмяСводногоФайла;
ТекстКоманды = ИмяКаталогаУтилит + "pdftk.exe"" " +""""+ ИмяИсходногоФайла +""""+ " cat " + Страница + " output " + """" + ИмяФайлаРезультата + """";
Скрипт.Run(ТекстКоманды,0,1);
ФайлАнализа = Новый Файл(ИмяФайлаРезультата);
ФайлАнализа.УстановитьВремяИзменения(ТекущаяДата());
Страница = Страница + 1;
КонецЦикла;
КонецПроцедуры
ПоказатьВы же установили pdftk-server?
(4)
Вы же установили pdftk-server? https://www.pdflabs.com/tools/pdftk-server/
спасибо огромное! Я немного не то установил, поэтому и не работало.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот