{"id":24370139,"url":"https://github.com/oscript-library/configor","last_synced_at":"2026-02-17T19:10:09.970Z","repository":{"id":55886597,"uuid":"118222813","full_name":"oscript-library/configor","owner":"oscript-library","description":"Библиотека для работы с конфигурационными файлами в формате json, yaml","archived":false,"fork":false,"pushed_at":"2025-02-05T10:33:19.000Z","size":480,"stargazers_count":14,"open_issues_count":5,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-05T11:29:54.590Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oscript-library.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-20T08:08:09.000Z","updated_at":"2025-02-05T10:31:59.000Z","dependencies_parsed_at":"2024-03-28T06:43:03.208Z","dependency_job_id":"42653817-f748-4432-8570-4317220ada01","html_url":"https://github.com/oscript-library/configor","commit_stats":null,"previous_names":["oscript-library/configor"],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fconfigor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fconfigor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fconfigor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscript-library%2Fconfigor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oscript-library","download_url":"https://codeload.github.com/oscript-library/configor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243203891,"owners_count":20253367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["hacktoberfest"],"created_at":"2025-01-19T04:12:45.629Z","updated_at":"2026-01-02T15:25:33.528Z","avatar_url":"https://github.com/oscript-library.png","language":"1C Enterprise","readme":"# configor\n\n[![License](https://img.shields.io/github/license/oscript-library/configor?style=badge)](https://github.com/oscript-library/configor/blob/master/LICENSE)\n[![Last release](https://img.shields.io/github/v/release/oscript-library/configor?include_prereleases\u0026label=last%20release\u0026style=badge)](https://github.com/oscript-library/configor/releases/latest)\n[![GitHub issues](https://img.shields.io/github/issues-raw/oscript-library/configor?style=badge)](https://github.com/oscript-library/configor/issues)\n[![GitHub All Releases](https://img.shields.io/github/downloads/oscript-library/configor/total?style=flat-square)](https://github.com/oscript-library/configor/releases)\n\n# Библиотека для работы с конфигурационными файлами в формате json, yaml\n\nДанная библиотека позволяет работать с конфигурационными файлами с помощью предварительного описания требуемой конфигурации.\nА так же без описания. Получение параметров по ключам вида `Настройки.Глобальные.НастройкиПрокси.Сервер`.\nОбеспечивает подстановку значение друг в друга и чтение вложенных файлов настроек\n\n## Мотивация\n\nСравнительная таблица\n\nБиблиотека от @Stepa86 [ReadParams](https://github.com/Stepa86/ReadParams)\n\nБиблиотека от @artbear [Params](https://github.com/artbear/params)\n\n\n|                                                                                                                                          | *Configor*                            | ReadParams | Params |\n|------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------|------------|--------|\n| Чтение файлов в формате json                                                                                                             | ✓                                     | ✓          | ✓      |\n| Чтение файлов в формате yaml/yml                                                                                                         | ✓                        |            |        |\n| Чтение файлов в произвольном формате (свой провайдер чтения)                                                                             | ✓                                     |            |        |\n| Выполнение подстановок при чтении                                                                                                        | ✓                                     | ✓          | ✓      |\n| Чтение переменных окружения                                                                                                              | (через произвольный провайдер)        | ✓          | ✓      |\n| Чтение параметров командной строки                                                                                                       | (через произвольный провайдер)        |            | ✓      |\n| Запись параметров в прочитанный файл                                                                                                     | (в разработке)                        |            |        |\n| Встроенный конструктор параметров               | ✓                        |            |        |\n| Выгрузка результата чтения в класс параметров                                                                                            | ✓                                     |            |        |\n| Поддержка деревовидных структур параметров `Настройки.НастройкиПрокси.Пользователь` и `Настройки.НастройкиПрокси.Сервара.0.АдресСервера` | ✓                                     |            |        |\n| Доступ к вложенным параметра (в том числе к элементам массива) в формате `ДополнительныеХабы.0.Сервер, ДополнительныеХабы.1.Сервер`      | ✓                                     |            |        |\n| Авто приоритеты - настройки в коде, в файле, в окруж., ком.строке                                                                        | ✓ (на уровне приоритетов провайдеров) |            | ✓      |\n| Безопасный доступ к параметрам (возвращает значение по умолчанию или неопределенно)                                                      | ✓                                     | ✓          | ✓      |\n\n## Пример работы:\n\n* Чтение параметров из файла\n```bsl\n\n    // Пример файла настроек\n    //{\n    //    'Настройки': {\n    //        \"Глобальные\": {\n    //            \"НастройкиПрокси\":{\n    //                \"Сервер\": \"localhost\",\n    //                \"Порт\": \"8080\"\n    //            }\n    //        }\n    //\n    //    }\n    //}\n\n    МенеджерПараметров = Новый МенеджерПараметров();\n\tМенеджерПараметров.УстановитьФайлПараметров(\"Путь/К/Файлу\");\n\tМенеджерПараметров.Прочитать();\n\n    ПроксиСервер = МенеджерПараметров.Параметр(\"Настройки.Глобальные.НастройкиПрокси.Сервер\")\n\n    Сообщить(ПроксиСервер);\n\n```\n* Чтение параметров из vault\n```bsl\n\n    НастройкиVault = Новый Структура;\n    НастройкиVault.Вставить(\"Адрес\", \"https://vault.server.local\");\n    НастройкиVault.Вставить(\"Токен\", ПолучитьПеременнуюСреды(\"VAULT_TOKEN\"));\n    НастройкиVault.Вставить(\"Запрос\", \"v1/my_secret_store/super_secret\");\n\n    МенеджерПараметров = Новый МенеджерПараметров();\n    МенеджерПараметров.ИспользоватьПровайдерVAULT();\n\tМенеджерПараметров.УстановитьНастройкиVault(НастройкиVault);\n\tМенеджерПараметров.Прочитать();\n\n    ПроксиСервер = МенеджерПараметров.Параметр(\"Настройки.Глобальные.НастройкиПрокси.Сервер\")\n\n    Сообщить(ПроксиСервер);\n\n```\n\n* Чтения параметров через конструктор параметров\n\nКласс \"ПараметрыПриложения\"\n```bsl\nПерем мПараметры;\n\nФункция Параметры() Экспорт\n\tВозврат мПараметры;\nКонецФункции\n\nПроцедура УстановитьПараметры(Знач ВходящиеПараметры) Экспорт\n\tмПараметры = ВходящиеПараметры;\nКонецПроцедуры\n\nПроцедура ОписаниеПараметров(Знач Конструктор) Экспорт\n\t\n\tНастройкиПрокси = Конструктор.НовыеПараметры(\"ПараметрСоответствиеСтруктуры\")\n\t\t\t\t.ПолеСтрока(\"Сервер\")\n\t\t\t\t.ПолеСтрока(\"Порт\")\n\t\t\t\t;\n\t\n\t\n\tНастройки = Конструктор.НовыеПараметры(\"Настройки\")\n\t\t\t\t\t\t.ПолеОбъект(\"НастройкиПрокси\", НастройкиПрокси)\n\t\t\t\t\t\t;\n\t\n\tКонструктор.ПолеСтрока(\"Версия version\")\n\t\t\t    .ПолеОбъект(\"Настройки settings\", Настройки)\n\t\t\t\t;\n\nКонецПроцедуры\n\n```\n\n```bsl\n   \n    МенеджерПараметров = Новый МенеджерПараметров()\n    МенеджерПараметров.КонструкторПараметров(ПараметрыПриложения);\n    МенеджерПараметров.Прочитать();\n\n    ПроксиСервер = МенеджерПараметров.Параметр(\"Настройки.НастройкиПрокси.Сервер\")\n\n    ПроксиСерверИзПараметровПриложения = ПараметрыПриложения.Параметры().Настройки.НастройкиПрокси.Сервер;\n\n    Сообщить(ПроксиСерверИзПараметровПриложения);\n\n```\n\nТак же описание функциональности содержится в папке `tests`. В прилагающихся `*.os` можно подсмотреть больше примеров из тестов.\n\n## Установка\n\nДля установки необходимо:\n* Скачать файл configor.ospx из раздела [releases](https://github.com/khorevaa/configor/releases)\n* Воспользоваться командой:\n\n```\nopm install -f \u003cПутьКФайлу\u003e\n```\nили установить с хаба пакетов\n\n```\nopm install configor\n```\n## Базовые принципы работы с классами библиотеки\n\n*Документация в разработке*\n\n## Публичный интерфейс\n\n[Документация публичного интерфейса](docs/README.md)\n## Доработка\n\nДоработка проводится по git-flow. Жду ваших PR.\n\n## Лицензия\n\nСмотри файл `LICENSE`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscript-library%2Fconfigor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foscript-library%2Fconfigor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscript-library%2Fconfigor/lists"}