В помощь разработчику и не только. Хранение констант, периодических констант, "динамических" констант - условно постоянных значений

13.12.18

Разработка - Инструментарий разработчика

Настройка для хранения периодических условно постоянных значений. Удобное получение при помощи метода общего модуля с различными вариациями параметров. Настройка основана на регистре сведений и плане видов характеристик.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Подсистема хранения констант
.cf 15,36Kb ver:1.0.0
12
12 Скачать (1 SM) Купить за 1 850 руб.

Для хранения условно постоянных величин разработчиками 1С предусмотрен отдельный объект конфигурации "Константы". При этом так случается, что использование этого объекта по тем или иным причинам не подходит для реализации настроек. Предлагаю Вашему вниманию свой вариант настройки хранения констант, периодических значений, используемых для различных нужд при разработке настроек конфигурации, печатных форм, отчётов, и др.

Постановка задачи:

Нужно обращаться к какому-либо значению базы данных в коде.

  • Ссылки - искать по коду или по наименованию?
  • Примитивные типы - например, строка текста в печатной форме - прописывать в коде?

А если эти значения ещё и периодические? А если у ссылочного значения поменяют наименование или код? А может сделать элемент предопределённым?

В общем идея не претендует на новизну. Думаю, многие используют свои вариации хранения условно постоянных значений.

Для чего это:

  • Чтобы проще обновлять типовые конфигурации - не нужно добавлять предопределённые элементы в типовые объекты
  • Чтобы  при изменении наименования, кода ссылочного типа настройка неожиданно не рухнула
  • Чтобы добавить "периодичность" Константам
  • ........

Ранее я использовал настройку основанную на одном регистре со строковым измерением и ресурсом составного типа. Сейчас реализация немного более гибкая - кто хочет использует предопределённые элементы ПВХ, кто хочет создаёт их в Предприятии.

Итак. Реализация.

Создаём план видов характеристик. В типах прописываем все типы которые понадобятся, потом их можно будет добавить.
Создаём периодический регистр сведений. Измерение будет ссылка на элемент ПВХ, ресурс - Характеристика нашего нового ПВХ (не забыть установить связь по типу и связь параметров выбора, чтобы по фен-шую).

В общем то для минимального исполнения - всё. Можно заходить в предприятие и заполнять регистр. В коде можно получать значения запросом или объектно - ПолучитьПоследнее(..).

Но лёгкие пути не для нас, поэтому создаём в нашем (тот, что не типовой) общем модуле функцию ЗначениеКонстанты(Знач Константа, Дата). В которой прописываем код получение этих самых констант из регистра.
В своей настройке я это получение сделал чуточку гибким - получать можно по ссылке ПВХ или по строковому значению - в этом случае поиск будет по наименованию элемента ПВХ (его то изменять будем мы, если вообще будем - тут не то же, что со ссылкой на номенклатуру). Плюс в параметр можно передать массив, тогда функция вернёт Соответствие.

Чаще разработка происходит в копии, и изменения через хранилище получаются в рабочую базу. Значения констант нужно устанавливать в рабочей базе заново. И нужно не забыть, как они назывались. Для удобства решил добавить механизм автоматического добавления новых видов констант в регистр. Добавляются они текущей датой с пустым значением установленного типа. Это, конечно, для предопределённых элементов ПВХ.

На прошлом регистре констант делал настройку для разбивки по категориям, и установку различного представления списка регистра (по категориям, списком, по типам). Здесь этого пока не реализовано. Пока необходимости нет. Может быть в следующих релизах с ростом регистра будет и это.

И... Обязательно надо установить права на новые объекты!

Настройка создана на платформе 8.3.12.1714. Будет работать начиная с платформы 8.3.5.1068, т.к. испольуется объект "Схема запроса".

константы динамические программирование

См. также

SALE! %

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 10000 руб.

02.09.2020    164802    914    402    

889

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    9807    81    35    

90

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    16226    39    9    

75

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    24899    81    48    

125

SALE! %

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 10000 руб.

10.11.2023    11008    40    27    

66

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    189389    1146    0    

916

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

2220 руб.

21.02.2023    8283    8    38    

24

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    103525    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. triviumfan 97 13.12.18 17:15 Сейчас в теме
Видел подобно https://infostart.ru/public/868392/
И там много "холивара" по этому поводу.
В общем, разница лишь в используемом хранилище. Там автору регистр не понравился.
antonio_i; +1 Ответить
2. antonio_i 81 13.12.18 20:58 Сейчас в теме
(1)
Да, тоже видел.
Для меня удобнее, возможно, просто привычнее - хранить в регистре. Плюс - периодичность.
Судя по наличию таких публикаций механизм хранения доп. констант - полезный инструмент!.
Как хранить - выбирает каждый под свои нужды и для своего удобства.
по сути ведь можно выделить несколько направлений:
- Объект константы
- Справочник
- ПВХ (реквизит значение)
- Регистр
- Макет кто-то предлагал даже
3. triviumfan 97 13.12.18 23:56 Сейчас в теме
(2)
Макет кто-то предлагал даже

Ага, Рарус ещё 10 лет назад со своей Альфой :)
antonio_i; +1 Ответить
4. pm74 203 14.12.18 10:07 Сейчас в теме
(1) было такое
(0) про сабжу , сам использую ПВХ + справочник
выбор такой связки обоснован тем , что помимо просто констант очень часто нужно хранить списки или таблицы произвольного вида
Прикрепленные файлы:
5. antonio_i 81 14.12.18 12:57 Сейчас в теме
(4) Так периодичности нет. Мне она нужна.
Как вариант, думаю, можно добавить такой справочник, чтобы в нём хранить всё, что нельзя в регистре, при этом доработать функцию получения самой константы. Ссылку на справочник хранить в регистре.
Т.е. "скрестить" эти два решения. Тогда будет всё в одном.
6. pm74 203 14.12.18 13:37 Сейчас в теме
(5)
Так периодичности нет.
Добавьте дату в тч , вот вам и периодичность
7. antonio_i 81 14.12.18 13:46 Сейчас в теме
8. PLAstic 296 14.11.19 11:27 Сейчас в теме
5 лет назад писал статью на эту тему. Там же предлагались и периодические РС, и ПВХ. В общем, баян.

Чтобы при изменении наименования, кода ссылочного типа настройка неожиданно не рухнула
Для этого используется РС с изменением типа ПВХ и ресурсом типа значений этого ПВХ. Мы же не хотим, чтобы мы или пользователь булевой константе назначили строковое значение?
Читаю статью дальше:
Ранее я использовал настройку основанную на одном регистре со строковым измерением и ресурсом составного типа.
Ой. Вот за это я бы сразу уволил. :)
Создаём план видов характеристик. В типах прописываем все типы которые понадобятся, потом их можно будет добавить.
Создаём периодический регистр сведений. Измерение будет ссылка на элемент ПВХ, ресурс - Характеристика нашего нового ПВХ (не забыть установить связь по типу и связь параметров выбора, чтобы по фен-шую).
Тут есть момент. Вводим общий модуль с повторным использованием значений (мы же не хотим каждый раз читать из базы и быть уволенными сразу же?) и в нём реализуем функцию получения значений. Конечно, при изменении значений используем процедуру ОбновитьПовторноИспользуемыеЗначения() (пишу по памяти, могу ошибиться).
создаём в нашем (тот, что не типовой) общем модуле функцию ЗначениеКонстанты(Знач Константа, Дата). В которой прописываем код получение этих самых констант из регистра.
Как сказал однажды в институте практикующий препод, "благодаря таким, как вы, у меня есть работа". Удачи, автор!
baaikarov; +1 2 Ответить
9. antonio_i 81 14.11.19 12:11 Сейчас в теме
(8)
Ой. Вот за это я бы сразу уволил. :)

Что же в таком решении ужасного?
Раз уж написали, расшифруйте.

(8)
Как сказал однажды в институте практикующий препод, "благодаря таким, как вы, у меня есть работа".

Да, и желательно, раз уж критикуете, так научите, как правильно, чтоб все знали. Ведь я в статье не написал, что мой вариант единственный и идеальный. Расскажите про идеальный.
10. PLAstic 296 14.11.19 18:31 Сейчас в теме
(9) Я написал выше, как было бы "в идеале" для вашего решения. ПВХ и РС.
А увольнять надо за строковые измерения РС и за поиск по произвольной строке.
11. antonio_i 81 14.11.19 21:38 Сейчас в теме
(10) А вы публикацию вообще смотрели.
Хотя бы картинки посмотрите, если читать не хочется...
12. PLAstic 296 15.11.19 08:19 Сейчас в теме
(11) Я привёл цитаты из всех частей вашей статьи и вы задаёте такой вопрос? Удачи в работе с такой логикой.
13. antonio_i 81 15.11.19 11:40 Сейчас в теме
(12)Вы противоречите себе:
(9) Я написал выше, как было бы "в идеале" для вашего решения. ПВХ и РС.


Но моё решение и основано на ПВХ и РС.

Может вам просто хочется кого-то и что-то покритиковать?
Да я и не против, только конструктивно критикуйте. С тем самым указанием, "как надо".
14. PLAstic 296 15.11.19 11:49 Сейчас в теме
(13)
Но моё решение и основано на ПВХ и РС.
Я привёл конкретную цитату, к которой относилось высказывание.
15. antonio_i 81 15.11.19 19:31 Сейчас в теме
(14) А для чего?
Какую пользу вы своим ответом принесли кому-либо?

Рекомендую почитать вам притчу "Три сита Сократа".
16. PLAstic 296 18.11.19 10:20 Сейчас в теме
(15)
А для чего?
Отметил для будущих поколений, что так делать нельзя. Вы и сами могли бы сделать акцент не просто "раньше я делал так", а написать, почему так делать нельзя.
Оставьте свое сообщение