При запуске программы пользователь должен выбрать в какую базу ему необходимо зайти. Хорошо когда у пользователя так баз немного, и плохо разработчику, который постоянно работает в 5-6 базах, и при этом успевает удалять копии, тестовые базы, и всякие временные. Чтобы дерево баз не захломлялось, его можно легко почистить этой обработкой — http://infostart.ru/public/75891/
Сама по себе обработка проста, не хватает функции удаления пустых каталогов, которые раньше содержали БД, но это можно доработать. Интересен код обработки, с точки зрения использования системных скриптов:
Процедура ПриОткрытии() КЧ = Новый КвалификаторыЧисла(12,2); ОписаниеТиповЧ = Новый ОписаниеТипов(«Число»,КЧ); ДеревоБаз.Колонки.Добавить(«Name»); ДеревоБаз.Колонки.Добавить(«Connect»); ДеревоБаз.Колонки.Добавить(«ID»); ДеревоБаз.Колонки.Добавить(«OrderInList»,ОписаниеТиповЧ); ДеревоБаз.Колонки.Добавить(«Folder»); ДеревоБаз.Колонки.Добавить(«OrderInTree»,ОписаниеТиповЧ); ДеревоБаз.Колонки.Добавить(«External»); ДеревоБаз.Колонки.Добавить(«Exist»); //0 — база есть, 1 — нет файла базы, каталог не пустой, 2 — нет файла базы, каталог пустой, 3 — нет каталога WshShell=Новый COMОбъект(«wscript.shell»); ИмяОсновногоКаталога = WshShell.SpecialFolders.Item(«AppData»); //ИмяСпискаБаз = ИмяОсновногоКаталога + «1C1Cv81ibases.v8i»; ИмяСпискаБаз = ИмяОсновногоКаталога + «1C1CEStartibases.v8i»; КопироватьФайл(ИмяСпискаБаз,ИмяСпискаБаз+«_bak»); //сохраним предыдущий список от греха подальше. ПрочитатьСписокБаз(); КонецПроцедуры
Дальше как вы можете посмотреть идет разбор дерева. Рекомендую использовать в работе, очень облегчает жизнь.