Сохранение параметров внешней обработки как правильно?

1. AlexGoldT 05.07.22 19:50 Сейчас в теме
Помогите разобраться как сейчас по феншую во внешней обработке сохранять ее параметры?
&НаСервере
Процедура ZAU_СохранитьНастройкиНаСервере(КлючОбъекта, КлючНастроек, Пользователь = Неопределено)
    Настройки = Новый Структура;
    Для Каждого Элем ИЗ Элементы Цикл
        Если ТипЗнч(Элем) = Тип("ПолеФормы") И ТипЗнч(Элем.Родитель) <> Тип("ТаблицаФормы") Тогда
            Если Объект.Свойство(Элем.Имя) Тогда 
                Настройки.Вставить(Элем.Имя, Объект[Элем.Имя]);
            Иначе
                Настройки.Вставить(Элем.Имя, ЭтаФорма[Элем.Имя]);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;    
    ХранилищеОбщихНастроек.Сохранить(КлючОбъекта,  КлючНастроек, Настройки,, Пользователь);
КонецПроцедуры
 
&НаСервере
Процедура ZAU_ВосстановитьНастройкиНаСервере(КлючОбъекта, КлючНастроек, Пользователь = Неопределено)   
    СтруктураНастроек = Неопределено;
    Попытка
        СтруктураНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта,КлючНастроек, ,Пользователь);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;    
    Если СтруктураНастроек <> Неопределено Тогда
        Для Каждого Настройка Из СтруктураНастроек Цикл
            Если Объект.Свойство(Настройка.Ключ) Тогда 
                Объект[Настройка.Ключ] = Настройка.Значение;
            Иначе
                ЭтаФорма[Настройка.Ключ] = Настройка.Значение;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
Показать


Пока нашел такой вариант, но смущают два момента:
1. Не удается сохранить табличную часть обработки
2. При записи Объект[Элем.Имя] предполагается что имя поля в реквизитах объекта и имя поля формы должно быть одинаковое.

Может есть иные варианты? Более технологичные с точки зрения 1С решения?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 05.07.22 20:06 Сейчас в теме
(1) можно использовать стандартный механизм сохранения.
Для ТЧ см.:
https://forum.infostart.ru/forum9/topic283886/#message2843227
AlexGoldT; +1 Ответить
4. AlexGoldT 06.07.22 09:47 Сейчас в теме
(3) Понятно что существуют различные методы решения проблемы. В т.ч. и организационные. Так и поступил как видно из приведенного мною кода. Просто я в ЭТОЙ платформе начинающий (я про 1С), а методы предыдущей платформы (другая система) не всегда применимы. Думал может есть стандартные рекомендации в рамках технологии построения кода. Спасибо, значит так и буду продолжать, тем более что в ТЧ данной обработки хранится результат а не настройки обработки.

(2) Спасибо, возьму в копилку
3. FatPanzer 05.07.22 20:12 Сейчас в теме
(1)
1. Не удается сохранить табличную часть обработки
И не надо. Это вредно. Сохраняйте значения ТЧ как обычную ТЗ. И восстанавливайте так же. Табличная часть обработки по сути предназначена для внешнего запуска обработки, а не для открытия формы обработки.
2. При записи Объект[Элем.Имя] предполагается что имя поля в реквизитах объекта и имя поля формы должно быть одинаковое.
Это вопрос религии. И это самое универсальное решение. Иначе для каждой обработки вы можете написать собственные процедуры чтения/сохранения параметров.
AlexGoldT; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот