Имя: Пароль:
1C
1С v8
БП 3.0: регл.задание в серверной базе не срабатывает
,
0 dft2014
 
10.07.14
12:30
БП 3.0, УФ
Создан веб-сервис на стороне 1С, с помощью которого передаются некоторые параметры из другой программы. Эти параметры записываются в 1С в определенный регистр сведений. Также есть регламентное задание, по которому считывается содержимое этого регистра сведений, затем формируетcя печатная форма и сохраняется на диск в формате pdf.

Проблема: регламентное задание отрабатывает в файловой копии базы (печ.форма создается и сохраняется на диске), а в клиент-серверной базе - нет и ошибок никаких не выдает. Почему??? И как это исправить???
1 Холодильник
 
10.07.14
12:39
Блокировка фоновых заданий не стоит?
посмотри, выполняются ли остальные регл задания
2 dft2014
 
10.07.14
12:41
Вот код:


Процедура ЗапросДубликатов() Экспорт
    
    МассивДляПередачи   =  РегистрыСведений.ЗапросДубликатов.ПолучитьДокументыДляПередачи();
    
    ПередатьФайлыДубликатов(МассивДляПередачи,Новый Массив,Лог);
    
КонецПроцедуры


Функция ПолучитьДокументыДляПередачи() Экспорт
    
    Массив = Новый Массив;
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    //.......
    Выборка = Запрос.Выполнить().Выбрать();              
    Пока Выборка.Следующий() Цикл
        Массив.Добавить(Новый Структура("ДокументРеализации, Division", Выборка.ДокументРеализации, Выборка.Division));
    КонецЦикла;
    Возврат Массив;
КонецФункции


Функция ПередатьФайлыДубликатов(МассивДляПередачи,МассивНеПереданных,Лог) Экспорт
    
    Для Каждого Строка Из МассивДляПередачи Цикл
        
        Если ЗначениеЗаполнено(Строка.Division) Тогда
            Структура = НапечатетьДокументДубликатов(Строка.ДокументРеализации,Строка.Division);  
        КонецЕсли;
        
    КонецЦикла;
    
КонецФункции


Функция НапечатетьДокументДубликатов(ОбъектПечати, Каталог) Экспорт
    
    Массив = Новый Массив;
    Массив.Добавить(ОбъектПечати);
    
    ТабДок = Неопределено;
    Если ТипЗнч(ОбъектПечати) =  Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
        ТабДок = Документы.РеализацияТоваровУслуг.ПечатьАктаОбОказанииУслугИзмененный(Массив,Новый СписокЗначений);  
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Каталог) Тогда
        ИмяФайла = Каталог;    
        
        АдресВременногоКаталога = КаталогВременныхФайлов() + ИмяФайла + ".pdf";
        ТабДок.Записать(АдресВременногоКаталога,ТипФайлаТабличногоДокумента.PDF);
        
        Возврат Новый Структура("Адрес,ИмяФайла",АдресВременногоКаталога,ИмяФайла + ".pdf");
    иначе
        Возврат 0;
    КонецЕсли;
    
КонецФункции
3 Холодильник
 
10.07.14
12:43
а вы точно уверены, что в серверной базе под пользователем, запустившем сервер 1С - будет доступен КаталогВременныхФайлов()? :)

Сохраняйте файл во временное хранилище для передачи его на серв
4 acsent
 
10.07.14
12:46
(3) Не может быть чтоб не был доступен КаталогВременныхФайлов().
Иначе 1С не запустится
5 dft2014
 
10.07.14
12:46
(1) Мое регламентное задание я вручную запускаю. Где посмотреть блокировки регл.заданий?
6 acsent
 
10.07.14
12:47
(5) На запуск вручную блокировки не распространяются
7 dft2014
 
10.07.14
12:49
(4), (6) Согласна. В чем тогда еще может быть причина?
8 Холодильник
 
10.07.14
12:51
(5) блокировки можно посмотреть в свойствах ИБ в консоли серв 1С. Выполняемые задания можно смотреть обработкой консроль заданий
9 Холодильник
 
