B
BBDragon
В программе необходимо загружать DBF-файлы с длиной имени больше 8 символов. Если длина <=8 символам - все нормально, если же больше - программа вылетает с ошибками:
ДБФ.Первая(); : Перед выполнением операции нужно открыть базу!
Пока ДБФ.ВКонце() = 0 Цикл : Перед выполнением операции нужно открыть базу!
При этом я принудительно обрезаю имя файла до первых 8 символов - но все равно не помогает! Никак не могу понять свою ошибку(
ДБФ.Первая(); : Перед выполнением операции нужно открыть базу!
Пока ДБФ.ВКонце() = 0 Цикл : Перед выполнением операции нужно открыть базу!
При этом я принудительно обрезаю имя файла до первых 8 символов - но все равно не помогает! Никак не могу понять свою ошибку(
Код:
Процедура ВыборФайла()
КаталогЗагрузки = "";
ФайлЗагрузки = "";
Если ФС.ВыбратьФайл(1, ФайлЗагрузки, КаталогЗагрузки, "Выберите файл", "*.dbf|*.dbf", , ) = 1 Тогда
ФайлЗагрузки = КаталогЗагрузки + ФайлЗагрузки;
КонецЕсли;
КонецПроцедуры
Процедура ПриВыбореИмениФайла()
Поз=Найти(ФайлЗагрузки,".");
Если (Поз=0) Или (Поз>8) Тогда
ФайлЗагрузки=СокрП(Лев(СокрЛ(ФайлЗагрузки),12))+".DBF";
Иначе
ФайлЗагрузки=СокрЛП(Лев(ФайлЗагрузки,Поз)+"DBF");
КонецЕсли;
КонецПроцедуры
Процедура Сформировать()
ИмФайл=СокрЛП(Лев(СокрЛ(ФайлЗагрузки),8))+".DBF";
Док1 = СоздатьОбъект("Документ.РеестрСчетовВходящий");
ДБФ = СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл(ИмФайл,,1);
Док1.Новый();
ДБФ.Первая(); // первая ошибка
Пока ДБФ.ВКонце() = 0 Цикл //вторая ошибка
Док1.НоваяСтрока();