Ошибка при вызове метода контекста (Run)

1. user1671936 1 28.03.23 11:43 Сейчас в теме
Здравствуйте. Нашел статью по работе с pdf https://infostart.ru/1c/articles/723898/ , сделал себе обработку, из статьи взял только разделение файла на странице. При попытке запустить скрипт вылезает ошибка
Ошибка при вызове метода контекста (Run)
{ВнешняяОбработка.РаботаС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НаСервере();
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
4. Sashares 34 28.03.23 14:42 Сейчас в теме
(3) Вот так у меня работает:
&НаКлиенте
Процедура Команда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? https://www.pdflabs.com/tools/pdftk-server/
user1671936; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 34 28.03.23 13:45 Сейчас в теме
(1)А ИмяИсходногоФайла не нужно ли взять в двойные кавычки, как каталог утилит? Ведь в имени файла есть пробел.
Судя по исходной статье - надо.
3. user1671936 1 28.03.23 14:11 Сейчас в теме
(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НаСервере();
КонецПроцедуры
Показать
4. Sashares 34 28.03.23 14:42 Сейчас в теме
(3) Вот так у меня работает:
&НаКлиенте
Процедура Команда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? https://www.pdflabs.com/tools/pdftk-server/
user1671936; +1 Ответить
5. user1671936 1 28.03.23 14:58 Сейчас в теме
(4)
Вы же установили pdftk-server? https://www.pdflabs.com/tools/pdftk-server/
спасибо огромное! Я немного не то установил, поэтому и не работало.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот