Имя: Пароль:
1C
 
Конвертация jpg -> pdf
,
0 Oldman06
 
31.07.20
17:58
Есть код который конвертирует массив jpg в pdf в серверном вызове (CentOS):

Функция МассивJPG_в_PDF(МассивФайлов, Адрес = Неопределено) Экспорт
    РазделительПути = "/";
    КаталогВыгрузки = КаталогВременныхФайлов() + "StatementOutput";
    КаталогНаДиске = Новый Файл(КаталогВыгрузки);
    Если КаталогНаДиске.Существует() Тогда
        Попытка
            УдалитьФайлы(КаталогВыгрузки, "*.*");
            
        Исключение
            
        КонецПопытки;
        
    Иначе
        СоздатьКаталог(КаталогВыгрузки);
        
    КонецЕсли;
    
    СтрокаКоманды = "convert";
    Для х = 0 По МассивФайлов.Количество() - 1 Цикл
        НомерФайла = х + 1;
        ИмяФайла = КаталогВыгрузки + РазделительПути + "input" + Строка(НомерФайла) + ".jpg";
        ДД = ПолучитьИзВременногоХранилища(МассивФайлов[х]);
        ДД.Записать(ИмяФайла);
        
        СтрокаКоманды = СтрокаКоманды + " input" + Строка(НомерФайла) + ".jpg";
        
    КонецЦикла;
    
    СтрокаКоманды = СтрокаКоманды + " " + "result.pdf";
    
    ЗапуститьПриложение(СтрокаКоманды, КаталогВыгрузки, Истина);
        
    ДД = Новый ДвоичныеДанные(КаталогВыгрузки + РазделительПути + "result.pdf");
    АдресРезультата = ПоместитьВоВременноеХранилище(ДД, Адрес);
    
        УдалитьФайлы(КаталогВыгрузки);
    
    Возврат АдресРезультата;
    
КонецФункции

До сегодняшнего дня работал без проблем. Ничего не менял, на сервере тоже. Сейчас вылетает на строке
ДД = Новый ДвоичныеДанные(КаталогВыгрузки + РазделительПути + "result.pdf");
так как не может найти файл. И он действительно не формируется. В логах ничего, запуск команды конвертации в консоли на сервере под пользователем 1С отрабатывает нормально. Куда можно копнуть?
1 ДенисЧ
 
31.07.20
18:07
Самая интересная сказка от сисадминов и 1сников - "ничего не менялось".
Сисадмины сегодня праздник отмечали? Права поменяли?
2 Oldman06
 
31.07.20
18:20
Сисадмин, по совместительству, я. И я точно ничего не менял. И дело не в правах: в консоли под пользователем 1с все работает. Пользователи ещё сказали, что эта ошибка и раньше переодически возникала, но потом рассасывалась. Я так подозреваю, она исчезнет после перезапуска службы сервера 1с. Она у меня каждую ночь перезапускается. Сейчас проверить не могу: много пользователей активно работают.
3 ДенисЧ
 
31.07.20
18:40
Ну так запиши в ЖР КаталогВыгрузки + РазделительПути + "result.pdf"
И в попытку. А лучше по отдельности...
4 Garykom
 
гуру
31.07.20
18:49
бага тут СтрокаКоманды = "convert";

пропиши полные пути
5 Oldman06
 
31.07.20
19:50
(3) Уже делал. Всё правильно. Прикол в том, что этот код то работает, то нет.
6 Oldman06
 
31.07.20
19:51
(4) Пробовал. С полными путями та же шняга.
7 Timon1405
 
31.07.20
19:52
серверов 1С больше одного?
8 Oldman06
 
31.07.20
20:45
(7) Нет, один.
9 Garykom
 
гуру
31.07.20
21:18
(6) КодВозврата какой? У ЗапуститьПриложение 4 параметра
ЗапуститьПриложение(<СтрокаКоманды>, <ТекущийКаталог>, <ДождатьсяЗавершения>, <КодВозврата>)
10 Oldman06
 
31.07.20
22:23
(9) А вот это я как-то упустил ... Забыл, что там четвертый параметр есть. Завтра буду на работе, посмотрю.
11 acht
 
01.08.20
10:28
Не будет работать, если исходных файлов больше 1000
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.