|
Запросы против Экспортных функций | ☑ | ||
---|---|---|---|---|
0
tolok_d
28.08.12
✎
14:28
|
собственно вопрос в том что лучше? Лучше для быстродействия системы.
|
|||
1
mikecool
28.08.12
✎
14:29
|
что лучше - горячее или желтый?
|
|||
2
andrewks
28.08.12
✎
14:30
|
лучше розовый бери!
|
|||
3
PR
28.08.12
✎
14:30
|
(1) Все знают, что длинный лучше всего.
|
|||
4
vmv
28.08.12
✎
14:31
|
(0) я размещаю ключевые запросы в экспортных - у меня такая проблема не стоит
|
|||
5
Ненавижу 1С
гуру
28.08.12
✎
14:31
|
а в каком смысле сравнивать?
|
|||
6
Karavanych
28.08.12
✎
14:32
|
(5) в контексте мировой глобализации.
|
|||
7
tolok_d
28.08.12
✎
14:34
|
(1),(2),(3),(4) вот так и знал что такое начнется
(5) спасибо за адекватность. Есть внешняя обработка, нужно достать данные, моэно через экспортную функцию а можно через запрос. Но руководитель настаивает через експорт, а я думаю запросом будет быстрее. (Скорость выполнения експортной функции)<(скорость запроса) |
|||
8
Ненавижу 1С
гуру
28.08.12
✎
14:36
|
(7) ну если уверен, что меньше, то обосновывай
хотя с другой стороны есть такое понятие как дублирование кода |
|||
9
PR
28.08.12
✎
14:36
|
(7) А что, в экспортной функции нельзя использовать запросы? Какой-то... эээ... ну вы поняли :))
|
|||
10
andrewks
28.08.12
✎
14:37
|
нихрена не понял. речь идёт про наносекунды, потраченные на лишный вызов сервера для вызова экспортной функции из модуля объекта, что-ли?
|
|||
11
PR
28.08.12
✎
14:40
|
(10) Ну не скажи. Чубайс вон на нано знаешь как поднялся!
|
|||
12
tolok_d
28.08.12
✎
14:41
|
(10) вот это я и хотел узнать! есть ли разница и огромная ли она
|
|||
13
PR
28.08.12
✎
14:41
|
(12) А сам замерить не мог?
|
|||
14
Ненавижу 1С
гуру
28.08.12
✎
14:42
|
Меня что интересует, в отличии от автора
Допустим у нас есть какой-то довольно хитрый подсчет скидки И скидку эту надо уметь выводить в разных запросах - и ее расчет реализуют либо подзапросом либо временной таблицей Но дело в том, что запросов подобных довольно много и в каждом этот расчет дублируется, что ни есть хорошо |
|||
15
andrewks
28.08.12
✎
14:42
|
(12) ну, ты ж не Нанотолий. для тебя какой-либо видимой разницы не будет
|
|||
16
andrewks
28.08.12
✎
14:43
|
(14) агрегаты?
|
|||
17
Ненавижу 1С
гуру
28.08.12
✎
14:45
|
(16) как они спасут?
|
|||
18
andrewks
28.08.12
✎
14:46
|
(17) пока не знаю, ты же деталей не раскрыл. но могут, при определённых условиях
|
|||
19
Рэйв
28.08.12
✎
14:48
|
(14)Скидка считается на каждый конкретный случай. По своим пределам и процентам.Так что, имхо, никак не отвертишься от повторений расчета
|
|||
20
Ненавижу 1С
гуру
28.08.12
✎
14:48
|
(19) вот это и плохо - дублирование кода
аукнется при смене логики |
|||
21
pessok
28.08.12
✎
14:51
|
(20) вот тут как раз выручит кракозябра в экспортной функции, которая принимает 12 параметров и всю эту лабуду обрабатывает, хоть и гипнокод, на первый взгляд
|
|||
22
Ненавижу 1С
гуру
28.08.12
✎
14:55
|
(21) как она выручит, если я получаю данные номенклатуры запросом? потом все это снова грузить и сцеплять? или еще хуже вызывать глобальную функцию в цикле? нет уж
|
|||
23
pessok
28.08.12
✎
14:57
|
(22) ну дык в ВТ твой результат, ее в глобальниц, там обработал и вернул ТЗ
|
|||
24
GROOVY
28.08.12
✎
15:05
|
Ненавижу 1С, тебе поможет функция в общем модуле с включенным свойством "Повторное использование возвращаемых значений".
|
|||
25
pessok
28.08.12
✎
15:12
|
(24) кстати, где бы почитать, как это работает?
|
|||
26
Ненавижу 1С
гуру
28.08.12
✎
15:14
|
(24) хм... она будет хранить данные все время работы сеанса? а не жирно ли? да и данные могут стать неактуальными
|
|||
27
GROOVY
28.08.12
✎
15:14
|
(26) Можно на время вызова, и можно чистить принудительно прокешированные данные.
|
|||
28
Никола_
Питерский 28.08.12
✎
15:16
|
(25) на ИТС.
|
|||
29
Никола_
Питерский 28.08.12
✎
15:18
|
(25) Дарю
5.5.2.2. Повторное использование возвращаемых значений Если общий модуль не является глобальным, то становится доступно свойство Повторное использование возвращаемых значений. Это свойство может принимать следующие значения: ? Не использовать — повторное использование возвращаемых значений для функций этого общего модуля не используется. ? На время вызова и На время сеанса — для общего модуля используется метод определения повторного использования данных. Суть этого метода заключается в том, что в ходе выполнения кода система запоминает параметры и результат работы функций после первого вызова функции. При повторном вызове функции с такими же параметрами, происходит возврат запомненного значения (из первого вызова) без выполнения самой функции. Если функция во время своего выполнения меняет значения параметров, то повторный вызов функции не будет это делать. Можно выделить следующие особенности сохранения результатов вызова: ? если функция выполняется на сервере и вызывается из серверного кода, то значения параметров и результат вызова запоминаются для текущего сеанса на стороне сервера; ? если функция выполняется на толстом или тонком клиенте, то значения параметров и результатов вызова запоминаются на стороне клиента; ? если функция выполняется на стороне сервера, а вызывается из клиентского кода, то значения параметров вызова запоминаются и на стороне клиента, и на стороне сервера (для текущего сеанса). Сохраненные значения удаляются: ? если свойство установлено в значение На время вызова: ? на стороне сервера — при возврате управления с сервера; ? на стороне клиента — при завершении работы процедуры или функции встроенного языка верхнего уровня (вызванной системой из интерфейса, а не из другой процедуры или функции встроенного языка); ? если свойство общего модуля установлено в значение На время сеанса: ? на стороне сервера — при окончании сеанса; ? на стороне клиента — при закрытии клиентского приложения. Сохраненные значения будут удалены: ? на сервере, в толстом клиенте, во внешнем соединении, в тонком клиенте и в веб-клиенте с обычной скоростью соединения — через 20 минут после вычисления сохраняемого значения или через 6 минут после последнего использования; ? в тонком клиенте и веб-клиенте с низкой скоростью соединения — через 20 минут после вычисления сохраняемого значения; ? при нехватке оперативной памяти в рабочем процессе сервера; ? при перезапуске рабочего процесса; ? при переключении клиента на другой рабочий процесс. После удаления значений вызов экспортируемой функции выполняется как при первом вызове. На выполнение процедур данное свойство общих модулей не влияет — процедуры выполняются всегда. Если у общего модуля установлено повторное использование возвращаемых значений, то на типы параметров экспортируемых функции накладывается ряд ограничений. Типы параметров могут быть только: ? Примитивными типами (Неопределено, NULL, Булево, Число, Строка, Дата). ? Любыми ссылками на объекты базы данных. ? Структурами со значениями свойств вышеперечисленных типов. В этом случае идентичность параметров контролируется «по содержимому» структур. Если у общего модуля свойство Повторное использование возвращаемых значений установлено в значение На время сеанса, то в значениях, возвращаемых функциями такого модуля, нельзя использовать значения типа МенеджерВременныхТаблиц. Метод глобального контекста ОбновитьПовторноИспользуемыеЗначения() удаляет все повторно используемые значения, как на стороне сервера, так и на стороне клиента, независимо от места вызова метода. После выполнения метода ОбновитьПовторноИспользуемыеЗначения() первый вызов функции будет выполнен полностью. Кто нить сверните плиз, портяночку ! |
|||
30
Ненавижу 1С
гуру
28.08.12
✎
15:19
|
(27) тогда это ничего не дает
|
|||
31
Йохохо
28.08.12
✎
17:18
|
(20) так можно же в менеджер временных таблиц помещать экспортной функцией )
|
|||
32
Ненавижу 1С
гуру
28.08.12
✎
17:20
|
(31) ага, вот он мне нужен такой глобальный и не достоверный ))
|
|||
33
Йохохо
28.08.12
✎
17:22
|
в локальный, записать на бумажке суперуникальноеимявт и допихивать в менеджер таблички по одной
|
|||
34
fisher
28.08.12
✎
17:43
|
(27) Одна фигня. Чистить можно только ВЕСЬ кэш ВСЕХ функций во ВСЕХ модулях.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |