Как узнать путь к базе 1С
У информационной базы 1С есть «имя» и «путь».
На изображении ниже «1» — это «имя базы», «2» — это «путь к базе».

Имя информационной базы
Может быть абсолютно любым, оно может совершенно не отражать назначение базы.
Путь к базе
Однозначно определяет место расположения информационной базы 1С.
Как узнать путь к информационной базе 1С
Одиночным щелчком выделите вашу базу 1С в списке баз, внизу окна со списком баз 1С появится «путь к базе».
Как получить имя базы 1с программно

Приложение 
Приложение 

Приложение 
Приложение 


Приложение 

Как получить имя базы 1с программно
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
- Как запустить внешнюю программу и дождаться окончания её выполнения
- Как запустить внешнюю программу без ожидания окончания её выполнения
- Как открыть сайт в браузере по умолчанию
- Как открыть сайт в Internet Explorer
- Как открыть файл word или excel
- Как открыть конкретную папку в проводнике
- Как выделить нужный файл в проводнике
- Как запустить приложение с параметрами
- Как выполнить команду операционной системы из приложения
- Как получить имя компьютера
- Как получить каталог исполняемых файлов
- Как получить каталог для временных файлов
- Как получить стандартный каталог документов
- Как получить информацию об экранах (dpi, разрешение) клиента
- Как получить рабочий каталог данных пользователя
- Как узнать текущий язык, используемый в приложении
- Как получить список пользователей операционной системы
- Скачать и выполнить эти примеры на компьютере
Работа с операционной системой в языке 1С 8.3, 8.2 (в примерах)
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Получение версии конфигурации 1с напрямую из SQL
По долгу службы наша контора обслуживает несколько организаций, которые для управленческого и бухгалтерского учета используют 1с.
1с, как известно, постоянно выпускает обновления для своих конфигураций.
Соответственно на обновление хотя бы 5 баз уходит приличное количество времени.
Рассказ о том, как добиться полной (кроме скачивания обновлений) автоматизации процесса средствами MSSQL далее.
Автоматизировать процесс начнем с «конца»
- В 1с обновление возможно только с определенной версии на определенную. Это связано с тем, что файлы обновления поставляются не в виде полного «слепка» конфигурации. А в виде изменений от эталонной версии.
- Так же в самом коде 1с есть предопределенные обработки, которые запускаются при переходе с одной версии на другую.
Значит нам надо получить текущую версию 1с.
Есть конечно вариант использования 1с-COMConnector, который не менее 2 секунд устанавливает соединение, «Кушает» лишнюю лицензию, память и пьет мой кофе.
Я пошел по другому пути. В версиях 1с >8.0 нет каталога базы данных, следовательно всё хранит в себе база данных MSSQL.
В таблицах БД есть таблица _config, а в ней строка с FileName=root. Смотрим содержимое (Binary Data):
<2,e0666db2-45d6-49b4-a200-061c6ba7d569>
Содержимое хранится в сжатом виде. Ниже будет пример его распаковки
Методом научного тыка находим этой же таблице есть запись с FileName=e0666db2-45d6-49b4-a200-061c6ba7d569 (тот же идетификатор):
<2,
<1e4190e9-76c2-456e-a607-4d817110ffd9>,6,
<9cd510cd-abfc-11d4-9434-004095e12fc7,
<1,
<36,
<0,
<0,
<0,3,6b021b70-482d-4baf-b590-b86b68d4730e>,»ЗарплатаИУправлениеПерсоналом»,
<1,"ru","Зарплата и Управление Персоналом, редакция 2.5">,»»>
>,»»,1,
<1,"ru","Зарплата и Управление Персоналом, редакция 2.5">,
<1,"ru","Зарплата и Управление Персоналом, редакция 2.5">,
<1,"ru","Copyright (С) ООО ""1C"", 2007-2011. Все права защищены">,
<1,"ru","http://www.1c.ru">,
<1,"ru","http://v8.1c.ru/hrm/">,72ef09b4-4393-4d23-a530-7e5b50cf1d24,31e2aa98-4a9c-4d99-a3e7-540a13396b8c,1e7940af-fba5-46c3-8ffb-e8389ac2b79f,87090b31-2cd0-4b45-8b24-efdb2383b1a2,1,»Фирма «»1С»»»,»2.5.40.3″,»http://downloads.v8.1c.ru/tmplts/»,1,
(приведена только самая интересная часть файла)
Вы наверное догадались что это за конфигурация 1с.
Теперь надо это объяснить MS SQL.
В c# я написал класс:
При создании класса надо передать MemoryStream binary data из таблицы _config.
Как видно в коде им можно парсить и конфигурации 7.7, предварительно распаковав.
Теперь до версии конфигурации можно добраться зная её «адрес»: Далее просто создаем пустую базу с версией «ВЕРСИЯ» и находи что её «адрес» (v8metadata)(((v8metadata)(((v8metadata)(this.array_data[3])).array_data[1])).array_data[1])).array_data[15].ToString();
Но где же здесь MSSQL?
Вот CLR функция, которая получит эти данные в самом MSSQL:
У нас есть отдельная БД, которая хранит в себе сервера и базы. Соответственно функция адаптирована под это.
А как определить какое обновление необходимо для данной конфигурации 1с?
При установке обновлении 1с можно использовать каталог обновлений на сервере. В каждом обновлении есть файл .mft вида:
Vendor=Фирма «1С»
Name=БухгалтерияПредприятия
Version=2.0.25.5
AppVersion=8.2
.
И файл UpdInfo.txt
Version=2.0.25.5
FromVersions=;2.0.24.10;
UpdateDate=11.07.2011
Это же всё, что нам надо.
Зная FromVersions и дату выхода обновления мы можем автоматически генерировать строку для запуска обновления 1с. (ссылка на параметры в начале топика)
Но тут появляется еще одна проблема — наличие пользователей в базе. 1с не обновляется. Пишем «выгонялку» пользователей (vbscript)