Добрый день.
Возможно, информация не нова, но будет полезна.
Появилась необходимость читать список баз данных из файла ibases.v8i.
Решил реализовать с помощью парсинга текстового документа.
Поиск файла идет из каталога пользователя с последующим добавлением и заполнением строки таблицы формы обработки.
Список баз таким образом будет получен пользовательский, у каждого свой, который отображается при запуске 1С.
Если есть иные варианты, пишите в комментарии, обсуждайте, критика приветствуется.
Если кто-то может дать информацию, как можно к списку баз, подтянуть и откуда подтянуть, пользователей базы для заполнения списка выбора в строке таблицы, пишите.
&НаКлиенте
Процедура ПолучитьСписокБазПользователя(Команда)
ВременныйКаталог = КаталогВременныхФайлов();
ИмяФайла = "ibases.v8i";
ВременныйКаталог = СтрЗаменить(ВременныйКаталог, "\Local\Temp\", "\Roaming\1C\1CEStart\");
ФайлЗапуска1С = Новый Файл(ВременныйКаталог + ИмяФайла);
Если ФайлЗапуска1С.Существует() Тогда
ТекстовыйДокИзФайла = Новый ТекстовыйДокумент;
ТекстовыйДокИзФайла.Прочитать(ФайлЗапуска1С.ПолноеИмя);
//Текст = ТекстовыйДокИзФайла.ПолучитьТекст();
СлБаза = Ложь;
Для НомерСтроки = 1 По ТекстовыйДокИзФайла.КоличествоСтрок() Цикл
СтрокаТекста = ТекстовыйДокИзФайла.ПолучитьСтроку(НомерСтроки);
Если Лев(СтрокаТекста, 1) = "[" Тогда //Это имя в списке
СтруктураБазы = Новый Структура;
СтруктураБазы.Вставить("ИмяБазы", Сред(СтрокаТекста, 2, СтрДлина(СтрокаТекста) - 2));
ИначеЕсли СтрЧислоВхождений(СтрокаТекста, "Connect=File=") > 0 Тогда
Путь = СтрЗаменить(СтрокаТекста, "Connect=File=", "");
Путь = СтрЗаменить(Путь, ";", "");
Путь = СтрЗаменить(Путь, """", "");
СтруктураБазы.Вставить("ПутьКБазе", Путь);
//Проверяем добавляемую строку
Если СписокБазДанных.НайтиСтроки(Новый Структура("ИмяБазы", СтруктураБазы.ИмяБазы)).Количество() = 0 Тогда
СтрокаБазы = СписокБазДанных.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаБазы, СтруктураБазы);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры