Имя: Пароль:
1C
1С v8
Выполнение внешней обработки в фоновом режиме
0 Wefast
 
20.01.17
09:43
Есть у меня обработка которая обрабатывает внешние файлы и формирует табличный документ, который должен сохраняться на диске.

Делаю так:

Функция СведенияОВнешнейОбработке() Экспорт

    КомандыОбработки=Новый ТаблицаЗначений;
    КомандыОбработки.Колонки.Добавить("Использование");
    КомандыОбработки.Колонки.Добавить("Идентификатор");
    КомандыОбработки.Колонки.Добавить("Представление");
    КомандыОбработки.Колонки.Добавить("Модификатор");
    КомандыОбработки.Колонки.Добавить("ПоказыватьОповещение");
    
    НоваяКоманда = КомандыОбработки.Добавить();
    НоваяКоманда.Использование="ВызовСерверногоМетода";
    НоваяКоманда.Идентификатор=Метаданные().Имя;
    НоваяКоманда.Представление=Метаданные().Синоним;
    НоваяКоманда.Модификатор="";
    НоваяКоманда.ПоказыватьОповещение=ЛОЖЬ;
    
    ПараметрыРегистрации=новый Структура();
    ПараметрыРегистрации.Вставить("БезопасныйРежим",Ложь);
    ПараметрыРегистрации.Вставить("Вид","ДополнительнаяОбработка");
    ПараметрыРегистрации.Вставить("Наименование",Метаданные().Синоним);
    ПараметрыРегистрации.Вставить("Версия","1.0");
    ПараметрыРегистрации.Вставить("Информация",Метаданные().Комментарий);
    ПараметрыРегистрации.Вставить("Команды",КомандыОбработки);
    
    Возврат ПараметрыРегистрации;
КонецФункции

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) ЭКСПОРТ
    
    КонецПериода = ТекущаяДата();
    НачалоПериода = ДобавитьМесяц(ТЕкущаяДата(),-1);
    НеИспОтбор=ЛОЖЬ;
    //НеИспОтборПриИзменении("");
    //ПриОткрытииНаСервере();
    

    Аптеки.Очистить();
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "";    
    
    Выборка = РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        
    КонецЦикла;
    Аптеки.Сортировать("Организация,Склад");    
    
    
    Орг = "";
    
    КолВоДней = ((КонецПериода - НачалоПериода)/(60*60*24))+1;
        
    ТабДок = новый ТабличныйДокумент;
    Макет = ПолучитьМакет("Макет");
    
    
    //ВЫводим шапку
    ОбластьОрг = Макет.ПолучитьОбласть("ШапкаОрг|Шапка");         
    ОбластьОрг.Область("R1C1:R1C1").ЦветФона = Новый Цвет(204, 198, 173);
    ОбластьОрг.Параметры.Организация = "";
    ТабДок.Вывести(ОбластьОрг);    
    
    // Выводим колонки шапки
    
    
    ТабДок.Записать("C:\Отчеты"+"\logon"+Формат(ТекущаяДата(),"ДФ=yyyyMMdd")+".xls", ТипФайлаТабличногоДокумента.XLS);
    Фа = Новый ТекстовыйДокумент;
    Фа.ДобавитьСтроку("ывалвдал");
    Фа.Записать("C:\Отчеты"+"\logon.txt");
    
    
    Сообщить("32323");
КонецПроцедуры



В общем все это когда находится в модуле формы и вызывается по кнопке работает. Тут же я все впихнул в модуль объекта чтобы по расписанию все выполнялось. И что то никакие файлы не создаются. Хотя в регламентных заданиях написано что все прошло успешно. Ничего не сообщается, но тут я и не уверен должно ли.
1 piter3
 
20.01.17
09:44
C:\Отчеты"+"\logon.txt" на сервере??????
2 shuhard
 
20.01.17
09:44
(0)[C:\Отчеты"+"\logon.txt"]
на сервере есть такая папка и права на неё есть у нужной учетки ?
3 Wefast
 
20.01.17
09:46
(2) (1) ну с использованием формы у обработки все это работает. По этим же путям
4 shuhard
 
20.01.17
09:49
(3) ну и славно, топик закрыт
5 piter3
 
20.01.17
09:52
(3) Не тупи.Клиент и сервер!
6 Wefast
 
20.01.17
09:54
(5) Путь этот есть. С формой запись в файл происходит из серверной функции.
7 Wefast
 
20.01.17
09:54
(4) нет
8 piter3
 
20.01.17
09:58
А ты в курсе,что писать будет в папку от пользователя,который запускает службы сервера 1с.Короче читай доки или поиском
9 Wefast
 
20.01.17
10:02
(8) я не очень понимаю и это пригодится. Но сейчас на машине на которой я все делаю 1 пользователь. Могу я каким то образом проверить по какой причине файл не создается?
Как мне сообщить себе что то. Через попытка исключение
10 h-sp
 
20.01.17
10:06
(9) пиши в журнал регистрации
11 piter3
 
20.01.17
10:07
(9) ЖР,письмо
12 Wefast
 
20.01.17
10:37
(10) (11) да через журнал определил что спотыкался на проверке существования каталога

Каталог.Существует()

Убрал и файл стал записываться.