|
v8: СКД - выражение представления и эффективность его использования | ☑ | ||
---|---|---|---|---|
0
vladenoff
08.02.12
✎
10:32
|
Доброе утро.
В СКД запросом выбираю регистр остатков "ТОВАРЫ" (Измерение номенклатура и количество). У справочника номенклатура есть реквизит АРТИКУЛ. Хочу для пользователя выводить номенклатуру всегда с артикулом. Если я напишу напротив поля Номенклатура в представлении: Номенклатура.Артикул " - " Номенклатура.Наименование Мне представление на сервере сформируется в одном запросе, либо система после получения данных будет для каждой строки запроса обращаться к базе формируя представления ??? Если да, то тогда как более оптимально сформировать мене нужное представление в СКД? И ещё "если да" :) В каких случаях вы используете представление? Спасибо. |
|||
1
vladenoff
08.02.12
✎
10:33
|
(0)пардон. Представление = "Выражение Представления"
|
|||
2
Armando
08.02.12
✎
10:34
|
Включить технологический журнал и посмотреть, не?
|
|||
3
golden-pack
08.02.12
✎
10:35
|
Я всегда думал что запрос выполняется на клиенте ...
|
|||
4
vladenoff
08.02.12
✎
10:35
|
(2) тут обсудить как то проще :)
|
|||
5
vladenoff
08.02.12
✎
10:36
|
(3) Это такая шутка?
|
|||
6
golden-pack
08.02.12
✎
10:37
|
(3) нет. С чего ему выполнятся на сервере ? Если ты напишешь код в модуле объекта - где он будет выполняться ?
|
|||
7
vladenoff
08.02.12
✎
10:39
|
(6) Как же запрос может исполняться на клиенте? Что он у клиента выбирать будет? В какой регистр обращаться? Ведь данные то все на сервере.
|
|||
8
vladenoff
08.02.12
✎
10:42
|
(6) для СКД не дано писать код в модуле :)
СКД очень полезная штука. Начал разбираться в деталях - советую :) |
|||
9
Armando
08.02.12
✎
10:43
|
(8) >> СКД очень полезная штука
Мужики-то не знают...) |
|||
10
golden-pack
08.02.12
✎
10:44
|
Так же вопрос параметры и отборы.
Параметры - на уровне sql, а отборы видимо выборку запроса фильтруют уже на клиенте. (8) да ты шо. |
|||
11
golden-pack
08.02.12
✎
10:45
|
(8) то что там код не нужно писать - это ты пока еще слишком простые отчетики пишешь. Пример отчет из двух баз по оле.
|
|||
12
Armando
08.02.12
✎
10:46
|
(10) >> а отборы видимо выборку запроса фильтруют уже на клиенте
Нет. Отборы тож в запрос подставляются, как параметры. |
|||
13
golden-pack
08.02.12
✎
10:47
|
(12) Интересно, но замечал что отборы работаю медленне параметров, мб показалось
|
|||
14
vladenoff
08.02.12
✎
10:48
|
(12) да да... это понятно. а может кто ответить мне по теме?
Пасиб. |
|||
15
Armando
08.02.12
✎
10:52
|
(13) Отборы надо тоже уметь правильно готовить. Там есть неочевидные на первый взгляд вещи.
|
|||
16
vladenoff
08.02.12
✎
10:54
|
(15) Ребята, тема с параметрами и отборами очень интересная, но пожалуйста, можно в отдельной теме.
|
|||
17
Armando
08.02.12
✎
10:58
|
(14) >> а может кто ответить мне по теме?
Учитывая, что для ссылочных полей СКД автоматически получает представление с сервера в виде дополнительного поля в запросе, то что-то мне подсказывает, если заполнено выражение представления, то именно оно будет подставлено в результирующий запрос (дополнительным полем). Хотя могу ошибаться. Не проверял. Советую автору проверить. О результатах сообщить здесь). Ветку добавлю в базу знаний. |
|||
18
vladenoff
08.02.12
✎
11:10
|
(17)
Да, однозначно. Но! Вопрос немного в другом. В какой период сформируется это представление? Непосредственно в запросе? Либо после обращения к базе по результату запроса будет мне формировать такие себе микро-запросы на каждую строку ? |
|||
19
vladenoff
08.02.12
✎
11:11
|
(18)попробую подсмотреть в результирующий макет СКД
|
|||
21
vladenoff
08.02.12
✎
11:36
|
Первичный запрос СКД (макет):
.... <query>ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.Качество, ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, ТоварыНаСкладахОстатки.СерияНоменклатуры, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки</query> .... А вот запрос из макета для исполнения на сервере: .... <query>ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток, ТоварыНаСкладахОстатки.Номенклатура.Артикул КАК НоменклатураАртикул, ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК НоменклатураНаименование ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки</query> </dataSet> .... Таким образом, делаем вывод что все необходимые нам поля формирования представления у нас выбираются в одном запросе и при формировании такого представления на сервере больше нет необходимости обращаться к базе. Но стоит быть очень внимательным при описании представления с использованием самостоятельно написанными функциями. Они будут исполняться для каждой строки результата запроса. И следует следить чтоб там не было явных и неявных запросов к базе, типа "Товар.*", "перечисление.".... Всем удачи! ;) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |