{"id":23760870,"url":"https://github.com/otymko/crs-api","last_synced_at":"2026-01-27T04:34:53.692Z","repository":{"id":46031566,"uuid":"305052764","full_name":"otymko/crs-api","owner":"otymko","description":"Библиотека взаимодействия с хранилищем 1С по HTTP","archived":false,"fork":false,"pushed_at":"2021-11-18T20:14:38.000Z","size":97,"stargazers_count":37,"open_issues_count":7,"forks_count":10,"subscribers_count":12,"default_branch":"develop","last_synced_at":"2025-05-25T05:52:59.487Z","etag":null,"topics":["checkbsl","crs","hacktoberfest","onescript","oscript-library"],"latest_commit_sha":null,"homepage":"","language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/otymko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-18T08:08:35.000Z","updated_at":"2025-03-25T11:35:05.000Z","dependencies_parsed_at":"2022-09-14T11:13:07.562Z","dependency_job_id":null,"html_url":"https://github.com/otymko/crs-api","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/otymko/crs-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otymko%2Fcrs-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otymko%2Fcrs-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otymko%2Fcrs-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otymko%2Fcrs-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/otymko","download_url":"https://codeload.github.com/otymko/crs-api/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/otymko%2Fcrs-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28802067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T03:44:14.111Z","status":"ssl_error","status_checked_at":"2026-01-27T03:43:33.507Z","response_time":168,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["checkbsl","crs","hacktoberfest","onescript","oscript-library"],"created_at":"2024-12-31T20:38:06.780Z","updated_at":"2026-01-27T04:34:53.658Z","avatar_url":"https://github.com/otymko.png","language":"1C Enterprise","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CRS API - библиотека взаимодействия c сервером хранилищ 1С по HTTP\n\n[![GitHub release](https://img.shields.io/github/release/otymko/crs-api.svg?style=flat-square)](https://github.com/otymko/crs-api/releases)\n[![Статус Порога Качества](https://open.checkbsl.org/api/project_badges/measure?project=crs-api\u0026metric=alert_status)](https://open.checkbsl.org/dashboard?id=crs-api)\n[![Покрытие](https://open.checkbsl.org/api/project_badges/measure?project=crs-api\u0026metric=coverage)](https://open.checkbsl.org/dashboard?id=crs-api)\n[![Технический долг](https://open.checkbsl.org/api/project_badges/measure?project=crs-api\u0026metric=sqale_index)](https://open.checkbsl.org/dashboard?id=crs-api)\n[![GitHub license](https://img.shields.io/github/license/otymko/crs-api.svg?style=flat-square)](https://github.com/otymko/crs-api/blob/develop/LICENSE.md)\n\n## Краткое описание\n\nБиблиотека позволяет напрямую взаимодействовать с сервером хранилища 1С по протоколу HTTP. \nВ библиотеке не используется пакетный режим запуска 1С.\n\n## Область применения\n\nБиблиотека используется для централизованного управления хранилищами 1С. С помощью проекта например можно:\n* Управлять пользователями хранилищ в едином месте.\n\nP.S. Для этого требуется написать веб приложение на базе [OneScript.Web](https://github.com/EvilBeaver/OneScript.Web).\n\n## Установка\n\n### С помощью `opm`\n\nВ консоли нужно выполнить команду:\n```sh\nopm install crs-api\n```\n\n### Из файла\n\nСобираем вручную или качаем пакет из раздела `Релизы`. Для установки из файла, в консоли выполняем команду:\n```sh\nopm install -f /path/to/crs-api.osxp\n```\n\n## Примеры\n\n### Версия сервера хранилищ 1С\n\nДля запроса версии сервера хранилищ 1С:\n```bsl\nАдресХранилища = \"http://localhost/repo/repo.1cc\";\nВерсияСервераХранилища = МенеджерХранилищ.ВерсияСервераХранилища(АдресХранилища);\n```\n\nПосле выполнения, `ВерсияСервераХранилища` содержит версию сервера хранилища. Например: `8.3.12.1855`.\nВ случае возникновения будет вызвано исключение.\n\n### Проверка существования хранилища 1С\n\nДля проверки существования хранилища 1С:\n```bsl\nАдресХранилища = \"http://localhost/repo/repo.1ccr\";\nИмяХранилища = \"MyTrade\";\nВерсияПлатформы = \"8.3.15.1855\";\nХранилищеСуществует = МенеджерХранилищ.ХранилищеСуществует(АдресХранилища, ИмяХранилища, ВерсияПлатформы);\n```\n\nЕсли хранилище существует, то значение переменной `ХранилищеСуществует` будет `Истина`.\n\n### Создание нового хранилища 1С\n\nДля создания нового хранилища 1С требуется:\n* Сервер хранилищ 1С опубликованный на веб-сервере\n\n```bsl\nАдресХранилища = \"http://localhost/repo/repo.1ccr\";\nИмяХранилища = \"MyTrade\";\nВерсияПлатформы = \"8.3.15.1855\";\nПользователь = \"Администратор\";\nПароль = \"qwerty12345\";\nРезультат = МенеджерХранилищ.НовоеХранилище1C(АдресХранилища, ИмяХранилища, \n    ВерсияПлатформы, Пользователь, Пароль);\t\n\nСообщить(Результат); // ИмяХранилища\n```\n\nВ результате на сервере хранилищ 1С будет создано новое хранилище 1С с именем `MyTrade`. \nХранилище будет доступно по адресу: `http://localhost/repo/repo.1ccr/MyTrade`. \nЕсли хранилище не было создано, `Результат` будет равен `Неопределено`.\n\n### Подключение к хранилищу 1С\n\n```bsl\nАдресХранилища = \"http://localhost/repo/repo.1ccr\";\nВерсияПлатформы = \"8.3.15.1855\";\nИмяХранилища = \"MyTrade\";\nПользователь = \"Администратор\";\nПароль = \"qwerty12345\";\n\nКлиентХранилища = Новый КлиентХранилища(АдресХранилища, ВерсияПлатформы);\nКлиентХранилища.Подключиться(Пользователь, Пароль, ИмяХранилища);\n```\n\nВ результате с помощью `КлиентХранилища` теперь можно будет выполнять основное взаимодействие с хранилищем.\nПри ошибке подключения (сервер хранилища недоступен) будет вызвано исключение. При успешном подключении:\n```bsl\n// ...\nКлиентПодключен = КлиентХранилища.АвторизацияПройдена(); // КлиентПодключен будет равен Истина при успешном подключении\n```\n\n### Создание пользователя хранилища\n\nПример создания нового пользователя хранилища:\n\n```bsl\n// ...\nИмяПользователя = \"Иванов Иван\";\nПароль = \"12345\";\nРоль = РолиХранилища.Разработчик;\nКлиентХранилища.СоздатьПользователя(ИмяПользователя, Пароль, Роль);\n```\n\nВ случае неудачи будет вызвано исключение с текстом ошибки.\n\nУ `РолиХранилища` доступны значения:\n* `ТолькоПросмотр` - дополнительных прав в хранилище не выдано\n* `Разработчик` - возможность захвата объектов в хранилище\n* `РазработчикРасширенный` - возможность захвата объектов и изменения состава версий в хранилище\n* `Администратор` - полные права без ограничений\n\n### Поиск пользователя хранилища\n\nСуществующего пользователя хранилища можно найти по его имени.\n\n```bsl\n\nИмяПользователя = \"Иванов Иван\";\nПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);\n```\n\nЕсли пользователь найден, то `ПользовательХранилища` будет содержать объект со свойствами:\n* `Идентификатор` - идентификатор пользователя в хранилище, принимает значение формата GUID\n* `Имя` - имя пользователя\n* `ХешПароля` - хеш пароля пользователя\n* `Роль` - роль в хранилище\n* `Активен` - признак авторизации пользователя\n* `Удален` - признак деактивации пользователя\n\nЕсли пользователь не найден, то `ПользовательХранилища` будет равен `Неопределено`.\n\n### Удаление пользователя хранилища\n\nДля удаления пользователя в хранилище, нужно знать его идентификатор.\n```bsl\n// ...\nИмяПользователя = \"Иванов Иван\";\nПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);\nКлиентХранилища.УдалитьПользователя(ПользовательХранилища.Идентификатор);\n```\n\nПри неуспешном удалении (деактивации) будет вызвано исключение с текстом ошибки.\n\n### Восстановление пользователя хранилища\n\nДля восстановления существующего пользователя в хранилище, нужно знать его идентификатор.\n```bsl\n// ...\nИмяПользователя = \"Иванов Иван\";\nПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);\nКлиентХранилища.ВосстановитьПользователя(ПользовательХранилища.Идентификатор);\n```\n\nПри неуспешном удалении (деактивации) будет вызвано исключение с текстом ошибки.\n\n### Изменение пользователя хранилища\n\nИзменение пользователя может понадобиться для следующего:\n* Изменение имени пользователя\n* Смена пароля\n* Изменение роли\n\nВ случае неудачи изменения данных пользователя будет вызвано исключение с текстом ошибки.\n\n#### Изменение имени пользователя хранилища\n\n```bsl\n// ...\nИмяПользователя = \"Иванов Иван\";\nПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);\n// ...\nПользовательХранилища.Имя = \"Иванов И.И.\";\nКлиентХранилища.ОбновитьПользователяХранилища(ПользовательХранилища);\n```\n\n#### Изменение пароля пользователя хранилища\n\n```bsl\n// ...\nИмяПользователя = \"Иванов Иван\";\nПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);\n// ...\nПользовательХранилища.Пароль = \"qwerty51\";\nКлиентХранилища.ОбновитьПользователяХранилища(ПользовательХранилища);\n```\n\n#### Изменение роли пользователя хранилища\n\n```bsl\n// ...\nИмяПользователя = \"Иванов Иван\";\nПользовательХранилища = КлиентХранилища.НайтиПользователя(ИмяПользователя);\n// ...\nПользовательХранилища.Роль = РолиХранилища.Администратор;\nКлиентХранилища.ОбновитьПользователяХранилища(ПользовательХранилища);\n```\n\n### Получение списка пользователей хранилища\n\nДля получения списка пользователей хранилища (включая \"удаленных\"):\n```bsl\n// ...\nСписокПользователей = КлиентХранилища.СписокПользователей();\n```\n\n`СписокПользователей` будет содержать массив объектов `ПользовательХранилища`.\n\n### Получение список версий в хранилище\n\nДля получения списка версий в хранилище:\n```bsl\n// ...\nСписокВерсийВХранилище = КлиентХранилища.СписокВерсий();\n```\n\n`СписокВерсийВХранилище` будет содержать массив объектов `ВерсияХранилища`. Из объекта `ВерсияХранилища` доступны следующие свойства:\n* `Идентификатор` - внутренний идентификатор версии (GUID)\n* `Номер` - порядковый номер версии\n* `Дата` - дата создания версии\n* `ВнутренняяВерсия` - внутренняя версия конфигурации\n* `Версия` - версия конфигурации\n* `Пользователь` - автор версии\n* `Версия1С` - номер версии платформы 1С, под которой была создана версия\n* `Комментарий` - комментарий к версии хранилища\n* `Данные` - данные конфигурации, пока закрытый пакет\n\n## Как вести разработку\n\nРазработка ведется в репозитории [otymko/crs-api](https://github.com/otymko/crs-api), issue и PR нужно создавать именно в нем.\n\nИспользуется:\n* Русский вариант синтаксиса\n* Тестирование (пока не опубликовано)\n* Разработка по `gitflow`\n\nПрежде чем `кодить` нужно:\n* Убедиться, что cуществует issue (или создать)\n* Обсудить идею с владельцем проекта\n\n## Текущие ограничения\n\nНа данный момент библиотека имеет следующие ограничения:\n* Новое хранилище 1С создается из встроенного шаблона конфигурации 1С (пустая конфигурация)\n\n## \"Дорожная карта\"\n\nВ планах реализовать:\n* Получение списка версий хранилища\n* Получение `cf` или `cfe` по версии хранилища\n* Создание нового хранилища из файла `cf` или `cfe`\n* Взаимодействия с версиями хранилища. Изменение меток, комментария\n* \"Обрезка\" хранилища\n\n## Лицензия\n\nИспользуется лицензия [MIT License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotymko%2Fcrs-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fotymko%2Fcrs-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fotymko%2Fcrs-api/lists"}