Предлагаю универсальное хранилище дополнительных данных. Можно сохранять настройки интеграции (адрес, логин, пароль, токен и т.д.) используя одну константу, а так же для хранения любых других данных.
При необходимости список реквизитов для хранения можно добавлять и обновлять конфигурацию динамически.
При работе с настройками выполнять проверки на существование реквизита или типа значения реквизита не надо, т.к. это все прописано в модуле менеджера константы.
В качестве реквизитов настройки используются значения любых типов. Я для примера сделал ссылку на справочник, Число, Строку, Булево, Дату и Таблицу значений. Любые другие типы легко добавляются.
Код
Создаем константу, назвал ее УниверсальнаяКонстанта, тип ХранилищеЗначения, в модуль менеджера помещаем код:
Список реквизитов для хранения описан в функции ПолучитьДанные() и процедуре УстановитьДанные(). Для добавление своих реквизитов править надо эти процедуру и функцию.
Необходимо создать произвольную общую форму и назначить ее константе. Вид формы:
Каждый реквизит настройки вынесен как реквизит формы. Реквизитам указано в свойствах "Сохраняемые данные".
Код формы:
Использование
В коде для получения настроек необходимо вызвать:
Настройки = Константы.УниверсальнаяКонстанта.СоздатьМенеджерЗначения().ПолучитьДанные();
Все реквизиты доступны не зависимо от того сохранены настройки или нет. За это отвечает функция модуля менеджера ПолучитьДанные().
Для сохранения можно передавать часть настроек, при этом все остальные значения сохранятся:
Параметры = Новый Структура("ЗначениеКонтрагент", КакойтоКонтрагент);
Константы.УниверсальнаяКонстанта.СоздатьМенеджерЗначения().УстановитьДанные(Параметры);
Дополнительно
Такой принцип хранения можно применить и к реквизитам справочника, документа и т.д. Только необходимо написать соответствующие процедуры ПолучитьДанные() и УстановитьДанные().
К публикации прикрепил cf где добавлены константа и форма описанные выше. Тестировалось на платформе 8.3.10.2375, стоит режим совместимости 8.3.9.