Для хранения условно постоянных величин разработчиками 1С предусмотрен отдельный объект конфигурации "Константы". При этом так случается, что использование этого объекта по тем или иным причинам не подходит для реализации настроек. Предлагаю Вашему вниманию свой вариант настройки хранения констант, периодических значений, используемых для различных нужд при разработке настроек конфигурации, печатных форм, отчётов, и др.
Постановка задачи:
Нужно обращаться к какому-либо значению базы данных в коде.
- Ссылки - искать по коду или по наименованию?
- Примитивные типы - например, строка текста в печатной форме - прописывать в коде?
А если эти значения ещё и периодические? А если у ссылочного значения поменяют наименование или код? А может сделать элемент предопределённым?
В общем идея не претендует на новизну. Думаю, многие используют свои вариации хранения условно постоянных значений.
Для чего это:
- Чтобы проще обновлять типовые конфигурации - не нужно добавлять предопределённые элементы в типовые объекты
- Чтобы при изменении наименования, кода ссылочного типа настройка неожиданно не рухнула
- Чтобы добавить "периодичность" Константам
- ........
Ранее я использовал настройку основанную на одном регистре со строковым измерением и ресурсом составного типа. Сейчас реализация немного более гибкая - кто хочет использует предопределённые элементы ПВХ, кто хочет создаёт их в Предприятии.
Итак. Реализация.
Создаём план видов характеристик. В типах прописываем все типы которые понадобятся, потом их можно будет добавить.
Создаём периодический регистр сведений. Измерение будет ссылка на элемент ПВХ, ресурс - Характеристика нашего нового ПВХ (не забыть установить связь по типу и связь параметров выбора, чтобы по фен-шую).
В общем то для минимального исполнения - всё. Можно заходить в предприятие и заполнять регистр. В коде можно получать значения запросом или объектно - ПолучитьПоследнее(..).
Но лёгкие пути не для нас, поэтому создаём в нашем (тот, что не типовой) общем модуле функцию ЗначениеКонстанты(Знач Константа, Дата). В которой прописываем код получение этих самых констант из регистра.
В своей настройке я это получение сделал чуточку гибким - получать можно по ссылке ПВХ или по строковому значению - в этом случае поиск будет по наименованию элемента ПВХ (его то изменять будем мы, если вообще будем - тут не то же, что со ссылкой на номенклатуру). Плюс в параметр можно передать массив, тогда функция вернёт Соответствие.
Чаще разработка происходит в копии, и изменения через хранилище получаются в рабочую базу. Значения констант нужно устанавливать в рабочей базе заново. И нужно не забыть, как они назывались. Для удобства решил добавить механизм автоматического добавления новых видов констант в регистр. Добавляются они текущей датой с пустым значением установленного типа. Это, конечно, для предопределённых элементов ПВХ.
На прошлом регистре констант делал настройку для разбивки по категориям, и установку различного представления списка регистра (по категориям, списком, по типам). Здесь этого пока не реализовано. Пока необходимости нет. Может быть в следующих релизах с ростом регистра будет и это.
И... Обязательно надо установить права на новые объекты!
Настройка создана на платформе 8.3.12.1714. Будет работать начиная с платформы 8.3.5.1068, т.к. испольуется объект "Схема запроса".