Управління складом зберігаються реквізитів об'єкта і значеннями збереження через 2 функції. При цьому зберігаються і відновлюються не тільки значення простих типів, але і таблиць з деревами, а збережені настройки запам'ятовують не тільки значення реквізитів, а й набір зберігаються величин в кожній конкретній налаштуванні.
Хотів написати багато красивих і розумних слів, але замість цього вирішив перейти відразу до справи. По пунктах і коротко:
1. Причина даного баяна. необхідність запам'ятати між викликами обробки значення реквізитів об'єкта, а також дати користувачеві можливість керувати складом запам'ятовуються реквізитів. Стандартні механізми керованих форм вимагають по-перше додаткового коду для редагування складу, а по-друге незберігають об'єкти складних типів ако таблиці і дерева значень. Точніше зберігають, але не у всіх варіантах клієнтів.
2. Підхід до реалізації. Збереження всіх даних в реквізиті керованої форми типу "Список значень". Це зручно тим, що по-перше використовується стандартне сховище і стандартний механізм збереження, а по-друге через те, що процедури обробки збереження і відновлення налаштувань серверні і ми мінімізуємо клієнтське взаємодія зі складними типами даних, підтримуваних не всіма клієнтами, і легко добиваємося мультікліентності.
3. Реалізація. Реалізація способу збереження складається з зберігається реквізиту керованої форми типу СпісокЗначеній з ім'ям "СохраняемиеСвойстваОб'екта" і двох процедур: 1) для Збереження / Відновлення значень і 2) редагування списку зберігаються реквізитів. Зазначені процедури викликаються з обробок стандартних подій форми "ПріСохраненііДаннихВНастройкахНаСервере" і "ПріЗагрузкеДаннихІзНастроекНаСервере" (для Збереження / Відновлення) і проізвольнимобразом для регулювання списку налаштувань (я додав команду для командної панелі форми).
4. Саме інструкція:
а) Створюємо для керованої форми реквізит типу СпісокЗначеній з назвою (в моєму прикладі): "СохраняемиеСвойстваОб'екта".
б) Створюємо кнопку з процедурою або команду для виклику процедури "РедактіроватьСпісокСохраняемихРеквізітов". У прикладі це команда форми "РедактіроватьСохраняемиеРеквізіти". Розміщуємо кнопочку для виклику на формі або (як у прикладі) виклик команди з меню.
в) Почнемо стандартні обробники подій форми "ПріСохраненііДаннихВНастройкахНаСервере" і "ПріЗагрузкеДаннихІзНастроекНаСервере"
г) Після всього вищевикладеного в модуль форми додаємо 2 процедури: "РедактіроватьСпісокСохраняемихРеквізітов" і "ОбработатьСохраняемиеРеквізітиОб'екта" і налаштовуємо виклик процедури "ОбработатьСохраняемиеРеквізітиОб'екта" зі стандартних обробників, а процедури "РедактіроватьСпісокСохраняемихРеквізітов" зі спеціальної команди / процедури пов'язаної з елементом управління або пунктом меню форми. Як аргумент СохраняемийСпісокРеквізітФорми передається назва списку значень з зберігаються настройками (в прикладі це "СохраняемиеСвойстваОб'екта", в загальному випадку - як назвете реквізит форми, так і передаєте при виклику)
д) власне приклад тексту модуля з командами і процедурами: