Получить программно сведения из окна "О программе"

1. Grek_Master 18.06.20 20:10 Сейчас в теме
Всю голову сломал - Хочу получить программно информацию из окна "О программе", реквизит "Наименование" - здесь отображается строка из окна запуска 1С, где обычно пользователи пишут название базы данных, компанию к которой она относится
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
5. user856012 13 18.06.20 21:35 Сейчас в теме +0.63 $m
(1)
Хочу получить программно информацию из окна "О программе", реквизит "Наименование" - здесь отображается строка из окна запуска 1С
Поскольку это наименование прописывается не в базе, а в файле ibases.v8i, то оттуда его и надо читать. Можно взять за точку отсчета код из https://forum.infostart.ru/forum9/topic78702/

Примерно так, вживую не проверял:
ИмяСпискаБаз = "C:\Users\USERNAME\AppData\Roaming\1C\1CEStart\ibases.v8i";
СтрокаСоединенияИБ = СтрокаСоединенияИнформационнойБазы();
ТекущееИмяБазы = "";
СписокБаз = Новый ТекстовыйДокумент();
СписокБаз.Прочитать(ИмяСпискаБаз);
ВсегоСтрок = СписокБаз.КоличествоСтрок();
Для НомерСтроки = 1 По ВсегоСтрок Цикл
    ТекущаяСтрока = СписокБаз.ПолучитьСтроку(НомерСтроки);
    Если Лев(ТекущаяСтрока,1) = "[" И Прав(ТекущаяСтрока,1) = "]" Тогда
        ТекущееИмяБазы = Сред(ТекущаяСтрока,2,СтрДлина(ТекущаяСтрока) - 2);
    ИначеЕсли Найти(ТекущаяСтрока, СтрокаСоединенияИБ) > 0 Тогда
        Сообщить("Наименование: " + ТекущееИмяБазы, СтатусСообщения.Информация);
        Прервать;
    КонецЕсли;
КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. uriah 18 18.06.20 20:30 Сейчас в теме
(1) Глобальный контекст (Global context)
ПолучитьНавигационнуюСсылкуИнформационнойБазы (GetInfoBaseURL)
Синтаксис:

ПолучитьНавигационнуюСсылкуИнформационнойБазы()
Возвращаемое значение:

Тип: Строка.
4. Online-Ufa 18.06.20 20:35 Сейчас в теме
(3) Автор же хочет получить наименование базы в списке ИБ, а не адрес
5. user856012 13 18.06.20 21:35 Сейчас в теме +0.63 $m
(1)
Хочу получить программно информацию из окна "О программе", реквизит "Наименование" - здесь отображается строка из окна запуска 1С
Поскольку это наименование прописывается не в базе, а в файле ibases.v8i, то оттуда его и надо читать. Можно взять за точку отсчета код из https://forum.infostart.ru/forum9/topic78702/

Примерно так, вживую не проверял:
ИмяСпискаБаз = "C:\Users\USERNAME\AppData\Roaming\1C\1CEStart\ibases.v8i";
СтрокаСоединенияИБ = СтрокаСоединенияИнформационнойБазы();
ТекущееИмяБазы = "";
СписокБаз = Новый ТекстовыйДокумент();
СписокБаз.Прочитать(ИмяСпискаБаз);
ВсегоСтрок = СписокБаз.КоличествоСтрок();
Для НомерСтроки = 1 По ВсегоСтрок Цикл
    ТекущаяСтрока = СписокБаз.ПолучитьСтроку(НомерСтроки);
    Если Лев(ТекущаяСтрока,1) = "[" И Прав(ТекущаяСтрока,1) = "]" Тогда
        ТекущееИмяБазы = Сред(ТекущаяСтрока,2,СтрДлина(ТекущаяСтрока) - 2);
    ИначеЕсли Найти(ТекущаяСтрока, СтрокаСоединенияИБ) > 0 Тогда
        Сообщить("Наименование: " + ТекущееИмяБазы, СтатусСообщения.Информация);
        Прервать;
    КонецЕсли;
КонецЦикла;
Показать
2. Online-Ufa 18.06.20 20:25 Сейчас в теме
HASP ORGL8 500 тоже надо было закрасить - по прайсу ключ на 500 раб.мест стоит больше 2 млн.
Serega-artem; Xershi; +2 Ответить
6. ab_initio 95 19.06.20 06:09 Сейчас в теме
Ну здесь же всё верно написано, только надо склеить два фрагмента кода.
	WshShell = Новый COMОбъект("WScript.Shell");
	WshSysEnv = WshShell.Environment("Process");
	UserProfile = WshSysEnv.Item("USERPROFILE");
	
	ИмяСпискаБаз = UserProfile+"\AppData\Roaming\1C\1CEStart\ibases.v8i";	
	
	СтрокаСоединенияИБ = СтрокаСоединенияИнформационнойБазы();
	ТекущееИмяБазы = "";
	СписокБаз = Новый ТекстовыйДокумент();
	СписокБаз.Прочитать(ИмяСпискаБаз);
	ВсегоСтрок = СписокБаз.КоличествоСтрок();
	Для НомерСтроки = 1 По ВсегоСтрок Цикл
	    ТекущаяСтрока = СписокБаз.ПолучитьСтроку(НомерСтроки);
	    Если Лев(ТекущаяСтрока,1) = "[" И Прав(ТекущаяСтрока,1) = "]" Тогда
	        ТекущееИмяБазы = Сред(ТекущаяСтрока,2,СтрДлина(ТекущаяСтрока) - 2);
	    ИначеЕсли Найти(ТекущаяСтрока, СтрокаСоединенияИБ) > 0 Тогда
	        Сообщить("Наименование: " + ТекущееИмяБазы, СтатусСообщения.Информация);
	        Прервать;
	    КонецЕсли;
	КонецЦикла;
Показать

На виндах работает, на линуксах не будет.
Прикрепленные файлы:
ВнешняяОбработка1.epf
9. Grek_Master 19.06.20 14:13 Сейчас в теме
(6) Попробую сейчас проверить. Но что то мне подсказывает, что раз в окне "О программе" эта информация уже есть, то думаю можно было бы проще как то добраться...Отпишусь минут через 15
7. platonov.e 159 19.06.20 07:17 Сейчас в теме
Пропишите как параметр запуска имя базы и получайте в базе
8. Grek_Master 19.06.20 14:10 Сейчас в теме
Ну что вы!.... Лень раньше меня родилась))) У меня в строке запуска более 80-ти рабочих баз. Это сколько же надо времени потратить .....
Оставьте свое сообщение

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