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