|
|
Запись табличного документа в файл.
vicof, rozer76, Timon1405, Кирпич, lubitelxml, АнализДанных, Fedor-1971, Fish, okmail, arsik, Garykom, PLUT, nick86, Hans, A_G, Мультук, Chameleon1980, privetik, Shalun, Builder, Бычье сердце, ptiz, spiller26, torgm, takefive, trooba, Толич, phabeZ, vladko, Галахад, X Leshiy, Crusher, comp2006, JohnGilbert, maxab72, abfm, Климов Сергей, MWWRuza, alexxx961503, trk415e76, Tatitutu, paramedic, toypaul, H A D G E H O G s, Vstur, maxar, reg0303, alexis_nov, Шаграм, trad, Fragster, vis, DeeK, Silgis, RVN, zenik
| ☑ |
|
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) а еще проверь - существует ли каталог по указанному пути
|
|