Skip to content

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

License

Notifications You must be signed in to change notification settings

Kyrales/oscript-AutoUpdateIB

This branch is 1 commit ahead of BlackDrak0n/oscript-AutoUpdateIB:master.

Folders and files

NameName
Last commit message
Last commit date
Jun 20, 2021
Jun 7, 2017
Oct 14, 2016
Jun 7, 2017
Oct 14, 2016
Oct 17, 2016

Repository files navigation

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

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

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

Библиотека подключается с помощью директивы #Использовать 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.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • 1C Enterprise 100.0%