Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

вопрос про кешируемые функции

вопрос про кешируемые функции
Я
   novichok79
 
28.08.18 - 10:31
Доброго времени суток, уважаемые друзья.

Есть функция НайтиНЁХ(Таблица, СписокХарактеристик)
Таблица - ИсходнаяТаблица, массив структур или соответствие с элементами в виде структур
СписокХарактеристик - структура
Функция находится в модуле с пометкой повторного использования.
Чего платформе будет достаточно, чтобы не вызывать функцию, а вернуть сохраненное значение?

1) Системе достаточно видеть, что СписокХарактеристик - это структура, чтобы не производить вычисления?
2) Система сравнит структуру по ключам и вернет значение только в том случае, если параметр типа структура в кэше идентичен вновь передаваемому?

Заранее благодарю за помощь.
 
 
   Tonik992
 
1 - 28.08.18 - 10:59
Попробуйте отладить, сразу всё ясно станет.
   Mort
 
2 - 28.08.18 - 11:04
Придется послать конкретно тот же самый экземпляр структуры.
   novichok79
 
3 - 28.08.18 - 11:12
(2) я думал что кто-то уже делал такую вещь из форумчан. попробую сам. спасибо.
   Tonik992
 
4 - 28.08.18 - 11:14
(3) Отпишись плз по итогу -)
   hhhh
 
5 - 28.08.18 - 11:15
(0) кто такие "НЁхи" ??
   Mort
 
6 - 28.08.18 - 11:17
Хотя не, вру. Походу смотрит поля.
   unregistered
 
7 - 28.08.18 - 11:18
(0) > Таблица - ИсходнаяТаблица, массив структур или соответствие с элементами в виде структур.

Нельзя так.

https://its.1c.ru/db/v8312doc#bookmark:dev:TI000000181

Если у общего модуля установлено повторное использование возвращаемых значений, то на типы параметров экспортируемых функции накладывается ряд ограничений. Типы параметров могут быть только:
Примитивными типами (Неопределено, NULL, Булево, Число, Строка, Дата).
Любыми ссылками на объекты базы данных.
Структурами со значениями свойств вышеперечисленных типов. В этом случае идентичность параметров контролируется «по содержимому» структур.
   novichok79
 
8 - 28.08.18 - 11:20
   unregistered
 
9 - 28.08.18 - 11:24
+ к (7) Иными словами в качестве параметров могут быть структуры (нельзя массив, таблица, соответствие) и значения свойств этой структуры могут быть только примитивного или ссылочного типа.
При соблюдении этих условий система отработает по алгоритму похожему на твой пункт 2 - Система сравнит структуру по ключам и вернет значение только в том случае, если параметр типа структура в кэше идентичен вновь передаваемому.
С уточнением, что будет проверено идентичность содержания структуры.
   novichok79
 
10 - 28.08.18 - 11:32
(9) спасибо, осталось это дело проверить.
 
 Рекламное место пустует
   Кир Пластелинин
 
11 - 28.08.18 - 11:32
еще следует не забывать про срок жизни "кэша" и его местоположении.
(9) емнп, то именно фиксированные структуры нельзя использовать.
   unregistered
 
12 - 28.08.18 - 11:36
(10) > осталось это дело проверить

А чего проверять? Для твоего варианта не подходит. Таблицы - нельзя, массивы - нельзя, соответствия - нельзя, структуры, состоящие из структур - тоже нельзя.
   novichok79
 
13 - 28.08.18 - 11:47
(12) подходит, я сделал параметр "ПараметрыПоиска". ключ структуры - имена измерений регистра, значения ключей - ссылочные типы.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует