|
v7: Двойной клик на названии документа Ø (длинная ветка 15.03.2013 14:57) | ☑ | ||
---|---|---|---|---|
0
bananan
27.02.13
✎
18:55
|
Запрос такой:
|SELECT | DocNo, | Жур.IDDOC as [Док $Документ], | Жур.IDDOCDEF as Док_вид |FROM _1SJourn as Жур (nolock) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |"; данные которые он возвращает попадают в ТаблицаЗначений, в Таблицу беру данные из ТаблицыЗначений, так вот курсор мыши "крест" ну и двойной клик на документе не открывате документ. По поводу таблицы код тако: ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТЗ.ВыбратьСтроки(); Вопрос(ТЗ.КоличествоСтрок()); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица1"); Таб.ВывестиСекцию("Шапка"); Таб.Опции(0,0,Таб.ВысотаТаблицы()); Пока(ТЗ.ПолучитьСтроку()=1) Цикл Таб.ВывестиСекцию("Документ"); КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Защита(0); ; Таб.Показать("Журнал-документов: ("+ПериодСтр(ДатаС, ДатаПо)+")", ); Чего нехватает в этом коде, чтобы по двойному клику документ открывался?: |
|||
1
batman69
27.02.13
✎
18:59
|
Урра!!! Продолжение!!!
|
|||
2
Злопчинский
27.02.13
✎
19:03
|
bpdbybnt pf ytcrhjvysq djghjc - f ult d rjlt erfpfyj rfrbv kb,j j,hfpjv - GJ DFITVE VYTYB> - xnj ds [jnbnt jnrhsnm ljrevtyn gj ;vfre yf NP//&
|
|||
3
Aleksey
27.02.13
✎
19:04
|
(2) * извините за нескромный вопрос - а где в коде указано каким либо образом - ПО ВАШЕМУ МНЕНИЮ - что вы хотите открыть документ по жмаку на ТЗ//&
|
|||
4
Злопчинский
27.02.13
✎
19:04
|
(3) ура!!! телепаты пришли!!
|
|||
5
viktor_vv
27.02.13
✎
19:04
|
||||
6
viktor_vv
27.02.13
✎
19:05
|
(5) Или не в той ячейке, есть еще волшебная решетка "#" .
|
|||
7
viktor_vv
27.02.13
✎
19:06
|
(4) Не в ТЗ, а в таблице .
|
|||
8
bananan
27.02.13
✎
19:08
|
(5) в расшифровке ТЗ.Док!а в ячейк выражение ТЗ.Док
может чего-то при работе с объектом Таблица нетак?? |
|||
9
viktor_vv
27.02.13
✎
19:10
|
(8) А расшифровка заполнена в той же ячеке где и выражение ?
|
|||
10
Sh1ko
27.02.13
✎
19:18
|
Зайди в свойства ячейки, сделай скриншот и выложи
|
|||
11
shadowfiend10
27.02.13
✎
19:21
|
ТолькоПросмотр!
|
|||
12
shadowfiend10
27.02.13
✎
19:21
|
недочитал, извиняюсь
|
|||
13
bananan
27.02.13
✎
19:23
|
(10) сори скинул вордовский документ в котором скриншот..
http://www.fayloobmennik.net/2659689 |
|||
14
viktor_vv
27.02.13
✎
19:27
|
(13) Вроде все правильно, только лупа должна появляться в первой колонке.
Ну и на всякий случай закоментируй. Таб.Защита(0); |
|||
15
bananan
27.02.13
✎
19:30
|
(14) Закоментировал Таб.Защита(0) и заработало.
Спасибо! |
|||
16
bananan
27.02.13
✎
19:56
|
еще вопрос, в прямом запросе нужно подсчитать количество строк, написал так:
|SELECT | DocNo, | Жур.IDDOC as [Док $Документ], | Жур.IDDOCDEF as Док_вид | SUM(Жур.$ОбщийРеквизит.Фирма) as SSS |FROM _1SJourn as Жур (nolock) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |"; не пропускает: Line 6: Incorrect syntax near 'SUM'. Чего ему не равится вызов функции суммирования? |
|||
17
FN
27.02.13
✎
20:53
|
Количество строк чего? и причем тут фирма? И как суммировать ООО "Рога и копыт" + ООО "Сердюков и ко"?
|
|||
18
Zhuravlik
27.02.13
✎
21:04
|
(17) Наверное количество строк, вошедших в запрос?
(16) Попробуйте "COUNT(Жур.IDDOC) as SSS" вместо "SUM(Жур.$ОбщийРеквизит.Фирма) as SSS" |
|||
19
sapphire
28.02.13
✎
10:01
|
(17) Этот может...
|
|||
20
sapphire
28.02.13
✎
10:02
|
(16) в прямом запросе нужно подсчитать количество строк...
Каких? |
|||
22
bananan
28.02.13
✎
11:21
|
(20) Со значениями какими-либо - заполненых строк!
|
|||
23
bananan
28.02.13
✎
11:22
|
(18) Так я уже пробывал в первй раз... Выдает ошибку:
Incorrect syntax near 'COUNT' |
|||
24
Wobland
28.02.13
✎
11:24
|
(23) а сынтаксис пыправить ты не догыдался, да?
|
|||
25
bananan
28.02.13
✎
11:29
|
(24) Догадался, там не было запятой перед коунт, добавил... Выдает:
Column 'Жур.DOCNO' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. |
|||
26
bananan
28.02.13
✎
11:29
|
+ Полный текст запроса:
|SELECT | DocNo, | Жур.IDDOC as [Док $Документ], | Жур.IDDOCDEF as Док_вид, | COUNT(Жур.$ОбщийРеквизит.Фирма) as SSS |FROM _1SJourn as Жур (nolock) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |"; |
|||
27
Mikeware
28.02.13
✎
11:32
|
(25) Что как бы вполне логично
|
|||
28
Mikeware
28.02.13
✎
11:33
|
Это какой-то "трэш и угар"™...
|
|||
29
sapphire
28.02.13
✎
11:33
|
Зря удалили пост (21), ТС крайне мудр....
20 страниц осилить не в состоянии |
|||
30
sapphire
28.02.13
✎
11:33
|
(28) Да уж, проще попугая научить писать запросы, чем ТС...
|
|||
31
bananan
28.02.13
✎
11:33
|
(27) Сорри, я до конца сообщение об ошибке не дочитал. Так надо добавить ГроупБай по Докно?
|
|||
32
Mikeware
28.02.13
✎
11:34
|
(31) и не только
|
|||
33
sapphire
28.02.13
✎
11:36
|
(32) И что он получит кроме единиц?
|
|||
34
Mikeware
28.02.13
✎
11:36
|
(29) есть такое слово - "мудрило". Некоторые считают, что оно намекает на некоторую мудрость... неправильно!
к мудрости оно отношения не имеет, т.к. является сочетанием слов "му*ак" и "пе*рило"... |
|||
35
Mikeware
28.02.13
✎
11:37
|
(33) а что он хочет получить? :-)
|
|||
36
bananan
28.02.13
✎
11:37
|
Все большое спасибо, полный текст запроса:
ТекстЗапроса = " |SELECT | DocNo, | Жур.IDDOC as [Док $Документ], | Жур.IDDOCDEF as Док_вид, | COUNT(Жур.$ОбщийРеквизит.Фирма) as SSS |FROM _1SJourn as Жур (nolock) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) | GROUP BY Жур.DocNo, Жур.IDDOC, Жур.IDDOCDEF |"; |
|||
37
sapphire
28.02.13
✎
11:38
|
(22)(36) Какая-то смысловая галлюцинация.
|
|||
38
sapphire
28.02.13
✎
11:38
|
(35) Я не понел - см (22)
|
|||
39
Mikeware
28.02.13
✎
11:40
|
(36) и какое значение имеют результаты этого запроса?
|
|||
40
bananan
28.02.13
✎
11:40
|
(38) кто-то там о запросах говорил мол легче научить...
Чего здесь непоныятного подсчитать количество накладных за заданный период! |
|||
41
bananan
28.02.13
✎
11:41
|
Еще в прямом запросе вроде можно что-то типа использовать текущую дату для переодического реквизита? В данном случае для цены..
|
|||
42
Mikeware
28.02.13
✎
11:41
|
(38) и где тут количество накладных? :-))
|
|||
43
bananan
28.02.13
✎
12:00
|
(42) В коунте...
И чего флидить? |
|||
44
bananan
28.02.13
✎
12:01
|
+По поводу переодического реквизита никто ничего не подскажет7
|
|||
45
Wobland
28.02.13
✎
12:06
|
(44) ты ж получал уже
|
|||
46
bananan
28.02.13
✎
12:08
|
$ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих
|
|||
47
1Сергей
28.02.13
✎
12:10
|
SUM(1) уже предлагали?
|
|||
48
bananan
28.02.13
✎
12:15
|
В итоге несмотря на "происки империализма" уже есть два запроса, остался один на слишком малую цену...
|
|||
49
bananan
28.02.13
✎
12:20
|
+т.е. осталсоь реализовать в запросе
минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); и если докцена<минцена тогда выдать сообщение об ошибке: Ошибка = " має надто низьку ціну="+докцена+" мiнимальна="+минцена; |
|||
50
Wobland
28.02.13
✎
12:24
|
выбор когда выразить(минцена*(1-скидка/100) как число(80, 2))>докцена тогда "ой" иначе минцена конец
|
|||
51
Mikeware
28.02.13
✎
12:35
|
(43) твой каунт() елиничку даст
|
|||
52
sapphire
28.02.13
✎
12:47
|
(40) Ну и что ты посчитал?
|
|||
53
sapphire
28.02.13
✎
12:48
|
(43) Врешь
|
|||
54
sapphire
28.02.13
✎
12:48
|
(47) А зачем?
|
|||
55
sapphire
28.02.13
✎
12:59
|
|SELECT
| DocNo, | Жур.IDDOC as [Док $Документ], | Жур.IDDOCDEF as Док_вид, | COUNT(*) OVER () ВсегоДокументовВЗапросе, | ROW_NUMBER() OVER (ORDER BY Date_Time_IDDoc ASC) НомерПоПорядкуВЗапросе |FROM _1SJourn as Жур (nolock) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |ORDER BY Date_Time_IDDoc ASC |
|||
56
sapphire
28.02.13
✎
13:01
|
Конечно, если версия сикеля не совсем древняя и поддерживает оконные функции
|
|||
57
bananan
28.02.13
✎
13:13
|
() Отвечу на все ваши замечания..
Не вру... Работает и выдает 1073 на 20.11.2012г, текст запроса такой: ТекстЗапроса = " |SELECT | DocNo, | Жур.IDDOC as [Док $Документ], | Жур.IDDOCDEF as Док_вид, | COUNT(Жур.$ОбщийРеквизит.Фирма) as SSS |FROM _1SJourn as Жур (nolock) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) | GROUP BY Жур.DocNo, Жур.IDDOC, Жур.IDDOCDEF |"; А теперь текущий запос, здесь у меня есть несколько непониманий... 1. Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100 - ясно что просто так не добраться, надо это разбить на два поля вроде... 2. " має надто низьку ціну="+ докцена+" мiнимальна="+минцена тоже вроде ничего сложного но докцена і мінцена во внутреннем запросе а мне єти значения нужні во внешнем - их надо просто перекинуть, или, что скорее всего - здесь просто непройдет? |
|||
58
bananan
28.02.13
✎
13:15
|
+(57) По поводу: Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100
Доставка - Справочник.Доставка КаналСбытаТТ - Справочник.КаналыСбыта ДопустимаяСкидка- Число |
|||
59
Mikeware
28.02.13
✎
13:17
|
(57) врешь
|
|||
60
Mikeware
28.02.13
✎
13:17
|
(58) я тебе дня три назад сказал как это сделать...
|
|||
61
bananan
28.02.13
✎
13:18
|
(59) Что я скажу... тебе видней, ты же аксакал...
|
|||
62
bananan
28.02.13
✎
13:20
|
(60) еще одно сообщение ни о чем:
тебе видней, ты же аксакал. |
|||
63
sapphire
28.02.13
✎
13:21
|
(57) Пиши на русском. Здесь нет переводчика с радяньской мовi
|
|||
64
sapphire
28.02.13
✎
13:23
|
(57) Не верю! (с)
|
|||
65
sapphire
28.02.13
✎
13:23
|
(60) Как тебе использование оконных функций в (55) ? :))))
|
|||
66
Wobland
28.02.13
✎
13:24
|
от щас я влезу..
COUNT(Жур.$ОбщийРеквизит.Фирма) - об этом речь? здесь бородатые дядьки 1 ожидают, а бананан тыщу получает? |
|||
67
sapphire
28.02.13
✎
13:29
|
(66) Ога
|
|||
68
bananan
28.02.13
✎
13:31
|
почему isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ - нормально проходит а, isnull($ДокС.Доставка, $ДокН.Доставка) as Доставка выдает:
Meta name parser error: поле таблицы не найдено "$ДокС.Доставка Поле Доставка точно есть в шапке документов РасходнаяНакладная.. |
|||
69
Mikeware
28.02.13
✎
13:31
|
(65) ты не поверишь... я их первый раз увидел.
на 2000 не работают |
|||
70
Wobland
28.02.13
✎
13:32
|
(67) дык количество ж не различных. то есть, количество записей должно быть, не?
|
|||
71
bananan
28.02.13
✎
13:34
|
(70) Рад смотреть на просветление! :)
|
|||
72
Wobland
28.02.13
✎
13:37
|
(68) было б точно - не ругался б
|
|||
73
Wobland
28.02.13
✎
13:37
|
+(72) ищи это поле у ДокС
|
|||
74
bananan
28.02.13
✎
13:38
|
(73) Чего его искать?
| Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная |
|||
75
Wobland
28.02.13
✎
13:40
|
(74) а теперь открой ТЧ в пофигураторе и посмотри глазами. ну или в *.дд поищи
|
|||
76
Wobland
28.02.13
✎
13:40
|
особенности дистинкта освещаются на 42й странице у ицика
|
|||
77
Злопчинский
28.02.13
✎
13:44
|
(68) возможно "доставка" - ОБЩИЙ реквизит..?
|
|||
78
sapphire
28.02.13
✎
13:46
|
(68) Да уж. Читать ты явно не мастак...
|
|||
79
sapphire
28.02.13
✎
13:47
|
(69) На 2000 и не должны, они то ли с 2005, то ли в 2008 появились... Уже и не вспомню когда именно.
Да и msde у меня давно нет :) Как SQ DE приобрел, так и использую :) |
|||
80
bananan
28.02.13
✎
13:48
|
(75) У документа РасходнаяНакладня поле Доставка в шапке есть!
у Ицика на 42, как и на 41 и на 42 о функции COUNT а не об особенностях... |
|||
81
sapphire
28.02.13
✎
13:48
|
(68) Для идиотов: $ДокС и $ДокН указывают на строки документов, а этот реквизит небось в шапке документов.
|
|||
82
sapphire
28.02.13
✎
13:49
|
(80) см (81)
|
|||
83
bananan
28.02.13
✎
13:49
|
(77) Нет, доставка не общий реквизит этот реквизит в шапке документа
|
|||
84
bananan
28.02.13
✎
13:50
|
(81) Спасибо за идиота и за подсказку!
|
|||
85
sapphire
28.02.13
✎
13:53
|
(84) Ты вообще понимаешь хоть что-то в БД?
|
|||
86
bananan
28.02.13
✎
13:53
|
+(84) понимю что туплю но не знаю как это иначе обзапросить:
написал так: |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , Жур.Доставка as Доставка Ругается: Invalid column name 'Доставка'. |
|||
87
Mikeware
28.02.13
✎
13:53
|
(81) он не думает, он копипастит...
|
|||
88
bananan
28.02.13
✎
13:54
|
(84) вроде понимаю..
|
|||
89
Mikeware
28.02.13
✎
13:54
|
(85) тебе необходим ответ на этот вопрос, или мнение поциента об ответе на этот вопрос? :-)
|
|||
90
Mikeware
28.02.13
✎
13:55
|
(86) что какгбэ логично...
даже _вдвойне_ логично... :-) |
|||
91
sapphire
28.02.13
✎
13:56
|
(88) Что-то не очень заметно исходя из (75) & (80)
|
|||
92
sapphire
28.02.13
✎
13:57
|
(86) противоречив ты в суждениях своих вижу я
|
|||
93
Wobland
28.02.13
✎
13:58
|
(86) Жур, надеюсь, таблица документа?
|
|||
94
Wobland
28.02.13
✎
13:58
|
(93) в шапке которого...
|
|||
95
sapphire
28.02.13
✎
13:59
|
| Left join $Документ.РасходнаяНакладная as ДокШС (nolock) on ДокШС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная
| Left join $Документ.РасходнаяНакладная as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН и в запрос COALESCE($ДокШС.Доставка,$ДокШН.Доставка) Доставка |
|||
96
sapphire
28.02.13
✎
14:00
|
(94) Нет, это _1SJOURN
|
|||
97
sapphire
28.02.13
✎
14:00
|
-убёг на автобус-
|
|||
98
sapphire
28.02.13
✎
14:00
|
(94) Объясни ему (95)
|
|||
99
bananan
28.02.13
✎
14:02
|
(89)-(98) А как достучаться до шапки документа?
|
|||
100
forforumandspam
28.02.13
✎
14:03
|
100
|
|||
101
Wobland
28.02.13
✎
14:08
|
(99) нужно прикрутить таблицу с шапкой документа и заджойнить её с тч по ид
|
|||
102
bananan
28.02.13
✎
14:08
|
(100) на (99) ты можешь ответить?
|
|||
103
Ёпрст
28.02.13
✎
14:09
|
(102) ответ в (95)
|
|||
104
Wobland
28.02.13
✎
14:09
|
| FROM
| $ДокументСтроки.ВозвратОтПокупателя AS ТЧ | INNER JOIN | $Документ.ВозвратОтПокупателя AS Возвраты | ON ТЧ.IDDoc=Возвраты.IDDoc |
|||
105
bananan
28.02.13
✎
14:09
|
(101) понял, сейчас в доке посмотрю как это делается...
|
|||
106
Wobland
28.02.13
✎
14:10
|
(102) он на стоку забежал
|
|||
107
bananan
28.02.13
✎
14:11
|
(103) Ты серьезно или опять ?
насколько я понимаю, скорее как в (104) |
|||
108
bananan
28.02.13
✎
14:12
|
+(107) Хотя - тоже непойму (104) Где здесь шапка документа?
|
|||
109
Mikeware
28.02.13
✎
14:14
|
(108) когда твой отец твою мать в роддом тебя рожать отвозил - им осел дорогу не перебегал?
|
|||
110
bananan
28.02.13
✎
14:15
|
(109) Ослы у нас не водятся, разве что гаишники...
|
|||
111
Wobland
28.02.13
✎
14:16
|
(108) $Документ.РасходнаяНакладная as ДокШС
|
|||
112
Mikeware
28.02.13
✎
14:17
|
(110) так вот ты в кого...
|
|||
113
Wobland
28.02.13
✎
14:17
|
(108) $Документ.ВозвратОтПокупателя AS Возвраты
|
|||
114
bananan
28.02.13
✎
14:19
|
(113) Спасибо, вроде до меня дошло... Сейчас попрробую...
|
|||
115
bananan
28.02.13
✎
14:19
|
+(114) У меня два разних документа : РасходнаяНакладна и РасходнаяНакладнаН - как здесь быть?
|
|||
116
Wobland
28.02.13
✎
14:20
|
(114) только не вздумай копипастить моё: возвраты тебе не нужны
|
|||
117
bananan
28.02.13
✎
14:21
|
(116) До этого я ДОГАДАЛСЯ... :)
|
|||
118
bananan
28.02.13
✎
14:27
|
(117) Написал так:
| Left join $Документ.РасходнаяНакладнаяН as ДокШН on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН Все равно ругается что инвалидный столбец Доставка |
|||
119
Wobland
28.02.13
✎
14:29
|
да тут не один столбец инвалидный
|
|||
120
bananan
28.02.13
✎
14:36
|
(119) В результате с вашей помощью:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as [Документ_вид $ВидДокумента] |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, 'має надто низьку ціну=' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокС.ЦенаБезНДС, $ДокН.ЦенаБезНДС) ЦенаБезНДС | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Цена_Прих=0 |"; Работает, это пока, совсем не то, но уже очень близко к финалу... :) |
|||
121
Wobland
28.02.13
✎
14:37
|
(120) рабоатет? врёшь же. крайний вхере к чему относится?
|
|||
122
Wobland
28.02.13
✎
14:38
|
(121) вижу к чему. столько текста, столько букв...
|
|||
123
bananan
28.02.13
✎
14:55
|
(121 НЕ вру - работает, теперь надо добавить получить:
минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); |
|||
124
Wobland
28.02.13
✎
14:56
|
(123) где-то я тебе уже переводил это на 8шный язык
|
|||
125
Wobland
28.02.13
✎
14:56
|
(124) а ВЫБОР и CASE - близнецы-братья
|
|||
126
bananan
28.02.13
✎
14:58
|
(125) у меня 7.7 - 8-ка ник чему...
Идею вроде понял но не до конца... |
|||
127
sapphire
28.02.13
✎
15:04
|
(123) теперь тебю надо еще присоединить справочник доставки, потом исчо справочник какао с бытом...
|
|||
128
Mikeware
28.02.13
✎
15:05
|
(127) какоэ какао?
|
|||
129
sapphire
28.02.13
✎
15:07
|
(128) это вантуз мобильный частенько сленг подменяет:D
|
|||
130
bananan
28.02.13
✎
15:08
|
(127) Како с бытом?
А кофе с молоком не подойдет? А зачем присоединять справочник доставки, он уже вроде как есть: | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка или надо таки сам справочник присоеденять? |
|||
131
bananan
28.02.13
✎
15:08
|
(129) что такое вантуз мобильный?
|
|||
132
Mikeware
28.02.13
✎
15:09
|
(130) даааа, уж чено-чего, а "како" у тебя в каждом запросе...
|
|||
133
sapphire
28.02.13
✎
15:14
|
(130) У тебя в доставке только значение ключа таблицы справочника, что бы получить значение канала сбыта нужно соединить с таблицей справочника доставки или что там за тип я не знаю, из таблицы справочника получить значение ключа к каналам сбыта и потом только сможешь получить значение.
|
|||
134
bananan
28.02.13
✎
15:15
|
(133) Стратегию понял, попробую реализовать...
А какао.... ну еще с пяток запросов и, думаю какао там будет гораздо меньше или вообще не будет.. |
|||
135
sapphire
28.02.13
✎
15:16
|
И вообще, я не фанат ассы... И перса тамошнего в частности
|
|||
136
Mikeware
28.02.13
✎
15:16
|
гыыы. стратег, мля...
|
|||
137
sapphire
28.02.13
✎
15:17
|
(136) архистратиг:D
|
|||
138
bananan
28.02.13
✎
15:18
|
(133) Доставка - Справочник.Доставка
КаналСбытаТТ - Справочник.КаналыСбыта ДопустимаяСкидка- Число Опять лефт джоин? и это можно сделать в подзапросе (Данные)? или надо еще один подзапрос писать? |
|||
139
Mikeware
28.02.13
✎
15:23
|
(138) ну ты же "стратегию понял"? ну вот и пиши :-)
"Твори!Выдумывай!Пробуй!"© |
|||
140
bananan
28.02.13
✎
15:24
|
(139) Да понял и буду писати и напишу, а подсказать что слабо и ответить на вопросы в (138)?
|
|||
141
sapphire
28.02.13
✎
15:25
|
(138) Можно подумать, что ты понимаешь как тот запрос работает...
|
|||
142
sapphire
28.02.13
✎
15:27
|
(140) Я же тебе уже написал, что нужно сделать.
Ты ждешь, что за тебя с мообильника запросы писать буду? |
|||
143
bananan
28.02.13
✎
15:28
|
(141) До онца моэет и не понимаю, но догадываюсь
Да ничего я не жду... |
|||
144
sapphire
28.02.13
✎
15:35
|
(143) зер гутт зело
|
|||
145
bananan
28.02.13
✎
16:10
|
(144) Вроде получилось почти текст запроса такой:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as [Документ_вид $ВидДокумента] |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, 'має надто низьку ціну=' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокС.ЦенаБезНДС, $ДокН.ЦенаБезНДС) ЦенаБезНДС | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Цена_Прих=0 |"; Этот запрос работает - теперь надо... еще немного к нему дописать и он будет готов! |
|||
146
bananan
28.02.13
✎
16:59
|
к КаналСбытаТТ.ДопустимаяСкидка достучаться можно как (Доставка справочник) у нас уже есть?
|
|||
148
Mikeware
28.02.13
✎
17:06
|
(142) дык дня три (или более) назад тебе писал...
|
|||
149
Mikeware
28.02.13
✎
17:07
|
(144) это ты на каком языке сказал? :-)
|
|||
150
Cthulhu
28.02.13
✎
17:37
|
b rfr dfv dctv yt yfljtcn///
|
|||
151
bananan
28.02.13
✎
17:57
|
Чтото не пойму, как и думал код:
| , Доставка.КаналСбыта as Канал не прошел: Invalid column name 'КаналСбыта'. А как к нему обращаться? |
|||
152
viktor_vv
28.02.13
✎
18:01
|
Ужеж двадцать пять раз писали про "$" , ну почитай уже нахрена оно надо и что делает.
|
|||
153
bananan
28.02.13
✎
18:02
|
(152) Обязательно прочитаю...
|
|||
154
bananan
28.02.13
✎
18:05
|
(152) Я как раз думал - я так и не понял когда надо $, а когда его не надо...
|
|||
155
viktor_vv
28.02.13
✎
18:06
|
(154) Да там думать не надо, достаточно прочитать, там всего-то несколько строчек.
Теперь вопрос на засыпку , где ты предполагаешь про это читать ? |
|||
156
bananan
28.02.13
✎
18:07
|
(155) Эффективное использование MSSQL в 1С при помощи ВК 1С++
|
|||
157
viktor_vv
28.02.13
✎
18:08
|
(156) Ок.
|
|||
158
bananan
28.02.13
✎
18:14
|
(157) Хорошо, мне надо получить:
минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) - насколько я понимаю это - ЦенаБезНДС минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); а вот с этим я что-то туплю... |
|||
159
Mikeware
28.02.13
✎
18:15
|
Пля. неужто свершилось?
|
|||
160
Mikeware
28.02.13
✎
18:15
|
рано обрадоввался :-(((
|
|||
161
viktor_vv
28.02.13
✎
18:19
|
(158) Ты все-таки не прочитал, это раз.
Второе, всатвь в своем коде минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) ; Сообщить("Цена"+Число(Прав(кат.Идентификатор(),1))) ; минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); Выполни. Смотрим на сообщение и медитируем. (160) :)). |
|||
162
viktor_vv
28.02.13
✎
18:21
|
(161)+ Смотрим на сообщением, раскрываем в конфигураторе реквизиты справочника ТМЦ, сравниваем с собщением, по идее в голове должна воникнуть простая логическая связь.
|
|||
163
bananan
28.02.13
✎
18:21
|
(161) Раз - я прочитал..
Дваз - минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) ; Сообщить("Цена"+Число(Прав(кат.Идентификатор(),1))) ; минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); Выполни. и что из этого куда вставить?? |
|||
164
viktor_vv
28.02.13
✎
18:24
|
Пожалуй насчет простой логической связи я погорячился.
Сравни из (158) минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) - насколько я понимаю это - ЦенаБезНДС минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); и мой пост (161) минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) ; // Вот этот кусок кода вставь в старую обработку и воплни Сообщить("Цена"+Число(Прав(кат.Идентификатор(),1))) ; // ************************** минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); Что тебе тут непонятно ? |
|||
165
bananan
28.02.13
✎
18:44
|
(164) может я и туплю но это надо в SQL так что вставлять в SQL-запрос??
|
|||
166
Mikeware
28.02.13
✎
18:45
|
(165) Почему это вдруг "может"?
|
|||
167
bananan
28.02.13
✎
18:49
|
(166) Как говорил один "американец африканского происхождения": "патаму чтА"
|
|||
168
viktor_vv
28.02.13
✎
18:50
|
(165) Тупишь, это надо вставить в старую обработку, для того чтобы понять, что
минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) - насколько я понимаю это - ЦенаБезНДС вот это ты неправильно понимаешь. |
|||
169
Mikeware
28.02.13
✎
18:53
|
(168) да об этом уже сломаны копья, поломаны стрелы, затуплены сабли ивообщебля....
|
|||
170
bananan
28.02.13
✎
18:53
|
(168) А может это приходная цена?
|
|||
171
Mikeware
28.02.13
✎
18:54
|
(170) а если завернуть шмаль в расходную накладную - подучится неплохой приходный документ...
© |
|||
172
bananan
28.02.13
✎
18:55
|
Выдает в старой обработке что минцена - Неизвестный объект
|
|||
173
viktor_vv
28.02.13
✎
18:56
|
(172) Это писец.
Ты ж, надеюсь, вставлял только тот кусок, который я выделил комментария? |
|||
174
viktor_vv
28.02.13
✎
18:57
|
(171)* комментариями.
|
|||
175
viktor_vv
28.02.13
✎
18:58
|
(173) Даже если не так, то хотя бы чуть выше посмотреть в выданном сообщении.
|
|||
176
viktor_vv
28.02.13
✎
18:59
|
(173) Выделил в (164).
|
|||
177
bananan
28.02.13
✎
19:01
|
(173-174) пардон я вставил немного не такой код, когда вставил:
Сообщить("Цена"+Число(Прав(кат.Идентификатор(),1))) ; выдает: Цена1 Цена4 ну и т.д. и что сие означает? |
|||
178
viktor_vv
28.02.13
✎
19:03
|
(177) Читаем (162).
|
|||
179
viktor_vv
28.02.13
✎
19:04
|
(178) Тут тоже медитируем, особенно на точки и их количество
Конт.ТМЦ.ПолучитьАтрибут |
|||
180
bananan
28.02.13
✎
19:06
|
(178) Открыл атрибуты справчника ТМЦ - сравнил с сообщениями - ничерта не понял
(179) тоже самое :( |
|||
181
bananan
28.02.13
✎
19:11
|
+ Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); вроде как получает цену ТМЦ по категории...?
|
|||
182
viktor_vv
28.02.13
✎
19:12
|
(181) Алилуя.
|
|||
183
bananan
28.02.13
✎
19:14
|
(182) И что с того что это цена товара по категории?
|
|||
184
viktor_vv
28.02.13
✎
19:14
|
Теперь смотрим сюда и по аналогии
| , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих только вот здесь $ПоследнееЗначение.ТМЦ.Цена_Прих вместо Цена_Прих формируем динамически имя реквизита. Это из предположения что Цена1 ... в справочнике периодические. |
|||
185
viktor_vv
28.02.13
✎
19:15
|
Такми образом ты в запросе получишь вот это
минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) ; |
|||
186
viktor_vv
28.02.13
✎
19:17
|
Вернее вот это
минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) ; минцена = минцена.Получить(Конт.ДатаДок) |
|||
187
bananan
28.02.13
✎
19:21
|
(186) понял, но как в sql дигамечески сформировать имя реквизита - незнаю. Подскажешь?
|
|||
188
viktor_vv
28.02.13
✎
19:24
|
(187) Ну строки соединить можешь ?
| , $ПоследнееЗначение.ТМЦ.Цена"+Число(Прав(кат.Идентификатор(),1))+"(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена"+Число(Прав(кат.Идентификатор(),1))+ " |
|||
189
bananan
28.02.13
✎
19:25
|
(188) ААа (опять туплю)...
|
|||
190
bananan
01.03.13
✎
13:02
|
(188) а зачем в конце +?
|
|||
191
bananan
01.03.13
✎
13:05
|
+(190) ЭНу и конечно выдает ошибку:
| , $ПоследнееЗначение.ТМЦ.Цена"+Число(Прав(кат<<?>>.Идентификатор(),1))+"(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена"+Число(Прав(кат.Идентификатор(),1))+ {\\SERVER12\VPKTEST$\EXTFORMS\ЦІНАПОКАТЕГОРІЇ.ERT(245)}: Переменная не определена (кат) |
|||
192
Mikeware
01.03.13
✎
13:08
|
уникум...
не, скорее, даже уникал... |
|||
193
bananan
01.03.13
✎
13:12
|
(192) Я в курсе мне на этом форуме такое уже не раз говорили, а как по поводу моего вопроса? (190-191)??
|
|||
194
Wobland
01.03.13
✎
13:13
|
(193) оно лишнее
|
|||
195
Mikeware
01.03.13
✎
13:23
|
(193) в топку. желательно вместе с автором.
обсуждали это в прошлой ветке, причем чуть не сотню постов... |
|||
196
bananan
01.03.13
✎
13:33
|
(194) что там лишнее +?
Дак он за переменную кат ругаетс: , $ПоследнееЗначение.ТМЦ.Цена"+Число(Прав(кат<<?>>.Идентификатор(),1))+"(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена"+Число(Прав(кат.Идентификатор(),1)) {\\SERVER12\VPKTEST$\EXTFORMS\ЦІНАПОКАТЕГОРІЇ.ERT(245)}: Переменная не определена (кат) |
|||
197
bananan
01.03.13
✎
13:35
|
(195) а в прошлой ветке именно об этом (определении цены категории) ничего не обсуждалось
|
|||
198
bananan
01.03.13
✎
13:37
|
в данном случае - кат это "номер" категории, а где его взять?...
|
|||
199
Mikeware
01.03.13
✎
13:37
|
(197) лень тыкать носом...
|
|||
200
Mikeware
01.03.13
✎
13:38
|
Категория - это перечисление, чтоль?
|
|||
201
bananan
01.03.13
✎
13:38
|
Хотя, если применять к готовому коду (написаному не мной и не вами_, то кат - это документ..
|
|||
202
Mikeware
01.03.13
✎
13:39
|
(201) у вас там гнездо?
|
|||
203
bananan
01.03.13
✎
13:40
|
(200) нет, здесь не все просто. вроде там (в документе) есть цена1, цена2 и т.д...
|
|||
204
bananan
01.03.13
✎
13:40
|
(202) я и еще двое
|
|||
205
Wobland
01.03.13
✎
13:41
|
(204) корпоративный ник на мисте?
|
|||
206
Mikeware
01.03.13
✎
13:41
|
(203) кат = это что? тип какой?
|
|||
207
Mikeware
01.03.13
✎
13:42
|
(202) скажите руководству, пусть ва химическую кастрацию хотя бы сделают...
|
|||
208
bananan
01.03.13
✎
13:42
|
Вот кусок кода из глобального модуля, который и вычисоляет эту цену:
кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; Если кат.Выбран()=1 Тогда минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда минцена=минцена.Получить(Конт.ДатаДок); КонецЕсли; минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); Если минцена=0 Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат); КонецЕсли; |
|||
209
chelentano
01.03.13
✎
13:42
|
(204) гнездо дятлов? хотя не... дятлы обидятся
|
|||
210
bananan
01.03.13
✎
13:42
|
(207) Обязательно с обрезанием...
|
|||
211
bananan
01.03.13
✎
13:43
|
(209) Ну Челентано на тебя же не обижается...
|
|||
212
Mikeware
01.03.13
✎
13:43
|
(210) да обрезание - пофиг. главное, чтоб не размножалисььь
|
|||
213
chelentano
01.03.13
✎
13:44
|
(211) а на меня то за что? я то их не позорю
|
|||
214
bananan
01.03.13
✎
13:47
|
(212) кастрацея без обрезание - НЕКОШЕРНО :)
|
|||
215
bananan
01.03.13
✎
13:47
|
(213) Ты себя позоришь..
|
|||
216
Wobland
01.03.13
✎
13:48
|
(214) кошерно сначала кастрировать, потом обрезать или наоборот?
|
|||
217
bananan
01.03.13
✎
13:53
|
(216) ну раввина спроси
А чего мне делать с: минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1)));? може кто скажет а потом будем об идуаизме и христианстве спорить... |
|||
218
bananan
01.03.13
✎
13:54
|
Вот полный код функции из глобального модуля:
Функция глПроверкаЦеныПоКатегории(Конт) Экспорт Перем кат,минцена,докцена; Если (Константа.ГруппаИсключенияПроверкиЦен.Выбран()=1)и(Конт.ТМЦ.ПринадлежитГруппе(Константа.ГруппаИсключенияПроверкиЦен)=1) Тогда Если НазваниеНабораПрав()="Администратор" Тогда Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" исключен из проверки на минимальную цену"); КонецЕсли; КонецЕсли; //Если ТМЦ Справочник НазначитьВид(ТМЦ) - ошибка в периодических прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2); докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2); Если докцена<прихцена Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет цену ниже приходной"); КонецЕсли; кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; Если кат.Выбран()=1 Тогда минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда минцена=минцена.Получить(Конт.ДатаДок); КонецЕсли; минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); Если минцена=0 Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат); КонецЕсли; минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); Если докцена<минцена Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет недопустимо низкую цену="+докцена+" минимальная="+минцена); КонецЕсли; КонецЕсли; КонецФункции // глПроверкаЦеныПоКатегории |
|||
219
chelentano
01.03.13
✎
13:57
|
(218) спасибо, наверняка многим пригодится
|
|||
220
bananan
01.03.13
✎
14:02
|
(219) Тебе - явно не пригодится...
о коде.. у документа РасходнаяНакладная в шапке есть поле ТипЦен (Перечисление.ТипЦены).. |
|||
221
Mikeware
01.03.13
✎
14:05
|
(219) плять, последний раз спрашиваю: какого типа твой реквизит "КатегорияЦены"?
|
|||
222
chelentano
01.03.13
✎
14:07
|
(221) у меня Справочник.КатегорииЦен, у ТС - не в курсе :)
|
|||
223
chelentano
01.03.13
✎
14:08
|
(220) Мне - конечно, нет. Я не в силах постичь всей мудрости этого кода
|
|||
224
Mikeware
01.03.13
✎
14:16
|
(223) я уже упоминал слово "мудрило"®
|
|||
225
bananan
01.03.13
✎
14:16
|
(221) У меня нет такого реквизита, есть ТипЦен (Перечисление.ТипЦены)..
|
|||
226
Mikeware
01.03.13
✎
14:18
|
(225) скуяли?®
Конт.Доставка.КаналСбытаТТ.КатегорияЦены |
|||
227
Wobland
01.03.13
✎
14:24
|
(226) мало ли что у него названо "КатегорияЦены". мож, у него строка там
|
|||
228
Wobland
01.03.13
✎
14:24
|
(227) хотя, это не отменяет (221)
|
|||
229
Mikeware
01.03.13
✎
14:25
|
(227) вот я и спрашиваю в (221)
|
|||
230
viktor_vv
01.03.13
✎
14:28
|
(218) с таким хранением цен в ТМЦ в запросе тяжко будет выдернуть.
Это выгрести все типы цен во вложенном запросе, потом через Case во внешнем, в зависимости от категории в канале сбыта, брать необходимую. Как-то так. Но я не возьмусь это подробнее объяснять. |
|||
231
bananan
01.03.13
✎
14:29
|
(226) Конт.Доставка.КаналСбытаТТ.КатегорияЦены КатегорияЦены - Перечисление.ТипыЦен
|
|||
232
bananan
01.03.13
✎
14:31
|
(230) Выгрести из Доставка.КналСбытаТТ.Категория цены?
|
|||
233
bananan
01.03.13
✎
14:34
|
(23) Вчера ты был более оптимистичен - (184)...
|
|||
234
Mikeware
01.03.13
✎
14:38
|
Хреново, что перечисление...
Я бы спихал все во временную таблицу и связывал с ней. ну, или лепит кучу кейсов (типов-то не более 10) |
|||
235
bananan
01.03.13
✎
14:40
|
(234) Сейчас посмотрю чколько там типов...
18 типов цен... :( |
|||
236
bananan
01.03.13
✎
14:46
|
(234) А как эти кейсы применять?
|
|||
237
Wobland
01.03.13
✎
14:57
|
!!! пример, не копировать !!!
!!! пример, не копировать !!! |
|||
238
Mikeware
01.03.13
✎
15:01
|
(237) ну, первая и четвертая строка скопированы не будут. а во второй и третьей никаких указаний на то, то не копировать - нету :-))о
|
|||
239
Wobland
01.03.13
✎
15:02
|
кстати, я парился с синтаксисом. отличается от восьмёрочного ВЫБОРа
|
|||
240
bananan
01.03.13
✎
15:17
|
(237) Это примерно так
КатегорияЦены=(CASE WHEN... блин что-то ничего не понимаю... в йункции ктегория вычисляется так: кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; значит в прямом запросе Выбираем доставку isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка, потом КаналСбытаТТ | , $Доставка.КаналСбытаТТ as Канал а как теперь зделать выбор категории? |
|||
241
bananan
01.03.13
✎
15:19
|
+(240) КатегорияЦены=(CASE WHEN ([$Канал.КатегорияЦены] IS NUL THEN 0 ELSE 1 END)"
ТАк что ли? |
|||
242
Mikeware
01.03.13
✎
15:23
|
case when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.1 then $Док.ТипЦен1 when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.2 then $Док.ТипЦен2 end
|
|||
243
bananan
01.03.13
✎
15:26
|
(242) Ясно, но... у меня 18 категорий цены...
этот кейс можно продолжить? |
|||
244
Mikeware
01.03.13
✎
15:30
|
(243) можно продолжать.
|
|||
245
Mikeware
01.03.13
✎
15:30
|
реально у тебя используется только 10. по первой цифре
|
|||
246
bananan
01.03.13
✎
15:32
|
(244-245)КатегорияЦены=(case when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.1 then $Док.ТипЦен1 when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.2 then $Док.ТипЦен2 when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.3 then $Док.ТипЦен3 end)
и т.д. Так что-ли? |
|||
247
bananan
01.03.13
✎
15:42
|
Попробывал так:
| , isnull($ДокС.ЦенаБезНДС, $ДокН.ЦенаБезНДС) ЦенаБезНДС | , КатегорияЦены=(case when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.1 then $Док.ТипЦен1 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.2 then $Док.ТипЦен2 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.3 then $Док.ТипЦен3 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.4 then $Док.ТипЦен4 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.5 then $Док.ТипЦен5 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.6 then $Док.ТипЦен6 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.7 then $Док.ТипЦен7 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.8 then $Док.ТипЦен8 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.9 then $Док.ТипЦен9 end) | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих Ругается: Meta name parser error: объект не найден "$Перечисление.ТипыЦен.1" |
|||
248
bananan
01.03.13
✎
15:49
|
+(247) И еще в справочнике ТМЦ есть 18 реквизитов Цена1, Цена2, ... Цена18... Эти цены не нужны?
|
|||
249
bananan
01.03.13
✎
15:51
|
+(247) а в Перечислении ТипыЦен:
Категория1 Категория2 . . . Категория18 |
|||
250
Mikeware
01.03.13
✎
15:58
|
(248) ну тогда из ТМЦ тяни
мне лень в вашей говносструктуре говноданных разбираться... а для категорий ТипЦены 1 и 18 одинаковы. по первой цифре |
|||
251
bananan
01.03.13
✎
16:03
|
(250) Здесь судя по коду в функции надо брать из перичисления..
| when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then $Док.ТипЦен2 так что ли? |
|||
252
bananan
01.03.13
✎
16:06
|
Блин... написал запрос такой:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as [Документ_вид $ВидДокумента] |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, 'має надто низьку ціну=' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , $Доставка.КаналСбытаТТ as Канал | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокС.ЦенаБезНДС, $ДокН.ЦенаБезНДС) ЦенаБезНДС | , КатегорияЦены=(case when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then $Док.ТипЦен1 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория2 then $Док.ТипЦен2 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория3 then $Док.ТипЦен3 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория4 then $Док.ТипЦен4 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория5 then $Док.ТипЦен5 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория6 then $Док.ТипЦен6 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория7 then $Док.ТипЦен7 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория8 then $Док.ТипЦен8 | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория9 then $Док.ТипЦен9 end) | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Цена_Прих=0 |"; ругается: неизвестное метаимя или алиас "$Канал" |
|||
253
bananan
01.03.13
✎
16:09
|
+(252) Когда у Канал - убрал доллар - ругается на $Док...
Когда убрал доллар у Док: ]The column prefix 'Док' does not match with a table name or alias n Что делать? |
|||
254
Mikeware
01.03.13
✎
16:10
|
(251) типа того
(252) и правильно ругается... только слабо... |
|||
255
bananan
01.03.13
✎
16:13
|
(254) А как правильно??
|
|||
256
bananan
01.03.13
✎
16:24
|
Кто-нибудь!!! Помогите (251-253)!!!!!!!!!!!!!!
|
|||
257
viktor_vv
01.03.13
✎
16:24
|
(255) Смотреть, как в запросе обращаешься к реквизиту справочника ТМЦ
$ТМЦ.СтавкаНДС и что для этого добавлено во From и по аналогии, ну или через аналогии, это уже как получится. |
|||
258
Mikeware
01.03.13
✎
16:26
|
(257) он не может "через аналогии". он только "через анал" может...
|
|||
259
bananan
01.03.13
✎
16:29
|
(257) Попробую, посмотрю...
А,блин так у меня же два вида документов ДокС и ДокН... как оформить в кейсе по поводу типа цены? |
|||
260
bananan
01.03.13
✎
16:29
|
(258) Словесный понос..
|
|||
261
bananan
01.03.13
✎
16:31
|
+(258) и поводу анала, в 1С мало что сделано не через Ж....
|
|||
262
Mikeware
01.03.13
✎
16:33
|
(261) так то у вас...
|
|||
263
bananan
01.03.13
✎
16:34
|
+(259) Т.е. в
КатегорияЦены=(case when Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then $Док.ТипЦен1 надо И $ДокС.ТипЦен1 и $ДокН.ТипЦен1 как это написать7?? |
|||
264
Mikeware
01.03.13
✎
16:35
|
(263) через isnull или coalesce
|
|||
265
bananan
01.03.13
✎
16:39
|
(264) COALESCE как здесь применить ?
|
|||
266
viktor_vv
01.03.13
✎
16:39
|
(263) А у тебя в документе действительно херова гора этих ТипЦен1 и т. д. или ты просто тупо скопипастил наводку в (242) ?
|
|||
267
viktor_vv
01.03.13
✎
16:40
|
(265) А что это ? Че пишут в документации ?
|
|||
268
bananan
01.03.13
✎
16:42
|
(266) при создании документа тип цены выбирается и он может быть 18 типов...
|
|||
269
viktor_vv
01.03.13
✎
16:46
|
(268) Ну это логично, только то, что у тебя написано, предполагает наличие в документе девяти реквизитов с соотвествующими идентификаторами.
|
|||
270
viktor_vv
01.03.13
✎
16:47
|
И уже-ж зарекался в эту ветку заходить.
Но это прямо как аттракцион невиданой ... . |
|||
271
Mikeware
01.03.13
✎
16:47
|
(268) не может он быть 18 типов :-)
точнее, бытьь -то модет, но использоваться будут далеко не все... |
|||
272
Mikeware
01.03.13
✎
16:49
|
(270) ога, я тож...
лулзов немеряно, но чот устал уже ржать... тем более, вчера несллабо доставил бухгалтер Протон в метеоритосраче... :-) |
|||
273
bananan
01.03.13
✎
16:50
|
(271) А я или откуда знаю какиее именно из ээтих типов используются?
|
|||
274
Mikeware
01.03.13
✎
16:54
|
(273) из кода твоего видно...
который минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); |
|||
275
bananan
01.03.13
✎
16:55
|
Попробывал так:
| SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , $Доставка.КаналСбытаТТ as Канал | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокС.ЦенаБезНДС, $ДокН.ЦенаБезНДС) ЦенаБезНДС | , КатегорияЦены=(case when Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then isnull($ДокС.ТипЦен1, $ДокН.ТипЦен1) Дак ругается: поле таблицы не найдено "$ДокС.ТипЦен1" Что неправильно? |
|||
276
bananan
01.03.13
✎
16:57
|
(274) используется 9 типов?
|
|||
277
bananan
01.03.13
✎
17:00
|
+(275) Опять голова не варит мягко говоря...
в Рсходной накладной есть в шапке поле ТИпЦен..., и нету никаких ТипЦен1, ТипЦен2... как его делать??? |
|||
278
Mikeware
01.03.13
✎
17:01
|
(276) скажем так: может использоваться не более 10 :-)
|
|||
279
bananan
01.03.13
✎
17:07
|
(278) И что с того?
А как написать КатегорияЦены=(case when Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then и чего там после тзен писать?? |
|||
280
viktor_vv
01.03.13
✎
17:09
|
(279) Дальше получай саму цену, как Цена_Прих получаешь.
А с Канал.КатегорияЦены разобрался. |
|||
281
bananan
01.03.13
✎
17:12
|
(280) ничерта не понял, как я или ты с КатегорияЦены разобрался??
|
|||
282
bananan
01.03.13
✎
17:22
|
+(281) Код ...
| , КатегорияЦены=(case when Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then isnull($ДокС.ТипЦен, $ДокН.ТипЦен) не проходит и как получить категорию цены? |
|||
283
pav007
01.03.13
✎
17:30
|
(282) непонятно что за фигню хочешь получить но судя по постам вот так :
| (case $Канал.КатегорияЦены | when $Перечисление.ТипыЦен.1 then Coalesce(ДокС.ТипЦен1, $ДокН.ТипЦен1 ) | when $Перечисление.ТипыЦен.2 then Coalesce(ДокС.ТипЦен2, $ДокН.ТипЦен2 ) | when $Перечисление.ТипыЦен.3 then Coalesce(ДокС.ТипЦен3, $ДокН.ТипЦен3 ) | when $Перечисление.ТипыЦен.4 then Coalesce(ДокС.ТипЦен4, $ДокН.ТипЦен4 ) | when $Перечисление.ТипыЦен.5 then Coalesce(ДокС.ТипЦен5, $ДокН.ТипЦен5 ) | when $Перечисление.ТипыЦен.6 then Coalesce(ДокС.ТипЦен6, $ДокН.ТипЦен6 ) | when $Перечисление.ТипыЦен.7 then Coalesce(ДокС.ТипЦен7, $ДокН.ТипЦен7 ) | when $Перечисление.ТипыЦен.8 then Coalesce(ДокС.ТипЦен8, $ДокН.ТипЦен8 ) | ELSE Coalesce(ДокС.ТипЦен9, $ДокН.ТипЦен9 END) КатегорияЦены |
|||
284
bananan
01.03.13
✎
17:37
|
(283) Нет - не так, а как не знаю...
$Канал.КатегорияЦены здесь тип цены (он в переислении) а в документах в шапке поле ТипЦены в котором и хранится тип цены... |
|||
285
bananan
01.03.13
✎
17:41
|
+(284) Т.е. если $Канал.КатегорияЦены$Перечисление.ТипыЦен=1 тогда $ДокС.ТипЦен=1
Как это в SQL написать? |
|||
286
Cap_1977
01.03.13
✎
17:42
|
топик стартера еще не загрызли ?
|
|||
287
bananan
01.03.13
✎
17:50
|
Кто-нибудь, подскажите...
Как озапросить коснтсрукцию типа: Если $Канал.КатегорияЦены$Перечисление.ТипыЦен=1 тогда $ДокС.ТипЦен=1 Если $Канал.КатегорияЦены$Перечисление.ТипыЦен=2 тогда $ДокС.ТипЦен=2 Или никто ничего подобного никогда не писал? |
|||
288
viktor_vv
01.03.13
✎
17:53
|
(283) Это ты несколько самонадеяно, тут надо с предыдущей ветки на 1000 постов начинать :).
|
|||
289
bananan
01.03.13
✎
17:56
|
(288) а по поводу (287) ты ничего не скажешь?
|
|||
290
viktor_vv
01.03.13
✎
18:03
|
| , ЦенаПоКатегории=(case when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime))
| when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория2 then $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Только вот с этим, придется самому $Канал.КатегорияЦены |
|||
291
bananan
01.03.13
✎
18:07
|
+(287) Что-то я таки не въезжаю
скажем код: isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ получает ТМЦ из одного из двух локументов... т.е. надо (в SQL) получить $Канал.КатегорияЦены$Перечисление.ТипыЦен и если эта категория цены =1 тогда получаем $ДокС.ТипЦен(равный 1) или как? |
|||
292
bananan
01.03.13
✎
18:10
|
(290) Спасибо, конечно, но что-то я не помню ни в одном из трех запросов
"| , ЦенаПоКатегории="... |
|||
293
bananan
01.03.13
✎
18:18
|
по вопросу (291) кто-то что-то может сказать?
|
|||
294
Mikeware
01.03.13
✎
18:24
|
все уже давно сказано.
|
|||
295
bananan
01.03.13
✎
18:30
|
(294) "Большое спасибо"... Вот так можно и до 10000 постов дойти..
|
|||
296
bananan
04.03.13
✎
11:37
|
всем привет!
Совсем небольшой вопросик... в таблцие (на вывод) в ячейке такое выражение:ТбЗн.IdDocDef расшифровка у него такая же... При выполнении выдает ошибки (это цикл) Поле агрегатного объекта не обнаружено (IdDocDef) Что неправильно? Ну и, на всякий случай полностью код процедуры: ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТбЗн.ВыбратьСтроку(); |
|||
297
Mikeware
04.03.13
✎
11:40
|
Я как-то раз с утра звонил одной девчонке,
Но как ни наберу — гудки короткие. И вдруг из трубки вылез маленький мальчонка, Не больше спичечной коробки. Я очень испугался и спрашиваю «Ты кто?», А он залез в стакан. Напился и ответил, спрыгнув на тахту: «Я мальчик Бананан. Ту-ту-ту». Здравствуй, мальчик Бананан. Ту-ту-ту. Ту-ту-ту. Здраствуй, мальчик Бананан. Ту-ту-ту. Ту-ту-ту. Здраствуй, мальчик Бананан. © |
|||
298
bananan
04.03.13
✎
11:44
|
(297) Спасибо, конечно за поэзию...
Но мне бы с проблемой разобраться (вывод значения в ячейке таблицы) |
|||
299
Wobland
04.03.13
✎
11:49
|
(296) а сам-то видишь это поле?
|
|||
300
Wobland
04.03.13
✎
11:54
|
кстати, триста!
|
|||
301
Wobland
04.03.13
✎
11:55
|
интересно, а на делфийных форумах автор тоже врал, что для 1С чего-то писал? ну не бывает таких программистов
|
|||
302
bananan
04.03.13
✎
12:05
|
(299) Т.е.? Где я его должен видеть? В запросе это поле описано, что еще надо?
|
|||
303
Wobland
04.03.13
✎
12:06
|
(302) где именно описано?
|
|||
304
bananan
04.03.13
✎
12:08
|
(303)см:
|, Данные.IdDocDef as Документ_вид |
|||
305
bananan
04.03.13
✎
12:09
|
+(304) Может какое-то другое поле надо, например: | Данные.IDDoc as [Документ $Документ]
идея такая мне надо в таблице поле по которому при щелчке открывается документ |
|||
306
Wobland
04.03.13
✎
12:10
|
(304) нет. там описано поле Документ_вид
|
|||
307
bananan
04.03.13
✎
12:12
|
+(305) Все правильно, написал так ТбЗн.Документ - заработало!
|
|||
308
Wobland
04.03.13
✎
12:13
|
Документ - нехорошее слово для именования чего-бы то ни было
|
|||
309
bananan
04.03.13
✎
12:28
|
(308) Учту...
Еще в запрос добавил | GROUP BY Документ ругается... инвалид колумн нейм Документ Чем ему группировка не нравится или вернее колумн Документ.. |
|||
310
Mikeware
04.03.13
✎
12:28
|
Тем, что он группирует не по псевдониму, а по полю
|
|||
311
bananan
04.03.13
✎
12:30
|
(310)Написал такой текст запроса:
ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) | GROUP BY IDDoc Выдает:Column 'Данные.IdDocDef' is invalid in the select list because it i что ему теперь неправильно? |
|||
312
Wobland
04.03.13
✎
12:31
|
ты сгруппировал по одному полю. а с остальными что делать, оно не знает
|
|||
313
sapphire
04.03.13
✎
12:33
|
(312) Что-то он сегодня не креативно пишет....
|
|||
314
sapphire
04.03.13
✎
12:33
|
Кто-нить подскажет зачем он группировать собрался?
|
|||
315
bananan
04.03.13
✎
12:35
|
(314) Затем...
|
|||
316
Wobland
04.03.13
✎
12:36
|
(314) когда я был молод и неженат, я тоже хотел группировать по чему попало. пока не осознал (312)
|
|||
317
Mikeware
04.03.13
✎
12:38
|
(311) Он тебе "английским-по-белому" говорит, "что ему теперь неправильно"
|
|||
318
bananan
04.03.13
✎
12:42
|
Дело в том что в одном документе может быть несколько строк с ошибочной ценой и когда в одном документе несколько ошибочных цен - зачем к каждой строке выводить номер документа автора документа?
Т.е. Сейчас о выводит так: РН АТ-0035214 (20.11.12) Антонова 1 Маного цена ниже приходной РН АТ-0035214 (20.11.12) Антонова 2 Клубника цена ниже приходной |
|||
319
bananan
04.03.13
✎
12:43
|
(317) Да с групировкой разобрались - у же работает...
|
|||
320
Mikeware
04.03.13
✎
12:44
|
(314) он увидел слово "group by" и решил, что оно волшебное...
зы. уж не считаешь ли ты, что он думает прежде чем что-то написать ? |
|||
321
Wobland
04.03.13
✎
12:44
|
слушайте, а в кошерном SQL есть аналог православных ИТОГов? дерева ж там нет
|
|||
322
bananan
04.03.13
✎
12:44
|
(320) Зю. Думаю
|
|||
323
sapphire
04.03.13
✎
12:45
|
(320) Он и "думает" несовместимы :)
|
|||
324
sapphire
04.03.13
✎
12:45
|
(321) Есть оконные функции
|
|||
325
bananan
04.03.13
✎
12:46
|
(323) Прям падаю от смеха...
Дак как мне избюваиться от того чтобі он не відавал для каждой строки с ошибкой документ и его автора? |
|||
326
Wobland
04.03.13
✎
12:46
|
(324) куда читать, понял, спасибо. а как результат будет выглядеть? как плоская таблица?
|
|||
327
Wobland
04.03.13
✎
12:47
|
(325) на этапе вывода. "оконные функции" звучит слишком грозно
|
|||
328
sapphire
04.03.13
✎
12:48
|
(326) Да
|
|||
329
Privalov
04.03.13
✎
12:49
|
Это называется, коллективное написание отчетов )))) ТС, своим не желанием учится и работать, уже задалбливать начал. Уже не интересно.
|
|||
330
sapphire
04.03.13
✎
12:50
|
(329) Да ладно :)
|
|||
331
Wobland
04.03.13
✎
12:50
|
(329) я сюда уже давно только ради развлечения хожу
|
|||
332
Privalov
04.03.13
✎
12:52
|
(330) Угу. Он корки мочить перестал, только тупость видна )))
|
|||
333
sapphire
04.03.13
✎
12:53
|
Надо ВР пожаловаться де он на не нашем языке пишет....
|
|||
334
Mikeware
04.03.13
✎
12:54
|
(333) да и у мню полномочий хватит....
только зачем? забавный же зверек... |
|||
335
sapphire
04.03.13
✎
12:56
|
(334) Да уж, особливо забавляет тупнякъ вроде (325)
|
|||
336
bananan
05.03.13
✎
11:57
|
(326-335) Так вы чего-то по поводу групировки подскажете? В одном документе может быть несколько ошибочных цен. И соответственно номер документа выводится один раз а уж ошибки и номера строк несколько...
Ваш "зверек" Дойдем до 10000? Или слабо? |
|||
337
Mikeware
05.03.13
✎
12:00
|
(366) позови взрослых.
|
|||
338
Wobland
05.03.13
✎
12:01
|
(336) слабо, движок не пустит 10 тыщ постов. что до меня, то я уже высказался по поводу "группировки". не группировка тебе нужна, а представление итоговой таблицы
|
|||
339
Wobland
05.03.13
✎
12:01
|
(337) взрослых не жалко? ;)
|
|||
340
bananan
05.03.13
✎
12:05
|
(338) Представление итоговой таблицы это как?
|
|||
341
Wobland
05.03.13
✎
12:10
|
(340) покажи свою таблицу так, как тебе удобно. не меняй саму таблицу, а покажи её нужным образом
|
|||
342
Wobland
05.03.13
✎
12:11
|
(341) или это уже запредельный уровень абстракции?
|
|||
343
bananan
05.03.13
✎
12:12
|
(341) скажем так у меня в таблице 3 одного и того же документа и еще 2 разных документов, и как это разруливать?
что-то типа если док=предыдущий док тогда не показывать? Есть какой-то пример кода? |
|||
344
Wobland
05.03.13
✎
12:13
|
(343) да. есть
|
|||
345
Wobland
05.03.13
✎
12:17
|
Результат.ВыбратьСтроки();
Пока Результат.ПолучитьСтроку()=1 Цикл Если Результат.Сертификат<>Предыдущий Тогда Предыдущий=Результат.Сертификат; ТабДок.ВывестиСекцию("Строка|Общее"); КонецЕсли; ТабДок.ВывестиСекцию("ПодчинённаяСтрока"); КонецЦикла; |
|||
346
bananan
05.03.13
✎
12:20
|
(345) Результат это результирующие данные запроса?
|
|||
347
Wobland
05.03.13
✎
12:20
|
(346) Запрос.ВыполнитьИнструкцию(ТекстЗапроса, Результат);
|
|||
348
bananan
05.03.13
✎
12:23
|
(347) Понял, попробую после перекура (ну тогда выходит что группировка в данном запросе не неэна совсем)...
|
|||
349
Wobland
05.03.13
✎
12:25
|
(348) молодец. теперь пойми, что такое группировка
|
|||
350
bananan
05.03.13
✎
13:10
|
Может кто с таким сталкивался...
В конфигураторе поработал. а передприятия не хочет запускаться: пишет база данных не может быть открыта в однопользовательском режиме. Что это такое и как с этим бороться? |
|||
351
Wobland
05.03.13
✎
13:16
|
что бы это могло быть? может быть, режим какой-то?.. жлобский? нет, не то. жмотский? тоже не то. может, монопольный?
|
|||
352
Wobland
05.03.13
✎
13:16
|
+(351) есть в ЖКК слово "монопольный режим"? проверь, вдруг я угадал
|
|||
353
bananan
05.03.13
✎
13:19
|
(352) Чего смешного? В конфигураторе поработал с исходником нажимаю Ф11 , а она ругается за однопользовательский режим.
Вышел из конфигуратора, пытаюсь запустить предприятие - таже ошибка... |
|||
354
Wobland
05.03.13
✎
13:21
|
(353) пять лет задавания вопросов про семёрку дают основания предполагать, что ты в ней как-то работаешь. тут не смешно, тут плакать хочется от таких вопросов
|
|||
355
bananan
05.03.13
✎
13:21
|
+(353) Вернее она пыталсь стартануть, но написала об нарушении индексов, и попросила чтобы ее запустили в МОНОПОЛЬНОМ режиме, запустил в монопольном режиме- выдает:
база данных неможет быть открыта в однопользовательском режиме (352) Теперь угадай.... |
|||
356
bananan
05.03.13
✎
13:22
|
(353) Ну поплачь может тебе легче станет.. А как запустить программу?
|
|||
357
Wobland
05.03.13
✎
13:24
|
(356) что-то не получается, глаза сухие. понимаю, что где-то ошибка, не могу понять, где. как заплакать? помогите!
|
|||
358
bananan
05.03.13
✎
13:26
|
(357) Напрягись, и вспомни как тебя в детстве старшекласники обижали моет и заплачешь...
А по поводу однопользовательского режима ничего не знаешь? |
|||
359
bananan
05.03.13
✎
17:50
|
У меня тут снова что-то нето:
в коде: Пока Результат.ПолучитьСтроку()=1 Цикл Если Результат.Сертификат<>Предыдущий Тогда Предыдущий=Результат.Сертификат; ТабДок.ВывестиСекцию("Строка|Общее"); КонецЕсли; ТабДок.ВывестиСекцию("ПодчинённаяСтрока"); КонецЦикла; НА строке Если он ругался что Предыдущий - неопределенная переменная.. тогд перед началом цикла я написал: Предыдущий = СоздатьОбъект("РасходнаяНакладная"); Так выдает ошибку: Неудачная попытка создания объекта (РасходнаяНакладная) В чем я неправ? |
|||
360
bananan
05.03.13
✎
17:52
|
+(359) Чтоб не смеялись даю сразу тот код что у меня:
ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТбЗн.ВыбратьСтроки(); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Таб.ВывестиСекцию("Шапка"); Таб.Опции(0,0,Таб.ВысотаТаблицы()); Предыдущий = СоздатьОбъект("РасходнаяНакладная"); Пока(ТбЗн.ПолучитьСтроку()=1) Цикл Если ТбЗн<>Предыдущий тогда Предыдущий = ТбЗн.Документ; Таб.ВывестиСекцию("Документ"); Конецесли; Таб.ВывестиСекцию("Ошибка"); КонецЦикла; |
|||
361
bananan
05.03.13
✎
17:56
|
Уже разобрался сам, написал так:
Предыдущий = СоздатьОбъект("Документ"); зхаработало! |
|||
362
sapphire
05.03.13
✎
18:00
|
Интересно сколько раз он индексы уронит?
|
|||
363
Mikeware
05.03.13
✎
18:03
|
(357) И ты не знаешь, где ошибка? :-)
|
|||
364
bananan
05.03.13
✎
18:13
|
(362-363) Но почему-то код выдал таки несколько повторений для одного и тогоже документа:
РН АТ-0035385 (20.11.12) Антонова 15 Огірки марин.цілі 920г (Чемп.) 6шт має ціну нижчу за прихідну РН АТ-0035385 (20.11.12) Антонова 16 Манго дольки "Чемпіон" 425 г 24шт має ціну нижчу за прихідну а здесь по-идеи документ и автор документа должен был показаться только один раз... |
|||
365
Mikeware
05.03.13
✎
18:15
|
это все потому, что ошибка в другом месте....
|
|||
366
sapphire
05.03.13
✎
18:16
|
(360)
ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТбЗн.Сортировать("Документ"); ТбЗн.ВыбратьСтроки(); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Таб.ВывестиСекцию("Шапка"); Таб.Опции(0,0,Таб.ВысотаТаблицы()); //Предыдущий = СоздатьОбъект("РасходнаяНакладная"); Предыдущий = 0; Пока(ТбЗн.ПолучитьСтроку()=1) Цикл Если ТбЗн<>Предыдущий тогда Предыдущий = ТбЗн.Документ; Таб.ВывестиСекцию("Документ"); Конецесли; Таб.ВывестиСекцию("Ошибка"); КонецЦикла; |
|||
367
sapphire
05.03.13
✎
18:16
|
(365) Сложно определить место это или таки некий набор....
|
|||
368
bananan
05.03.13
✎
18:19
|
+(364) и с этим сам разобрался, былоу меня неправильное условие, условие сделал так:
Если ТбЗн.Документ<>Предыдущий тогда и заработало как надо |
|||
369
bananan
05.03.13
✎
18:20
|
(366) Это может и заработает, но работать будет неправильно
|
|||
370
Mikeware
05.03.13
✎
18:25
|
(367) ничего сложного. главная ошибка - в ДНК.
я не понимаю, что кроме дефектов в ней может заставить выкладывать говнокод в мизду . вместо того, чтоб тихо-мирно сесть за отладчик и от_лажи_вать ("избавлять от лажи") все _это_... |
|||
371
bananan
05.03.13
✎
18:27
|
(367, 370) Ладно, не буду вам мешать разбрасывать свою желчь. До встречи
|
|||
372
Cthulhu
05.03.13
✎
18:27
|
почему этот топик до сих про не в "Юморе"???
|
|||
373
Mikeware
05.03.13
✎
18:28
|
(372) потому как вроде это "тематика"...
|
|||
374
bananan
05.03.13
✎
18:40
|
(373) С вами не весело, а без вас - хоть на луну вой...
Написал такой код: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Доставка as ДД |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокШН.ТМЦ, $ДокШ.ТМЦ) as Доставка | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $Доставка.КаналСбытаТТ as Канал | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $ДокументСтроки.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; Выдает ошибку: Meta name parser error: поле таблицы не найдено "$ДокШ.Доставка" В чем неправильно $ДокШ.Доставка объявлена? |
|||
375
bananan
05.03.13
✎
18:47
|
+(374) подскажите, плиз...
В запросе ДокШ есть: | Left join $ДокументСтроки.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная В документе типа РасходнаяНакладная в шапке есть поле Доставка типа Справочник.Доставка Что я неправильно делаю? |
|||
376
Mikeware
05.03.13
✎
19:13
|
сравнить
$ДокументСтроки.РасходнаяНакладная as ДокС ... и $ДокументСтроки.РасходнаяНакладная as ДокШ ... , и долго думать... |
|||
377
bananan
05.03.13
✎
19:13
|
+(375) Кто-то здесь еще есть или уже все пошли праздновать женский день номер восемь?
|
|||
378
Mikeware
05.03.13
✎
19:14
|
(375) "Что я неправильно делаю?" - ты пытаешься заниматься делом, к которому у тебя нет никаких способностей, знаний, навыков и т.д....
|
|||
379
bananan
05.03.13
✎
19:15
|
(376) Если в тексте запроса пишу ДокС.Доставка - тоже не проходит...
А по поводу сравнить, что нельзя делать несколько альясов на одно и то же? |
|||
380
bananan
05.03.13
✎
19:16
|
(378) Да не просто пытаюсь, а занимаюсь... И написал уже не один запрос
|
|||
381
Mikeware
05.03.13
✎
19:16
|
плять... слово "думать" к тебе неприменимо...
|
|||
382
Mikeware
05.03.13
✎
19:17
|
(380) вместо "И написал уже не один запрос" следует читать "И не написал уже один запрос"
|
|||
383
bananan
05.03.13
✎
19:19
|
(376) На $ДокументСтроки.РасходнаяНакладная я объявил два альяса, разве так нельзя??
|
|||
384
bananan
05.03.13
✎
19:23
|
(382) За время, что я работаю с 1С++ мною (с вашей помощью) написано 24 запроса...
|
|||
385
Скользящий
05.03.13
✎
19:26
|
(382) Банан тебя просто эксплуатирует. *как то пошло прозвучало.
|
|||
386
bananan
05.03.13
✎
19:34
|
(382) Иди и ты кого-нибудь поэксплуатируй, или только спамить умеешь?
|
|||
387
bananan
05.03.13
✎
19:39
|
+(383) И если пишу | , isnull($ДокШН.Склад, $ДокШ.Склад) as [Склад $Справочник.Склад]
возвращает ошибку: Meta name parser error: поле таблицы не найдено "$ДокШН.Склад" ну а если напишу: | , isnull($ДокН.Склад, $ДокС.Склад) as [Склад $Справочник.Склад] возвращает ошибку: Meta name parser error: поле таблицы не найдено "$ДокС.Склад" |
|||
388
Mikeware
05.03.13
✎
20:22
|
(384) Ну выложи их сюда :-) посмотрим.
только кажется мне, что врешь ты как мерин сизый... |
|||
389
sapphire
06.03.13
✎
09:42
|
(388) Да оно не просто тормоз оно таки якорь...
|
|||
390
sapphire
06.03.13
✎
09:46
|
(387)
сравни с (374) и найди как минимум 2 отличия: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Доставка as ДД |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $Доставка.КаналСбытаТТ as Канал | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; |
|||
391
chelentano
06.03.13
✎
10:04
|
(390) Ты всё ещё пытаешься заставить его подумать?
|
|||
392
Privalov
06.03.13
✎
10:05
|
(391) Он не теряет надежды ))))
|
|||
393
Mikeware
06.03.13
✎
10:33
|
(389) ну, не надо так уж грубо....
"якорь" - он же местами заостренный... т.е. не совсем уж тупой... так что якорям обидно твое сравнение.... |
|||
394
bananan
06.03.13
✎
11:37
|
(391) Меня не надо заставлять думать, сам хоть немного подумай над своими словами.
Унижая другого сам становишся низким! |
|||
395
Wobland
06.03.13
✎
11:40
|
(394) а выставляя себя на посмешище кем становишься?
|
|||
396
sapphire
06.03.13
✎
11:50
|
(393) Моей гире не обидно :)
А другого якоря не имею за ненадобностью :) |
|||
397
sapphire
06.03.13
✎
11:53
|
(394) Деятель, как там запрос прямой поживает?
Ты понял в чем разница между предикатом $Документ и $ДокументСтроки ? $Документ вернет имя таблицы ШАПКИ документа $ДокументСтроки вернет имя таблицы ТАБЛИЧНОЙ ЧАСТИ. Когда-то в дебрях этой, или предыдущей ветки, ты уже вроде как выяснял, что атрибут "Доставка" относится к ШАПКЕ... |
|||
398
ЧеловекДуши
06.03.13
✎
11:57
|
(397) Это тонкости, он он же считает, что все запросы подобны запросам от 1С 7.7... Что-то написал, оно что-то выплюнуло :)
|
|||
399
bananan
06.03.13
✎
11:57
|
(390) Отличия в двух кодах:
| , isnull($ДокШН.ТМЦ, $ДокШ.ТМЦ) as Доставка во втором коде: | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка И что с этого? |
|||
400
Wobland
06.03.13
✎
11:59
|
четыреста!
|
|||
401
sapphire
06.03.13
✎
12:01
|
(399) Запрос перестал ругаться?
|
|||
402
ЧеловекДуши
06.03.13
✎
12:02
|
(399) Автор, если ты используешь таблицу "FROM _1SJourn as Жур (nolock)"
То, связи нужно отличать, Левое от правого :) Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН 1. К примеру: "Left join" и "on ДокН.iddoc = Жур.iddoc" играет значение 2. Команда подобно "Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН" вообще не имеет смыслу, Жур.iddoc - Уникален в пределе всей БД, т.е. по существу ИД док уникален для любого документа :) |
|||
403
bananan
06.03.13
✎
12:02
|
(397) Понял и вспомнил, пока с этим разобрался буду дальше в дебри лезьт, скорее всего обращусь к вам...
|
|||
404
sapphire
06.03.13
✎
12:03
|
(399) Опять таки, в
(374) | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $ДокументСтроки.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная в (390) : | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная |
|||
405
sapphire
06.03.13
✎
12:05
|
(402) Ему всё равно, Дима с Кирова ему такую конструкцию предложил.
Я ему сватал сделать через объединение, так хоть для одного типа документа хотя бы... Но вот он решил так. Хай мается и сводит SQL SERVER с ума... |
|||
406
bananan
06.03.13
✎
12:11
|
+403 Код такой
|, Данные.Доставка as [ДоставкаКанал Справочник.Доставка] а в столбце почему-то : 2B9 1OT 1NA 1NA здесь разве не доулжно быть что-то более осмысленное? |
|||
407
sapphire
06.03.13
✎
12:14
|
Данные.Доставка as [ДоставкаКанал $Справочник.Доставка]
|
|||
408
sapphire
06.03.13
✎
12:15
|
(406) Символ "$" за тебю Блез Паскаль писать будет?
|
|||
409
bananan
06.03.13
✎
12:17
|
(408) Спасибо, и от Паскаля тоже :)
|
|||
410
sapphire
06.03.13
✎
12:19
|
(409) хм... ты с ним, с Блезом Паскалем спиритическую связь исчо имеешь?
|
|||
411
Mikeware
06.03.13
✎
12:19
|
(408) не понял связи....
|
|||
412
Mikeware
06.03.13
✎
12:20
|
(396) скорее гиря нацчится правать, чем bananan программировать
|
|||
413
sapphire
06.03.13
✎
12:21
|
(411) ? Да он забыл в типизаторе доллар дорисовать, а сикелю безразлично как именно ты поименовал столбецъ в []
|
|||
414
sapphire
06.03.13
✎
12:22
|
(412) Не пугай, зачем мне плавающий якорь?!....
|
|||
415
Mikeware
06.03.13
✎
12:23
|
(413) это любому дураку понятно (ну, кроме особо выделяющихся).
я не понял, причем тут Паскаль (который Блез) |
|||
416
sapphire
06.03.13
✎
12:24
|
(415) обычно поминают Александра Сергеевича, который Пушкин, решил выделиться, а кого припомнить... вот и написал такъ
|
|||
417
Wobland
06.03.13
✎
12:26
|
(416) ну не было при Паскале таких кнопок ;)
|
|||
418
ЧеловекДуши
06.03.13
✎
12:27
|
(405) Понятно, человеку не нужна помощь, ему нужна халява :)
|
|||
419
ЧеловекДуши
06.03.13
✎
12:28
|
(417) Не было, тогда можно делать вывод о уровне образованности ТС :)
|
|||
420
Wobland
06.03.13
✎
12:30
|
(418) нужна ему помощь. он её готовить не умеет
|
|||
421
Mikeware
06.03.13
✎
12:30
|
(418) а где-ниудь на дельфикингдом (на форуме дельфистов), небось, заряжает, что он крутой 1с-ник, а вот с днльфями ему немного помощь нужна :-)
|
|||
422
Wobland
06.03.13
✎
12:30
|
халява вот тут нужна. просто и неприкрыто ;)
v8: Собрать план производства за период |
|||
423
Mikeware
06.03.13
✎
12:33
|
(422) :-)
|
|||
424
bananan
06.03.13
✎
12:39
|
(421) Покажи мне где? и, к тому же, на этом форуме я не "заряжаю" что я - кртой дельфист или рнр-ник...
Твои мысли - показывают тебя, а не другого. |
|||
425
Wobland
06.03.13
✎
12:46
|
(424) >"Мартышка" думает и очень много сама делает
наглая ложь |
|||
426
Mikeware
06.03.13
✎
12:55
|
(424) я сказал "небось".
не, конечно, предоставленный тобой дельфишный код (точнее, его обрывок) делается почти автоматом. но не исключа, что для чуть более сложных моментов ты вполне прешься куда-нибудь за "помощью". Ибо ты даже демонстрировад непонимание работы условного оператора, и непонимание операторов в логических выражениях.. |
|||
427
Wobland
06.03.13
✎
12:56
|
+(426) не говоря уж о скрине, вставленном в вордовский документ и покладенном на файлообменник. впрочем, это прямо не характеризует профессионализм ;)
|
|||
428
bananan
06.03.13
✎
13:03
|
(426-427) Вам виднее...
Пардон за склероз если у меня поле это перечисление то как его в прямом запросе показать? (Это я уже явно спрашивал, но... тупой якорь...) |
|||
429
Wobland
06.03.13
✎
13:04
|
(428) | $ТЧ.СтавкаНДС AS СтавкаНДС,
|
|||
430
Wobland
06.03.13
✎
13:05
|
+(429) типизация в квадратных скобках опционально
|
|||
432
Mikeware
06.03.13
✎
13:09
|
(428) Это можно прочитать 1) в он-лайн документации, 2) в статейке на форуме 1с++, 3)в als по 1с++ 4)в тех отчетах, которые ты якобы написал....
|
|||
433
Wobland
06.03.13
✎
13:11
|
(432) 429й пост уж мог и оставить ;)
|
|||
434
bananan
06.03.13
✎
13:12
|
(428) Спасибо...
что-то я видно, опять туплю...: | , $Доставка.КаналСбытаТТ as Канал | , $Канал.КатегорияЦены as [КатегорияЦ $Перечисления.ТипыЦен] выдает: Meta name parser error: неизвестное метаимя или алиас "$Канал" Что неправильно? |
|||
435
Wobland
06.03.13
✎
13:13
|
(434) метаимя или алиас "$Канал"
|
|||
436
Mikeware
06.03.13
✎
13:14
|
(434) выше уже ответили... и сотни постов не прошло...
|
|||
437
Wobland
06.03.13
✎
13:16
|
плин, это заразно. у меня:
Meta name parser error: неизвестное метаимя или алиас "$ТЧ" |
|||
438
bananan
06.03.13
✎
13:16
|
(432) Якобы опять туплю..
| , $Доставка.КаналСбытаТТ as Канал | , $Канал.КатегорияЦены as [КатегорияЦ $Перечисления.ТипыЦен] выдает ошибку: Meta name parser error: неизвестное метаимя или алиас "$Канал" Что я "якобы написал" неправильно? |
|||
439
bananan
06.03.13
✎
13:17
|
(438) Где-то пропали (433-436). кто их спионерил?
|
|||
440
Mikeware
06.03.13
✎
13:17
|
(438) ну он же тебе написал: неизвестное метаимя или алиас $Канал
|
|||
441
Mikeware
06.03.13
✎
13:18
|
(439) я не брал. а если сказал "не брал" - значит, не отдам!©
на месте эти посты... видимо, у тебя интернет такой же тормоз... |
|||
442
sapphire
06.03.13
✎
13:20
|
(438) Запрос показывай заново.
Писарь хренов. |
|||
443
chelentano
06.03.13
✎
13:20
|
(438) есть подозрение, что у тебя в запросе где-то неизвестное метаимя или алиас находится
|
|||
444
bananan
06.03.13
✎
13:20
|
(440) алиас канал я объявляю в | , $Доставка.КаналСбытаТТ as Канал тогда почему он неизвестен?
|
|||
445
Mikeware
06.03.13
✎
13:21
|
(444) правда, штоль?
|
|||
446
Mikeware
06.03.13
✎
13:22
|
(442) фамилии пишутся с прописнвх бука\в!
|
|||
447
bananan
06.03.13
✎
13:22
|
(442-443)
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.Канал as [Каналы $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'ПРОБА!!! на 2-й запрос' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $Доставка.КаналСбытаТТ as Канал | , $Канал.КатегорияЦены as [КатегорияЦ $Перечисления.ТипыЦен] | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШН.Доставка, $ДокШ.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |"; |
|||
448
chelentano
06.03.13
✎
13:22
|
(444) да потому что фигня эта 1С и 1С++ в придачу
|
|||
449
Wobland
06.03.13
✎
13:22
|
(444) я тебе дважды (на бис) объяснял принцип работы с лишними точками
|
|||
450
Mikeware
06.03.13
✎
13:25
|
+(445) оно не понимает разницу между синонимом колонки и синонимом таблицы
|
|||
451
sapphire
06.03.13
✎
13:25
|
(444) А с чего и кому он должен быть известен?!
Такожде тебю объкашливалъ, де ключи и поля в других таблицах соотвествующие этим ключам есть две большой разница. |
|||
452
Mikeware
06.03.13
✎
13:27
|
(449) Человек подходит к милиционеру и спрашивает: - Хочешь анекдот политический расскажу? - Ты что? Я же милиционер!! - А я - медленно и два раза.©
|
|||
453
bananan
06.03.13
✎
13:32
|
(448-452) Так что там еще надо джоин добавить?
|
|||
454
Wobland
06.03.13
✎
13:35
|
(453) может и надо. я твою структуру данных не вижу
|
|||
455
chelentano
06.03.13
✎
13:37
|
(453) нет, там надо программиста сменить... точнее, взять, поскольку, похоже, что их нет
|
|||
456
Wobland
06.03.13
✎
13:40
|
раз уж тут все собрались.. натолкните на мысль, плз. хочу собрать данные из Документ1 и Документ2. соединяю по док1.ДокОснование=док2.ИДДок, хочу добавить условие на нахождение в одном дне. а тут уже журнал... как это организовать? уже в глазах рябит
|
|||
457
sapphire
06.03.13
✎
13:43
|
(456) Как звучит задача изначально?
|
|||
458
bananan
06.03.13
✎
13:44
|
(453) что-то я опять запутался...
Получаю Доставка - это поле из шапки документа... (Справочник.Доставка) в нем есть поле КаналСбытаТТ (это справчоник.КаналыСбыта), мне надо к нему достучаться.... |
|||
459
Wobland
06.03.13
✎
13:44
|
(457) необходим отчёт вида:
Дата | Касса | СуммаПродаж | СуммаСебестоимость | СуммаВозвратов "день-в-день" с отбором по организации, периоду... |
|||
460
Mikeware
06.03.13
✎
13:45
|
(456) если тупо - приджойни два журнала к каждому доку, и в условие = равенство дат
|
|||
461
Wobland
06.03.13
✎
13:45
|
+(459) по документам ОтчётККМ
|
|||
462
sapphire
06.03.13
✎
13:48
|
(456) (460) Исходя из опыта, менее гиморно использовать UNION ALL и агрегировать
|
|||
463
Wobland
06.03.13
✎
13:48
|
(460)
from 1s_journ as jour1 join doc1 on doc1=jour1 join 1s_jourb as jour2 join doc2 on doc2=journ2 так схематично что ль? |
|||
464
Wobland
06.03.13
✎
13:48
|
(462) а это мысль...
|
|||
465
Wobland
06.03.13
✎
13:51
|
а как я с юнионом буду знать о возвратах день-в-день?
|
|||
466
ЧеловекДуши
06.03.13
✎
13:52
|
Ужас, до автора так и не допирает что такое Left и Right :)
|
|||
467
Mikeware
06.03.13
✎
13:53
|
(463) ага
минус в том, что фильтрация будет после отбора. хотя судя по (459) тебе это и надо (462) у него свящанные условия, объединение тут мимо кассы. ему нужно просто две даты получит, и поимет условиее, что даты совпоали (т.е."день-в-день") |
|||
468
ЧеловекДуши
06.03.13
✎
13:54
|
+ left join $Справочник.ТМЦ ТМЦ (nolock)
Делай AS!!! left join $Справочник.ТМЦ AS ТМЦ (nolock) и left join $Справочник.Доставка AS Доставка |
|||
469
Mikeware
06.03.13
✎
13:57
|
(468) со справочником ТМЦ нужно внутреннее.
|
|||
470
ЧеловекДуши
06.03.13
✎
13:58
|
(469) Просто он в запросе (447) не объявил "AS" :)
|
|||
471
bananan
06.03.13
✎
13:58
|
(468) Не понял это у меня есть с самого начала:
| left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШН.Доставка, $ДокШ.Доставка) |
|||
472
ЧеловекДуши
06.03.13
✎
13:59
|
+(469) Насчет внутренне, это не важно...
Просто как он пишет, это ужас :) ... При малейшем измене условия, он словит новые вопросы на мисте. Коль он не умеет пользоваться "Query Analyzer" |
|||
473
bananan
06.03.13
✎
14:01
|
(472) Где взять "Query Analyzer"?
|
|||
474
Mikeware
06.03.13
✎
14:01
|
(470) глубоко похер.
я ленивый буквы "A" и "S" экономлю. а на сэкономленые - могу сотню раз написать слово Ass :-)) |
|||
475
ЧеловекДуши
06.03.13
✎
14:01
|
(471) Ты криво объявил поле "AS"... тяжёлый случай, человек не думает :)
|
|||
476
ЧеловекДуши
06.03.13
✎
14:01
|
(473) Купить вместе с SQL :)
|
|||
477
ЧеловекДуши
06.03.13
✎
14:02
|
(474) А (0) не понял :)
|
|||
478
bananan
06.03.13
✎
14:03
|
+(471) Добавил as для Доставка и для ТМЦ...
А толку? ошбика была не в Доставка и не в ТМЦ выдает ошибку: Meta name parser error: поле таблицы не найдено "$ДокШН.Канал" На всякий случай еще раз текст запроса: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.Канал as [Каналы $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'ПРОБА!!! на 2-й запрос' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШН.Канал, $ДокШ.Канал) as Доставка | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $Доставка.КаналСбытаТТ as КаналТТ | , $Канал.КатегорияЦены as [КатегорияЦ $Перечисления.ТипыЦен] | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ as ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка as Доставка (nolock) on Доставка.id = isnull($ДокШН.Доставка, $ДокШ.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |"; |
|||
479
sapphire
06.03.13
✎
14:03
|
(465) Они так и будут день-в-день
|
|||
480
sapphire
06.03.13
✎
14:05
|
(469) плохо там из той конструкции потому я и ругался с Димкой, что объединение рулезней ибо все хорошо в индексы ложится и нагромождений меньше.
|
|||
481
Wobland
06.03.13
✎
14:06
|
(479) всё поломается, когда встретится документ возврата по продаже недельной давности. ДокОснование.Дата вылезет за нужный день
|
|||
482
ЧеловекДуши
06.03.13
✎
14:06
|
(478) Блин, Чудак, да разберись наконец с метаданными документов, что есть шапка, что есть табличная часть?
Где в каком документе оно там называется :) ... Нам от тут этого не видать :) |
|||
483
Mikeware
06.03.13
✎
14:08
|
не, все-таки это развод.....
|
|||
484
ЧеловекДуши
06.03.13
✎
14:08
|
+ (478) Если реквизит "Канал" это общий, то ты его неправильно получаешь :)
Журнал.$ОбщийРеквизит.Фирма |
|||
485
ЧеловекДуши
06.03.13
✎
14:10
|
+ (478) Общие реквизиты бывают лежат и в самом документе, но при определенном условии :)
|
|||
486
sapphire
06.03.13
✎
14:11
|
(478) Объясни кто и откуда в твоей конструкции:
| , isnull($ДокШН.Канал, $ДокШ.Канал) as Доставка -- сомневаюсь, что в реквизитах документов хранится реквизит справочника... | , $Доставка.КаналСбытаТТ as КаналТТ -- это другой канал, который не канает? | , $Канал.КатегорияЦены as [КатегорияЦ $Перечисления.ТипыЦен] -- здесь к чему Канал да еще и с алиасом? |
|||
487
sapphire
06.03.13
✎
14:12
|
(481) Отсекается граничными условиями при агрегировании.
|
|||
488
ЧеловекДуши
06.03.13
✎
14:13
|
(486) Ну... он еще вот такое проделал :)
|,isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка |,isnull($ДокШН.Канал, $ДокШ.Канал) as Доставка Везде доставка :) |
|||
489
ЧеловекДуши
06.03.13
✎
14:14
|
(481) Думается автор еще до SQL запрос отправить не в состоянии, а ты уже о проблеме самих данных :)
|
|||
490
sapphire
06.03.13
✎
14:14
|
(481) Кстати, про ленточные отчеты слышал?
это вида: {раздел отчета},{набор измерений},{набор показателей}... Для примера, ОСВ :) |
|||
491
sapphire
06.03.13
✎
14:15
|
(488) Ну он вечно в состоянии форвакуумного насоса, такое впечатление, что не просыхает...
|
|||
492
ЧеловекДуши
06.03.13
✎
14:21
|
(491) кстати, не знал что можно вот так делать :)
left join <...> as Доставка (nolock) on isnull($ДокШН.Доставка, $ДокШ.Доставка) = Доставка.id |
|||
493
sapphire
06.03.13
✎
14:25
|
(492) А чего нельзя, можно, только блевать тянет от такой херни
|
|||
494
bananan
06.03.13
✎
14:28
|
(488) Исправил...
| , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШН.Канал, $ДокШ.Канал) as Канал Но... : Meta name parser error: поле таблицы не найдено "$ДокШН.Канал" |
|||
495
sapphire
06.03.13
✎
14:31
|
(494) у тебя в шапках документа есть реквизит Канал?
|
|||
496
bananan
06.03.13
✎
14:32
|
Доставка - элемент шапки документа (Справчоник.Доставка)
в єтом справочнике есть поле КаналСбытаТТ типа Справочник.КаналыСбыта до него то мне и нужно достучаться... |
|||
497
bananan
06.03.13
✎
14:32
|
(495) нет(см 496)
|
|||
498
sapphire
06.03.13
✎
14:34
|
(496) Ну и в чем проблема? Стучись к справочнику КаналыСбыта
У тебя ж уже указан справочник доставка. |
|||
499
sapphire
06.03.13
✎
14:38
|
|SELECT
| Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.Канал as [Каналы $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'ПРОБА!!! на 2-й запрос' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , $КаналыСбыта.id as Канал | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $Доставка.КаналСбытаТТ as КаналТТ | , $КаналыСбыта.КатегорияЦены as [КатегорияЦ $Перечисления.ТипыЦен] | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ as ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка as Доставка (nolock) on Доставка.id = isnull($ДокШН.Доставка, $ДокШ.Доставка) | left join $Справочник.КаналыСбыта as КаналыСбыта (nolock) on $Доставка.КаналСбытаТТ = $КаналыСбыта.id | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |
|||
501
sapphire
06.03.13
✎
14:41
|
(500) Рискуешь по-париться на денек за флуд в тематической ветке :)
|
|||
502
bananan
06.03.13
✎
14:43
|
(499) Выдал Ошибку:
Meta name parser error: поле таблицы не найдено "$КаналыСбыта.id" |
|||
503
sapphire
06.03.13
✎
14:48
|
|SELECT
| Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.Канал as [Каналы $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'ПРОБА!!! на 2-й запрос' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , КаналыСбыта.id as Канал | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС // | , $Доставка.КаналСбытаТТ as КаналТТ | , $КаналыСбыта.КатегорияЦены as [КатегорияЦ $Перечисления.ТипыЦен] | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ as ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка as Доставка (nolock) on Доставка.id = isnull($ДокШН.Доставка, $ДокШ.Доставка) | left join $Справочник.КаналыСбыта as КаналыСбыта (nolock) on $Доставка.КаналСбытаТТ = КаналыСбыта.id | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |
|||
504
bananan
06.03.13
✎
14:54
|
(503)]Invalid column name 'КатегорияЦены'.
|
|||
505
Wobland
06.03.13
✎
14:55
|
вот как выглядит удалённая отладка в текстовом режиме!
|
|||
506
bananan
06.03.13
✎
14:56
|
+(504) Категория цены = это поле в справочнике КаналыСбыта тип поля Перечисление
|
|||
507
bananan
06.03.13
✎
14:57
|
(505) Будем знать, вот бы еще увидеть как ты выглядиш...
|
|||
508
sapphire
06.03.13
✎
14:59
|
(506) Ты уже под'з'бал уже...
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.Канал as [Каналы $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'ПРОБА!!! на 2-й запрос' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , КаналыСбыта.id as Канал | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС // | , $Доставка.КаналСбытаТТ as КаналТТ | , $КаналыСбыта.КатегорияЦены as [КатегорияЦены $Перечисления.ТипыЦен] | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ as ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка as Доставка (nolock) on Доставка.id = isnull($ДокШН.Доставка, $ДокШ.Доставка) | left join $Справочник.КаналыСбыта as КаналыСбыта (nolock) on $Доставка.КаналСбытаТТ = КаналыСбыта.id | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |
|||
509
sapphire
06.03.13
✎
15:00
|
(505) Самое смешное, что я не стал смотреть его алиасы, он в одном месте поправит и сам ни зги не понимает, что он и где исправил...
|
|||
510
bananan
06.03.13
✎
15:04
|
(508-509) Самое смешное:
Invalid column name 'КатегорияЦены'. |
|||
511
sapphire
06.03.13
✎
15:07
|
(510) А самому догадаться, что типизировать в подзапросе не надо не судьба?
|
|||
512
Wobland
06.03.13
✎
15:11
|
(511) как-то "неверное имя" и типизация - разные вещи. но я запрос не видел
|
|||
513
sapphire
06.03.13
✎
15:13
|
(512)
| , $КаналыСбыта.КатегорияЦены as [КатегорияЦены $Перечисления.ТипыЦен] |
|||
514
Mikeware
06.03.13
✎
15:14
|
(509) он и не пытается...
в лучшем случае делает полностью "по аналогии"... а в худшем - вставляет все, что увидел в чужих запросах... |
|||
515
sapphire
06.03.13
✎
15:16
|
(512)
Там этого вполне достаточно: | , $КаналыСбыта.КатегорияЦены -- далее следовал alias |
|||
516
bananan
06.03.13
✎
15:24
|
(512-515) Спасибо... в подзапросе убрал типизацию и заработало...
|
|||
517
bananan
06.03.13
✎
15:53
|
пардон еще вопрос.. Есть код из оригинального 1С:
кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; Если кат.Выбран()=1 Тогда ... кат.Выбран()=1 это как в SQL будет?.. |
|||
518
Mikeware
06.03.13
✎
15:54
|
не нулл и не пустой ид
|
|||
519
Mikeware
06.03.13
✎
15:56
|
слушай, а может ты филолог?
или, прости господи, экономизд - типа протона? |
|||
520
bananan
06.03.13
✎
15:58
|
КатегорияЦены NOT NULL AND КатегорияЦены.id=NULL так что ли...
(519) Я учился 5 лет в хореографическом училище по классу классический танец :) |
|||
521
Mikeware
06.03.13
✎
16:01
|
(520)Во!
Маленький Яша приходит домой со школы. Папа берет дневник, открывает и читает: "агифметика - два! Чтение - два! геог'гафия - два! пение - ПЯТЬ!" кидает дневник и кричит: "Сара, эта сволочь еще и поет!!!!" © |
|||
522
bananan
06.03.13
✎
16:06
|
(521) а как по поводу (517)?
|
|||
523
sapphire
06.03.13
✎
16:07
|
(517) ... А зачем?
|
|||
524
bananan
06.03.13
✎
16:21
|
(523) А нада
|
|||
525
sapphire
06.03.13
✎
16:31
|
(524) Не верю! (с)
|
|||
526
bananan
06.03.13
✎
16:32
|
(525) Поверь... Что уж делать если надо?
|
|||
527
sapphire
06.03.13
✎
16:33
|
(526) Тебе запросом надо сделать или где?
|
|||
528
bananan
06.03.13
✎
16:35
|
(527) Конечно запросом (1с++)
|
|||
529
bananan
06.03.13
✎
16:43
|
Добавил проверку на нул:
| WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) AND КатегорияЦены <> NULL выдает: ]Invalid column name 'КатегорияЦены'. Но альяс КатегорияЦены цены у меня объчвлен вуть выше... |
|||
530
sapphire
06.03.13
✎
16:45
|
(528) (529) Идеологически неверно
|
|||
531
sapphire
06.03.13
✎
16:46
|
(529) Что нужно найти?
Где категория цены отсутствует вовсе? |
|||
532
bananan
06.03.13
✎
16:49
|
(531) в "родном" коде :
кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; Если кат.Выбран()=1 Тогда когда выполняется если то минцена - однозначение иначе - совсем другое значение... опять же "оригинальный" код: //Если кат.Выбран()=1 Тогда // минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); |
|||
533
bananan
06.03.13
✎
16:52
|
+(532) все это делается чтобы найти ошибку в цене товара """+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат"
|
|||
534
sapphire
06.03.13
✎
16:57
|
(532) ЕЩЕ РАЗ,
ЧТО НУЖНО НАЙТИ? |
|||
535
bananan
06.03.13
✎
17:06
|
(534) документы (расходнаянакладная и расходнаянакладнаяН) и строки в которых ошибочная цена указана
|
|||
536
sapphire
06.03.13
✎
17:19
|
(535) как определяется цена?
у тебя цен от 0 до 10 |
|||
537
bananan
06.03.13
✎
17:20
|
Опять полный текст запроса:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.Канал as [Каналы $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'ПРОБА!!! на 2-й запрос' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , КаналыСбыта.id as Канал | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $КаналыСбыта.КатегорияЦены as КатегорияЦены | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Справочник.ТМЦ as ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка as Доставка (nolock) on Доставка.id = isnull($ДокШН.Доставка, $ДокШ.Доставка) | left join $Справочник.КаналыСбыта as КаналыСбыта (nolock) on $Доставка.КаналСбытаТТ = КаналыСбыта.id | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) AND КатегорияЦены is NULL |) Данные |"; выдает: Invalid column name 'КатегорияЦены Почему? |
|||
538
bananan
06.03.13
✎
17:22
|
показываю оригинальный код (полностью) по поводу ошибочных цен:
Функция глПроверкаЦеныПоКатегории(Конт) Экспорт Перем кат,минцена,докцена; Если (Константа.ГруппаИсключенияПроверкиЦен.Выбран()=1)и(Конт.ТМЦ.ПринадлежитГруппе(Константа.ГруппаИсключенияПроверкиЦен)=1) Тогда Если НазваниеНабораПрав()="Администратор" Тогда Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" исключен из проверки на минимальную цену"); КонецЕсли; КонецЕсли; //Если ТМЦ Справочник НазначитьВид(ТМЦ) - ошибка в периодических прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2); докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2); Если докцена<прихцена Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет цену ниже приходной"); КонецЕсли; кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; Если кат.Выбран()=1 Тогда минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда минцена=минцена.Получить(Конт.ДатаДок); КонецЕсли; минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); Если минцена=0 Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат); КонецЕсли; минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); Если докцена<минцена Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет недопустимо низкую цену="+докцена+" минимальная="+минцена); КонецЕсли; КонецЕсли; КонецФункции // глПроверкаЦеныПоКатегории Запрос по поводу " имеет цену ниже приходной" уже готов, теперь надо еще два запроса написать... Данная ветка по поводу ошибки "+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат" |
|||
539
sapphire
06.03.13
✎
17:22
|
(537) Потому что в том месте где наложено условие "КатегорияЦены is NULL" КатегорияЦены - ЭТО ТАБЛИЦА,
а IS NULL применяется К ПОЛЯМ ТАБЛИЦЫ. ТЫ РАЗНИЦУ ПОНИМАЕШЬ? |
|||
540
sapphire
06.03.13
✎
17:26
|
(538) Я тебе уже писал, что тебе не хватит ума написать прямой запрос, т.к. ты не сможешь самостоятельно реализовать:
минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если ты, конечно, опять же, понимаешь, даже если теоретически тебе понятен этот код, то безралично совершенно, у тебя ничего не выйдет. Банально, SQL не знает идентификатор перечисления, т.к. он хранится не в БД, а в файле конфигурации. |
|||
541
bananan
06.03.13
✎
17:26
|
(539) Разницу я понимаю, а где надо поставить уловие КатегорияЦены is NULL?
Хотя, раз это таблица то и условие не поставишь... Я вот только что подумал а может если мы ищем ошибку "не установлена цена категории", то и сам запрос можно написать попроще проверяем если ценакатегории null ? |
|||
542
sapphire
06.03.13
✎
17:27
|
+(540) Ты просто не сообразишь КАК передать на сервер эти значения.
|
|||
543
bananan
06.03.13
✎
17:27
|
(540) А разве
Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); это не цена жданного ТМЦ? |
|||
544
sapphire
06.03.13
✎
17:28
|
(541) Вот. О том тебе и гвоорили, что под каждую задачу свой запрос лучше делать.
|
|||
545
bananan
06.03.13
✎
17:28
|
(542) Надеюсь на помощь форума...
|
|||
546
bananan
06.03.13
✎
17:29
|
(544) но опять же... надо проверять ценукатегоирии на нул...
Сейчас попробую |
|||
547
sapphire
06.03.13
✎
17:31
|
(543) У тебя у ТМЦ порядка 10 полей вида
Цена Цена0 Цена1 Цена2 Цена3 Цена4 Цена5 Цена6 Цена8 Цена9 Ты получаешь значение поля по имени. Т.е. ИМЯ поля состоит из ЦЕНА+{идентификатор категории}... Бишь, наверное, для каналов сбыта они разные.... |
|||
548
sapphire
06.03.13
✎
17:32
|
(546) А если подумать, то не нужно
|
|||
549
Mikeware
06.03.13
✎
17:32
|
клиника...
|
|||
550
bananan
06.03.13
✎
17:33
|
(548) Что не нужно?
|
|||
551
Cthulhu
06.03.13
✎
17:35
|
повторюсь: ну не твоё это, смирись.
|
|||
552
bananan
06.03.13
✎
17:37
|
(547) В Справочник.ТМЦ поля с именем цена:
Цена1, Цена2, Цена3, ЦенаК1, ЦенаК2, Цена4, Цена5, Цена6, Цена7, Цена8, Цена9 - периодические и Цена10, Цена11, Цена12, Цена13, Цена14, Цена15, Цена16 - непериодические (число 12.5)... |
|||
553
bananan
06.03.13
✎
17:38
|
+(552) Если я не ошибаюсь, то судя по "оригинальному" коду нас интересуют поля Цена1.. Цена9?
|
|||
554
bananan
06.03.13
✎
18:08
|
+
Посмотрел я несколько элементов справочника ТМЦ так вот несколько примеров: Драже "Арахіс в какао порошку" 2,5 кг есть Цена5, Цена6=0 и еть цена7 Солоні горішки 2кг. есть тоже самое Жовтий полосатик 40*40шт (Йо-Хо-Хо) есть цена7, цена 5 и цена 6 = 0 (те- неустановлена)? |
|||
555
bananan
06.03.13
✎
19:23
|
в спроавочнике ТМЦ есть поле Цена5...
в тексте запроса написал: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена5 as Цена5 |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , ТМЦ.Цена5 as Цена5 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) //| Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; выдает ошибку: Invalid column name 'Цена5'. Почему? |
|||
556
Cthulhu
06.03.13
✎
19:24
|
(555): потому, что (551)
|
|||
557
viktor_vv
06.03.13
✎
19:29
|
(555) Теперь вместо Цена5 напиши Цена15 , после этого перечитай (552) и попробуй сделать простой логический вывод в качестве ответа на твой же вопрос.
|
|||
558
bananan
06.03.13
✎
19:38
|
(556) Не тебе судить..
|
|||
559
bananan
06.03.13
✎
19:39
|
(557) Сначала я подумал, может потому что цена5 - периодический...
но написал Цена15 выдает: Invalid column name 'Цена15'. |
|||
560
bananan
06.03.13
✎
19:46
|
+(559) Хотя... когда в запросе написал:
| , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 заработало... |
|||
561
bananan
06.03.13
✎
19:58
|
+(560) |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2)
| AND Цена5=0 запрос работает, хочу проверить на нул... что-то я неправильно пишу... |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) | AND Цена5=0 AND isnull(Цена5, 1) пятая выдает ошибку: Incorrect syntax near 'пятая'. понимаю что неправильно проверяю на нул... код |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) | AND Цена5=0 OR Цена5=null работает... Цена5=null это правильно?? |
|||
562
Cthulhu
06.03.13
✎
20:25
|
(558): не тебе указывать мне на уместность построения суждений.
|
|||
563
bananan
07.03.13
✎
11:33
|
(...) Так что по поводу нул?
НАпример в запросе написал так: isnull(Цена5, 0) вылает ошибку: Incorrect syntax near ')'. т.е. непонимает он если Цена5 неопределена то установить ее в 0. А как правильно это написать? |
|||
564
bananan
07.03.13
✎
11:35
|
+(563) Хотя на http://msdn.microsoft.com/ru-ru/library/ms184325.aspx такой прмер:
SELECT AVG(ISNULL(Weight, 50)) FROM Production.Product; GO Тогда может Цена5 - это не число? Ага Цена5 - периодический реквизит, им как его установить в 0? |
|||
565
Mikeware
07.03.13
✎
11:35
|
(563) прочитать, наконец, книжку по SQL, и написать правильно...
|
|||
566
bananan
07.03.13
✎
11:38
|
(565) Пардон, а что в isnull(Цена5, 0) НЕПРАВИЛЬНО?
|
|||
567
bananan
07.03.13
✎
11:38
|
+(566) Насколько я понимаю он ругается из-за того что Цена5 - периодическийреквизит...
|
|||
568
bananan
07.03.13
✎
11:47
|
Mikeware и все-все, доброе утро!
Подскажите плиз, по поводу 563 |
|||
569
Mikeware
07.03.13
✎
11:50
|
(568) Еврей приходит в синагогу и начинает молиться богу:
- Господи, ну помоги мне выиграть в лотерею. Вон, Моня телевизор выиграл, Розочка стиральную машину, а ребе Шендерович вообще "Волгу". А я ничего никогда не выигрывал. Ну, господи, сделай так шоб я хоть шо-нибудь выиграл! На небесах все слушают мольбы бедного еврея, всем его дико жалко, все смотрят на бога, видят что тот ничего не предпринемает. Моисею стало жалко бедного еврея больше всех, он и говорит богу: - Господи, ну ты шо, не видишь как он просит? Тебе шо, трудно сделать так, шоб он выиграл в лотерею? Это ж пара пустяков! Бог разводит руками и говорит: - Та шо, я сам, думаешь, не хочу ему помочь? Но пусть же он хотя бы для начала лотерейный билет купит! © |
|||
570
bananan
07.03.13
✎
11:55
|
(569) Анекдот - старый как моя борода, а ты только анекдоты знаешь?
|
|||
571
Mikeware
07.03.13
✎
11:59
|
Тебе отвечено уже дня три назад.
если ты не пониманшь - это твои проблемы. помочь - можно, но делать за тебя никто не будет... |
|||
572
bananan
07.03.13
✎
12:08
|
(571) НЕ знаешь - сопи в две дырочки и не лезь со своим бородатым Гумором...
|
|||
573
Mikeware
07.03.13
✎
12:20
|
(572) Решил "на слабо" взять? авоткуй® тебе! :-)
|
|||
574
bananan
07.03.13
✎
12:22
|
(573) не флуди и пусть тебя за слабо какая-то берет :)
|
|||
575
Wobland
07.03.13
✎
12:29
|
(568) подсказываю. в утверждении "Incorrect syntax near ')'" какая именно скобка имеется в виду?
|
|||
576
Aswed
07.03.13
✎
12:30
|
Просто усыкаюсь)))))))))))))
|
|||
577
Mikeware
07.03.13
✎
12:35
|
(575) как думаешь, отправить чувака в баню за грубость, тупость и для чтения документации? часика на 4? :-)
|
|||
578
Wobland
07.03.13
✎
12:39
|
(577) грубости не видел, а про тупость правилов нет ;)
|
|||
579
bananan
07.03.13
✎
12:43
|
(575) Честно - не знаю и ума не приложу что в
isnull(Цена5, 0) ошибка... |
|||
580
bananan
07.03.13
✎
12:46
|
(575) Так какая именно скобка имеется в виду?
|
|||
581
viktor_vv
07.03.13
✎
12:48
|
(579) Дам наводку Цена5 это алиас поля из селекта, и сомневаюсь, что ПоследнееЗначение возвращает NULL даже если нет ни одного значения.
|
|||
582
bananan
07.03.13
✎
12:53
|
(581) То что Цнеа5 алиас - знаю, а как его иначе записать?
и, судя по твоим сомнениям Цена5 скорее всего неможет иметь Null... А в чем ошибка в isnull(Цена5, 0)? В том что Цена5 - это алиас? |
|||
583
viktor_vv
07.03.13
✎
13:04
|
(581)+ По второго неправ, возвращает NULL.
|
|||
584
viktor_vv
07.03.13
✎
13:05
|
(583)+ По поводу второго
|
|||
585
viktor_vv
07.03.13
✎
13:09
|
(581) Да и по поводу первого неправ, я че-то подумал ты это во внутреннем запросе пишешь.
Тогда (575) . |
|||
586
bananan
07.03.13
✎
13:09
|
(583-584) Ничего не понял... ТАк как правильно?
|
|||
587
Wobland
07.03.13
✎
13:15
|
(579) я б подумал, что не указано имя таблицы, но вроде так можно. ошибок синтаксических больше нет
|
|||
588
Mikeware
07.03.13
✎
13:15
|
:-))
|
|||
589
bananan
07.03.13
✎
13:18
|
(587) SQLтак не думает:
Incorrect syntax near ')'. Кто знает в чем здесь ошибка?? |
|||
590
Wobland
07.03.13
✎
13:19
|
(589) в синтаксисе возле скобки
|
|||
591
viktor_vv
07.03.13
✎
13:19
|
(587) Я бы не стал так утверждать, так как по (563) и (561) никак не понять куда он его написал и как :).
|
|||
592
Дядя Вова
07.03.13
✎
13:21
|
Да скока ж можно та?!
|
|||
593
bananan
07.03.13
✎
13:22
|
(590-591) А КАК написать БЕЗ Ошибки
isnull(Цена5, 0)???? |
|||
594
bananan
07.03.13
✎
13:23
|
(592) Скажи как правильно и я скажу скока мона :)
|
|||
595
Wobland
07.03.13
✎
13:23
|
(591) ну дык он ж спращивает про один маленький естьNULL..
|
|||
596
pav007
07.03.13
✎
13:24
|
isnull(Данные.Цена5, 0)
|
|||
597
Wobland
07.03.13
✎
13:24
|
(593) да без ошибки написано, успокойся
|
|||
598
Дядя Вова
07.03.13
✎
13:26
|
(594) В свойствах ячейки расшифровку# указать, ТЗ.Док# - было уже?
Всё не читал. |
|||
599
Wobland
07.03.13
✎
13:30
|
(598) >Всё не читал
а зря ;) |
|||
601
Mikeware
07.03.13
✎
13:32
|
+(599) журнал "крокодил" и рядом не валялся...
|
|||
602
Wobland
07.03.13
✎
13:34
|
ветка в юморе. с пятницей, коллеги!
|
|||
603
viktor_vv
07.03.13
✎
13:40
|
(594) Ну покажи уже кусок запроса с этим самым Isnull().
|
|||
604
bananan
07.03.13
✎
13:41
|
(596) Написал: isnull(Данные.Цена5, 0) ошибка та же
(597) Да как же без ошибки если анализатор выдает: Incorrect syntax near ')'??? |
|||
605
bananan
07.03.13
✎
13:42
|
(603) Показываю весь :
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена5 as Цена5 |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) //| Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) | AND isnull(Данные.Цена5, 0) |"; |
|||
606
Дядя Вова
07.03.13
✎
13:43
|
ICASE( ISNULL(Данные.Цена5),0,Данные.Цена5) as Коалиция
|
|||
607
Wobland
07.03.13
✎
13:44
|
(605) AND что? в крайней строке
|
|||
608
Wobland
07.03.13
✎
13:44
|
+(607) где там логическое условие? эх ты, дундук
|
|||
609
viktor_vv
07.03.13
✎
13:47
|
(608) Это метода научного тыка называется, хотя слово научного тут лишнее, пожалуй.
|
|||
610
Wobland
07.03.13
✎
13:47
|
(609) эта метода тыка называется методом стохастического программирования
|
|||
611
bananan
07.03.13
✎
13:49
|
(607-610) AND т.е. когда документа имеют дату которая входит в период и (И) Цена5 не есть NULL
|
|||
612
bananan
07.03.13
✎
13:49
|
+(611) А как правильно?
|
|||
613
Wobland
07.03.13
✎
13:50
|
(611) мне пофих, я в запрос не вникаю. копипасти дальше сам
|
|||
614
Wobland
07.03.13
✎
13:52
|
"не есть NULL" как по-sqlевски будет?
|
|||
615
viktor_vv
07.03.13
✎
13:53
|
Я так и знал, что без вопроса не обойдется.
(611) Про isnull() прочитал ? Что возвращает isnull() ? В данном случае уж никак не булево. |
|||
616
bananan
07.03.13
✎
13:53
|
(613) Раз пофиг то чего ты здест делаешь? Копипасть себе сам...
|
|||
617
Wobland
07.03.13
✎
13:54
|
(616) здесь ты спрашиваешь. а я развлекаюсь
|
|||
618
bananan
07.03.13
✎
13:55
|
(615)Заменяет значение NULL указанным замещающим значением.
Возвращает тот же тип, что и у аргумента check_expression.Если литерал NULL указывается в качестве check_expression, возвращает тип данных значения replacement_value.Если литерал NULL указывается в качестве check_expression и не указано никакого значения replacement_value, возвращает int. И что с того??? |
|||
619
ЧеловекДуши
07.03.13
✎
13:55
|
Народ, автор уже добился результата от SQL, хоть и неправильного?
Или так и топчется на одном месте, не запустив запрос? |
|||
620
bananan
07.03.13
✎
13:55
|
(617) Развлекайся без своих язвительных высказываний, - не жалко...
|
|||
621
Дядя Вова
07.03.13
✎
13:56
|
А скопка где закрывающая??
|
|||
622
ЧеловекДуши
07.03.13
✎
13:56
|
(616) Пятница :)
|
|||
623
bananan
07.03.13
✎
13:56
|
(619) Если не проверять Цена5 - результат есть рабочий запрос... Что тебе еще интерестно?
|
|||
624
ЧеловекДуши
07.03.13
✎
13:57
|
(604) А все... он так и на одном месте топчется :)
|
|||
625
viktor_vv
07.03.13
✎
13:57
|
(618) Ну и теперь, в твоем случае, как ты думаешь, вот это корректно будет работать
|WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) | AND 0 |
|||
626
bananan
07.03.13
✎
13:57
|
(621) isnull(Данные.Цена5, 0)
после 0 если тебе там не видно... |
|||
627
ЧеловекДуши
07.03.13
✎
13:58
|
(623) Ты походу взялся за запрос, который не в состоянии осилить :)
Начни с такого: Select 'Hello World!!!' :) |
|||
628
Дядя Вова
07.03.13
✎
13:58
|
(Данные.Цена_Прих * (1+Данные.Ставка),2)
| AND isnull(Данные.Цена5, 0)<тут условие ЧТО???>) <-скопка закрывающая |
|||
629
Дядя Вова
07.03.13
✎
13:58
|
а не, скопку ненадо.
|
|||
630
bananan
07.03.13
✎
13:59
|
(625) Блин, я проверку немного не там поставил.. :(
|
|||
631
Wobland
07.03.13
✎
13:59
|
(628) да не надо там скобки. ему надо громко и чётко сказать, что естьNULL - это не условие, а значение. правда, до него не дойдёт...
|
|||
632
ЧеловекДуши
07.03.13
✎
13:59
|
(623) Спасибо... у тебя прогресс :)
|
|||
633
viktor_vv
07.03.13
✎
13:59
|
(628) Ну ты взял и все испортил.
|
|||
634
viktor_vv
07.03.13
✎
14:00
|
(630) Ну при чем здесь там, не там.
|
|||
635
bananan
07.03.13
✎
14:01
|
(630) Как я и думал... поставил проверку здесь:
| WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) AND isnull(Данные.Цена5, 0) возврашает: Incorrect syntax near ')'. |
|||
636
Wobland
07.03.13
✎
14:01
|
(630) я придумал! естьNULL() - это не проверка
|
|||
637
bananan
07.03.13
✎
14:02
|
Тол-ли у меня нет глючит...
может и повторюсь, когда я проверку поставил в подзапрос: | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) AND isnull(Данные.Цена5, 0) Ошибка осталась: Incorrect syntax near ')'. Если кто знает в чем здесь ошибка подскажите как ее исправить.. |
|||
638
viktor_vv
07.03.13
✎
14:02
|
(635) Это писец, я уже не знаю, как еще намекать.
|
|||
639
Mikeware
07.03.13
✎
14:03
|
(627) ощибка возле символа ")"
|
|||
640
viktor_vv
07.03.13
✎
14:03
|
(637) Тебе ж уже в (628) практически прямым текстом написали, про скобку только не читай.
|
|||
641
ЧеловекДуши
07.03.13
✎
14:06
|
(635) Читаем... тут http://msdn.microsoft.com/ru-ru/library/ms184325.aspx
Типы возвращаемых данных Возвращает тот же тип, что и у аргумента check_expression.Если литерал NULL указывается в качестве check_expression, возвращает тип данных значения replacement_value.Если литерал NULL указывается в качестве check_expression и не указано никакого значения replacement_value, возвращает int. Если быть кратким, то вернет то значение, которое было во втором параметре этой функции. А следовательно должно содержать тип "Булеан" или иметь " = < Подобный тип результат>" |
|||
642
Wobland
07.03.13
✎
14:07
|
(637) ты знаешь значение слова "функция"? в программном смысле
|
|||
643
ЧеловекДуши
07.03.13
✎
14:08
|
+ (637) <тут условие ЧТО???> - Думать над этой фразой... долго и хорошо :)
|
|||
644
bananan
07.03.13
✎
14:08
|
(631) А как проверить на NULL?
isnull заменяет первый аргумент вторым, и возвращает значение... А проверка на пустоту,когда я написал так: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена5 as Цена5 |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) //| Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=NULL |"; Запрос не возвращает ниодной строки... |
|||
645
Wobland
07.03.13
✎
14:08
|
(644) есть NULL
|
|||
646
ЧеловекДуши
07.03.13
✎
14:08
|
(644) <Твоя значение> Is Null
|
|||
647
ЧеловекДуши
07.03.13
✎
14:10
|
+(644) Данные.Цена5=NULL
замени на Данные.Цена5 Is Null Или если обратное Данные.Цена5 Is Not Null |
|||
648
bananan
07.03.13
✎
14:12
|
Уважаемые акулы 1С, такой вопрос когда Цена5 (числовое поле) не установлена и когда Цена5 установлена и имеет значение 0 - это одно и то же?
|
|||
649
Wobland
07.03.13
✎
14:13
|
(648) нет
|
|||
650
bananan
07.03.13
✎
14:13
|
+(648) Это у меня с нетом что-то или кто-то спионерил (633-647)?
|
|||
651
viktor_vv
07.03.13
✎
14:14
|
(648) Тебе с точки зрения чего рассказывать, скуля ?
|
|||
652
Wobland
07.03.13
✎
14:14
|
+(649) я себе вполне могу представить цену, установленную в 0. ноль - это число такое.
(650) у тебя |
|||
653
bananan
07.03.13
✎
14:16
|
(652) Я это тоже вполне могу представить, но если цена НЕ УСТАНОВЛЕНА визуально (в редакторе ТМЦ) в ячейке для цены будет же ноль или как?
|
|||
654
viktor_vv
07.03.13
✎
14:16
|
С точки зрения скуля и реализации ПоследнегоЗначения это разные типы данных, null и число.
|
|||
655
viktor_vv
07.03.13
✎
14:17
|
(653) А с точки зрения 1С и реализации получения значения периодического реквизита получается одно и тоже.
|
|||
656
Wobland
07.03.13
✎
14:17
|
(653) установлена визуально - это сильно. многие бухши считают, что 0 - это отсутствие. а на самом деле, это просто так выглядит ;)
|
|||
657
Mikeware
07.03.13
✎
14:18
|
(652) "математичка вконец охамела. сказала, что я ничего не знаю, и поставила в дневник какую-то цифру"©
|
|||
658
Wobland
07.03.13
✎
14:18
|
(657) повторяешься ;)
|
|||
659
Mikeware
07.03.13
✎
14:19
|
(658) не в этой теме...
|
|||
660
Cthulhu
07.03.13
✎
14:20
|
/хохоча скрутил дулю и плюнул в монитор/
|
|||
661
Wobland
07.03.13
✎
14:28
|
неужели дошло?
|
|||
662
Mikeware
07.03.13
✎
14:30
|
(660) а монитор-то в чем виноват?
|
|||
663
bananan
07.03.13
✎
14:34
|
Хорошо, смотрите "оригинальный" код (этот код написан давным-давно) такой:
минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); Если минцена=0 Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат); КонецЕсли; Т.е. в, конце концов Сообщает о том что НЕ Установлена цена категории, а в редакторе ТМЦ цена категории если НЕ УСталновлена то в поле для ввода 0 Тогда может все это заменить на проверку ЦенаКатегории=0? |
|||
664
Wobland
07.03.13
✎
14:37
|
что такое редактор ТМЦ? форма элемента в режиме предприятия?
|
|||
665
bananan
07.03.13
✎
14:39
|
(664) Да
|
|||
666
Wobland
07.03.13
✎
14:40
|
а у меня крайний падаван сразу понял, что данные - это одно, а то, что на форме - в общем случае другое...
|
|||
667
Privalov
07.03.13
✎
14:41
|
Капец )))
|
|||
668
bananan
07.03.13
✎
14:49
|
(666) Я не падаван но тоже это понимаю, так как на счет (663
)? |
|||
669
ЧеловекДуши
07.03.13
✎
14:58
|
(668) Ldjhybr&
|
|||
670
Mikeware
07.03.13
✎
15:04
|
(669) не обижай...
|
|||
671
bananan
07.03.13
✎
15:15
|
Ясно все с вами. ОГРОМНОЕ спасибо. До встречи...
|
|||
672
viktor_vv
07.03.13
✎
15:23
|
(663) Это значит надо вернуться к проверке через isnull(), немного напрячься и таки написать эту проверку правильно.
|
|||
673
bananan
07.03.13
✎
15:33
|
(672) Нарпягся, но неПОНИМАЮ как будет правильно...
Если проверять Цена5=0 - все работает и причем возвращает документы в кторых есть товар с Цено5 которая равна 0, т.е. НЕТУ цены5 для данного товара - а это и есть Не установлена цена категории... Но, если подскажешь как правильно написать с isnull - буду благодарен |
|||
674
viktor_vv
07.03.13
✎
15:40
|
(673) Точно также как ты пишешь Цена5=0 .
|
|||
675
bananan
07.03.13
✎
15:52
|
isnull принимает два аргумента, в моем случае 1-й Цена5, 2-й - ноль. И как это написать точно также как Цена5=0?
|
|||
676
viktor_vv
07.03.13
✎
15:59
|
Все сдаюсь
|WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) | AND isnull(Данные.Цена5, 0)=0 |
|||
677
bananan
07.03.13
✎
16:10
|
(676) Блин, а ларчек просто открывался... Большое спасибо!!!
Не оправдываюсь, но прошу снисхождения последний год у меня сложный период в жизни, может потому и туплю... |
|||
678
bananan
07.03.13
✎
16:12
|
+(677) Еще вопрос а можно в SQL переменную ЦенаН, создать на лету,, т.е. Цена1, ... Цена9?
Моэно вроде, но не помню как это сделать... |
|||
679
viktor_vv
07.03.13
✎
16:20
|
(678) Листай по страницам, тоько уже не помню в какой из твоих тем, ищи
Case when |
|||
680
bananan
07.03.13
✎
16:20
|
+
Еще, (опять туплю) написал так: ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.ТипЦен [ТипЦен $Перечисление.ТипыЦен] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокС.ТипЦен, $ДокН.ТипЦен) ТипЦен | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) //| Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 |"; не пропускает, выдает: Meta name parser error: поле таблицы не найдено "$ДокС.ТипЦен" Почему? ТипЦен поле типа Перечисление.ТипыЦен нахоится в шапке документа Расходная накладная, как правильно к нему обратиться из SQL? |
|||
681
bananan
07.03.13
✎
16:21
|
(679) Спасибо, кажется вспомнил увидев Case when (может искать не надо будет в темах)
|
|||
682
bananan
07.03.13
✎
16:24
|
+(681) а $ДокС.ТипЦен надо чтобы на лету формировать Цена1, Цена2 и т.д, ЦенаТипЦен
|
|||
683
bananan
07.03.13
✎
16:34
|
+-(680) Опять туплю неашел где ДокС - это табличная часть документа...
|
|||
684
Mikeware
07.03.13
✎
16:38
|
(683) алиасы для того и предназначены - именовать так, чтоб последний дурак не запутался, где у него табличная часть, а где шапка...
|
|||
685
bananan
07.03.13
✎
16:40
|
(684) Спасибо, учту и буду именовать так чтобы сразу было видно что это к табличной части относиться, а это к шапке документа (мне это даже не приходило в голову)...
|
|||
686
ЧеловекДуши
07.03.13
✎
17:09
|
(683) Да сделай наконец запрос по одному документу, а после добавь второй, коль не можешь уложить оба варианта в один раз :)
|
|||
687
Mikeware
07.03.13
✎
17:10
|
(686) Да какая разница-то?
отлаживать он все равно не умеет... |
|||
688
bananan
07.03.13
✎
17:18
|
(686) НЕт, я таки сделаю сразу по двум документам
(687) А где можно отладить Прямой запрос? |
|||
689
Mikeware
07.03.13
✎
17:23
|
(688) 1cQA. Ну, или написать свою консоль, там 10 строк кода...
|
|||
690
bananan
07.03.13
✎
17:30
|
(689) Написать свою консоль - конечно не напишу...
Вопрос вот кусок запроса: | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналыСбыта as КаналСбыта ругается: Meta name parser error: неизвестное метаимя или алиас "$Доставка" Что опять я не разрулил? |
|||
691
bananan
07.03.13
✎
18:11
|
+(690) А если безщ $. Доставка.КаналыСбыта as КаналСбыта
тогда ругается так: The column prefix 'Доставка' does not match with a table name or al |
|||
692
Mikeware
07.03.13
✎
18:12
|
и это закономерно
|
|||
693
Mikeware
07.03.13
✎
18:13
|
"адресованная другу, ходит песенка по кругу"©
|
|||
694
bananan
07.03.13
✎
18:17
|
(692 - 693) Почему - не понимаю ведб в этом же запросе есть алиас | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка
|
|||
695
bananan
07.03.13
✎
18:19
|
Люди добрые! Мне нужно достучаться до поля КаналыСбыта (Это справочник КаналСбыта) через справочник Доставка, Доставка альиас уже есть...
Так что там еще надо??? Подскажите!!! |
|||
696
Mikeware
07.03.13
✎
18:30
|
(695) см. (450)
|
|||
697
bananan
07.03.13
✎
18:37
|
+(695) понял почему...
написал: | left join $Справочник.Доставка Доставка (nolock) Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) Ругается: Incorrect syntax near 'Доставка' Теперь что неправильно?? |
|||
698
bananan
07.03.13
✎
18:39
|
(696) А что ты скажешь по поводу (697)?
|
|||
699
Mikeware
07.03.13
✎
18:41
|
Скажу, что справедливо ругается.
действительно, неправильный ситнтаксис |
|||
700
bananan
07.03.13
✎
18:43
|
(699) Ответ полезный на все 100%, а какой синтаксис здесь будет правильный?
|
|||
701
Mikeware
07.03.13
✎
18:46
|
(700) открой любой учебник и посмотри.
Или переведи с английского на любой язык, который ты понимаешь, синтаксически проавильно построенное выражение из учебника. и сравни со своим |
|||
702
bananan
07.03.13
✎
18:52
|
(701) Я взял работающий иннер:
| left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) И сделал джоин для Доставка аналогично Скажи как правимльно, пожалуйста... |
|||
703
Mikeware
07.03.13
✎
18:53
|
(702) ты можешь сравнить эти две строки?
|
|||
704
bananan
07.03.13
✎
18:55
|
(703) Да
|
|||
705
bananan
07.03.13
✎
19:00
|
+(704)
| left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) я пропустил on |
|||
706
bananan
07.03.13
✎
19:03
|
Спасибо, вроде снялся с ручника
|
|||
707
Mikeware
07.03.13
✎
19:04
|
(705) уже хорошо
|
|||
708
bananan
07.03.13
✎
19:09
|
+(706) Снялся но не совсем...
Значит так: Доставка в запросе уже выбюирается, Доставка.КаналСбытаТТ - тоже есть теперь надо выбрать из Справочник.КаналСбытаТТ поле КатегорияЦены (тип Перечисление).... Написал так: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.КаналСбыта as [КаналТТ $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные Ругается: Invalid column name 'КатегорияЦены'. Теперь что нетак? |
|||
709
bananan
07.03.13
✎
19:17
|
+(708) Нашел чего теправильно, но все-равно ошибку выдает
теперь запрос такой: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.КаналСбыта as [КаналТТ $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналТТ.КатегорияЦены | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 Ошибка: Meta name parser error: неизвестное метаимя или алиас "$КаналТТ" Вот теперь я так с ходу - точно непонимаю почему.... |
|||
710
Mikeware
07.03.13
✎
19:28
|
Потому, что что ему низвестно имя или алиас..
|
|||
711
bananan
07.03.13
✎
19:29
|
Уже так:
| , $Доставка.КаналСбытаТТ as КаналСбыта | , КаналСбыта.КатегорияЦены | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные Ругается: The column prefix 'КаналСбыта' does not match with a table name or Люди добрые, что я неправилно сделал... Нужен джоин для КаналСбыта, если да то как его написать? |
|||
712
viktor_vv
07.03.13
✎
19:30
|
(709) Ну ты только что делал тоже самое с Доставка, неужели не закрепилось в памяти, это ж сколько ты должен одно и тоже сделать, чтобы оно отложилось в долговременной памяти.
Хотя это просто ты так и не понял сам принцип. |
|||
713
bananan
07.03.13
✎
19:32
|
(712) Да понял я принцып но Достава поле документа, а Канал это поле Доставки..
|
|||
714
bananan
07.03.13
✎
19:38
|
+(713) т.е.
| left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = чему он этот иде должен быть равен? |
|||
715
bananan
07.03.13
✎
19:47
|
+(714) попробывал приджоинить так:
| left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = Доставка.КаналСбытаТТ ругается: Invalid column name 'КатегорияЦены'. Подскажите, пожалуйста!!! |
|||
716
viktor_vv
07.03.13
✎
20:09
|
(715) Ты опять наступаешь на грабли $, и в select че написал ?
|
|||
717
sapphire
08.03.13
✎
13:39
|
А ведь канал сбыта он уже получал. Idiotten оно...
|
|||
718
Cthulhu
08.03.13
✎
14:59
|
саундтрек поста "камисса негра".
не по смыслу - по настрою. от всего вот этого. ммм?.. |
|||
719
Wobland
11.03.13
✎
09:58
|
пока солнце над украиной ещё невысоко, похвастаюсь своим запросом. кидание какашками (аргументированное) приветствуется ;)
исходная задача (упрощённо): поиметь ТЗ вида: Дата | Касса | СуммаПродаж | СуммаВозвратов | СебестоимостьПроданного | СебестоимотьВозвращённого начал с простого
и закончил
|
|||
720
sapphire
11.03.13
✎
10:55
|
(719) Работает? Шустро? Доволен?
ИМХО, маловато NOLOCK-ов, но коли DBF то и не актуально вовсе :) |
|||
721
Wobland
11.03.13
✎
11:03
|
(720) работает. шустроту сложно оценить, т.к. смутно представляю общее количество данных (а считать даже прикидочно лениво). устраивает, доволен ;)
нолоцк - новое слово для меня, как-то не употреблял ;) "коли DBF", признаться, меня смутило. на дбфной версии вообще 1С++ работает? |
|||
722
viktor_vv
11.03.13
✎
11:05
|
(720) Судя по этому "_1SJourn AS ЖурВ
" - это суль, так что nolock лучше повтыкать. |
|||
723
viktor_vv
11.03.13
✎
11:07
|
(722)+ Я по началу тоже как-то не особо употреблял, пока в один прекрасный день при нагрузке начали нещадно взаимоблокировки лезть. Потом целый день по всем текстам искал запросы и втыкал.
|
|||
724
viktor_vv
11.03.13
✎
11:09
|
(721) Работает, только через драйвер для ДБФ подключаешь, ну и некторые тонкости из-за различия синтаксиса и структуры таблиц есть.
|
|||
725
sapphire
11.03.13
✎
11:11
|
(721) Конечно, на dbf работает тож только дрова лучше от VFP использоват
|
|||
726
sapphire
11.03.13
✎
11:11
|
(721) Нолоцк обязатьельно на рабочъих бъазахъ
|
|||
727
Mikeware
11.03.13
✎
11:18
|
(726) "особые приметы - говорит и пишет с акцентом"©
ты специально с ашипками пишешь, чтоб бананана легче понимать было? |
|||
728
Wobland
11.03.13
✎
11:20
|
спасибо, навтыкал нолоцков
|
|||
729
Mikeware
11.03.13
✎
11:21
|
(728) ну если "нолоцков", тогда "нафтыкал"!
|
|||
730
Wobland
11.03.13
✎
11:22
|
(729) нее, это не по-нашенски, это не по не-удафкоммовски ;)
|
|||
731
Privalov
11.03.13
✎
11:22
|
Ух ты ж мля, какой мексиканский сериал ))))
|
|||
732
Wobland
11.03.13
✎
11:23
|
(731) я прочитал все более-менее длинные серии с 8го года
|
|||
733
Privalov
11.03.13
✎
11:26
|
(732) Герой!!!!! )))
|
|||
734
viktor_vv
11.03.13
✎
11:29
|
Самое прикольное, что он таки допишет этот запрос :).
Может быть даже до конца этой ветки :). У ТС просто запредельная упоротость. |
|||
735
viktor_vv
11.03.13
✎
11:30
|
(734)+ Вернее не ТС допишет, а участники ветки :).
|
|||
736
bananan
11.03.13
✎
11:32
|
Всем доброе утро (если оно доброе)!
Помогите разобраться мне в данных. вот кусок из запроса: |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены Ругается: Invalid column name 'КатегорияЦены'. Как надо обратится к полю КатегорияЦены? |
|||
737
Mikeware
11.03.13
✎
11:33
|
(734) дописать-то допишет, а вот в правильности результата сомневаюсь...
а насчет "запредельной упоротости" - ну дык "хореограф" же (имхо, это что-то типа "сына филолога и бухгалтера" ). Может быть, в свое время "хороший хирург помогал плохому танцору", да перестарался... |
|||
738
sapphire
11.03.13
✎
11:34
|
(736) Не, такъ не пойдетъ.
Показывай ужо весь шъдевръ цъликомъ |
|||
739
bananan
11.03.13
✎
11:34
|
(734) Терпение и труд - все перетрут"
(735)... И я пишу запросы пока с вашей помощью (хотя за то время что я вас достаю своим непониманием - я написал на этой работе 24 скрипта - из них с вами советовался по немногим) |
|||
740
bananan
11.03.13
✎
11:35
|
(738):
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.КаналСбыта as [КаналТТ $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 |"; |
|||
741
viktor_vv
11.03.13
✎
11:35
|
(736) Смотрим сюда
| , $Доставка.КаналСбытаТТ as КаналСбыта ищем что для этого добавлено во From делаем аналогично (это слово в этой ветке уже ближе к ругательному ). |
|||
742
sapphire
11.03.13
✎
11:36
|
Мне ужо страшененько... Вон iжаку фильм про метлу ндравится, куды катиться мир, братие, коли ТС написал на работе 24 скрипта... Скрипты те есть тайное мозговыносящее оружие або не ведает ТС как их готовитьть....
|
|||
743
Mikeware
11.03.13
✎
11:37
|
(741) "анал-логично"? :-))
|
|||
744
Mikeware
11.03.13
✎
11:38
|
(739) да врешь ты как сивый мерин.
ну выложи хотя бы 12 из них :-))) |
|||
745
sapphire
11.03.13
✎
11:39
|
Давайте ТС не скажем, что КатегорияЦены у справочника "КаналыСбыта" может быть периодическимю
|
|||
746
viktor_vv
11.03.13
✎
11:39
|
(741)+ А, сорри, уже есть.
Добавить алиас во вложенном, либо катгорияЦены периодический, че с ним делать ты уже знаешь. |
|||
747
viktor_vv
11.03.13
✎
11:40
|
(743) Ну где-то так :).
|
|||
748
Privalov
11.03.13
✎
11:43
|
(739) Покажи!!!
|
|||
749
Wobland
11.03.13
✎
11:45
|
я правильно понимаю, что автор скриптом называет всякий кусок кода/запроса?
|
|||
750
bananan
11.03.13
✎
11:46
|
(736) Не совсем понял. В секци From есть:
| left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ По КатеогрияЦены - не понимаю, если нетрудно - покажите как выйти на КатегорияЦены... |
|||
751
Privalov
11.03.13
✎
11:46
|
(749) Маааленький кусочек )
|
|||
752
Wobland
11.03.13
✎
11:47
|
хм.. а я уже 4 скрипта написал за утро
|
|||
753
Mikeware
11.03.13
✎
11:49
|
(751) а ты и в самом деле Привалов? :-)
|
|||
754
Wobland
11.03.13
✎
11:50
|
+(752) и попробуйте сказать мне, что это не скрипт ;)
BACKUP DATABASE [Accounting] TO DISK = 'd:\1c\acc.bak' WITH INIT |
|||
755
Privalov
11.03.13
✎
11:50
|
(753) Частично :-)
|
|||
756
bananan
11.03.13
✎
11:53
|
(751-755) Все ОЧЕНЬ ЦЕНЫЕ советы. А конретно по (750) кто-нибудь может помочь?
|
|||
757
Wobland
11.03.13
✎
11:55
|
(756) я бы пошёл глазами искать такой реквизит у справочника. потом смотреть на его периодичность. потом думать. но тебе же копипастить из этого совета нечего...
|
|||
758
bananan
11.03.13
✎
11:57
|
(757) Сейчас поищу...
По-поводу моих скриптов, пытаюсьь выложить на http://www.fayloobmennik.net/ - Тревога антивирусной системы ESET NOD32 Antivirus Чего делать, чтобы вы мне поверили? |
|||
759
Privalov
11.03.13
✎
11:58
|
(758) Так ты вирусы пишешь или код так написан что его система за вирус принимает?
|
|||
760
Wobland
11.03.13
✎
11:59
|
(758) видал, как я сегодня круто два скрипта выложил? и без всяких обменников ;)
|
|||
761
Privalov
11.03.13
✎
11:59
|
(758) Сюда положи - http://hdd.tomsk.ru
|
|||
762
bananan
11.03.13
✎
11:59
|
Поле КатегорияЦены в справочнике КаналыСбыта имеет тип: Перечисление.ТипыЦен и никакой периодичности там нет
|
|||
763
Wobland
11.03.13
✎
11:59
|
(759) ИИ отторгает это
|
|||
764
viktor_vv
11.03.13
✎
12:00
|
(758) Мы поверим, если ты категорию цены в запрос нормально прилепишь :).
|
|||
765
viktor_vv
11.03.13
✎
12:01
|
(762) Напиши так
, $КаналСбыта.КатегорияЦены as КатегорияЦены |
|||
766
bananan
11.03.13
✎
12:01
|
(761) http://hdd.tomsk.ru/ ТРЕБУЕТ ЧТОБЫ ЗАГРУЗИТЬ ФАЛ скачать какуюто прогу для андроид, а зачем она если у меныя Вын7?
|
|||
767
viktor_vv
11.03.13
✎
12:02
|
(765)+ А то без алиаса у тебя там имя поля как в таблице в скуле.
|
|||
768
Wobland
11.03.13
✎
12:02
|
(766) может, рекламно просит? не было такого неделю-две назад
|
|||
769
bananan
11.03.13
✎
12:03
|
(765) у меня было без ас6 | , $КаналСбыта.КатегорияЦены
сейчас попробую ка кты советуешь/подсказуешь |
|||
770
Privalov
11.03.13
✎
12:03
|
(766) Ты гонишь. Просто жмешь не туда.
|
|||
771
Wobland
11.03.13
✎
12:04
|
(765) ну вот и прилепит щас
|
|||
772
bananan
11.03.13
✎
12:04
|
(769)+ проверил6
выдает: ]Invalid column name 'КатегорияЦены'. |
|||
773
Privalov
11.03.13
✎
12:04
|
(766) На хрена ты загрузку со сматрфона выбираешь, глаза разуй.
|
|||
774
Wobland
11.03.13
✎
12:04
|
а давайте хором нарисуем бананану скриншот с красной рамочкой куда тыкать
|
|||
775
viktor_vv
11.03.13
✎
12:05
|
(771) Не помогло :).
(772) Показывай текст полный. |
|||
776
bananan
11.03.13
✎
12:05
|
(770) когда жму на загрузить выдает:
Тип адреси невідомий або не підтримується. Ви намагалися відкрити сторінку з адресою aurup:?uploadUrl=http%3A%2F%2Fm.hdd.tomsk.ru%2F&cookies=HDDSID%3D6lff9t979gnc179s7a1immu2c1&licenseKey=79FF1-00185-740D0-00064-8F9E2-A2BAD9&redirectDelay=0&multiSelection=true, до якої зараз немає доступу. Перевірте правильність написання і пунктуацію адреси веб-сторінки (URL-адресу), потім спробуйте перезавантажити сторінку. Переконайтеся, що ваше інтернет-з'єднання активне та перевірте, чи інші програми, які покладаються на те саме з'єднання, працездатні. Перевірте правильність налаштувань всього програмного забезпечення, пов’язаного з мережевою безпекою, і переконайтеся, що це програмне забезпечення не заважає звичайному перегляду сторінок інтернету. Якщо ваш комп’ютер працює під захистом брандмауера у локальній мережі, і ви думаєте, що це може спричинити проблеми, повідомте про це з вашого системного адміністратора. Спробуйте натиснути клавішу F12 на вашій клавіатурі і вимкнути проксі-сервери, якщо вам не відомо, чи слід використовувати проксі-сервер для з’єднання з мережею інтернет. Перезавантажте цю сторінку. Потрібна довідка? Відкрити Довідку Opera. Перейти до Інтерактивного стенду підтримки Opera. |
|||
777
Wobland
11.03.13
✎
12:06
|
disk.tom.ru
|
|||
778
viktor_vv
11.03.13
✎
12:06
|
А, я понял.
"Поле КатегорияЦены в справочнике КаналыСбыта имеет тип: Перечисление.ТипыЦен" а ты в типизации че пишешь ? |
|||
779
bananan
11.03.13
✎
12:07
|
(775) Полный текст запроса:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.КаналСбыта as [КаналТТ $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КаьтегорияЦены | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 |
|||
780
Wobland
11.03.13
✎
12:07
|
(778) дык одно дело - тип, другое - имя поля...
|
|||
781
bananan
11.03.13
✎
12:08
|
(778) Типизации не писал, а что надо?
|
|||
782
Wobland
11.03.13
✎
12:08
|
(779) КаьтегорияЦены, bля
|
|||
783
Wobland
11.03.13
✎
12:09
|
(781) не вижу необходимости. но я вообще краем глаза
|
|||
784
viktor_vv
11.03.13
✎
12:10
|
(782) :)).
Типизация это тут в квадратных скобочках |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] |
|||
785
bananan
11.03.13
✎
12:10
|
(782-83) написал так:
| , $КаналСбыта.КатегорияЦены as [КатегорияЦены $Перечисление.ТипыЦен] не пропускает: ]Invalid column name 'КатегорияЦены'. |
|||
786
Wobland
11.03.13
✎
12:11
|
(785) а почему?
|
|||
787
Privalov
11.03.13
✎
12:11
|
Так и зажилит скрипты, только хвастается )))
|
|||
788
bananan
11.03.13
✎
12:11
|
(784) Что-то я уж совем запутасля. ТАк есть же КатегорияЦены..
|
|||
789
viktor_vv
11.03.13
✎
12:12
|
(788) Ну прочитай (782), особенно последнее слово (шутка), ну посмотри у себя в запросе, ну подумай хотя бы чуть-чуть, это не больно.
|
|||
790
bananan
11.03.13
✎
12:12
|
(787) Да ничего я не жалю, файл архив закачал наhttp://hdd.tomsk.ru/desk/hpevxsij# как его вам показать?
|
|||
791
Wobland
11.03.13
✎
12:13
|
(790) качаем
|
|||
792
bananan
11.03.13
✎
12:13
|
(789) прочитал я 782 у меня так:
|, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] |
|||
793
Wobland
11.03.13
✎
12:14
|
кто скачал? читается?
|
|||
794
ЧеловекДуши
11.03.13
✎
12:14
|
(785) Не может этого быть, все это происки "гебня" :)
(791) Не буду, ты потом опиши в двух словах :) |
|||
795
Wobland
11.03.13
✎
12:14
|
! D:\mozilla\ExtForms.zip: Неизвестный метод в bananan.ert
! D:\mozilla\ExtForms.zip: Нет файлов для извлечения |
|||
796
ЧеловекДуши
11.03.13
✎
12:15
|
(779) А зачем вам сударь 10 одних и тех же цен? :)
|
|||
797
Wobland
11.03.13
✎
12:15
|
(795) 7зип съел
|
|||
798
ЧеловекДуши
11.03.13
✎
12:16
|
(795) Да он троль, уже писали, что это развод... :)
|
|||
799
bananan
11.03.13
✎
12:16
|
(795) Не знаю хотите верьте - зотите нет у меня архив распаковывается...
|
|||
800
bananan
11.03.13
✎
12:17
|
(779) На сколько я понимаю - это не одни и те же цены,в данном варианте запроса цены чтобы их видеть и можно было контролировать.
|
|||
801
Privalov
11.03.13
✎
12:20
|
(797) Ща, попробуем
|
|||
802
viktor_vv
11.03.13
✎
12:21
|
(800) Ладно, еще раз
"КаьтегорияЦены, bля" тебя в слове категория ничего не смущает ? |
|||
803
bananan
11.03.13
✎
12:21
|
На данный момент код запроса такой:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.КаналСбыта as [КаналТТ $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as [КатегорияЦены $Перечисление.ТипыЦен] | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 |"; Не пропоускает: Invalid column name 'КатегорияЦены'. Почему КатегорияЦены - инвалид?? |
|||
804
bananan
11.03.13
✎
12:22
|
(802) В том что ты показываешь - ошщилбка
у меня вроде ее нет: | , $КаналСбыта.КатегорияЦены as [КатегорияЦены $Перечисление.ТипыЦен] |
|||
805
Privalov
11.03.13
✎
12:23
|
(797) Толль он нифига не распаковывается
|
|||
806
Wobland
11.03.13
✎
12:24
|
а вот 1CQA.ert, судя по интерфейсу, дюже полезная в хозяйстве штучка. есессно, автор другой, но спасибо
|
|||
807
viktor_vv
11.03.13
✎
12:24
|
Выкинь нафик типизацию из вложенного оставь только алиас и правильно напиши во внешнем.
|
|||
808
Wobland
11.03.13
✎
12:26
|
(805) я читаю, смотрю... самые интересные вещи сделаны, похоже, здесь. психически больные родные 1Скины запросы я не понимаю, пропускаю. остаётся беглым взглядом одна голая игра с интерфейсом и вывод в ТабДок, а-ля
Процедура ПриОткрытии() ДатаАктуальности = РабочаяДата(); Фирма = Константа.БазФирма.Получить(ДатаАктуальности); фОсновные = 1; фСовместители = 1; фУволенные = 0; КонецПроцедуры |
|||
809
bananan
11.03.13
✎
12:26
|
(807) во внешнем так:
|, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] чего здесь неправильно? во внутреннем написал так: | , $КаналСбыта.КатегорияЦены здесь еще ас КатегормияЦ налдо добавить7 |
|||
810
Wobland
11.03.13
✎
12:27
|
(809) КатегорияЦены во внутреннем должна быть, чтобы сверху по этому имени видеть
|
|||
811
Wobland
11.03.13
✎
12:30
|
наблюдаю ПрисоединитьСекцию(). не ожидал
|
|||
812
viktor_vv
11.03.13
✎
12:30
|
(809) Да нету у тебя перечисления КатегорияЦены, ты ж сам писал тип значения поля КатегорияЦены.
|
|||
813
viktor_vv
11.03.13
✎
12:31
|
(812)+ Это для того, что в квадратных скобках.
|
|||
814
Wobland
11.03.13
✎
12:31
|
а вот и запрос в цикле ;)
Пока Запрос.Группировка("Сотр")=1 Цикл Запрос_=СоздатьОбъект("ODBCRecordset"); ТекстЗапроса = " |SELECT | SUM(Внутренний.Став) as Ставка |From |( | SELECT | $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став | FROM | $Справочник.Сотрудники Сотр | WHERE | Сотр.ID IN (SELECT Val FROM #tmpSotr) | AND $Сотр.ДатаПриема> :Дат1 | AND $Сотр.ДатаПриема<= :ДатаАктуальности | AND ($Сотр.ДатаУвольнения = '01.01.1753' or $Сотр.ДатаУвольнения>= :ДатаАктуальности ) |) as Внутренний |"; |
|||
815
Mikeware
11.03.13
✎
12:34
|
(793) архив - 52 метра - это многовато для "24 скриптов"
|
|||
816
Mikeware
11.03.13
✎
12:35
|
(806) а у тебя ее не было, чтоль? :-)
|
|||
817
Wobland
11.03.13
✎
12:37
|
(816) неа. я - лох? ;)
а вот чтоб писать такое, нужно хотя бы знать, что такое XML. (тупого копипаста имхо недостаточно (ну.. я вижу чуть больше, чем цитирую)) XMLАнализатор = СоздатьОбъект("AddIn.XMLParser"); XMLКорневойРаздел = XMLАнализатор.СоздатьДокумент(); ДанныеXML = XMLКорневойРаздел.СоздатьПодчиненныйЭлемент("DATAPACKET"); ДанныеXML.УстановитьАтрибут("Version", "2.0"); |
|||
818
Wobland
11.03.13
✎
12:39
|
(815) там Rec1.odt 52 из 55 занимает
|
|||
819
Mikeware
11.03.13
✎
12:39
|
(817) ну, не то, чтобы лох...:-) гланды можно тоже анал-литически лечить...
просто это удобный инструмент, который маст хэв... |
|||
820
Mikeware
11.03.13
✎
12:40
|
(818) для весу? чтоб архивчик ветром не унесло?
|
|||
821
Wobland
11.03.13
✎
12:43
|
(819) ой как не хватало..
имеем ещё одну обработку с ломающим психику запросом (чёрные они?), собирающимся динамически типа: Если фОсновные=0 Тогда ТекстЗапроса=ТекстЗапроса+" |Условие(Совместитель=1);"; КонецЕсли; и вывод: Если (фОсновные=1) и (фСовместители=1) Тогда Таб.ПрисоединитьСекцию("Шапка|Совместитель"); КонецЕсли; да, наверное, работает. да, наверное, красиво получается. да, не вижу куда кинуть какашкой. менее поверхностным осмотром займусь на досуге |
|||
822
bananan
11.03.13
✎
12:45
|
(812-813) Ничего я НЕ ПОНИМАЮ...
есть КатегорияЦены и во внешнеим и во внутреннем, а не работает? Что неправильно я написал? |
|||
823
bananan
11.03.13
✎
12:47
|
+(822) а это правильно что во внешнем запросе |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены]
а во внутреннем: | , $КаналСбыта.КатегорияЦены as КатегорияЦ ?? |
|||
824
viktor_vv
11.03.13
✎
12:47
|
(822) Типизацию.
"|, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] чего здесь неправильно?" и "Поле КатегорияЦены в справочнике КаналыСбыта имеет тип: Перечисление.ТипыЦен и никакой периодичности там нет" |
|||
825
viktor_vv
11.03.13
✎
12:48
|
(823) Неправильно, уже прогресс, ты стал задумываться, хотя бы над очевидными вещами.
|
|||
826
bananan
11.03.13
✎
12:50
|
(824) Вроде исправил:
|, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] а ошибка осталась, что еще? |
|||
827
bananan
11.03.13
✎
12:50
|
(825) Что неправильно я подозревал, а как правильно это написмать?
|
|||
828
Mikeware
11.03.13
✎
12:51
|
(821) там жесть жестяная...
|
|||
829
viktor_vv
11.03.13
✎
12:53
|
(827) Насчет прогресса я опять погорячился, а интуиция что подсказывает ?
Ты ж в (823) был на верном пути, тебе сказали что это неправильно, осталось сделать один шаг, очень маленький. |
|||
830
viktor_vv
11.03.13
✎
12:54
|
(829)+ Попытаться понять, что такое алиас и для нахрена он нужен.
|
|||
831
bananan
11.03.13
✎
12:54
|
(829) Моя интуиция в силу жизненных обстоятельств - практически не работатет но сейчас попробую методом тыка...
|
|||
832
bananan
11.03.13
✎
12:55
|
(830) алиас - это типа псевдоним, нужен для скажем удобства доступа..
|
|||
833
viktor_vv
11.03.13
✎
12:56
|
(831) В курсе, сочувствуем, но это не оправдание в данном случае.
|
|||
834
bananan
11.03.13
✎
12:57
|
(832) Опять же...
во внешнем |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] во внутренеем который и есть данные: | , $КаналСбыта.КатегорияЦены as КатегорияЦ что здесь неправильно? Помогите, подскажите.. |
|||
835
viktor_vv
11.03.13
✎
12:57
|
(832) И если ты во внешнем запросе обращаешься к полю через псевдоним "Данные.КатегорияЦены", то во внутреннем он каким должен быть?
|
|||
836
bananan
11.03.13
✎
12:57
|
+(834) А может там жоин неправильно написан?
|
|||
837
bananan
11.03.13
✎
12:58
|
(836) КатегорияЦены?
|
|||
838
bananan
11.03.13
✎
12:59
|
+(837) НИХРЕНА ВО ВНРТУРЕННЕМ НА ПИСАЛ:
| , КатегорияЦены as КатегорияЦ ОШИБКА ТА ЖЕ: Invalid column name 'КатегорияЦены'. |
|||
839
viktor_vv
11.03.13
✎
13:01
|
(838) В данном случае у тебя псевдоним это as КатегорияЦ, а во внешнем ты как обращаешься.
|
|||
840
Wobland
11.03.13
✎
13:01
|
(838) я в высших материях не разбираюсь, но где тут имя таблицы?
|
|||
841
viktor_vv
11.03.13
✎
13:01
|
(839)+ И верни обратно как было поле, а то еще на 100 постов.
|
|||
842
viktor_vv
11.03.13
✎
13:04
|
(839)+ Спецом не буду писать в явном виде, уж извини.
|
|||
843
bananan
11.03.13
✎
13:05
|
(839) Во внешнем : |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен]
ничерта непонимаю во внутренем написал тек: | , КатегорияЦ as КатегорияЦ здесь уже меня пугает алиая тоже имя.. в результате ошибка: Invalid column name 'КатегорияЦ'. |
|||
844
bananan
11.03.13
✎
13:05
|
(842) Не пиши, буду бится головой о стену, но я с этим разхберусь
|
|||
845
bananan
11.03.13
✎
13:06
|
+(844) с вашей помощью или без но я расберусь
|
|||
846
viktor_vv
11.03.13
✎
13:06
|
(845) Я пас, все написано выше.
|
|||
847
bananan
11.03.13
✎
13:08
|
(846) Выше написано ОЧЕНЬ много никому не нудного мусора - творений членов формуа...
|
|||
848
bananan
11.03.13
✎
13:10
|
+(847) А по поводу "моего творчества" что-то разговоры итихли когда я вылодил скрипты написаные или дописанные мною (дописанные - запрос в цикле - это не мое творчество) я там обошелся без этого, точно не помню, кажется один прямой запрос там...
|
|||
849
bananan
11.03.13
✎
13:11
|
| , КатегорияЦ as Категория - нету имени таблицы - это я и сам вижу а какая таблица здесь нуэна?
|
|||
850
viktor_vv
11.03.13
✎
13:12
|
(847) Ну там не так сложно найти то, что тебе в данный момент нужно, все это есть на этой странице.
Насчет (843) верни обратно обращение к полю $КаналСбыта.КатегорияЦены и не ломай хотя бы работающее. |
|||
851
Wobland
11.03.13
✎
13:17
|
(848) повторяю. ничего серьёзного я там не встретил. нет явного подтверждения профессионализма, нет ярко выраженного обратного. это всё при беглом осмотре. а непрофессионализм, кстати, и без обработок прекрасно виден
|
|||
852
sapphire
11.03.13
✎
13:20
|
Сказочный Долбобей :)
|
|||
853
bananan
11.03.13
✎
13:20
|
(851) $КаналСбыта.КатегорияЦены это во внутреннем запросе?
Сейчас буду упорно смотрерть все что есть на данной странице и искать.. |
|||
854
Wobland
11.03.13
✎
13:23
|
а, бывает, у автора посты пропадают...
|
|||
855
ЧеловекДуши
11.03.13
✎
13:29
|
Интересно, до 1000 дотянет? :)
|
|||
856
viktor_vv
11.03.13
✎
13:30
|
(855) Легко, первая что ли.
|
|||
857
Wobland
11.03.13
✎
13:30
|
(855) следующая серия может и не дотянуть
|
|||
858
bananan
11.03.13
✎
13:31
|
+(853) Долго смотрел данную страницу ничего не нашел кроме своего вопроса, на который так никто и не ответил:
| left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = чему он этот иде должен быть равен? может баз именно в этом? я в конце-концов этот джоин написалтак: | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ |
|||
859
bananan
11.03.13
✎
13:32
|
(855) Легко. Посмотри последние 20 сообщений. Много ли там чего-то конкретного, а не желчи крутых 1Сников???
|
|||
860
Wobland
11.03.13
✎
13:33
|
(859) ты мозг уже в аренду где-нибудь возьми. и вопросов меньше будет, и разговор продуктивней
|
|||
861
viktor_vv
11.03.13
✎
13:34
|
(858) Не в этом проблема, тут в запросе все нормально.
|
|||
862
bananan
11.03.13
✎
13:36
|
(860) От тебе только разговоры от том что мол будет - ни одного полезного поста о какой продуктивности разговора можно говорить с таким подходом "крутого"...?
|
|||
863
viktor_vv
11.03.13
✎
13:36
|
Соредоточься на строках из запоса (803)
|, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.КатегорияЦены] и во внутреннем | , $КаналСбыта.КатегорияЦены as [КатегорияЦены $Перечисление.ТипыЦен] после него тебе написали убрать типизацию из внутреннего, а ты полез в какие-то дебри, из-за чего нафлудили 50 постов. |
|||
864
viktor_vv
11.03.13
✎
13:37
|
(863)+ И изменить типизацию во внешнем на правильную, и все.
|
|||
865
bananan
11.03.13
✎
13:37
|
(861) Мистика, вроде в коде я ничего не менял, а вот сейчас запустил и... РАБОТАЕТ он зараза!!!
|
|||
866
viktor_vv
11.03.13
✎
13:38
|
(863) У тебя тут даже с алиасами все правильно, осталось только с типизацией разобраться и все.
|
|||
867
bananan
11.03.13
✎
13:39
|
+(865) Сейчас код запроса такой (повторяю - он РАБОТАЕТ):
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.КаналСбыта as [КаналТТ $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 |"; На дату 20.11.12 запрос нашел 2250 "ошибочных" цен |
|||
868
Wobland
11.03.13
✎
13:40
|
(865) сохранялся?
|
|||
869
bananan
11.03.13
✎
13:41
|
(868) Конечно же сохранялся...
Сейчас буду мучительно вспоминать или разбираться ЗАЧЕМ мне был нужен такой запрос (нас колько я помню) в итоге запрос должен выдавать не то что он сейчас выдает... |
|||
870
viktor_vv
11.03.13
✎
13:42
|
(867) С чего ты взял, что они ошибочные, это просто строки доков с ТМЦ у которых Цена5 или Цена7 равны 0.
|
|||
871
Wobland
11.03.13
✎
13:42
|
господа, а когда закончилось обсуждение вопроса "Чего нехватает в этом коде, чтобы по двойному клику документ открывался?"?
|
|||
872
viktor_vv
11.03.13
✎
13:43
|
(869) Финиш :)))).
Писали, писали, а нахрена писали уже и не помним. Я правда помню, но ты сам вспоминай. |
|||
873
sapphire
11.03.13
✎
13:45
|
(872) Я же говорю, сказочный Долбобей :))))
|
|||
874
bananan
11.03.13
✎
13:45
|
(870) Не ошибочные - я неправильно сказал, они не полные там в вера надо вставить проверку всех цен, кажется это все будет с данным запросом...
После перекура посмотрю... |
|||
875
bananan
11.03.13
✎
13:46
|
(873)Молчал бы и сопел в две дирочки и долбобевался непонятно чего!
|
|||
876
Wobland
11.03.13
✎
13:47
|
(869) если он выдаёт не то, инвертируй его. у чисел знак смени, у объектов проставь пустой ИД...
|
|||
877
sapphire
11.03.13
✎
13:47
|
(874) Главное, что бы после перекура передур не начался
|
|||
878
sapphire
11.03.13
✎
13:48
|
(875) Ты, Долбобей, 75% кода под мою диктовку написал, бяка неблагодарная
|
|||
879
Wobland
11.03.13
✎
13:48
|
(876) а вот что делать с NULLами..
|
|||
880
Wobland
11.03.13
✎
13:49
|
(878) не кода, а скрипта. не написал под диктовку, а дописал
|
|||
881
sapphire
11.03.13
✎
13:51
|
(880) Скопипастил тогда уж :)
|
|||
882
viktor_vv
11.03.13
✎
13:51
|
(876) Ты такими словами не ругайся, а то человек еще на Фрунзе 103 загремит :)).
|
|||
883
Wobland
11.03.13
✎
13:53
|
(882) это ж бывшее издательство КрасноеЗнамя
|
|||
884
viktor_vv
11.03.13
✎
13:54
|
(883) В Киеве там аналог (слово-то какое нехорошее :))) вашего Кащенко.
|
|||
885
Wobland
11.03.13
✎
13:54
|
(883) теперь там до чёрта организаций
->> КопиPaste, полиграфический центр <<- >> Сферы деятельности: Оперативная полиграфия, Изготовление бизнес-сувениров, Термопечать --------------- Фрунзе проспект, 103 - 101 офис; 1 этаж |
|||
886
Wobland
11.03.13
✎
13:55
|
->> Сам смастерил, газета <<-
>> Сфера деятельности: Газеты --------------- Фрунзе проспект, 103 - 806 офис; 8 этаж |
|||
887
Wobland
11.03.13
✎
13:56
|
->> Волшебники, корпорация праздников <<-
>> Сферы деятельности: Организация и проведение праздников, Фотостудии, Видеостудии, Услуги праздничного оформления --------------- Фрунзе проспект, 103 - 801 офис; 8 этаж |
|||
888
viktor_vv
11.03.13
✎
13:57
|
(887) Смотри (884).
|
|||
889
sapphire
11.03.13
✎
13:57
|
(883) А ён що, з самого Киева? Мне казалось он в каком-то уездном живет вроде Конотопа али Бахмача...
|
|||
890
Mikeware
11.03.13
✎
13:58
|
(885)-(887) ЗАЧОТ!
:-))) |
|||
891
Wobland
11.03.13
✎
13:58
|
(888) да видел я. но какая подборка организаций у нас! ;)
|
|||
892
viktor_vv
11.03.13
✎
13:58
|
Хотя корпорация праздников тоже ничего :), Волшебник там учредитель наверное.
|
|||
893
viktor_vv
11.03.13
✎
14:00
|
(889) Ну тяжелых, я думаю, таки в Киев направляют :).
|
|||
894
bananan
11.03.13
✎
14:04
|
Пока я курил вы кучу ХЛАМА понаписывали
(889) Я в Киеве когда-то учился (Киевское государственное хореографическое училище, выступл на сцене Оперного, Жовтневого палаца, Палаца Украины на арене Республиканского, на арене Лужников), а сейчас я пытаюсь жить и работать в небольшом обласном центре - Рывне (Ровно по-старому)... |
|||
895
sapphire
11.03.13
✎
14:05
|
(894) Эвоно как... Ясно... Ровно значит...
|
|||
896
viktor_vv
11.03.13
✎
14:08
|
(894) Это круче, чем 1С-ник слесарь, тут ты самого Маню переплюнул, зачет.
|
|||
897
bananan
11.03.13
✎
14:09
|
А по поводу запроса - пока не проверял но помню что там надо Кроеме Цена5 и (вернее или) Цена7 на до проверять не Нулл ли эти поля и кроме того там цен: Цена1...Цена9, вот кажется так...
|
|||
898
Mikeware
11.03.13
✎
14:10
|
(894) о чем, собственно, и говорят - на арене тебе самое место... :-))
|
|||
899
bananan
11.03.13
✎
14:10
|
(896) А кто такой Маня, которого я переплюнул?
По поводу хореографии... Я еще дважды у себя в Ровно преподавал детям хореографию, но - это не мое на все 100%... |
|||
900
bananan
11.03.13
✎
14:11
|
(898) Пойду и на арену, только с ТОБОй !
|
|||
901
bananan
11.03.13
✎
14:20
|
Боюсь 1000 не хватит... :):(
По поводу запроса - теперь надо озапросить строку: минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если я не ошибаюсь, то это Цена1..Цена9, т.е. 9 штук и они впринципе в запросе уже выбираются... теперь надо минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); ну и если мин цена=0 тогда и вывибраем сии документы... вроде так.. |
|||
902
Wobland
11.03.13
✎
14:21
|
(901) а не с прошлой ли ветки этот вопрос тянется?..
|
|||
903
bananan
11.03.13
✎
14:22
|
а Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); - здесь видимо нужно получить атрибут Цена1..Цена9 из документа...
Что-то я опять запутался... |
|||
904
bananan
11.03.13
✎
14:26
|
(902) Может быть, точно - не помню,
У меня такой подход к задаче, я вот уже 7-й год на фрииласне побрабатываю, правда, в это году - ниодного задания на фрилансе не брал. Так вот мнре конфортно работается когда у меня есть две-три задачи разного плана... С одной задачей зашел в тупик; - переклюбчился на другую, потом на третьтю, и т.д. Вполне возможно что такой подход к работе НЕПРАВИЛЬНЫЙ но он мне помагает... Вот с той поры как я работаю на этой фирме с 1С (а 1С мне всегда почему-то туго давалось) у меня паралельно нзадача написать программу на Делфи. С програмоой на делфи - она уже на 99% процентов готова, (надо чуть подправить выравнивание граф. объектов при печати на принтер и сделать сохранение ини-файла "Сохранить КАк".. |
|||
905
bananan
11.03.13
✎
14:32
|
+ А вообще почти все обо мне вы можете посмотрерть на моей страничке в Одноклассниках (Мыкола Баланов)- милости прошу...
|
|||
906
viktor_vv
11.03.13
✎
14:42
|
(903) Ищи раньше советы с CASE .
|
|||
907
bananan
11.03.13
✎
14:51
|
(906) Спасибо, поищу...
|
|||
908
Wobland
11.03.13
✎
14:55
|
а я даже по меньшей мере дважды что-то про кейс говорил..
|
|||
909
sapphire
11.03.13
✎
14:56
|
(901) Долбобей, если минцена равна нулю, чему будет значение минцена после этой операции:
минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); |
|||
910
sapphire
11.03.13
✎
14:57
|
(906) (908) Там не кейс нужен :))))))))
Но, Долбобею всё равно.... |
|||
911
bananan
11.03.13
✎
15:13
|
(909) в этом случае она будет равна нулю
(910) А что там нужно (908) По поводу кейсов в даной ветке нашел три сообщения: case when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.1 then $Док.ТипЦен1 when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.2 then $Док.ТипЦен2 end -- -- | (case $Канал.КатегорияЦены | when $Перечисление.ТипыЦен.1 then Coalesce(ДокС.ТипЦен1, $ДокН.ТипЦен1 ) | when $Перечисление.ТипыЦен.2 then Coalesce(ДокС.ТипЦен2, $ДокН.ТипЦен2 ) | when $Перечисление.ТипыЦен.3 then Coalesce(ДокС.ТипЦен3, $ДокН.ТипЦен3 ) | when $Перечисление.ТипыЦен.4 then Coalesce(ДокС.ТипЦен4, $ДокН.ТипЦен4 ) | when $Перечисление.ТипыЦен.5 then Coalesce(ДокС.ТипЦен5, $ДокН.ТипЦен5 ) | when $Перечисление.ТипыЦен.6 then Coalesce(ДокС.ТипЦен6, $ДокН.ТипЦен6 ) | when $Перечисление.ТипыЦен.7 then Coalesce(ДокС.ТипЦен7, $ДокН.ТипЦен7 ) | when $Перечисление.ТипыЦен.8 then Coalesce(ДокС.ТипЦен8, $ДокН.ТипЦен8 ) | ELSE Coalesce(ДокС.ТипЦен9, $ДокН.ТипЦен9 END) КатегорияЦены -- --- | , ЦенаПоКатегории=(case when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория1 then $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) | when $Канал.КатегорияЦены=$Перечисление.ТипыЦен.Категория2 then $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Из этих трех мне нравится больше первое... Но, сейчас буду пробывать... |
|||
912
viktor_vv
11.03.13
✎
15:17
|
(910) Кейс, кейс, у него от категории цены из разных реквизитов ТМЦ цена расчетная берется, потом ее сравнивает с ценой в документе.
Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); |
|||
913
viktor_vv
11.03.13
✎
15:18
|
(912)+ А категория в каждом документе может быть разная.
|
|||
914
bananan
11.03.13
✎
15:36
|
(912, 913) конечно в каждом доументе может быть своя категория
И что с того вот здесь я не понимаю... |
|||
915
bananan
11.03.13
✎
15:51
|
Я тут вот чего намудрил:
| (case $Канал.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокС.ТипЦен1, $ДокН.ТипЦен1 ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокС.ТипЦен2, $ДокН.ТипЦен2 ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокС.ТипЦен3, $ДокН.ТипЦен3 ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокС.ТипЦен4, $ДокН.ТипЦен4 ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокС.ТипЦен5, $ДокН.ТипЦен5 ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокС.ТипЦен6, $ДокН.ТипЦен6 ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокС.ТипЦен7, $ДокН.ТипЦен7 ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокС.ТипЦен8, $ДокН.ТипЦен8 ) | ELSE Coalesce(ДокС.ТипЦен9, $ДокН.ТипЦен9 END) КатегорияЦены ну и ясен пень, не пропускает: Meta name parser error: неизвестное метаимя или алиас "$Канал" Сейчас еще раз попробую сам разобраться, если не разберусь - то отправлю... ляп нашел я неправильно написал имя алиаса, но все0рвано еще один ляп.. выдает: Meta name parser error: поле таблицы не найдено "$ДокН.ТипЦен1" Посмотрел я в документе там одно поле ТипЦен, т.е. Надо выбирать если у данного документа ТипЦен равен типу цен из канала доставки... Как это в запросе написать? |
|||
916
Mikeware
11.03.13
✎
15:51
|
(904) какой нахрен "фриланс"!!
Тебе только на сцене яйцами трясти, да и то, если хирург тебе не помогал... |
|||
917
Mikeware
11.03.13
✎
15:52
|
(915) феерично...
|
|||
918
bananan
11.03.13
✎
15:54
|
(916) Тебе их цюрюпинска виднее
|
|||
919
bananan
11.03.13
✎
15:56
|
(916) Ну а здесь уж от ориентации зависит, нормальные люди смотря балет, а некоторые - на яйца глядят
|
|||
920
viktor_vv
11.03.13
✎
15:57
|
(917) Скорее хореографично :)).
(915) Ты ж только на прошлой странице с этим каналом работал, неужто забыл какой у тебя псевдоним таблицы справочника. |
|||
921
Mikeware
11.03.13
✎
15:58
|
(920) "К-анал" :-))
|
|||
922
viktor_vv
11.03.13
✎
15:59
|
(920)+ Ну и до кучи напуркуа тебе эти
Coalesce(ДокС.ТипЦен8, $ДокН.ТипЦен8 ) Опять же на прошлой страице у тебя есть получение цены из реквизита справочника. |
|||
923
viktor_vv
11.03.13
✎
16:01
|
Осталось только скомпоновать правильно конкструкции.
|
|||
924
bananan
11.03.13
✎
16:02
|
(922) Не помндю, но вроде надо... Написал так:
|from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | (case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен END) КатегорияЦены | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 Выдает: Incorrect syntax near '('. Где я там скобку не открыл или не закрыл? |
|||
926
viktor_vv
11.03.13
✎
16:03
|
(915) Не дочитал.
Вот это в условие Where Надо выбирать если у данного документа ТипЦен равен типу цен из канала доставки... |
|||
927
viktor_vv
11.03.13
✎
16:04
|
(925) Как-то грубовато получилось, не хореографично.
|
|||
928
bananan
11.03.13
✎
16:07
|
(925) Грубовато, не спорю, но - какой вопрос - такой ответ...
|
|||
929
pav007
11.03.13
✎
16:08
|
(915) помоему этот пример был написан в начале прошлой недели -так и не продвинулись:)
ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен END) "вот здесь ещё одна скобка нужна )" |
|||
930
bananan
11.03.13
✎
16:08
|
(927) А поповоду словия...
| (case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен END) КатегорияЦены здесь я устанавливаю категориб цены, а в вера что делать... Блин, опять запутался |
|||
931
Mikeware
11.03.13
✎
16:10
|
(927) ну почему же... как настоящий "хореограф", он знает "места охоты за яйцами" :-)
|
|||
932
bananan
11.03.13
✎
16:10
|
(929) исправил как ты советуещшь:
| ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен END)) КатегорияЦены Ве-равно: : Incorrect syntax near '('. |
|||
934
pav007
11.03.13
✎
16:14
|
(932) запятую перед кейсом
|
|||
935
sapphire
11.03.13
✎
16:17
|
(933) Долбобей, прочитай, ЧТО ТЫ НАПИСАЛ:
Когда категория цены канала сбыта равна какой-то категории тогда выбери не пустой тип цен из шапки документов... И что это дает? Это как из Бахмача в Конотоп или Шостку через Жмеринку.... |
|||
936
pav007
11.03.13
✎
16:19
|
Похоже на формулу расчёты цены на газ
|
|||
937
viktor_vv
11.03.13
✎
16:21
|
(930) Ты не тот CASE нашел.
Для сравнения категории цены в канале сбыта и документе не надо никаких CASE. В (912) Я не то имел ввиду. |
|||
938
Mikeware
11.03.13
✎
16:22
|
(935) да нихрена он не понимает, что написал...
НИ_ХРЕ_НА! копипастит тупо, и местами переставляет... |
|||
939
sapphire
11.03.13
✎
16:22
|
(930) Долбобей, тебе надо получить следующее:
соответствие Перечисление.ТипыЦен.Категория{N} - идентификатору истории реквизита Цена{N} |
|||
940
Mikeware
11.03.13
✎
16:23
|
(939) об этом еще в предыдущей ветке речь шла...
|
|||
941
viktor_vv
11.03.13
✎
16:23
|
(936) Бери круче, это скорее расчет траетории полета на Марс.
|
|||
942
bananan
11.03.13
✎
16:23
|
(934) поставил запятую перед кейсом...
выдает Incorrect syntax near the keyword 'END'. |
|||
943
sapphire
11.03.13
✎
16:24
|
(940) Ты еще предложи ему динамический текст запроса отладить :)))))))
|
|||
944
Mikeware
11.03.13
✎
16:24
|
(942) млять, даже в дельфях используются скобки и операторные скобки!
|
|||
945
Mikeware
11.03.13
✎
16:25
|
(943) я, конечно, иппанутый, но не до такой степени...
|
|||
946
sapphire
11.03.13
✎
16:25
|
(942) Долбобей, на лови, ругатся не будет, но толку от этой галиматьи никакого :
| (case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен) END) КатегорияЦены |
|||
947
sapphire
11.03.13
✎
16:26
|
(944) Это же Долбобей, ему простительно
|
|||
948
bananan
11.03.13
✎
16:28
|
(946) поймал - ругается:
Line 155: Incorrect syntax near '('. |
|||
949
sapphire
11.03.13
✎
16:29
|
Давайте, кто первый предложит ему рулезный case....
И кто поможет Долбобею написать скалярный запрос к _1SCONST на получение цены.... |
|||
950
viktor_vv
11.03.13
✎
16:29
|
(946) Наивный :), у него будет, такой псевдоним уже есть в запросе.
|
|||
951
sapphire
11.03.13
✎
16:30
|
(950) Ну, там не только в по-именовании дело-то...
Можно еще Долбобеюшке задать вопрос за что он так не любит таблицу ДокШ... |
|||
952
viktor_vv
11.03.13
✎
16:32
|
(951) До этого вряд ли дойдет, тут бы с запятыми разобраться :).
|
|||
953
sapphire
11.03.13
✎
16:33
|
(948)
| ,(case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен) END) КатегорияЦены |
|||
954
sapphire
11.03.13
✎
16:33
|
(952) Так, да? :))))
|
|||
955
viktor_vv
11.03.13
✎
16:34
|
(954) :)).
|
|||
956
sapphire
11.03.13
✎
16:35
|
(955) Все равно код долбобейский...
|
|||
957
pav007
11.03.13
✎
16:38
|
думаю что ТС сегодня догадается что этот кейс
и , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен одно и тоже |
|||
958
bananan
11.03.13
✎
16:39
|
(954) про \де так но все равно:
Invalid column name 'ТипЦен'. это уже буду завтра искать, чтото заболел я до встречи |
|||
959
viktor_vv
11.03.13
✎
16:42
|
(956) Да понятно.
(957) Сразу видно, что ты новенький в этом сериале. |
|||
960
sapphire
11.03.13
✎
16:42
|
(958) Долбобей, ты читать умеешь?
в (951) я тебе писал : Можно еще Долбобеюшке задать вопрос за что он так не любит таблицу ДокШ... | ,(case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | ELSE Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен) END) КатегорияЦены |
|||
961
sapphire
11.03.13
✎
16:44
|
(957) учись, ему надо сразу как в (960), что бы перепастил в код и усе...
|
|||
962
batman69
11.03.13
✎
16:50
|
Ну, что - сегодня до 1000?
|
|||
963
sapphire
11.03.13
✎
16:51
|
(962) Запросто.... Вот догадайся зачем нужен огород как в (953) ?
|
|||
964
batman69
11.03.13
✎
16:52
|
(963) И зачем ?
|
|||
965
sapphire
11.03.13
✎
16:55
|
(964) Ну сам-то код, ясно-красно ...
Так вот ему надо потом для категории цены X использовать последнее значение соответствующего периодического реквизита "ЦенаX" справочника ТМЦ... |
|||
966
sapphire
11.03.13
✎
16:57
|
(965) Но, на самом деле case там скорее костыль нежели необходимость, просто Долбобеюшка не писарь, а копипастер и ждёть де ему на блюдечке, с голубой каемочкой....
|
|||
967
batman69
11.03.13
✎
17:02
|
Ну, и дожидается таки, вот ведь...
|
|||
968
Mikeware
11.03.13
✎
17:07
|
(967) Авоткуй!®
|
|||
969
Cthulhu
11.03.13
✎
17:09
|
b yt ytljtcn ;t dfv dhtvz yf f,cjk.nyj atthbxyjuj ljk,jt,f hfnbnm///
|
|||
970
batman69
11.03.13
✎
17:11
|
(968) Всегда дожидался )))
|
|||
971
batman69
11.03.13
✎
17:12
|
Есть предложение, что бы не кормить балбесов - "съесть" ветку, всего 29 постов осталось ))
|
|||
972
Mikeware
11.03.13
✎
17:12
|
(971) новую заведет. делов то...
|
|||
973
batman69
11.03.13
✎
17:13
|
Ну это может. Легко.
|
|||
974
sapphire
11.03.13
✎
17:42
|
Долбобеюшка не поймёт зело сложно, но, как-то такъ:
|SELECT | Запрос.* | ,cast(SELECT TOP 1 .История Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта |FROM |( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены | ,cast(left(Жур.date_time_iddoc,8) as datetime) ДатаДок | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ОбщийРеквизит.Автор as Автор | , case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then $ИсторияРеквизита.ТМЦ.Цена1 | when $Перечисление.ТипыЦен.Категория2 then $ИсторияРеквизита.ТМЦ.Цена2 | when $Перечисление.ТипыЦен.Категория3 then $ИсторияРеквизита.ТМЦ.Цена3 | when $Перечисление.ТипыЦен.Категория4 then $ИсторияРеквизита.ТМЦ.Цена4 | when $Перечисление.ТипыЦен.Категория5 then $ИсторияРеквизита.ТМЦ.Цена5 | when $Перечисление.ТипыЦен.Категория6 then $ИсторияРеквизита.ТМЦ.Цена6 | when $Перечисление.ТипыЦен.Категория7 then $ИсторияРеквизита.ТМЦ.Цена7 | when $Перечисление.ТипыЦен.Категория8 then $ИсторияРеквизита.ТМЦ.Цена8 | when $Перечисление.ТипыЦен.Категория9 then $ИсторияРеквизита.ТМЦ.Цена9 | ELSE ' ' ИдентификаторИсторииЦены | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) | ) Запрос | |
|||
975
sapphire
11.03.13
✎
17:46
|
Очепяточко Долбобеюшка пусть уж сам исправит....
|
|||
976
Privalov
13.03.13
✎
13:21
|
Что-то пропал bananan
|
|||
977
Wobland
13.03.13
✎
13:27
|
может, у него всё хорошо. вот вернётся через неделю и покажет нам кузькину эм.. рабочий запрос
|
|||
978
sapphire
13.03.13
✎
13:30
|
(976) (977) Может учится, штудирует, так сказать, матчасть, бухает короче :)
|
|||
979
Wobland
13.03.13
✎
13:31
|
без него и тыщу делать неловко как-то.. с другой стороны (0) исчерпан вроде и давно
|
|||
980
Privalov
13.03.13
✎
13:32
|
Тыща была бы логична..
|
|||
981
Privalov
13.03.13
✎
13:33
|
А вдруг его того... ну заменили другим bananan, а он умный?
|
|||
982
sapphire
14.03.13
✎
09:58
|
(981) Кто же нас веселить в таком разе будет?
|
|||
983
Wobland
15.03.13
✎
14:16
|
раз автор не хочет глупые вопросы задавать, задам я.
помните, хвастался своим запросом? теперь придумал сделать его на восьмёрке к внешнему источнику данных. как бы "обзапросить" вот это "AND ЖурО.Closed&1=1"? |
|||
984
Wobland
15.03.13
✎
14:17
|
и SUBSTRING(ЖурО.Date_Time_IDDoc, 1, 8) BETWEEN &ДатаНачала AND &ДатаОкончания будет работать при Запрос.УстановитьПараметр("ДатаНачала", "20130314") ?
|
|||
985
Mikeware
15.03.13
✎
14:25
|
(983) чиво?
|
|||
986
Wobland
15.03.13
✎
14:27
|
(985) как запрос к семёрочному источнику сделать?
не знает восьмёрка битовых умножений. как проведённость в условии задать? |
|||
987
Wobland
15.03.13
✎
14:28
|
запрос работал 270 секунд, что-то выдал за 14е марта... условие про дата между, похоже, работает
|
|||
988
Mikeware
15.03.13
✎
14:31
|
(986) последняя единичка - это вроде проведение по оперучету
если семерка - только оперучет - можно =1 ну или попробуй =1 или=3 или=5 или=7, трех битовдолжно хватить... датаначала="20130314" датаокончания="20130314Z" |
|||
989
Wobland
15.03.13
✎
14:33
|
>семерка - только оперучет
не знаю точно, о чём это. компоненты установлены все три. да и неважно. 1, 3, 5, 7 - так и сделаю, пасиб |
|||
990
Wobland
15.03.13
✎
14:36
|
эх, не умею я как автор. со мной мы до тыщи не дотянем ;)
|
|||
991
Wobland
15.03.13
✎
14:37
|
"=1 или=3 или=5 или=7"
а где это писать? в какое место вставлять? |
|||
992
Wobland
15.03.13
✎
14:44
|
(991) поручики молчать!
|
|||
993
Mikeware
15.03.13
✎
14:45
|
(ЖурО.Closed=1) или (ЖурО.Closed=3) или...
|
|||
994
Wobland
15.03.13
✎
14:46
|
ожидается выражение ")"
| WHERE | SUBSTRING(ЖурО.Date_Time_IDDoc, 1, 8) BETWEEN &ДатаНачала AND &ДатаОкончания | (ЖурО.Closed=1) или (ЖурО.Closed=3) |
|||
995
Mikeware
15.03.13
✎
14:51
|
(994) а AND ()
bananan ставить будет? |
|||
996
viktor_vv
15.03.13
✎
14:52
|
(994) Ты заразился, что ли :)?
AND вася будет писать? |
|||
997
viktor_vv
15.03.13
✎
14:54
|
(986) И наверное лучше Left вместо substring, а то, судя по времени выполнения, индекс не используется, с left есть шанс .
|
|||
998
Wobland
15.03.13
✎
14:55
|
ЖурО.Closed AND 1 что ли?
|
|||
999
Wobland
15.03.13
✎
14:55
|
(997) подстрока как раз вместо лефта была вставлена. нет лефта в восьмёрочном языке
|
|||
1000
viktor_vv
15.03.13
✎
14:56
|
(987) Хотя это ж в синтаксисе восьмерки пишется, она вроде таких вещей не знает.
|
|||
1001
Wobland
15.03.13
✎
14:56
|
УРА!
|
|||
1002
viktor_vv
15.03.13
✎
14:57
|
(998) Ты реально выпей чего-нибудь для профилактики :).
| SUBSTRING(ЖурО.Date_Time_IDDoc, 1, 8) BETWEEN &ДатаНачала AND &ДатаОкончания | AND ((ЖурО.Closed=1) или (ЖурО.Closed=3)) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |