Имя: Пароль:
1C
1С v8
Деление в запросе
0 ezhik90
 
06.08.15
11:10
Доброго времени суток. Имеется деление в запросе
ВЫБОР
    КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
    ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
    ИНАЧЕ 0
КОНЕЦ

Так вот это деление не выполняется, хоть с условием, хоть без, запрос возвращает просто начальный остаток. Даже если я оставляю просто деление - всё равно возвращается начальный остаток. Можно предположить, что коэффициент = 1, но нет, я вытаскивал отдельно остаток (520460332) и отдельно коэффициент (2281), что в результате должно дать 228172, но упорно возвращается начальный остаток.
В чём дело?
1 Nuobu
 
06.08.15
11:13
(0) В Номенклатуре точно есть реквизит КоэффициентЕдиницыДляОтчетов?
2 butterbean
 
06.08.15
11:13
1. смотришь не туда, не тот отчет
2. не сохранил изменения
3. не чищенный кеш
4. еще 100500 дурацких неочевидных для нас причин
3 ezhik90
 
06.08.15
11:13
(2) Конечно, ведь отдельно запросом вытаскивается - 2281.
4 ezhik90
 
06.08.15
11:14
(2) Прошу прощения - ответ был к (1). Нет, ничего такого нет.
5 qeos
 
06.08.15
11:16
SQL server profiler
6 ezhik90
 
06.08.15
11:16
А как может повлиять на деление условие
7 gigi789
 
06.08.15
11:17
(3) вангую ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов=1
8 qeos
 
06.08.15
11:17
а во вторых запрос не весь приведен, возможно он кривой
9 ezhik90
 
06.08.15
11:17
НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОприходованиеИзлишковТоваров
10 ezhik90
 
06.08.15
11:17
Добавляю условие - деления нет, убираю - есть.
11 ezhik90
 
06.08.15
11:17
(7) Ну я же написал - коэффициент 2281 выводится отдельно.
12 Nuobu
 
06.08.15
11:18
(11) Значит, не тот коэффициент выводится отдельно.
13 ezhik90
 
06.08.15
11:19
(12) Да как может быть не тот, если номенклатура одна?
14 Lama12
 
06.08.15
11:19
(0) НЕсколько элементов номенклатуры с одинаковым наименованием.
Выведи в результаты это поле ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Код. Посмотри тот ли элемент используешь.
Заодно выведи ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов станет явно видно что на что делится.
15 Lama12
 
06.08.15
11:20
Ах, да. Еще вариант - ТиИ
16 itlikbez
 
06.08.15
11:21
(0) Дальше будет хуже.
17 Timon1405
 
06.08.15
11:21
(9) А если вытащить в выбранные поля регистратор и ПериодСекунда?
18 ezhik90
 
06.08.15
11:31
Вся проблема кроется в условии. Почему-то после его добавления делиться перестаёт. На что оно может влиять, если я всего лишь остатки получаю?
19 Злобный монстр
 
06.08.15
11:33
(18) Весь запрос покажи
20 Timon1405
 
06.08.15
11:34
Так не работает в запросе или в отчете?
http://its.1c.ru/db/metod8dev#content:3093:hdoc:_top
21 Ващета
 
06.08.15
11:35
а так работает?
ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток /
ВЫБОР
    КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
    ТОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
    ИНАЧЕ 1
КОНЕЦ
22 ezhik90
 
06.08.15
11:44
(20) Я взял из УТ11 стандартный отчёт Ведомость по товарам на складах, добавил своё условие
НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОприходованиеИзлишковТоваров
и деление работать перестало.
Даже если я создаю вложенный запрос для получения остатков - всё равно не делится.
23 Timon1405
 
06.08.15
11:46
(22) так вы статью прочитали? в запросе в консоли работает деление?
24 ezhik90
 
06.08.15
11:49
(23) Не пробовал я в консоли. Я не понимаю, почему условие так влияет на это деление.
25 ezhik90
 
06.08.15
11:57
Проверил. В консоли запрос отрабатывает верно.
26 ЧеловекДуши
 
06.08.15
12:01
(0) Null <> 0 :)
27 ЧеловекДуши
 
06.08.15
12:02
В общем, если Номенклатура не будет выбрана, то там Null :)

Обычно пишут "ЕстьNull(ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов,0)"
28 ЧеловекДуши
 
06.08.15
12:03
(25) Что ты проверил? :)
Ты проверь с тем же условие, где ошибка возникает, и тогда наступит и тебя просветление :)
29 ezhik90
 
06.08.15
12:05
(28) Я взял полностью запрос из отчёта, засунул его в консоль, установил те же отборы, что применяю в отчёте - вижу нормальные результаты.
30 Fram
 
06.08.15
12:08
(25) ну значит кэш
31 ezhik90
 
06.08.15
12:09
(30) Да не кэш, а СКД, получается. Может, где-то там надо это условие выставить, а не в самом запросе? Если да, то где?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан