cpdb

Форк
0

README.md

GitHub release GitHub license GitHub Releases GitHub All Releases

Build Status Quality Gate Coverage Tech debt

Checked by Silver Bulleters SonarQube BSL plugin

1C Database copier (cpdb)

Библиотека и приложение для получения информации о базах 1С, копирования баз 1C и развертывания на целевой системе.

Требуются следующие библиотеки и инструменты

Команды приложения


Типичный сценарий работы

  1. Сформировать резервную копию базы
  2. Передать резервную копию на целевую систему
    • Через общую папку / С использованием Yandex-Диск
    • Возможно разбиение больших файлов на части (используется 7-zip)
  3. Восстановить резервную копию в новую или существующую базу
  4. Подключить базу к хранилищу конфигурации
databaseГруппа команд работы с СУБД
create- Создание базы MS SQL
backup- Создание резервной копии базы MS SQL
restore- Восстановление базы MS SQL из резервной копии
compress- Выполнить компрессию страниц таблиц и индекстов в базе MS SQL
drop- Удаление базы MS SQL
script- Выполнить произвольный скрипт на сервере MS SQL
infobaseГруппа команд работы с информационными базами 1С
create-srv-ib- Создать информационную базу на сервере 1С
create-file-ib- Создать файловую информационную базу 1С
dump- Выгрузить информационную базу в файл
restore- Загрузить информационную базу из файла
clearcache- Очистить локальный кэш информационных баз 1С
uconstorage- Отключить информационную базу от хранилища конфигураций
constorage- Подключить информационную базу к хранилищу конфигураций
fileГруппа команд работы с файлами
copy- Копировать/переместить файлы
split- Архивировать файл с разбиением на части указанного размера (используется 7-Zip)
merge- Разархивировать файл (используется 7-Zip)
mapdrive- Подключить сетевой диск
umapdrive- Отключить сетевой диск
yadiskГруппа команд работы с сервисом Yandex-Диск
put- Помещение файла на Yandex-Диск
get- Получение файла из Yandex-Диска
nextcloudГруппа команд работы с сервисом NextCloud
put- Помещение файла в сервис NextCloud
get- Получение файла из сервиса NextCloud
sftpГруппа команд работы с SFTP-сервером
put- Помещение файла на сервер SFTP
get- Получение файла с сервера SFTP
batch- Последовательное выполнение команд по сценариям, заданным в файлах (json)

Для подсказки по конкретной команде наберите <команда> --help

database - Группа команд работы с СУБД

Общие параметры для команд группы:
--srvr- Адрес сервера MS SQL
--user- Пользователь сервера
--pwd- Пароль пользователя сервера

create - Создание базы MS SQL

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--db- Имя базы для восстановления
--db-recovery- Установить модель восстановления (RECOVERY MODEL), возможные значения "FULL", "SIMPLE", "BULK_LOGGED"

Пример

cpdb database --srvr MySQLName --user sa --pwd 12345 create --db MyDatabase --db-recovery SIMPLE

backup - Создание резервной копии базы MS SQL

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--db- Имя базы для восстановления
--bak-path- Путь к резервной копии

Пример

cpdb database --srvr MySQLName --user sa --pwd 12345 backup --db MyDatabase --bak-path "d:\MSSQL\Backup\MyDatabase_copy.bak"

restore - Восстановление базы MS SQL из резервной копии

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--db- Имя базы для восстановления
--bak-path- Путь к резервной копии
--create-db- Создать базу в случае отсутствия
--db-owner- Имя владельца базы после восстановления
--compress-db- Включить компрессию страниц таблиц и индексов после восстановления
--shrink-db- Сжать файлы данных после восстановления
--shrink-log- Сжать файлы журнала транзакций после восстановления
--db-path- Путь к каталогу файлов данных базы после восстановления
--db-logpath- Путь к каталогу файлов журнала после восстановления
--db-recovery- Установить модель восстановления (RECOVERY MODEL), возможные значения "FULL", "SIMPLE", "BULK_LOGGED"
--db-changelfn- Изменить логические имена файлов (LFN) базы, в соответствии с именем базы
--delsrc- Удалить файл резервной копии после восстановления

Пример

cpdb database --srvr MyNewSQLServer --user SQLUser --pwd 123456 restore --db MyDatabase_copy --bak-path "d:\data\MyBackUpfile.bak" --create-db --shrink-db --db-owner SQLdbo --db-path "d:\MSSQL\data" --db-logpath "e:\MSSQL\logs" --db-recovery SIMPLE --delsrc

compress - Выполнить компрессию страниц таблиц и индекстов в базе MS SQL

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--db- Имя базы для восстановления
--shrink-db- Сжать базу после выполнения компрессии
--shrink-log- Сжать файлы журнала транзакций после восстановления

Пример

cpdb database --srvr MyNewSQLServer --user SQLUser --pwd 123456 compress --db MyDatabase_copy --shrink-db

drop - Удаление базы MS SQL

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--db- Имя базы для восстановления

Пример

cpdb database --srvr MySQLName --user sa --pwd 12345 drop --db MyDatabase

script - Выполнить скрипты из файла(ов)

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--files- Файлы SQL, содержащие текст скрипта, могут быть указаны несколько файлов, разделённые ";"
--vars- Строка значений переменных (без пробелов) для скриптов SQL в виде "<Имя>=<Значение>", разделенные ";"

Пример

cpdb database --srvr MyNewSQLServer --user SQLUser --pwd 123456 script --params "./JSON/cpdb_env.json" --files "./tools/config_error.sql;./tools/print_message.sql" --vars "varBase=MyDB;message=\"Hello world\""

Пример config_error.sql

use $(varBase)
go
truncate table [dbo].[ConfigSave]
go
UPDATE SchemaStorage SET Status = 100

Пример print_message.sql

PRINT N'$(message)'

infobase - Группа команд работы с информационной базой 1С

Общие параметры для команд группы:
--v8version- маска версии платформы 1С (например: 8.3.8, 8.3.17.1851)

