/oscript-AutoUpdateIB

Автоматическое обновление информационных баз

Primary Language1C EnterpriseApache License 2.0Apache-2.0

Автоматическое обновление информационных баз

Процесс обновление информационных баз - достаточно долгое и трудоемкое занятие. Даже если на обслуживании находятся крайне небольшое количество баз - "ручной" порядок обновления, с необходимостью открывать каждую информационную базу, превращается в пытку. Данная библиотека позволяет автоматизировать процесс обновления.
Для работы библиотеки необходимо указать логин и пароль для загрузки обновлений, параметры конфигураций и собственно параметрами доступа к информационным базам.

Инициализация

Библиотека подключается с помощью директивы #Использовать AutoUpdateIB. После этого в области видимости скрипта будет доступен класс Обновлятор.

##Примеры##

Инициализация

#Использовать AutoUpdateIB

Обновлятор = Новый Обновлятор();

Обновление списка информационных баз разных конфигураций

Обновлятор.УстановитьПараметрыАутентификации("MyCompany", "Password");
Обновлятор.УстановитьКаталоги("\\server\1CUpdate\1c");

// Бухгалтерия предприятия, редакция 3.0
ПараметрыОбновленияКонфигурации = Обновлятор.ПолучитьПараметрыОбновленияКонфигурации();  
Если ПараметрыОбновленияКонфигурации <> Неопределено Тогда  
   
    ПараметрыПодключения = Обновлятор.ПолучитьПараметрыПодключения(,"\\server\1C base\InfoBase 8.3 (Accounting 3.0)",,,,"Иванов И.И.","Password");
    Обновлятор.ОбновитьИнформационнуюБазу(ПараметрыОбновленияКонфигурации, ПараметрыПодключения);  
  
    ПараметрыПодключения = Обновлятор.ПолучитьПараметрыПодключения(1,,"Server","Base1C");
    Обновлятор.ОбновитьИнформационнуюБазу(ПараметрыОбновленияКонфигурации, ПараметрыПодключения);  

КонецЕсли;

// Зарплата и управление персоналом, редакция 3.0
ПараметрыОбновленияКонфигурации = Обновлятор.ПолучитьПараметрыОбновленияКонфигурации("HRM", "3.0");  
Если ПараметрыОбновленияКонфигурации <> Неопределено Тогда  
     
    ПараметрыПодключения = Обновлятор.ПолучитьПараметрыПодключения(,"\\server\1C base\InfoBase 8.3 (HRM 3.0)",,,,"Иванов И.И.","Password");
    Обновлятор.ОбновитьИнформационнуюБазу(ПараметрыОбновленияКонфигурации, ПараметрыПодключения);  

КонецЕсли;

Резервное копирование информационной базы

Обновлятор.УстановитьПараметрыРезервногоКопирования(,"\\server\1C backup\InfoBase 8.3 (Accounting 3.0)");
ПараметрыПодключения = ПолучитьПараметрыПодключения(,"\\server\1C base\InfoBase 8.3 (Accounting 3.0)",,,,"Иванов И.И.","Password");
Обновлятор.СоздатьРезервнуюКопию(ПараметрыПодключения);

Немедленное отключение пользователей информационной базы и установка блокировки соединений на 10 минут

Обновлятор.УстановитьПараметрыБлокировкиCеансов(Истина, Ложь, 0);
ПараметрыПодключения = ПолучитьПараметрыПодключения(,"\\server\1C base\InfoBase 8.3 (Accounting 3.0)",,,,"Иванов И.И.","Password");
Обновлятор.УстановитьБлокировкуСоединений(ПараметрыПодключения);
Приостановить(10 *60 * 1000); // Ждем 10 минут.
Обновлятор.РазрешитьПодключение(ПараметрыПодключения);

Синтаксис

ПолучитьПараметрыОбновленияКонфигурации
Синтаксис:
ПолучитьПараметрыОбновленияКонфигурации(<ТипКонфигурации>, <ВерсияРелиза>, <ВерсияПлатформы>)
Параметры:
<ТипКонфигурации>
Тип: Строка.
Краткое наименование конфигурации (Accounting - бухгалтерия, HRM - ЗУП ...). Значение по умолчанию: "Accounting".
<ВерсияРелиза>
Тип: Строка.
Версия релиза. Значение по умолчанию: "30".
<ВерсияПлатформы>
Тип: Строка.
Версия платформы (82, 83). Значение по умолчанию: "83".
Возвращаемое значение
Структура с параметрами обновления конкретной конфигурации. Неопределено в случае ошибки.
Описание:
Получает параметры обновления конфигурации. Загружает файл со списком обновлений с сервера проверки обновлений для конфигурации. Анализирует полученный файл, собирает сведения о версиях.
Пример:

Обновлятор.ПолучитьПараметрыОбновленияКонфигурации("Accounting", "20", "82");

ПолучитьПараметрыПодключения
Синтаксис:
ПолучитьПараметрыПодключения(<ВариантРаботыИнформационнойБазы>, <КаталогИнформационнойБазы>, <ИмяСервера1СПредприятия>, <ИмяИнформационнойБазыНаСервере1СПредприятия>, <АутентификацияОперационнойСистемы>, <ИмяПользователя>, <ПарольПользователя>, <ВерсияПлатформы>)
Параметры:
<ВариантРаботыИнформационнойБазы>
Тип: Число.
Вариант работы информационной базы: 0 - файловый; 1 - клиент-серверный. Значение по умолчанию: 0.
<КаталогИнформационнойБазы>
Тип: Строка.
Каталог информационной базы для файлового режима работы. Не указывается в случае клиент-серверного режима работы.
<ИмяСервера1СПредприятия>
Тип: Строка.
Имя сервера 1С:Предприятия. Не указывается в случае файлового режима работы.
<ИмяИнформационнойБазыНаСервере1СПредприятия>
Тип: Строка.
Имя информационной базы на сервере 1С:Предприятия. Не указывается в случае файлового режима работы.
<АутентификацияОперационнойСистемы>
Тип: Булево.
Признак аутентификации операционной системы при создании внешнего подключения к информационной базе. Значение по умолчанию: Ложь.
<ИмяПользователя>
Тип: Строка.
Имя пользователя информационной базы.
<ПарольПользователя>
Тип: Строка.
Пароль пользователя информационной базы.
<ВерсияПлатформы>
Тип: Строка.
Версия платформы (82, 83). Значение по умолчанию: "83".
Возвращаемое значение
Структура с параметрами подключения к информационной базе. Неопределено в случае ошибки.
Описание:
Получает параметры подключения к информационной базе.
Пример:

ПараметрыПодключения = ПолучитьПараметрыПодключения(,"\\server\1C base\InfoBase 8.3 (Accounting 3.0)",,,,"Администратор","Password");