10.07.14
12:51
*консоль заданий
10 dft2014
 
10.07.14
12:52
(8) Речь идет о БП3.0 упр.формы.
11 acsent
 
10.07.14
12:53
Пиши в ЖР после каждого шага, увидишь где падает
12 acsent
 
10.07.14
12:54
А кстати на каком диске ты ищещь файлы???
13 dft2014
 
10.07.14
12:55
(11) Это как?
(12) В смысле?
14 acsent
 
10.07.14
12:56
ЗаписьЖурналаРегистрации(<ИмяСобытия>, <Уровень>, <ОбъектМетаданных>, <Данные>, <Комментарий>, <РежимТранзакции>)
15 catena
 
10.07.14
13:01
А может быть всё отрабатывает, просто файлы пишет не туда, где пользователь ищет?
16 dft2014
 
10.07.14
13:43
(15) А куда еще может сохранять, если я явно прописала путь?
17 catena
 
10.07.14
13:56
(16)Ну, КаталогВременныхФайлов он, знаешь ли у каждого свой... И у тебя, и у сервера...
18 dft2014
 
10.07.14
14:03
Вроде прояснилось: зашла на сам сервер 1С и запустила это регл.задание под СВОЕЙ учеткой. В результате оказалось, что файлы сохраняются не в моем каталоге, а в каталоге пользователя 1cserver:

C:\Users\1cserver\AppData\Local\Temp
19 dft2014
 
10.07.14
15:32
Опять проблема в серверной копии базы:
Поменяла путь сохранения на сетевой путь:
АдресВременногоКаталога = "\\fs03\IT\PDF\" + ИмяФайла + ".pdf";

В результате, если запускать это регл.задание локально со своего компа, то выдает ошибку доступа к каталогу:

{ОбщийМодуль.ОбменSapERP.Модуль(493)}: Ошибка при вызове метода контекста (Записать)
ТабДок.Записать(АдресВременногоКаталога,ТипФайлаТабличногоДокумента.PDF);
по причине:
Ошибка доступа к файлу '\\fs03\IT\PDF\МО8.pdf'

Доступ к каталогу у пользователя 1cserver и у меня - полный. Как узнать под какой учеткой запускаются регл.задания? Я думаю, что проблема в этом. Т.к. аналогично все делаю в файловой копии базы - проблем не возникает.
20 Холодильник
 
10.07.14
15:35
не мучайте сервер.
Сохраняйте файл во временное хранилище для передачи его другим пользователям
21 dft2014
 
10.07.14
15:39
(20) Как сохранять во временное хранилище и как потом его передавать юзерам?
22 Холодильник
 
10.07.14
15:42
(21) поместитьФайл()
и
ПолучитьИзВременногоХранилища()
23 dft2014
 
10.07.14
15:48
(22) ПоместитьФайл() не будет работать на сервере, т.к его синтксис:

Доступность: Тонкий клиент, веб-клиент, толстый клиент.
24 dft2014
 
10.07.14
15:48
+(23) Сервера нет в доступности!
25 Холодильник
 
10.07.14
15:55
"Как узнать под какой учеткой запускаются регл.задания?"
что сложного?
ЗаписьЖурналаРегистрации(,,,,,текущийПользователь())
26 Infsams654
 
10.07.14
16:03
(23) не поместитьФайл, а ПоместитьВоВременноеХранилище
27 Холодильник
 
10.07.14
16:31
(26) та же ж. , вид сбоку
ПоместитьФайл() - прекрасно помещает файл во временное хранилище
28 dft2014
 
10.07.14
16:33
(25) Ошибку выдает:
Процедура или функция с указанным именем не определена (текущийПользователь)
ЗаписьЖурналаРегистрации(,,,,,<<?>>текущийПользователь()) (Проверка: Сервер)
29 acsent
 
10.07.14
16:37
От имени пользователя 1с никак не меняется временный каталог
30 acsent
 
10.07.14
16:39
(19) врешь, что полный доступ. И на шару и на нтфс проверял?