helpf.pro
Регистрация
 +1 
Распечатать

Формирование списка зарегистрированных информационных баз системы 1Cv8

В отличие от 1Cv7 (где список зарегистрированных информационных баз хранится в системном реестре (Щелкните для просмотра примеров)):

в 1C v 8 :
список зарегистрированных информационных баз хранится в текстовом файле v8ib.lst (кодировка UTF-8)
в каталоге \Application Data\1C\1Cv8 текущего пользователя на локальном компьютере (где запускается программа 1С:Предприятие v 8).
т.е. C:\Documents and Settings\%CurrentUser%\Application Data\1C\1Cv8\v8ib.lst

в 1C v 8.1 :
список зарегистрированных информационных баз хранится в текстовом файле ibases.v8i (кодировка UTF-8)
в каталоге \Application Data\1C\1Cv81 текущего пользователя на локальном компьютере (где запускается программа 1С:Предприятие v 8).
т.е. C:\Documents and Settings\%CurrentUser%\Application Data\1C\1Cv81\ibases.v8i

Если открыть этот файл в NotePad.exe, то видно, что он имеет структуру, схожую со стандартным INI-файлом :
[База Разработки]
Connect=File="F:\1C\1Cv8\DBRaz";
ID=1cd97bfa-4e57-4a23-9ee1-073a0a28e01c
OrderInList=16384
Folder=/
OrderInTree=16384
[Enterprise]
Connect=File="F:\1C\1Cv8\1cv8.db\Enterprise";
ID=647840fa-65e0-44e8-ad40-12476f178b92
OrderInList=20480
Folder=/
OrderInTree=32768

в 1C v 8.2 :
список зарегистрированных информационных баз хранится в текстовом файле ibases.v8i (кодировка UTF-8)
в каталоге \Application Data\1C\1Cv8 текущего пользователя на локальном компьютере (где запускается программа 1С:Предприятие v 8).
т.е. C:\Documents and Settings\%CurrentUser%\Application Data\1C\1CEStart\ibases.v8i

Если открыть этот файл в NotePad.exe, то там:
[1C:Документооборот 8 (демо)]
Connect=File="C:\Documents and Settings\E.S.Migachev\Мои документы\1C\DemoDoc8";
ID=b3b46c21-bd2a-481e-b100-e6cbdcba3e3d
OrderInList=16384
Folder=/
OrderInTree=256
External=0
ClientConnectionSpeed=Normal
App=Auto
WA=1
Version=8.2


Структура хранения информации по каждой информационной базе :

<Наименование информационной базы>
<ID>
<Connect>
<Folder>
<OrderInList>
<OrderInTree>

Где:
Connect - строка соединения с информационной базой,
ID - внутренний идентификатор информационной базы,
OrderInList - порядок в списке при представлении списком
Folder - наименование ветви в дереве информационных баз,
OrderInTree - порядок в ветви при представлении деревом.

В 1С 8.1 еще добавили External - но он всегда равен 0, для чего он пока не известно.

В 1С 8.2 добавлено:
ClientConnectionSpeed=Normal - скорость соединения
App=Auto - тип соединения - толстый, тонкий клиент.
WA=1
Version=8.2

Вот код получения получения списка баз из файла 1С 8.0 8.1 8.2

Код 1C v 8.х
 
Функция ПолучимСписокБаз1СИзФайла(Версия)
	// Функция получения списка баз 1С 8.0 8.1 8.2 E_Migachev
	// Возвращает Таблицу Значений содержащую Название, СтрокаСоединения с базами 1С
	
	// Для начала получим программным путем полный путь к папке Application Data 
	// Способ из https://helpf.pro/faq/view/271.html
	App = Новый COMОбъект("Shell.Application");
	AppData=App.Namespace(26).Self.Path;
	ТЗБаз=Новый ТаблицаЗначений;
	ТЗБаз.Колонки.Добавить("Название",,"Название",25);
	ТЗБаз.Колонки.Добавить("СтрокаСоединения",,"СтрокаСоединения",30);
	Если Версия = "v80" Тогда		
		СписокБаз=AppData+"\1C\1Cv8\v8ib.lst";
	ИначеЕсли Версия = "v81" Тогда
		СписокБаз=AppData+"\1C\1Cv81\ibases.v8i";
	ИначеЕсли Версия = "v82" Тогда
		СписокБаз=AppData+"\1C\1CEStart\ibases.v8i";
	КонецЕсли;
	Сообщить("Файл со списком баз: "+Строка(СписокБаз));
	//Открываем файл в кодировке UTF8
	ФайлБаз= Новый ЧтениеТекста;
	ФайлБаз.Открыть(СписокБаз, КодировкаТекста.UTF8);
	Стр = ФайлБаз.ПрочитатьСтроку();
	Пока НЕ Стр = Неопределено Цикл
		Если СтрДлина(СокрЛП(Стр)) Тогда
			ТекущаяСтрока = СокрЛП(Стр);
			
			Если Лев(ТекущаяСтрока, 1) = "[" Тогда
				НоваяСтрока = ТЗБаз.Добавить();
				НоваяСтрока.Название = ТекущаяСтрока;
			КонецЕсли;
			
			Если Лев(ТекущаяСтрока, 8) = "Connect=" Тогда
				Попытка					
					НоваяСтрока.СтрокаСоединения = Прав(ТекущаяСтрока, СтрДлина(ТекущаяСтрока)-8);
				Исключение
					// Это группа
					НоваяСтрока.СтрокаСоединения = "";
				КонецПопытки;				
			КонецЕсли;     						
		КонецЕсли;
		Стр = ФайлБаз.ПрочитатьСтроку();
	КонецЦикла;
	//Удалим из ТЗ строки с пустой Строкой Соединения, т.к это группы, а они нам не нужны
	ПустыеСтроки = ТЗБаз.НайтиСтроки(Новый Структура("СтрокаСоединения",));
	Для каждого СтрокаТаблицы Из ПустыеСтроки Цикл
		ТЗБаз.Удалить(СтрокаТаблицы)
	КонецЦикла;
	Возврат ТЗБаз;
КонецФункции

Процедура ПолучимИзФайла(Кнопка)
	ТЗБаз = ПолучимСписокБаз1СИзФайла(Кнопка.Имя);
	//Выведем список баз из ТЗ в табличное поле
	Список=ТЗБаз;
	ЭлементыФормы.Список.СоздатьКолонки();
КонецПроцедуры	
   


Пример обработки для 1С 8.1 "Получения списка баз 1С 8.0 8.1 8.2 E_Migachev" Скачивать файлы может только зарегистрированный пользователь!

Обработка для 1С 8.1 "Чтение списка информационных баз 1С 8.1"(формирует дерево баз) Fisca Скачивать файлы может только зарегистрированный пользователь!
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 48971
 +1 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 53
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1C медленно работает по сети с базой на SQL Server 23
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П
1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем
Посмотреть все результаты поиска похожих
Комментарии
E_Migachev
03.02.2011 14:15Комментарий: 2
E_Migachev
staindik, смотря дя чего тебе это нужно! Примеры обработок к конце статьи!
staindik
03.02.2011 13:40Комментарий: 1
staindik
Подскажите, пожалуйста, как можно использовать в 1С приведенный выше код, примеры обработки?
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.
Загрузка... Дождитесь завершения!