|
Есть ли быстрый способ получить Подсистемы объекта метаданных? | ☑ | ||
---|---|---|---|---|
0
SerGa
23.11.12
✎
10:09
|
В последних релизах платформы убрали свойство метаданных Подсистемы..
Почитал темах увидел только один способ перебором из Подсистема.Состав Написал рекурсивную функцию по получению списка подсистем метеданных через перебор... но она работает очень медленно.. гораздо медленнее чем .Подсистемы из старых релизов платформы.. Функция ПолучитьМассивПодсистемОбъектаМетаданных(ТекМетаданные, Подсистемы = "", масПодсистемы = "") Экспорт Если масПодсистемы = "" Тогда масПодсистемы = Новый Массив; КонецЕсли; Если Подсистемы = "" Тогда Подсистемы = Метаданные.Подсистемы; КонецЕсли; Для каждого ТекПодсистема Из Подсистемы Цикл Если ТекПодсистема.Состав.Содержит(ТекМетаданные) Тогда масПодсистемы.Добавить(ТекПодсистема); КонецЕсли; ПолучитьМассивПодсистемОбъектаМетаданных(ТекМетаданные, ТекПодсистема.Подсистемы, масПодсистемы); КонецЦикла; Возврат масПодсистемы; КонецФункции Может есть более быстрый способ???? |
|||
1
SerGa
23.11.12
✎
10:30
|
ап
|
|||
2
sadden
23.11.12
✎
10:43
|
а зачем ты рекурсивную функцию сделал?
|
|||
3
SerGa
23.11.12
✎
10:49
|
(2) там дерево... прямым обходом внутрь узлов не заходит..
|
|||
4
sadden
23.11.12
✎
10:51
|
а так да, сами при обновлении накололись, тоже пришлось переделывать по аналоги с твоим
|
|||
5
SerGa
23.11.12
✎
10:53
|
у меня проверяются подсистемы для объекта метаданных при обмене данными... если много объектов выгружается.. тормозит дико... раньше быстро работало....
|
|||
6
sadden
23.11.12
✎
10:53
|
тоже самое
|
|||
7
sadden
23.11.12
✎
10:53
|
только мы не перебераем
|
|||
8
SerGa
23.11.12
✎
10:54
|
(7) а как?
|
|||
9
acsent
23.11.12
✎
10:55
|
зачем нужно такое получение?
|
|||
10
sadden
23.11.12
✎
10:55
|
явно указываем:
Если Метаданные.Подсистемы.ТТС_CRM.Состав.Содержит(Источник.Метаданные()) Тогда ... |
|||
11
SerGa
23.11.12
✎
10:56
|
(9) при обмене данными фильтрую по подсистемам что выгружать в подчиненный узел, а что нет...
|
|||
12
Maxus43
23.11.12
✎
10:56
|
(5) можно в параметр сенаса засунуть соответсвие метаданных подсистемам например, будет быстро
|
|||
13
sadden
23.11.12
✎
10:56
|
(12) тоже хотел это предложить
|
|||
14
SerGa
23.11.12
✎
10:58
|
короче сделал так
+ к предыдущей функции Функция ПолучитьПодсистемыСИспользованиемКеша(кэшПодсистемы, ТекМетаданные) стОтбор = Новый Структура; стОтбор.Вставить("Метаданные", ТекМетаданные); масСтроки = кэшПодсистемы.НайтиСтроки(стОтбор); Если масСтроки.Количество() = 0 Тогда Подсистемы = ПолучитьМассивПодсистемОбъектаМетаданных(ТекМетаданные); Для каждого ТекПодсистема Из Подсистемы Цикл НовСтрока = кэшПодсистемы.Добавить(); НовСтрока.Метаданные = ТекМетаданные; НовСтрока.Подсистема = ТекПодсистема; КонецЦикла; Иначе Для каждого ТекСтрока Из масСтроки Цикл Подсистемы = Новый Массив; Подсистемы.Добавить(ТекСтрока.Подсистема); КонецЦикла; КонецЕсли; Возврат Подсистемы; КонецФункции кэширую в таблице значений... если в ней нет для текущих метаданных соответствия, то иду перебором в подсистемы... |
|||
15
Maxus43
23.11.12
✎
10:58
|
кстати в каком релизе убрали?
|
|||
16
SerGa
23.11.12
✎
10:58
|
(15) хз в 13 ещё работало по старому как перешли на 16 всё сломалось ))
|
|||
17
acsent
23.11.12
✎
11:00
|
(11) Юзай лучше подсистему регистрации изменений из БСП
|
|||
18
SerGa
23.11.12
✎
11:01
|
БСП ?
|
|||
19
sadden
23.11.12
✎
11:06
|
(12) а нельзя ли просто явно определить список подсистем через Метаданные.Подсистемы.<Имя подсистемы> и проверять уже содержат они <Источник>, если содержит хотя бы одна то выгружаешь в подчинённый
|
|||
20
sadden
23.11.12
✎
11:10
|
(19) to (14)
|
|||
21
SerGa
23.11.12
✎
11:10
|
(19) наверно можно и так...
|
|||
22
sadden
23.11.12
✎
11:16
|
(21) по крайней мере так точно быстрее будет отрабатывать
|
|||
23
SerGa
23.11.12
✎
11:17
|
(22) спасибо... попробую в сравнении с кэшированным вариантом..
|
|||
24
sadden
23.11.12
✎
11:20
|
(23) дай хоть знать то потом )))))
|
|||
25
Jaffar
23.11.12
✎
11:33
|
(18) БСП = Библиотека Стандартных Процедур (бесплатная конфа с кучей стандартных вкусняшек)
|
|||
26
oleg_km
23.11.12
✎
12:37
|
(25) Я бы не назвал это вкусняшками, достаточно посредственная концепция, достаточно посредственный код. Мне кажется, каждый серьезный разработчик на 1С 8 уже давно имеет свою БСП
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |