• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Загрузка 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