Приведение ссылки к структуре значений простых типов

Опубликовал Николай (nnn) в раздел Программирование - Инструментарий

Набор функционала (процедуры и функции) для преобразования любого объекта в структуру, содержащую расшифровку реквизитов объекта в виде простых типов


Реквизиты объекта преобразовываются в структуры, в которых реквизиты подчиненных объектов тоже преобразуются в структуры - пока объект не развернется до иерархической структуры, содержащей значения простого типа

Уровень вхождения можно ограничить параметром, тогда конечное значение будет преобразовано в строку

Может использоваться:

- при работе с сервером с клиента (универсальность может сказаться на производительности, но тут важен контекст задачи),

- при работе с 1С по COM-интерфейсу,  

- при выгрузке в XML структура простых типов выгружается предельно просто (что продемонстрировано в прилагаемой обработке). Избыточность, конечно, зашкаливает - но зачастую бывает, что на это не стоит обращать внимание

- при сохранении версий объекта при записи

В качестве бонуса к последней опции - Функция СравнитьВеткиСтруктуры() - позволяет сравнить две структуры на изменения  (к примеру: для контроля изменений в версиях)

 

Основной функционал:

Функция ПреобразоватьОбъектВСтруктуру(Объект, НаСервере = Ложь, СтруктураСоответствия = Неопределено, Исключения = Неопределено) Экспорт

Функция ПривестиОбъектыВСтруктуреКПростомуТипу(СтруктураОбъекта, Уровень = 0, МаксимальныйУровень = Неопределено, НаСервере = Ложь) Экспорт

Функция СравнитьВеткиСтруктуры(элемент1, элемент2, СтруктураСравнения, Исключения = "", ПрерватьПриРазличии = Ложь) Экспорт

 

upd 20130227: вывожу УникальныйИдентификатор в любом случае

на всякий случай только заккоментировал //Если НаСервере Тогда - поиском 1 раз встречается

Скачать файлы

Наименование Файл Версия Размер
ПреобразоватьОбъектВСтруктуру.epf
.epf 19,10Kb
27.02.13
23
.epf 19,10Kb 23 Скачать

См. также

Комментарии
1. bulpi bulpi (bulpi) 110 27.02.13 14:47 Сейчас в теме
Все хорошо, только почему-то в тег "ссылка" выгружается представление объекта, а не ID, как хотелось бы.
2. Николай (nnn) 65 27.02.13 15:38 Сейчас в теме
(1) bulpi, ID - это УникальныйИдентификатор() -?
там параметр есть:
ПреобразоватьОбъектВСтруктуру(Объект, НаСервере = Ложь, СтруктураСоответствия = Неопределено, Исключения = Неопределено) Экспорт
Если НаСервере будет Истина Тогда в структуре появится соответствующее значение с ключем УникальныйИдентификатор

значение с ключем "Ссылка" в этом контексте не актуально - руки доберутся - уберу

upd: хотя - УникальныйИдентификатор() работает на клиенте
"исторически сложилось" видимо - было не в универсальном контексте
вечером посмотрю
upd: сделал, .УникальныйИдентификатор появляется всегда
3. Дмитрий К (devs) 08.07.13 14:20 Сейчас в теме
Реквизит с Типом "ХранилищеЗначения" тоже раскладывает?

PS проверил, с хранилищем не предусмотрено
4. Михаил Ражиков (tango) 470 08.07.13 14:28 Сейчас в теме
плюса не глядя
интересно, что сделали с перечислениями
Оставьте свое сообщение