create-srv-ib - Создать информационную базу на сервере 1С

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-srvr- Адрес кластера серверов 1С ([<протокол>://]<адрес>[:<порт>])
--ib-ref- Имя базы в кластере 1С
--err-if-exist- Сообщить об ошибке если ИБ в кластере 1С существует
--dbms- Тип сервера СУБД (MSSQLServer <по умолчанию>; PostgreSQL; IBMDB2; OracleDatabase)
--db-srvr- Адрес/имя сервера СУБД
--db-user- Пользователь сервера СУБД"
--db-pwd- Пароль пользователя сервера СУБД"
--db-name- Имя базы на сервере СУБД (если не указано, используется имя базы 1С)"
--sql-offs- Смещение дат на сервере MS SQL (0; 2000 <по умолчанию>)
--create-db- Создавать базу данных в случае отсутствия
--allow-sch-job- Разрешить регламентные задания
--allow-lic-dstr- Разрешить выдачу лицензий сервером 1С
--cadm-user- Имя администратора кластера
--cadm-pwd- Пароль администратора кластера
--name-in-list- Имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)
--tmplt-path- Путь к шаблону для создания информационной базы (*.cf; *.dt). Если шаблон не указан, то будет создана пустая ИБ

Пример

cpdb infobase --v8version 8.3.8 create-srv-ib --ib-srvr My1CServer --ib-ref TST_DB_MyDomain --db-srvr MySQLServer --db-user _1CSrvUsr1 --db-pwd p@ssw0rd --db-name TST_DB_MyDomain --createdb --nameinlist "My test base" --errifexist

create-file-ib - Создать файловую информационную базу 1С

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path- Путь к каталогу базы 1С
--err-if-exist- Сообщить об ошибке если ИБ в кластере 1С существует
--name-in-list- Имя в списке баз пользователя (если не задано, то ИБ в список не добавляется)
--tmplt-path- Путь к шаблону для создания информационной базы (*.cf; *.dt). Если шаблон не указан, то будет создана пустая ИБ

Пример

cpdb infobase --v8version 8.3.8 create-file-ib --ib-path "D:\1cbases\My1CBase" --name-in-list "My test base" --err-if-exist

dump - Выгрузить информационную базу в файл

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path- Строка подключения к ИБ
--ib-user- Пользователь ИБ
--ib-pwd- Пароль пользователя ИБ
--dt-path- Путь к файлу для выгрузки ИБ
--uccode- Ключ разрешения запуска ИБ

Пример

cpdb infobase --v8version 8.3.8 dump --ib-path "/FD:/data/MyDatabase" --dt-path "d:\data\1Cv8.dt" --ib-user Администратор --ib-pwd 123456 --uccode 1234

restore - Загрузить информационную базу из файла

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path- Строка подключения к ИБ
--ib-user- Пользователь ИБ
--ib-pwd- Пароль пользователя ИБ
--dt-path- Путь к файлу для загрузки в ИБ
--jobs-count- Количество заданий загрузки файла (для клиент-серверной базы, начиная с версии платформы 8.3.19)
--uccode- Ключ разрешения запуска ИБ
--delsrc- Удалить файл после загрузки

Пример

cpdb infobase --v8version 8.3.8 restore --ib-path "/FD:/data/MyDatabase" --dt-path "d:\data\1Cv8.dt" --ib-user Администратор --ib-pwd 123456 --uccode 1234 -delsrc

clearcache - Очистить локальный кэш информационных баз 1С

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path- Строка подключения к ИБ (если не указан то удаляются локальные кэши всех информационных баз)

Пример

cpdb infobase clearcache --ib-path "/FD:/data/MyDatabase"

uconstorage - Отключить информационную базу от хранилища конфигурации

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path- Строка подключения к ИБ");
--ib-user- Пользователь ИБ");
--ib-pwd- Пароль пользователя ИБ");
--extension- Имя отключаемого расширения конфигурации
--uccode- Ключ разрешения запуска ИБ");

Пример

cpdb infobase --v8version 8.3.8 uconstorage --ib-path "/FD:/data/MyDatabase" --ib-user Администратор --ib-pwd 123456 --uccode 1234

constorage - Подключить информационую базу к хранилищу конфигурации

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--ib-path- Строка подключения к ИБ
--ib-user- Пользователь ИБ
--ib-pwd- Пароль пользователя ИБ
--extension- Имя подключаемого расширения конфигурации
--storage-path- Адрес хранилища конфигурации
--storage-user- Пользователь хранилища конфигурации
--storage-pwd- Пароль пользователя хранилища конфигурации
--update-ib- Выполнить обновление ИБ (применить полученную из хранилища конфигурацию к ИБ)
--uccode- Ключ разрешения запуска ИБ

Пример

cpdb infobase --v8version 8.3. constorage --ib-path "/FD:/data/MyDatabase" --ib-user Администратор --ib-pwd 123456 --storage-path "tcp://MyServer/MyRepository" --storage-user MyDatabase_usr1 --storage-pwd 123456 --uccode 12348

file - Группа команд работы с файлами


copy - Скопировать/переместить файлы

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--src- Файл источник
--dst- Файл/каталог приемник (если оканчивается на "", то каталог)
--move- Выполнить перемещение файлов (удалить источник после копирования)
--lastonly- Копирование файлов, измененных не ранее текущей даты

Простой пример. Копирование файла в каталог

cpdb file copy --src "d:\MSSQL\Backup\MyDatabase_copy.bak" --dst "N:\NewDestination\" --replace --move

Сложный пример. В каталоге-источнике имеется несколько резервных копий с датой в имени файла. Необходимо скопировать только свежий файл (созданный сегодня). Новое имя файла не должно содержать дату

cpdb file copy --src "d:\MSSQL\Backup\MyDatabase_copy*.bak" --dst "N:\NewDestination\MyDatabase_copy.bak*" --replace --move --lastonly

split - Архивировать файл с разбиением на части указанного размера

Используется 7-zip

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--src- Путь к исходному локальному файлу для разбиения
--arch- Имя файла архива (не обязательный, по умолчанию <имя исходного файла>.7z)
--list- Имя файла, списка томов архива (не обязательный, по умолчанию <имя исходного файла>.split)
--vol-size- Размер части {<g>, <m>, <b>} (по умолчанию 50m)
--compress-level- Уровень сжатия частей архива {0 - 9} (по умолчанию 0 - не сжимать)
--delsrc- Удалить исходный файл после выполнения операции

Пример

cpdb file split "d:\MSSQL\Backup\MyDatabase_copy.bak" --list "d:\MSSQL\Backup\MyDatabase_copy.split" --vol-size 40m --delsrc

merge - Разархивировать файл

Используется 7-zip

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--arch- Имя первого файла архива
--list- Имя файла, списка файлов архива (параметр -arch игнорируется)
--delsrc- Удалить исходные файлы после выполнения операции

Пример

cpdb file merge --file "d:\MSSQL\Backup\MyDatabase_copy.7z.001" --delsrc
cpdb file merge --list "d:\MSSQL\Backup\MyDatabase_copy.split" --delsrc

mapdrive - Подключить сетевой диск

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--drive- Имя устройства (буква диска)
--res- Путь к подключаемому ресурсу
--user- Пользователь для подключения
--pwd- Пароль для подключения

Пример

cpdb file mapdrive --drive N --res "\\MyServer\MyFolder" --user superuser --pwd P@$$w0rd

umapdrive - Отключить сетевой диск

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--drive- Имя устройства (буква диска)

Пример

cpdb file umapdrive --drive N

yadisk - Группа команд работы с сервисом Yandex-Диск

Общие параметры для команд группы:
--token- Token авторизации

put - Помещение файла на Yandex-Диск

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--file- Путь к локальному файлу для помещения на Yandex-Диск
--list- Путь к локальному файлу со списком файлов, которые будут помещены на Yandex-Диск (параметр --file игнорируется)
--path- Путь к каталогу на Yandex-Диск, куда помещать загружаемые файлы
--replace- Перезаписать файл на Yandex-диске при загрузке
--delsrc- Удалить исходные файлы после отправки

Пример

// Помещает файл "MyDatabase_copy.bak" на Yandex-диск
cpdb yadisk --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX put --file "d:\MSSQL\Backup\MyDatabase_copy.bak" --path "/transfer" --delsrc
// Помещает файлы, указанные в списке "MyDatabase_copy.split" на Yandex-диск
cpdb yadisk --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX put --list "d:\MSSQL\Backup\MyDatabase_copy.split" --path "/transfer" --delsrc

get - Получение файла из Yandex-Диска

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--path- Путь к локальному каталогу для сохранения загруженных файлов
--file- Путь к файлу на Yandex-Диск для загрузки
--list- Путь к файлу на Yandex-Диск со списком файлов, которые будут загружены (параметр --file игнорируется)
--delsrc- Удалить файлы из Yandex-Диск после получения

Пример

// Получает файл "MyDatabase_copy.bak" из Yandex-диска
cpdb yadisk --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX get --path "d:\MSSQL\Backup\MyDatabase_copy.bak" --file "/transfer/MyDatabase_copy.bak" --delsrc
// Получает файлы, указанные в списке "MyDatabase_copy.split" из Yandex-диска
cpdb yadisk --token XXXXXXXXXXXXXXXXXXXXXXXXXXXXX get --path "d:\MSSQL\Backup\" --list "/transfer/MyDatabase_copy.split" -delsrc

Для получения токена авторизации Яндекс-диска

  • Зарегистрировать приложение: https://oauth.yandex.ru/client/new
  • Дать нужные права для приложения
    • Сервис Яндекс.Диск REST API
      • Запись в любом месте на Диске
        • Чтение всего Диска
        • Доступ к информации о Диске
  • Нажать "Создать приложение" внизу формы: после этого будет показан ID пароль, прочие параметры созданного приложения
  • Получить токен для приложения: перейти по ссылке https://oauth.yandex.ru/authorize?response_type=token&client_id=<ВАШ ID (ID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)>
  • На вопрос "Приложение OScript.YaDisk запрашивает доступ к вашим данным на Яндексе" ответить "Разрешить": после этого на экране появится сформированный токен

nextcloud - Группа команд работы с сервисом NextCloud

Общие параметры для команд группы:
--srvr- Адрес сервиса NextCloud
--user- Имя пользователя сервиса NextCloud
--pwd- Пароль пользователя сервиса NextCloud

put - Помещение файла в сервис NextCloud

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--file- Путь к локальному файлу для помещения в сервис NextCloud
--list- Путь к локальному файлу со списком файлов, которые будут помещены в сервис NextCloud (параметр --file игнорируется)
--path- Путь к каталогу в сервисе NextCloud, куда помещать загружаемые файлы
--replace- Перезаписать файл в сервисе NextCloud при загрузке
--delsrc- Удалить исходные файлы после отправки

Пример

// Помещает файл "MyDatabase_copy.bak" в сервис NextCloud
cpdb nextcloud --service "http://MyNextCloud" --user "admin" --pwd "P@$$w0rd" put --file "d:\MSSQL\Backup\MyDatabase_copy.bak" --path "/transfer" --delsrc
// Помещает файлы, указанные в списке "MyDatabase_copy.split" в сервис NextCloud
cpdb nextcloud --service "http://MyNextCloud" --user "admin" --pwd "P@$$w0rd" put --list "d:\MSSQL\Backup\MyDatabase_copy.split" --path "/transfer" --delsrc

get - Получение файла из сервиса NextCloud

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--path- Путь к локальному каталогу для сохранения загруженных файлов
--file- Путь к файлу в сервисе NextCloud для загрузки
--list- Путь к файлу в сервисе NextCloud со списком файлов, которые будут загружены (параметр --file игнорируется)
--delsrc- Удалить файлы из сервиса NextCloud после получения

Пример

// Получает файл "MyDatabase_copy.bak" из сервиса NextCloud
cpdb nextcloud --service "http://MyNextCloud" --user "admin" --pwd "P@$$w0rd" get --path "d:\MSSQL\Backup\MyDatabase_copy.bak" --file "/transfer/MyDatabase_copy.bak" --delsrc
// Получает файлы, указанные в списке "MyDatabase_copy.split" из сервиса NextCloud
cpdb nextcloud --service "http://MyNextCloud" --user "admin" --pwd "P@$$w0rd" get --path "d:\MSSQL\Backup\" --list "/transfer/MyDatabase_copy.split" -delsrc

sftp - Группа команд работы с SFTP-сервером

Общие параметры для команд группы:
--srvr- Адрес сервера SFTP в виде <адрес>:<порт>
--port- Порт сервера SFTP
--user- Имя пользователя сервера SFTP
--pwd- Пароль пользователя сервера SFTP, если указан параметр --key-file, то используется как пароль для доступа к закрытому ключу
--key-file- Путь к файлу закрытого ключа, если указано, то параметр --pwd интерпретируется как пароль к закрытому ключу

put - Помещение файла на сервер SFTP

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--file- Путь к локальному файлу для помещения на сервер SFTP
--list- Путь к локальному файлу со списком файлов, которые будут помещены на сервер SFTP (параметр --file игнорируется)
--path- Путь к каталогу на сервере SFTP, куда помещать загружаемые файлы
--replace- Перезаписать файл на сервере SFTP при загрузке
--delsrc- Удалить исходные файлы после отправки

Пример

// Помещает файл "MyDatabase_copy.bak" на сервере SFTP
cpdb sftp --server "sftp.myServer.org" --port 22 --user "admin" --pwd "P@$$w0rd" put --file "d:\MSSQL\Backup\MyDatabase_copy.bak" --path "/transfer" --delsrc
// Помещает файлы, указанные в списке "MyDatabase_copy.split" на сервере SFTP
cpdb sftp --server "sftp.myServer.org" --port 22 --user "admin" --pwd "P@$$w0rd" put --list "d:\MSSQL\Backup\MyDatabase_copy.split" --path "/transfer" --delsrc

get - Получение файла с сервера SFTP

Параметры:
--params- Файлы JSON содержащие значения параметров, могут быть указаны несколько файлов разделенные ";" (параметры командной строки имеют более высокий приоритет)
--path- Путь к локальному каталогу для сохранения загруженных файлов
--file- Путь к файлу на сервере SFTP для загрузки
--list- Путь к файлу на сервере SFTP со списком файлов, которые будут загружены (параметр --file игнорируется)
--delsrc- Удалить файлы с сервера SFTP после получения

Пример

// Получает файл "MyDatabase_copy.bak" с сервера SFTP
cpdb sftp --server "sftp.myServer.org" --port 22 --user "user" --pwd "P@$$w0rd" get --path "d:\MSSQL\Backup\MyDatabase_copy.bak" --file "/transfer/MyDatabase_copy.bak" --delsrc
// Получает файлы, указанные в списке "MyDatabase_copy.split" с сервера SFTP
cpdb sftp --server "sftp.myServer.org" --port 22 --user "user" --pwd "P@$$w0rd" get --path "d:\MSSQL\Backup\" --list "/transfer/MyDatabase_copy.split" -delsrc

batch - Выполнить сценарий

Последовательно выполняет команды указнные в файле JSON

Параметры:
<Сценарии>- Файлы JSON содержащие команды и значения параметров, могут быть указаны несколько файлов разделенные "";"" (обработка файлов выполняется в порядке следования)

Пример

cpdb batch "./rest_TST_DB_MyDomain.json"

Пример сценария

{
"params": {},
"stages": {
"Восстановление": {
"description": "Восстановление из резервной копии",
"command": "database restore",
"params": {
"srvr": "MySQLServer",
"user": "_1CSrvUsr1",
"pwd": "p@ssw0rd",
"bak-path": "d:\\tmp\\PRD_DB_MyDomain.bak",
"db": "TST_DB_MyDomain",
"db-owner": "_1CSrvUsr1",
"db-path": "D:\\sqldata",
"db-logpath": "D:\\sqldata",
"db-recovery": "SIMPLE",
"db-changelfn": true
}
},
"Отключение": {
"description": "Отключение от хранилища",
"command": "infobase uconstorage",
"params": {
"ib-path": "/SSport1\\TST_DB_MyDomain",
"ib-user": "\"1C User\"",
"ib-pwd": "p@ssw0rd"
}
},
"Сжатие": {
"description": "Сжатие базы данных",
"command": "database compress",
"params": {
"srvr": "Sport1",
"user": "_1CSrvUsr1",
"pwd": "p@ssw0rd",
"db": "TST_DB_MyDomain",
"shrink-db": true
}
}
}
}

Использование c Jenkins

В jenkinsfile описан конвейер, выполняющий следующий сценарий:

  • Создание резервной копии указанной базы на системе-источнике
  • Разбиение резервной копии на части (используется 7-Zip)
  • Копирование частей файла на Yandex-Диск (в указанный каталог)
  • Получение файла резервной копии из Yandex-Диск на системе-приемнике
  • Восстановление указанной базы из резервной копии
  • Подключает базу к хранилищу конфигурации
Переменные окружения конвейера
src_db_cred- Идентификатор credentials для доступа к MS SQL в системе, где расположена база-источник
src_agent_label- Метка агента Jenkins в системе, где расположена база-источник
src_server_name- Имя сервера MS SQL в системе-источнике
src_db_name- Имя базы-источника
src_bak_path- Путь к каталогу резервной копии в системе-источнике
bak_file_name- Имя файла резервной копии
list_file_name- Имя файла списка томов архива
storage_token- Token для доступа к Yandex-Диску
storage_path- Путь к каталогу на Yandex-Диск для передачи файлов в систему-приемник
dst_db_cred- Идентификатор credentials для доступа к MS SQL в системе-приемнике
dst_agent_label- Метка агента Jenkins в системе, где расположена база-приемник
dst_bak_path- Путь к каталогу резервной копии в системе-приемнике, в который будут загружены файлы из Yandex-Диска
dst_server_name- Имя сервера MS SQL в системе-приемнике
dst_db_name- Имя базы-приемника
dst_dbo- Имя пользователя-владельца базы в системе-приемнике (dbowner)
dst_db_path- Путь к каталогу размещения файлов данных базы-приемника
dst_log_path- Путь к каталогу размещения файлов журнала базы-приемника
dst_ib_agent_label- Метка агента Jenkins в системе, где выполняется подключение к хранилищу конфигурации
dst_ib_con_string- Строка подключения к информационной базе, подключаемой к хранилищу
dst_ib_cred- Идентификатор credentials для доступа к информационной базе
dst_ib_storage_adr- Адрес хранилища конфигурации
dst_ib_storage_cred- Идентификатор credentials для подключения к хранилищу конфигурации

Прграммный интерфейс библиотеки (API)


Класс РаботаССУБД

Подключение = Новый ПодключениеMSSQL("MyServer", "user", "P@ssw0rd);
РаботаССУБД = Новый РаботаССУБД(Подключение);

Функция БазаСуществует() - проверяет существование базу на сервере СУБД

Параметры:
БазаСтрокаимя базы данных

Возвращаемое значение: Булево - Истина - база существует

Функция СписокБаз() - получает список баз с сервера СУБД

Параметры:
ФильтрБазПоИмениСтрокаимя базы данных
ФильтрПоТаблицеСтрокаимя таблицы базы данных
ВключаяСистемныеСтрокаимя таблицы базы данных

Возвращаемое значение: Соответствие Из Структура - список баз на сервере СУБД

* Имя - Строка - имя базы данных
* Ид - Число - идентификатор базы данных
* ИдСоздателя - Число - идентификатор пользователя, создавшего базу
* Статус1 - Число - флаги состояния базы данных
* Статус2 - Число - флаги состояния базы данных
* ДатаСоздания - Дата - дата создания базы данных
* РежимСовместимости - Число - версия режима совместимости базы
* ФайлДанных - Строка - путь к файлу данных

Функция ТаблицаСуществует() - проверяет существование таблицы в базе на сервере СУБД

Параметры:
БазаСтрокаимя базы данных
ТаблицаСтрокаимя таблицы базы данных

Возвращаемое значение: Булево - Истина - таблица существует в базе данных

Процедура СоздатьБазуДанных() - создает базу данных

Параметры:
БазаСтрокаимя базы данных
МодельВосстановленияСтрокамодель восстановления (FULL, SIMPLE, BULK_LOGGED)
ПутьККаталогуСтрокапуть к каталогу для размещения файлов базы данных если не указан, то файлы размещаются в каталоге по умолчанию SQL Server

Процедура УдалитьБазуДанных() - удаляет базу данных

Параметры:
БазаСтрокаимя базы данных

Процедура ВыполнитьрезервноеКопирование() - выполняет резервное копирование базы

Параметры:
БазаСтрокаимя базы данных
ПутьКРезервнойКопииСтрокапуть к файлу резервной копии

Процедура ВыполнитьВосстановление() - выполняет восстановление базы из резервной копии

Параметры:
БазаСтрокаимя базы данных
ПутьКРезервнойКопииСтрокапуть к файлу резервной копии
ПутьКФайлуДанныхСтрокапуть к файлу данных базы
ПутьКФайлуЖурналаСтрокапуть к файлу журнала транзакций базы
СоздаватьБазуБулевоИстина - создать базу в случае отсутствия

Функция ПолучитьОписание() - получает описание базы данных

Параметры:
БазаСтруктураописание базы данных

Возвращаемое значение: Структура - описание базы данных

* Имя - Строка - имя базы данных (name)
* Ид - Число - числовой идентификатор базы (database_id)
* ФизическоеИмя - Строка - физическое имя базы (physical_database_name)
* Владелец - Строка - пользователь - владелец базы (db owner)
* ДатаСоздания - Дата - дата создания базы (create_date)
* РежимСовместимости - Число - режим совместимости базы (версия MS SQL)
(compatibility_level)
* ЯзыковыеУстановки - Строка - используемые языковые установки (collation_name)
* РежимДоступа - Булево - режим пользовательского доступа к базе
(SINGLE_USER, MULTI_USER) (user_access_desc)
* ТолькоДляЧтения - Булево - флаг режима только для чтения (is_read_only)
* Состояние - Строка - состояние базы (ONLINE, OFFLINE) (state_desc)
* РежимОжидания - Булево - флаг нахождения базы в режиме ожидания (is_in_standby)
* РежимИзоляцииСнимков - Булево - флаг использования режима изоляции снимков
(snapshot_isolation_state)
* РежимФиксированногоЧтенияСнимков - Булево - флаг использования фиксированного чтения снимков
(is_read_committed_snapshot_on)
* МодельВосстановления - Строка - модель восстановления базы (FULL, SIMPLE, BULK_LOGGED)
(recovery_model_desc)
* АвтоСозданиеСтатистики - Булево - флаг автоматического создания статистики
(is_auto_create_stats_on)
* АвтоСозданиеСтатистикиИнкрементально - Булево - флаг автоматического инкрементального создания статистики
(is_auto_create_stats_incremental_on)
* АвтоОбновлениеСтатистики - Булево - флаг автоматического обновления статистики
(is_auto_update_stats_on)
* АвтоОбновлениеСтатистикиАсинх - Булево - флаг автоматического асинхронного обновления статистики
(is_auto_update_stats_async_on)
* ПолнотекстовыйПоиск - Булево - флаг использования полнотекстового поиска
(is_fulltext_enabled)
* Шифрование - Булево - флаг использования шифрования базы (is_encrypted)

Процедура УстановитьОднопользовательскийРежимБазы() - переводит базу данных в однопользовательский режим

Параметры:
БазаСтрокаимя базы данных

Процедура УстановитьМногопользовательскийРежимБазы() - переводит базу данных в многопользовательский режим

Параметры:
БазаСтрокаимя базы данных

Функция ПолучитьВладельца() - получает текущего владельца базы

Параметры:
БазаСтрокаимя базы данных

Возвращаемое значение: Строка - имя текущего владельца базы

Процедура ИзменитьВладельца() - устанавливает нового владельца базы

Параметры:
БазаСтрокаимя базы данных
ВладелецБазыСтрокановый владелец базы

Процедура ПолучитьМодельВосстановления() - получает модель восстановления базы (FULL, SIMPLE, BULK_LOGGED)

Параметры:
БазаСтрокаимя базы данных

Возвращаемое значение: Строка - текущая модель восстановления базы

Процедура ИзменитьМодельВосстановления() - устанавливает модель восстановления базы (FULL, SIMPLE, BULK_LOGGED)

Параметры:
БазаСтрокаимя базы данных
МодельВосстановленияСтрокановая модель восстановления (FULL, SIMPLE, BULK_LOGGED)

Функция ПолучитьЛогическоеИмяФайла() - получает логическое имя файла в базе

Параметры:
БазаСтрокаимя базы данных
ТипФайлаСтрокаROWS - файл базы; LOG - файл журнала транзакций

Возвращаемое значение: Строка - логическое имя файла в базе данных

Процедура ИзменитьЛогическоеИмяФайла() - устанавливает новое логическое имя файла базы

Параметры:
БазаСтрокаимя базы данных
ИмяСтрокалогическое имя файла для изменения
НовоеИмяСтрокановое логическое имя файла

Процедура УстановитьЛогическиеИменаФайлов() - устанавливает логические имена файлов в формате

<НовоеИмя> - для файла данных

<НовоеИмя>_log - для файла журнала транзакций

Параметры:
БазаСтрокаимя базы данных
НовоеИмяСтрокановое имя файлов, если не указано, то используется имя базы

Процедура ВключитьКомпрессию() - включает компрессию данных базы на уровне страниц

Параметры:
БазаСтрокаимя базы данных

Процедура СжатьБазу() - выполняет сжатие базы (shrink)

Параметры:
БазаСтрокаимя базы данных

Процедура СжатьФайлЖурналаТранзакций() - выполняет сжатие файла журнала транзакций (shrink)

Параметры:
БазаСтрокаимя базы данных

Функция ВыполнитьСкрипты() - выполняет указанные скрипты

Параметры:
СкриптыВыполненияСтрокапути к файлам скриптов, разделенные ";"
СтрокаПеременныхСтроканабор значений переменных в виде "<Имя>=<Значение>", разделенные ";"

Возвращаемое значение: Строка - результат выполнения скриптов

Функция ВыполнитьЗапрос() - выполняет запрос к СУБД

Параметры:
ТекстЗапросаСтрокатекст исполняемого запроса
РазделительСтрокасимвол - разделитель колонок результата
УбратьПробелыБулевоИстина - будут убраны выравнивающие пробелы из результата

Возвращаемое значение: Строка - результат выполнения запроса

Модуль РаботаСИБ

Процедура ВыгрузитьИнформационнуюБазуВФайл() - выполняет выгрузку информационной базы в DT-файл

Параметры:
ПараметрыИБСтруктурапараметры подключения к базе 1С
*СтрокаПодключенияСтрокастрока подключения к базе 1С
*ПользовательСтрокаимя пользователя базы 1С
*ПарольСтрокапароль пользователя базы 1С
ПутьКФайлуСтрокапуть к DT-файлу для выгрузки базы 1С
ИспользуемаяВерсияПлатформыСтрокамаска версии 1С
КлючРазрешенияСтрокаключ разрешения входа в заблоrированную серверную базу 1С (/UC)

Процедура ЗагрузитьИнформационнуюБазуИзФайла() - выполняет загрузку информационной базы из DT-файла

Параметры:
ПараметрыИБСтруктурапараметры подключения к базе 1С
*СтрокаПодключенияСтрокастрока подключения к базе 1С
*ПользовательСтрокаимя пользователя базы 1С
*ПарольСтрокапароль пользователя базы 1С
ПутьКФайлуСтрокапуть к DT-файлу для загрузки в базу 1С
КоличествоЗаданийЧислоколичество заданий загрузки файла (для клиент-серверной базы, начиная с версии платформы 8.3.19))
ИспользуемаяВерсияПлатформыСтрокамаска версии 1С
КлючРазрешенияСтрокаключ разрешения входа в заблоrированную серверную базу 1С (/UC)

Процедура ОчиститьЛокальныйКэшИнформационнойБазы() - выполняет очистку локального кэша информационной базы 1С

Параметры:
СтрокаПодключенияСтрокастрока подключения к базе 1С

Процедура ОчиститьВсеЛокальныеКэшиИнформационныхБаз() - выполняет очистку всех локальных кэшей информационных баз 1С

Параметры:
нет

Процедура ОтключитьОтХранилища() - выполняет отключение информационной базы от хранилища конфигурации

Параметры:
ПараметрыИБСтруктурапараметры подключения к базе 1С
*СтрокаПодключенияСтрокастрока подключения к базе 1С
*ПользовательСтрокаимя пользователя базы 1С
*ПарольСтрокапароль пользователя базы 1С
ИспользуемаяВерсияПлатформыСтрокамаска версии 1С
ИмяРасширенияСтрокаимя расширения, отключаемого от хранилища (если не указано, отключается основная конфигурация)
КлючРазрешенияСтрокаключ разрешения входа в заблоrированную серверную базу 1С (/UC)

Процедура ПодключитьКХранилищу() - выполняет подключение информационной базы к хранилищу конфигурации

Параметры:
ПараметрыИБСтруктурапараметры подключения к базе 1С
*СтрокаПодключенияСтрокастрока подключения к базе 1С
*ПользовательСтрокаимя пользователя базы 1С
*ПарольСтрокапароль пользователя базы 1С
ПараметрыХранилищаСтруктурапараметры подключения к хранилищу конфигурации
*АдресСтрокаадрес хранилища конфигурации
*ПользовательСтрокаимя пользователя хранилища конфигурации
*ПарольСтрокапароль пользователя хранилища конфигурации
ИспользуемаяВерсияПлатформыСтрокамаска версии 1С
ИмяРасширенияСтрокаимя расширения, отключаемого от хранилища (если не указано, отключается основная конфигурация)
ОбновитьИББулевоИстина - после обновления обновить конфигурацию базы данных
КлючРазрешенияСтрокаключ разрешения входа в заблоrированную серверную базу 1С (/UC)

Процедура СоздатьСервернуюБазу() - создание серверной информационной базы 1С

Параметры:
Параметры1ССтруктурапараметры создания базы 1С
*Сервер1ССтрокаадрес кластера серверов 1С ([<протокол>://]<адрес>[:<порт>])
*ИмяИБСтрокаимя информационной базы на сервере 1С
*РазрешитьВыдачуЛицензийБулевоИстина - разрешить выдачу лицензий сервером 1С (по умолчанию: Истина)
*РазрешитьРегЗаданияБулевоИстина - разрешить запуск рег. заданий (по умолчанию: Ложь)
ПараметрыСУБДСтруктурапараметры подключения к СУБД
*ТипСУБДСтрокатип сервера СУБД ("MSSQLServer" <по умолчанию>, "PostgreSQL", "IBMDB2", "OracleDatabase")
*СерверСУБДСтрокаадрес сервера СУБД
*ПользовательСУБДСтрокапользователь сервера СУБД
*ПарольСУБДСтрокапароль пользователя сервера СУБД
*ИмяБДСтрокаимя базы на сервере СУБД (если не указано будет использовано имя ИБ 1С)
*СмещениеДатЧислосмещение дат на сервере MS SQL (0; 2000 <по умолчанию>)
*СоздаватьБДБулевоИстина - будет создана база на сервере СУБД в случае отсутствия
АвторизацияВКластереСтруктурапараметры авторизации в кластере 1С
*ИмяСтрокаимя администратора кластера 1С
*ПарольСтрокапароль администратора кластера 1С
ИспользуемаяВерсияПлатформыСтрокамаска версии 1С
ОшибкаЕслиСуществуетБулевоИстина - вызвать исключение если ИБ в кластере 1С существует (по умолчанию: Ложь)
ПутьКШаблонуСтрокапуть к шаблону для создания информационной базы (*.cf; *.dt). Если шаблон не указан, то будет создана пустая ИБ
ИмяВСпискеБазСтрокаимя в списке баз пользователя (если не задано, то ИБ в список не добавляется)

Процедура СоздатьФайловуюБазу() - создание файловой информационной базы 1С

Параметры:
ПутьКБазеСтрокапуть к каталогу базы 1С
ИспользуемаяВерсияПлатформыСтрокамаска версии 1С
ПутьКШаблонуСтрокапуть к шаблону для создания информационной базы (*.cf; *.dt). Если шаблон не указан, то будет создана пустая ИБ
ИмяВСпискеБазСтрокаимя в списке баз пользователя (если не задано, то ИБ в список не добавляется)

Модуль РаботаСФайлами

Процедура КомандаСистемыКопироватьФайл() - выполняет копирование/перемещение указанных файлов с использованием команд системы (xcopy)

Параметры:
ИсточникСтрокакопируемые файлы
ПриемникСтроканазначение копирования, каталог или файл
ПеремещениеБулевовыполнить перемещение файлов (удалить источник после копирования)
ТолькоСегодняБулевокопирование файлов, измененных не ранее текущей даты (параметр /D для xcopy)

Процедура КомандаСистемыУдалитьФайл() - выполняет удаление указанных файлов с использованием команды системы (del)

Параметры:
ПутьКФайлуСтрокапуть к удаляемому файлу
ИсключениеПриОшибкеБулевоИстина - вызывать исключение при ошибке удаления

Функция ПрочитатьСписокФайлов() - читает список файлов из файла

Параметры:
ПутьКСпискуСтрокапуть к удаляемому файлу
ДобавитьПутьКИсходномуФайлуБулевоИстина - при чтении добавлять к результату путь к исходному файлу списка
ДобавитьИсходныйФайлБулевоИстина - добавить исходный файл в список

Возвращаемое значение: Массив из Строка - прочитанный список файлов

Процедура ЗапаковатьВАрхив() - выполняет архиваци указанного файла с разбитием на части указанного размера

Параметры:
ПутьКФайлуСтрокапуть к файлу, который будет архивироваться
ИмяАрхиваСтрокаимя файла-архива
ИмяСпискаФайловСтрокаимя файла-списка (содержащего все чати архива)
РазмерТомаСтрокаразмер части {, , } (по умолчанию 50m)
СтепеньСжатияЧислоуровень сжатия частей архива {0 - 9} (по умолчанию 0 - не сжимать)
УдалитьИсточникБулевоИстина - после архивации исходный файл будет удален

Процедура РаспаковатьАрхив() - выполняет выполняет распаковку архива

Параметры:
ПутьКАрхивуСтрокапуть к файлу архива, который будет распаковываться
ЭтоСписокФайловБулевоИстина - передан список файлов; Ложь - передан первый том архива
УдалитьИсточникБулевоИстина - после распаковки исходный файл будет удален

Процедура ПодключитьДиск() - подключает указанный сетевой диск

Параметры:
ИмяУстройстваСтрокаимя (буква) подключаемого диска
ИмяРесурсаСтрокасетевой путь к подключаемому ресурсу
ПользовательСтрокапользователь от имени которого выполняется подключение
ПарольПользователяСтрокапароль пользователя от имени которого выполняется подключение

Процедура ОтключитьДиск() - отключает указанный сетевой диск

Параметры:
ИмяУстройстваСтрокаимя (буква) отключаемого диска

Класс РаботаСЯндексДиск

РаботаСЯндексДиск = Новый РаботаСЯндексДиск(<Токен>);
Параметры:
_ТокенСтрокатокен авторизации Yandex-диска

Функция Соединение() - возвращает соединение с Yandex-диском

Параметры:
нет

Возвращаемое значение: ЯндексДиск - соединение с Yandex-диском

Процедура УстановитьПараметрыСоединения() - создает соединение с Yandex-диском с указанными параметрами

Параметры:
_ТокенСтрокатокен авторизации Yandex-диска

Процедура СоздатьКаталог() - создает каталог на Yandex-диске

Параметры:
ЦелевойПутьСтрокапуть на yandex-диске к создаваемому каталогу

Процедура ОтправитьФайл() - отправляет файл на Yandex-Диск

Параметры:
ПутьКФайлуСтрокапуть к отправляемому файлу
ЦелевойПутьСтрокапуть на yandex-диске, куда будет загружен файл
ПерезаписыватьБулевоперезаписать файл на Яндекс-диске при загрузке

Функция ПолучитьФайл() - получает файл из Yandex-Диска

Параметры:
ПутьКФайлуСтрокарасположение файла на yandex-диске
ЦелевойПутьСтрокапуть, куда будет загружен файл
УдалитьИсточникБулевоИстина - удалить файл после загрузки

Возвращаемое значение: Число - код возврата команды

Функция Существует() - проверка существования файла / каталога на Yandex-Диске

Не реализовано

Параметры:
ПутьКФайлуСтрокарасположение файла на yandex-диске

Возвращаемое значение: Булево - Истина - файл / каталог существует

Процедура Удалить() - удаляет файл из Yandex-Диска

Параметры:
ПутьКФайлуСтрокарасположение файла на yandex-диске

Класс РаботаСNextCloud

РаботаСNextCloud = Новый РаботаСNextCloud("http://MyNextCloudServer:8080", "user", "P@ssw0rd");

Функция Адрес() - возвращает адрес сервера NextCloud

Возвращаемое значение: Строка - адрес сервера NextCloud

Функция Пользователь() - возвращает имя пользователя сервера NextCloud

Возвращаемое значение: Строка - имя пользователя сервера NextCloud

Функция Соединение() - возвращает соединение с сервером NextCloud

Возвращаемое значение: ПодключениеNextCloud - соединение с сервером NextCloud

Процедура УстановитьПараметрыСоединения() - создает соединение с сервером NextCloud с указанными параметрами

Параметры:
_АдресСтрокаадрес сервера NextCloud
_ПользовательСтрокаимя пользователя сервера NextCloud
ПарольСтрокапароль пользователя сервера NextCloud

Процедура СоздатьКаталог() - создает каталог в сервисе NextCloud

Параметры:
ЦелевойПутьСтрокапуть к создаваемому каталогу

Процедура ОтправитьФайл() - отправляет файл в сервис NextCloud

Параметры:
ПутьКФайлуСтрокапуть к отправляемому файлу
ЦелевойПутьСтрокапуть к каталогу в сервисе NextCloud, куда будет загружен файл
ПерезаписыватьБулевоперезаписать файл в сервисе NextCloud при загрузке

Функция ПолучитьФайл() - получает файл из сервиса NextCloud

Параметры:
ПутьКФайлуСтрокарасположение файла на сервисе NextCloud
ЦелевойКаталогСтрокапуть к каталогу, куда будет загружен файл
УдалитьИсточникБулевоИстина - удалить файл после загрузки

Возвращаемое значение: Строка - путь к полученному файлу

Функция Существует() - проверяет существование файла / каталога в сервиса NextCloud

Параметры:
ПутьНаДискеСтрокарасположение файла на сервисе NextCloud

Возвращаемое значение: Булево - Истина - файл / каталог существует

Процедура Удалить() - удаляет файл из сервиса NextCloud

Параметры:
ПутьНаДискеСтрокарасположение файла на сервисе NextCloud

Класс РаботаСSFTP

РаботаСSFTP = Новый РаботаСSFTP("MySFTPServer:2222", "user", "P@ssw0rd");

Функция Адрес() - возвращает адрес сервера SSH

Возвращаемое значение: Строка - адрес сервера SSH

Функция Пользователь() - возвращает имя пользователя сервера SSH

Возвращаемое значение: Строка - имя пользователя сервера SSH

Функция Соединение() - возвращает соединение с сервером SSH

Возвращаемое значение: КлиентSSH - соединение с сервером SSH

Процедура УстановитьПараметрыСоединения() - создает соединение с сервером SSH с указанными параметрами

Параметры:
_АдресСтрокаадрес сервера SSH
_ПользовательСтрокаимя пользователя сервера SSH
ПутьККлючуСтрокапуть к файлу закрытого ключа сервера SSH

Процедура СоздатьКаталог() - каталог на сервере SFTP

Параметры:
ЦелевойПутьСтрокапуть к создаваемому каталогу

Процедура ОтправитьФайл() - отправляет файл в сервис NextCloud

Параметры:
ПутьКФайлуСтрокапуть к отправляемому файлу
ЦелевойПутьСтрокапуть к каталогу на сервере SFTP, куда будет загружен файл
ПерезаписыватьБулевоперезаписать файл на сервере SFTP при загрузке

Функция ПолучитьФайл() - получает файл с сервера SFTP

Параметры:
ПутьКФайлуСтрокарасположение файла на сервере SFTP
ЦелевойКаталогСтрокапуть к каталогу, куда будет загружен файл
УдалитьИсточникБулевоИстина - удалить файл после загрузки

Возвращаемое значение: Строка - путь к полученному файлу

Функция Существует() - проверяет существование файла / каталога на сервере SFTP

Параметры:
ПутьНаДискеСтрокарасположение файла на сервере SFTP

Возвращаемое значение: Булево - Истина - файл / каталог существует

Процедура УдалитьФайл() - удаляет файл с сервера SFTP

Параметры:
ПутьНаДискеСтрокарасположение файла на сервере SFTP

Процедура УдалитьКаталог() - удаляет каталог с сервера SFTP

Параметры:
ПутьНаДискеСтрокарасположение каталога на сервере SFTP

Класс СтруктураХраненияИБ

СтруктураИБ = Новый СтруктураХраненияИБ();

Функция ВерсияФорматаКонфигурации() - возвращает версию формата конфигурации

Параметры:
нет

Возвращаемое значение: Структура - информация о версии формата конфигурации

* Версия - Число - номер версии формата конфигурации
* ТребуемаяВерсияПлатформы - Строка - минимальная версия платформы 1С

Функция ОписаниеКонфигурации() - возвращает описание конфигурации

Параметры:
нет

Возвращаемое значение: Структура - описание конфигурации

* Имя - Строка - имя конфигурации
* Синоним - Строка - синоним конфигурации
* Версия - Строка - версия конфигурации
* РежимСовместимости - Строка - версия режима совместимости конфигурации
* КраткаяИнформация - Строка - краткая информация о конфигурации
* ПодробнаяИнформация - Строка - подробная информация о конфигурации
* Поставщик - Строка - поставщик конфигурации
* АвторскиеПрава - Строка - данные об авторских правах
* АдресИнформацииОПоставщике - Строка - адрес сайта с информацией о поставщике
* АдресИнформацииОКонфигурации - Строка - адрес сайта с информацией о конфигурации
* АдресКаталогаОбновлений - Строка - адрес сайта с каталогом обновлений

Функция ОписаниеМетаданныхОбъектаБД1С() - возвращает описание метаданных 1С для объекта СУБД по его имени

Параметры:
ИмяОбъектаСтрокаимя таблицы или поля таблицы СУБД

Возвращаемое значение: Структура - описание метаданных 1С по имени объекта СУБД

* Владелец - Структура - структура описания объекта владельца
* Тип - Строка - тип объекта или коллекция
(например: Справочник, Документ, ТабличнаяЧасть, Поле)
* ТипАнгл - Строка - тип объекта или коллекция на английском
(например: Reference, Document, TabularSection, Field)
* Назначение - Строка - назначение таблицы БД (например: Основная, Итоги, Обороты)
* Имя - Строка - имя объекта в БД (Префикс + Индекс)
* Префикс - Строка - префикс объекта (например: Reference, Document, VT, Fld))
* Индекс - Число - числовой индекс объекта
* Суффикс - Строка - дополнительный суффикс имени объекта (например: "_RRef")
* Ид - Строка - UUID объекта 1С
* ИмяМетаданных - Строка - имя метаданных 1С
* ПолноеИмяМетаданных - Строка - имя метаданных 1С

Функция ОписаниеМетаданныхОбъектовБД1С() - возвращает описание метаданных 1С для таблиц и полей таблиц СУБД

Параметры:
ДобавлятьКолонкиБулевоИстина - будет добавлена информация для колонок таблиц

Возвращаемое значение: Соответствие - соответствия имен таблиц СУБД и полных имен метаданных 1С описаниям объектов метаданных (см. ОписаниеМетаданныхОбъектаБД1С)

Функция ЗанимаемоеМесто() - возвращает описание занимаеиого места в базе MS SQL Server

Параметры:
нет

Возвращаемое значение: Структура - описание занимаего места

* РазмерБазы - Число - размер текущей базы данных в байтах, включает файлы данных и журналов
* Свободно - Число - место в базе данных, не зарезервированное для объектов базы данных
* Зарезервировано - Число - общий объем, выделенный объектам в базе данных
* Данные - Число - зарезервированный объем, используемый данными
* Индексы - Число - зарезервированный объем, используемый индексами
* НеИспользуется - Число - объем, зарезервированный для объектов в базе данных,
но пока не используемый
* ЖурналВсего - Число - полный объем журнала транзакций
* ЖурналИспользуется - Число - используемый объем журнала транзакций

Функция ПоказателиИспользованияТаблицБазы() - возвращает список таблиц в базе MS SQL Server и их показатели использования

Параметры:
ФильтрТаблицПоИмениСтрокафильтр имен таблиц в формате для оператора "LIKE"
СтатистикаОперацийБулевоИстина - в результат будет включена статистика по операциям с таблицами (для больших баз - может занять много времени)

Возвращаемое значение: Массив из Структура - таблицы и показатели использования

* Таблица - Строка - имя таблицы
* КоличествоСтрок - Число - количество строк в таблице
* ВсегоЗанято - Число - общий объем заниаемого места (байт)
* Используется - Число - объем, используемый данными (байт)
* НеИспользуется - Число - не используемый объем (байт)
* ОперацийЧтения - Число - количество операций чтения (read)
* ОперацийВыборки - Число - количество операций выборки (select)
* ОперацийСканирования - Число - количество операций сканирования (scan)
* ОперацийПоиска - Число - количество операций поиска (seek)
* ОперацийЗаписи - Число - количество операций записи (write)

Запуск тестов

Необходимые настройки

Для тестирования подключения / отключения сетевого диска требуются дополнительные настройки.

В реестре в ключе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters указать:

BasicAuthLevel : 0x00000002 (2)

В реестре в ключе HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager указать:

ProtectionMode : 0x00000000 (0)

Для тестирования работы с базами MS SQL пользователю, под которым выполняется вход на сервер необходимо назначить роль sysadmin

Выполнение тестов

Запуск и остановка окружения выполняются автоматически.

./tools/runtests.bat

Запуск окружения

Для выполнения отладки

./tools/startenv.bat

Остановка окружения

После выполнения отладки

./tools/stopenv.bat

Описание

Приложение oscript для копирования баз данных 1C / MS SQL и развертывания на целевой системе.

Языки

1C Enterprise

  • Dockerfile
  • Shell
  • Batchfile
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.