|   |   | 
| 
 | Работа с 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 смотрелкой и сравниваем. Бывает такое, что в середине файла нарушается количество полей в строке и файл либо не открывается, либо падает в процессе работы с ним (возможно, что тупо недописана последняя строка) | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |