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

1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос про вычисляемые поля к экспертам в СКД

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

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