|
вопрос про кешируемые функции | ☑ | ||
---|---|---|---|---|
0
novichok79
28.08.18
✎
10:31
|
Доброго времени суток, уважаемые друзья.
Есть функция НайтиНЁХ(Таблица, СписокХарактеристик) Таблица - ИсходнаяТаблица, массив структур или соответствие с элементами в виде структур СписокХарактеристик - структура Функция находится в модуле с пометкой повторного использования. Чего платформе будет достаточно, чтобы не вызывать функцию, а вернуть сохраненное значение? 1) Системе достаточно видеть, что СписокХарактеристик - это структура, чтобы не производить вычисления? 2) Система сравнит структуру по ключам и вернет значение только в том случае, если параметр типа структура в кэше идентичен вновь передаваемому? Заранее благодарю за помощь. |
|||
1
Tonik992
28.08.18
✎
10:59
|
Попробуйте отладить, сразу всё ясно станет.
|
|||
2
Mort
28.08.18
✎
11:04
|
Придется послать конкретно тот же самый экземпляр структуры.
|
|||
3
novichok79
28.08.18
✎
11:12
|
(2) я думал что кто-то уже делал такую вещь из форумчан. попробую сам. спасибо.
|
|||
4
Tonik992
28.08.18
✎
11:14
|
(3) Отпишись плз по итогу -)
|
|||
5
hhhh
28.08.18
✎
11:15
|
(0) кто такие "НЁхи" ??
|
|||
6
Mort
28.08.18
✎
11:17
|
Хотя не, вру. Походу смотрит поля.
|
|||
7
unregistered
28.08.18
✎
11:18
|
(0) > Таблица - ИсходнаяТаблица, массив структур или соответствие с элементами в виде структур.
Нельзя так. https://its.1c.ru/db/v8312doc#bookmark:dev:TI000000181 Если у общего модуля установлено повторное использование возвращаемых значений, то на типы параметров экспортируемых функции накладывается ряд ограничений. Типы параметров могут быть только: Примитивными типами (Неопределено, NULL, Булево, Число, Строка, Дата). Любыми ссылками на объекты базы данных. Структурами со значениями свойств вышеперечисленных типов. В этом случае идентичность параметров контролируется «по содержимому» структур. |
|||
8
novichok79
28.08.18
✎
11:20
|
||||
9
unregistered
28.08.18
✎
11:24
|
+ к (7) Иными словами в качестве параметров могут быть структуры (нельзя массив, таблица, соответствие) и значения свойств этой структуры могут быть только примитивного или ссылочного типа.
При соблюдении этих условий система отработает по алгоритму похожему на твой пункт 2 - Система сравнит структуру по ключам и вернет значение только в том случае, если параметр типа структура в кэше идентичен вновь передаваемому. С уточнением, что будет проверено идентичность содержания структуры. |
|||
10
novichok79
28.08.18
✎
11:32
|
(9) спасибо, осталось это дело проверить.
|
|||
11
Кир Пластелинин
28.08.18
✎
11:32
|
еще следует не забывать про срок жизни "кэша" и его местоположении.
(9) емнп, то именно фиксированные структуры нельзя использовать. |
|||
12
unregistered
28.08.18
✎
11:36
|
(10) > осталось это дело проверить
А чего проверять? Для твоего варианта не подходит. Таблицы - нельзя, массивы - нельзя, соответствия - нельзя, структуры, состоящие из структур - тоже нельзя. |
|||
13
novichok79
28.08.18
✎
11:47
|
(12) подходит, я сделал параметр "ПараметрыПоиска". ключ структуры - имена измерений регистра, значения ключей - ссылочные типы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |