|
Запись табличного документа в файл. Сергиус, sxfoxi, Garykom, Pahomich, ДемьянТ, vicof, rozer76, Timon1405, Кирпич, lubitelxml, АнализДанных, Fedor-1971, Fish, okmail, arsik
| ☑ | ||
|---|---|---|---|---|
|
0
Shalun
naïve
27.03.26
✎
14:36
|
Всем привет!
Спецы! Кто может подсказать? Есть обработка, с таким кодом: Попытка ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.XLS); Сообщить("Записан новый файл в " + ПутьКФайлу); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Раньше работало все норм, файл записывался, но вот сегодня чет перестал записывать. В Исключение не уходит, вроде как файл записывает без ошибок, но файла нет. :-( Папку с указанным путем к файлу программа открывает, но она пустая. Т.е. папки не попутал. Доступ к папке разумеется есть в том числе и у USR1CV8 (клиент-серверная база). Кто может подсказать, что могло случиться, в каком направлении копать? |
|||
|
1
spiller26
27.03.26
✎
14:58
|
(0) Управляемые формы?
|
|||
|
2
Shalun
naïve
27.03.26
✎
15:04
|
(1) да, управляемые. А какое это имеет значение, если запись идет из модуля объекта?
|
|||
|
3
Garykom
гуру
27.03.26
✎
15:09
|
(0) Копать в сторону логов:
ПутьКФайлу Новый СистемнаяИнформация() КаталогВременныхФайлов() ИмяКомпьютера() и т.д. Причем прямо там же где ТабДок.Записать() вызывается |
|||
|
4
Garykom
гуру
27.03.26
✎
15:14
|
100% глупая ошибка в имени файла
Ну там разделитель каталога забыл или еще что |
|||
|
5
Кирпич
27.03.26
✎
15:12
|
пишешь на сервере, а ждешь файл на клиенте. или наоборот
|
|||
|
6
Garykom
гуру
27.03.26
✎
15:16
|
(5) это надо быть сильно глупым и совсем не понимать клиент-сервер
у меня было что вместо Каталог+"\"+ИмяФайла умудрялся писать в Каталог+ИмяФайла В итоге ждешь в шаре Каталог а файлик лежит уровнем выше с именем другим |
|||
|
7
Кирпич
27.03.26
✎
15:24
|
(6) ну кто то не понимает про слеши, а кто то клиент сервер не понимает. эт нормально.
просто писано всё было на локальной базе, скорее всего. а там и сервер и клиент - один хрен. но настал момент запуска на сервере... |
|||
|
8
Shalun
naïve
27.03.26
✎
15:34
|
(6) СПАСИБО! Так и вышло, файл лежит уровнем выше с другим именем, забыли поставить "\". :-)))) Пипец, позорище.... :-))))))))))))
|
|||
|
9
Garykom
гуру
27.03.26
✎
15:35
|
(7) клиент-сервер это архитектурная ошибка (не знать что код выполняется на другом компе)
а кривой ПутьКФайлу это локальная, любой может скосячить можно запросить темп каталог у системы или взять его с настроек и не убедиться что там есть слеш в конце (прямой или обратный в зависимости от системы) добавить имя файла и удивляться |
|||
|
10
PLUT
гуру
27.03.26
✎
15:40
|
(0) подсказываем....
1) например, удалить папку предполагаемого назначения... по идее, при записи (ТабДок.Записать(...)) по указанному пути должна воскреснуть папка (Каталог) и в ней должен появиться файл. если папка не воскресла и не свалилась попытка в исключение, значит папка воскресла в другом месте (на сервере, например) 2) добавить магическое заклинание в Попытку и после Сообщить(....) ЗапуститьПриложение(ПутьКФайлу); |
|||
|
11
Кирпич
27.03.26
✎
15:42
|
(9) человек не знает как в отладчике посмотреть значение переменной. может он и про клиент-сервер не знает
|
|||
|
12
lubitelxml
27.03.26
✎
15:46
|
(8) интересно тогда а как раньше все норм было? Без слеша записывалось в нужное место...
|
|||
|
13
Garykom
гуру
27.03.26
✎
15:55
|
(12) например в настройках каталог был со слешем
|
|||
|
14
Shalun
naïve
27.03.26
✎
15:55
|
(12) Дело в том, что ПутьКФайлу это переменная, в которой хранится сам адрес. Этот адрес задается вручную в форме и сохраняет последнее значение. Поскольку редко этот адрес меняем, я да же не думал об этом. Но кто-то видимо поменял...
Надо как то продумать другой алгоритм, с защитой от таких глупых ошибок. |
|||
|
15
Fedor-1971
27.03.26
✎
16:12
|
(14) Голубой наив предполагать, что пользователи не накосячат
Просто проверяй последний символ, там, где должен быть путь и будет тебе счастье |
|||
|
16
lubitelxml
27.03.26
✎
16:39
|
(14) "Этот адрес задается вручную в форме и сохраняет последнее значение" - создай справочник настроек (ну или константу) и туда сохрани это значение, и от туда уже получай.
|
|||
|
17
Fedor-1971
27.03.26
✎
16:42
|
(16) Ни что не мешает накосячить и там, проверка последнего символа пути рулит в любом случае
|
|||
|
18
lubitelxml
27.03.26
✎
16:44
|
(17) +100500
|
|||
|
19
Shalun
naïve
27.03.26
✎
16:45
|
(17) Кстати, хорошая идея! Нужно будет сделать проверку последнего символа в пути к файлу!
|
|||
|
20
lubitelxml
27.03.26
✎
16:51
|
(19) а еще проверь - существует ли каталог по указанному пути
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |