Перейти к основному содержимому

Информационные базы

В системе «1С:Предприятие» различаются понятия информационная база и база данных. Под термином информационная база понимается совокупность следующих сущностей: конфигурация, данные, настройки, различные административные данные, а также база данных, в которой это все хранится. Под термином база данных понимается упорядоченный набор структурированной информации (данных), которая хранится в электронном виде в компьютерной системе. Как правило, с базой данных взаимодействует специальный программный комплекс, который называется система управления базами данных или СУБД. Таким образом, если упоминается информационная база — речь идет о логическом понятии, связанном с системой «1С:Предприятие». Если упоминается база данных, значит речь идет о хранилище данных. Хранилище данных, скорее всего, будет представлено в виде размещенного в файловой системе файла (одного или нескольких), к которому имеет доступ только процесс СУБД.

В кластере серверов можно создать несколько информационных баз. Для идентификации каждая информационная база обладает собственным именем, которое должно быть уникально в рамках кластера серверов. Кроме имени информационная база имеет еще и внутренний идентификатор, который является значением типа Ууид. Уникальный идентификатор информационной базы доступен только при программной работе с кластером серверов.

Каждая информационная база описывается специальным экземпляром типа ИнфобазаОписаниеV8. Получить описание конкретной информационной базы можно следующими способами:

  1. Получить список всех информационных баз кластера с помощью метода КластерV8.ПолучитьИнфобазы(), затем перебрать получившийся массив экземпляров типа ИнфобазаОписаниеV8 и по каким-то критериям выбрать одну или несколько информационных баз.
  2. Сразу найти нужную информационную базу в том случае, если мы знаем ее уникальный идентификатор. Получить описание конкретной информационной базы по известному идентификатору можно с помощью метода КластерV8.ПолучитьИнфобазу().
  3. Создать новую информационную базу с помощью метода КластерV8.СоздатьИнфобазу(). В этом случае необходимо указать все ключевые параметры информационной базы перед тем, как произойдет фактическое создание базы. Фактически база создается после выполнения метода ИнфобазаV8.Записать().

Чтобы выполнять какие-то административные действия, необходимо получить права администратора этой базы. Для этого следует выполнить аутентификацию от имени пользователя информационной базы (подробнее о пользователях написано здесь) системы «1С:Предприятие» с помощью метода ВыполнитьАутентификацию(). После выполнения аутентификации появляется доступ к изменению свойств информационной базы.

Свойства информационной базы, которые доступны у экземпляра типа ИнфобазаV8, по своим именам в основном соответствуют свойствам информационной базы, описанными в документации к системе «1С:Предприятие». Если свойства информационной базы изменены, то чтобы обновить свойства информационной базы в кластере серверов, следует воспользоваться методом Записать().

Кроме изменения свойств информационной базы система «1С:Шина» поддерживает следующие операции:

  • Получить список текущих сеансов с помощью метода ПолучитьСеансы().
  • Получить список соединений информационной базы с помощью метода ПолучитьСоединения().
  • Удалить информационную базу из кластера серверов. Удаление выполняется с помощью метода Удалить(). При этом режим удаления информационной базы задается параметром РежимУдаленияИнфобазыV8 метода, который может принимать следующие значения:
    • НеВыполнятьДействийСБазойДанных — информационная база удаляется из кластера серверов, сама база данных не изменяется.
    • ОчиститьБазуДанных — информационная база удаляется из кластера серверов, база данных очищается.
    • УдалитьБазуДанных — информационная база удаляется из кластера серверов, база данных также удаляется.

Получить список информационных баз

метод ПолучитьСписокИБ()
пер ТекущийКластер = ПолучитьКластер()
ТекущийКластер.ВыполнитьАутентификацию("", "")
пер СписокОписанийИБ = ТекущийКластер.ПолучитьИнфобазы()
для ОписаниеИБ из СписокОписанийИБ
пер ИБ = ОписаниеИБ.ВыполнитьАутентификацию("", "")
пер ИмяИнфобазы = ИБ.Имя
пер Субд = ИБ.Субд
пер СерверБД = ИБ.СерверБазДанных
пер ИмяБД = ИБ.ИмяБазыДанных
пер ОписаниеИнфобазы = ИБ.Описание
;
;

метод ПолучитьКластер(): КластерV8
пер Сервер = новый АдминистрированиеСервераV8("localhost", 1545)
возврат Сервер.ПолучитьКластеры()[0]
;