Имя: Пароль:
1C
1С v8
Веб-сервис то сохраняет PDFку локально, то нет. В чем может быть причина?
0 andryuhin
 
10.10.13
18:36
Добрый день.
Проблема в следующем. Имеется работающий веб-сервис. В нем есть кусок кода, который сохраняет локально табличный документ. Вот этот код:


Функция ЗаписатьВPDFФайл(ИмяСопроводДока, ИмяФ, ном) Экспорт
    ВремТабДок = Новый ТабличныйДокумент;
    ВремТабДок.АвтоМасштаб = Истина;
    ВремТабДок.Вывести(ИмяСопроводДока);
    текИмяФайла = КаталогВременныхФайлов() + ИмяФ + "_" + ном + ".pdf";
    Попытка                        
        ВремТабДок.Записать(текИмяФайла,ТипФайлаТабличногоДокумента.PDF);
        возврат "Файл """+текИмяФайла+""" успешно сохранен.";
    Исключение
        ТекстОшибки = "Не удалось сохранить файл " + текИмяФайла +"!";
        возврат ТекстОшибки;
    КонецПопытки;
КонецФункции


в "ИмяСопроводДока" передается сформированный табличный документ

Проблема в том, что иногда эта функция не отрабатывает. В ТекстеОшибки  остается: "Не удалось сохранить файл C:\Temp\ЯР00009519_1.pdf!"
А иногда все в порядке: "Файл "C:\Temp\ЯР00009519_1.pdf" успешно сохранен."

При этом заметили, что этот код не отрабатывает первый раз с утра, а со второго раза на этих же данных все нормально. Затем, если например часок сервис никто не вызывает, это повторяется, т.е. первый вызов - файл не сохраняется, со второго раза - все начинает работать.

Не поможете с идеями, а то я голову уже свою сломал.
1 Rie
 
10.10.13
18:42
(0) После присваивания ТекстОшибки = ...;
поставь

ТекстОшибки = ТекстОшибки+": "+ОписаниеОшибки();

может, на какие мысли натолкнёт...
2 andryuhin
 
10.10.13
18:43
Все, заработался я.  Элементарное и не поставил. Спасибо :)
3 andryuhin
 
10.10.13
18:55
Добавил ОписаниеОшибки(), мало помогло.  Вот чего выводит:

"Не удалось сохранить файл C:\Temp\ЯР00009519_1.pdf ! : {ОбщийМодуль.споВебСервисы.Модуль(1322)}: Ошибка при вызове метода контекста (Записать): Вывод запрещен"

Что бы это могло значить?

(при повторном вызове сервиса, все отработало)
4 Rie
 
10.10.13
18:59
(3)
ВремТабДок.Вывод = ИспользованиеВывода.Разрешить;
5 andryuhin
 
11.10.13
10:22
да, оно самое. ПОМОГЛО.  :)

СПАСИБО ОГРОМНОЕ.