Как получить внутренний идентификатор текущей базы 1С

1. fggf 29.01.13 14:59 Сейчас в теме
Как получить внутренний идентификатор текущей базы 1С?
user1427135; vakor; Trakt0risT; +3 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. VBod 39 29.01.13 15:10 Сейчас в теме
(1) fggf, Можно вот такой обработкой:
ИмяСпискаБаз = "C:\Users\USERNAME\AppData\Roaming\1C\1CEStart\ibases.v8i";
СтрокаСоединенияИБ = СтрокаСоединенияИнформационнойБазы();
СписокБаз = Новый ТекстовыйДокумент();
СписокБаз.Прочитать(ИмяСпискаБаз);
ВсегоСтрок = СписокБаз.КоличествоСтрок();
Для НомерСтроки = 1 По ВсегоСтрок Цикл
	ТекущаяСтрока = СписокБаз.ПолучитьСтроку(НомерСтроки);
	Если Найти(ТекущаяСтрока, СтрокаСоединенияИБ) > 0 Тогда
		СтрокаID = СписокБаз.ПолучитьСтроку(НомерСтроки + 1);
		ID = Сред(СтрокаID, 4);
		Сообщить("ID текущей базы: " + ID, СтатусСообщения.Информация);
		Прервать;
	КонецЕсли;
КонецЦикла;
Показать

Или самому найти в файле C:\Users\USERNAME\AppData\Roaming\1C\1CEStart\ibases.v8i
3. Kom-off 29.01.13 15:30 Сейчас в теме
(2) К сожалению, это не идентификатор базы, это идентификатор подключения к базе. Попробуйте удалить базу в списке баз и добавить. Будет новый идентификатор. А в (1) скорее всего, нужно другое.
KhromovA; it-volna.com; DmitrySinichnikov; +3 Ответить
5. fggf 30.01.13 10:15 Сейчас в теме
(2)Если Найти(ТекущаяСтрока,СтрокаСоединенияИБ)>1 почему >1, больше 0.
6. VBod 39 30.01.13 10:37 Сейчас в теме
(5) fggf, Хотя в данном случае работает и с "больше 1", Вы совершенно правы, правильнее будет "больше 0". В посте выше исправил.
7. fggf 30.01.13 10:57 Сейчас в теме
(6)У меня еще такая проблема возникла, связана она с адресом по которому находится файл "ibases.v8i".
Например, "C:\Users\UserName\AppData\Roaming\1C\1CEStart\ibases.v8i". Имя пользователя тут может быть любым,
а использование %userprofile%\appdata\Roaming... приводит к тому, что программа ругается на то что "каталог не найден".
И еще есть момент. Обработка не только будет применять на вин 7, но и на вин хп, а там путь отличается.
8. VBod 39 30.01.13 15:36 Сейчас в теме
(7) fggf, Для получение переменной среды Windows, например той же %USERPROFILE%, в 1С можно использовать следующий метод:
WshShell = Новый COMОбъект("WScript.Shell");
WshSysEnv = WshShell.Environment("Process");
UserProfile = WshSysEnv.Item("USERPROFILE");
4. andrewks 1370 29.01.13 16:56 Сейчас в теме
(1) fggf, а что Вы с ним планируете делать? и вообще, неплохо было бы дать более развёрнутое описание проблемы
9. v3rter 14.03.16 18:01 Сейчас в теме
10. Serg2000mr 319 21.03.24 15:36 Сейчас в теме
РабочийКаталог = РабочийКаталогДанныхПользователя();
РазделительКаталогов = "\";
Путь = "";
Массив = СтрРазделить(РабочийКаталог, РазделительКаталогов, Ложь);
ИдБазы = "";

Для каждого Эл Из Массив Цикл
	Если СтроковыеФункцииКлиентСервер.ЭтоУникальныйИдентификатор(Эл) Тогда
		ИдБазы = Эл;
		Прервать;
	КонецЕсли;
КонецЦикла;
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот