Сравнение скорости получения имени класса через Метаданные.*.Содержит и через Метаданные().ПолноеИмя()

08.08.13

Разработка - Механизмы платформы 1С

Сравнение скорости двух методов определения класса объекта через его метаданные. Когда есть Объект, но неизвестно заранее, какой у него тип (например получен из реквизита типа ЛюбаяСсылка)

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

Наименование Файл Версия Размер
Обработка для проверки
.epf 6,55Kb
4
.epf 6,55Kb 4 Скачать

Когда есть Объект, но неизвестно заранее, какой у него тип (например получен из реквизита типа ЛюбаяСсылка) приходится обращаться к Метаданным, но прямого способа получить класс (например, для использования при составлении текста запроса) 1С не даёт.

Проверил в подготовке новой версии "Браузера Хранилища" что будет быстрее - громоздкая конструкция

ТипЗначения = ТипЗнч(Объект);
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗначения);
Если Метаданные.Справочники.Содержит(ОбъектМетаданных) Тогда Класс = "Справочник" ИначеЕсли Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда Класс = "Документ" ИначеЕсли Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМетаданных) Тогда Класс = "ПланВидовХарактеристик" ИначеЕсли Метаданные.БизнесПроцессы.Содержит(ОбъектМетаданных) Тогда Класс = "БизнесПроцесс" ИначеЕсли Метаданные.Задачи.Содержит(ОбъектМетаданных) Тогда Класс = "Задача" Иначе Класс = "" КонецЕсли;

 или изящная

Класс = Объект.Метаданные().ПолноеИмя();
Класс = Лев(Класс, Найти(Класс, ".")-1);

при замере были прогнаны циклы около 27000 итераций и оказалось:
вариант 1: 27345    0,767779    4,49
вариант 2: 27345    0,811876    7,84

Пример для замера прилагается (цикл через перебор справочника ХранилищеДополнительнойИнформации, присутствующего в большинстве типовых конфигураций) 

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4590    dsdred    53    

73

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    5304    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6432    dsdred    36    

112

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18495    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12105    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8845    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6284    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    16005    SeiOkami    31    

103
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4670 08.08.13 16:20 Сейчас в теме
(0) Да, а что? Метаданные() довольно тормозной метод, давно известно.
3. taiba 87 08.08.13 16:27 Сейчас в теме
(1) Поручик, собственно продолжаю обосновывать фактами стандарты :)
4. DitriX 2091 09.08.13 09:32 Сейчас в теме
(3) вы извините, но это никак не факты.
Фактами оно было бы, если бы взяли разных 10 платформ, базы в файловом режиме и клиент серверном (не забываем про разные версии СУБД), делали замеры через каждый час, и все это длилось в среднем - сутки.
Вот тогда бы это все имело право на жизнь, а так...
555ProRock555; Артано; nixel; +3 1 Ответить
5. taiba 87 09.08.13 10:31 Сейчас в теме
(4) DitriX, я честно написал, что данные по 8.1, почему вас это не устраивает? Хотите массовое исследование - делайте, если позволяют ресурсы. Я лишь ПОДТВЕРДИЛ рекомендации 1С в конкретном варианте. Не думаю, что другие варианты поменяют ситуацию на противоположную - стандарт разработки-то не менялся.

Почему при отсутствии темы ВООБЩЕ вы ставите мне минус за частичное "рассеивание тьмы"? Я вам ведь ничего не должен.
6. DitriX 2091 09.08.13 11:54 Сейчас в теме
(5) давайте тогда каждый начнет выкладывать вот такого рода обрезанную информацию, где в частном случае, подтверждается что-то.
Просто такую инфу, как мне кажется, надо выкладывать в своем блоге (такое есть на инфостарте).
А вот если вы говорите о чем то, что должно заинтересовать некую часть людей (я не говорю даже о 1% посетителей ресурса, хотя бы 0,001%), то это можно и публиковать.
А так - это похоже на желтую прессу. Т.е. вы взяли заведомо некое правильное утверждение, рассмотрели его в частном случае, сделали вывод - что оно истинно.
Извините, но если бы такую статью написал чебуратор, алексис, или ежи с ними, то я бы видел смысл в этой статье, так как люди заслужившие уважение - сделали свое заключение.

А вообще, это вам не соц сеть, где надо обижаться на минуса и лепить свои в ответ.
Давайте почитаем - что рядом с оценкой написано:
Поставьте плюс, если вы рекомендуете данную публикацию к прочтению и использованию.
Вы понимаете что это значит? Я растолкую - это значит, что я не рекомендую эту публикацию остальным людям.
Для вас это значит - что надо лучше собирать информацию, думать перед публикацией, и развивать свои навыки.

А не кричать - АААААА, Вы мне минус поставили, ахтунг, я тебе ничего не сделал и бла бла бла.
Еще раз - такие статьи - во вконтактик пилите, а если пишете тут - будьте добры не плакать за оценки.

Если вы дополните статью какими либо сведениями, я изменю оценку.


Надеюсь я развернуто ответил?
7. taiba 87 09.08.13 12:17 Сейчас в теме
(6) DitriX, Вы ошибаетесь в том, что мой минус был "актом возмездия". Я считаю ваши требования завышенными. У меня нет ни технического ресурса, ни временного, чтобы поставить десяток платформ и субд и провести массовое исследование. Полагаю, что у многих тоже его нет. Поэтому я делюсь тем, что мне доступно. Именно вашей категоричности "Вот тогда бы это все имело право на жизнь, а так" я и поставил минус.

Если вы проведёте подобное исследование и поделитесь результатами (пример обработки я дал), я буду только рад опубликовать их в статье со ссылкой на вас.

Я не требую, чтобы все читатели ринулись со слезами благодарности ставить плюсы моей публикации. Я сделал для себя мини-исследование и выбрал лучшую технологию. Однако не считаю её бесполезной - для указанной платформы она вполне адекватно описывает положение дел. Про ведение блогов здесь - не знал, но непонятен ваш критерий отнесения информации к блогу или к публикации.
8. V.Nikonov 120 15.08.13 21:28 Сейчас в теме
(6) DitriX, Действительно, минуса стоит ставить за ВРЕДНЫЕ статьи.
Оставьте свое сообщение