ОбновитьИнформационнуюБазу
Синтаксис:
ОбновитьИнформационнуюБазу(<ПараметрыОбновленияКонфигурации>, <ПараметрыПодключения>, <БлокироватьСоединенияИБ>, <СоздаватьРезервнуюКопию>, <ВыполнитьОтложенныеОбработчики>, <ВыполнятьСжатиеТаблицИБ>, <ВосстанавливатьИнформационнуюБазу>)
Параметры:
<ПараметрыОбновленияКонфигурации>
Тип: Структура.
Параметры обновления текущей конфигурации (см. в ПолучитьПараметрыОбновленияКонфигурации()).
<ПараметрыПодключения>
Тип: Структура.
Параметры подключения к информационной базе (см. в ПолучитьПараметрыПодключения()).
<ВыполнитьОтложенныеОбработчики>
Тип: Булево.
Выполнить отложенные обработчики обновления. Значение по умолчанию: Истина.
<ВыполнятьСжатиеТаблицИБ>
Тип: Булево.
Запускать сжатие таблиц информационной базы. Значение по умолчанию: Истина.
Возвращаемое значение
Признак успешного выполнения.
Описание:

  1. Получает текущую версию и признак изменения конфигурации;
  2. Ищет в каталоге файлов обновлений версию доступную для обновления;
  3. Если доступных для обновления версий не найдено - скачивает обновление с сервера обновлений;
  4. Завершает работу пользователей и устанавливает запрет на подключение новых соединений (только для конфигураций на БСП);
  5. Создает резервную копию информационной базы;
  6. Выполняет отложенные обработчики обновления (только для конфигураций на БСП);
  7. Загружает файл обновления в информационную базу;
  8. Обновляет конфигурации информационной базы;
  9. Выполняет тестирование и исправление;
  10. Принимает обновления в информационной базе (только для конфигураций на БСП);
  11. Повторяет все с п.1 пока не обновится на последнюю доступную версию;
  12. В случае ошибки пытается восстановиться из резервной копии (для файловых баз);
  13. Разрешает подключение новых соединений (только для конфигураций на БСП).

Пример:

Обновлятор.ОбновитьИнформационнуюБазу(ПараметрыОбновленияКонфигурации, ПараметрыПодключения, Ложь);

УстановитьБлокировкуСоединений
Синтаксис:
УстановитьБлокировкуСоединений(<ПараметрыПодключения>)
Параметры:
<ПараметрыПодключения>
Тип: Структура.
Параметры подключения к информационной базе (см. в ПолучитьПараметрыПодключения()).
Возвращаемое значение
Признак успешного выполнения.
Описание:
Завершает работу пользователей и устанавливает запрет на подключение новых соединений.
Пример:

Обновлятор.УстановитьБлокировкуСоединений(ПараметрыПодключения);

СоздатьРезервнуюКопию
Синтаксис:
СоздатьРезервнуюКопию(<ПараметрыПодключения>)
Параметры:
<ПараметрыПодключения>
Тип: Структура.
Параметры подключения к информационной базе (см. в ПолучитьПараметрыПодключения()).
Возвращаемое значение
Признак успешного выполнения.
Описание:
Создает резервную копию информационной базы.
Пример:

Обновлятор.СоздатьРезервнуюКопию(ПараметрыПодключения);

РазрешитьПодключение
Синтаксис:
РазрешитьПодключение(<ПараметрыПодключения>)
Параметры:
<ПараметрыПодключения>
Тип: Структура.
Параметры подключения к информационной базе (см. в ПолучитьПараметрыПодключения()).
Описание:
Разрешает подключение новых соединений.
Пример:

Обновлятор.РазрешитьПодключение(ПараметрыПодключения);

УстановитьКаталоги
Синтаксис:
УстановитьКаталоги(<КаталогФайловОбновления>, <КаталогВременныхФайлов>)
Параметры:
<КаталогФайловОбновления>
Тип: Строка.
Каталог с файлами обновления конфигураций.
<КаталогВременныхФайлов>
Тип: Строка.
Каталог для хранения временных файлов.
Описание:
Устанавливает каталоги хранения файлов обновления и временных файлов. Каталоги по умолчанию:

  • КаталогФайловОбновления - %UAPPDATA%\1C\1Cv8\tmplts\1c;
  • КаталогВременныхФайлов - %TEMP%\AutoUpdateIB;

Пример:

Обновлятор.УстановитьКаталоги("\\server\1CUpdate\1c"); 

УстановитьПараметрыАутентификации
Синтаксис:
УстановитьПараметрыАутентификации(<Пользователь>, <Пароль>)
Параметры:
<Пользователь>
Тип: Строка.
Имя пользователя для загрузки обновлений.
<Пароль>
Тип: Строка.
Пароль пользователя для загрузки обновлений.
Описание:
Устанавливает значения параметров аутентификации.
Пример:

