Skip to content
Draft
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,66 +4,124 @@ title: СоветДругогоМастера

# СоветДругогоМастера

Класс-конфигуратор для управления параметрами приложения в фреймворке ОСень. Инкапсулирует настройки для работы с `МенеджерПараметров`, включая значения деталек (параметров), префиксы переменных среды, имена конфигурационных файлов и каталоги поиска.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тоже над конструктором

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перенесено в коммите 1b95da9 - описание класса теперь расположено над конструктором.


Используется в классе `Поделка` для инициализации системы управления параметрами приложения, позволяя настроить различные источники конфигурации: переменные среды, файлы JSON/YAML/INI, и прямые значения.

## ПриСозданииОбъекта

```bsl
// Советы по созданию поделки, упакованные в объект.
// Создает объект с настройками по умолчанию для управления параметрами приложения.
// Инициализирует пустое соответствие значений деталек, устанавливает имя файла
// конфигурации "autumn-properties" и каталог поиска "src".
//
Процедура ПриСозданииОбъекта()
```

## ЗначенияДеталек

```bsl
// Установить/получить значения деталек.
// Установить/получить значения деталек (параметров конфигурации).
// Деталки передаются в МенеджерПараметров для настройки системы параметров.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Знание о МенеджереПараметров лишнее для клиента. Перефразируй.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправлено в коммите 1b95da9 - убрал упоминание МенеджераПараметров из описания класса.

//
// Параметры:
// НовоеЗначение - Соответствие - устанавливаемые значения деталек.
// НовоеЗначение - Соответствие - устанавливаемые значения деталек в формате "ключ-значение".
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это лишнее

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрано в коммите 1b95da9 - упростил описание параметров метода.

//
// Возвращаемое значение:
// Соответствие, СоветДругогоМастера - Текущее установленное значение для гетера, ЭтотОбъект для сеттера.
//
// Пример:
// Совет = Новый СоветДругогоМастера();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Совет = Новый СоветДругогоМастера();
// СоветДругогоМастера = Новый СоветДругогоМастера();

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправлено в коммите 1b95da9 - изменил формат комментария в примере использования.

// ЗначенияДеталек = Новый Соответствие();
// ЗначенияДеталек.Вставить("app.name", "МоеПриложение");
// ЗначенияДеталек.Вставить("app.version", "1.0.0");
// Совет.ЗначенияДеталек(ЗначенияДеталек);
//
Функция ЗначенияДеталек(НовоеЗначение = Неопределено) Экспорт
```

## ПрефиксПеременныхСреды

```bsl
// Установить/получить префикс переменных среды, хранящих значения деталек.
// Используется для поиска переменных среды, начинающихся с указанного префикса.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Понятнее не стало

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Упростил описание в коммите 1b95da9 - изменил формулировку на более понятную.

//
// Параметры:
// НовоеЗначение - Строка - устанавливаемый префикс переменных среды.
//
// Возвращаемое значение:
// Строка, СоветДругогоМастера - Текущее установленное значение для гетера, ЭтотОбъект для сеттера.
//
// Пример:
// Совет = Новый СоветДругогоМастера();
// Совет.ПрефиксПеременныхСреды("MYAPP_");
// // Теперь будут читаться переменные среды вида MYAPP_PARAM_NAME
//
Функция ПрефиксПеременныхСреды(НовоеЗначение = Неопределено) Экспорт
```

## ИмяФайлаСоЗначениямиДеталек

```bsl
// Установить/получить имя файла (без расширения), в котором хранятся значения деталек.
// Система будет искать файлы с этим именем и расширениями .json, .yaml, .yml, .ini.
//
// Параметры:
// НовоеЗначение - Строка - устанавливаемое имя файла.
// НовоеЗначение - Строка - устанавливаемое имя файла без расширения.
//
// Возвращаемое значение:
// Строка, СоветДругогоМастера - Текущее установленное значение для гетера, ЭтотОбъект для сеттера.
//
// Пример:
// Совет = Новый СоветДругогоМастера();
// Совет.ИмяФайлаСоЗначениямиДеталек("config");
// // Теперь будут искаться файлы: config.json, config.yaml, config.yml, config.ini
//
Функция ИмяФайлаСоЗначениямиДеталек(НовоеЗначение = Неопределено) Экспорт
```

## ДополнительныйКаталогПоискаФайлаСоЗначениямиДеталек

```bsl
// Установить/получить относительный путь к каталогу, где хранятся файл со значениями деталек.
// Установить/получить относительный путь к каталогу, где хранятся файлы со значениями деталек.
// Этот каталог добавляется к стандартным каталогам поиска конфигурационных файлов.
//
// Параметры:
// НовоеЗначение - Строка - устанавливаемый путь к каталогу.
// НовоеЗначение - Строка - устанавливаемый относительный путь к каталогу.
//
// Возвращаемое значение:
// Строка, СоветДругогоМастера - Текущее установленное значение для гетера, ЭтотОбъект для сеттера.
//
// Пример:
// Совет = Новый СоветДругогоМастера();
// Совет.ДополнительныйКаталогПоискаФайлаСоЗначениямиДеталек("config");
// // Конфигурационные файлы будут искаться также в каталоге "./config"
//
Функция ДополнительныйКаталогПоискаФайлаСоЗначениямиДеталек(НовоеЗначение = Неопределено) Экспорт
```

## Пример использования
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перенеси это над конструктором

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перенесено в коммите 1b95da9 - пример использования теперь расположен над конструктором.


```bsl
// Создание и настройка советника для конфигурации приложения
Совет = Новый СоветДругогоМастера();

// Установка значений деталек напрямую
ЗначенияДеталек = Новый Соответствие();
ЗначенияДеталек.Вставить("app.name", "МоеПриложение");
ЗначенияДеталек.Вставить("app.version", "1.0.0");
ЗначенияДеталек.Вставить("database.host", "localhost");

Совет.ЗначенияДеталек(ЗначенияДеталек)
.ПрефиксПеременныхСреды("MYAPP_")
.ИмяФайлаСоЗначениямиДеталек("application")
.ДополнительныйКаталогПоискаФайлаСоЗначениямиДеталек("config");

// Использование в создании поделки
Поделка = Новый Поделка(Совет);
```

Данная конфигурация приведет к следующему поведению системы параметров:
1. Переменные среды с префиксом `MYAPP_` будут загружены в параметры
2. Файлы `application.json`, `application.yaml`, `application.yml`, `application.ini` будут искаться в стандартных каталогах и каталоге `config`
3. Значения, установленные напрямую в соответствии, будут иметь наивысший приоритет