|
Проблемка с НайтиФайлы() | ☑ | ||
---|---|---|---|---|
0
rikodroo
31.05.13
✎
09:40
|
Привет, подскажите в чем может быть проблема?
Отлаживаю регламентное задание, в котором выполняется след.код: ФайлыАрхива = НайтиФайлы(КаталогДляРаспаковки, "*.xls*"); // 1 строка Для Каждого ФайлИзАрхива Из ФайлыАрхива Цикл // 2 строка //что-то делаю КонецЦикла; При этом, КаталогДляРаспаковки - не пустой, вправа на файлы и каталог полные. Платформа 8.2.16.368 . Собственно проблема в том, что массив ФайлыАрхива иногда почемуто пустой (т.останова ставлю на 2 строке). Причем, в табло ф-я НайтиФайлы(КаталогДляРаспаковки, "*.xls*") - возвращает правильный и заполненный массив. Какбы тип переменной справа присвается переменной слева, а значение не передаётся... Наибольшая странность у меня возникла, когда я поставил т.останова и на первую и на вторую строки. В этом случае, массив ФайлыАрхива заполнился правильно, т.е. значением НайтиФайлы(КаталогДляРаспаковки, "*.xls*"). Таким образом ф-я НайтиФайлы() мне кажется некорректно работающий, либо я что-то делаю не так? Может кто сталкивался с подобным. |
|||
1
ДенисЧ
31.05.13
✎
09:41
|
Клиент-сервер?
Права на доступ к каталогу? |
|||
2
rikodroo
31.05.13
✎
09:42
|
права полные
|
|||
3
vicof
31.05.13
✎
09:42
|
кэш?
|
|||
4
rikodroo
31.05.13
✎
09:42
|
отлаживаю через подключение к фоновому заданию
|
|||
5
1Сергей
31.05.13
✎
09:43
|
(4) "отлаживаю" от слова лажа?
|
|||
6
rikodroo
31.05.13
✎
09:43
|
(3) а причем тут кэш? Значение справа не присваивается значению слева..
|
|||
7
rikodroo
31.05.13
✎
09:44
|
(5) похоже на то ))
|
|||
8
vicof
31.05.13
✎
09:45
|
(6) Иногда помогает
|
|||
9
rikodroo
31.05.13
✎
09:45
|
(1) да, клиент сервер
|
|||
10
Повелитель
31.05.13
✎
09:46
|
С правами проблема.
Ты проверяешь на клиенте, а исполняется на сервер, у пользователя сервера прав нет видимо |
|||
11
rikodroo
31.05.13
✎
09:47
|
(10) прав на что, на присвоение значения переменно? Функция НайтиФайлы(КаталогДляРаспаковки, "*.xls*") - работает ведь верно.
|
|||
12
Mitriy
31.05.13
✎
09:47
|
(10)+ и путь ищет относительно сервера, а там, может быть, и нет ничего...
|
|||
13
ДенисЧ
31.05.13
✎
09:47
|
Права пользователя ОС, под которым работает сервер приложения
|
|||
14
rikodroo
31.05.13
✎
09:47
|
(12) см 11
|
|||
15
rikodroo
31.05.13
✎
09:48
|
(13) полные админские
|
|||
16
rikodroo
31.05.13
✎
09:49
|
Интересно, что ФайлыАрхива инициируется правильным типом.
|
|||
17
Повелитель
31.05.13
✎
09:50
|
Самый простой вариант, зайди под пользователем под которым запущен 1с-сервер и попробуй с файлами поработать
|
|||
18
rikodroo
31.05.13
✎
09:51
|
(17) под сеансовым входом (не фоновое задание) все работает правильно.
|
|||
19
Повелитель
31.05.13
✎
09:53
|
(18) что значит под сеансовым входом?
|
|||
20
rikodroo
31.05.13
✎
09:54
|
(19) это значит я под пользователем зашел в предприятие
|
|||
21
Повелитель
31.05.13
✎
09:56
|
(20) Ну так это разные вещи, твой код выполняется под правами пользователя твоей машины.
А фоновое задание выполняется под пользователем, под которым запущен 1с-сервер, на сервере, и у него скорее всего прав нет. Лезь на сервер и там проверяй |
|||
22
rikodroo
31.05.13
✎
09:57
|
Вопрос, сейчас узнал, что папочка КаталогДляРаспаковки лежит на машине с линём. Может ли подобное возникать из-за этого (там может ченить на системном уровне еще как-то влияет)?
|
|||
23
Повелитель
31.05.13
✎
09:57
|
(22) Сетевые протоколы вроде одни
|
|||
24
rikodroo
31.05.13
✎
09:59
|
(21) нет. Я запускаю на сервере под правами под которыми запущен сервер предприятия. Кроме того, ф-я Функция НайтиФайлы(КаталогДляРаспаковки, "*.xls*") не возвращала бы ничего, если бы прав небыло разве нет?
|
|||
25
bborisko
31.05.13
✎
10:22
|
Путь к каталогу как выглядит? Должен так наверно для сетевого пути \\server\каталог
|
|||
26
rikodroo
31.05.13
✎
10:49
|
||||
27
rikodroo
31.05.13
✎
10:51
|
(25) нормально путь выглядит
|
|||
28
Ковычки
31.05.13
✎
10:53
|
запустите интерактивно от пользователя сервера
|
|||
29
rikodroo
31.05.13
✎
10:55
|
(28) отрабатывает как нужно (без ошибок)
|
|||
30
rikodroo
31.05.13
✎
11:21
|
ну что, нет ни у кого идей?
|
|||
31
ИС-2
naïve
31.05.13
✎
12:21
|
(30) в КаталогДляРаспаковки указан сетевой путь? Т.е //Server1C/, а не C:\?
Попробуйте пойти по пути максимального упрощения т.е задайте путь ручками и т.д выполните просто найтифайлы(), чтобы понять есть ли они там варант в (28) проверяли? |
|||
32
Ковычки
31.05.13
✎
12:22
|
(29) от пользователя под которым запущен сервер
|
|||
33
rikodroo
31.05.13
✎
12:58
|
(31) конечно указан.
(28),(32) попробовал. Нормально работает, ошибка появляется только в регламентном задании. |
|||
34
hhhh
31.05.13
✎
13:48
|
(30) всё-таки проверь этого пользователя UsrvSrvHusrv, под которым сервер 1с запускается. Ведь наверняка не все парпки ему доступны.
|
|||
35
hhhh
31.05.13
✎
13:52
|
(33) ВСё понял, у тебя ошибка не здесь, а выше. Ты наверно копируешь файлы xls в эту папку, а потом не дожидаясь, пока скопируется, быстро фигачишь НАйтиФайлы. А файлов то пока нет. Пятница. Сервер над тобой ухохатывается.
|
|||
36
rikodroo
31.05.13
✎
14:05
|
(35) Очень может быть, что файла еще и нет.
Перед кодом из (0) написал: ТекВремя = ТекущаяДата() + 3; Пока ТекущаяДата() < ТекВремя Цикл КонецЦикла; Типа паузы. Вроде работает. Вопрос тогда такой - а как дождаться 100% выполнения процедуры разархивации более элегантно(без паузы)? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |