Имя: Пароль:
1C
Юмор
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
(995) из Запрос по обработке документов...

ты явно не в расшифровке написал ТЗ.Док .
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
!!! пример, не копировать !!!

       |    КоличествоСвойств=(CASE WHEN ([Props.НаименованиеСвойства] IS NULL) THEN 0 ELSE 1 END)";
       |    Остаток=(CASE WHEN [Остатки.МинОстаток] IS NULL THEN 0 ELSE [Остатки.МинОстаток] END)";

!!! пример, не копировать !!!
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.ИДДок, хочу добавить условие на нахождение в одном дне. а тут уже журнал... как это организовать? уже в глазах рябит

   |FROM
   |    _1SJourn AS Жур
   |    INNER JOIN
   |        $Документ.ОтчетККМ AS Док
   |    ON
   |        Док.IDDoc=Жур.IDDoc
   |    INNER JOIN
   |        $ДокументСтроки.ОтчетККМ AS ОтчётККМТЧ
   |    ON
   |        ОтчётККМТЧ.IDDoc=Жур.IDDoc
   |    LEFT JOIN
   |        $Документ.ВозвратОтПокупателя AS Возвраты
   |    ON
   |        RIGHT($Возвраты.ДокОснование, 9)=Док.IDDoc
   |    LEFT JOIN
   |        $ДокументСтроки.ВозвратОтПокупателя AS ВозвратыТЧ
   |    ON
   |        Возвраты.IDDoc=ВозвратыТЧ.IDDoc
   |        AND $ВозвратыТЧ.Номенклатура=$ОтчётККМТЧ.Номенклатура
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
пока солнце над украиной ещё невысоко, похвастаюсь своим запросом. кидание какашками (аргументированное) приветствуется ;)
исходная задача (упрощённо): поиметь ТЗ вида:
Дата | Касса | СуммаПродаж | СуммаВозвратов | СебестоимостьПроданного | СебестоимотьВозвращённого
начал с простого

   |SELECT
   |FROM
   |    (SELECT
   |    ) AS ОтчётыККМ
   |LEFT JOIN
   |    (SELECT
   |    ) AS Возвраты
   |LEFT JOIN
   |    (SELECT
   |    ) AS ПартииО
   |LEFT JOIN
   |    (SELECT
   |    ) AS ПартииВ

