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

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

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

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

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

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

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

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

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

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

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