Универсальное хранилище настроек

Публикация № 1208040

Разработка - Универсальные функции

Универсальное хранилище

Универсальная константа для хранения любых настроек, например интеграции с API. Легко вносить новые настройки без "ломания" выполнения кода в модулях.

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

При необходимости список реквизитов для хранения можно добавлять и обновлять конфигурацию динамически.

При работе с настройками выполнять проверки на существование реквизита или типа значения реквизита не надо, т.к. это все прописано в модуле менеджера константы.

В качестве реквизитов настройки используются значения любых типов. Я для примера сделал ссылку на справочник, Число, Строку, Булево, Дату и Таблицу значений. Любые другие типы легко добавляются.

Код

Создаем константу, назвал ее УниверсальнаяКонстанта, тип ХранилищеЗначения, в модуль менеджера помещаем код:

 

Список реквизитов для хранения описан в функции ПолучитьДанные() и процедуре УстановитьДанные(). Для добавление своих реквизитов править надо эти процедуру и функцию.

Необходимо создать произвольную общую форму и назначить ее константе. Вид формы:

Форма контсанты

Каждый реквизит настройки вынесен как реквизит формы. Реквизитам указано в свойствах "Сохраняемые данные".

Код формы:

 

 

Использование

В коде для получения настроек необходимо вызвать:

Настройки = Константы.УниверсальнаяКонстанта.СоздатьМенеджерЗначения().ПолучитьДанные();

Все реквизиты доступны не зависимо от того сохранены настройки или нет. За это отвечает функция модуля менеджера ПолучитьДанные().

Для сохранения можно передавать часть настроек, при этом все остальные значения сохранятся:

Параметры = Новый Структура("ЗначениеКонтрагент", КакойтоКонтрагент);
Константы.УниверсальнаяКонстанта.СоздатьМенеджерЗначения().УстановитьДанные(Параметры);

Дополнительно

Такой принцип хранения можно применить и к реквизитам справочника, документа и т.д. Только необходимо написать соответствующие процедуры ПолучитьДанные() и УстановитьДанные().

К публикации прикрепил cf где добавлены константа и форма описанные выше. Тестировалось на платформе 8.3.10.2375, стоит режим совместимости 8.3.9.

Скачать файлы

Наименование Файл Версия Размер
Универсальное хранилище настроек:
.cf 11,71Kb
10.03.20
1
.cf 11,71Kb 1 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. info1i 64 10.03.20 18:28 Сейчас в теме
Оно, конечно, хорошо, но только до определенного момента, пока количество и размеры хранимых параметров относительно малы и не придают нагрузку при каждом чтении этой константы, потом проблемы с производительностью. А по-хорошему нужно создавать разные константы или регистры в соответствии со спецификой бизнес-процессов. Я, например, делю по бизнес-процессам.
sarumanchik; Созинов; PLAstic; opx; CyberCerber; igormiro; izidakg; wowik; +8 Ответить
2. dsdred 1358 11.03.20 13:42 Сейчас в теме
Если у Вас система на базе БСП (Дополнительные отчеты и обработки) есть вариант хранить данные не создавая константу, соответственно можно дорабатывать не снимая с поддержки при этом можно еще и форму добавить.


вот тут третий пример https://infostart.ru/public/827126/
3. herfis 358 11.03.20 13:47 Сейчас в теме
Легко вносить новые настройки без "ломания" выполнения кода в модулях

Не очень понял, выполнение какого кода и в каких модулях "ломается" при добавлении новых настроек "традиционными" методами.
Плюсы сомнительны, минусы очевидны.
5. v.krivenko 38 11.03.20 14:51 Сейчас в теме
(3) вам надо в настройку добавить любой реквизит, например ЗначениеХ, соответственно меняете код в функции ПолучитьДанные() и процедуре УстановитьДанные() модуля менеджера константы.

В коде, где используете настройку используете: Настройка.ЗначениеХ, при этом не надо заботится о том что настройку пересохранили в предприятии, она будет в любом случае и нужного типа.

Можно очевидные минусы?
6. herfis 358 11.03.20 15:07 Сейчас в теме
(5) То есть из плюсов только отсутствие структурных изменений. Плюс сомнительный, т.к. изначально структурные изменения все равно требуются для добавления константы (т.е. полную поддержку все равно отключать).
Очевидные минусы: мусорная корзина, отсутствие поддержки ссылочной целостности, при сбое можно потерять сразу все значения, тормоза работы с "разбухающим" хранилищем значений, узкое место по блокировкам, невозможность обратиться из запроса. Это навскидку.
Bassgood; +1 Ответить
4. VmvLer 11.03.20 14:24 Сейчас в теме
лениво прочитал (0).
Немного покоробило от категоричности абсолюта: любых, любой...
задал себе вопрос - зачем вникать в этот восторженный костыль?
ответа не получил(
djan; JulianK; +2 Ответить
7. skeptik2105 11.03.20 15:46 Сейчас в теме
Автор в курсе про ХранилищеОбщихНастроек ?


ХранилищеОбщихНастроек.Сохранить("Ключ1", "Ключ2", Значение,,"Ключ3");
Значение = ХранилищеОбщихНастроек.Загрузить("Ключ1", "Ключ2",,"Ключ3");
sarumanchik; alexey.kutya; CyberCerber; +3 Ответить
9. herfis 358 11.03.20 17:22 Сейчас в теме
(7) Без админских прав или без переопределения хранилища их между пользователями не пошаришь. Ну и настройки настройкам рознь. Некоторые все же лучше хранить таблично.
10. alex15650 177 11.03.20 18:23 Сейчас в теме
(7) Давно используем такой принцип в системах компании. Есть общая форма настроек с нужными реквизитами, и все реквизиты автоматически сохраняются в хранилище общих настроек и восстанавливаются из него. Админские права не нужны, сохранение и чтение делать в привилегированном режиме.
8. pm74 165 11.03.20 16:37 Сейчас в теме
если нужно, есть универсальное расширение с хранением ,выполнением ... , Б и Ш. лежит на гитхабе
11. uaz.dba 11.03.20 19:16 Сейчас в теме
14. pm74 165 11.03.20 20:55 Сейчас в теме
(11) https://infostart.ru/public/728511/
ссылка на гитхаб в конце публикации
12. Kutuzov 613 11.03.20 20:23 Сейчас в теме
Мне больше нравится для хранения настроек обменов разных использовать план обмена "Обмен с сайтом", а там тоже есть реквизит типа "Хранилище". Вот здесь пример использования.
Общее хранилище я почему-то недолюбливаю. То ли руки кривые, то ли еще что, но с ним периодически проблемы возникают.
13. the1 460 11.03.20 20:33 Сейчас в теме
Не костыль, а КОСТЫЛИЩЕ! Нагиев.жпг
alexey.kutya; +1 Ответить
15. andreich_ru 12.03.20 01:11 Сейчас в теме
При хранении ссылочных типов данных, как решается проблема с поиском ссылок? Например, если захотим удалить объект, поиск ссылок же не обнаружит его в хранилище значений.
16. v.krivenko 38 12.03.20 08:38 Сейчас в теме
(15)никак.
Это хранилище значения и вы сами должны решить что вы можете в него положить, а что нет.
17. alexey.kutya 212 13.03.20 08:38 Сейчас в теме
Тут уже писали. Использовать ХранилищеОбщихНастроек и не изобретать велосипед.
Оставьте свое сообщение

См. также

Шаблоны внешних обработок (БСП, управляемые формы)

Инструменты и обработки Программист Архив с данными v8 1cv8.cf Абонемент ($m) Обработки Печать Универсальные функции БСП (Библиотека стандартных подсистем)

Набор из шаблонов для создания внешних обработок вида: Внешняя печатная форма, Отчет на СКД, Схема СКД для сегмента, Внешняя обработка (Самостоятельная, Заполнение объектов, Создание связанных объектов). Предварительно наполнены базовым функционалом и некоторыми механизмами для отладки.

1 стартмани

01.03.2020    927    10    riposte    0       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

Универсальные функции: разложение произвольной строки адреса в структуру

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Универсальные функции

Процедуры и функции раскладывают произвольную строку адрес в структуру по ключевым словам.

1 стартмани

30.12.2019    1939    4    vik070777    10       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

Цель курса - повысить полноту и качество сбора и формализации требований к автоматизации процессов управления материально-техническим обеспечением. Курс основан на процессном подходе, позволяет в полном объеме выявить и учесть все факторы, влияющие на специфику процессов управления МТО. Участники курса получают теоретические знания в области организации процессов управления МТО и готовый инструментарий для сбора и формализации требований по автоматизации этих процессов (шаблоны, опросники, модели).

40000 рублей

Подпись PDF в новой версии 8.3.16

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные функции

Проверяем новую возможность платформы 1С:Предприятие 8 по формированию подписей в PDF.

1 стартмани

23.12.2019    2405    3    kolya_tlt    6       

Простой способ загрузить файл Excel на тонком клиенте.

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Загрузка и выгрузка в Excel Универсальные функции

Самый простой способ загрузить файл Excel на тонком клиенте - это скопировать лист Excel в "табличный документ" на форме обработки и обрабатывать уже поля "табличного документа".

1 стартмани

30.10.2019    5392    2    John_d    16       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Версионирование объеков УТ 10 с возможностью перехода к сохраненной версии

Инструменты и обработки no Конфигурация (md, cf) v8 УТ10 Абонемент ($m) Журнал регистрации Универсальные функции

Версионирование объектов УТ 10.3 с возможностью перехода к сохраненной версии. Взята стандартная система версионирования УПП, добавлена возможность восстановления ранее сохраненной версии.

1 стартмани

28.10.2019    4338    13    art.prm    8       

Картинка вместо кнопки без html

Инструменты и обработки Программист Бизнес-аналитик Руководитель проекта Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Работа с интерфейсом Универсальные функции

Вариант замены стандартных кнопок на форме для тех, кого не устраивают кнопки 1С и нет особых возможностей делать все с использованием html. Тестировал работу на платформах 8.3.10, 8.3.13, 8.3.14

1 стартмани

23.10.2019    3393    3    zatoichi    3       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

Универсальная подсистема ДМ

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Россия Windows Абонемент ($m) Универсальные функции

ДМ — дополнительные модули Это не альтернатива или дополнение БСП. Данная подсистема призвана быстро получить множество нужных функций в любой конфигурации. Для использования подсистемы изменения в конфигурацию вносить не надо. К сожалению поддержка обычных форм прекращена и поэтому данная разработка предназначена только для УФ. Разработка ведётся с 2009 года, но именно этот релиз был подготовлен на платформе 8.3.15.1565

1 стартмани

22.10.2019    2657    3    strange2007    10       

Вывод QR-кода типовыми средствами.

Инструменты и обработки no Внешняя обработка (ert,epf) v8 КА1 УТ10 УПП1 Windows Абонемент ($m) Универсальные печатные формы Сканер штрих-кода Универсальные функции

Вывод QR-кода типовыми средствами. На данный момент очень часто нужно вывести в печатную форму QR-код. Показываю как на примере типового кода из УТ11 это сделать. Можно использовать в любых конфигурациях с обычными формами.

1 стартмани

21.10.2019    7519    12    Емельянов Алексей    37       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для решения задач бухгалтерского учета. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Бухгалтерия” и прочих прикладных решений, в которых реализованы соответствующие механизмы для автоматизации бухгалтерских задач.

4900 рублей

Генерация QR кода для любых конфигураций 1С (обычные и управляемые формы)

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Абонемент ($m) Универсальные обработки Универсальные функции

Для генерации используется компонента типовой конфигурации УТ11, встроенная в общий макет "КомпонентаПечатиQRКода". Ниже приведены процедуры, чтобы сделать обработку самостоятельно (только для УФ).

1 стартмани

11.10.2019    4033    12    dm1try    0       

Полезные процедуры и функции для программиста

Статья Программист Нет файла v8 1cv8.cf Россия Абонемент ($m) Практика программирования Универсальные функции

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

1 стартмани

07.10.2019    19466    9    HostHost    27       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Универсальное удаление движений регистров накопления по всем непроведенным документам

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные функции Чистка базы

Попалась база КА 2.4 с движениями по регистрам, у которых регистратор был непроведен или помечен на удаление. Написал небольшую обработку по удалению таких записей из регистров.

1 стартмани

27.09.2019    5353    2    John_d    14       

1С REST API клиент. Обмен из 1С с сайтом/магазином WordPress/WooCommerce с помощью REST API

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf УУ Оптовая торговля Розничная торговля Абонемент ($m) Универсальные обработки WEB Универсальные функции

Обмен 1С с сайтом на WordPress и магазином Woocommerce. Внешняя обработка сделана как REST API клиент сайта WordPress, позволяет разработчику публиковать/изменять/удалять/просматривать посты/страницы/товары/фотографии (в связке с товаром/страницей) на сайте/магазине WordPress/Woocommerce. Обработки сделаны с использованием обычных форм, демо-формы использования в комплекте.

10 стартмани

29.07.2019    4587    9    osivv    14       

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

Данный онлайн-курс предусматривает изучение процессов DevOps, их применение при разработке на платформе 1С. В результате прохождения онлайн-курса вы сможете: настроить ПО необходимое для проведения проверок и тестирования, создавать сценарии тестирования и объединять их в комплексные процессы, создавать скрипты для автоматизации процессов DevOps.

12000 рублей

Экспортные процедуры и функции общих модулей БП 3.0, ЗУП 3.1, УТ 11

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Windows Абонемент ($m) Универсальные функции

Таблицы экспортных процедур и функций общих модулей конфигураций БП КОРП 3.0, ЗУП КОРП 3.1, УТ 11 + обработка по формированию такой таблицы из любой конфигурации.

14.06.2019    6627    383    SanchoD    29       

Работа с графической схемой в объектной модели DOM

Статья Программист Конфигурация (md, cf) v8 v8::УФ Абонемент ($m) Универсальные функции

Пример кода для работы с графической схемой в объектной модели DOM, платформа 8.3.12.

1 стартмани

04.06.2019    6433    5    botokash    19       

Екатеринбург.Online: Голосование продолжается Промо

Продолжается голосование за доклады на INFOSTART MEETUP Екатеринбург.Online! Лучшие из них попадут в окончательную программу онлайн-митапа! Присоединяйтесь к голосованию и покупайте билеты - 3 000 рублей за 8 часов продуктивной пятницы!

3000

Программное формирование картинки в 1С:Предприятие 8.3.9 (ПотокВПамяти / ЗаписьДанных)

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные функции

В статье представлен код программного формирования картинки (двоичные данные) без всяких внешних компонент, без формирования строки Base64, используя лишь встроенные механизмы 1С предприятие 8.3.9 (объекты ПотокВПамяти и ЗаписьДанных). Сам по себе код формирования картинки не несёт ничего нового. Всё описано в википедии. Захотелось попробовать новые методы, но никак не доходитили руки. В приложении обработка практически с этим же кодом.

1 стартмани

16.05.2019    7051    5    yku    7       

Альтернатива внешним печатным формам. ЗУП 3.1

Статья Программист Расширение (cfe) v8 v8::СПР ЗУП3.x Зарплата Абонемент ($m) Печатные формы документов Универсальные функции Практика программирования Разработка

Как в ЗУП 3.1.8 отказаться от внешних печатных форм и расширением увеличить количество полей, доступных при редактировании макетов, для изменения печатных форм Т1, Т5, Т8 и аналогичные пользователями.

1 стартмани

30.01.2019    10720    17    Mogilnikova    3       

Лучшие программы за прошедший месяц Промо

Инфостарт подготовил ТОП-25 самых продаваемых и популярных на текущий момент программ. При формировании списка учитывается аналитика продаж и запросы клиентов за последний месяц.

Создание и запуск скрипта для ввода текста на базе AutoHotkey

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Windows Абонемент ($m) Универсальные функции

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

1 стартмани

28.01.2019    4024    1    Wezoowy    1       

Использование подсистемы БСП "Заполнение объектов"

Статья Программист Расширение (cfe) v8 v8::УФ 1cv8.cf Россия Абонемент ($m) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

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

1 стартмани

23.11.2018    19929    10    ids79    23       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Инструменты и обработки Программист Пользователь Архив с данными v8 КА1 БП2.0 УТ10 УПП1 Windows Абонемент ($m) Печатные формы документов Универсальные функции Email

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями "Управление торговлей 10.3", "Управление производственным предприятием 1.3", "Комплексная автоматизация 1.1", "Бухгалтерия предприятия 2.0".

1 стартмани

21.09.2018    17842    13    stvorl    0       

Пропорциональное распределение в запросе

Статья Программист Внешний отчет (ert,erf) v8 1cv8.cf Абонемент ($m) Универсальные функции Практика программирования

Периодически в работе сталкиваюсь с задачей пропорционального распределения сумм в запросе. Ситуация усложняется, когда распределяемые суммы изначально не известны и определяются в процессе выполнения запроса. Эта статья один из примеров решения такой задачи.

1 стартмани

28.06.2018    10140    1    invertex    7       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Проверка таблицы на дублирование строк (ТаблицаЗначений, ТабличнаяЧасть) и получение массива таких строк

Статья Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Универсальные функции

Функция для проверки дублирования строк в ТаблицеЗначений или ТабличнойЧасти. Также, если необходимо, возвращает массив задублированных строк (можно обработать).

1 стартмани

05.02.2018    9805    6    uri1978    27       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Свертка таблицы значений. С блэкджеком и всем остальным

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Практика программирования Универсальные функции

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

1 стартмани

22.01.2018    9251    2    dusha0020    10       

Определение MIME-типа файла

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 1cv8.cf Абонемент ($m) Универсальные функции

Небольшая, но полезная функция для определения MIME-типа файла по его расширению. Сэкономит время разработчикам.

1 стартмани

12.01.2018    9287    3    o.nikolaev    4