|
Кеширование в 1C | ☑ | ||
---|---|---|---|---|
0
Яплакал
21.07.16
✎
10:56
|
Коллеги вопрос такой, есть модуль повторного использования и ф-я которая на вход получает объект, как 1С определяет что в ф-ю передан повторно такой же объект и значение возвращает из кеша, или для сложных типов 1С всегда будет ф-ю выполнять?
|
|||
1
Beretta
21.07.16
✎
11:06
|
Вот интересно, что ты делаешь с этой массой времени, освободившимся при пропуске букв в слове "функция"?
По ссылке, по ссылке оно определяет. Если передаешь второй раз ссылку на тот же объект, то вызова не происходит. |
|||
2
Яплакал
21.07.16
✎
11:08
|
(1) почему обязательно по ссылке, а если я передам структуру, или набор записей
|
|||
3
H A D G E H O G s
21.07.16
✎
11:12
|
(2) Как насчет проверки?
|
|||
4
Beretta
21.07.16
✎
11:12
|
(2) о, дивное юное поколение! Ты про передачу параметров по ссылке и по значению понимаешь?
|
|||
5
Яплакал
21.07.16
✎
13:41
|
(3) какой проверки, речь о том как платформа отрабатывает
(4) о необразованное бородатое поколение, слышал. Только по ссылки на область памяти не получится объекты сравнивать т.к.я могу тебе сделать пример где в переменных будет один и тот же объект, но ссылки будут указывать на разные участки памяти. Например в шарпе приходилось писать метод расширения который подсчитывал бы шех переданного объекта что бы как-то можно было сравнивать, даже стандартный метод ObjectHash (или как-то так уже не помню) не подходил. Вот мне и стало любопытно как платформа ведет себя в таких случаях. В дагонку (4), ты попробуй создать соответствие где ключом будет структура и поюзай ее, у тебя никогда такая фигня корректно работать не будет, вот тебе и "по ссылке", иди опыта набирайся. И того вопрос другим более опытным людям, кто-то может читал или личный опыт имел, будет ли корректно работать кеширование в 1С если входящие параметры сложная структура? |
|||
6
Яплакал
21.07.16
✎
13:42
|
(5) рассчитывал* хеш
|
|||
7
Яплакал
21.07.16
✎
14:20
|
Вот кстати и ответ
{ОбщийМодуль.МодульЁпта.Модуль(63)}: Ошибка при вызове метода контекста (ЭтоПростойТип) Если Не БФТ_ПараметрыВнешнихСистемСерверПовтИсп.ЭтоПростойТип(ТипЗнч(ТекущиеДанные.Значение)) Тогда по причине: Несоответствие типов (параметр номер '1') (Неверный тип параметра. Допустимы только примитивные типы, ссылки, Структура) Если ф-я в модуле повторного исп. 1С контролирует входящие параметры |
|||
8
H A D G E H O G s
21.07.16
✎
14:24
|
(7) Ну вот ты и проверил.
|
|||
9
Mauser
21.07.16
✎
17:33
|
5) Вы, сишарпеи и дотнетчики, чесслово, упороторые какие-то. особенно когда начинающие.
Весьма корректно работает |
|||
10
Mauser
21.07.16
✎
17:36
|
1C Сравнивает экземпляры объектов по ссылкам на них. А влажные фантазии про хеши и глубокое копирование - это тебе к @Serginio
|
|||
11
Serginio1
21.07.16
✎
17:41
|
Как слово C# услышали так сразу Serginio
Изучайте http://metanit.com/sharp/tutorial/ |
|||
12
Mauser
21.07.16
✎
17:42
|
Устойчивая ассоциация, сам виноват.
|
|||
13
aleks_default
21.07.16
✎
17:46
|
(12) +1 И не самая плохая :)
|
|||
14
Serginio1
21.07.16
✎
17:46
|
(12) У меня устойчивая ассоциация с Хэйслсбергом. Так, посылайте всех к нему.
|
|||
15
Mauser
21.07.16
✎
17:52
|
(14) Неси бремя славы с достоинством, слабак!
|
|||
16
Serginio1
21.07.16
✎
17:54
|
(15) Если хочешь отослать, то лучше отсылать на ресурсы как в 11. Будет польза от советов.
|
|||
17
Serginio1
21.07.16
✎
17:54
|
(13) Спасибо!
|
|||
18
jsmith
21.07.16
✎
17:58
|
Дот нет форева
|
|||
19
Mauser
21.07.16
✎
18:22
|
||||
20
Mauser
21.07.16
✎
18:25
|
||||
21
Mauser
21.07.16
✎
18:25
|
Эх, миста-миста... FreeBSD и то уже давно в уникод умеет
|
|||
22
Garykom
гуру
21.07.16
✎
18:32
|
Писать систему хранения со сжатием на основе повторяющихся объектов в 1С это сильно...
В C# Объект.Equals(Объект.Clone()) == ? |
|||
23
Garykom
гуру
21.07.16
✎
18:34
|
(22)+ А банальное это сериализовать и сравнить как строки/массив байт, но если поля тоже ссылочных то хз даже
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |