Реквизиты объекта преобразовываются в структуры, в которых реквизиты подчиненных объектов тоже преобразуются в структуры — пока объект не развернется до иерархической структуры, содержащей значения простого типа
Уровень вхождения можно ограничить параметром, тогда конечное значение будет преобразовано в строку
Может использоваться:
— при работе с сервером с клиента (универсальность может сказаться на производительности, но тут важен контекст задачи),
— при работе с 1С по COM-интерфейсу,
— при выгрузке в XML структура простых типов выгружается предельно просто (что продемонстрировано в прилагаемой обработке). Избыточность, конечно, зашкаливает — но зачастую бывает, что на это не стоит обращать внимание
— при сохранении версий объекта при записи
В качестве бонуса к последней опции — Функция СравнитьВеткиСтруктуры() — позволяет сравнить две структуры на изменения (к примеру: для контроля изменений в версиях)
Основной функционал:
Функция ПреобразоватьОбъектВСтруктуру(Объект, НаСервере = Ложь, СтруктураСоответствия = Неопределено, Исключения = Неопределено) Экспорт
Функция ПривестиОбъектыВСтруктуреКПростомуТипу(СтруктураОбъекта, Уровень = 0, МаксимальныйУровень = Неопределено, НаСервере = Ложь) Экспорт
Функция СравнитьВеткиСтруктуры(элемент1, элемент2, СтруктураСравнения, Исключения = «», ПрерватьПриРазличии = Ложь) Экспорт
upd 20130227: вывожу УникальныйИдентификатор в любом случае
на всякий случай только заккоментировал //Если НаСервере Тогда — поиском 1 раз встречается
Все хорошо, только почему-то в тег «ссылка» выгружается представление объекта, а не ID, как хотелось бы.
(1) bulpi, ID — это УникальныйИдентификатор() -?
там параметр есть:
ПреобразоватьОбъектВСтруктуру(Объект, НаСервере = Ложь, СтруктураСоответствия = Неопределено, Исключения = Неопределено) Экспорт
Если НаСервере будет Истина Тогда в структуре появится соответствующее значение с ключем УникальныйИдентификатор
значение с ключем «Ссылка» в этом контексте не актуально — руки доберутся — уберу
upd: хотя — УникальныйИдентификатор() работает на клиенте
«исторически сложилось» видимо — было не в универсальном контексте
вечером посмотрю
upd: сделал, .УникальныйИдентификатор появляется всегда
Реквизит с Типом «ХранилищеЗначения» тоже раскладывает?
PS проверил, с хранилищем не предусмотрено
плюса не глядя
интересно, что сделали с перечислениями