gifts2017

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

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

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

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

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