Имя: Пароль:
1C
1С v8
Запуск регламентного задания
0 Падаван в среде 1с
 
19.11.13
14:22
Добрый день. Помогите разобраться. Есть регламентное задание, которое вызывает обработку из базы


Обработка = Обработки.МояОбработка.Создать();    
Обработка.Печать();

Процедура в обработке экспортная. В ней прописан запрос,который отбирает документы и потом перебирая выборку получает Объект документа и вызывает метод печать.

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

файл = Новый ТекстовыйДокумент;
файл.УстановитьТекст(ОписаниеОшибки());
Путь = КаталогВременныхФайлов();
файл.Записать(Путь+"ошибка.txt");

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

Присваивания штрих кода :
спр = Справочники.ШтрихкодыДокументов.НайтиПоРеквизиту("Документ",док);
    Если спр.Пустая() тогда
        спрШК = Справочники.ШтрихкодыДокументов.СоздатьЭлемент();
        спрШк.УстановитьНовыйКод();
        СпрШк.Документ = док;
        спрШк.Записать();
    КонецЕсли;
Поиск принтера:

Принтеры = Новый ТаблицаЗначений;
    Принтеры.Колонки.Добавить("ПоУмолчанию");
    Принтеры.Колонки.Добавить("Имя");
    Принтеры.Колонки.Добавить("Состояние");
    Принтеры.Колонки.Добавить("Комментарий");
    Принтеры.Колонки.Добавить("Описание");
    Принтеры.Колонки.Добавить("ИмяПорта");
    Попытка
        ИмяКомпьютера=".";
        ServiceSet=GetCOMObject("winmgmts:{impersonationLevel=impersonate}!\\"+ИмяКомпьютера+"\root\cimv2");
        PrinterSet=ServiceSet.Get("Win32_Printer");
        
        Попытка
            Items=ServiceSet.ExecQuery("Select * from Win32_Printer");
        Исключение
            Сообщить(ОписаниеОшибки());
            Отказ=Истина;
            возврат Принтеры;              
        КонецПопытки;    
    Исключение
        Принтеры.Очистить();
        Возврат Принтеры;
    КонецПопытки;
    Принтеры.Очистить();
    для каждого стр из Items Цикл
        новстр=Принтеры.Добавить();
        новстр.ПоУмолчанию = стр.Default;
        если новстр.ПоУмолчанию Тогда
            ИмяПринтера= стр.Name;
            ПринтерПоУмолчанию=ИмяПринтера;
        КонецЕсли;    
        новстр.Имя = стр.Name;
        //новстр.Состояние=СписокСостояний[стр.PrinterStatus%8];
        новстр.Комментарий=стр.Comment;
        новстр.Описание=стр.Description;
        новстр.ИмяПорта=стр.PortName;
    КонецЦикла;
    Возврат Принтеры;



База работает в клиент-серверном варианте - УТ 10.3, платформа 8.2.19.68
1 portowyi
 
19.11.13
14:24
Есть предположение что код исполняется на сервере, от куда нет доступа к той папке, в которую вы хотите сохранить файл или наоборот.
2 almar
 
19.11.13
14:28
(0) Сервер 1С запущен от имени локального пользователя USR1C82  у которого нет доступа к файловой системе сети. Нужно запускать от доменного пользователя
3 Падаван в среде 1с
 
19.11.13
14:32
(1) Я комментировал все свои логи - все равно не отрабатывает.
Кстати изначально у меня был неверный путь указан(несуществующей папки),вот тогда регламентное задание завершалось с ошибкой, что нет доступа к папке.

(2) Спасибо за наводку, поговорю об этом с нашим администратором, доступ к серверу только у него :)
4 Sammo
 
19.11.13
14:49
См. еще ВыводРазрешить
5 Падаван в среде 1с
 
19.11.13
15:06
(4) У пользователя, по которым запускает Регламентированное задание стоят полные права. ВыводРазрешить - доступен.
6 Sammo
 
19.11.13
15:25
Сорри
Файл.Вывод    = ИспользованиеВывода.Разрешить;
7 Падаван в среде 1с
 
19.11.13
15:35
(6) Увы, не помогло. Запускается и через 2 секунды завершается без ошибок.

Одно могу сказать точно - обработка создается, но перед ее запуском как будто сканируется весь модуль объекта обработки,а потом запускается... Странно. Потому что если оставить некоторые строки,которые в другой функции находятся и не используются, то регламентное задание завершится с ошибкой,ссылаясь на строки эти..

Я просмотрел все используемые методы, у всех есть доступность на Сервере. Печаль прям какая-то.
8 Падаван в среде 1с
 
19.11.13
15:58
Прописал сейчас создание файла в общем модуле(в процедуре, которую вызывает изначально регл.задание). Итог - файлы не формируются. Вообще ничего не понимаю. Если вызывать с клиента процедуру эту - все отрабатывает.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.