CRS API - библиотека взаимодействия c сервером хранилищ 1С по HTTP
Библиотека позволяет напрямую взаимодействовать с сервером хранилища 1С по протоколу HTTP.
В библиотеки не используется пакетный режим запуска 1С.
Библиотека используется для централизованного управления хранилищами 1С. С помощью проекта например можно:
P.S. Для этого требуется написать веб приложение на базе OneScript.Web.
opmВ консоли нужно выполнить команду:
opm install crs-api
Собираем вручную или качаем пакет из раздела Релизы. Для установки из файла, в консоли выполняем команду:
opm install -f /path/to/crs-api.osxp
Для запроса версии сервера хранилищ 1С:
АдресХранилища = "http://localhost/repo/repo.1cc";
ВерсияСервераХранилища = МенеджерХранилищ.ВерсияСервераХранилища(АдресХранилища);
После выполнения, ВерсияСервераХранилища содержит версию сервера хранилища. Например: 8.3.12.1855.
В случае возникновения будет вызвано исключение.
Для проверки существования хранилища 1С:
АдресХранилища = "http://localhost/repo/repo.1ccr";
ИмяХранилища = "MyTrade";
ВерсияПлатформы = "8.3.15.1855";
ХранилищеСуществует = МенеджерХранилищ.ХранилищеСуществует(АдресХранилища, ИмяХранилища, ВерсияПлатформы);
Если хранилище существует, то значение переменной ХранилищеСуществует будет Истина.
Для создания нового хранилища 1С требуется:
АдресХранилища = "http://localhost/repo/repo.1ccr";
ИмяХранилища = "MyTrade";
ВерсияПлатформы = "8.3.15.1855";
Пользователь = "Администратор";
Пароль = "qwerty12345";
Результат = МенеджерХранилищ.НовоеХранилище1C(АдресХранилища, ИмяХранилища,
ВерсияПлатформы, Пользователь, Пароль);
Сообщить(Результат); // ИмяХранилища
В результате на сервере хранилищ 1С будет создано новое хранилище 1С с именем MyTrade.
Хранилище будет доступно по адресу: http://localhost/repo/repo.1ccr/MyTrade.
Если хранилище не было создано, Результат будет равен Неопределено.
АдресХранилища = "http://localhost/repo/repo.1ccr";
ВерсияПлатформы = "8.3.15.1855";
ИмяХранилища = "MyTrade";
Пользователь = "Администратор";
Пароль = "qwerty12345";
КлиентХранилища = Новый КлиентХранилища(АдресХранилища, ВерсияПлатформы);
КлиентХранилища.Подключиться(Пользователь, Пароль, ИмяХранилища);
В результате с помощью КлиентХранилища теперь можно будет выполнять основное взаимодействие с хранилищем.
При ошибке подключение (сервер хранилища недоступен) будет вызвано исключение. При успешном подключении:
// ...
КлиентПодключен = КлиентХранилища.АвторизацияПройдена(); // КлиентПодключен будет равен Истина при успешном подключении
Пример создания нового пользователя хранилища:
// ...
ИмяПользователя = "Иванов Иван";
Пароль = "12345";
Роль = РолиХранилища.Разработчик;
КлиентХранилища.СоздатьПользователя(ИмяПользователя, Пароль, Роль);
В случае неудачи будет вызвано исключение с текстом ошибки.
У РолиХранилища доступны значения:
ТолькоПросмотр - дополнительных прав в хранилище не выданоРазработчик - возможность захвата объектов в хранилищеРазработчикРасширенный - возможность захвата объектов и изменения состава версий в хранилищеАдминистратор - полные права без ограниченийСуществующего пользователя хранилища можно найти по его имени.
ИмяПользователя = "Иванов Иван";
ПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);
Если пользователь найден, то ПользовательХранилища будет содержать объект со свойствами:
Идентификатор - идентификатор пользователя в хранилище, принимает значение формата GUIDИмя - имя пользователяХешПароля - хеш пароля пользователяРоль - роль в хранилищеАктивен - признак авторизации пользователяУдален - признак деактивации пользователяЕсли пользователь не найден, то ПользовательХранилища будет равен Неопределено.
Для удаления пользователя в хранилище, нужно знать его идентификатор.
// ...
ИмяПользователя = "Иванов Иван";
ПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);
КлиентХранилища.УдалитьПользователя(ПользовательХранилища.Идентификатор);
При неуспешном удалении (деактивации) будет вызвано исключение с текстом ошибки.
Для восстановления существующего пользователя в хранилище, нужно знать его идентификатор.
// ...
ИмяПользователя = "Иванов Иван";
ПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);
КлиентХранилища.ВосстановитьПользователя(ПользовательХранилища.Идентификатор);
При неуспешном удалении (деактивации) будет вызвано исключение с текстом ошибки.
Изменение пользователя можно понадобиться для следующего:
В случаи неудачи изменения данных пользователя будет вызвано исключение с текстом ошибки.
// ...
ИмяПользователя = "Иванов Иван";
ПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);
// ...
ПользовательХранилища.Имя = "Иванов И.И.";
КлиентХранилища.ОбновитьПользователяХранилища(ПользовательХранилища);
// ...
ИмяПользователя = "Иванов Иван";
ПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);
// ...
ПользовательХранилища.Пароль = "qwerty51";
КлиентХранилища.ОбновитьПользователяХранилища(ПользовательХранилища);
// ...
ИмяПользователя = "Иванов Иван";
ПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);
// ...
ПользовательХранилища.Роль = РолиХранилища.Администратор;
КлиентХранилища.ОбновитьПользователяХранилища(ПользовательХранилища);
Для получения списка пользователей хранилища (включая "удаленных"):
// ...
СписокПользователей = КлиентХранилища.СписокПользователей();
СписокПользователей будет содержать массив объектов ПользовательХранилища.
Для получения списка версий в хранилище:
// ...
СписокВерсийВХранилище = КлиентХранилища.СписокВерсий();
СписокВерсийВХранилище будет содержать массив объектов ВерсияХранилища. Из объекта ВерсияХранилища доступны следующие свойства:
Идентификатор - внутренний идентификатор версии (GUID)Номер - порядковый номер версииДата - дата создания версииВнутренняяВерсия - внутренняя версия конфигурацииВерсия - версия конфигурацииПользователь - автор версииВерсия1С - номер версии платформы 1С, под которой была создана версияКомментарий - комментарий к версии хранилищаДанные - данные конфигурации, пока закрытый пакетИспользуется:
gitflowПрежде чем кодить нужно:
На данный момент библиотека имеет следующие ограничения:
В планах реализовать:
cf или cfe по версии хранилищаcf или cfeИспользуется лицензия MIT License
1. Откройте маркетплейс из главного меню TurboConf или из меню в панели уведомлений.
2. Найдите нужную разработку.
3. Нажмите кнопку Установить.
TurboConf все установит автоматически!
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)