Обновлятор.УстановитьПараметрыАутентификации("MyCompany", "Password");

УстановитьПараметрыЗавершенияСоединения
Синтаксис:
УстановитьПараметрыЗавершенияСоединения(<ОжидатьЗавершениеСоединения>, <МаксИнтервалОжиданияФайловойИБ>, <ИнтервалОжиданияСервернойИБ>)
Параметры:
<ОжидатьЗавершениеСоединения>
Тип: Булево.
Ожидать завершения Com соединения с информационной базой.
<МаксИнтервалОжиданияФайловойИБ>
Тип: Число.
Максимальный интервал ожидания завершения сеанса файловой информационной базы в секундах.
<ИнтервалОжиданияСервернойИБ>
Тип: Число.
Интервал ожидания завершения сеанса клиент-серверной информационной базы в секундах.
Описание:
Устанавливает значения параметров завершения Com соединения с информационной базой. Значения по умолчанию:

  • ОжидатьЗавершениеСоединения - Истина;
  • МаксИнтервалОжиданияФайловойИБ - 60;
  • ИнтервалОжиданияСервернойИБ - 2.

Пример:

Обновлятор.УстановитьПараметрыЗавершенияСоединения(Истина, 10, 0);

УстановитьПараметрыБлокировкиCеансов
Синтаксис:
УстановитьПараметрыБлокировкиCеансов(<БлокироватьСеансыИБ>, <ИспользованиеИБ>, <ИнтервалОжидания>)
Параметры:
<БлокироватьСеансыИБ>
Тип: Булево.
Устанавливать блокировку сеансов перед обновлением.
<ИспользованиеИБ>
Тип: Булево.
Использовать значения параметров блокировки сеансов из информационной базы.
<ИнтервалОжидания>
Тип: Число.
Интервал ожидания завершения работы пользователей по умолчанию в секундах.
Описание:
Устанавливает значения параметров блокировки сеансов. Значения по умолчанию:

  • БлокироватьСеансыИБ - Истина;
  • ИспользованиеИБ - Истина;
  • ИнтервалОжидания - 900.

Пример:

Обновлятор.УстановитьПараметрыБлокировкиCеансов(Ложь);

УстановитьПараметрыРезервногоКопирования
Синтаксис:
УстановитьПараметрыРезервногоКопирования(<СоздаватьРезервнуюКопию>, <КаталогРезервныхКопий>, <ВосстанавливатьИнформационнуюБазу>)
Параметры:
<СоздаватьРезервнуюКопию>
Тип: Булево.
Создавать резервную копию.
<КаталогРезервныхКопий>
Тип: Строка.
Каталог для хранения резевных копий и файлов дампа.
<ВосстанавливатьИнформационнуюБазу>
Тип: Булево.
Использовать восстановление информационной базы в случае падения.
Описание:
Устанавливает значения параметров резервного копирования. Значения по умолчанию:

  • СоздаватьРезервнуюКопию - Истина;
  • КаталогРезервныхКопий - %TEMP%\AutoUpdateIB\DumpIB.
  • ВосстанавливатьИнформационнуюБазу - Истина.

Пример:

Обновлятор.УстановитьПараметрыРезервногоКопирования(,, Ложь);

Установка

Для работы библиотеки необходимо предварительно установить Стандартную библиотеку скриптов 1Script. Клонируйте репозиторий библиотеки:

git clone https://github.com/BlackDrak0n/oscript-AutoUpdateIB.git

Добавьте в конфигурационном файле 1Script oscript.cfg в список дополнительных библиотек путь к каталогу, в который вы клонировали репозиторий:

lib.additional = C:\libs\oscript-AutoUpdateIB;

Лицензия

Библиотека распространяется под лицензией Apache 2.0, ее текст находится в файле LICENSE.