|
Вопрос про вычисляемые поля к экспертам в СКД | ☑ | ||
---|---|---|---|---|
0
napagokc
15.09.16
✎
08:36
|
Столкнулся с ситуацией, с которой раньше не сталкивался. Тыкаюсь-мыкаюсь, но постоянно нарываюсь на противоречивую информацию. Помогите, пожалуйста, разобраться в ситуации.
Есть типовой отчет на СКД, который состоит из объединения запросов. В некоторых из запросов есть поле "СуммаДоходов": http://prntscr.com/ci6dpo Это же поле, разумеется, есть и в объединении: http://prntscr.com/ci6dxn Далее мы лезем на вкладку "Вычисляемые поля" и видим там поле с таким же наименованием: http://prntscr.com/ci6ebx В выражении, я так предполагаю, стоит "СуммаДоходов" из объединения запросов. Но если мы посмотрим еще повнимательнее на вычисляемые поля, то мы увидим еще одно поле "ПрибыльУбыток", которое вычисляется через поле "СуммаДоходов": http://prntscr.com/ci6enl Также, мы знаем из Хрусталевой, что в выражениях вычисляемых полей не могут использоваться другие вычисляемые поля: http://prntscr.com/ci6f6j Однако, если менять значение поля "СуммаДоходов" непосредственно в запросе - это не влияет на результат, но если поменять значение одноименного поля в вычисляемом поле, то изменится и значение вычисляемого поля "ПрибыльУбыток". Помогите найти истину! Объясните, как работает механизм, когда вычисляемое поле совпадает с именем поля из запроса? И почему на конечное вычисляемое поле "ПрибыльУбыток" влияет изменение именно вычисляемого поля, а не одноименного поля из объединения запросов? Если это важно, то речь идет про отчет "АнализДоходовРасходов" из КА2.0 |
|||
1
napagokc
15.09.16
✎
08:50
|
https://yadi.sk/d/wZmLNxiDvBPJD
выложил типовой отчет, чтобы можно было посмотреть своими глазами |
|||
2
aleks_default
15.09.16
✎
09:08
|
Прикольно. Не знал что так можно. Надо посмотреть конечный текст запроса.
|
|||
3
napagokc
15.09.16
✎
09:14
|
(2) вот и я впервые столкнулся... Вообще, я хотел расширить отчет, чтобы там выводилась инфа не только в управленческой валюте (у нас USD), но и в регламентированной (рубли). Первое, что сделал - полностью клонировал поля "СуммаДоход", "СуммаРасход", "ПрибыльУбыток", приписав к ним "Руб" в конце. Клонировал и в запросах, и в вычисляемых полях, но... не работает!!! Очевидно, что логика работы отчета не такая, как я ожидал. Вроде, весь отчет уже разобрал по полочкам, но все равно не могу понять, почему не работает...
|
|||
4
Cyberhawk
15.09.16
✎
09:19
|
Возможно, там программно куча всего навешано на отчет
|
|||
5
napagokc
15.09.16
✎
09:23
|
(4) а ведь мне и в голову не пришло заглянуть в модуль обработки... Действительно, там есть куча всего, включая функцию "ТекстЗапросаДоходы" с каким-то запросом. Щас поизучаю, спасибо за наводку!
http://prntscr.com/ci6qy5 |
|||
6
Dotoshin
15.09.16
✎
09:32
|
В ресурсах, в доступных полях СуммаДоходов отображается два раза, при чем оба раза как вычисляемое поле. Скорей всего это получилось непреднамеренно, просто небольшой косячок.
В ресурсы судя по всему попадает вычисляемое поле, но не попадает поле из запроса, поэтому никаких противоречий не возникает. При вычислении этого поля используется СуммаДоходов из запроса, но само по себе это не криминал. При изменении суммы доходов в запросе, результат может оставаться неизменным из-за того, что в выражении этого вычисляемого поля есть условие, в которое вы просто не попадаете. |
|||
7
napagokc
15.09.16
✎
09:39
|
(6) То, что изменение в запросе может не отразиться на конечном результате из-за того, что не попадет в условие - это я и сам допетрил. Это легко было проверить в том же выражении вычисляемого поля, если заменить
ВЫБОР КОГДА СтандартныйРаздел = &СтрокаДоходы ТОГДА ЕСТЬNULL(СуммаДоходов,0) ИНАЧЕ 0 КОНЕЦ , например, на ВЫБОР КОГДА СтандартныйРаздел = &СтрокаДоходы ТОГДА ЕСТЬNULL(СуммаДоходов,7777) ИНАЧЕ 1111 КОНЕЦ Тогда мы в любом случае увидим результат выполнения запроса и поймем логику. Однако, в ресурсах никакого дубликата поля нет. Есть только одно поле "СуммаДоходов". Я выложил типовой отчет и можно убедиться в этом лично. |
|||
8
aleks_default
15.09.16
✎
09:39
|
(4) Проверил у себя на самописном отчете. Один набор - простой запрос остатков и оборотов
Создал вычисляемое поле с таким же наименованием как и поле в запросе(СуммаПриход). В выражении написал "СуммаПриход*100" Создал второе вычисляемое поле (Поле1), с выражением "СуммаПриход". Результат отчета: значение поля СуммаПриход увеличилось в 100 раз. Значение поля Поле1 равно первоначальному значению СуммаПриход(по запросу). Так что утверждение <<Однако, если менять значение поля "СуммаДоходов" непосредственно в запросе - это не влияет на результат, но если поменять значение одноименного поля в вычисляемом поле, то изменится и значение вычисляемого поля "ПрибыльУбыток".>> не верно. |
|||
9
napagokc
15.09.16
✎
09:41
|
(8) там в модуле запрос переписывается. Мне уже подсказали это в (4) и я проверил - если изменять данные в написанном в модуле запросе, то изменяется и результат.
|
|||
10
aleks_default
15.09.16
✎
09:48
|
(9)Подмена текста запроса в модуле объясняет первую часть твоего утверждения, но вторая часть утверждения от текста запроса не зависит. И она не верна.
|
|||
11
Dotoshin
15.09.16
✎
09:53
|
(7) >>в ресурсах никакого дубликата поля нет.
Есть - в полях доступных для выбора http://hkar.ru/KVnI |
|||
12
Dotoshin
15.09.16
✎
09:54
|
(11) упс.., не то
|
|||
13
napagokc
15.09.16
✎
09:55
|
Так не дубликат же! Два разных ресурса: "СуммаДоходов" и "СуммаРасходов"
|
|||
14
Dotoshin
15.09.16
✎
09:59
|
(13) да, да разные - не разглядел сразу эти мелкие буковки...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |