Позволяет разработчику создавать константы для хранения редактируемых значений, которые могут использоваться при разработке прикладного кода.
Справочник "Группы констант" Справочник "Константы"
Права доступа (справочник Группы констант): роль "Администраторы" - редактирование.
Права доступа (справочник Константы): роль "Администраторы" - редактирование, роль "Все пользователи" - просмотр.
Внимание: Создание записей запрещено для всех пользователей системы!
Удаление разрешено пользователю Integration Service.
- Строка;
- Целочисленное значение;
- Вещественное значение;
- Логическое значение;
- Целочисленный диапазон;
- Вещественный диапазон;
- Строковый список;
- Целочисленный список;
- Вещественный список;
- Текст;
- Дата/время;
- Значение Base64.
Инициализация констант в модуле EditableConstants:
// Создание группы констант (инициализация из модуля EditableConstants)
CreateGroup("Имя", "Примечание");
// Создание константы (инициализация из модуля EditableConstants)
CreateConstants("Имя", Значение, "Примечание", "Имя группы");Инициализация констант из стороннего модуля:
// Создание группы констант (инициализация из стороннего модуля)
EditableConstants.PublicInitializationFunctions.Module.CreateGroup("Имя", "Примечание");
// Создание константы (инициализация из стороннего модуля)
EditableConstants.PublicInitializationFunctions.Module.CreateConstants("Имя", Значение, "Примечание", "Имя группы");Внимание: Поскольку в разработке модуля не используются Sid, имена констант должны быть уникальны!
Примеры инициализации констант в модуле EditableConstants:
// Создание группы
CreateGroup("Тестовая группа", "Тестовое примечание");
// Создание простых типов
CreateConstants("Строковое значение", "Тест", "Примечание", "Тестовая группа");
CreateConstants("Целочисленное значение", 1, "Примечание", "Тестовая группа");
CreateConstants("Вещественное значение", 1,57, "Примечание", "Тестовая группа");
CreateConstants("Логическое значение", true, "Примечание", "Тестовая группа");
CreateConstants("Дата и время", Calendar.Now, "Примечание", "Тестовая группа");
CreateConstants("Текстовое значение", "Тест", true, "Примечание", "Тестовая группа");
CreateBase64Constants("Значение Base64", "Тест", "Примечание", "Тестовая группа");
// Создание диапазонов
CreateConstants("Целочисленный диапазон", 1, 5, "Примечание", "Тестовая группа");
CreateConstants("Вещественный диапазон", 1.45, 8.49, "Примечание", "Тестовая группа");
//Создание списков
CreateConstants("Строковый список", new List<string> {"Строка 1", "Строка 2", "Строка 3"}, "Примечание", "Тестовая группа");
CreateConstants("Целочисленный список", new List<int> {1, 2, 3, 4, 5}, "Примечание", "Тестовая группа");
CreateConstants("Вещественный список", new List<double> {1.56, 2.33, 3.45, 4.75, 5.12}, "Примечание", "Тестовая группа");Примеры чтения и перезаписи значения констант:
using ConstantsFunc = finex.EditableConstants.PublicFunctions.Module.Remote;
// Пример получения значения константы с генерацией исключения в случае ошибки
Int? intValue = ConstantsFunc.GetValueIntByName("Имя константы");
List<string> listString = ConstantsFunc.GetValueListStringByName("Имя константы");
// Пример получения значения константы без генерации исключения в случае ошибки
Int? intValue = ConstantsFunc.GetValueIntByName("Имя константы", false);
List<string> listString = ConstantsFunc.GetValueListStringByName("Имя константы", false);
// Пример программного изменения значения константы без генерации исключения в случае ошибки
int intValue = 10;
ConstantsFunc.SetValueIntByName("Имя константы", intValue, false);
List<string> listString = new List<string> {"Строка 1", "Строка 2", "Строка 3"};
ConstantsFunc.SetValueListStringByName("Имя константы", listString, false);
// Пример получения значения текстовой константы с генерацией исключения в случае ошибки
ConstantsFunc.GetValueTextByName("Имя константы");
// Пример получения значения константы Base64 в формате Base64
ConstantsFunc.GetValueBase64ByName("Имя константы");
// Пример получения значения константы Base64 преобразованного в строку
ConstantsFunc.GetValueBase64ByName("Имя константы", true)
// Пример получения значения константы Base64 преобразованного в строку без генерации исключения
ConstantsFunc.GetValueBase64ByName("Имя константы", true, false);Для работы требуется установленный Directum Development studio версии 3.2 и выше.
- Склонировать репозиторий Constants в папку (например C:\WorkFolder).
- Указать в _ConfigSettings.xml DDS:
<block name="REPOSITORIES">
<repository folderName="Base" solutionType="Base" url="<адрес локального репозитория>" />
<repository folderName="Work" solutionType="Work" url="<адрес локального репозитория>" />
<repository folderName="<Папка из п.1>" solutionType="Work" url="https://github.com/k4889/Constants" />
</block>Возможные варианты:
- Сделать fork репозитория Constants для своей учетной записи.
- Склонировать созданный в п. 1 репозиторий в папку.
- Указать в _ConfigSettings.xml DDS:
<block name="REPOSITORIES">
<repository folderName="Base" solutionType="Base" url="<адрес локального репозитория>" />
<repository folderName="Work" solutionType="Work" url="<адрес локального репозитория>" />
<repository folderName="<Папка из п.2>" solutionType="Work" url="<Адрес репозитория gitHub учетной записи пользователя из п. 1>" />
</block>Вариант не рекомендуется:
- так как при выходе новой версии шаблона разработки не гарантируется обратная совместимость;
- потеряется возможность изменения или доработки функционала под собственые требования;
- Склонировать репозиторий Settings в папку.
- Указать в _ConfigSettings.xml DDS:
<block name="REPOSITORIES">
<repository folderName="Base" solutionType="Base" url="" />
<repository folderName="<Папка из п.1>" solutionType="Base" url="<Адрес репозитория gitHub>" />
<repository folderName="<Папка для рабочего слоя>" solutionType="Work" url="https://github.com/k4889/Constants" />
</block>Рекомендуемый вариант для проектов внедрения.
- В системе контроля версий с поддержкой git создать новый репозиторий.
- Склонировать репозиторий Constants в папку с ключом
--mirror. - Перейти в папку из п. 2.
- Импортировать клонированный репозиторий в систему контроля версий командой:
git push –mirror <Адрес репозитория из п. 1>
Note
Замечания и пожеланию по развитию шаблона разработки фиксируйте через Issues.
При оформлении ошибки, опишите сценарий для воспроизведения. Для пожеланий приведите обоснование для описываемых изменений - частоту использования, бизнес-ценность, риски и/или эффект от реализации.
Внимание! Изменения будут вноситься только в новые версии.