Имя: Пароль:
1C
1С v8
Кто программно открывал файл со списком баз? В winxp и в win7- разные пути
,
0 loonypy
 
09.10.12
13:12
Как быть, чтобы пользователь не вручную файл искал, а файл автоматически цеплялся? Проверку операционки, что ли, делать?
1 Cube
 
09.10.12
13:13
Общие списки баз использовать не предлагать?
2 Kavar
 
09.10.12
13:14
Попытку/Исключение впендюрь и не надо ничего проверять.
3 Живой Ископаемый
 
09.10.12
13:14
разные, да... и какие же?
4 Живой Ископаемый
 
09.10.12
13:18
в ХП содержит строку типа
С:\Документс энд Сеттингз\ИмяЮзера\Аппликэйшен Дата
а в 7-ке типа
С:\Юзерз\Имя Юзера\АппДата\Роаминг
?
5 HeroShima
 
09.10.12
13:31
Телепатирую: env vars
6 loonypy
 
10.10.12
10:01
Такие варианты:
1. Предложил Kavar. Жестко прописываем в коде две строки: в одной - путь до файла с базами в винХП, в другой - в вин7. Затем пробуем по очереди эти пути в Попытка/Исключение.
2. Так же 2 строки. Но сначала узнаем, какая ОС с помощью COMОбъект("WScript.Shell"), затем через ЕСЛИ выбираем нужную строку.
3. HeroShima, через этот же ком-обект получить строку пути к файлу?

(2) Что это?
7 kvk
 
10.10.12
10:17
Шелл.Namespace("shell:AppData").Self.Path ?
8 Живой Ископаемый
 
10.10.12
10:21
2(6) это специальное словосочетание, которое ломает поисковые механизмы Гугла и Яндекса.
9 pumbaEO
 
10.10.12
10:27
А еще юзерс бывает и не на диске c:
10 loonypy
 
10.10.12
10:36
(6) Вместо 1 2ку поставил - вопрос Cube был, про Общие списки.
(9) ага, печально.
11 5 Элемент
 
10.10.12
10:38
&НаКлиенте
Функция ПоместитьВХранилищеФайлСоСпискомБаз(ВерсияПлатформы)
   
   Если ВерсияПлатформы = "V81" Тогда
       ПутьКБазам = "\1C\1Cv81\ibases.v8i";
   Иначе    
       ПутьКБазам = "\1C\1CEStart\ibases.v8i";
   КонецЕсли;
   
   Попытка
       Скрипт = Новый COMОбъект("WScript.Shell");
       ФайлСписокБаз = Скрипт.ExpandEnvironmentStrings("%appdata%") + ПутьКБазам;
   Исключение
       Сообщить(ОписаниеОшибки());
       Возврат Неопределено;
   КонецПопытки;
   
   ПомещаемыеФайлы = Новый Массив;
   ПомещенныеФайлы = Новый Массив;
   Файл = Новый Файл(ФайлСписокБаз);
   ПомещаемыеФайлы.Добавить(Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя,));
   
   Если ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы,, Ложь, УникальныйИдентификатор) Тогда
       Возврат ПомещенныеФайлы[0].Хранение;
   Иначе
       Возврат Неопределено;
   КонецЕсли;
   
КонецФункции
12 shamashs
 
10.10.12
10:40
у меня файл со списком баз лежит вообще на левом сервере,

CommonInfoBases=\\ServerName\1C\ibases.v8i

в файле 1CESCmn.cfg
13 shamashs
 
10.10.12
10:40
(12) в папке с платформой
14 acsent
 
10.10.12
10:40
%AppData%
15 acsent
 
10.10.12
10:41
кстати в 7 есть алиасы а ля xp
16 pumbaEO
 
10.10.12
10:43
(11) не работает, 8.3 ubuntu 12.04, что я делаю не так ? :)