Не выполняется регл.задание
Ребята, помогайте, весь инет перелазила. Создаю отдельную тему. У меня есть модуль с галочками (Сервер, вызов сервера, клиент (обычное), внешнее приложение), обработка, которая забирает данные из екселевских файлов с сервера себе в базу, при этом копирует эти файлы в архивную папку и создает отчеты, сохранив их так же в папку на сервере. По кнопке модуль выполняется, регламентное задание выполнять его отказывается,а точнее запускаю его в консоли и оно просто зависает, возможно что-то делает, но что? ошибок не выпадает, отчеты не создает, ничего никуда не копирует. Создали мне мега-пользователями со всеми правами, под ним запускаю это регламентное задание, сервер развернут на моем компе, т.е. я запускаю регл.задание с сервера под своим мега-админом со всеми правами, в агенте сервера 1с-Предприятие админ прописан, под ним и запущена 1с-ка, но задание висит, без ошибок и ничего не исполняет.
Вот часть кода:
У меня есть подозрения на функции НайтиФайлы и КопироватьФайл и еще правильно ли расставлены слеши в названии каталога? я на самомо деле уже просто не знаю куда копать. Если указать папку у себя на компе, регламентное задание выполняется, т.е. сам код ему подходит, дело в правах? или в чем еще?
Вот часть кода:
Каталог = "\\it-file\--\ФайлыПроверки\";
КаталогАрхив = "\\it-file\--\ФайлыПроверки\Архив\";
Расш = ".xlsx";
//подключаемся к эксел
Excel = Новый COMОбъект("Excel.Application");
НайденныеФайлы = НайтиФайлы(Каталог,"*.xls",);
ТекДата = Формат((ТекущаяДата() - 60*60*24), "ДФ=dd.MM.yyyy"); //т.к. выгрузка будет производиться ночью, то отнимаю день, т.к. данные вчерашние
Для каждого ТекФайл Из НайденныеФайлы Цикл
Попытка
//Excel.WorkBooks.Open(Дир + (ИмяФайла+Строка(х)) + Расш);
Excel.WorkBooks.Open(ТекФайл.ПолноеИмя);
Исключение
Продолжить;
КонецПопытки;
Попытка
//Открываем необходимый лист
Excel.Sheets(1).Select(); // лист 1, по умолчанию
Исключение
//Закрываем Excel
Excel.ActiveWorkbook.Close();
Excel = 0;
Возврат;
КонецПопытки;
//Получим количество строк и колонок.
//В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel
Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1);
Если Версия = "8" тогда
ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count;
ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13);
Иначе
ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row;
ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column;
Конецесли;
//вначале циклом я пробегаю по датам и строкам водозабор и сохраняю в тз
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Водозабор");
ТЗ.Колонки.Добавить("ДатаДо");
Стр = ТЗ.Добавить();
Для НС = 2 по ФайлСтрок Цикл
-------------------------много кода-----------------
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
//закрою лист excell
Попытка
Excel.WorkBooks.Close();
Исключение
Продолжить;
КонецПопытки;
КопироватьФайл(ТекФайл.ПолноеИмя, КаталогАрхив + ТекФайл.ИмяБезРасширения + "_" + ТекДата + ТекФайл.Расширение); //перемещение файла в архивную папку
//печать отчетов для каждого водозабора
Для каждого Строк Из ТЗ Цикл
СуточныеПоказания(Строк.Водозабор, Строк.ДатаДо);
КонецЦикла;
КонецЦикла;
Excel.Application.Quit();
Excel = 0;
ПоказатьУ меня есть подозрения на функции НайтиФайлы и КопироватьФайл и еще правильно ли расставлены слеши в названии каталога? я на самомо деле уже просто не знаю куда копать. Если указать папку у себя на компе, регламентное задание выполняется, т.е. сам код ему подходит, дело в правах? или в чем еще?
По теме из базы знаний
Найденные решения
(26) Что-то в этом роде:
Для каждого ТекФайл Из НайденныеФайлы Цикл
ИмяФайл = ПолучитьИмяВременногоФайла(".xls");
КопироватьФайл(ТекФайл.ПолноеИмя, ИмяФайл);
МассивФайлов.Добавить(ИмяФайл);
КонецЦикла;
Для Каждого ИмяФайл Из МассивФайлов Цикл
...
ПоказатьОстальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
про слеши соврал, с SetRetail перепутал. у меня в похожей задаче кот так фалы хватаются
выполняется на ура
ИмяФайла= Запись.ПутьКПапкеОбмена+"\"+Запись.Префикс+"_"+Формат(Дата,"ДФ=dd.MM.yyyy")+".xlsx";
ПутьКАрхиву=Запись.ПутьКАрхиву;
выполняется на ура
Я перечитала кучу ссылок в инете, дело в том, что через кнопку на сервере все срабатывает,я писала это, регламентное задание срабатывает но в своей локальной папке, как бы это объединить - срабатывает регламентное задание в сетевой папке?:)
(26) Что-то в этом роде:
Для каждого ТекФайл Из НайденныеФайлы Цикл
ИмяФайл = ПолучитьИмяВременногоФайла(".xls");
КопироватьФайл(ТекФайл.ПолноеИмя, ИмяФайл);
МассивФайлов.Добавить(ИмяФайл);
КонецЦикла;
Для Каждого ИмяФайл Из МассивФайлов Цикл
...
Показать
Советую еще раз проверить то о чём уже писали в этой теме.
1. Проверить под КАКИМ юзером запущена служба "Агент сервера 1С"
2. Проверить есть ли у этого юзера ПРАВА на папку "\\it-file\--\ФайлыПроверки\"
Да и уж раз речь зашла о Эксель файлах. Надо убедиться что в этих файлах НЕ ВЫСТАВЛЕНЫ фильтры по колонкам
1. Проверить под КАКИМ юзером запущена служба "Агент сервера 1С"
2. Проверить есть ли у этого юзера ПРАВА на папку "\\it-file\--\ФайлыПроверки\"
Да и уж раз речь зашла о Эксель файлах. Надо убедиться что в этих файлах НЕ ВЫСТАВЛЕНЫ фильтры по колонкам
(27) Виталий, у агента мой пользователь (доменный супер-юзер со всеми правами). Фильтров нет. Нужно ли действительно записывать где-то файл перед открытием, кто-нибудь бы скинул часть кода у кого как отрабатывают такие задания, ведь много же людей делали что-то подобное.