Имя: Пароль:
1C
1C 7.7
v7: Как в реестре?
0 Бертыш
 
19.02.13
14:31
В реестре есть папочки содержащие перечень ключей типа "HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles" , а есть папочки содержащие перечень других папочек. Как их повыбирать. Не дока я в виндовых ухищирениях для юзанья реестра.
1 expertus
 
19.02.13
14:33
повыбирать - для чего?
2 Mikeware
 
19.02.13
14:34
3 dk
 
19.02.13
14:34
погуглить работа с реестром на скрипт кодинг
4 DJ Anthon
 
19.02.13
14:34
можно и без компонент
5 dk
 
19.02.13
14:36
Рекурсивный обход раздела и чтение значений
http://www.script-coding.com/WMI_StdRegProv.html
6 Бертыш
 
19.02.13
14:53
Спасибо большое
(1) Для чтения. Родилась идея ещё одной обработки для "Малого набора разработчика" под 7.7
7 Бертыш
 
19.02.13
17:08
C "Software\1C\1Cv7\7.7\Titles" Все хорошо пример работает, а вот при попытки отойти в чуть в сторону и скормить ей другую папку
Ошибка выполнения Microsoft VBScript: Несоответствие типа: 'LBound'

Собственно код брал из примера
Процедура Сформировать(Ключ="Software\1C\1Cv7\7.7\Titles")
   
   ТЗ.Очистить();
   ТЗ.НоваяКолонка("Название");
   ТЗ.НоваяКолонка("Путь");
   ТЗ.НоваяКолонка("Флаг","Число");
   
   Попытка
       ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl");
       ScrptCtrl.Language="vbscript";
       ScrptCtrl.AddCode("
       |Function Get1CV77Titles()
       |    const HKEY_CURRENT_USER = &H80000001
       |    Set oReg=GetObject(""winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv"")
       |    strKeyPath = """+Ключ+"""
       |    oReg.EnumValues HKEY_CURRENT_USER, strKeyPath, arrValues
       |    strInfo=vbNullString
       |    For i = LBound(arrValues) To UBound(arrValues)
       |        call oReg.GetStringValue(HKEY_CURRENT_USER,strKeyPath,arrValues(i),Value)
       |        strInfo=strInfo & arrValues(i) & vbTab & Value & vbCrLf
       |    Next
       |    Get1CV77Titles = strInfo
       |End Function
       |");
       Текст=СокрЛП(ScrptCtrl.Run("Get1CV77Titles"));
   Исключение
       Сообщить(ОписаниеОшибки());
       Форма.Назад.Доступность(?(Ключ="Software\1C\1Cv7\7.7\Titles",0,1));
       Возврат;
   КонецПопытки;
   
   Для ы=1 по СтрКоличествоСтрок(Текст) Цикл
       СтрБазы=СтрПолучитьСтроку(Текст,ы);
       Разд=Найти(СтрБазы,СимволТабуляции);
       Путь=Лев(СтрБазы,Разд-1);
       Название=Прав(СтрБазы,СтрДлина(СтрБазы)-Разд);
       ТЗ.НоваяСтрока();
       ТЗ.Название=Название;
       ТЗ.Путь=Путь;
       ТЗ.Флаг=ПустоеЗначение(Парам);
   КонецЦикла;
   ТЗ.Сортировать("Название");
   
   Форма.Назад.Доступность(?(Ключ="Software\1C\1Cv7\7.7\Titles",0,1));
   
КонецПроцедуры

При ключе по умолчанию все хорошо, а вот другую папку даешь в которой тоже значения выглядят в Regedit как Reg_SZ, то указанная ошибка
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn