Информационные базы
В системе «1С:Предприятие» различается понятие информационная база и база данных. Под термином информационная база понимается совокупность следующих сущностей: конфигурация, данные, настройки, различные административные данные, а также база данных, в которой это все хранится. Под термином база данных понимается упорядоченный набор структурированной информации (данных), которые хранятся в электронном виде в компьютерной системе. Как правило, с базой данных взаимодействует специальный программный комплекс, который называется система управления базами данных или СУБД. Таким образом, если упоминается информационная база — речь идет о логическом понятии, связанном с системой «1С:Предприятие». Если упоминается база данных, значит речь идет о хранилище данных. Хранилище данных, скорее всего, будет представлено в виде файла (одного или нескольких), размещенного в файловой системе и к которому имеет доступ только процесс СУБД.
В кластере серверов могут быть создано несколько информационных баз. Для идентификации, каждая информационная база обладает собственным именем, которое должно быть уникально в рамках кластера серверов. Кроме имени, информационная база имеет еще и внутренний идентификатор, который является значением типа Ууид. Уникальный идентификатор информационной базы доступен только при программной работы с кластером серверов.
Каждая информационная база описывается специальным экземпляром типа ИнфобазаОписаниеV8. Для того чтобы получить описание конкретной информационной базы, можно воспользоваться следующими способами:
- Получить список всех информационных баз кластера с помощью метода КластерV8.ПолучитьИнфобазы(), затем перебрать получившийся массив экземпляров типа ИнфобазаОписаниеV8 и по каким-то критериям выбрать одну или несколько информационных баз.
- Сразу найти нужную информационную базы в том случае, если мы знаем ее уникальный идентификатор. Для получения описания конкретной информационной базы по известному идентификатору служит метод КластерV8.ПолучитьИнфобазу().
- Создать новую информационную базу с помощью метода КластерV8.СоздатьИнфобазу(). В этом случае необходимо указать все ключевые параметры информационной базы перед тем, произойдет фактическое создание базы. Фактическое создание базы будет выполнено после выполнения метода ИнфобазаV8.Записать().
Для того чтобы выполнять какие-то административные действия, необходимо получить права администратора этой базы. Для этого следует выполнить аутентификацию от имени пользователя информационной базы (подробнее о пользователях написано здесь) системы «1С:Предприятие» с помощью метода ВыполнитьАутентификацию(). После выполнения аутентификации появляется доступ к изменения свойств информационной базы.
Свойства информационной базы, которые доступны у экземпляра типа ИнфобазаV8, по своим именам в основном соответствуют свойствам информационной базы, описанными в документации к системе «1С:Предприятие». Если свойства информационной базы изменены, то для того, чтобы обновить свойства информационной базы в кластере серверов, следует воспользоваться методом Записать().
- Получить список текущих сеансов с помощью метода ПолучитьСеансы().
- Получить список соединений информационной базы с помощью метода ПолучитьСоединения().
- Удалить информационную базу из кластера серверов. Удаление выполняется с помощью
метода Удалить(). При этом режим удаления информационной базы
задается с помощью параметра метода, который может принимать следующие значения
РежимУдаленияИнфобазыV8:
- НеВыполнятьДействийСБазойДанных — информационная база удаляется из кластера серверов, сама база данных не изменяется.
- ОчиститьБазуДанных — информационная база удаляется из кластера серверов, база данных очищается.
- УдалитьБазуДанных — информационная база удаляется из кластера серверов, база данных также удаляется.
Получить список информационных баз
метод Скрипт()
пер ТекущийКластер = ПолучитьКластер()
ТекущийКластер.ВыполнитьАутентификацию("", "")
пер СписокИБ = ТекущийКластер.ПолучитьИнфобазы()
для текИБ из СписокИБ
Консоль.Записать("ИБ, имя - " + текИБ.Имя)
Консоль.Записать("\тСУБД: " + текИБ.Субд)
Консоль.Записать("\тсервер баз данных: " + текИБ.СерверБазДанных)
Консоль.Записать("\тимя базы данных: " + текИБ.ИмяБазыДанных)
Консоль.Записать("\тописание: " + текИБ.Описание)
;
;
метод ПолучитьКластер(): КластерV8
пер Сервер = новый АдминистрированиеСервераV8("localhost", 1545)
возврат Сервер.ПолучитьКластеры()[0]
;