Использование общего хранилища для настроек внешних обработок
Я делаю внешнюю обработку для Fresh, так вот возник вопрос, где хранить настройки внешней обработки? Пытаться уместить в какой-нибудь прикладной объект базы? Сомнительно и не универсально.
Тогда я подумал, что можно использовать хранилище настроек и коллеги с Мисты подтвердили такую возможность.
И вот в итоге получился такой код:
&НаКлиенте
Процедура ОткрытьПолныйПланОбмена(Команда)
ОткрытьФорму(«ПланОбмена.Полный.ФормаСписка»);
КонецПроцедуры
&НаКлиенте
Процедура SSH_IPАдресПриИзменении(Элемент)
СохранитьНастройкуФормы(«SSH_IPАдрес»);
КонецПроцедуры
&НаКлиенте
Процедура SSH_ЛогинПриИзменении(Элемент)
СохранитьНастройкуФормы(«SSH_Логин»);
КонецПроцедуры
&НаКлиенте
Процедура SSH_ПарольПриИзменении(Элемент)
СохранитьНастройкуФормы(«SSH_Пароль»);
КонецПроцедуры
&НаКлиенте
Процедура SSH_ПортПриИзменении(Элемент)
СохранитьНастройкуФормы(«SSH_Порт»);
КонецПроцедуры
&НаКлиенте
Процедура SSH_ПутьДоКорневойДиректорииПриИзменении(Элемент)
СохранитьНастройкуФормы(«SSH_ПутьДоКорневойДиректории»);
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ВосстановитьНастройкуФормы(«SSH_IPАдрес»);
ВосстановитьНастройкуФормы(«SSH_Логин»);
ВосстановитьНастройкуФормы(«SSH_Пароль»);
ВосстановитьНастройкуФормы(«SSH_Порт»);
ВосстановитьНастройкуФормы(«SSH_ПутьДоКорневойДиректории»);
КонецПроцедуры
&НаСервере
Функция СохранитьНастройкуФормы(ИмяНастройки) Экспорт
ХранилищеОбщихНастроек.Сохранить(«SSH_Обмен_Битрикс_1С», ИмяНастройки, Вычислить(ИмяНастройки));
КонецФункции
Функция ВосстановитьНастройкуФормы(ИмяНастройки);
Зн = ХранилищеОбщихНастроек.Загрузить(«SSH_Обмен_Битрикс_1С», ИмяНастройки);
Выполнить(ИмяНастройки + » = Зн»);
КонецФункции
Ты за столько лет не знал об этом?
Что-то такое помнил, раз на мисте знал, о чем спрашивать.
Деталей, конечно, не знал, потому что никогда не использовал.
Тяжко жить без нормальной сериализации обьектов, ORM и рефлекшена. Одна копипаста кода. Есть ли в 1С общее решение чтоб не дублировать код для каждого поля а передать контейнер сразу ?
о какой копи-пасте речь? функции, библиотеки все это можно.
Выполнить(…)
Что за глупость ты пишешь..
В новой версии переписал уже на ЭтаФорма[ИмяРеквизита], просто вылетело из головы как это делается правильно. 😉