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

1С:Предприятие ::

Метки: 

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

Я
   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) подходит, я сделал параметр "ПараметрыПоиска". ключ структуры - имена измерений регистра, значения ключей - ссылочные типы.


Список тем форума
Рекламное место пустует Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует