Загрузка Dbf-файлов с длиной имени больше 8 символов (1С 7.7)

  • Автор темы Автор темы BBDragon
  • Дата начала Дата начала
vbs, спасибо за подсказку! Буду теперь изучать реализацию Excel.Application :)
 
Итак, мне все-таки удалось решить проблему загрузки файлов DBF с длинными именами, причем без использования Excel.Application!

[codebox]
Перем Выб,long, НовИмяФайла, ДлинноеИмяФайла;
Процедура ВыборФайла()
ФайлЗагрузки = "";
КаталогЗагрузки="";
long=0;
Если ФС.ВыбратьФайл(0, ФайлЗагрузки, КаталогЗагрузки, "Выберите файл",
"Файлы баз данных (*.dbf)|*.dbf", , ) = 1 Тогда
Если СтрДлина(ФайлЗагрузки) > 12 тогда
long=1;
ДлиноеИмяФайла=ФайлЗагрузки;
ЗначИмени = Лев(Строка(ФайлЗагрузки),8); // получаем первые 8 символов из имени
Расш = Прав(Строка(ФайлЗагрузки),3);
НовИмяФайла = ЗначИмени + "." + Расш;
Фс.ПереименоватьФайл(ФайлЗагрузки,НовИмяФайла,1);
Выб = НовИмяФайла;
Иначе
Выб = ФайлЗагрузки;
КонецЕсли;
КонецЕсли;
КонецПроцедуры


Процедура Сформировать()


ИмФайл=СокрЛП(Выб);
Док1 = СоздатьОбъект("Документ.РеестрСчетовВходящийЛПУ");
ДБФ = СоздатьОбъект("XBase");
ДБФ.ОткрытьФайл(КаталогЗагрузки + "\" + Выб);
Док1.Новый();
ДБФ.Первая();
Пока ДБФ.ВКонце() = 0 Цикл
Док1.НоваяСтрока();

и т.д. (обрабатываем документ)
......
ДБФ.ЗакрытьФайл();
Если long=1 Тогда
Фс.ПереименоватьФайл(НовИмяФайла,ФайлЗагрузки,1);
КонецЕсли;
КонецПроцедуры
[/codebox]

Так что моя гипотеза была не такой уж безумной :(

P.S. С помощью Excel.Application также удается делать загрузку, вот только я не понял как узнать количество строк в файле (чтобы правильно организовать цикл)? Хотелось бы сделать вариант и с использованием Экселя :)
 
Вопросик :( ... а Вы уверены, что 8 первых символов файла уникальны? ))
 
P.S. С помощью Excel.Application также удается делать загрузку, вот только я не понял как узнать количество строк в файле (чтобы правильно организовать цикл)? Хотелось бы сделать вариант и с использованием Экселя
Наверняка и это можно узнать, я не заморачиваюсь, просто читаю в цикле, пока НЕ ПустоеЗначение в колонке, которая обязательно должна
быть заполнена
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD