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

27.02.13

Разработка - Инструментарий разработчика

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


Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
ПреобразоватьОбъектВСтруктуру.epf
.epf 19,10Kb
36 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

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

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

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

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

 

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

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

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

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

 

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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    207451    1139    411    

1035

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    37437    213    111    

201

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

16000 руб.

10.11.2023    17034    74    39    

89

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    24739    65    28    

93

Инструментарий разработчика Программист 1С v8.3 1С:Управление нашей фирмой 3.0 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    35732    130    53    

173

SALE! 30%

Инструментарий разработчика WEB-интеграция 1С v8.3 1C v8.2 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    2134    1    0    

8

Инструментарий разработчика 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    3044    7    0    

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

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

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

PS проверил, с хранилищем не предусмотрено
4. tango 547 08.07.13 14:28 Сейчас в теме
плюса не глядя
интересно, что сделали с перечислениями
5. DrBlack 24 08.07.21 16:10 Сейчас в теме
Может кому понадобится:
Функция ПреобразоватьСсылкуВСтруктуру(СсылкаНаОбъект) Экспорт
	
	#Если _ Тогда
		СсылкаНаОбъект = Справочники.ШаблоныСообщений.ПустаяСсылка();
	#КонецЕсли
	
	СтруктураВозврат = Новый Структура;
	МетаданныеСсылки = СсылкаНаОбъект.Метаданные();	
	
	Для Каждого ТекРекв Из МетаданныеСсылки.СтандартныеРеквизиты Цикл
		СтруктураВозврат.Вставить(ТекРекв.Имя, СсылкаНаОбъект[ТекРекв.Имя]);
	КонецЦикла;
	
	Для Каждого ТекРекв Из МетаданныеСсылки.Реквизиты Цикл
		СтруктураВозврат.Вставить(ТекРекв.Имя, СсылкаНаОбъект[ТекРекв.Имя]);
	КонецЦикла;
	
	Для Каждого ТекТЧ Из МетаданныеСсылки.ТабличныеЧасти Цикл		
		МассивСтруктур = Новый Массив;		
		Для Каждого ТекСтр Из СсылкаНаОбъект[ТекТЧ.Имя] Цикл			
			СтруктураСтрокиТЧ = Новый Структура;			
			Для Каждого ТекРекв Из МетаданныеСсылки.ТабличныеЧасти[ТекТЧ.Имя].Реквизиты Цикл
				СтруктураСтрокиТЧ.Вставить(ТекРекв.Имя, ТекСтр[ТекРекв.Имя]);
			КонецЦикла;			
			МассивСтруктур.Добавить(СтруктураСтрокиТЧ);			
		КонецЦикла;		
		СтруктураВозврат.Вставить(ТекТЧ.Имя, МассивСтруктур);		
	КонецЦикла;
	
	Возврат СтруктураВозврат;
	
КонецФункции
Показать
user1008809; cleaner_it; Xershi; mihuilka; legrey; +5 Ответить
Оставьте свое сообщение