Открытие файла

unknown181538

НеГуру
28.12.2008
1 417
0
#1
Код:
ФСписка = "%APPDATA%\1C\1Cv81\ibases.v8i"
Текст = Новый ТекстовыйДокумент; 
Текст.Прочитать(ФСписка);
Пишет "файл не найден"
Сам файл через командную строку открывается.
Что тут не так, что делать, и кто виноват?
 
H

Hryv

Гость
#2
Думаю что Текст.Прочитать(ФСписка) не умеет подставлять значения переменных среды вместо их имен
 
H

Hryv

Гость
#4
У 8-ки может и есть, не знаю

Могу предложить обходной вариант
делаем bat файл с содержимым
set > 1.txt
где вместо 1.txt подставляем путь и имя файла, который потом будем открывать в 1С
Далее из 1С:
1. Запускаем наш bat файл
2. Открываем наш 1.txt

в нем найдем строку типа
APPDATA=C:\...\Application Data

дальше, думаю, понятно

ЗЫ конечно этот вариант силно обходной, но зато точно рабочий
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#6
У 8-ки может и есть, не знаю

Могу предложить обходной вариант
делаем bat файл с содержимым
set > 1.txt
где вместо 1.txt подставляем путь и имя файла, который потом будем открывать в 1С
Далее из 1С:
1. Запускаем наш bat файл
2. Открываем наш 1.txt

в нем найдем строку типа
APPDATA=C:\...\Application Data

дальше, думаю, понятно

ЗЫ конечно этот вариант силно обходной, но зато точно рабочий
В чем я лично сомневаюсь... Как узнаете, что командный файл отработал уже? Нет, конечно, можно пойти по пути 1С - крутить пустой цикл, пока ждем нужного события, но я бы за такое руки отрывал.
 
H

Hryv

Гость
#7
Опять же, не знаю как в 8.х, а в 7.7 при использовании КомандаСистемы() этой проблемы не будет
Кстати батник можно и не делать, а прям запускать КомандаСистемы("set > 1.txt")
 

unknown181538

НеГуру
28.12.2008
1 417
0
#8
Код:
Шелл = Новый COMОбъект("Wscript.Shell");
АппДата = Шелл.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\AppData");
 
H

Hryv

Гость
#11
Проверил - нету

Код:
Процедура Сформировать()
КомандаСистемы("pause");
Сообщить("ОК");
КонецПроцедуры
1С ждет пока окно не закрыто
даже если она "висит" для команды set это не важно, она выполняется долю секунды
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#12
Hryv, есть желание узнать, до каких пор я могу зарезать идеи? Откуда уверенность, что даже после отработки команды системы файл все же был создан? И второе... Не стоит путать команду pause с созданием файла. Винда просто может еще не выставить флага о том, что файл свободен и доступен :(
Для решения этой проблемы надо создавать временный файл, а потом его переименовывать. Вот тогда проблем не будет. Но все равно даже это не решает проблему с успешным завершением батника.
 
H

Hryv

Гость
#13
Проще обработать ситуацию что файл еще не создан
1 раз в миллиард лет юзер увидит сообщение об этом