и закончил

   |SELECT
   |    ОтчётыККМ.ДатаДок AS Дата,
   |    ОтчётыККМ.Касса AS [Касса $Справочник.Кассы],
   |    SUM(ОтчётыККМ.Сумма) AS СуммаОтчётовККМ,
   |    SUM(Возвраты.Сумма) AS СуммаВозвратов,
   |    SUM(ПартииО.Сумма) AS СебестоимостьОтчётовККМ,
   |    SUM(ПартииВ.Сумма) AS СебестоимостьВозвратов,
   |    SUM(ОтчётыККМ.Сумма)-SUM(ISNULL(Возвраты.Сумма, 0)) AS ИтогПродаж,
   |    SUM(ПартииО.Сумма)-SUM(ISNULL(ПартииВ.Сумма, 0)) AS ИтогСебестоимости
   |FROM
   |    (SELECT
   |        CAST(LEFT(ЖурО.Date_Time_IDDoc, 8) AS DATETIME) AS ДатаДок,
   |        ОтчётККМТЧ.IDDoc AS Ссылка,
   |        $ОтчётККМШ.Касса AS Касса,
   |        $ОтчётККМТЧ.Номенклатура AS Номенклатура,
   |        SUM($ОтчётККМТЧ.Сумма) AS Сумма
   |    FROM
   |        _1SJourn AS ЖурО
   |    INNER JOIN
   |        $Документ.ОтчетККМ AS ОтчётККМШ
   |    ON
   |        ОтчётККМШ.IDDoc=ЖурО.IDDoc
   |    INNER JOIN
   |        $ДокументСтроки.ОтчетККМ AS ОтчётККМТЧ
   |    ON
   |        ОтчётККМШ.IDDoc=ОтчётККМТЧ.IDDoc
   |    WHERE
   |        ЖурО.Date_Time_IDDoc BETWEEN :ДатаНачала AND :ДатаОкончания~
   |        AND ЖурО.Closed&1=1
   |        AND (ЖурО.sp5365=:Организация OR :ИспользоватьВыгрузкуПоОрганизации=0)
   |    GROUP BY
   |        CAST(LEFT(ЖурО.Date_Time_IDDoc, 8) AS DATETIME),
   |        ОтчётККМТЧ.IDDoc,
   |        $ОтчётККМШ.Касса,
   |        $ОтчётККМТЧ.Номенклатура
   |    ) AS ОтчётыККМ
   |    INNER JOIN
   |        $Справочник.Кассы AS Кассы
   |    ON
   |        Кассы.ID=ОтчётыККМ.Касса
   // ОтчётыККМ //////////////////////////////////////////////////////
   ///////////////////////////////////////////////////////////////////
   |LEFT JOIN
   |    (SELECT
   |        CAST(LEFT(ЖурВ.Date_Time_IDDoc, 8) AS DATETIME) AS ДатаДок,
   |        ВозвратТЧ.IDDoc AS Ссылка,
   |        $ВозвратШ.ДокОснование AS ДокОснование,
   |        $ОтчётККМ.Касса AS Касса,
   |        $ВозвратТЧ.Номенклатура AS Номенклатура,
   |        SUM($ВозвратТЧ.Сумма) AS Сумма
   |    FROM
   |        _1SJourn AS ЖурВ
   |    INNER JOIN
   |        $Документ.ВозвратОтПокупателя AS ВозвратШ
   |    ON
   |        ВозвратШ.IDDoc=ЖурВ.IDDoc
   |    INNER JOIN
   |        $ДокументСтроки.ВозвратОтПокупателя AS ВозвратТЧ
   |    ON
   |        ВозвратШ.IDDoc=ВозвратТЧ.IDDoc
   |    INNER JOIN
   |        $Документ.ОтчетККМ AS ОтчётККМ
   |    ON
   |        RIGHT($ВозвратШ.ДокОснование, 9)=ОтчётККМ.IDDoc
   |    WHERE
   |        ЖурВ.Date_Time_IDDoc BETWEEN :ДатаНачала AND :ДатаОкончания~
   |        AND ЖурВ.Closed&1=1
   |        AND (ЖурВ.sp5365=:Организация OR :ИспользоватьВыгрузкуПоОрганизации=0)
   |    GROUP BY
   |        CAST(LEFT(ЖурВ.Date_Time_IDDoc, 8) AS DATETIME),
   |        ВозвратТЧ.IDDoc,
   |        $ВозвратШ.ДокОснование,
   |        $ОтчётККМ.Касса,
   |        $ВозвратТЧ.Номенклатура
   |    ) AS Возвраты
   |    ON
   |        RIGHT(Возвраты.ДокОснование, 9)=ОтчётыККМ.Ссылка
   |        AND Возвраты.ДатаДок=ОтчётыККМ.ДатаДок
   |        AND ОтчётыККМ.Касса=Возвраты.Касса
   |        AND ОтчётыККМ.Номенклатура=Возвраты.Номенклатура
   // ВозвратОтПокупателя ////////////////////////////////////////////
   ///////////////////////////////////////////////////////////////////
   |LEFT JOIN
   |    (SELECT
   |        прт.IDDoc AS Ссылка,
   |        $прт.Номенклатура AS Номенклатура,
   |        SUM($прт.СуммаБезНДС) AS Сумма
   |    FROM
   |        $Регистр.ПартииНаличие AS прт
   |    GROUP BY
   |        прт.IDDoc,
   |        $прт.Номенклатура) AS ПартииО
   |    ON
   |        ОтчётыККМ.Ссылка=ПартииО.Ссылка
   |        AND ОтчётыККМ.Номенклатура=ПартииО.Номенклатура
   |LEFT JOIN
   |    (SELECT
   |        прт.IDDoc AS Ссылка,
   |        $прт.Номенклатура AS Номенклатура,
   |        SUM($прт.СуммаБезНДС) AS Сумма
   |    FROM
   |        $Регистр.ПартииНаличие AS прт
   |    GROUP BY
   |        прт.IDDoc,
   |        $прт.Номенклатура) AS ПартииВ
   |    ON
   |        Возвраты.Ссылка=ПартииВ.Ссылка
   |        AND Возвраты.Номенклатура=ПартииВ.Номенклатура
   // Партии /////////////////////////////////////////////////////////
   ///////////////////////////////////////////////////////////////////
   |GROUP BY
   |    ОтчётыККМ.ДатаДок,
   |    ОтчётыККМ.Касса,
   |    Кассы.Descr
   |ORDER BY
   |    ОтчётыККМ.ДатаДок,
   |    Кассы.Descr
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) как запрос к семёрочному источнику сделать?

   |    FROM
   |        ВнешнийИсточникДанных.ТиС.Таблица.dbo__1SJOURN AS ЖурО
   |    WHERE
   |        SUBSTRING(ЖурО.Date_Time_IDDoc, 1, 8) BETWEEN &ДатаНачала AND &ДатаОкончания
   //|        AND ЖурО.Closed&1=1

не знает восьмёрка битовых умножений. как проведённость в условии задать?
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))
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс