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