|
Работа с Xbase | ☑ | ||
---|---|---|---|---|
0
Seliga
28.05.24
✎
10:41
|
Столкнулся с проблемой. При закрытии файла xbase происходит вылет с ошибкой "ошибка при выполнении запроса post к ресурсу /e1cib/logform:". То же происходит при попытке удалить файл. При очистке файла ошибок нет. Даже если файл очистить и попытаться закрыть - все равно возникает ошибка. Сталкивался ли кто нибудь с подобным?
|
|||
1
Fedor-1971
28.05.24
✎
10:47
|
(0) Код открытия и закрытия покажи
|
|||
2
Seliga
28.05.24
✎
11:13
|
(1) Не понял что имеется ввиду под кодом открытия/закрытия. Если состояние через функцию КодОшибки() то в момент открытия - 0, по закрытию сказать не могу - отладка падает.
|
|||
3
Fedor-1971
28.05.24
✎
11:40
|
(2) Делаешь, примерно, так:
xB = Новый xBase; xB.ОткрытьФайл("c:\test.dbf", "c:\test.cdx"); Если xB.Открыта() Тогда xB.ЗакрытьФайл(); КонецЕсли; Проверь, что закрываешь и открываешь в одном местоположении типа НаКлиенте или НаСервере Обломайс может получиться при открытии НаКлиенте и попытке закрыть НаСервере (или наоборот) |
|||
4
Seliga
28.05.24
✎
11:50
|
Открываю на сервере, закрываю так же на сервере. На момент попытки закрытия Открыта() - Истина
|
|||
5
Fedor-1971
28.05.24
✎
12:07
|
(4) Закрытие оберни в Попытку Исключение и выведи ОписаниеОшибки - будет понятно что не так
Попробуй вот такой вариант (с записью во временный каталог сервера): УдалитьФайлВоВременномКаталоге(ИмяФайла); ФайлВыгрГотПрод = КаталогВременныхФайлов()+"\"+ИмяФайла; Файл = Новый XBase; Файл.Поля.Добавить("DATADOC","D",10,0); Файл.Поля.Добавить("NUMDOC","N",5,0); Файл.Кодировка = КодировкаXBase.OEM; Файл.СоздатьФайл(ФайлВыгрГотПрод); Файл.Добавить(); Файл.DATADOC = Дата(2024,05, 20); Файл.NUMDOC = "1"; Файл.Записать(); Файл.DATADOC = Дата(2024,05, 28); Файл.NUMDOC = "2"; Файл.Записать(); Попытка Файл.ЗакрытьФайл(); Исключение Сообщить("Засада по причине: " + ОписаниеОшибки()); КонецПопытки; и не забудь удалить ФайлВыгрГотПрод |
|||
6
vladmenleo
28.05.24
✎
12:39
|
(4) А еще xBase критичен к имени файла - должен быть в формате 8.3
|
|||
7
Seliga
28.05.24
✎
12:47
|
Собственно закрытие и так в попытке. До исключения не добирается - просто падает с ошибкой "ошибка при выполнении запроса post к ресурсу /e1cib/logform:". Вариант с папкой темп так же не помог. Для сноски - файл не пустой. Читаю уже до этого созданный файл и обрабатываю. При чем заметил закономерность - ошибка вылетает не на каждом файле. Если дело в обьеме - не понимаю логики. Обрабатывается документ верно, вылетает только на закрытии после очистки.
|
|||
8
Fedor-1971
28.05.24
✎
13:01
|
(7) А если просто открыть, прочитать и закрыть (без очистки) - вывалится или нет? Может индекс перестраивается?
Это, как идея, Открытие - Закрытие происходит в одной функции? На всякий случай, попробуй почистить кэши, в т.ч. и на сервере (если не помешает работе других пользователей) |
|||
9
Seliga
28.05.24
✎
13:12
|
Без очистки все равно падает. С Кэшем попробую вариант.
|
|||
10
Garykom
28.05.24
✎
17:53
|
(0) Для начала попробуй этот же код в другой базе
В которой ТиИ точно сделан Ну и что в коде нет превышения ограничений на длину строк формата dbf |
|||
11
MaximSh
28.05.24
✎
21:09
|
(0) а какая версия платформы?
|
|||
12
Seliga
29.05.24
✎
05:15
|
(11) 8.3.24
|
|||
13
Seliga
29.05.24
✎
05:59
|
(8) Кеш тоже не помог
|
|||
14
Seliga
29.05.24
✎
06:08
|
(10) Превышения нет.
|
|||
15
MaximSh
29.05.24
✎
08:05
|
(12) попробуй на другой, лучше 8.3.22. Уже не раз встречал на 8.3.24 такое поведение
|
|||
16
Seliga
29.05.24
✎
09:21
|
(15) Вариант с даунгрейдом платформы точно не получится
|
|||
17
Seliga
29.05.24
✎
09:22
|
Попробовал так же открывать/закрывать на клиенте. Тогда вылетает молча. Без ошибок и прочего.
|
|||
18
Garykom
29.05.24
✎
09:23
|
используй вместо встроенного xbase внешний микросервис
на Golang и https://github.com/Valentin-Kaiser/go-dbase |
|||
19
Fedor-1971
29.05.24
✎
09:40
|
(13) тогда похоже на проблему с платформой.
как вариант - смотрим hex редактором количество строк в файле, открываем DBF смотрелкой и сравниваем. Бывает такое, что в середине файла нарушается количество полей в строке и файл либо не открывается, либо падает в процессе работы с ним (возможно, что тупо недописана последняя строка) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |