|
Доступ к файлу не может быть получен [redos] | ☑ | ||
|---|---|---|---|---|
|
0
alf2006x
14.08.26
✎
13:33
|
Всем доброго дня.
Наступил на грабель, но не пойму откуда она прилетает... )) Дело было на сервере [redos] (в модуле объекта внешней обработки): Функция ЗагрузитьКаталог(АдресКФайлу, ИмяФайла, Расширение="") Экспорт ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресКФайлу); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение); ДвоичныеДанные.Записать(ИмяВременногоФайла); ТабДок.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение); Последняя строка упорно выдаёт: Ошибка при выполнении файловой операции '/tmp/v8_7Q7xCZ_1af0d.xls'. Доступ к файлу не может быть получен. На сервере файл появляется. Сразу после выполнения предыдущей строки. Права вроде подходящие: [alf2006x@redos tmp]$ ls -l /tmp/v8_7Q7xCZ_1af0d.xls -rw-r-----. 1 usr1cv8 grp1cv8 78787 авг 14 13:20 /tmp/v8_7Q7xCZ_1af0d.xls Ну где же я опять так карму-то поцарапал ?!... |
|||
|
1
alf2006x
14.08.26
✎
13:39
|
Но самое странное, что у других пользователей такая же конструкция (прада в других местах) - замечательно работает.
|
|||
|
2
alf2006x
14.08.26
✎
13:39
|
И работает она в регламентном задании тоже без проблем.
|
|||
|
3
Garykom
гуру
14.08.26
✎
13:40
|
Проверь регистр расширения ))
|
|||
|
4
alf2006x
14.08.26
✎
13:41
|
Расширение ".xls" Строка
|
|||
|
5
Garykom
гуру
14.08.26
✎
13:44
|
И проверь существование файла между записью и чтением
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ФайлНаДиске = Новый Файл(ИмяВременногоФайла);
Если ФайлНаДиске.Существует()
ТабДок.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
Иначе
// Ошибка?
КонецЕсли; |
|||
|
6
Garykom
гуру
14.08.26
✎
13:43
|
(4) регистр! совпадение! расширения!
который в ИмяВременногоФайла и который реально на диске... |
|||
|
7
alf2006x
14.08.26
✎
13:45
|
(5) Да, файл существует. Я отладчиком попадаю внутрь условия.
|
|||
|
8
Garykom
гуру
14.08.26
✎
13:45
|
В Линуксе (в отличие от Винды) имена файлов рЕгИсТрОзАвИсИмЫе!
|
|||
|
9
Garykom
гуру
14.08.26
✎
13:46
|
(7) Теперь попробуй его скопировать там после записи
И прочитать скопированный |
|||
|
10
alf2006x
14.08.26
✎
13:46
|
(6) вот тут я не понял
|
|||
|
11
alf2006x
14.08.26
✎
13:46
|
(9) пробую
|
|||
|
12
Garykom
гуру
14.08.26
✎
13:48
|
(10) Была ошибка тут на форуме спрашивали
Разница между ПолучитьИмяВременногоФайла("xls") vs ПолучитьИмяВременногоФайла("XLS") Под виндой пофиг, на линуксе бывает прикольно Особенно если потом читать "имяфайла.XLS" или "имяфайла.xls" |
|||
|
13
alf2006x
14.08.26
✎
13:49
|
КопироватьФайл(ИмяВременногоФайла, "/tmp/MyFile.xls");
- скопировался! |
|||
|
14
alf2006x
14.08.26
✎
13:50
|
(12) Понял
|
|||
|
15
alf2006x
14.08.26
✎
13:50
|
(13) есть новые идеи? ))
|
|||
|
16
Garykom
гуру
14.08.26
✎
13:51
|
(15) LibreOffice он открывается?
Под каким пользователем сервер 1С пашет на линуксе? |
|||
|
17
alf2006x
14.08.26
✎
13:52
|
ТабДок.Прочитать("/tmp/MyFile.xls", СпособЧтенияЗначенийТабличногоДокумента.Значение);
- Ошибка при выполнении файловой операции '/tmp/MyFile.xls'. Доступ к файлу не может быть получен. Дайте скорее какую-нибудь эмодзю ... |
|||
|
18
arsik
гуру
14.08.26
✎
13:54
|
(15) Делай через ДвоичныеДанные.НачатьЗапись()
Сорян. У тебя серверный контекст оказывается. |
|||
|
19
alf2006x
14.08.26
✎
13:53
|
(16) "LibreOffice он открывается?" - а как это проверить?
|
|||
|
20
Garykom
гуру
14.08.26
✎
13:55
|
(17) а ТабДок.Прочитать там на сервере под линукс с заведомо хорошим файликом экселя, с правами для всех и чтения и записи точно читает?
Можно нечто недоустановлено для платформы 1С |
|||
|
21
Garykom
гуру
14.08.26
✎
13:55
|
(19) Поставь либре на линукс и открой им ))
|
|||
|
22
alf2006x
14.08.26
✎
13:56
|
(16) "Под каким пользователем сервер 1С пашет на линуксе?"
Наверное под usr1cv8 Не знаю как убедиться. |
|||
|
23
alf2006x
14.08.26
✎
13:57
|
(20) Регламент работает на ура. Читает только в путь...
У других пользователей эта конструкция работает без проблем... Вот я и не понимаю чем я то провинился, блин... |
|||
|
24
arsik
гуру
14.08.26
✎
13:57
|
(22) Проверь файл mxl. Его нормально должно прочитать. У тебя именно екселевский файл не может прочитать
|
|||
|
25
Garykom
гуру
14.08.26
✎
13:57
|
Вариант синтаксиса: Из потока
Синтаксис: Прочитать(<Поток>, <СпособЧтенияЗначений>, <ТипФайлаТаблицы>) |
|||
|
26
alf2006x
14.08.26
✎
13:58
|
(21) Это ж прод. Чё-то не хочется ставить туда "лишнее"
|
|||
|
27
alf2006x
14.08.26
✎
13:58
|
(24) это как?
|
|||
|
28
arsik
гуру
14.08.26
✎
13:59
|
(25)
При чтении из потока допускается использование только следующих форматов: MXL, MXL7, ODS. |
|||
|
29
Garykom
гуру
14.08.26
✎
14:07
|
(28) Ага и это намекает что офисные файлы оно читает через встроенные либы libre (или нечто вроде)
|
|||
|
30
alf2006x
14.08.26
✎
13:59
|
Ааа,.. это наверное ёксель кривой. Ща попробую пересоздам его.
|
|||
|
31
arsik
гуру
14.08.26
✎
14:00
|
(27) Ну передай в функцию mxl, сохрани как mxl и прочитай как mxl
|
|||
|
32
alf2006x
14.08.26
✎
14:01
|
пробую
|
|||
|
33
alf2006x
14.08.26
✎
14:05
|
Действительный формат открываемого файла (1128.xls) отличается от указываемого его расширением имени файла. Перед открытием данного файла убедитесь, что он не поврежден и получен из надежного источника. Открыть этот файл сейчас?
Кажется дело раскрыто ) |
|||
|
34
arsik
гуру
14.08.26
✎
14:06
|
Попробуй использовать XLSX. XLS слишком непредсказуем
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |