Где хранить произвольные данные в 1С:УТ 11 и ERP без изменения структуры метаданных?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

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

Использование ХранилищаОбщихНастроек

Один из самых популярных инструментов в арсенале разработчика — ХранилищеОбщихНастроек. Этот механизм идеально подходит для хранения пользовательских или системных настроек. Он позволяет сохранять любые данные, сериализуемые платформой, привязывая их к объекту, пользователю или конкретной форме.

Рассмотрим пример сохранения данных:


// Сохранение данных
ДанныеНастройки = Новый Структура(\"Значение1, Значение2\", 100, 200);
ХранилищеОбщихНастроек.Сохранить(\"МоиНастройки\", \"КлючНастроек\", ДанныеНастройки);

// Чтение данных
ПолученныеДанные = ХранилищеОбщихНастроек.Загрузить(\"МоиНастройки\", \"КлючНастроек\");

Применение дополнительных реквизитов и сведений

Механизм ДополнительныеРеквизитыИСведения (БСП) — это мощный инструмент, который часто недооценивают. Поскольку современные дополнительные реквизиты могут иметь тип Строка неограниченной длины, мы можем использовать их для хранения структурированных данных, например, в формате JSON. Это позволяет не только хранить данные, но и редактировать их в пользовательском интерфейсе через формы объектов, к которым привязаны реквизиты.

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

Хранение данных в формате JSON в строковых константах

Если задача заключается в хранении глобальных настроек системы, которые не привязаны к конкретному объекту, оптимальным выбором будет использование Константы с типом Строка(0). Внутри такой строки мы можем хранить сложную структуру данных, сериализованную в JSON. Это позволяет легко расширять состав настроек в будущем без изменения метаданных базы данных.

Пример работы с JSON:


// Сериализация в JSON
СтруктураДанных = Новый Структура(\"Коэффициент, Валюта\", 1.5, \"RUB\");
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, СтруктураДанных);
СтрокаJSON = ЗаписьJSON.Закрыть();

// Константы.МоиНастройки.Установить(СтрокаJSON);

Использование справочника ВариантыОтчетов

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

Безопасное хранилище данных

Для конфиденциальной информации или ключей доступа используйте РегистрыСведений.БезопасноеХранилищеДанных. Это специальный объект системы, предназначенный для защищенного хранения данных, к которым ограничен доступ обычных пользователей. Это лучший выбор, если в ваших «сетках» настроек содержатся пароли, токены или иные критичные данные.

Подведем итоги выбора метода:

  1. Для пользовательских настроек интерфейса используйте ХранилищеОбщихНастроек.
  2. Для глобальных параметров, которые должны быть доступны всему коду, создайте константу с JSON-структурой.
  3. Для структурированных данных, требующих правки через пользовательский интерфейс без программиста, задействуйте Дополнительные реквизиты.
  4. Если данные требуют повышенной безопасности, ваш выбор — БезопасноеХранилищеДанных.

Используя эти методы, вы сохраните чистоту конфигурации, упростите процесс обновления системы и сделаете код более гибким и масштабируемым. Попробуйте применить эти подходы в своей текущей задаче, и вы увидите, насколько удобнее станет работать с «произвольными» настройками в УТ 11 и ERP.

← На главную