|
Опять прямой запрос :( Ø (длинная ветка 11.04.2013 14:14) | ☑ | ||
---|---|---|---|---|
0
bananan
26.03.13
✎
19:19
|
Дело в том, что к запросам, которые вы мне помогали написать (или, скорее вы их написали) есть некоторые замечания клиента (шефа моего).
Так вот в запросе №2 |SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,lineno_ НомерСтроки_ | ,Автор [Автор $Справочник.Сотрудники] | ,Клиент [ Клиент $Справочник.Клиенты] | , 'Не встановлена ціна катгорії' as Ошибка |FROM ( |SELECT | Запрос.* | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта ЦенаДляКаналаСбыта мне нужна в саомом внешнем запросе (т.е. после первого оператора селект, пробывал и так и сяк - никак не получается. Подскажите, ребята, пожалуйста! |
|||
1
bananan
26.03.13
✎
19:59
|
Как нри странно с єтой проблемой разобрался сам, но возникла вторая проблема если сам не разбирусь, то завтра буду к вам обрахаться...
|
|||
2
Mikeware
26.03.13
✎
20:02
|
тебя еще не уволили? :-(
|
|||
3
viktor_vv
26.03.13
✎
20:06
|
(1) Действительно странно :)). Неужели прогресс.
|
|||
4
фобка
26.03.13
✎
20:29
|
(0) сам, всё сам!
|
|||
5
MishaD
26.03.13
✎
21:32
|
Еще несколько тем, и будет гуру прямых запросов.
|
|||
6
1Сергей
27.03.13
✎
07:04
|
(1) трудно понять в каком месте слова "обрахаться" опечатка
|
|||
7
Wobland
27.03.13
✎
07:08
|
завтра пришло! ждём обраха
|
|||
8
Wobland
27.03.13
✎
07:13
|
кстати, Ицик говорил, что звёзды в запросе некошерны. и очень даже аргументировал
|
|||
9
ЧеловекДуши
27.03.13
✎
07:40
|
(0) Тебя еще не уволили? Жесть...
|
|||
10
ЧеловекДуши
27.03.13
✎
07:41
|
(5) Не... не будет :)
Человек не способен запомнить что от куда и куда, где больше 2-ух вложений :) |
|||
11
ЧеловекДуши
27.03.13
✎
07:42
|
(8) Интересно, он тебя послушает? :)
|
|||
12
ЧеловекДуши
27.03.13
✎
07:44
|
>>> есть некоторые замечания клиента
Вот ты чудик, ты сейчас нам тут еще предьявы кидать собрался? :) Даже если запрос удали твою БД, то вся вина на тебе :) |
|||
13
Wobland
27.03.13
✎
07:46
|
(12) дык не собрался, а посетовал
(11) неа. это к теории и пониманию парадигмы в целом относится. такие материи человеку недоступны |
|||
14
ЧеловекДуши
27.03.13
✎
07:50
|
(13) >>> дык не собрался, а посетовал
Все ровно не приятно, написал, что дескать его шеф нам указ и что-то значит :) И сейчас мы тут все ему поправим :) |
|||
15
Wobland
27.03.13
✎
07:51
|
(14) ну не наю, у меня такого восприятия не возникло..
|
|||
16
Wobland
27.03.13
✎
07:52
|
нет, но каков красавец! 40 минут на решение и без единой подсказки ;)
|
|||
17
oslokot
27.03.13
✎
09:23
|
(6) )))
|
|||
18
bananan
27.03.13
✎
11:38
|
Таки сам пока не смоги вникнуть. Значит во-первых в таблицу значений попадают те поля, который перечислены во внешнем селекте? Я, по-крайней мере, исхожу из этого, во 2-м запросе мне надо выудить в таблицу значений КаналСбыта и КатегориюЦЕны,
2-й запрос выглядит так: |SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,lineno_ НомерСтроки_ | ,Автор [Автор $Справочник.Сотрудники] | ,Клиент [ Клиент $Справочник.Клиенты] | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ | , 'Не встановлена ціна катгорії' as Ошибка |FROM ( |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , $Доставка.КаналСбытаТТ 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 ' ' 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 ISNULL(ЦенаДляКаналаСбыта,0)=0 |"; Подскажите пожалйуста! |
|||
19
Wobland
27.03.13
✎
11:40
|
$КаналСбыта.КатегорияЦены не можешь наверх вытянуть?
|
|||
20
bananan
27.03.13
✎
11:50
|
(19) Елси бі все біло так просто... Чтобы достучаться до $КаналСбыта.КатегорияЦены надо еще много чего наверх вытянуть. Таже Доставка и т.д. Или я ошибаюсь?
|
|||
21
Wobland
27.03.13
✎
11:54
|
(20) вон оно у тебя тупо в селекте
|
|||
22
viktor_vv
27.03.13
✎
11:56
|
Просто снаружи пиши в селекте Запрос.КатегорияЦены.
И ты бы алиасы для вложенных запросов как-то разнообразил. |
|||
23
bananan
27.03.13
✎
12:08
|
(22) Спасибо, попробую так
|
|||
24
bananan
27.03.13
✎
12:11
|
+(23) Как я и думал, так не проходит:
|SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,lineno_ НомерСтроки_ | ,Автор [Автор $Справочник.Сотрудники] | ,Клиент [ Клиент $Справочник.Клиенты] | , Запрос.КаналСбыта | , Запрос.КатегорияЦены /*треба винести у зовнышный запрос*/ | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ | , 'Не встановлена ціна катгорії' as Ошибка |FROM ( |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШН.Клиент, $ДокШ.Клиент) 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 ' ' 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 ISNULL(ЦенаДляКаналаСбыта,0)=0 |"; выдает: Invalid column name 'КаналСбыта'. |
|||
25
Wobland
27.03.13
✎
12:11
|
(22) не взлетит у него.
выбрать из (выбрать из (выбрать $КаналСбыта.КатегорияЦены) как Запрос) как Запрос) в Запросе нет такого поля |
|||
26
Wobland
27.03.13
✎
12:13
|
(24) я тебе даже сказал, в какой таблице его нет. намекаю: а не добавить ли это поле туда?
|
|||
27
bananan
27.03.13
✎
12:13
|
(26) В таблице Запрос?
|
|||
28
Wobland
27.03.13
✎
12:14
|
(27) ай, молодца!
|
|||
29
bananan
27.03.13
✎
12:20
|
(28) И что делать?
|
|||
30
bananan
27.03.13
✎
12:21
|
+(29) пардон, пропустил пост (26). Сейчас попробую добавить єто поле в таблицу Запрос... ну и сначала видимо с альясами разберусь чтобі они более нормально віглядели..
|
|||
31
Ёпрст
27.03.13
✎
12:21
|
Дарю:
........ ,КаналСбыта as [КаналСбыта $Справочник.КаналыСбыта] .......... ,КаналСбыта.id as КаналСбыта |
|||
32
Ёпрст
27.03.13
✎
12:22
|
вставить в нужное место в тексте запроса- наслаждаться
|
|||
33
bananan
27.03.13
✎
12:23
|
+(30) Что-то я опять запутался. Текст запроса:
|SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,lineno_ НомерСтроки_ | ,Автор [Автор $Справочник.Сотрудники] | ,Клиент [ Клиент $Справочник.Клиенты] | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ | , 'Не встановлена ціна катгорії' as Ошибка |FROM ( |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , $Доставка.КаналСбытаТТ 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 ' ' 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 ISNULL(ЦенаДляКаналаСбыта,0)=0 |"; и КаналСбыта и КатегорияЦены вроде как в таблице Запрос? |
|||
34
bananan
27.03.13
✎
12:25
|
(32) попробую и так, надо джоин добавить к внешнему запросу? И куда этот джоин втавлять? уже я так пробывал, но вот не пойму куда вставить джоин... :(
|
|||
35
Wobland
27.03.13
✎
12:25
|
(33) да
|
|||
36
Ёпрст
27.03.13
✎
12:26
|
(34) где в (31) ты увидел джоин ?
|
|||
37
Wobland
27.03.13
✎
12:26
|
/*чавкая поп-корном*/
когда ж он наконец сообразит, что у него 2 таблицы Запрос?.. |
|||
38
bananan
27.03.13
✎
12:28
|
(35-37) Сейчас попробую все вкучу слепить...
|
|||
39
Wobland
27.03.13
✎
12:29
|
+(38) хорошенько перемешать и посолить
|
|||
40
bananan
27.03.13
✎
12:33
|
(39) Не то слово.. Ребята помогите!
пробывал так (альясы нормально задать чтобы не было две Запрос): | ) Запрос |) Запрос2 WHERE ISNULL(ЦенаДляКаналаСбыта,0)=0 |"; Дак не пропускает: The column prefix 'Запрос' does not match with a table name or alias |
|||
41
Wobland
27.03.13
✎
12:35
|
(40) хочешь, я за тебя это на русский переведу?
|
|||
42
Ёпрст
27.03.13
✎
12:35
|
(40) читай (31) до полного просветления.
Тебе уже 2 строчки кода впадлу вставить в нужное место ? |
|||
43
Wobland
27.03.13
✎
12:36
|
(42) в какое-какое?
|
|||
44
bananan
27.03.13
✎
12:37
|
+(40 Дак и так не проходит:
| ) Запрос2 |) Запрос WHERE ISNULL(ЦенаДляКаналаСбыта,0)=0 |"; выдает все тот же: The column prefix 'Запрос' does not match with a table name or alias |
|||
45
bananan
27.03.13
✎
12:39
|
(42) Читаю и НЕ понимаю...
,КаналСбыта as [КаналСбыта $Справочник.КаналыСбыта] .......... ,КаналСбыта.id as КаналСбыта это правильно?? |
|||
46
bananan
27.03.13
✎
12:42
|
+(45) Входит что КаналСбыта и КаналСбыта.id имеют одинаковый альяыс КаналСбыта...
|
|||
47
bananan
27.03.13
✎
12:44
|
Добавил во внещний запрос | ,КаналСбыта as [КаналСбыта $Справочник.КаналыСбыта] - работает...
Но мне надо КаналСбыта.КатегорияЦены! |
|||
48
bananan
27.03.13
✎
12:46
|
+(47) так:
| ,КаналСбыта as [КаналСбыта $Справочник.КаналыСбыта] | ,$КаналСбыта.КатегорияЦены as [КатЦены $Перечисление.ТипыЦен] не проходит: The column prefix 'КаналСбыта' does not match with a table name or alias name used in the query. |
|||
49
Mikeware
27.03.13
✎
12:52
|
феерично
|
|||
50
Ёпрст
27.03.13
✎
12:52
|
Ё..
|
|||
51
Mikeware
27.03.13
✎
12:52
|
(50) ...твоЁ
|
|||
52
Ёпрст
27.03.13
✎
12:55
|
(48)
// | ,$КаналСбыта.КатегорияЦены as [КатЦены $Перечисление.ТипыЦен] | КатегорияЦены as [КатЦены $Перечисление.ТипыЦен] |
|||
53
bananan
27.03.13
✎
13:05
|
(52) ТАк просто? слабо верится, но сейчас проверю...
Блин, точно РАБОТАЕТ!! Вот за ето я 1С с одной стороны мякго говоря не люблю, а сдругой стороны - уважаю |
|||
54
Ёпрст
27.03.13
✎
13:14
|
1с тут не причем
|
|||
55
bananan
27.03.13
✎
14:30
|
РЕбята, я что-то опять начудил... Значит так вывожу значения в Таблицу (на экран) и он не видит ТбРазом.Клиент и ТбРазом.Ошибка расшифровки для каждого из полей поставленны сообтветствующие к тому же еще и ошибку выдает:
Поле агрегатного объекта не обнаружено (Клиент) что я где наглючил? |
|||
56
Ёпрст
27.03.13
✎
14:31
|
в коде
|
|||
57
Ёпрст
27.03.13
✎
14:31
|
хотя, ошибка там же где и всегда
|
|||
58
bananan
27.03.13
✎
14:32
|
(57) это где?
|
|||
59
Wobland
27.03.13
✎
14:37
|
(58) в кислоте
|
|||
60
bananan
27.03.13
✎
14:39
|
(59) НЕ смешно ...
во всех трех запросах у меня во внешнем селкте есть Клиент [ Клиент $Справочник.Клиенты] и Ошибка тоже есть...! |
|||
61
Ёпрст
27.03.13
✎
14:41
|
(60) не удивительно, она же на генном уровне
|
|||
62
Wobland
27.03.13
✎
14:42
|
(60) что, думаешь врёт про поле агрегатного объекта?
|
|||
63
bananan
27.03.13
✎
14:45
|
(62) Да не думаю а так.. А почему если я вывожу в ТаблицуЗначений то там оба поля нормально показаны...
|
|||
64
Wobland
27.03.13
✎
14:47
|
так показаны или не обнаружено?
|
|||
65
bananan
27.03.13
✎
14:50
|
(64) В ТаблицеЗначений поля нормально показаны, а вот в Тыблице (та что типа печатная форма) "необнарудено" для Клиент а вот Ошибка в ячейк ТбРазом.Ошибка, а не значение ТбРазом.Ошибка!
|
|||
66
Wobland
27.03.13
✎
14:52
|
>а вот Ошибка в ячейк ТбРазом.Ошибка, а не значение ТбРазом.Ошибка!
ща, подожди, я придумаю хоть сколько-нибудь рациональную трактовку этого |
|||
67
Wobland
27.03.13
✎
14:52
|
а ЛСД - это кислота?
|
|||
68
bananan
27.03.13
✎
14:55
|
(66) Я иногда бівает и даже часто туплю, но здесь я что неправильно написал? В даной ячейке я вывожу выражение ТбРазом.Ошибка. т.е. там должно вывестить значение ТбРазом.Ошибка. Или не так?
|
|||
69
Ёпрст
27.03.13
✎
14:55
|
Эээхх.. гуманоид бананан так и не научился нормально разговаривать с землянами - никто его не понимает с первого раза.
ЗЫ: код вывода то хоть покажи, как в свою Таблицу выводишь и что выводишь |
|||
70
Wobland
27.03.13
✎
14:55
|
а вот в ячейке, а не значение... что бы это могло быть? какой-то ответ на неведомую нам загадку?
|
|||
71
Wobland
27.03.13
✎
14:58
|
а семёрочный отладчик умеет ТЗ показывать а-ля восьмёрочный? насколько помню, у него проблемы с этим
|
|||
72
bananan
27.03.13
✎
14:58
|
(69) Обыяно вывожу:
ТбРазом = СоздатьОбъект("ТаблицаЗначений"); ТбЗн.Выгрузить(ТбРазом); ТбРазом.КоличествоСтрок(ТбРазом.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+ТбЗн3.КоличествоСтрок()); ТбРазом.Заполнить(ТбЗн2, ТбЗн.КоличествоСтрок()+1); ТбРазом.Заполнить(ТбЗн3, ТбЗн.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+1); ТбРазом.ВыбратьСтроку(); ТбРазом.ВыбратьСтроки(); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица1"); Таб.ВывестиСекцию("Шапка"); Таб.Опции(0,0,Таб.ВысотаТаблицы()); Предыдущий = СоздатьОбъект("Документ"); Пока(ТбРазом.ПолучитьСтроку()=1) Цикл Если ТбРазом.Документ<>Предыдущий тогда Предыдущий = ТбРазом.Документ; Таб.ВывестиСекцию("Документ"); Конецесли; Если Подр=1 тогда Таб.ВывестиСекцию("Ошибка"); КонецЕсли; Таб.ВывестиСекцию("Ошибочка"); КонецЦикла; Таб.ТолькоПросмотр(1); //Таб.Защита(0); ; //Таб.ОбластьПечати(2); Таб.Показать("Журнал-документов: ("+ПериодСтр(ДатаС, ДатаПо)+")", ); |
|||
73
sapphire
27.03.13
✎
15:01
|
(71) Умеет, еще как умеет :)
ВыбратьСтроку называется :) |
|||
74
Wobland
27.03.13
✎
15:01
|
(73) от изврат-то...
|
|||
75
Ёпрст
27.03.13
✎
15:02
|
так..
ТбЗн откуда взялась ? В ячейке Таблицы в поле Текст что написано ? Тип ячейки какой ? |
|||
76
SherifSP
27.03.13
✎
15:02
|
Ай молодець!
|
|||
77
sapphire
27.03.13
✎
15:04
|
Не хотят дядьки его UNION учить :)
|
|||
78
Wobland
27.03.13
✎
15:07
|
а давайте всю эту тряхомудию на выборках и циклах перепишем. циклы проще для понимания
|
|||
79
Ёпрст
27.03.13
✎
15:10
|
(77) рано еще, пусть сперва с простыми конструкциями языка поосвоится - циклы, условия, процедуры/функции..
|
|||
80
bananan
27.03.13
✎
15:12
|
(75) Показываю полный код скрипта:
//******************************************* Процедура Сформировать() Запрос=СоздатьОбъект("ODBCRecordset"); ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [ Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, '' as МинКат |, '' as ЦенаДляКаналаСбытаВ |, '' as КатегорияЦены |, '' as МинЦена |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , 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 $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | 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) |"; Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); // ТбЗн.ВыбратьСтроки(); // ТбЗн.ВыбратьСтроку(); ТекстЗапроса = " |SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,lineno_ НомерСтроки_ | ,Автор [Автор $Справочник.Сотрудники] | ,Клиент [ Клиент $Справочник.Клиенты] | ,'' as ЦенаПрих | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ | ,КатегорияЦены as [КатЦены $Перечисление.ТипыЦен] | , '' as МинЦена | , 'Не встановлена ціна катгорії' as Ошибка |FROM ( |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , $Доставка.КаналСбытаТТ 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 ' ' 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 ISNULL(ЦенаДляКаналаСбыта,0)=0 |"; Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); ТбЗн2 = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); //ТбЗн2.ВыбратьСтроки(); //ТбЗн2.ВыбратьСтроку(); /// минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); ТекстЗапроса = " |SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,lineno_ НомерСтроки_ | ,Автор [Автор $Справочник.Сотрудники] | ,Клиент [ Клиент $Справочник.Клиенты] | ,'' as ЦенаПрих | ,'' as МинКат | ,'' as ЦенаДляаналаСбытаВ | ,'' as КатегорияЦены | , Запрос.МинЦена*(1-Запрос.Скидка/100) as МинЦена | ,'має дуже малу ціну=' | +cast(cast(Запрос.СуммаСНДС / Запрос.Количество as numeric(15,2)) as varchar(255)) | +' мінімальна=' | +cast(cast(Запрос.МинЦена*(1-Запрос.Скидка/100) as numeric(15,2)) as varchar(255)) | ,Запрос.Клиент [ Клиент $Справочник.Клиенты] |FROM ( |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены 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 ' ' 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 ROUND(case when Запрос.Количество = 0 then 0 else Запрос.СуммаСНДС / Запрос.Количество end, 2)<ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2) |"; Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); ТбЗн3 = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); //ТбЗн3.ВыбратьСтроку(); //Первая1 = ТбРазом = СоздатьОбъект("ТаблицаЗначений"); ТбЗн.Выгрузить(ТбРазом); ТбРазом.КоличествоСтрок(ТбРазом.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+ТбЗн3.КоличествоСтрок()); ТбРазом.Заполнить(ТбЗн2, ТбЗн.КоличествоСтрок()+1); ТбРазом.Заполнить(ТбЗн3, ТбЗн.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+1); ТбРазом.ВыбратьСтроку(); ТбРазом.ВыбратьСтроки(); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица1"); Таб.ВывестиСекцию("Шапка"); Таб.Опции(0,0,Таб.ВысотаТаблицы()); Предыдущий = СоздатьОбъект("Документ"); Пока(ТбРазом.ПолучитьСтроку()=1) Цикл Если ТбРазом.Документ<>Предыдущий тогда Предыдущий = ТбРазом.Документ; Таб.ВывестиСекцию("Документ"); Конецесли; Если Подр=1 тогда Таб.ВывестиСекцию("Ошибка"); КонецЕсли; Таб.ВывестиСекцию("Ошибочка"); КонецЦикла; Таб.ТолькоПросмотр(1); //Таб.Защита(0); ; //Таб.ОбластьПечати(2); Таб.Показать("Журнал-документов: ("+ПериодСтр(ДатаС, ДатаПо)+")", ); |
|||
81
Ёпрст
27.03.13
✎
15:18
|
А нафига 3 запроса ?
:)) Кто там про юнион то говрил ? |
|||
82
Ёпрст
27.03.13
✎
15:18
|
Что написано в ячейке Таблицы ?
|
|||
83
bananan
27.03.13
✎
15:19
|
(82) ТбРазом.Клиент тип - выражение
ТбРазом.Ошибка тип - выражение |
|||
84
bananan
27.03.13
✎
15:21
|
(82) а вот как объеденить эти три запроса в один я НЕ знаю :(
|
|||
85
Privalov
27.03.13
✎
15:26
|
Мля, ну сколько можно.... )))))))
|
|||
86
bananan
27.03.13
✎
15:29
|
(85) А кроме Мля ты ничего сказать не можешь?
|
|||
87
Анна_84
27.03.13
✎
15:35
|
(85) попкорн кончился? )))
|
|||
88
ЧеловекДуши
27.03.13
✎
15:39
|
Интересно, может банан Бот? Просто все вопросы св точности совпадают с прошлыми ветками, а Ёпрст так же отвечает теми же ответами :)
|
|||
89
bananan
27.03.13
✎
15:40
|
(88) Пример приведи и не патякай!
|
|||
90
ЧеловекДуши
27.03.13
✎
15:43
|
Интеллектуальный бот, он со мной говорит О_о :)
+(89) Пример чего? все что тут тебе подсказывают, уже было много раз... запрос я посмотрю тот же, только ты не изошёлся до вывода какой-то таблицы... иже там не в состоянии чего-то вывести, ты вообще 1С читал, лили так, решил с наскока все осилить :) |
|||
91
bananan
27.03.13
✎
15:46
|
(90) ДушаБота патякает пример "Просто все вопросы св точности совпадают с прошлыми ветками, а Ёпрст так же отвечает теми же ответами ", а не лей свою желч...
|
|||
92
Ёпрст
27.03.13
✎
15:52
|
(84) ну, если не в даваться в подробности и оптимизацию запроса - то тупо union all воткнуть между ними всеми.
|
|||
93
Ёпрст
27.03.13
✎
15:52
|
ну и типизацию с последних двух убрать.
|
|||
94
bananan
27.03.13
✎
15:55
|
(92) Елси не трудно покажи как это делается? Я такого никогда раньше не делал..
|
|||
95
Ёпрст
27.03.13
✎
16:01
|
(94)
select b,a from table1 union all select n,an from table2 .... select aa,nn from tableN |
|||
96
bananan
27.03.13
✎
16:08
|
(95) Да и это в данный момент не так важно с обэдинением запросов можно подождать, вот почему в таблицу у меня поля не выводятся?
|
|||
97
Ёпрст
27.03.13
✎
16:11
|
[ Клиент тут пробел убери
|
|||
98
Ёпрст
27.03.13
✎
16:13
|
а чего не выводится ? а чего пишет при выводе ?
Поменяй на тип ячейки Шаблон сохрани - смени на выражение, или скопируй "работающую" ячейку и поменяй в ней текст на нужный. |
|||
99
bananan
27.03.13
✎
16:14
|
(97) с клиетном сработало, а что делать с Ошибка?
|
|||
100
Ёпрст
27.03.13
✎
16:19
|
(99) а что с ней не так ?
|
|||
101
bananan
27.03.13
✎
16:23
|
в таблице (та что на печать и т.д.) выводит в той ячейке:
ТбРазом.Ошибка (в данной ячейке у меня стоит выражение.... Упс, опять пардон там я не выраждение выводил а просто текст.. Так что все вроде бы нормально. Спасибо!! |
|||
102
bananan
27.03.13
✎
16:37
|
+ Оказывается это еще не все... Короче мне надо еще показывать %, он вычисляется так ЦенаВДокуменет/приходнуюцену*100, но иногда приходная цена равна =0 ну и это глючит, как выбрать с цсловием (where если я не ошибаюсь), кто может покажите пожалуйста..
|
|||
103
bananan
27.03.13
✎
16:38
|
+(102) не вера, а касе ... :(
|
|||
104
bananan
27.03.13
✎
16:46
|
+(103) пробывал так:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, '' as МинКат |, '' as ЦенаДляКаналаСбытаВ |, '' as КатегорияЦены |, '' as МинЦена |, Данные.СуммаСНДС / Данные.Количество as ЦенаТовара |, case Данные.Цена_Прих | WHEN Данные.Цена_Прих=0 then 0 | WHEN Данные.Цена_Прих<>0 then (ЦенаТовара/Данные.Цена_Прих-1)*100 end as Проц |, 'має ціну нижчу за прихідну' as Ошибка |from ( выдает: Incorrect syntax near '='. |
|||
105
Ёпрст
27.03.13
✎
16:52
|
в какой строке то хоть?
тут ошибок нема |
|||
106
Ёпрст
27.03.13
✎
16:53
|
а ёпт, увидел ошибку..
|
|||
107
Ёпрст
27.03.13
✎
16:53
|
:))
|
|||
108
Ёпрст
27.03.13
✎
16:53
|
Если че, ЦенаТовара - нет такого поля.
|
|||
109
bananan
27.03.13
✎
16:55
|
(108_) аэто что: |, Данные.СуммаСНДС / Данные.Количество as ЦенаТовара
|
|||
110
Ёпрст
27.03.13
✎
16:56
|
:)))
|
|||
111
Ёпрст
27.03.13
✎
16:57
|
Ну как тебе сказать то попроще ?
У тебя в этом селекте есть только Данные.СуммаСНДС / Данные.Количество ЦенаТовара появится на выходе - так скуль назовёт эту колонку По этому имени ты сможешь только во внешнем запросе обратится, к примеру. |
|||
112
Дык ё
27.03.13
✎
17:03
|
(111) не только. можно в order by, например. а ошибка у него между case и when
|
|||
113
bananan
27.03.13
✎
17:04
|
(111) А как это правильно написать?
|
|||
114
Дык ё
27.03.13
✎
17:04
|
+(112) два варианта синтаксиса смешаны, короче
|
|||
115
Ёпрст
27.03.13
✎
17:05
|
(112) не во всех языках можно алияс в ордер бай кидать - где-то не прокатывало.
|
|||
116
Ёпрст
27.03.13
✎
17:07
|
|, case Данные.Цена_Прих
| WHEN 0 then 0 | Else ((Данные.СуммаСНДС / Данные.Количество)/Данные.Цена_Прих-1)*100 end as Проц |
|||
117
bananan
27.03.13
✎
17:07
|
Ребята, ну очень надо |SELECT
| Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, '' as МинКат |, '' as ЦенаДляКаналаСбытаВ |, '' as КатегорияЦены |, '' as МинЦена |, Данные.СуммаСНДС / Данные.Количество as ЦенаТовара |, case Данные.Цена_Прих | WHEN Данные.Цена_Прих=0 then 0 | WHEN Данные.Цена_Прих<>0 then (ЦенаТовара/Данные.Цена_Прих-1)*100 end as Проц |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , 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 $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | 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) |"; вот это правильно написать... ПОМОГИТЕ.... |
|||
118
bananan
27.03.13
✎
17:11
|
(116) Спасибо!
|
|||
119
bananan
27.03.13
✎
17:21
|
Извините, а как на выходе округлить значение? На выходе - в таблице, той что показываю на экране....
|
|||
120
Анна_84
27.03.13
✎
17:37
|
(119)
ТвоеЗначение#Ч5.2 Окр(ТвоеЗначение,2,0) Формат(ТвоеЗначение,"Ч5.2") |
|||
121
Ёпрст
27.03.13
✎
17:37
|
(120) новый фанат в клубе бананана ?
:) |
|||
122
Анна_84
27.03.13
✎
17:40
|
(121) я давно наблюдаю )))
|
|||
123
bananan
27.03.13
✎
18:00
|
+(119) С округлением уже сам вспомнил...
|
|||
124
bananan
27.03.13
✎
18:00
|
+(123) Анна, спасибо
|
|||
125
Mikeware
27.03.13
✎
18:01
|
(123) ну, через 23 минуты после подсказки довольно легко вспомнить...
|
|||
126
Ёпрст
27.03.13
✎
18:05
|
Видать слишком большой зрительный нерв..или тупо мозги зависли - пришлось рестартовать.
|
|||
127
Ёпрст
27.03.13
✎
18:05
|
+время на разогрев, промывку..вот 23 минуты и пришло оно - озарение
|
|||
128
bananan
27.03.13
✎
18:09
|
(125) Вспомнил я раньше, просто сюда написал через 23 минуты...
|
|||
129
Ёпрст
27.03.13
✎
18:10
|
Т.е через 23 минуты вспомнил, что сюда написать надо ?
Силён! |
|||
130
bananan
27.03.13
✎
18:28
|
(129) Уж извините. но я не всегда помню о форуме...
|
|||
131
batman69
27.03.13
✎
18:29
|
Ну, в натуре, сколько можно уже ?
|
|||
132
sapphire
27.03.13
✎
19:26
|
Таки Флавий интересней пишет:)
|
|||
133
Mikeware
27.03.13
✎
19:41
|
(132) запросы пишет? :-)
|
|||
134
bananan
28.03.13
✎
11:36
|
Доброе утро всем! Объяните мне, пожалйста, кто может...
На данный момент текст запроса у меня такой: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , 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 $Справочник.ТМЦ ТМЦ (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) |"; Всего 37 строк. ТАк вот выдает: ERT(45)}: Meta name parser error: неизвестное метаимя или алиас "$Доставка" Где в моем запросе 45-я строка? |
|||
135
Mikeware
28.03.13
✎
11:38
|
Отладка(1)
|
|||
136
Ёпрст
28.03.13
✎
11:39
|
(134)
от тута $Доставка.КаналСбытаТТ as КаналСбыта |
|||
137
bananan
28.03.13
✎
11:42
|
(136) Вопрос, почему парсер сообщает что ошибка в 45-й строке..., второй вопрос:
| , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта т.е. Доставку я сначала поределяю, а уже после этого обращаюсь к ней... Что неправильно? |
|||
138
F00FC7C88
28.03.13
✎
11:42
|
Опять прямой запрос! Опять Юмор! Ну просто мальчик Банана )
|
|||
139
Ёпрст
28.03.13
✎
11:47
|
(137) подумай, что есть $Доставка у тебя
|
|||
140
Ёпрст
28.03.13
✎
11:48
|
если че, таблички Доставка во from и в соединениях у тебя нема.
|
|||
141
bananan
28.03.13
✎
11:51
|
(138) Что бы мы без твоих умных и главное уместнх замечаний делали...
|
|||
142
ЧеловекДуши
28.03.13
✎
11:53
|
(141) Скоро пятница, ты там уже место занял :)
|
|||
143
Mikeware
28.03.13
✎
11:53
|
(140) ...и мы возвращаемся на 3 месяца назад :-)))
|
|||
144
viktor_vv
28.03.13
✎
11:54
|
(135) Если он увидит, что выдаст отладка(1), это может взорвать ему мозг.
|
|||
145
ЧеловекДуши
28.03.13
✎
11:54
|
(144) Мозх, а он есть О_о...
|
|||
146
viktor_vv
28.03.13
✎
11:55
|
(145) Ну я не подумавши ляпнул :).
|
|||
147
ЧеловекДуши
28.03.13
✎
11:57
|
(140) Эхх... широкой души ты :)
Он как бы уже с прошлых двух веток должен был понять, что такое псевдонимы для 1С++ в виде "$Доставка"... Но судя по вопросам, он так и осилил :( |
|||
148
ЧеловекДуши
28.03.13
✎
11:57
|
(147) осилил -> НЕ осилил
|
|||
149
bananan
28.03.13
✎
12:44
|
Что-то я совсем запутался.. :(
Текст запроса на данный момент такой: ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка |, $Доставка.КаналСбытаТТ 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 ' ' END ИдентификаторИсторииЦены | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , 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 $Справочник.ТМЦ ТМЦ (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 ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; РУгается он: The column prefix 'ДокШН' does not match with a table name or alias name used in the query. |
|||
150
Ёпрст
28.03.13
✎
12:46
|
(149)
// |, $Доставка.КаналСбытаТТ as КаналСбыта это для начала |
|||
151
Ёпрст
28.03.13
✎
12:47
|
причем, в 2-х местах
|
|||
152
bananan
28.03.13
✎
12:49
|
(151) Заремарил в двух местах : //| , $Доставка.КаналСбытаТТ as КаналСбыта все-равно выдает:
The column prefix 'ДокШН' does not match with a table name or alias name used in the query. |
|||
153
bananan
28.03.13
✎
12:53
|
+(152) Но ведь ДокШН у меня определяется:
| Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная |
|||
154
vinogradъ
28.03.13
✎
12:54
|
(152) нет у тебя в первом select'e ни таблицы $ДокШН, ни $ДокШ, $Доставка, ни $КаналСбыта. Есть только Данные.
|
|||
155
bananan
28.03.13
✎
12:56
|
(154) Что-то я сегодня уж совем торможу, т.е . надо $ДокШН писать как $Доставка.ДокШН ну и все остальные так же?
|
|||
156
viktor_vv
28.03.13
✎
12:58
|
(155) Не надо так писать.
Вместо |, isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка |, $Доставка.КаналСбытаТТ as КаналСбыта в верхнем селекте напиши одну строку |, Данные.КаналСбыта as КаналСбыта |
|||
157
viktor_vv
28.03.13
✎
12:59
|
Ну и вместо
|, case $КаналСбыта.КатегорияЦены пиши |, case Данные.КатегорияЦены |
|||
158
viktor_vv
28.03.13
✎
13:00
|
А то аж больно смотреть на твои мучения.
|
|||
159
Mikeware
28.03.13
✎
13:09
|
(158) это не мучения....
это издевательство.... |
|||
160
bananan
28.03.13
✎
13:44
|
(156, 157) Написал так:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта 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 ' ' END ИдентификаторИсторииЦены | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , 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($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | 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 'КаналСбыта'. |
|||
161
Ёпрст
28.03.13
✎
13:49
|
Шо опять ?!
Ну воткни ты строчку | , $КаналСбыта.id as КаналСбыта наконец.. даже по пробелам не сложно догадаться куда именно |
|||
162
bananan
28.03.13
✎
13:52
|
(161) По пробелам да и так просто недогадываюсь куда именно ее втыкать, сейчас буду пробывать...
|
|||
163
Ёпрст
28.03.13
✎
13:52
|
Используй метод научного тыка!
|
|||
164
bananan
28.03.13
✎
13:54
|
+(162) Блин - не понимаю, втыкнул во втрой селект, выдает:
Meta name parser error: поле таблицы не найдено "$КаналСбыта.id" |
|||
165
bananan
28.03.13
✎
13:55
|
+(164) А кроме как во втройм селекте это вроде и некуда втыкать... :(
|
|||
166
Ёпрст
28.03.13
✎
13:55
|
(164)
ага, $ убери |
|||
167
bananan
28.03.13
✎
13:58
|
(166) Уши вытянул - хвост завяз... теперь выскакивает:Invalid column name 'ИдентификаторИсторииЦены'.
|
|||
168
Ёпрст
28.03.13
✎
14:00
|
(167) ИдентификаторИсторииЦены,
|
|||
169
bananan
28.03.13
✎
14:00
|
(168) Не понял
|
|||
170
Ёпрст
28.03.13
✎
14:01
|
(169) нам отсюда не видно - куда ты новую строчку воткнул - до или после.. вот зпт где-то потерялась
|
|||
171
bananan
28.03.13
✎
14:02
|
(170) Опять показываю полный текст:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта 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 ' ' END ИдентификаторИсторииЦены | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $КаналСбыта.КатегорияЦены as КатегорияЦены | , КаналСбыта.id 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($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; Вроде там запятая не нужн... :( |
|||
172
Ёпрст
28.03.13
✎
14:05
|
(171) вот тут махер:
cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY |
|||
173
Ёпрст
28.03.13
✎
14:07
|
а ну да, так и есть.. из вложенного запроса ты это поле накой-то вырезал
|
|||
174
Ёпрст
28.03.13
✎
14:08
|
если че, вот этого не хватат
| , 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 ' ' END ИдентификаторИсторииЦены |
|||
175
bananan
28.03.13
✎
14:14
|
(173) Из вложеного я его вырезал потому что теперь это поле наужно в резудтирующей таблице...
(174) Так это же у меня есть : |, 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 ' ' END ИдентификаторИсторииЦены Раньше было как ты сейчас пишеш, но исправил на то что есть сейчас вроде тоже по твоему совету... |
|||
176
Ёпрст
28.03.13
✎
14:15
|
да уж.
|
|||
177
Ёпрст
28.03.13
✎
14:15
|
я такое не советовал как бэ.
|
|||
178
bananan
28.03.13
✎
14:19
|
(177) А , извини советовал не ты, а viktor_vv
|
|||
179
bananan
28.03.13
✎
14:19
|
(177) Так что исправить назад, т.е. на то ка ты написал в (174)?
|
|||
180
Ёпрст
28.03.13
✎
14:21
|
желательно
|
|||
181
bananan
28.03.13
✎
14:24
|
(180) Сегодня - не морй день, написал как ты и посоветовал, выдает:
The column prefix 'КаналСбыта' does not match with a table name or alias name used in the query. |
|||
182
Ёпрст
28.03.13
✎
14:30
|
нам отсюда текста запроса не видно
|
|||
183
bananan
28.03.13
✎
14:32
|
(182) Полній тест запроса:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта 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 ' ' END ИдентификаторИсторииЦены | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $КаналСбыта.КатегорияЦены as КатегорияЦены | , КаналСбыта.id 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($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; |
|||
184
Ёпрст
28.03.13
✎
14:38
|
вот это верни взад где и было - во вложенном селекте
|, 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 ' ' END ИдентификаторИсторииЦены |
|||
185
bananan
28.03.13
✎
14:41
|
Веорнул:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта 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 ' ' END ИдентификаторИсторииЦены | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $КаналСбыта.КатегорияЦены 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 ' ' END ИдентификаторИсторииЦены | , КаналСбыта.id 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($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; Кака была така есть: The column prefix 'КаналСбыта' does not match with a table name or alias name used in the query |
|||
186
Mikeware
28.03.13
✎
14:44
|
(181) "Сегодня - не морй день"...
Эх, если бы только это... я б обобщил: "сейчас - не твоя жизнь" |
|||
187
vinogradъ
28.03.13
✎
14:44
|
(185) а из внешнего убери
|
|||
188
vinogradъ
28.03.13
✎
14:45
|
+(187) точнее замени на Данные.ИдентификаторИсторииЦены
|
|||
189
bananan
28.03.13
✎
14:46
|
(187) ИдентификаторИсторииЦены мне нужен во внешнем зпросе, или там к нему можно будет обрптиться так: Данные.ИдентификаторИсторииЦены?
|
|||
190
bananan
28.03.13
✎
14:48
|
+(189) Я сошла с ума, убрал и заменил, выдает:
Invalid column name 'ДатаДок'. |
|||
191
vinogradъ
28.03.13
✎
14:49
|
(189) да, ИдентификаторИсторииЦены ты получил во вложенном запросе, который обозвал Данные и теперь можешь обратится к нему как Данные.ИдентификаторИсторииЦены
|
|||
192
vinogradъ
28.03.13
✎
14:49
|
(190) текст
|
|||
193
bananan
28.03.13
✎
14:51
|
(192)
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта as КаналСбыта |, Данные.ИдентификаторИсторииЦены | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $КаналСбыта.КатегорияЦены 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 ' ' END ИдентификаторИсторииЦены | , КаналСбыта.id 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($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; |
|||
194
vinogradъ
28.03.13
✎
14:54
|
во вложенном запросе добавь
,cast(left(Жур.date_time_iddoc, 8) as datetime) as ДатаДок |
|||
195
bananan
28.03.13
✎
14:59
|
(194) Спасибо, теперь работает, буду дальше это запрос домучивать, (там теперь надо мног полей из внутренних запросов выташить во внещние, потому что эти поля нужны на вывод...), а запросов всего три, первый пока готов где-то на половину...
|
|||
196
bananan
28.03.13
✎
15:27
|
Блин, самому слабо вериться, но первый запрос (с вашей помощью уже готов на все 100%), приступаю уо второму запросу, если что - буду опять у вас помощи просить...
|
|||
197
bananan
28.03.13
✎
15:44
|
+(196) Опять же, слабо верится, но уже и второй, и третий запрос - готовы, покурю и собью все вместе :). Еще раз - ВСЕМ Огромное СПАСИБО!!!
|
|||
198
viktor_vv
28.03.13
✎
15:56
|
(197) Ну нихрена себе, тебя поперло :).
Ты че там куришь, что так прет. |
|||
201
bananan
28.03.13
✎
17:35
|
(198) Опят же таки, можете не верить но все в кучу уже объеденил и оно работает, тут еще нарисовалось что надо добавить возможность выбора агента и возможность выбора склада. Визуальные компоненты на форму уже поставил, обработал различные нажатия (добавил соответствующие процедуры), теперь надо это озапросить.. Опять же - попробую сам, снова таки после перекура, не получиться, буду у вас просить помощи. //За ранее благодарен!
|
|||
202
Ёпрст
28.03.13
✎
17:50
|
(201) заодно откроешь для себя метод УложитьСписокОбъектов
|
|||
203
bananan
28.03.13
✎
18:00
|
(202) Что-то такое помню...
Так вот по поводу выбора агента и склада, ну есть они у меня (выбрал я их на форме) и... куда эти условия вставлять в запросы? |
|||
204
bananan
28.03.13
✎
18:03
|
+(203) оба поля и агент и склад находстся в шапке документа...
|
|||
205
Ёпрст
28.03.13
✎
18:03
|
(203)
в where вестимо |
|||
206
viktor_vv
28.03.13
✎
18:03
|
(203) Можно конечно тактично промолчать, насчет куда вставлять :), но ты бы показал итоговый запрос.
|
|||
207
Ёпрст
28.03.13
✎
18:04
|
+ смотреть на вид соединения. возможно, для фильтра, придётся поменять left на inner
|
|||
208
bananan
28.03.13
✎
18:10
|
ко всему прочему если я выбираю Агент и Склад в запросе так:
| , isnull($ДокШН.Агент, $ДокШ.Агент) as Агент | , isnull($ДокШН.Склад, $ДокШ.Склад) as Склад то в результате на мониторе в этих полях цифры (id наверное) а м вера надо id или текстовое значение соответствующей записи из справочника? |
|||
209
bananan
28.03.13
✎
18:16
|
+ когда сделал типизацию в Таблицу значений вместо цифры идет название склада, ну и название клиента, так может подскажете что именно надо в where вставалять? Не подскажите... - чтож сам проверю что именно (айди или имя) :)
|
|||
210
viktor_vv
28.03.13
✎
18:20
|
| WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~
| AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) and isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент |
|||
211
viktor_vv
28.03.13
✎
18:21
|
(210) Ну и там для не выбранного условия по простому можно так
| WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) and (isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент or :Агент = $ПустойИД) |
|||
212
viktor_vv
28.03.13
✎
18:22
|
(211)+ Если там в Агент предполагается и группы выбирать, то тут уже смотри в (202).
|
|||
213
bananan
28.03.13
✎
18:26
|
+(209) Начал сам пробывать, и сразу же наткнулся на непонятку... нашел запрос с похожи, но вот по агенту да и по клиенту там...:
Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); Запрос.УложитьСписокОбъектов(ВыбКлиент, "#tmpKlient"); Запрос.УложитьСписокОбъектов(ВыбКлиент, "#tmpKlient2","Клиенты"); Зачем (ВыбАгент, "#tmpAgent") а потом (ВыбАгент, "#tmpAgent2","Агент")? |
|||
214
bananan
28.03.13
✎
18:28
|
(211) Дак я проде как и буду использовать УстановитьСписокОбъектов - группы там вроде тоже будут выбираться..
|
|||
215
viktor_vv
28.03.13
✎
18:28
|
(213) Волт это (ВыбАгент, "#tmpAgent") уложит только элементы списка, явно заданные, а вот это (ВыбАгент, "#tmpAgent2","Агент") с иерархией, если в списке будет группа.
|
|||
216
viktor_vv
28.03.13
✎
18:30
|
Для примера, у тебя выбрана группа, тогда
в таблице #tmpAgent будет одна запись с выбранной группой, а в таблице #tmpAgent2 столько записей, сколько элементов в группе, кажись сами группы не выгружает. |
|||
217
bananan
28.03.13
✎
18:31
|
(215) Ну вроде вник, твое пояснение + есть подобный запрос, думаю сам справлюсь, но, опять же - не получится - надеюсь на вашу помощь!...
|
|||
218
bananan
28.03.13
✎
18:33
|
+Забыл, как мне вывести текст запроса? (что-то ему вое вера не нравиться...
|
|||
219
viktor_vv
28.03.13
✎
18:35
|
Ну в том варианте надо вообще-то
УстановитьТекстовыйПараметр() как ты даты задаешь. |
|||
220
Mikeware
28.03.13
✎
18:35
|
(218) "у тебя память - как один килобайт. вроде и есть, и хрен чо запомнишь"©
|
|||
221
viktor_vv
28.03.13
✎
18:35
|
(219) Плюс ты его не туда таки вставил, скорее всего.
|
|||
222
viktor_vv
28.03.13
✎
18:36
|
(218) Ты ж этим методом постоянно и работаешь, copy-paste, как ты мог его забыть :).
|
|||
223
Mikeware
28.03.13
✎
18:37
|
(221) "не туда и не тогда"
|
|||
224
bananan
28.03.13
✎
19:05
|
Mikeware и к чему твои "реплики"?
(219) Сейчас попробую УстановитьТекстовыйПараметр(), я пробывал УложитьСписокОбъектов... (221) За одно и проверю туда ли я вставил условие.... я вставлял уловие сюда: | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |
|||
225
viktor_vv
28.03.13
✎
19:08
|
(224) Ну да, во вложенный запрос.
|
|||
226
bananan
28.03.13
✎
19:09
|
+(224) Вроде все правильно сделал, но ругается он:
Incorrect syntax near ')'. Ругается на этих строках: | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) | AND "+ ?(ВыбАгент.РазмерСписка()>0," ((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2)))","")+" ... мне и самому с самого начала не понравилось как я добавил проверку на агента... Вот теперь мне ОЧЕНЬ нужна ваша помощь... |
|||
227
Mikeware
28.03.13
✎
19:11
|
(226) в чем помощь? операнды посчитать?
|
|||
228
Mikeware
28.03.13
✎
19:12
|
феерический тупица.
у меня даже сил ржать больше нету... |
|||
229
viktor_vv
28.03.13
✎
19:13
|
(226) Ну в твоем случае достаточно одного
(Агент IN (SELECT Val FROM #tmpAgent2) вряд ли у тебя в реквизите документа группу выбирают. А скобки, таки да, сам считай. |
|||
230
viktor_vv
28.03.13
✎
19:13
|
(229)+ Это если (ВыбАгент, "#tmpAgent2","Агент").
|
|||
231
bananan
28.03.13
✎
19:21
|
... Снова таки, может я в коде 1с неправильно что пишу... В данном случае я пробую (Агент) на Первом из трех запросов:
код у меня получился такой: AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) | AND ((:Агент IN (SELECT Val FROM #tmpAgent)) or (:Агент IN (SELECT Val FROM #tmpAgent2))) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; ////| "+ ?(ВыбАгент.РазмерСписка()>0," WHERE ((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2)))","")+" Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); КонецЕсли; |
|||
232
bananan
28.03.13
✎
19:33
|
В результате... Запрос вроде и работает, но выдате он явно не то что надо...
|
|||
233
bananan
29.03.13
✎
11:27
|
Сегодня перепроверил - вроде выдает то что надо. Пожалйста посмотритк (231) - так правильно писать?
|
|||
234
bananan
29.03.13
✎
11:27
|
+ну и текст запроса - там тоже код немного изменен...
|
|||
235
sapphire
29.03.13
✎
11:30
|
О... ему уже времянки подсунули... Куда катится мир...
|
|||
236
bananan
29.03.13
✎
11:31
|
(235) Ты о чем? Никто ничего мне не подсовывал...
|
|||
237
bananan
29.03.13
✎
11:46
|
И как (я забыл) посмотреть какой текст запроса после парсера попадает на сервер?
|
|||
238
bananan
29.03.13
✎
11:50
|
+И корректно ли Если ВыбАгент.РазмерСписка()>0 Тогда
Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбСклад, "#tmpAgent2","Агент"); КонецЕсли; |
|||
239
sapphire
29.03.13
✎
11:50
|
ОбрМетаСКЛ
|
|||
240
bananan
29.03.13
✎
11:56
|
(239_ А что такое "ОбрМетаСКЛ"?
|
|||
241
vinogradъ
29.03.13
✎
11:58
|
(237) Запрос.Отладка(1)
|
|||
242
bananan
29.03.13
✎
11:58
|
(241) Спасибо!
|
|||
243
vinogradъ
29.03.13
✎
11:59
|
(238) нет
|
|||
244
bananan
29.03.13
✎
12:01
|
(243) А как правильно? Я уже и понял что это неправильно, скорее всего, потому что запрос возвращает не то что должен возвращать...
|
|||
245
viktor_vv
29.03.13
✎
12:03
|
(244) Ну и чего ж ты в одну и ту же временную таблицу разные данные суешь, оно ж перезаписывается.
Для разных реквизитов условий, разные имена временных таблиц не судьба придумать ? |
|||
246
bananan
29.03.13
✎
12:04
|
Ты о (238)?
|
|||
247
viktor_vv
29.03.13
✎
12:04
|
(245)+ Ну и ты опять нихрена доку не читаешь, тупо из примера скопипастил и вперед.
|
|||
248
viktor_vv
29.03.13
✎
12:05
|
(246) Да.
Ну и в (231) зачем одно и тоже укладывать несколько раз, для надежности что-ли ? |
|||
249
bananan
29.03.13
✎
12:06
|
(247) Да скопипастил, в данном случае - некогда доку читать... В том примере я не понял почему:
Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); Т.е. неясно что происходит в первой строчке, а что во второй.... |
|||
250
viktor_vv
29.03.13
✎
12:06
|
(246) Скопируй сюда описание для УложитьСписокОбъектов(), может хоть так читать будешь.
|
|||
251
bananan
29.03.13
✎
12:07
|
(248) Что там повтор дубль и т.д. я уже и сам заметил, его без проблем уберу..
|
|||
252
viktor_vv
29.03.13
✎
12:08
|
(249) То есть у тебя времени доку читать нет, а у нас исправлять тупые ошибки, возникающие от нежелания читать доку, значит есть.
Нормальный ход. |
|||
253
vinogradъ
29.03.13
✎
12:09
|
бггг, пусть хоть здесь почитает
ODBCRecordSet :: УложитьСписокОбъектов / PutObjectList Синтаксис: УложитьСписокОбъектов(Список, ИмяТаблицы, [ВидЭлементов]) Параметры: Список - тип: СписокЗначений, Справочник, Счет. Объект, содержание которого будет отправляться на сервер. Если передан список значений, во врем. таблицу попадает содержимое списка. Допустимо также передавать группу справочника, элемент справочника, группу счетов, счет - в этом случае во временную таблицу поступает переданное значение, однако если указан ВидЭлементов (вид справочника, или план счетов), то будет попытка включить в таблицу все подчененные элементы. ИмяТаблицы - тип: Строка. Имя временной таблицы. ВидЭлементов - тип: Строка. Вид справочника для иерархического включения элементов или вид плана счетов для иерархического включения счетов. Если параметр не указан, иерархического включения не происходит. Описание: сохраняет список внутренних идентификаторов объектов во временной таблице MS SQL. Идентификаторы объектов из списка сохраняются во временной таблице в поле val char(9). Имя таблицы должно начинаться с символа "#". Если указан вид ВидЭлементов - идентификатор иерархического справочника, то таблица будет содержать элементы, иерархически принадлежащие группам переданным в списке. (Подобно оператору "в" стандартного языка запросов 1С.) Замечание: метод допустимо применять только для источника данных Microsoft SQL Server. |
|||
254
bananan
29.03.13
✎
12:11
|
(252) Да не так, не перевораяивай с ног на голову... Если не хотите - не исправляйте...
В данный момент код на первый запрос у меня такой: ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта as КаналСбыта |, Данные.КатегорияЦены [КатегорияЦены $Перечисление.ТипыЦен] |, Данные.ИдентификаторИсторииЦены //|, Данные.Агеннт [Агент $Справочник.Агент] |, cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, case Данные.Цена_Прих | WHEN 0 then 0 | ELSE ((Данные.СуммаСНДС / Данные.Количество)/Данные.Цена_Прих-1)*100 end as Проц |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШ.Агент, $ДокШН.Агент) Агеннт | , $КаналСбыта.КатегорияЦены 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 ' ' END ИдентификаторИсторииЦены | , КаналСбыта.id as КаналСбыта | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | ,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 ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" AND ((:Агент IN (SELECT Val FROM #tmpAgent)) or (:Агент IN (SELECT Val FROM #tmpAgent2)))"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; //// Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); КонецЕсли; ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); Запрос.Отладка(); Но он явно возвращает не то что должен бы возвращать, к примеру, я выбрал Агента "Бобер", а в результирующий набор входят документы в которых разные агенты... |
|||
255
vinogradъ
29.03.13
✎
12:13
|
Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент);
Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); КонецЕсли; читай (253) |
|||
256
bananan
29.03.13
✎
12:13
|
(253) Прочитал, спасибо, но мне, в конце концов проще разбираться на конкретном примере, чем читать теорию..
|
|||
257
viktor_vv
29.03.13
✎
12:14
|
(254) Че это я переврал, вот втои слова.
"Да скопипастил, в данном случае - некогда доку читать... В том примере я не понял почему:" |
|||
258
bananan
29.03.13
✎
12:14
|
(255) вот код с моего скрипта:
Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); КонецЕсли; Вроде так же как и у тебя... |
|||
259
viktor_vv
29.03.13
✎
12:15
|
(254) Пля, ну ведь выше давал нормально, ну откуда в товем больнном воображении взялось вот это
ТекстЗапроса = ТекстЗапроса +" AND ((:Агент IN (SELECT Val FROM #tmpAgent)) or (:Агент IN (SELECT Val FROM #tmpAgent2)))"; |
|||
260
vinogradъ
29.03.13
✎
12:15
|
(258) это я твой скопировал), чтобы смотрел на него, читая доку
|
|||
261
bananan
29.03.13
✎
12:16
|
(257) Я и не говорил что ты что-то переврал, просто быстрее услышать дельный совет или подсказку по конкретному вопросу, чем искать ответ на этот вопрос в доке...
|
|||
262
viktor_vv
29.03.13
✎
12:17
|
(259) Вот для параметра
| WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) and isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент для списка надо было =:Агент заменить на in Select |
|||
263
bananan
29.03.13
✎
12:17
|
(259) А как иначе в текст запроса вставить условие на выборку если оно нужно?
|
|||
264
bananan
29.03.13
✎
12:18
|
(262) т.е. заменить: ТекстЗапроса +" AND ((:Агент IN (SELECT Val FROM #tmpAgent)) or (:Агент IN (SELECT Val FROM #tmpAgent2)))"; на
(262)? А как занть список или не список? |
|||
265
viktor_vv
29.03.13
✎
12:19
|
(261) Неправильно, когда ты ответ найдешь в доке, то есть вероятность, что ты поймешь причинно-следственную связь между твоими действиями и полученным результатом, а так ты тупо подбором подходящих по начертанию символов пытаешься состряпать запрос.
|
|||
266
bananan
29.03.13
✎
12:21
|
(265) Я бы не сказал, что тупо пытаюсь по начертанию символов состряпать запрос...
|
|||
267
viktor_vv
29.03.13
✎
12:21
|
(264) Читай (253) и попытайся понять.
"А как занть список или не список?" че там знать, если ты сам это определяешь применением либо УстановитьТекстовыйПараметр или УложитьСписокОбъектов. |
|||
268
bananan
29.03.13
✎
12:24
|
(267) Читал (253) - но слабо понял. а по поводу список или нет как мне знать что именно вствалять в условие выборки в тексте запроса isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент
или in Select? |
|||
269
bananan
29.03.13
✎
12:26
|
(267) Вот код из моего скрипта:
Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); КонецЕсли; т.е. сначала устанавливается текстовый параметр а потому УложитьСписок... Вот я и спрашивал и спрашиваю этот кусок кода правильно написан: Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); КонецЕсли; ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); и если неправильно (а, видно так оно и есть) то как это правильно написать? |
|||
270
vinogradъ
29.03.13
✎
12:29
|
ВыбАгент - это что?
|
|||
271
bananan
29.03.13
✎
12:31
|
ВыбАгент... - ну не знаю как это правильно пишеться или называется ВыбАгент - это идентификатор для окна в котором выбирается Агент..
|
|||
272
vinogradъ
29.03.13
✎
12:32
|
реквизит на форме с типом Справочник....?
|
|||
273
bananan
29.03.13
✎
12:33
|
(272) Да
|
|||
274
vinogradъ
29.03.13
✎
12:33
|
с каким типом?
|
|||
275
bananan
29.03.13
✎
12:35
|
(274) Оп, а где тип устанавливается и где его можно посмотреть (в свойствах о типе ничего нет)?
|
|||
276
vinogradъ
29.03.13
✎
12:35
|
Если ВыбАгент.ЭтоГруппа() = 1 Тогда
Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent","ТипСправочникаВыбАгент"); Иначе Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; |
|||
277
vinogradъ
29.03.13
✎
12:37
|
+(276) соответственно и условие в запросе нужно менять в зависимости от ЭтоГруппа()
|
|||
278
bananan
29.03.13
✎
12:38
|
(276) Вот за этот куоск кода - ОГРОМНОЕ спасибо!!!
Если я не ошибаюсь - теперь после данного изменения - запрос должен правильно заработать... |
|||
279
bananan
29.03.13
✎
12:39
|
(277) Еще раз - СПАСИБО!
Упс, мне надо срочно домой смотаться (соседей топлю) выйду на вас позже. Еще раз - СПАСИБО!!! |
|||
280
vinogradъ
29.03.13
✎
12:41
|
(279) разносторонняя личность
|
|||
281
Mikeware
29.03.13
✎
12:44
|
(280) "средоточие геморроя..."
|
|||
282
viktor_vv
29.03.13
✎
13:07
|
(279) :).
(276) ты только забыл еще ему написать как это Если Иначе в запросе отработать. Он жеж после потопа спросит, че у него там ошибки вываливаются. |
|||
283
vinogradъ
29.03.13
✎
13:15
|
(282) а вдруг сам поймет и сделает)
|
|||
284
Mikeware
29.03.13
✎
13:22
|
(283) вероятность того, что все молекулы воды в стакане начнут двгаться в одну сторону, и вода вылетит из стакана - гораздо больше.
|
|||
285
viktor_vv
29.03.13
✎
13:23
|
(283) Наивный :).
(284) :). |
|||
286
vinogradъ
29.03.13
✎
13:29
|
(284) вот так, наверное, bananan и топит соседей
|
|||
287
Анна_84
29.03.13
✎
13:36
|
завидую я таким людям... хоть и не хорошо это, а все таки ...
|
|||
288
Mikeware
29.03.13
✎
13:53
|
(287) а чего завидовать?
заткни пробку в ванне, открой кран... ничего сложного... |
|||
289
viktor_vv
29.03.13
✎
13:56
|
Я уже как-то переживаю за соседей, если он кран будет перекрывать так же как запросы пишет, то может быть больно :).
|
|||
290
Mikeware
29.03.13
✎
13:58
|
(289) главное, чтоб газовые приборы не лез чиинть.
|
|||
291
bananan
29.03.13
✎
14:54
|
(276) а ТипСравочникаВыбАгент - это тип справочника из которого выбирается агент?
p.s. Воду - перекрыл, к газовым приборам не лез. Ремонт для соседей вроде делать не надо будет. |
|||
292
Mikeware
29.03.13
✎
14:55
|
(291) значит, проводка коротнет...
|
|||
293
bananan
29.03.13
✎
14:56
|
И еще а к чему в том коде что я нашел было : Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent");
// Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); ДВА вызова УложитьСписокОбъектов с разными параметрами? |
|||
294
bananan
29.03.13
✎
14:56
|
(292) Добрый ты... :) сплюнь, к проводке я тоже не лез...
|
|||
295
bananan
29.03.13
✎
15:05
|
Что-то опять не так.. :) Запустил скрипт... в конце-концов вылезла ошибка:
Если ВыбАгент.ЭтоГруппа() = 1 Тогда {\\SERVER12\VPKTEST$\EXTFORMS\ЦІНИ_ПО_КАТЕГОРІЯХ.ERT(108)}: Поле агрегатного объекта не обнаружено (ЭтоГруппа) |
|||
296
chelentano
29.03.13
✎
15:06
|
(295) у агрегатного объекта "ВыбАгент" нет поля "ЭтоГруппа"
|
|||
297
bananan
29.03.13
✎
15:08
|
(296) Ну это я и сам понял... ВыбАгент - это окно для выбора агента (агенты вибираются из справочника.Агент....)
Как тогда проверять что выбрана группа? |
|||
298
bananan
29.03.13
✎
15:10
|
+(297) или может опустить Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); а независимо от того что выбрано использовать Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент");?
|
|||
299
chelentano
29.03.13
✎
15:10
|
(297) сомневаюсь, что ты понял
|
|||
300
bananan
29.03.13
✎
15:12
|
+(298) т.е. котд:
Если ВыбАгент.ЭтоГруппа() = 1 Тогда Запрос.УложитьСписокОбъектов(ВыбАгент, #tmpAgent","ТипСправочникаВыбАгент"); Иначе Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); КонецЕсли; заменть на код: Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент")? |
|||
301
bananan
29.03.13
✎
15:12
|
(299) сомневайся и дальше...
|
|||
302
bananan
29.03.13
✎
15:15
|
хм.. код теперь такой:
Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; //// Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); ругается: Meta name parser error: не указан параметр ":Агент" |
|||
303
bananan
29.03.13
✎
15:17
|
+(302) А если в тексте запроса использовать не : Агент - а просто Агент, то ругается:
Server]Invalid column name 'Агент'. |
|||
304
chelentano
29.03.13
✎
15:19
|
(302) "продолжайте наблюдения" (с)
|
|||
305
bananan
29.03.13
✎
15:20
|
(304) А что-то более полезное не можешь подсказать?
|
|||
306
bananan
29.03.13
✎
15:22
|
+(305) Ребята, помогите-подскажите!!!
Код сейчас такой: ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта as КаналСбыта |, Данные.КатегорияЦены [КатегорияЦены $Перечисление.ТипыЦен] |, Данные.ИдентификаторИсторииЦены //|, Данные.Агеннт [Агент $Справочник.Агент] |, cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, case Данные.Цена_Прих | WHEN 0 then 0 | ELSE ((Данные.СуммаСНДС / Данные.Количество)/Данные.Цена_Прих-1)*100 end as Проц |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШ.Агент, $ДокШН.Агент) Агеннт | , $КаналСбыта.КатегорияЦены 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 ' ' END ИдентификаторИсторииЦены | , КаналСбыта.id as КаналСбыта | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | ,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 ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; //// Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); Дак ему не нравится: Meta name parser error: не указан параметр ":Агент" |
|||
307
viktor_vv
29.03.13
✎
15:27
|
(293) Я ж тебе выше написал. У тебя реально оперативки в голове не хватает, а жесткий диск наверное забит всяким хламом.
(215) (216). |
|||
308
viktor_vv
29.03.13
✎
15:29
|
(298) Здравая мысль.
|
|||
309
viktor_vv
29.03.13
✎
15:29
|
(306) Какая буква в описании ошибки непонятна ?
|
|||
310
viktor_vv
29.03.13
✎
15:30
|
Ты ж сам решил отказаться от использования параметра, выше писал что надо вставить вместо :Агент.
|
|||
311
Salimbek
29.03.13
✎
15:30
|
Что-то мне все это напоминает... прошлогоднее...
|
|||
312
chelentano
29.03.13
✎
15:31
|
(309) подозреваю, что все буквы
|
|||
313
bananan
29.03.13
✎
15:32
|
(307) т.е. код по уложению параметров написать так:
Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); ?? Да ? |
|||
314
bananan
29.03.13
✎
15:41
|
Что-то у меня подозрение что проверятьт на агентра надо не так (isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент
|
|||
315
bananan
29.03.13
✎
15:42
|
+(314) а что-то врде такого:
((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2))) |
|||
316
viktor_vv
29.03.13
✎
15:42
|
(313) Ну при чем здесь код по укладке объектов. То я отвечал на другой твой пост.
(314) Алилуйя. |
|||
317
viktor_vv
29.03.13
✎
15:43
|
(316)+ Рано я обрадовался.
|
|||
318
viktor_vv
29.03.13
✎
15:44
|
Медленно прочитай (262).
|
|||
319
viktor_vv
29.03.13
✎
15:45
|
Я ж говорю, что ты методом перебора символов запросы пишешь, а ты не верил.
|
|||
320
bananan
29.03.13
✎
15:56
|
(318) перечитал я (262), но.. он мне выдает:
Meta name parser error: не указан параметр ":Агент" |
|||
321
bananan
29.03.13
✎
15:58
|
+ в коде того скрипта который я взял для примера все это обрабатывается так:
Условия=СоздатьОбъект("СписокЗначений"); Если ВыбАгент.РазмерСписка()>0 Тогда Условия.ДобавитьЗначение("((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2)))"); КонецЕсли; Если ВыбКлиент.РазмерСписка()>0 Тогда Условия.ДобавитьЗначение("((Клиент IN (SELECT Val FROM #tmpKlient)) or (Клиент IN (SELECT Val FROM #tmpKlient2)))"); КонецЕсли; Если НЕ(СпИнкасс.ТекущаяСтрока()=1) Тогда Условия.ДобавитьЗначение("$Клиенты.Инкас ="+?(СпИнкасс.ТекущаяСтрока()=2,"1","0")); КонецЕсли; Если Условия.РазмерСписка()>0 Тогда ТекстЗапроса=ТекстЗапроса+" where "+СтрЗаменить(СтрЗаменить(Условия.ВСтрокуСРазделителями(),""","""," and "),"""","")+" Order BY Клиенты.DESCR,Клиент,Агент,Заказ"; КонецЕсли; позже: Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); |
|||
322
viktor_vv
29.03.13
✎
15:59
|
(320) Я ж говорил прочитай, а не скопипасть, там в конце написано че далать надо.
|
|||
323
viktor_vv
29.03.13
✎
16:00
|
(321) Ну так напрягись, подумай, что надо вставить вместо Агент.
|
|||
324
bananan
29.03.13
✎
16:02
|
(322) Да, но если я в коде пишу так:
Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); в тексте запроса: and ((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2))) все-равно выдает: Invalid column name 'Агент'. |
|||
325
bananan
29.03.13
✎
16:03
|
(323) :Агент - тоже вроде не подходит..
|
|||
326
bananan
29.03.13
✎
16:05
|
+ в коде рабочего скрипта кроме всего прочего естьт еще и:
Если Условия.РазмерСписка()>0 Тогда ТекстЗапроса=ТекстЗапроса+" where "+СтрЗаменить(СтрЗаменить(Условия.ВСтрокуСРазделителями(),""","""," and "),"""","")+" Order BY Клиенты.DESCR,Клиент,Агент,Заказ"; КонецЕсли; |
|||
327
viktor_vv
29.03.13
✎
16:05
|
Ладно. выбери отсюда правильную часть, это недолго все максимум два раза попробовать
(isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент для замены Агент тут nd ((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2))) |
|||
328
bananan
29.03.13
✎
16:07
|
(327) я до того как ты написал в тексте запроса написал так:
ТекстЗапроса = ТекстЗапроса +" and ((:Агент IN (SELECT Val FROM #tmpAgent)) or (:Агент IN (SELECT Val FROM #tmpAgent2)))"; и запрос - заработал... |
|||
329
Анна_84
29.03.13
✎
16:08
|
(0) Автор, простите за ОФФ, а Вы вообще кем работаете? На той фирме, где шеф Вам поручает такие отчеты писать?
|
|||
330
bananan
29.03.13
✎
16:08
|
+ но блин запрос то заработал, но он выдает на гора документы где агент - но то что я выбрал в окне выбора агента.... :(
|
|||
331
bananan
29.03.13
✎
16:09
|
(329) Пардон, но програмистом работаю..
|
|||
332
chelentano
29.03.13
✎
16:10
|
(331) вот именно, что програмистом, в программисты бы тебя не взяли
|
|||
333
vinogradъ
29.03.13
✎
16:10
|
ВыбАгент - поле со списком (СписокЗначений)?
|
|||
334
viktor_vv
29.03.13
✎
16:11
|
(328) Давай вторую попытку, там остался всего один вариант.
|
|||
335
Mikeware
29.03.13
✎
16:11
|
(331) погромистом...
|
|||
336
bananan
29.03.13
✎
16:15
|
(333) Да
|
|||
337
bananan
29.03.13
✎
16:16
|
(334) Invalid column name 'Агент'.
|
|||
338
Анна_84
29.03.13
✎
16:17
|
(331) извините еще раз, а образование у Вас вообще есть? ну, кроме 9ти классов? Ну, просто интересно )
|
|||
339
bananan
29.03.13
✎
16:17
|
(335) а поповоду двух "м№ в слове программист, так в украинском языке в этом слове м - одна
|
|||
340
bananan
29.03.13
✎
16:18
|
(338) класов у меня не 9 а 10 + пединститут (физика-информатика)
|
|||
341
chelentano
29.03.13
✎
16:19
|
(338) да там и девятью-то классами не пахнет
|
|||
342
bananan
29.03.13
✎
16:19
|
(341) у тебя супер-пупер интернет - запахи передает?
|
|||
343
viktor_vv
29.03.13
✎
16:20
|
(337) Пенсец, показывай второй вариант, хотя я уже догадываюсь :).
|
|||
344
bananan
29.03.13
✎
16:21
|
(343)
Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and ((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2)))"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; //// Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); //Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); //Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); |
|||
345
viktor_vv
29.03.13
✎
16:21
|
Вот скажи, как по другому можно было понять вот это
" выбери отсюда правильную часть (isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент для замены Агент тут and ((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2))) " |
|||
346
bananan
29.03.13
✎
16:23
|
(345) менял я
((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2))) на ((:Агент IN (SELECT Val FROM #tmpAgent)) or (:Агент IN (SELECT Val FROM #tmpAgent2))) этот вариант работает, но он мне выдает все документы а не документы где агент - которого выбрали в окне выбора! |
|||
347
bananan
29.03.13
✎
16:25
|
+(346) Или Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); не надо а надо:
Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); (так я тоже пробывал, но там чтото не фуричило тоже... |
|||
348
bananan
29.03.13
✎
16:26
|
+(347) выдает:
Meta name parser error: не указан параметр ":Агент" |
|||
349
Анна_84
29.03.13
✎
16:27
|
(331)платят Вам, видимо, оклад, а не почасовку :) а жаль... может, был бы стимул не тупить на форуме, а все таки почитать книжки
|
|||
350
vinogradъ
29.03.13
✎
16:27
|
Если ВыбАгент.ТекущаяСтрока() > 0 Тогда
Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент.ПолучитьЗначение(ВыбАгент.ТекущаяСтрока())); КонецЕсли; |
|||
351
bananan
29.03.13
✎
16:28
|
И что нетак??
если (последние строки текста запроса): | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and ((:Агент IN (SELECT Val FROM #tmpAgent)) or (:Агент IN (SELECT Val FROM #tmpAgent2)))"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; дальше Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент); код - то работает. но он мне выдает все документы а не те в которых агент- тот что я выбрал в окне выбора? |
|||
352
bananan
29.03.13
✎
16:29
|
(349) платят оклад...
(350) сейчас попробую |
|||
353
Ёпрст
29.03.13
✎
16:30
|
(351) полный текст запроса какой ща ?
|
|||
354
bananan
29.03.13
✎
16:31
|
(350) Большое спасибо!!!
Работает и выдает те документы в которых агент тот что выбран в окне выбора |
|||
355
bananan
29.03.13
✎
16:33
|
+(354) Нифига, оно работало - но выдавало не то что надо...
(353) полный текст показываю не только запроса но и кода.. ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта as КаналСбыта |, Данные.КатегорияЦены [КатегорияЦены $Перечисление.ТипыЦен] |, Данные.ИдентификаторИсторииЦены |, cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, case Данные.Цена_Прих | WHEN 0 then 0 | ELSE ((Данные.СуммаСНДС / Данные.Количество)/Данные.Цена_Прих-1)*100 end as Проц |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШ.Агент, $ДокШН.Агент) Агеннт | , $КаналСбыта.КатегорияЦены 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 ' ' END ИдентификаторИсторииЦены | , КаналСбыта.id as КаналСбыта | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | ,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 ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and ((:Агент IN (SELECT Val FROM #tmpAgent)) or (:Агент IN (SELECT Val FROM #tmpAgent2)))"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; //// Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); //Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); //Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); Если ВыбАгент.ТекущаяСтрока() > 0 Тогда Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент.ПолучитьЗначение(ВыбАгент.ТекущаяСтрока())); КонецЕсли; |
|||
356
chelentano
29.03.13
✎
16:34
|
(350) а если в списке больше одного значения?
|
|||
357
vinogradъ
29.03.13
✎
16:35
|
(356) а что нужно-то: по выбранному в списке или по всем или оба варианта?
|
|||
358
vinogradъ
29.03.13
✎
16:36
|
+ (357) или по всем из списка или по всему справочнику?
|
|||
359
vinogradъ
29.03.13
✎
16:37
|
+(358) и могут ли в списке быль группы?
|
|||
360
bananan
29.03.13
✎
16:37
|
(357) тот вариант что ты показал - выдает документы (ему пофимг кто агент в этих документах)....
в список юзер может добавить одного агента, группу агентов, а может и совем не добавлять в список ничего |
|||
361
Ёпрст
29.03.13
✎
16:37
|
>>>>((:Агент IN (SELECT Val FROM #tmpAgent))
Че ЭТО за бредятина ? |
|||
362
bananan
29.03.13
✎
16:38
|
+(360) может быть в списке и несколько агентов, и егент и группа и несколько групп и т.д.
|
|||
363
Mikeware
29.03.13
✎
16:38
|
(361) это не бредятина, это бананизм™
|
|||
364
chelentano
29.03.13
✎
16:38
|
(363) это пять :)))
|
|||
365
Mikeware
29.03.13
✎
16:38
|
да, такой смеси наглости и тупости я давно не видел...
|
|||
366
bananan
29.03.13
✎
16:39
|
(361) Не знаю. код взял из скрипта в котором аналогичный запрос и условия запроса..
|
|||
367
Ёпрст
29.03.13
✎
16:39
|
(366) :))0
Тебе объяснить что ЭТО ? |
|||
368
Mikeware
29.03.13
✎
16:39
|
(367) а тебе оно надо?
|
|||
369
Ёпрст
29.03.13
✎
16:41
|
(368) ну не знаю, мот поумнеет хоть немножечко
:) |
|||
370
viktor_vv
29.03.13
✎
16:43
|
(369) уже пару страниц пытаемся объяснить :).
|
|||
371
Mikeware
29.03.13
✎
16:44
|
(369) это вряд ли.
в лучшем случае, ты дашь нему еще десяток строк для копипаста... |
|||
372
viktor_vv
29.03.13
✎
16:45
|
(346) Двай по шагам.
Раздели вот эту строку на две смысловые части (isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент какие две части ты получил. |
|||
373
bananan
29.03.13
✎
16:46
|
(367) Объясни ели не трудно
|
|||
374
bananan
29.03.13
✎
16:47
|
(372) ну если человечески языком, то поле Агет в ДокШН или в ДокШ равно :Агент
|
|||
375
viktor_vv
29.03.13
✎
16:47
|
(371) Ну тактика у него понятная, задолбать всех тупизмом, чтобы народу надоело объяснять и выдали готовый код.
|
|||
376
bananan
29.03.13
✎
16:48
|
+(374) выбирается поле которое не пустое..
|
|||
377
viktor_vv
29.03.13
✎
16:48
|
(374) Не надо объяснять что это, просто строку раздели на две части более-менее осознано.
|
|||
378
bananan
29.03.13
✎
16:50
|
(377) Не понял. А зачем ее разделять?
И не знаю я как ее можно разделить ... |
|||
379
bananan
29.03.13
✎
16:51
|
+(378) разделить чтобы из этого получилось что-то нужное - работающее
|
|||
380
viktor_vv
29.03.13
✎
16:52
|
(378) Разделить для того чтобы правильную часть подставить сюда
and ((Агент IN (SELECT Val FROM #tmpAgent)) or (Агент IN (SELECT Val FROM #tmpAgent2))) вместо Агент. |
|||
381
bananan
29.03.13
✎
16:55
|
(380) and ((Агент IN (SELECT Val FROM $ДокШН.Агент))
ой, наоборот, так: (($ДокШН.Агент IN (SELECT Val FROM #tmpAgent)) or ($ДокШ.Агент IN (SELECT Val FROM #tmpAgent2))) ??? |
|||
382
bananan
29.03.13
✎
16:56
|
+(381) ну и не использовать Установить текстовый параметр а использовать
Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#tmpAgent2","Агент"); |
|||
383
viktor_vv
29.03.13
✎
16:56
|
(381) Ход мысли правильный, только ты немного перестарался разделяя, чуть крупнее часть.
Мне прямо аж интересно. |
|||
384
bananan
29.03.13
✎
16:59
|
(383) как "чуть крупнее часть"?
|
|||
385
viktor_vv
29.03.13
✎
17:00
|
(384) Ну вот еще раз, может так заметнее будет.
isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент |
|||
386
bananan
29.03.13
✎
17:01
|
(383) ты об and в начале? так я его по невнимательности опустил...
|
|||
387
viktor_vv
29.03.13
✎
17:02
|
(386) Не не, смотри сюда
isnull($ДокШН.Агент, $ДокШ.Агент) = :Агент так тоже двух частей не видно ? |
|||
388
bananan
29.03.13
✎
17:03
|
(385) Здаюсь. Как правильно?
когда я написал так: ТекстЗапроса = ТекстЗапроса +" and (($ДокШН.Агент IN (SELECT Val FROM #tmpAgent)) or ($ДокШ.Агент IN (SELECT Val FROM #tmpAgent2)))"; запрос заработал, но кроме выбраного агента были еще документы с другими агентами... |
|||
389
bananan
29.03.13
✎
17:04
|
(387) три чати
1 - isnull($ДокШН.Агент, $ДокШ.Агент) 2 - = 3 - :Агент |
|||
390
viktor_vv
29.03.13
✎
17:05
|
(389) Теперь читаем (380).
|
|||
391
bananan
29.03.13
✎
17:08
|
(390) я уж совсем отупел
что из (389) можно втавить вместо Агент? |
|||
392
bananan
29.03.13
✎
17:09
|
+(391) часть№1???
|
|||
393
bananan
29.03.13
✎
17:11
|
+(392) Написал так:
ТекстЗапроса = ТекстЗапроса +" and ((isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent)) or (isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent2)))"; но запрос выдает кроме документов тот агент что выбран и документы с другими агентами.. |
|||
394
viktor_vv
29.03.13
✎
17:13
|
(393) Наконец-то.
|
|||
395
bananan
29.03.13
✎
17:13
|
viktor_vv почему запрос с (393) выдает не только выбраных агентов или и ТекстЗапроса = ТекстЗапроса +" and ((isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent)) or (isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent2)))"; - не правильно?:
|
|||
396
viktor_vv
29.03.13
✎
17:15
|
(395) Не знаю, это уже зависит что у тебя в таблице #tmpAgent или в таблице #tmpAgent2
|
|||
397
Ёпрст
29.03.13
✎
17:15
|
(395) потому, что лефт джоин. И не ясно, нахрена тебе 2 временные таблички в тексте запроса и нелепый or в условии
|
|||
398
Ёпрст
29.03.13
✎
17:18
|
Достаточно только это:
inner join $Документ.РасходнаяНакладная as ДокШ ......... inner join $Документ.РасходнаяНакладнаяН as ДокШН .......... and isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #СписокАгентов) ............... Запрос.УложитьСписокОбъектов(ВыбАгент, "#СписокАгентов","ТочноеНазваниеВидаСправочникаВКоторомЖивутТвоиАгенты"); усё, наслаждаймя |
|||
399
bananan
29.03.13
✎
17:19
|
(396) кто-то здесь говорил что в первой табличке - едементы
а во второй - группа, а не елемент |
|||
400
bananan
29.03.13
✎
17:19
|
(398) Спасибо, сейчас так попробую...
|
|||
401
viktor_vv
29.03.13
✎
17:23
|
(398) С inner'ами у него ж отвалится второй вид документов.
|
|||
402
bananan
29.03.13
✎
17:26
|
+(400) но я написал так:
| 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 = $Доставка.КаналСбытаТТ | inner join inner join $Документ.РасходнаяНакладная as Док2Ш | inner join inner join $Документ.РасходнаяНакладная as Док2ШН | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ он мне выдает: Incorrect syntax near the keyword 'inner'. |
|||
403
viktor_vv
29.03.13
✎
17:26
|
(401)+ Или не отвалится. Это уже я для себя.
Плюс по видам документа у него на журнал наладывется условие. |
|||
404
bananan
29.03.13
✎
17:31
|
упс, таки у меня была была ошибка (inner join inner join) ее исправил теперь выдает:
Incorrect syntax near the keyword 'WHERE'. |
|||
405
batman69
29.03.13
✎
17:33
|
Как народ еще не з..ся, всех посылают, а этому дол..у помогают.
|
|||
406
bananan
29.03.13
✎
17:33
|
(405) ну не все же кажаны!
|
|||
407
viktor_vv
29.03.13
✎
17:34
|
(405) тут научный эксперимент идет :).
|
|||
408
bananan
29.03.13
✎
17:34
|
Сейчас у меня такой код:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта as КаналСбыта |, Данные.КатегорияЦены [КатегорияЦены $Перечисление.ТипыЦен] |, Данные.ИдентификаторИсторииЦены |, cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, case Данные.Цена_Прих | WHEN 0 then 0 | ELSE ((Данные.СуммаСНДС / Данные.Количество)/Данные.Цена_Прих-1)*100 end as Проц |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШ.Агент, $ДокШН.Агент) Агеннт | , $КаналСбыта.КатегорияЦены 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 ' ' END ИдентификаторИсторииЦены | , КаналСбыта.id as КаналСбыта | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | ,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 = $Доставка.КаналСбытаТТ | inner join $Документ.РасходнаяНакладная as Док2Ш | inner join $Документ.РасходнаяНакладная as Док2ШН | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбАгент.РазмерСписка()>0 Тогда //ТекстЗапроса = ТекстЗапроса +" and ((isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent)) or (isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent2)))"; ТекстЗапроса = ТекстЗапроса +" and isnull($Док2ШН.Агент, $Док2Ш.Агент) IN (SELECT Val FROM #СписокАгентов)"; КонецЕсли; Если ВыбСклад.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and ((isnull($ДокШН.Склад, $ДокШ.Склад) IN (SELECT Val FROM #tmpSklad)) or (isnull($ДокШН.Склад, $ДокШ.Склад) IN (SELECT Val FROM #tmpSklad2)))"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; //// Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УложитьСписокОбъектов(ВыбАгент, "#СписокАгентов","Агент"); выдает: Incorrect syntax near the keyword 'WHERE'. Что ей в WHERE не нравится? |
|||
409
viktor_vv
29.03.13
✎
17:36
|
Да не надо тебе inner.
|
|||
410
bananan
29.03.13
✎
17:37
|
(409) А как же (398)?
|
|||
411
bananan
29.03.13
✎
17:39
|
+(410) к тому же с левым джоином он выдавал мне не совем то что должен (что я хотел)....
|
|||
412
viktor_vv
29.03.13
✎
17:40
|
(411) Это еще не факт что из-за left.
Ты таки скажи что такое ВыбАгент. |
|||
413
bananan
29.03.13
✎
17:41
|
(411) Понимаю что подвох... -
ВыбАгент - это идентификатор окна на форме |
|||
414
bananan
29.03.13
✎
17:41
|
(412) но когда не лефт а иннер - то выдает правильно все
|
|||
415
bananan
29.03.13
✎
17:44
|
+(414) Цпс да нет когда я написал так:
| left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | inner join $Документ.РасходнаяНакладная as Док2Ш | inner join $Документ.РасходнаяНакладная as Док2ШН выдает Incorrect syntax near the keyword 'WHERE'. |
|||
416
viktor_vv
29.03.13
✎
17:55
|
(413) И в этом окне у тебя что ?
|
|||
417
viktor_vv
29.03.13
✎
17:56
|
(414) В твоем положении тебе остается только верить кому-то, потому что сам ты не проверишь правильность того или иного варианта.
@Епрст конечно поавторитетнее будет . |
|||
418
bananan
29.03.13
✎
17:56
|
+(415) а когда из текста запроса убрал | inner join $Документ.РасходнаяНакладная as Док2Ш
| inner join $Документ.РасходнаяНакладная as Док2ШН запрос работает но опять же выдает не совсем то что надо ЧТО НЕПРАВИЛЬНО в | inner join $Документ.РасходнаяНакладная as Док2Ш | inner join $Документ.РасходнаяНакладная as Док2ШН | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ |
|||
419
bananan
29.03.13
✎
17:57
|
(416) в том окне - Список Агентов
|
|||
420
bananan
29.03.13
✎
17:58
|
+(418) что ему не нравится в синатксисе WHERE?
или нельзв применять в одном запросе и лефт жоин и ыннер джоин? |
|||
421
viktor_vv
29.03.13
✎
18:00
|
(419) Вот поэтому изначальный код дает всех агентов в этом списке, и работает он правильно.
А если тебе нужен по одному их списка, то смотри (350) только уложитьСписокОбъектов(). |
|||
422
bananan
29.03.13
✎
18:00
|
(417) Для меня давали дельные советы что ты что Ёпрст
|
|||
423
bananan
29.03.13
✎
18:02
|
(421) а как в
Если ВыбАгент.ТекущаяСтрока() > 0 Тогда Запрос.УстановитьТекстовыйПараметр("Агент", ВыбАгент.ПолучитьЗначение(ВыбАгент.ТекущаяСтрока())); КонецЕсли; использовать уложитьСписокОбъектов()? |
|||
424
viktor_vv
29.03.13
✎
18:04
|
Проще будет в запросе поменять in select на =:Агент и 1 в 1 тот код.
|
|||
425
bananan
29.03.13
✎
18:06
|
+К тому же,... я что то в тексте запроса начудил... когда убрал из него иннер джоин - все-равно на WHERE ругается... - буду смотреть..
|
|||
426
viktor_vv
29.03.13
✎
18:07
|
Ты как по минному полю ходишь, шаг влево или вправо и мозг взорвался.
|
|||
427
bananan
29.03.13
✎
18:09
|
(426) уже он у меня давно взорвался....
что в коде запроса: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.Цена_Прих |, ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена |, ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара |, Данные.КаналСбыта as КаналСбыта |, Данные.КатегорияЦены [КатегорияЦены $Перечисление.ТипыЦен] |, Данные.ИдентификаторИсторииЦены |, cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ |, case Данные.Цена_Прих | WHEN 0 then 0 | ELSE ((Данные.СуммаСНДС / Данные.Количество)/Данные.Цена_Прих-1)*100 end as Проц |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , isnull($ДокШ.Агент, $ДокШН.Агент) Агеннт | , $КаналСбыта.КатегорияЦены 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 ' ' END ИдентификаторИсторииЦены | , КаналСбыта.id as КаналСбыта | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | ,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 = $Доставка.КаналСбытаТТ | inner join $Документ.РасходнаяНакладная as Док2Ш | inner join $Документ.РасходнаяНакладная as Док2ШН | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбАгент.РазмерСписка()>0 Тогда //ТекстЗапроса = ТекстЗапроса +" and ((isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent)) or (isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent2)))"; ТекстЗапроса = ТекстЗапроса +" and isnull($Док2ШН.Агент, $Док2Ш.Агент) IN (SELECT Val FROM #СписокАгентов)"; КонецЕсли; неправильно в использовании WHERE???? |
|||
428
viktor_vv
29.03.13
✎
18:11
|
И ты таки где-то херню говоришь
"тот вариант что ты показал - выдает документы (ему пофимг кто агент в этих документах).... в список юзер может добавить одного агента, группу агентов, а может и совем не добавлять в список ничего" если у тебя в списке несколько агентов, то по ним всем и дается результат запроса, че ты еще от него хочешь. Как ты определяешь, что лишнее выдал результат запроса ? |
|||
429
bananan
29.03.13
✎
18:12
|
(428) Он мне выдавал документы в которых агент - которого не было в списке из нескольких агентов
|
|||
430
bananan
29.03.13
✎
18:16
|
сейчас гвоздь как раз в тексте запроса там после всех перетрубаций WHERE некоректно, и если убрать то что я добавил по совету Ёпрст - то WHERE остается некоректным. Почему?
|
|||
431
viktor_vv
29.03.13
✎
18:20
|
(430) Засада :), не надо было добавлять :). А счастье было так близко.
|
|||
432
bananan
29.03.13
✎
18:22
|
(431) Не смешно, но я в упор не вижу в коде:
| left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | inner join $Документ.РасходнаяНакладная as Док2Ш | inner join $Документ.РасходнаяНакладная as Док2ШН | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбАгент.РазмерСписка()>0 Тогда //ТекстЗапроса = ТекстЗапроса +" and ((isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent)) or (isnull($ДокШН.Агент, $ДокШ.Агент) IN (SELECT Val FROM #tmpAgent2)))"; ТекстЗапроса = ТекстЗапроса +" and isnull($Док2ШН.Агент, $Док2Ш.Агент) IN (SELECT Val FROM #СписокАгентов)"; КонецЕсли; некоректного использования WHERE |
|||
433
viktor_vv
29.03.13
✎
18:22
|
Зато есть некорректное использование inner join.
|
|||
434
bananan
29.03.13
✎
18:30
|
(433) В чем там некорректность?
второе когда убрать из запроса | inner join $Документ.РасходнаяНакладная as Док2Ш | inner join $Документ.РасходнаяНакладная as Док2ШН некорректное использование WHERE - остается В чем фигна? Текст запроса такой: SELECT Данные.IDDoc as [Документ $Документ] , Данные.IdDocDef as Документ_вид , Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] , Данные.lineno_ as НомерСтроки_ , Данные.Автор as [Автор $Справочник.Сотрудники] , Данные.Клиент [Клиент $Справочник.Клиенты] , Данные.Цена_Прих , ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) as МинЦена , ROUND(Данные.СуммаСНДС/Данные.Количество, 2) as ЦенаТовара , Данные.КаналСбыта as КаналСбыта , Данные.КатегорияЦены [КатегорияЦены $Перечисление.ТипыЦен] , Данные.ИдентификаторИсторииЦены , cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Данные.ТМЦ AND История.ID=Данные.ИдентификаторИсторииЦены AND История.DATE<=Данные.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбытаВ , case Данные.Цена_Прих WHEN 0 then 0 ELSE ((Данные.СуммаСНДС / Данные.Количество)/Данные.Цена_Прих-1)*100 end as Проц , 'має ціну нижчу за прихідну' as Ошибка from ( SELECT Жур.IDDoc as IDDoc , Жур.IdDocDef as IdDocDef , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС , isnull($ДокШН.Клиент, $ДокШ.Клиент) as Клиент , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен , isnull($ДокШ.Агент, $ДокШН.Агент) Агеннт , $КаналСбыта.КатегорияЦены 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 ' ' END ИдентификаторИсторииЦены , КаналСбыта.id as КаналСбыта , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка , $ОбщийРеквизит.Автор as Автор ,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 = $Доставка.КаналСбытаТТ inner join $Документ.РасходнаяНакладная as Док2Ш inner join $Документ.РасходнаяНакладная as Док2ШН WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) and isnull($Док2ШН.Агент, $Док2Ш.Агент) IN (SELECT Val FROM #СписокАгентов) ) Данные WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) ПОЧЕМУ он выдает: Incorrect syntax near the keyword 'WHERE'. |
|||
435
viktor_vv
29.03.13
✎
18:31
|
Ну и где там убранный inner join ?
|
|||
436
sapphire
29.03.13
✎
18:33
|
Долбобей тупит...
|
|||
437
bananan
29.03.13
✎
18:34
|
Здесь он не убран.... Где здесь некорректность WHERE?
а когда я иннер убрал - некорректность синтаксиса осталась - только-что проверил... т.е. (не смотри на иннер - считай что его там нет) в чем лажа с WHERE?? |
|||
438
bananan
29.03.13
✎
18:35
|
(436) а ты не тупи - возьми тот код запроса что я показал - и проверь и скажи кто и в чем тупит???
|
|||
439
sapphire
29.03.13
✎
18:36
|
(438) Нет, долбобеюшка, мучайся
|
|||
440
bananan
29.03.13
✎
18:37
|
(439) Сам ты - добосапер...!
|
|||
441
sapphire
29.03.13
✎
18:39
|
(440) Я-то знаю кто я, а ты, Бананан Долбобей...
|
|||
442
bananan
29.03.13
✎
18:39
|
(439) Ты окромя как обзываться что-то еще умеешь??
|
|||
443
bananan
29.03.13
✎
18:39
|
(441) За такое "поблядение" - можно и получить
|
|||
444
sapphire
29.03.13
✎
18:41
|
(442) О. Месье, я умею куда больше нежели ты.
Тебе же разбираться лень, я вот вижу ошибку, но не скажу тебе. |
|||
445
sapphire
29.03.13
✎
18:41
|
(443) Попробуй.
|
|||
446
bananan
29.03.13
✎
18:42
|
(445) приезжай - увидишь
|
|||
447
viktor_vv
29.03.13
✎
18:45
|
Ты ж когда inner убрал, у тебя ж и этого алиаса уже нет Док2ШН, и в описании ошибки оно тебе должно было написать, но ты ж не читаешь.
|
|||
448
bananan
29.03.13
✎
19:07
|
(447) нет и еще раз нет
когда я иннер убрал альяс понятно исчез а вот ошибка осталась Incorrect syntax near the keyword 'WHERE'. и причем здесь алиас на Док2ШН???? |
|||
449
bananan
29.03.13
✎
19:08
|
т.е. когда я убрал две строки с инером... осталась ошибка Incorrect syntax near the keyword 'WHERE'
|
|||
450
bananan
29.03.13
✎
19:14
|
Упс. Сейчас еще раз проделал это...
Запрос - работает. но... в списке агентов я выбрал только агента Бобер, а выдает он мне документы в которых агент Бреус, Довгалюк и прочие (в том числе и Бобер).. ПОЧЕМУ???? |
|||
451
bananan
29.03.13
✎
19:16
|
А раз так - то может там ляп не с WHERE, а что-то не "кошерно" в строках
| inner join $Документ.РасходнаяНакладная as Док2Ш | inner join $Документ.РасходнаяНакладная as Док2ШН ? |
|||
452
batman69
29.03.13
✎
19:27
|
Дурдом, и главное, для бананана совершенно бесполезно ))))
|
|||
453
bananan
29.03.13
✎
19:28
|
(452) Кажан я уже понял нельзя два разніх алиаса задавать на одну и ту же таблицу
|
|||
454
viktor_vv
29.03.13
✎
19:28
|
(452) Вот это самое обидное, пожалуй мой энтузизам угас :).
|
|||
455
viktor_vv
29.03.13
✎
19:29
|
*энтузиазм
|
|||
456
bananan
29.03.13
✎
19:31
|
(454) А что
код типа: inner join $Документ.РасходнаяНакладная as Док2Ш inner join $Документ.РасходнаяНакладная as Док32Ш будет работать??? |
|||
457
Mikeware
29.03.13
✎
19:33
|
"Бобер, агент Бананана"®
сюр... |
|||
458
bananan
29.03.13
✎
19:38
|
(457) НЕ флуди
|
|||
459
bananan
01.04.13
✎
15:11
|
Всем - добрый день и с праздником наших оппонентов!
Прошлый скрипт я уже довел до ума (работает как надо) - просто в пятницу я что-то тупил на ровном месте (сегодня - снялся с ручника и за 5-7 минут довел скрипт до конца). Сейчас пишу новый скрипт, вот здесь я уже опять запнулся (скорее всего снова ж таки на ровном месте). Так вот на форме у меня три окна для выбора (Агент, Клиент, ТМЦ). Что-то я в процедуре ОбработкаПодбора(Выб) нахомутал и.. Агент - вбирается, ТМЦ - выбирается, а вот Клиент - не выбирается (т.е. выбраный Клиент не появляется в окне выбора Клиент). Текст процедуры Процедура ОбработкаПодбора(Выб) написал такой: Если Выб.Вид()= "Агент" Тогда ВыбАгент.ДобавитьЗначение(Выб); ВыбАгент.ТекущаяСтрока(ВыбАгент.РазмерСписка()); ИначеЕсли Выб.Вид() = "Клиент" Тогда ВыбКлиент.ДобавитьЗначение(Выб); ВыбКлиент.ТекущаяСтрока(ВыбКлиент.РазмерСписка()); ИначеЕсли Выб.Вид()= "ТМЦ" Тогда ВыбТМЦ.ДобавитьЗначение(Выб); ВыбТМЦ.ТекущаяСтрока(ВыбТМЦ.РазмерСписка()); Конецесли; Подскажите - где я торможу... |
|||
460
Mikeware
01.04.13
✎
15:15
|
(459)>>Подскажите - где я торможу...
Ты не поверишь...® ВЕЗДЕ! |
|||
461
Ёпрст
01.04.13
✎
15:16
|
Выб.Вид() = "КлиентЫ"
или "Контрагенты", ну короче, пишу правильный ВИД справочника |
|||
462
bananan
01.04.13
✎
15:20
|
(460) см (259)
(461) спасибо, сейчас проверю... |
|||
463
bananan
01.04.13
✎
15:26
|
+(462), так и было, исправило - заработало, а теперь... в накладных товары продаются в разных еденицах измерения, мне надо на форму поставить окно с выбором итоговой еденицы измерения, но, еденицы измерения - это - перечисление это не справочник а перечисление к тому же в данном случае нельзвя выбирать больше одного елемента. Какой визуальный элемент атавить на форму?
|
|||
464
bananan
01.04.13
✎
15:26
|
+(463) Поле со списком?
|
|||
465
bananan
01.04.13
✎
15:29
|
+(464) а как в это поле со списком добавить значения из Перечисление.Единицы?
|
|||
466
Mikeware
01.04.13
✎
15:35
|
Света Семененко таки сменила пол, и стала банананом...
|
|||
467
ЧеловекДуши
01.04.13
✎
15:39
|
(456) Не забудь указать NOLOCK
Зачем NOLOCK в селекте? http://www.sql.ru/forum/actualthread.aspx?tid=109783 Почитай, тебе полезно ;) |
|||
468
ЧеловекДуши
01.04.13
✎
15:40
|
(463) Оставь тот, что указан в номенклатуре (это надеюсь Справочник?) :)
|
|||
469
ЧеловекДуши
01.04.13
✎
15:41
|
+(456)Да чего там мелочиться, вот
https://www.google.ru/search?q=NOLOCK+SQL+зачем+он+там&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-beta |
|||
470
bananan
01.04.13
✎
15:41
|
(467) Спасибо, но это на сегодня - не актуально... прочту на днях...
(466) см (259) |
|||
471
bananan
01.04.13
✎
15:42
|
(468) Это не Справочник, а Перечисление..
|
|||
472
bananan
01.04.13
✎
15:44
|
NOLOCK и проч. сегодня неактуально, Сейчас мене надо на форму потсавить окно или что в котором пользователь сожет выбирать итоговую едтнтцу измерения, Единицы измерения берутся из перечисления Единицы..
|
|||
473
ЧеловекДуши
01.04.13
✎
15:45
|
(451) Для тех, кто не умеет пользоваться гуглом
"inner join" - Что это и для чего оно там Операторы Inner Join и Outer (left, right, full) Join в SQL (Oracle) http://www.javenue.info/post/20 Но и для тех, кто верит в плоскость небесной оси... https://www.google.ru/search?q=NOLOCK+SQL+зачем+он+там&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-beta#hl=ru&newwindow=1&client=firefox-beta&hs=X9y&rls=org.mozilla:ru%3Aofficial&sclient=psy-ab&q=inner+join+SQL+зачем+он+там&oq=inner+join+SQL+зачем+он+там&gs_l=serp.3...240458.240458.0.241729.1.1.0.0.0.0.0.0..0.0.eappsweb..0.0...1.1.7.psy-ab.GulFDT2ba-A&pbx=1&bav=on.2,or.r_cp.r_qf.&bvm=bv.44442042,d.bGE&fp=99b15bffd6a449fd&biw=1152&bih=761 (471)Ты не поверишь, я не удивлен, и мне побоку... Потом когда обработаешь в (467), то обработай и тут :) |
|||
474
ЧеловекДуши
01.04.13
✎
15:46
|
+(472)Ты сейчас со мной через гугл переводчик общаешься? :)
|
|||
475
bananan
01.04.13
✎
15:48
|
(473) Опять же прошлый Скрипт с запросом (вернее там три запроса) я уже сдал..
и на данный момент мне ндо поставить на форму визуальный элемент, из которого польхователь сможет выбирать единицу измерения. Я думаю что это надо использовать поле со списком... но ка запролнить список ? |
|||
476
bananan
01.04.13
✎
15:49
|
(474) А ты со мной общаешся из Прошлого?
|
|||
477
Mikeware
01.04.13
✎
15:50
|
(475) почитать документацию, и сделать как там сказано...
|
|||
478
Mikeware
01.04.13
✎
15:51
|
всех желающих "помочь" - предупреждаю: ветка в юморе, все кроме флуда будет удаляться :-)
|
|||
479
bananan
01.04.13
✎
15:52
|
(477) Хоть что-то не из области флуда ты выдал за последнее время... Читаю, просто-напросто, быстрее если кто подскажет, а не прочитать десятки страниц доки чтобы найти нужное...
|
|||
480
ЧеловекДуши
01.04.13
✎
15:52
|
(475) Да ты не чихай, у тебя тупые вопросы об одном и том же, по этому, я не поленюсь тебя тыкать носом в гуглЪ :)
|
|||
481
bananan
01.04.13
✎
15:52
|
(478) Да пошел ты в свой флудный юмор
|
|||
482
ЧеловекДуши
01.04.13
✎
15:52
|
(479)Считай дальше... работать за тебя походу уже даже Епрст отказался :)
|
|||
483
bananan
01.04.13
✎
15:54
|
(480) С выьором перечисления я сталкивабюст впервые так что вопроса об жтом не было..
|
|||
484
ЧеловекДуши
01.04.13
✎
15:55
|
(483) На, держи...
ВвестиПеречисление Вызов диалога для ввода перечисления. Синтаксис: ВвестиПеречисление(<3начение>, <Подсказка>, <Таймаут>) Англоязычный синоним: InputEnum Параметры: <3начение> Имя переменной, ранее объявленной в программном модуле. Переменная должна содержать значение типа «Перечисление» или строковое значение. Если тип передаваемого в качестве параметра значения — перечисление, то вызывается диалог со списком заданного вида перечисления. Если тип передаваемого в качестве параметра значения — строка, то в ней должен быть идентификатор требуемого вида перечисления, как он задан в конфигураторе. В эту же переменную будет помещено выбранное в диалоге значение перечисления. <Подсказка> Текст заголовка окна диалога ввода. Может использоваться в качестве подсказки конечному пользователю. <Таймаут> Необязательный параметр. Числовое выражение интервала времени ожидания ответа в секундах, в течение которого система будет ожидать ответа пользователя. Если данный параметр опущен или равен 0, то время ожидания бесконечно. Значение по умолчанию — 0. Возвращаемое значение: Числовое значение: 1 — если в диалоге нажата кнопка «ОК», 0 — если нажата кнопка «Отмена»; -1 (минус единица) — если закончилось время ожидания ответа. Описание: Функция ВвестиПеречисление выполняет вызов диалога для ввода перечисления. Пример: * Процедура УстПризнак1() ВыбПризн = Перечисление.ТипСотрудника.Штатный; Если ВвестиПеречисление(ВыбПризн, "Выберите тип") > 0 Тогда Тип = ВыбПризн; Иначе Тип = Перечисление.ТипСотрудника.Штатный; КонецЕсли; КонецПроцедуры * Процедура УстПризнак2() ВыбПризн = "ТипСотрудника"; Если ВвестиПеречисление(ВыбПризн, "Выберите тип") > 0 Тогда Тип = ВыбПризн; Иначе Тип = Перечисление.ТипСотрудника.Штатный; КонецЕсли; КонецПроцедуры |
|||
485
Mikeware
01.04.13
✎
15:59
|
(484) ему не совсем это требовалось.
хотя можно и это использовать. вообще, способов дофига... |
|||
486
oslokot
01.04.13
✎
16:10
|
(475),(483) попробуй использовать цикл но прежде почитай в СП про методы вида перечисления
|
|||
487
bananan
01.04.13
✎
16:17
|
(485) Точно мне не это надо... но и оно подойдет...
Но лучше на форме окно со списком в нем и выбирается необходимачя единица измерение. (486) Так и думал сделать, читаю и пробую... |
|||
488
bananan
01.04.13
✎
16:25
|
вот кусок кода:
ед = СоздатьОбъект("Перечислние.Единицы"); итер = ед.КоличествоЗначений(); выдает: Неудачная попытка создания объекта (Перечислние.Единицы) что неправильно? |
|||
489
Ёпрст
01.04.13
✎
16:29
|
(488) круто, че.
|
|||
490
Mikeware
01.04.13
✎
16:29
|
(488) ДНК
|
|||
491
Ёпрст
01.04.13
✎
16:30
|
Как бы тебе попроще то сказать ?
Перечисление - это не объект ИБ, это объект мд. Его не надо создавать, он и так всегда есть |
|||
492
bananan
01.04.13
✎
16:30
|
(489), (490) А как это сделать?
|
|||
493
bananan
01.04.13
✎
16:31
|
(491) Понял, сейчас попробую...
|
|||
494
bananan
01.04.13
✎
16:33
|
+Работает, а теперь как значения Перечисления.Единицы "засунуть" в окно списка?
|
|||
495
Ёпрст
01.04.13
✎
16:36
|
Тебе одно значение надо в фильтр, или несколько ?
|
|||
496
bananan
01.04.13
✎
16:37
|
(495) Надо - одно
|
|||
497
Ёпрст
01.04.13
✎
16:39
|
(496) выкидываешь всё что написал, на поле кладешь Реквизит Диалога, в Тип указываещь Перечисление.НужныйВид - наслаждаешься положительными эмоциями
|
|||
498
bananan
01.04.13
✎
16:40
|
(497) Спасибо
|
|||
499
bananan
01.04.13
✎
16:44
|
А как в прямом запросе выбрать значения перечисления.Единицы?
|
|||
500
Ёпрст
01.04.13
✎
16:47
|
(499) откуда выбрать ?
Воткнуть в качестве условия, или что ? |
|||
501
bananan
01.04.13
✎
16:49
|
Хотя не совсем правильный вопрос я задал... Значит так я выбираю (эта часть запроса или это запрос уже написан) клиентов которые купили заданные товары, товары в накладных могут быть с разными единицами измерения (т.е. в одной накладной ТМЦ№1 10шт, во второй накладной - 2 ящика, в третьей 5 шт (значит всего даного товара продано 3.5 ящика (в ящике 10шт)....
Т.е. мне надо просуммировать товары по накладных в выбраной единице измерения.. |
|||
502
bananan
01.04.13
✎
17:00
|
+(501) На данный момент есть такой запрос (написал я его сам):
ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.Агент as [Агент $Справочник.Агент] |, Данные.количество |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull($ДокШ.Агент, $ДокШН.Агент) Агент | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | 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 = $ВидДокумента.РасходнаяНакладная | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбТМЦ.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT Val FROM #СписокТМЦ)"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные"; Запрос.УложитьСписокОбъектов(ВыбТМЦ, "#СписокТМЦ","ТМЦ"); Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); надо написать чтобы к-во в из документа переводилось в к-во в тех единицах, что выбрал юзер... |
|||
503
Mikeware
01.04.13
✎
17:25
|
(502) ну напиши :-)
|
|||
504
bananan
01.04.13
✎
17:42
|
(503) А ты что думал, жду готовое решение? Да пишу...
|
|||
505
bananan
01.04.13
✎
18:13
|
Что-то я опять В штопоре.... Где в конфигурации искать сколько штук в ящике (коэффициенты ед.измерения)?
|
|||
506
Mikeware
01.04.13
✎
18:14
|
(505) Бу-га-га!©
|
|||
508
Mikeware
01.04.13
✎
18:28
|
Уважаемый князь тьмы Бананан Долбобеевич Ровенский-Феерический...
это мы должны у Вашего Толпойоппства спрашивать - где в _ВАШЕЙ_ конфигурации хранятся коэффициенты... |
|||
509
bananan
01.04.13
✎
18:33
|
+(505) Эти коэффициенты храняться в Справочник.ЕдИзм (Марнотртный ( Mikeware ), сожешь пользоваться)
|
|||
510
Mikeware
01.04.13
✎
18:33
|
(509) у вас дирехтур - Полищук?
|
|||
511
bananan
01.04.13
✎
18:34
|
(508) я думал, что в челяюинске люди живут, а не го.. на палочке, которое только матом может
|
|||
512
bananan
01.04.13
✎
18:34
|
(511) у вас Мидведев
|
|||
513
Mikeware
01.04.13
✎
18:34
|
(511) говно все в Ровно сплавили...
|
|||
514
Mikeware
01.04.13
✎
18:35
|
(512) позвонию завтра, узнаю кто у вас айтишнег. ссылку дам на твои ветки...
|
|||
515
bananan
01.04.13
✎
18:37
|
(514) Всегда, пожалйста, мне для такого ... как ты ничего не жалко
|
|||
516
ЧеловекДуши
01.04.13
✎
21:22
|
(502) Пиши... делай... https://www.google.ru/
Твой сайт |
|||
517
ЧеловекДуши
01.04.13
✎
21:26
|
Вот... познай... http://1clancer.ru/article/poluchenie_polej_cherez_tochku_v_zaprose_750
Вот так ты найдешь свою единицу измерения :) помогите оптимизировать запрос (sql) Жесть... самое прикольное у него в БД одна единица измерения, а он собирается её пересчитывать в ту, что укажет пользователь :) |
|||
518
bananan
02.04.13
✎
10:35
|
Добрый день!
(517) У меня в БД около 10 единиц измерения, в справочнике ТМЦ у каждого ТМЦ указана базовая единица измерения... А тперь, написал я такой запрос: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.Агент as [Агент $Справочник.Агент] |, Данные.количество |, Данные.Коэффициент |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull($ДокШ.Агент, $ДокШН.Агент) Агент | , isnull($ДокС.Коэффициент, $ДокН.Коэффициент) Коэффициент | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = ТМЦ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбТМЦ.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT Val FROM #СписокТМЦ)"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные | WHERE Данные.Коэффициент>1 "; когда писал, так и думал что ТМЦ в подзапросе по поводу коэффициентов не пройдет... выдает ошибку:Invalid column name 'ТМЦ'. А как к тому ТМЦ доступиться ? |
|||
519
Wobland
02.04.13
✎
10:36
|
>СпрЕдиницы.Владелец = ТМЦ
это ты так параметр передаёшь? |
|||
520
Wobland
02.04.13
✎
10:37
|
тфу, какой параметр же.. чьё это ТМЦ ты имеешь в виду? какой таблицы?
|
|||
521
bananan
02.04.13
✎
10:40
|
(519) | where $Спр.Ед =:ВыбЕдиница вот так я передаю параметр
ТМЦ - это поле справочника ТМЦ |
|||
522
Wobland
02.04.13
✎
10:42
|
>СпрЕдиницы.Владелец = ТМЦ
чьё это ТМЦ ты имеешь в виду? какой таблицы? |
|||
523
bananan
02.04.13
✎
10:43
|
в данном запроса таблица нразывается Данные...
|
|||
524
bananan
02.04.13
✎
10:43
|
а вообще, это тмц указанное табличной части документа..
|
|||
525
Mikeware
02.04.13
✎
10:47
|
(517) Самое забавное, что этот зверек уже находил единицы. Достаочно посмотреть на его ближайшие ветки. например Непростой запрос..
Просто оно нихрена не помнит собственные ветки... Не знает собственнную конфигу. не умеет читать документацию, не умеет даже отладчиком пользоваться. Да какой там отладчик - СП прочитать у него мозгов не хватает.... блин, пытаюсь с его начальником созвониться - связь обрывается. везет пока зверушке... |
|||
526
Wobland
02.04.13
✎
10:52
|
(524) не вижу
|
|||
527
Wobland
02.04.13
✎
10:54
|
(525) 25 скриптов, не забывай
|
|||
528
bananan
02.04.13
✎
11:05
|
(525) О, проснулось он ми изрыгает...
|
|||
529
bananan
02.04.13
✎
11:11
|
Опят же если поробывать обратиться Данные.ТМЦ - тоже не пройдет потому что данный подзапрос находится в подзапросе данные.
а как к нему достучаться? НИ у кого нет идей? |
|||
530
Wobland
02.04.13
✎
11:12
|
кстати, раз уж тут немного говорят о прямых запросах... 1CQA.ert - неплохая такая штука. но неудобность: отступы приходится пробелами делать. нельзя ль как-то семёрочное текстовое поле табуляцию воспринимать как табуляцию, а не смену фокуса?
|
|||
531
Wobland
02.04.13
✎
11:13
|
(529) ты ж спрашивал такое. может, тебе бросить спать, чтоб память не стиралась?
|
|||
532
bananan
02.04.13
✎
12:22
|
(530) пробывал - не хочет он работать под нашей конфигурацией (выдает какие-то ошибки)
(529) на работе я не сплю. И, когда я такое спрашивал, необходимость обращения к подчиненному справочнику возникла почти впервые... |
|||
533
bananan
02.04.13
✎
12:29
|
+ пробывал так:
| select | Жур.iddoc as [Док $Документ] | ,Жур.iddocdef as [Док_вид $ВидДокумента] | ,Таб.Товар as [Товар $Справочник.ТМЦ] | ,sum(Таб.Количество) as КоличествоВБазовойЕдиницеИзмерения | ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент,1)) as КоличествоВЯщиках | ,Таб.Агент as [Агент $Справочник.Агент] | ,Таб.количество | ,Таб.Коэффициент | from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | ,isnull($ДокШ.Агент, $ДокШН.Агент) Агент | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | left join ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | group by Жур.iddoc,Жур.iddocdef,Таб.Товар"; понятно что ему не нравытся строки | left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная Здесь он почему-то не понимет Жур, но во внешнем запросе Жур он понимает запроста... |
|||
534
bananan
02.04.13
✎
12:42
|
+ к тому же альяс Жур объявлен ниже:
| left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ |
|||
535
vinogradъ
02.04.13
✎
12:45
|
Не, Данила, не выйдет каменный цветок.
|
|||
536
bananan
02.04.13
✎
12:48
|
(535) Да вижу, что не выходит... А как это сделать?
|
|||
537
bananan
02.04.13
✎
12:52
|
На данный момент есть два варианта (к сожалению оба нерабочие :()
Вариант 1: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.Агент as [Агент $Справочник.Агент] |, Данные.количество |, Данные.Коэффициент |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull($ДокШ.Агент, $ДокШН.Агент) Агент | , isnull($ДокС.Коэффициент, $ДокН.Коэффициент) Коэффициент | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Вариант 2: | select | Жур.iddoc as [Док $Документ] | ,Жур.iddocdef as [Док_вид $ВидДокумента] | ,Таб.Товар as [Товар $Справочник.ТМЦ] | ,sum(Таб.Количество) as КоличествоВБазовойЕдиницеИзмерения | ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент,1)) as КоличествоВЯщиках | ,Таб.Агент as [Агент $Справочник.Агент] | ,Таб.количество | ,Таб.Коэффициент | from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | ,isnull($ДокШ.Агент, $ДокШН.Агент) Агент | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | left join ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | group by Жур.iddoc,Жур.iddocdef,Таб.Товар"; |
|||
538
bananan
02.04.13
✎
13:17
|
+ Хотя... Первый вариант - вроде работает, но не возвращает ниодной записи...
|
|||
539
bananan
02.04.13
✎
13:21
|
+ Таки первый вариант что-то да выдает (период год) - выдал 8 записей....
|
|||
540
bananan
02.04.13
✎
16:49
|
Запрос работает, но (я не удивляюсь.. :().ко для вывода таблицы что-то глючит (код такой:
Запрос.УложитьСписокОбъектов(ВыбТМЦ, "#СписокТМЦ","ТМЦ"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#СписокАгентов","Агент"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#СписокКлиентов","Клиенты"); Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УстановитьТекстовыйПараметр("ВыбЕдиница", ВыбЕд); ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТбЗн.Выбратьстроку(); Вопрос("Строк в результате (ТбЗн.КоличествоСтрок(): "+ТбЗн.КоличествоСтрок()); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Таб.ВывестиСекцию("Шапка"); Таб.Опции(0,0,Таб.ВысотаТаблицы()); Пока ТбЗн.Получитьстроку()=1 Цикл Таб.ВывестиСекцию("Документ"); Сообщить("ТбЗн.Документ="+ТбЗн.Документ+" ТбЗн.Агент:"+ТбЗн.Агент+" ТбЗн.ТМЦ"+ТбЗн.ТМЦ); Сообщить("ТбЗн.количество="+ТбЗн.количество+" ТбЗн.Коэффициент:"+ТбЗн.Коэффициент+" --"); КонецЦикла; Таб.ВывестиСекцию("Документ"); Таб.ТолькоПросмотр(1); //Таб.Защита(0); ; //Таб.ОбластьПечати(2); Таб.Показать("Журнал-документов: ("+ПериодСтр(ДатаС, ДатаПо)+")", ); Так вот, ни одна секция не выводится (в цикл не поападаем). что здесь глючит? |
|||
541
viktor_vv
02.04.13
✎
16:56
|
До дыр вглядываемся в
ТбЗн.Выбратьстроку(); |
|||
542
viktor_vv
02.04.13
✎
16:57
|
(525) Тебя видно серьезно зацепило :).
Таи справедливость должна восторжествовать :). |
|||
543
bananan
02.04.13
✎
17:04
|
(541) Просто перед ТбЗн.Получитьстроку() надо вызывать ТбЗн.ВыбратьСтроки();
(542) А он, как я вижу с самого (своего) начала зацепленный... |
|||
544
bananan
02.04.13
✎
17:40
|
Такой вопрос (вывожу в Таблицу Агент, Клиент, ТМЦ)
если в данной строе Агент такой же как и был в предыдущей, то Агент не выводить... Как это в коде написать? Пробывал так: Пред = СоздатьОбъект("Справочник"); Пока ТбЗн.Получитьстроку()=1 Цикл Если ТбЗн.Агент<>Пред Тогда Таб.ВывестиСекцию("Док2"); Иначе Таб.ВывестиСекцию("Документ"); КонецЕсли КонецЦикла; Он мне выводит все без поля Агент, т.е. я неправильно проверяю равен ли текущий Агент предыдущему... Как это правильно написать? И еще на форме у меня реквезит диалога ВыбЕд - в таблице пишу выражение ВыбЕд - ничего не выводит. Как правильно вывести в таблицу реквизит диалога? |
|||
545
КонецЦикла
02.04.13
✎
17:41
|
Умопомрачительно...
Чел предпочитает строчить он-лайн вместо того чтобы отладчик запустить Может установить веб-камеру и типа такого? http://blog.geocam.ru/2012/04/04/alutaguse-webcam/ |
|||
546
bananan
02.04.13
✎
17:44
|
(545) Отладчик здесь явно ничем не поможет...
|
|||
547
bananan
02.04.13
✎
17:49
|
+ еще вопрос я выбираю ТМЦ так:
and isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT Val FROM #СписокТМЦ) необходимо выбрать Агентов (ну и соответственно документы) которые продавали ВСЕ из указаных ТМЦ (тмц указывается в диалоге) как это озапросить? |
|||
548
bananan
02.04.13
✎
17:51
|
+ в диалоге есть реквизит ВыбЕд. Как его вывести в поле Таблицы? ВыюЕд/выражение/ - не выводит он выбраную пользователем единицу измерения..
|
|||
549
ЧеловекДуши
03.04.13
✎
08:36
|
(546) Соглашусь, в вашем случаи, даже отладчик бессилен :)
...им же еще надо уметь пользоваться... ;) |
|||
550
ЧеловекДуши
03.04.13
✎
08:37
|
(548) Не знаю, я бессилен, а ты? (подумай)
|
|||
551
bananan
03.04.13
✎
10:17
|
Доброе утро всем! Вчера форум досило ну и у меня со скриптом было мягко говоря не все в порядке... Но в конце-концов добился, чтобы запрос работал. Но мне надо вывести на вывод коэфициент преобразования единицы измерения в другую ед. измерения
Запрос теперь такой: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.Агент as [Агент $Справочник.Агент] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.количество |, Данные.Коэффициент |, Данные.СпрЕдиницы |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull($ДокШ.Агент, $ДокШН.Агент) Агент | , isnull($ДокШ.Клиент, $ДокШН.Клиент) Клиент | , isnull($ДокС.Коэффициент, $ДокН.Коэффициент) Коэффициент | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбТМЦ.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT Val FROM #СписокТМЦ)"; КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШ.Агент, $ДокШН.Агент) IN (SELECT Val FROM #СписокАгентов)"; КонецЕсли; Если ВыбКлиент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШ.Клиент, $ДокШН.Клиент) IN (SELECT Val FROM #СписокКлиентов)"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные "; Выдает: Invalid column name 'СпрЕдиницы'. |
|||
552
Wobland
03.04.13
✎
10:18
|
так это ты вчера свой скрипт на мисту заддосил?
|
|||
553
Wobland
03.04.13
✎
10:20
|
ещё раз. следи внимательно за руками
>>выбрать таб1.поле1 из (выбрать таб2.поле2 из таб2) как таб1 опля! нету поля1 в таблице таб1 |
|||
554
bananan
03.04.13
✎
10:26
|
(552) Нет, мы мирные люди...
(553) Сейчас попробую сам разораться... |
|||
555
bananan
03.04.13
✎
10:38
|
Да но СпрЕдиницы находиться у меня в таблице Данные:
) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбТМЦ.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT Val FROM #СписокТМЦ)"; КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШ.Агент, $ДокШН.Агент) IN (SELECT Val FROM #СписокАгентов)"; КонецЕсли; Если ВыбКлиент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШ.Клиент, $ДокШН.Клиент) IN (SELECT Val FROM #СписокКлиентов)"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные "; |
|||
556
Wobland
03.04.13
✎
10:39
|
(555) вот это у тебя в Данных:
Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull($ДокШ.Агент, $ДокШН.Агент) Агент | , isnull($ДокШ.Клиент, $ДокШН.Клиент) Клиент | , isnull($ДокС.Коэффициент, $ДокН.Коэффициент) Коэффициент | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество |
|||
557
ЧеловекДуши
03.04.13
✎
10:40
|
(555) Ты непробиваемый ...Т... :)
|
|||
558
bananan
03.04.13
✎
10:41
|
т.е. этот селект где и выбирается СпрЕдиницы надо заальясить какой-то другой таблицей?
|
|||
559
Wobland
03.04.13
✎
10:42
|
(558) покажи мне селект, где у тебя и выбирается СпрЕдиницы
|
|||
560
Mikeware
03.04.13
✎
10:42
|
(557) зато с ума не сойдет... :-)
|
|||
561
bananan
03.04.13
✎
10:42
|
(559) он внутри Данные:
left join ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) |
|||
562
Wobland
03.04.13
✎
10:43
|
до меня дошло. он не понимает, что запрос - это набор операторов. для него это функция типа чёрного ящика, которой передаются какие-то параметры методом копи-паста
|
|||
563
Wobland
03.04.13
✎
10:44
|
(561) не выбирается
|
|||
564
Mikeware
03.04.13
✎
10:44
|
(562) тормоз..
об этом еще три месяца назад говорили... :-))) |
|||
565
bananan
03.04.13
✎
10:44
|
(562) До меня не дошло, ну и ты не прав по поводу черного ящика...
А как мне достучаться к СпрЕдиницы из внешнего запроса? |
|||
566
ЧеловекДуши
03.04.13
✎
10:45
|
(561) Если оно в нутри, то с чего ты взял, что оно попадет в наружу?
|
|||
567
Wobland
03.04.13
✎
10:46
|
(564) я для себя открытие сделал: так можно ;)
(565) запомни: запрос - это отдельный скрипт в скрипте. со своим поведением |
|||
568
ЧеловекДуши
03.04.13
✎
10:48
|
(565) Еще раз, Ты видешь тут свою "СпрЕдиницы.<Какой-то Алиес>"?
| Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull($ДокШ.Агент, $ДокШН.Агент) Агент | , isnull($ДокШ.Клиент, $ДокШН.Клиент) Клиент | , isnull($ДокС.Коэффициент, $ДокН.Коэффициент) Коэффициент | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество Вот и я нет :) |
|||
569
bananan
03.04.13
✎
10:55
|
(568) И я не вижу, но мне надо к нему достучаться...
Пробывал так: | left join ( | (select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ))СпрКоеф Не пропускает - выдает: Incorrect syntax near the keyword 'on'. |
|||
570
ЧеловекДуши
03.04.13
✎
10:55
|
(569) Дак добавь!
|
|||
571
Wobland
03.04.13
✎
10:55
|
а select 'Hello, world!' не предлагали ещё?
|
|||
572
ЧеловекДуши
03.04.13
✎
10:55
|
СпрЕдиницы.Владелец
|
|||
573
ЧеловекДуши
03.04.13
✎
10:56
|
(571) Предлагал, но он не верит в успех сего примера.
Хотя уже на протяжении десятилетий народ доказывает обратное :) |
|||
574
ЧеловекДуши
03.04.13
✎
10:57
|
+(572) СпрЕдиницы.Владелец as МояЕдиницО_Я_Бонан
|
|||
575
bananan
03.04.13
✎
10:57
|
(570) Добавить on куда?
|
|||
576
bananan
03.04.13
✎
10:58
|
(574) но есть ведь:
| group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) Здесь и обыявлыется алиас СпрЕдтнцы |
|||
577
ЧеловекДуши
03.04.13
✎
10:59
|
(575) Там, где оно и было до того, как добавил :)
Он - http://www.k-press.ru/cs/2009/3/join/join.asp Четать до просветления... |
|||
578
Wobland
03.04.13
✎
10:59
|
(576) алиас чего?
|
|||
579
ЧеловекДуши
03.04.13
✎
10:59
|
||||
580
bananan
03.04.13
✎
10:59
|
(574) СпрЕдиницы.Владелец as - где добавить?
|
|||
581
Wobland
03.04.13
✎
11:00
|
(579) он не умеет
|
|||
582
ЧеловекДуши
03.04.13
✎
11:01
|
(580) Вот, мой кошелек, 410011818257089, 500..р и я тебе помогу кодом :)
|
|||
583
ЧеловекДуши
03.04.13
✎
11:01
|
+(582) Это Яндекс кошелек
|
|||
584
bananan
03.04.13
✎
11:01
|
(579) (581) Сейчас читаю http://www.k-press.ru/cs/2009/3/join/join.asp
|
|||
585
ЧеловекДуши
03.04.13
✎
11:02
|
(584) Нет, давай плати, а то я так не заработаю :)
|
|||
586
bananan
03.04.13
✎
11:02
|
(582) Яндекс денег у меня нет, ЧеловекБабла
|
|||
587
Wobland
03.04.13
✎
11:02
|
(584) слушай, я вот кроссворды разгадываю левой рукой. но я утверждаю, что я не умею писать
|
|||
588
bananan
03.04.13
✎
11:07
|
(587) Бывает. Хорошо, что ты читать умеешь...
|
|||
589
ЧеловекДуши
03.04.13
✎
11:13
|
(586) А вот банан http://forum.0day.kiev.ua/index.php?showtopic=28155
|
|||
590
ЧеловекДуши
03.04.13
✎
11:13
|
(588) А ты пишешь, но читать не умеешь, это феномен :)
|
|||
591
bananan
03.04.13
✎
11:14
|
(578) алиас на:
| (select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ))СпрКоеф |
|||
592
ЧеловекДуши
03.04.13
✎
11:16
|
(591) Это не Алиес, вот что такое Алиес http://dimonchik.com/sql-alias.html
Читать до просветления... :) А вот что такое Джоин wiki:Join_(SQL) |
|||
593
bananan
03.04.13
✎
11:16
|
(590) Писать и читать я умею, да и в конце-коцов с вашей помощью за три месяцы я написал больше двух десятков скриптов
|
|||
594
ЧеловекДуши
03.04.13
✎
11:16
|
+(591) От тебя нужно алиес объявленной переменной в запросе Селект
|
|||
595
ЧеловекДуши
03.04.13
✎
11:17
|
(593) Брешишь, ты можешь писать, но не умеешь читать...
Иначе уже бы все делал сам :) |
|||
596
bananan
03.04.13
✎
11:18
|
(592) О Джоинах я уже знаю и вроде разобрался...
по поводу (591) (select...) СпрКоеф - это разве не означает что все что в круглыъ скобках - это таблица СпрКоеф? |
|||
597
ЧеловекДуши
03.04.13
✎
11:19
|
+(593) Вот, тут обсуждали, что такое многоуровневый запрос :)
http://www.sql.ru/forum/actualthread.aspx?tid=736202 |
|||
598
sapphire
03.04.13
✎
11:19
|
left join (
| select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) |
|||
599
Wobland
03.04.13
✎
11:20
|
(593) ещё раз. я способен воспроизводить буквы на бумаге, но медленно и корявою. я не умею писать. ты способен складывать буквы в слова. ты не умеешь читать
|
|||
600
sapphire
03.04.13
✎
11:20
|
(597) Ты бы его еще technet читать отправил :)
Долбобей же читать не умеет - только копипаста, только хардкор :) |
|||
601
bananan
03.04.13
✎
11:21
|
(598) Не понял у меня же так же как и ты напмсал:
| left join ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) |
|||
602
ЧеловекДуши
03.04.13
✎
11:21
|
(596) Нате, почитайте... http://www.firststeps.ru/sql/oracle/r.php?36
|
|||
603
ЧеловекДуши
03.04.13
✎
11:22
|
(600) Ну, он не могёт гуглом пользоваться, а мне платить не хочет. Так что что гуг дал, туда и отправил :)
|
|||
604
Wobland
03.04.13
✎
11:22
|
(602) >мы почти приблизились к завершению оператора SELECT
незачёт |
|||
605
sapphire
03.04.13
✎
11:22
|
(601) сравни текст в (598) и в (591)
|
|||
606
ЧеловекДуши
03.04.13
✎
11:24
|
(605) Вроде одно и тоже, ты его вообще запутать хочешь?
|
|||
607
bananan
03.04.13
✎
11:25
|
(602) прочитал и что с того?
|
|||
608
bananan
03.04.13
✎
11:26
|
(605) Сравнил тектс - ИДЕНТИЧНЫ практическ один в один
|
|||
609
sapphire
03.04.13
✎
11:27
|
(606) Кроме того, что в (598) отсутствует довесок строки ")СпрКоеф"
а в (569) со скобками бяда... |
|||
610
sapphire
03.04.13
✎
11:28
|
(608) Глазки протри
|
|||
611
bananan
03.04.13
✎
11:29
|
(609) Ни и чего мутить? Где в (601) довесок строки??
|
|||
612
bananan
03.04.13
✎
11:29
|
(610) Протер и утром я всегда умываюсь после душа...
|
|||
613
bananan
03.04.13
✎
11:31
|
Неужели нельзя просто объянсить, а не наслаждаться своей гениальной жестокостью?
|
|||
614
Wobland
03.04.13
✎
11:31
|
(612) стесняюсь спросить, а во время душа нет?
|
|||
615
Wobland
03.04.13
✎
11:32
|
(613) не одна сотня постов ушла на объяснения. да хотя б Ицик - ваще грамотно всё объясняет
|
|||
616
bananan
03.04.13
✎
11:36
|
(615) Хорошо в запросе:
|SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.Агент as [Агент $Справочник.Агент] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.количество |, Данные.Коэффициент |, Данные.СпрЕдиницы |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull($ДокШ.Агент, $ДокШН.Агент) Агент | , isnull($ДокШ.Клиент, $ДокШН.Клиент) Клиент | , isnull($ДокС.Коэффициент, $ДокН.Коэффициент) Коэффициент | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбТМЦ.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT Val FROM #СписокТМЦ)"; КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШ.Агент, $ДокШН.Агент) IN (SELECT Val FROM #СписокАгентов)"; КонецЕсли; Если ВыбКлиент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШ.Клиент, $ДокШН.Клиент) IN (SELECT Val FROM #СписокКлиентов)"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные "; объявлен Алиас as СпрЕдиницы Как к этому алиасу обратиться к этому алиасу из внешнего запроса? |
|||
617
sapphire
03.04.13
✎
11:39
|
(611) Ты вообще обнаглел что ли? В (601) ты скопипастил код и еще возмущаешься :)
|
|||
618
sapphire
03.04.13
✎
11:40
|
|SELECT
| Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.Агент as [Агент $Справочник.Агент] |, Данные.Клиент [Клиент $Справочник.Клиенты] |, Данные.количество |, Данные.Коэффициент |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull($ДокШ.Агент, $ДокШН.Агент) Агент | , isnull($ДокШ.Клиент, $ДокШН.Клиент) Клиент | , isnull($ДокС.Коэффициент, $ДокН.Коэффициент) Коэффициент | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull(СпрЕдиницы.Коэффициент,0) Коэффициент | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) "; Если ВыбТМЦ.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT Val FROM #СписокТМЦ)"; КонецЕсли; Если ВыбАгент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШ.Агент, $ДокШН.Агент) IN (SELECT Val FROM #СписокАгентов)"; КонецЕсли; Если ВыбКлиент.РазмерСписка()>0 Тогда ТекстЗапроса = ТекстЗапроса +" and isnull($ДокШ.Клиент, $ДокШН.Клиент) IN (SELECT Val FROM #СписокКлиентов)"; КонецЕсли; ТекстЗапроса = ТекстЗапроса +" |) Данные "; |
|||
619
Wobland
03.04.13
✎
11:41
|
(616) алиас - это псевдоним, замена чьего-то имени. что заменяется на СпрЕдиницы?
|
|||
620
bananan
03.04.13
✎
11:44
|
(617) Я скопипаситл код со своего скрпита.
|
|||
621
bananan
03.04.13
✎
11:44
|
(619) На Спрединицы заменяется:
| select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext |
|||
622
Wobland
03.04.13
✎
11:45
|
(621) чей алиас?
|
|||
623
Wobland
03.04.13
✎
11:45
|
(622) не дойдёт. алиас таблицы. есть таблицы, а есть поля. это очень разные вещи
|
|||
624
bananan
03.04.13
✎
11:46
|
(618) Это я копипастю? Ты выложил сюда код один в один моего запроса
|
|||
625
sapphire
03.04.13
✎
11:47
|
Как феерично...
|
|||
626
sapphire
03.04.13
✎
11:47
|
(624) Да ну?
|
|||
627
bananan
03.04.13
✎
11:47
|
(622) а разве (621) не возвращает таблицу?
|
|||
628
sapphire
03.04.13
✎
11:48
|
(624) А где у тебя есть во вложенном запросе поле:
| , isnull(СпрЕдиницы.Коэффициент,0) Коэффициент покажи, не стесняйся |
|||
629
sapphire
03.04.13
✎
11:48
|
(627) Забористая у тебя трава, однака...
|
|||
630
Mikeware
03.04.13
✎
11:48
|
(626)Дожили... ты у бананана скрипты воруешь... :-)))
феерия, мля... :-))) |
|||
631
bananan
03.04.13
✎
11:50
|
(628) что-то я уже СОВСЕМ запутался во вложено по отношению к тому коду который ты привел или как?
|
|||
632
bananan
03.04.13
✎
11:51
|
(629) (630) Я не говорю о воровстве, просто он показал мой код к чему это было? травы не курю, алкоголь - не употребляю
|
|||
633
Mikeware
03.04.13
✎
11:51
|
"Если посмотреть сверху, то снизу кажется, что сбоку ничего не видно..."©
|
|||
634
Mikeware
03.04.13
✎
11:52
|
(632) так тебе алкоголь только для запаха...
|
|||
635
bananan
03.04.13
✎
11:53
|
(634) Опят же есть запрос см 618
теперь надо достучаться до СпрЕдиницы во внешнем (самом первом селекте) Как это сделать? |
|||
636
Wobland
03.04.13
✎
11:53
|
(632) прочитай (605) ещё 604 раза и подумай хотя б трижды
|
|||
637
bananan
03.04.13
✎
11:54
|
(634) ну ты из чилябиньска унюхал...
|
|||
638
bananan
03.04.13
✎
11:55
|
(605) Оба текста ИДЕНТИЧНЫ чего там читать???
|
|||
639
Wobland
03.04.13
✎
12:01
|
(638) тогда начни пить. или курить
|
|||
640
bananan
03.04.13
✎
12:08
|
(639) Только что скурил сигарету (не поверишь но от этого примеры из (605) НЕ изменились...
|
|||
641
Wobland
03.04.13
✎
12:09
|
(640) ладно, два вопроса.
-крайний символ в (598) какой? -крайний символ в (591) какой? |
|||
642
Mikeware
03.04.13
✎
12:10
|
(639) а зачем? дури ему это уже не прибавит. больше некуда...
|
|||
643
Wobland
03.04.13
✎
12:11
|
(642) если внешняя дурь будет в противофазе с внутренней, есть шанс
|
|||
644
Privalov
03.04.13
✎
12:11
|
(640) Брось это!
|
|||
645
bananan
03.04.13
✎
12:15
|
в (598) крайний левый - l правый - )
в (591) - совсем не те символы но в данных постах несовсем одинаковые вещи обсуждаются.... |
|||
646
bananan
03.04.13
✎
12:16
|
Ясно все с вами - БОЛЬШОЕ спасибо за советы и большое не спасибо за ваши издевки...
|
|||
647
Wobland
03.04.13
✎
12:17
|
(645) примеры из (605) уже изменились?
|
|||
648
Junior1s
03.04.13
✎
12:17
|
(646) тебе все равно придется читать документацию... пойми, сейчас тебе опять помогут, а дальше что ? на что надеешься ?
|
|||
649
bananan
03.04.13
✎
12:23
|
(648) Документацию я читаю...
Как нестранно в ней нет ограничения на исаользования алиаса на таблицу котрая используюется в левом джоине... А почему: c = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | left join ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) я не могу обраьтиться из внешщнегно запроса к СпрЕдиницы? |
|||
650
Wobland
03.04.13
✎
12:25
|
(649) можешь. какое поле тебя интересует?
|
|||
651
bananan
03.04.13
✎
12:28
|
(650) Блин! С вшей помощью, яы сейчас не могу сказать какое поле меня там интересует.
Еще раз спасибо за издевки и осорбления |
|||
652
Wobland
03.04.13
✎
12:39
|
(651) во втором предложении мне показалось, пациент уже близок к просветлению. ан нет, третье убеждает в обратном
|
|||
653
Wobland
03.04.13
✎
12:40
|
а ведь почти щёлкнуло, а? обидно ;)
|
|||
654
ЧеловекДуши
03.04.13
✎
12:48
|
(640) Звучит, как - "Забил косячок...%)"
|
|||
655
ЧеловекДуши
03.04.13
✎
12:50
|
(649) Все еще не поймешь, что тебе нужно нанять программиста, а не пытаться своим "мозгом" или еще чем осилить непостижимое :)
... 400 р... и я за тебя напишу твой Алиас, там где надо :) |
|||
656
ЧеловекДуши
03.04.13
✎
12:50
|
+(649) Можешь, обратиться, только ты не обращаешься :)
|
|||
657
ЧеловекДуши
03.04.13
✎
12:51
|
(651) А мы теперь должны твои мысли читать? :D
|
|||
658
ЧеловекДуши
03.04.13
✎
12:51
|
(652) Тоже думал, пока сайт висел, а ннет, он там же где и всегда...
|
|||
659
bananan
03.04.13
✎
12:55
|
Хорошо такой вопрос у меня в таблице агенти, клиенты и прочее так вот мне надо чтобы поле агент выводилось а потом шли все клиенты данного агента, потом следующий агент со своими клиентами и прочее...
Пробывал и так и сяк - никак не получается. К примеру в коде: Пред = СоздатьОбъект("Справочник.Агент"); Пока ТбЗн.Получитьстроку()=1 Цикл Если ТбЗн.Агент<>Пред Тогда Таб.ВывестиСекцию("Док2"); Иначе Таб.ВывестиСекцию("Документ"); КонецЕсли КонецЦикла; --- ТбЗн.Агент<>Пред никогда не справедливо... Как правильно мне оюъявить или создать Пред чтобы сравнивать его с Агент из Таблицы значений? |
|||
660
Junior1s
03.04.13
✎
12:58
|
(659) бред какой то.
|
|||
661
Mikeware
03.04.13
✎
13:00
|
(660) почему "какой-то"? обычный бананановский бред...
|
|||
662
Mikeware
03.04.13
✎
13:01
|
(643) а если "синфазно"?
|
|||
663
Wobland
03.04.13
✎
13:02
|
(662) а вот тут как раз наступает ситуация "дальше некуда". ничто не может двигаться со скоростью, превышающей скорость света. правда, у Эйнштейна хитрее всё..
|
|||
664
bananan
03.04.13
✎
13:05
|
4 поста и ничего кроме оскорблений... прощайте ребята! Спасибо за вче то что я научился от вас..
|
|||
665
sapphire
03.04.13
✎
13:26
|
(662) (663) Он нас покинул?!
|
|||
666
Wobland
03.04.13
✎
13:30
|
как-то нехорошо покинул, за здоровье опасаюсь. но ведь научился чему-то, а? ;)
|
|||
667
Mikeware
03.04.13
✎
13:33
|
(666) может, мое письмо все-таки достигло адресата? :-)
|
|||
668
Wobland
03.04.13
✎
13:35
|
(667) звонки, письма... что ты там такое делал?
|
|||
669
Mikeware
03.04.13
✎
14:03
|
(668) Ну, с просьбой переправить письмо ИТ-руководителю. со ссылкой на мизду и на ветки этого зверька... чисто чтоб тот в курсе был... я ни в коем случае не просил увольнять...
|
|||
670
Wobland
03.04.13
✎
14:09
|
(669) ох, жесток ;) впрочем, нормальному руководителю после нескольких месяцев общения с работником и так понятно всё будет.
у нас декан красиво экзамен принимал (в отдельных случаях). никаких испытаний, никаких билетов, литература допустима любая. просто брал и разговаривал о предмете. за полчаса со студентом всё становилось ясно |
|||
671
Wobland
03.04.13
✎
14:10
|
хехе, у меня первый вопрос был "как называется курс?" тогда не ответил, сейчас и подавно не помню. но четвёрку получил ;)
|
|||
672
Mikeware
03.04.13
✎
14:11
|
(670) у нас хорошие преподы делали точно так же.
на экзамене - любая литература в твоем распоряжении. ( |
|||
673
Mikeware
03.04.13
✎
14:35
|
(671) у нас вообще прикол был: забыли у нас принять экзамен по курсу типа цифровая схемотехника в обработке информации, или типа того (препод заболел, и после выздоровления уехал). Очнулись уже после госов. Ну, сдать мы сдали "не глядя" (ну, уже и по 3-4 года по "хитрым" хозтемам (ЗГРЛС, ФАР, системы эмуляции и отладки микроконтроллерных устройств) отработали, и т.п.), но по правилам "на 5" нужно ответить на доп вопрос... И вот человеку, достаточно хорошо знающему не один десяток языков программировния (в т.ч. наизусть - систему команд 80-го, например) задают вопрос: "что такое ASCII?"... нужно было видеть его лицо.... он не мог поверить, что этот вопрос "с одним смыслом"... пыжился и искал "двойное дно" в вопросе, соображал, на чем его пытаются поймать...
ржака... |
|||
674
viktor_vv
03.04.13
✎
14:39
|
Да уж, как-то грустно, наверное, будет :).
Судя по (659) я уже приготовился еще на пару веток по индексированной таблице :). |
|||
675
sapphire
03.04.13
✎
16:12
|
Бананан Долбобей покинул нас.
RIP.... |
|||
676
ЧеловекДуши
03.04.13
✎
17:09
|
Ура, банан будет читать книги!!!!
Я надеюсь :) |
|||
677
ЧеловекДуши
03.04.13
✎
17:10
|
+ Или наймет программиста... Чет мне подсказывает, что банан был начальником и жутко не хотел нанимать специалиста :)
|
|||
678
Mikeware
03.04.13
✎
17:10
|
(676) а если он будет их _ПИСАТЬ_? :-)
|
|||
679
Wobland
03.04.13
✎
17:11
|
(676) тебе ещё объяснить, что чтение предполагает хоть какое-то осмысление? ;) не будет
|
|||
680
sapphire
03.04.13
✎
17:37
|
(678) Ты обижаешь змею _ТАКОЙ_ нотацией :)
Кстати, Релиз компилятора Python - Nuitka 0.4.2:В данной версии Nuitka на тесте pystone производительнее CPython на 258% :) |
|||
681
sapphire
03.04.13
✎
17:38
|
(679) Он будет смотреть грустно на форум как его гнусно поминают
|
|||
682
ЧеловекДуши
03.04.13
✎
17:41
|
(678) Это будет проблема :)
|
|||
683
ЧеловекДуши
03.04.13
✎
17:41
|
(679) Я подумал, что если его тут уже стали игнорировать, то он одумается :)
|
|||
684
bananan
04.04.13
✎
10:02
|
Доброе утро! Псоле того как я вчера попрощался с вами, было еще почти 20 постов...
Ладно... Я вот вчера пытался таки сам написать скрипт. текс такой: | select | Жур.iddoc as [Док $Документ] | ,Жур.iddocdef as [Док_вид $ВидДокумента] | ,Таб.Товар as [Товар $Справочник.ТМЦ] | ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд | ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиент] |from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | group by Жур.iddoc,Жур.iddocdef,Таб.Товар"; Выдает: Column 'ДокШ.SP1158' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Если убрать из внешнего Селекта ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиент] - запрос будет работать, но, естественно не будет выдавать все необходимые поля.. Оштбка в GROYP BY? Как ее обойти? Подскажите, пожалйста! |
|||
685
Wobland
04.04.13
✎
10:04
|
добавь в туда недостающее поле
|
|||
686
Wobland
04.04.13
✎
10:06
|
>было еще почти 20 постов...
ваще-то ветка автору не принадлежит ;) |
|||
687
bananan
04.04.13
✎
10:10
|
(685) т.е. в ПрупБай добавить Клиент или как?
|
|||
688
bananan
04.04.13
✎
10:12
|
Написал так:
| group by Жур.iddoc,Жур.iddocdef,Таб.Товар, Клиент не пропускает: Invalid column name 'Клиент'. |
|||
689
Wobland
04.04.13
✎
10:16
|
(688) а клиент от какой таблицы тут?
|
|||
690
Wobland
04.04.13
✎
10:18
|
и да. груп бай алиасов не понимает. Ицик в самом начале об этом говорил - на разборе порядка выполнения запроса. так что не ври больше о том, что ты что-то читаешь
|
|||
691
Mikeware
04.04.13
✎
10:18
|
копипастнг на марше...
|
|||
692
Mikeware
04.04.13
✎
10:19
|
неужели письмо не дошло?
|
|||
693
Mikeware
04.04.13
✎
10:20
|
(690) с ициком я не знаком, поэтому уточни, плз - кто чего не понимает?
|
|||
694
Wobland
04.04.13
✎
10:20
|
да хрен с ней с первой, но вторую главу читать до просветления.
|
|||
695
Wobland
04.04.13
✎
10:21
|
(693) перевожу на русский. group by нужны сами поля, как описаны в селекте, а не их псевдонимы
|
|||
696
Wobland
04.04.13
✎
10:22
|
а вот в order by можно и псевдонимы, ибо запрос к тому моменту уже почти закончился ;)
|
|||
697
bananan
04.04.13
✎
10:24
|
(690) Я вообще старасю не врать. Неужели ты все помнишь из того что прочитал?
НАписал так: group by Жур.iddoc,Жур.iddocdef,Таб.Товар, isnull($ДокШ.Клиент, $ДокШН.Клиент)"; выдает: Ошибка типизации поля Клиент $Справочник.Клиент. когда сделал типизацию: group by Жур.iddoc,Жур.iddocdef,Таб.Товар, isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиент] выдало: Incorrect syntax near the keyword 'as' Какой синтаксис будет коректным? |
|||
698
Wobland
04.04.13
✎
10:26
|
эх, помню себя в молодости. полное отупение и непонимание "родных" семёрочных запросов. с опытом это никуда не делось, но приобрелось умение работать с sql-запросами. а без этого тупил б как бананан..
|
|||
699
Wobland
04.04.13
✎
10:26
|
(697) вторая глава
|
|||
700
Mikeware
04.04.13
✎
10:27
|
(695) а, ну это естественно. "Ежу понятно"©
|
|||
701
Mikeware
04.04.13
✎
10:28
|
(698) я их так и не знаю.
Ибо пришлось сразу работать с более-менее приличными базенками... поэтому сразу на прямые... |
|||
702
bananan
04.04.13
✎
10:29
|
isnull($ДокШ.Клиент, $ДокШН.Клиент) - это правильная конструкция для ГроупБай?
as [Клиент $Справочник.Клиент] - если это некорректно, то как будет коректно? |
|||
703
Wobland
04.04.13
✎
10:30
|
лет ми гугл ит фор ю. страница 40, крайний абзац на русском языке
|
|||
704
Wobland
04.04.13
✎
10:31
|
(701) я от них чешусь в самых неожиданных местах ©
(702) второе предложение с конца. читай до посинения. как дойдёт, сигнализируй. |
|||
705
Wobland
04.04.13
✎
10:32
|
(704) вырванное из контекста всей главы, не очень понятно. но ключ в там
|
|||
706
Wobland
04.04.13
✎
10:39
|
а раз уж секция в юморе, просветите меня, что я такое написал, желая получить количество услуг в ТЧ документов и общее количество строк:
|Функция СчётчикУслуг = Счётчик(1) когда ((ВидНоменклатуры=Перечисление.ВидыНоменклатуры.Услуга) ИЛИ (ВидНоменклатуры=Перечисление.ВидыНоменклатуры.Услуга)); |Функция СчётчикВсего = Счётчик(1); что за счётчик? чего он считает? писалось методом бананана, я действительно не понимаю, как это работает |
|||
707
Wobland
04.04.13
✎
10:39
|
гы! там ИЛИ Работа должно быть ;)
|
|||
708
bananan
04.04.13
✎
10:40
|
(704) А по человечески сказать не можно?
|
|||
709
Wobland
04.04.13
✎
10:43
|
(708) задолбал уже. возьми ложку сам
|
|||
710
bananan
04.04.13
✎
10:46
|
(709) Да читаю я вторую главу Ицыка, но пока о типизации там ничего нет (и подозреваю что там (во второй главе) о типизации ниченго и не будет)...
|
|||
711
sapphire
04.04.13
✎
10:49
|
А я думал его потеряли.
|
|||
712
Wobland
04.04.13
✎
10:50
|
(710) у sql'я нет типизации в твоём понимании вообще, в принципе, по определению
|
|||
713
Wobland
04.04.13
✎
10:51
|
зато есть разные секции (Ицик их называет стадиями), слова там всякие ключевые..
|
|||
714
Wobland
04.04.13
✎
10:52
|
(711) мы таки сделаем эту тыщу!
|
|||
715
Mikeware
04.04.13
✎
10:52
|
(713) заинтриговал. пшёль я искать ицика...
|
|||
716
Mikeware
04.04.13
✎
10:52
|
(714) и не одну!
|
|||
717
bananan
04.04.13
✎
10:53
|
(713) и об этом ичтал раньше и в данный момент читаю но... as можно использовать в секции Group By?
|
|||
718
Wobland
04.04.13
✎
10:55
|
(715) качественно излагает. лично мне очень многое понятно или очевидно из опыта/образования, но читается тем не менее увлекательно ;)
|
|||
719
Wobland
04.04.13
✎
10:59
|
(717) читай ещё. до тех пор, пока не поймёшь, как работают фром, селект и груп бай
|
|||
720
bananan
04.04.13
✎
11:00
|
А может as в Group By нельзя применять? Тогда как типизировать Клиент в Group By?
|
|||
721
bananan
04.04.13
✎
11:01
|
(719) Селект - обрабатывается последним...
|
|||
722
Wobland
04.04.13
✎
11:03
|
(721) стр. 35
|
|||
723
Wobland
04.04.13
✎
11:04
|
(720) типизация - это наворот 1С++, позволяющий "конвертировать" строковые значения (ИД) в какие-то другие типы, например, в справочник. теперь сам ответь на свой вопрос
|
|||
724
bananan
04.04.13
✎
11:17
|
(723) Я понимая, ято типизация наворот от 1С, но как написать правильно:
group by Жур.iddoc,Жур.iddocdef,Таб.Товар, isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиент]"; (722) что после селкта еще обрабатываются - я тоже знаю... order by, например.... Скажите пожалуйста, как мне корректно объявить isnull($ДокШ.Клиент, $ДокШН.Клиент) /т.е. поле Клиент/ в секции GROUP BY? |
|||
725
Wobland
04.04.13
✎
11:19
|
(724) в груп бай не объявляется ничего. там только указываются поля группировки
|
|||
726
bananan
04.04.13
✎
11:20
|
(725) Хорошо как правильно указать поле Клиент в Group By?
|
|||
727
Wobland
04.04.13
✎
11:21
|
раз: как типизировать Клиент в Group By?
два: Я понимая, ято типизация наворот от 1С ---- три: правильно говорить: "я понял" |
|||
728
Wobland
04.04.13
✎
11:22
|
(726) мож, у того же Ицика подглядеть и сделать по аналогии?
|
|||
729
bananan
04.04.13
✎
11:22
|
+(726) Блин, просто надо убрать типизацию и в Селекте и в гроуп... и работает оно.
Это можно было сказать час назад, а не стебатся! |
|||
730
Wobland
04.04.13
✎
11:23
|
(729) это можно было сделать недель шесть назад, а не долбиться
|
|||
731
bananan
04.04.13
✎
11:23
|
(728) У того же Ицыка подобного (во второй главе - по крайней мерен) нет!
|
|||
732
bananan
04.04.13
✎
11:23
|
(730) Какие учетеля - такой и ученик!
|
|||
733
Wobland
04.04.13
✎
11:24
|
интересно, (729) случайно вышло или явилось результатом каких-то электромагнитных колебаний высшей нервной системы? ;)
|
|||
734
Wobland
04.04.13
✎
11:25
|
(731) страница 40, крайний запрос
|
|||
735
bananan
04.04.13
✎
11:25
|
(732) Ладно, но мне надо на выходе выдать коректное наименование Клиента, а не 1ZQ и прочею ьилеберду...
|
|||
736
bananan
04.04.13
✎
11:27
|
+(735) На сколько я понимаю, если добавить в селекте еще типизированый клиент - SQL будет требовать клиента в GROUP BY?
Как это обойти? Как мне выдать в итоговой Таблице Значений Клиент: Иванов а не Клаент:1ZQ? |
|||
737
Wobland
04.04.13
✎
11:29
|
(732) это да, это мы тут дураки неотёсанные, элементарного объямснит не можем
|
|||
738
Mikeware
04.04.13
✎
11:30
|
(733) это явилось результатом нецеленаправленных действий "а-ля обезъяна за пишущей машинкой".
Ибо он делал неосознаваемые действия. о чем, собственно, новорит и полученный результат. - (735) |
|||
739
bananan
04.04.13
✎
11:32
|
(738) Уважаемый Микимаус, покажи нормальный результат!
|
|||
740
bananan
04.04.13
✎
11:35
|
(739) Я бы с радостью выбросил Group By, но без него - запрос работать не будет...
Кто знает как мне в Селекте типизировать клиент, чтобы видеть на экране нормальное наименование клиента, и как это обойти в Group By? |
|||
741
Mikeware
04.04.13
✎
11:38
|
(739) вам - только за деньги.
|
|||
742
Wobland
04.04.13
✎
11:39
|
(738) мда.. педагогика - не моё ;)
|
|||
743
Wobland
04.04.13
✎
11:44
|
(740) а кто раньше работает: селект или груп?
|
|||
744
sapphire
04.04.13
✎
11:44
|
(729) Да ты чо? Как это?
Ты же все читал. А вот строки сравнивать не умеешь. |
|||
745
sapphire
04.04.13
✎
11:45
|
(740) Долбобей однака...
|
|||
746
sapphire
04.04.13
✎
11:46
|
(743) Издеваешься, да? :))))))))))))
|
|||
747
Wobland
04.04.13
✎
11:48
|
(746) развиваю в себе учителя ;)
|
|||
748
sapphire
04.04.13
✎
11:48
|
(743) мне (740) напомнило
Я с радостью б выбросил этот Group By, к select-ам почтения нету... Но надо ... :))) |
|||
749
sapphire
04.04.13
✎
11:50
|
(740)
Если в select-е Есть поле Клыент То типизировать надо Клыент [Клыент $Справочник.Клыенты] |
|||
750
Wobland
04.04.13
✎
11:51
|
||||
751
Wobland
04.04.13
✎
11:51
|
(750) не в тему, но навеяло ;)
|
|||
752
sapphire
04.04.13
✎
11:54
|
(750) :)
|
|||
753
bananan
04.04.13
✎
11:55
|
(743) Груп раньше работает
|
|||
754
bananan
04.04.13
✎
11:56
|
(749) не проходит:
| select | Жур.iddoc as [Док $Документ] | ,Жур.iddocdef as [Док_вид $ВидДокумента] | ,Таб.Товар as [Товар $Справочник.ТМЦ] | ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд | ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиент] |from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | group by Жур.iddoc,Жур.iddocdef,Таб.Товар, isnull($ДокШ.Клиент, $ДокШН.Клиент)"; выдает: Ошибка типизации поля Клиент $Справочник.Клиент. |
|||
755
Wobland
04.04.13
✎
11:57
|
(753) а потом наступает селект, и в нём ты хочешь из строки сделать справочник. так?
|
|||
756
Wobland
04.04.13
✎
11:58
|
протрите мне веки! у него же union all!!!
|
|||
757
bananan
04.04.13
✎
11:59
|
(755) А как это сделать? Как нормально показать Клиент в селекте (читивыя что клиент - это справочник.Клиент)?
|
|||
758
bananan
04.04.13
✎
12:01
|
(756) А ты думал я только копи-пастить умею?
|
|||
759
Wobland
04.04.13
✎
12:04
|
(758) я и сейчас так думаю. а оишбки типизации не вижу
|
|||
760
viktor_vv
04.04.13
✎
12:05
|
(754) Да КлиентЫ у тебя справочник, ну че ж так тупить-то?
|
|||
761
viktor_vv
04.04.13
✎
12:05
|
(760)+ Ну, по крайней мере, мне так кажется :).
|
|||
762
viktor_vv
04.04.13
✎
12:07
|
Если лень в конфигураторе посмотреть, можешь еще Контрагенты попробовать.
|
|||
763
Wobland
04.04.13
✎
12:07
|
(761) ну если оне количество называют квом, то в контрагентах чего угодно ожидать можно
|
|||
764
viktor_vv
04.04.13
✎
12:09
|
(763) Ну Кво - это в типовой укр бухии так.
|
|||
765
Mikeware
04.04.13
✎
12:10
|
(762) $Справочник.Чуваки
|
|||
766
viktor_vv
04.04.13
✎
12:11
|
(765) $Справочник.ЧувакиИЧувихи :)
|
|||
767
viktor_vv
04.04.13
✎
12:12
|
(766)+ Это правда больше к справочнику сотрудников подходит :).
|
|||
768
Wobland
04.04.13
✎
12:12
|
(764) ё-моё...
Страхотен, страхотна Достаточно распространенное слово, переводящееся на русский как «суперский», «офигенный», «обалденный». |
|||
769
bananan
04.04.13
✎
12:12
|
(761) Точно! Спасибо!
|
|||
770
Wobland
04.04.13
✎
12:14
|
$Directory.Entrepreneur
|
|||
771
bananan
04.04.13
✎
12:16
|
Всем Спасибо! Зайду к вам на форум, когда захочеться мозахизмом позанииматься...
|
|||
772
Wobland
04.04.13
✎
12:24
|
Задание сделано,
Увяли все листья. Прощай, бананан |
|||
773
ЧеловекДуши
04.04.13
✎
12:34
|
(684) Учись сссынОк, пользоваться он лайн переводчиком :)
Было: Column 'ДокШ.SP1158' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Стало: Column 'ДокШ.SP1158 "недопустим в списке выбора, поскольку он не содержится ни в статистической функции или GROUP BY предложение. |
|||
774
ЧеловекДуши
04.04.13
✎
12:35
|
(698) Как банан? Да как банан никто не может :)
|
|||
775
ЧеловекДуши
04.04.13
✎
12:37
|
(710) А это надо запечатлеть... Ты только вторую осилил? :)
|
|||
776
Wobland
04.04.13
✎
12:40
|
(774) да может ;)
на закуску можно посмотреть (706) и "озапросить" кусок кода: Если Запрос.Выполнить(ТекстЗапросаПроВозвратУслуг)=1 Тогда Пока Запрос.Группировка(1)=1 Цикл Если Запрос.СчётчикУслуг=Запрос.СчётчикВсего Тогда то есть выбрать документы, целиком состоящие из услуг. практической ценности задача не имеет, сделал и забыл. но всё ж интересно |
|||
777
Junior1s
04.04.13
✎
13:06
|
ИМХО, человек просто привык всему по жизни учиться на практике. раскидал ДВС, потом начал читать документацию, разобрал системник, после начал думать как собрать, ну и т.п.
|
|||
778
viktor_vv
04.04.13
✎
13:09
|
(776) и (706) Функция Счётчик() возвращает количество обработанных строк в запросе.
|
|||
779
Wobland
04.04.13
✎
13:14
|
а Счётчик(1)? Функция СчётчикВсего = Счётчик(1) эквивалентна Функция СчётчикВсего = Счётчик() ?
|
|||
780
ЧеловекДуши
04.04.13
✎
13:28
|
(777) Ты его предыдущие ветки не видел :)
... Вопросы все однотипны, он их повторяет каждый раз, ни одного нового вопроса, и по 2-4 дня буксует на одном и том же месте. Для практики как-то 2-4 дня будет много, не находите? |
|||
781
ЧеловекДуши
04.04.13
✎
13:29
|
(779) Проверь :)
|
|||
782
Sensodin
04.04.13
✎
13:32
|
продолжайте наблюдения
тысяча уже близко |
|||
783
Wobland
04.04.13
✎
13:34
|
(782) не, не дотянем
(781) хорошо, поверю. вроде согласуется со смыслом ;) |
|||
784
Гризли
04.04.13
✎
13:39
|
Порносериал на 1000 постов, актеры и банан?
|
|||
785
sapphire
04.04.13
✎
17:04
|
Да он, ТС, еще и извращенец, что и не удивительно :)
|
|||
786
DrZombi
гуру
05.04.13
✎
08:47
|
(784) Чувствую главный героинь ушёл с канала :(
... До 1000 не дотянем :) |
|||
787
bananan
08.04.13
✎
16:04
|
(784) Гризи, гризи и ...рочи...
Всем, добрый день! Нашел я в интернете "Консоль запросов" установил себе на машину пытаюсь разобраться (автор консоли: © 2007, 2008, 2009 by Ivan T Berezdetsky, [email protected]). Этой консолью кто-то пользовался? если да - то как она вам? ну и если не сложно пример ее использования... |
|||
788
Ёпрст
08.04.13
✎
16:08
|
(787) в глаза её никто не видел, примеров нет
|
|||
789
Ёпрст
08.04.13
✎
16:08
|
А сам Иван скрывается на форуме 1cpp и не отвечает никому.
|
|||
790
bananan
08.04.13
✎
16:14
|
(789) взял я эту консоль отсюда: http://www.1cpp.ru/forum/YaBB.pl?num=1193394153
|
|||
791
Ёпрст
08.04.13
✎
16:15
|
(790) Не, никто её не видел, никто не пользовался - ты первый!
:) |
|||
792
bananan
08.04.13
✎
16:17
|
(791) в данном случае - не верю я тебе
|
|||
793
sapphire
08.04.13
✎
16:18
|
(789) Да вроде не скрывается он :)
Написал ему письмецо про эту ветку... |
|||
794
bananan
08.04.13
✎
16:19
|
ладно с консолью разбиратьс буду: мне надо посмотреть какой запрос бедет выполняться. код такой:
ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); ТбЗн.Отладка(); выдает: Поле агрегатного объекта не обнаружено (Отладка) Что я опять перепутал? |
|||
795
Ёпрст
08.04.13
✎
16:20
|
(794) у таблицы значений нет метода Отладка()
|
|||
796
sapphire
08.04.13
✎
16:22
|
(795) Это если не использовать свои классы :)
|
|||
797
bananan
08.04.13
✎
16:23
|
(795) Это я знаю, а как правильно это написать?
Где я торможду: Запрос=СоздатьОбъект("ODBCRecordset"); ТекстЗапроса = " | select | Жур.iddoc as [Док $Документ] .. Запрос.УстановитьТекстовыйПараметр("ВыбЕдиница", ВыбЕд); ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); Запрос.Отладка - ничего не появляется (текст запроса...) ну а ТбЗн.Отлдака() - поле не обнаружено.. |
|||
798
Ёпрст
08.04.13
✎
16:24
|
(797)
Запрос.УстановитьТекстовыйПараметр("ВыбЕдиница", ВыбЕд); Запрос.Отладка(1); ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); |
|||
799
bananan
08.04.13
✎
16:35
|
(798) Спасибо. А что за параметр (1) в данном случае?
|
|||
800
Mikeware
08.04.13
✎
16:36
|
Сообщить(Идиот.Хронический()) выводит строку bananan
|
|||
801
Wobland
08.04.13
✎
16:37
|
(799) истина
|
|||
802
Wobland
08.04.13
✎
16:37
|
//чесслово, первый раз вижу Отладка(1). но уверен. как так?
|
|||
803
bananan
08.04.13
✎
16:37
|
(800) Ты, как всегда... Хроический х............б............
|
|||
804
Mikeware
08.04.13
✎
16:38
|
(803)
"- еще мусульмане есть? -- вот те хрест, с тобой последний ушел..." © |
|||
805
Wobland
08.04.13
✎
16:39
|
а тысяча будет. ура!
|
|||
806
Mikeware
08.04.13
✎
16:46
|
(805) а жалко, что его не уволили...
|
|||
807
Ёпрст
08.04.13
✎
16:47
|
||||
808
bananan
08.04.13
✎
16:49
|
Вот сейчас я точно НИЧЕГо не понял... Когда текст запроса такой:
| select | Жур.iddoc as [Док $Документ] | ,Жур.iddocdef as [Док_вид $ВидДокумента] | ,Таб.Товар as [Товар $Справочник.ТМЦ] | ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд | ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиенты] | ,isnull($ДокШ.Агент, $ДокШН.Агент) as [Агент $Справочник.Агент] | ,isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as [ТМЦ $Справочник.ТМЦ] |from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | group by Жур.iddoc,Жур.iddocdef,Таб.Товар, isnull($ДокШ.Клиент, $ДокШН.Клиент),isnull($ДокШ.Агент, $ДокШН.Агент), isnull($ДокС.ТМЦ, $ДокН.ТМЦ)"; выдает скрипт 99497 строк если текст запроса такой: | select | Жур.iddoc as [Док $Документ] | ,Жур.iddocdef as [Док_вид $ВидДокумента] |from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | group by Жур.iddoc,Жур.iddocdef,Таб.Товар"; То запрос выдает 1834 строки.. Почему В первом варианте добивались поля для выбора (ну и соответственно они появились и в Group By). Оба раза запрос запускался на одинаковый период дат? Почему во втором случае строк вышло в 54 с лишним раза больше? |
|||
809
bananan
08.04.13
✎
16:54
|
и еще... я на форме даю возможность выбрать товар, агента и клиента...
куда в запрос (второй вариант) вставить проверку на наличие этих (товар, агент. клиент)... что-то я с понедельника туплю... |
|||
810
Ёпрст
08.04.13
✎
16:55
|
Да уж.. а ничего, что во втором запросе количество группировок меньше ?
|
|||
811
Ёпрст
08.04.13
✎
16:56
|
Ты хоть примерно представляешь, что есть group by вообще ?
|
|||
812
Wobland
08.04.13
✎
16:57
|
(811) ну скажет он "да" - соврёт, скажет "нет" - результат один: не знает
|
|||
813
bananan
08.04.13
✎
16:59
|
(811) Представляю...
Проверку на клиенты добавил так: | group by Жур.iddoc,Жур.iddocdef,Таб.Товар, isnull($ДокШ.Клиент, $ДокШН.Клиент),isnull($ДокШ.Агент, $ДокШН.Агент), isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE #СписокКлиентов in isnull($ДокШ.Клиент, $ДокШН.Клиент)"; ругается: Incorrect syntax near the keyword 'WHERE'. почему ему синтаксис не нтравится? |
|||
814
bananan
08.04.13
✎
16:59
|
(812) Не умничай... Гриппировака это
|
|||
815
Wobland
08.04.13
✎
17:00
|
где СписокКлиентов в где?
|
|||
816
bananan
08.04.13
✎
17:00
|
жадее по коду:
Запрос.УложитьСписокОбъектов(ВыбТМЦ, "#СписокТМЦ","ТМЦ"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#СписокАгентов","Агент"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#СписокКлиентов","Клиенты"); Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УстановитьТекстовыйПараметр("ВыбЕдиница", ВыбЕд); |
|||
817
Wobland
08.04.13
✎
17:01
|
(814) а что это такое - группировка? не отвечай, не позорься
|
|||
818
bananan
08.04.13
✎
17:02
|
(817) по поводу where в моем запросе - не знаешь, то и не екзаменуй меня!
|
|||
819
Wobland
08.04.13
✎
17:03
|
(818) ответь на (815)
|
|||
820
Wobland
08.04.13
✎
17:05
|
я офигеть сколько много не знаю. но способен разобраться, в отличие от тебя. молчал бы уж
|
|||
821
bananan
08.04.13
✎
17:05
|
(819) смотри (816)
|
|||
822
bananan
08.04.13
✎
17:06
|
(820) Я не знаю гораздо больше чем ты, потому и спрашиваю
|
|||
823
Wobland
08.04.13
✎
17:06
|
(821) угу. переведи на русский: WHERE #СписокКлиентов in КакоеТоПоле
|
|||
824
bananan
08.04.13
✎
17:09
|
(823) Почему какоетополе?
in isnull($ДокШ.Клиент, $ДокШН.Клиент) Что неправильно? |
|||
825
Wobland
08.04.13
✎
17:11
|
(824) потому что неважно, какое поле. НекоеПоле
|
|||
826
bananan
08.04.13
✎
17:11
|
(823) Смешно? Кто служил в советской армии в цирке несмеется...
Что слабо было сказать что вера налор перед груп бай писать? |
|||
827
Wobland
08.04.13
✎
17:16
|
а, ну ещё и это, да
|
|||
828
bananan
08.04.13
✎
17:16
|
+(826) все-равно что-то не то - написал:
| WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ or #СписокКлиентов = isnull($ДокШ.Клиент, $ДокШН.Клиент) | group by Жур.iddoc,Жур.iddocdef,Таб.Товар, isnull($ДокШ.Клиент, $ДокШН.Клиент),isnull($ДокШ.Агент, $ДокШН.Агент), ругается: Invalid column name '#СписокКлиентов'. Как правильно передать в запрос Список клиентов который выбирается в окнеВыбКлиент? |
|||
829
Wobland
08.04.13
✎
17:17
|
ты на русский переведёшь (823) уже?
|
|||
830
Wobland
08.04.13
✎
17:18
|
(829) сторно. #СписокКлиентов =...
|
|||
831
bananan
08.04.13
✎
17:19
|
(829) Смотрим какой теперь вера: (828)
|
|||
832
Wobland
08.04.13
✎
17:19
|
хотя не, ни фига не сторно. блин, задолбал уже своим стохастическим программингом
|
|||
833
vinogradъ
08.04.13
✎
17:20
|
(828) читал бы доки знал бы как получить объекты из списка, уложенного в таблицу при помощи УложитьСписокОбъектов
|
|||
834
Wobland
08.04.13
✎
17:20
|
(833) он не умеет
|
|||
835
bananan
08.04.13
✎
17:20
|
(833) обязательно прочитаю... А тебе не трудно сказать как правильно это написать?
|
|||
836
bananan
08.04.13
✎
17:21
|
(834) Ты за меня не расписывайся...
|
|||
837
bananan
08.04.13
✎
17:21
|
(833) Адрес где читать не напомнишь?
|
|||
838
Wobland
08.04.13
✎
17:21
|
(836) ты это сам доказываешь постоянно
|
|||
839
vinogradъ
08.04.13
✎
17:21
|
(835) не трудно, потому что я в свое время нашел и прочитал это
|
|||
840
bananan
08.04.13
✎
17:23
|
(838) Кроме того я на работе написал уже более 30ти запросов, большое спасибо вам за помощь, а вот не надо сбивать меня с толку...
|
|||
841
bananan
08.04.13
✎
17:23
|
(839) Адрес - на деревню дедушке... СПАСИБО!!!
|
|||
842
bananan
08.04.13
✎
17:42
|
на сколько я понимаю должно бытьт здесь http://www.1cpp.ru/docum/.
Где именно никто не подскажет? |
|||
843
vinogradъ
08.04.13
✎
17:45
|
(842) да хотя бы так:
уложитьсписокобъектов site:1cpp.ru |
|||
844
Ёпрст
08.04.13
✎
17:46
|
and (isnull($ДокШ.Клиент, $ДокШН.Клиент) in select val from #СписокКлиентов )
|
|||
845
bananan
08.04.13
✎
17:50
|
Блин написал так и заработало.
Неужели это трудно было просто сказать? isnull($ДокШ.Клиент, $ДокШН.Клиент) IN (SELECT val FROM #Списокклиентов)?? |
|||
846
Wobland
08.04.13
✎
17:50
|
(844) щас же опять ныть начнёт, не?
|
|||
847
bananan
08.04.13
✎
17:51
|
(846) На твою отрыжку ныть? Зачем? Сам ее нюхай!
|
|||
848
Wobland
08.04.13
✎
17:51
|
(845) а зачем?
|
|||
849
Wobland
08.04.13
✎
17:52
|
(847) не хами
|
|||
850
bananan
08.04.13
✎
17:58
|
(847) Поищи себе другого "мальяика для битья"... Тогда и хамить не буду
|
|||
851
Mikeware
08.04.13
✎
18:03
|
(832) вооюще-то, слово "стохастический" происходит от греческого "умеющий угадывать". так что зря ты это слово бананаом позоришь. он не умеет...
|
|||
852
Mikeware
08.04.13
✎
18:04
|
(850) забанить за хамство, или пусть живет? :-)
|
|||
853
Wobland
08.04.13
✎
18:06
|
(851) пациент прогрессирует: сам скобки вставил. или это от греков?..
|
|||
854
ЧеловекДуши
08.04.13
✎
18:07
|
||||
855
SnarkHunter
08.04.13
✎
18:09
|
Нельзя недооценивать предсказуемость тупизны (с)
Сначала просит помощи, потом обвиняет, что гранит был слишком крупно разжеван... |
|||
856
Mikeware
08.04.13
✎
18:09
|
(853) скопиписдил! зуб даю! :-)))
|
|||
857
bananan
08.04.13
✎
18:10
|
тут я чего-то с вера напутал - какой период для документов не задаю - результат 0 строк...
вера у меня такой: | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ and (isnull($ДокШ.Клиент, $ДокШН.Клиент) IN (SELECT val FROM #Списокклиентов)) | and (isnull($ДокШ.Агент, $ДокШН.Агент) IN (SELECT val FROM #СписокАгентов)) and (isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT val FROM #СписокТМЦ)) Что в нем неправильно? |
|||
858
Wobland
08.04.13
✎
18:10
|
чо такое, а? где я в httpd.conf накосячил? апач ставлю. нет под рукой примера рабочего?
Forbidden You don't have permission to access / on this server. |
|||
859
SnarkHunter
08.04.13
✎
18:13
|
>> Что в нем неправильно?
Все просто: в нем содержатся взаимоисключающие условия. |
|||
860
Wobland
08.04.13
✎
18:15
|
(859) да ну?
|
|||
861
Wobland
08.04.13
✎
18:15
|
(860) аа, дада
|
|||
862
bananan
08.04.13
✎
18:15
|
(859) Какие из них взаимоисключающие?
|
|||
863
SnarkHunter
08.04.13
✎
18:17
|
(862)Откуда же мне знать? Это зависит от содержимого временных таблиц, а мне их из дома не видно...
|
|||
864
Wobland
08.04.13
✎
18:17
|
(862) второе и третье
//спорим, не найдёт? ;) |
|||
865
bananan
08.04.13
✎
18:17
|
+(862) Докменты должны быть в выюраном диаппазоне дат и клиентв и агенты и товары должны быть в окнах выбора...
|
|||
866
SnarkHunter
08.04.13
✎
18:19
|
(865)Ну и что? В выбранном диапазоне может не оказаться документов либо с указанными агентами, дибо с клиентами, либо с ТМЦ.
|
|||
867
bananan
08.04.13
✎
18:21
|
(866) Точно у меня в вера все правильно? птому что проверял на дату 20.11.12 раньше выдавал запрос несколько десятков строк... теперь не выдает ниодной...
А если в окнах выбора не выбраны ни агенты ни клиенты ни тмц? Тогда мой вера правильный или нет? |
|||
868
SnarkHunter
08.04.13
✎
18:22
|
Слушай, это неинтересно - играть в ромашку: правильно - непраильно... Давай попробуем мозг задействовать?
|
|||
869
bananan
08.04.13
✎
18:24
|
(868) Думаешь мне обломно головой поработать? Просто с данным вера я что-то туплю...
|
|||
870
Wobland
08.04.13
✎
18:25
|
(869) а предыдущие тысячи постов откуда?
|
|||
871
vinogradъ
08.04.13
✎
18:26
|
(867) твой вера правильный, если в #Списокклиентов, и в #СписокАгентов, и в #СписокТМЦ что-то есть. Если в одном из них пусто, то вера даст пустое множество
|
|||
872
bananan
08.04.13
✎
18:27
|
(871) Спасибо, я буквально пару секунда назад это сообразил, сейчас перепешу текст запроса и он скорее всего заработает...
|
|||
873
Wobland
08.04.13
✎
19:08
|
встал апач. теперь проблема в связке php+mysql
в phpinfo() нет слова mysql. то есть, не взлетело. >>Configuration File (php.ini) Path C:\Windows то есть, не нашлось httpd.conf: #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL PHPIniDir "c:/php" LoadModule php5_module "c:/php/php5apache2_2.dll" #END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL никто не знает, что не так? |
|||
874
ЧеловекДуши
09.04.13
✎
05:44
|
(869) Думается, тут все так думают :)
|
|||
875
Privalov
09.04.13
✎
06:31
|
(874) +100500
|
|||
876
sapphire
09.04.13
✎
09:19
|
(873) А почему в phpinfo() должно быть что-то про мускул?
Вроде мухи обычно отдельно от котлет, не? |
|||
877
Wobland
09.04.13
✎
09:59
|
(876) ну пхп же должен как-то уметь работать с скл. а в каком-то мануале успешность связки диагностировалась именно так.
//я впервые с этим работаю |
|||
878
Wobland
09.04.13
✎
10:00
|
плюс к прочему тестовый пхпшный скрипт ругался на что-то типа Запрос.Выполнить() (всё дома, всё по памяти)
|
|||
879
Wobland
10.04.13
✎
05:59
|
продолжаю наблюдения. php познакомился с mysql, теперь нужно заиметь какую-то дазу банных, подключиться к ней, запросить... визуальных средств для этого не нашёл. может, плохо искал
|
|||
880
oslokot
10.04.13
✎
10:00
|
(879) phpMyAdmin ?
|
|||
881
bananan
10.04.13
✎
11:12
|
Доброе утро всем! Значит есть запрос:
ТекстЗапроса = " | select | Жур.iddoc as [Док $Документ] | ,Жур.iddocdef as [Док_вид $ВидДокумента] | ,Таб.Товар as [Товар $Справочник.ТМЦ] | ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд | ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиенты] | ,isnull($ДокШ.Агент, $ДокШН.Агент) as [Агент $Справочник.Агент] | ,isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as [ТМЦ $Справочник.ТМЦ] |from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | WHERE (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~) "; Если ВыбТМЦ.РазмерСписка()>0 тогда ТекстЗапроса = ТекстЗапроса + "and (isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT val FROM #СписокТМЦ))"; КонецЕсли; Если ВыбАгент.РазмерСписка()>0 тогда ТекстЗапроса = ТекстЗапроса + " and (isnull($ДокШ.Агент, $ДокШН.Агент) IN (SELECT val FROM #СписокАгентов))"; КонецЕсли; Если ВыбКлиент.РазмерСписка()>0 тогда ТекстЗапроса = ТекстЗапроса + " and (isnull($ДокШ.Клиент, $ДокШН.Клиент) IN (SELECT val FROM #СписокКлиентов)) "; КонецЕсли; ТекстЗапроса = ТекстЗапроса + "group by Жур.iddoc,Жур.iddocdef,Таб.Товар, isnull($ДокШ.Клиент, $ДокШН.Клиент),isnull($ДокШ.Агент, $ДокШН.Агент), isnull($ДокС.ТМЦ, $ДокН.ТМЦ)"; Запрос.УложитьСписокОбъектов(ВыбТМЦ, "#СписокТМЦ","ТМЦ"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#СписокАгентов","Агент"); Запрос.УложитьСписокОбъектов(ВыбКлиент, "#СписокКлиентов","Клиенты"); Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УстановитьТекстовыйПараметр("ВыбЕдиница", ВыбЕд); Теперь клиент попросил чтобы... Скажем так Агент1 продал Клиенту1 10шт товра1, и 20шт Товара20, потом еще 20шт Товара1... Надо чтобы выдавало Агент1 Клиент1 товар1 30 товар2 20 Что-то ч с утра туплю, как это сделать? |
|||
882
Mikeware
10.04.13
✎
11:46
|
"Что-то ч с утра туплю, как это сделать?" - у тебя все время утро?
|
|||
883
bananan
10.04.13
✎
11:52
|
(882) 11:12 это уже вечер?
+ у меня в запросе выбюирается sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд как его еще просуммировать? |
|||
884
bananan
10.04.13
✎
12:06
|
Что? Никто не знает как это сделдать?
|
|||
885
Wobland
10.04.13
✎
12:10
|
(881) ну сгруппируй по агенту, клиенту и товару //запрос традиционно не смотрю
|
|||
886
ЧеловекДуши
10.04.13
✎
12:14
|
(881) Дак дай... я разрешаю :)
|
|||
887
bananan
10.04.13
✎
12:14
|
(885) Посмотри оно там и так все сгруппировано...
|
|||
888
ЧеловекДуши
10.04.13
✎
12:15
|
(884) Знают, но ты подумай :)
|
|||
889
ЧеловекДуши
10.04.13
✎
12:15
|
(887) Если оно там и так все сгруппировано, то от нас то что хотел? :)
|
|||
890
Wobland
10.04.13
✎
12:28
|
а что, на украине на коэффициент делят?
|
|||
891
Wobland
10.04.13
✎
12:31
|
(887) смотрю. вижу группировку по документу, виду документа...
|
|||
892
bananan
10.04.13
✎
12:36
|
(891) Точно! снял группировку по документам и по видам документов и все нормально. Спасибо!
|
|||
893
bananan
10.04.13
✎
13:09
|
Упс, чего-то я опять туплю. Выбираю я справочник доставка из шапки документа, меня интересует поле Адрес из этого справочника как к нему достучаться?
| ,isnull($ДокШН.Доставка, $ДокШ.Доставка) as [Доставка $Справочник.Доставка] |
|||
894
Wobland
10.04.13
✎
13:11
|
(893) признавайся, спал крайнюю неделю? ОЗУ очистилось. третий раз этот вопрос
|
|||
895
bananan
10.04.13
✎
13:12
|
(894) Когда быцли первый и второй разы??
|
|||
896
Wobland
10.04.13
✎
13:14
|
(895) в прошлых ветках
|
|||
897
vinogradъ
10.04.13
✎
13:15
|
(893) соединить со справочником Доставка
|
|||
898
bananan
10.04.13
✎
13:19
|
(897) и это я сделал:
| left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) А как теперь выбрать поле Адрес из справочника Доставка? |
|||
899
Wobland
10.04.13
✎
13:20
|
доставка.адрес, я так понимаю, не подходит.. что же делать?
|
|||
900
vinogradъ
10.04.13
✎
13:20
|
(898) а как ты "вытянул" поле Доставка из ДокШ?
|
|||
901
bananan
10.04.13
✎
13:22
|
(899) посмотри в прошлых ветках и там и останься (в прошлых ветках)
|
|||
902
bananan
10.04.13
✎
13:22
|
(900) | ,isnull($ДокШН.Доставка, $ДокШ.Доставка) as [Доставка $Справочник.Доставка]
|
|||
903
Wobland
10.04.13
✎
13:25
|
(901) не хочу
|
|||
904
bananan
10.04.13
✎
13:41
|
Народ! подскажите, как мне добраться к полю Адрес из справочника Доставка (isnull($ДокШН.Доставка, $ДокШ.Доставка) as [Доставка $Справочник.Доставка])
|
|||
905
orefkov
10.04.13
✎
13:57
|
Думаю, что за ветка под штуку постов про запрос?
Захожу - действительно, запрос. На 10ти страницах уже. Удивительно. |
|||
906
Wobland
10.04.13
✎
13:59
|
(905) уже не первая
|
|||
907
bananan
10.04.13
✎
14:04
|
Всем (кроме Wobland) - до встречи, с адресом доставки сам разобрался...
|
|||
908
In123
10.04.13
✎
14:26
|
(905) Это норма. Тут так принято.
|
|||
909
In123
10.04.13
✎
14:27
|
bananan Халявщик еще тот )))
|
|||
910
bananan
10.04.13
✎
14:36
|
Ок, запрос - работает и работает в основном правильно, но...
Выбираю в окне ТМЦ три товара для запроса выводит результаты и там кроме трех выбраных товаров есть еще несколько других товаров. Скорее всего, я думаю, это что-то в БД неправильно записано, хотя... мой опыт работы с SQL... так что может и я что неправильно в запросе написал... Текст скрипта без части с выводом таблицы такой: ТекстЗапроса = " | select | Таб.Товар as [Товар $Справочник.ТМЦ] | ,isnull($ДокШН.Доставка, $ДокШ.Доставка) as [Доставка $Справочник.Доставка] | , $Доставка.Адрес as Адрес | ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд | ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиенты] | ,isnull($ДокШ.Агент, $ДокШН.Агент) as [Агент $Справочник.Агент] |from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | WHERE (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)"; Если ВыбТМЦ.РазмерСписка()>0 тогда ТекстЗапроса = ТекстЗапроса + "and (isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT val FROM #СписокТМЦ))"; КонецЕсли; Если ВыбАгент.РазмерСписка()>0 тогда ТекстЗапроса = ТекстЗапроса + " and (isnull($ДокШ.Агент, $ДокШН.Агент) IN (SELECT val FROM #СписокАгентов))"; КонецЕсли; Если ВыбКлиент.РазмерСписка()>0 тогда ТекстЗапроса = ТекстЗапроса + " and (isnull($ДокШ.Клиент, $ДокШН.Клиент) IN (SELECT val FROM #СписокКлиентов)) "; КонецЕсли; ТекстЗапроса = ТекстЗапроса + "group by isnull($ДокШ.Агент, $ДокШН.Агент), isnull($ДокШ.Клиент, $ДокШН.Клиент), Таб.Товар, $Доставка.Адрес, isnull($ДокШН.Доставка, $ДокШ.Доставка) | ORDER BY isnull($ДокШ.Агент, $ДокШН.Агент),isnull($ДокШ.Клиент, $ДокШН.Клиент), Таб.Товар"; Запрос.УложитьСписокОбъектов(ВыбТМЦ, "#СписокТМЦ","ТМЦ"); Запрос.УложитьСписокОбъектов(ВыбАгент, "#СписокАгентов","Агент"); Запрос.УложитьСписокОбъектов(ВыбКлиент, "#СписокКлиентов","Клиенты"); Запрос.УстановитьТекстовыйПараметр("НачДата", ДатаС); Запрос.УстановитьТекстовыйПараметр("КонДата", ДатаПо); Запрос.УстановитьТекстовыйПараметр("ВыбЕдиница", ВыбЕд); //Запрос.Отладка(1); ТбЗн = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); Подскажите в чем проблема (почему в выбор попадают невыбранные товары)? |
|||
911
Туц
10.04.13
✎
15:29
|
Это какой-то сериал, что-то похожее на лену из полипропилена.
|
|||
912
Wobland
10.04.13
✎
16:47
|
(910) дай текст готовый запроса, глаза ломаются так смотреть
|
|||
913
viktor_vv
10.04.13
✎
17:03
|
(912) Я так подозреваю, что там не в запросе дело, а в его ВыбТМЦ, где-то выше проскакивало, что это список с метками.
И под выбраны он подразумевает флажки. А во времянку грузит весь список. Но от него хрен добьешся вразумительного ответа, что такое ВыбТМЦ. |
|||
914
vinogradъ
10.04.13
✎
17:10
|
(913) угу, причем речь шла, что в списке и элементы и группы могут быть
|
|||
915
Sensodin
10.04.13
✎
17:14
|
закладка
|
|||
916
viktor_vv
10.04.13
✎
17:15
|
(915) К пятнице готовишься :).
|
|||
917
batman69
10.04.13
✎
17:48
|
(916) До пятницы кончится ветка ))
|
|||
918
Сниф
10.04.13
✎
18:26
|
1С++ с СКД еще не скрестили? Типа 7.7 с помощью 1С++ формирует XML и дает команду специальной базе 1С8 сформировать на СКД табличный документ и вернуть его в 7.7.
|
|||
919
Wobland
10.04.13
✎
18:35
|
(918) да нам бы select 'Hello, world!' пока
|
|||
920
Mikeware
10.04.13
✎
19:10
|
(918) можно. только зачем?
|
|||
921
Mikeware
10.04.13
✎
19:12
|
(918) можно даже проще :-)
квериконсоль, настраиваешь отображение полей, делаешь вывод в табличный документ, и вуаля... день работы. |
|||
922
Сниф
11.04.13
✎
01:47
|
(920) ну, вдруг кто на семерке решил навсегда задержаться =) Тогда 1С++ даст ему скорость выборки данных, а вспомогательная базка на 1С - сформирует из выборки красивый отчет. Вручную это делать, как я помню, крайне утомительно.
А что за квериконсоль?) |
|||
923
Mikeware
11.04.13
✎
05:41
|
(922) ну, это для тех, кто работает на семерке :-) Без восьмерочных костылей :-)))
|
|||
924
ЧеловекДуши
11.04.13
✎
07:58
|
(919) Оппонент отказывается от традиционного познания прекрасного... Его больше всего интересует анальный метод познания SQL запросов (но почему то он их называет скриптами, как заядлый Web программист) :)
|
|||
925
bananan
11.04.13
✎
10:34
|
Даю текст запроса (когда есть выбранные тмЦ)
select Таб.Товар as [Товар $Справочник.ТМЦ] ,isnull($ДокШН.Доставка, $ДокШ.Доставка) as [Доставка $Справочник.Доставка] , $Доставка.Адрес as Адрес ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиенты] ,isnull($ДокШ.Агент, $ДокШН.Агент) as [Агент $Справочник.Агент] from ( select $ДокС.ТМЦ as Товар ,ДокС.iddoc as Документ ,$ДокС.Кво*$ДокС.Коэффициент as Количество from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) union all select $ДокН.ТМЦ ,ДокН.iddoc ,$ДокН.Кво*$ДокН.Коэффициент as Количество from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) )as Таб inner join _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ and Жур.Closed&1 = 1 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 ( select max($Спр.Коэффициент) as Коэффициент ,Спр.parentext as Владелец from $Справочник.ЕдИзм as Спр (nolock) where $Спр.Ед =:ВыбЕдиница and $Спр.Коэффициент>0 and Спр.ismark=0 group by Спр.parentext ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар WHERE (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)and (isnull($ДокС.ТМЦ, $ДокН.ТМЦ) IN (SELECT val FROM #СписокТМЦ))group by isnull($ДокШ.Агент, $ДокШН.Агент), isnull($ДокШ.Клиент, $ДокШН.Клиент), Таб.Товар, $Доставка.Адрес, isnull($ДокШН.Доставка, $ДокШ.Доставка) ORDER BY isnull($ДокШ.Агент, $ДокШН.Агент),isnull($ДокШ.Клиент, $ДокШН.Клиент), Таб.Товар: Вообще по-моему в самом запросе вроде как все правильно, остается окно выбора ТМЦ... У меня вызывает подозрение: Запрос.УложитьСписокОбъектов(ВыбТМЦ, "#СписокТМЦ","ТМЦ"); |
|||
926
ЧеловекДуши
11.04.13
✎
10:36
|
(925) Узнаю, твой подчерк... ты его уже месяц трешь.
"Что, Данила Мастер, не получается каменный цветок?" (с) |
|||
927
ЧеловекДуши
11.04.13
✎
10:37
|
+(925)>>> Запрос.УложитьСписокОбъектов(ВыбТМЦ, "#СписокТМЦ","ТМЦ");
Нормальный метод: УложитьСписокОбъектов(<?>,<?>,<?>) Синтаксис: PutObjectList(ObjList, strTableName, strRefKinde) Назначение: сохраняет список объектов во временной таблице MS SQL. Идентификаторы объектов из списка ObjList сохраняются во временной таблице strTableName. Таблица имеет единственное поле val char(9). Имя таблицы должно начинаться с символа «#». Если strRefKinde идентификатор иерархического справочника, то таблица будет содержать элементы иерархически принадлежащие группам переданным в списке. (Подобно оператору «в» стандартного языка запросов 1С.) Параметры: - ObjList (СписокЗначений/АгрегатныйТип): список для сохранения или элемент справочника, группа справочника, документ и т.п.; - strTableName (строка): имя таблицы; - strRefKinde (строка): вид справочника для иерархического включения элементов или вид плана счетов для иерархического включения счетов; |
|||
928
bananan
11.04.13
✎
11:01
|
(926) С этим скриптом я работаю третий день. а не месяц.
(927) У меня все вроде правильно... А можно ли в 1С как-то посмотреть реальный текст запроса? |
|||
929
Ёпрст
11.04.13
✎
11:05
|
(928)
мд = СоздатьОбъект("MetaDataWork"); Сообщить(мд.ОбрМетаСКЛ(ТекстЗапроса)); |
|||
930
bananan
11.04.13
✎
11:07
|
(929) я применил Запрос.Отладка(1);
он выдает: select Таб.Товар as [Товар $Справочник.ТМЦ] ,isnull(ДокШН.sp4784, ДокШ.sp4783) as [Доставка $Справочник.Доставка] , Доставка.sp4782 as Адрес ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд ,isnull(ДокШ.sp1158, ДокШН.sp4216) as [Клиент $Справочник.Клиенты] ,isnull(ДокШ.sp4332, ДокШН.sp4333) as [Агент $Справочник.Агент] from ( select ДокС.sp1171 as Товар ,ДокС.iddoc as Документ ,ДокС.sp1173*ДокС.sp1174 as Количество from dt1157 as ДокС (nolock) union all select ДокН.sp4235 ,ДокН.iddoc ,ДокН.sp4237*ДокН.sp4238 as Количество from dt4215 as ДокН (nolock) )as Таб inner join _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ and Жур.iddocdef in (1157,4215) and Жур.Date_Time_IDDoc BETWEEN '20121220' and '20121220Z' and Жур.Closed&1 = 1 left join dh1157 as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = 1157 Left join dh4215 as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = 4215 left join dt1157 as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = 1157 left join dt4215 as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = 4215 left join sc4780 Доставка (nolock) on Доставка.id = isnull(ДокШ.sp4783, ДокШН.sp4784) left join ( select max(Спр.sp115) as Коэффициент ,Спр.parentext as Владелец from sc113 as Спр (nolock) where Спр.sp114 =' 1F ' and Спр.sp115>0 and Спр.ismark=0 group by Спр.parentext ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар WHERE (Жур.Date_Time_IDDoc BETWEEN '20121220' AND '20121220Z')and (isnull(ДокС.sp1171, ДокН.sp4235) IN (SELECT val FROM #СписокТМЦ))group by isnull(ДокШ.sp4332, ДокШН.sp4333), isnull(ДокШ.sp1158, ДокШН.sp4216), Таб.Товар, Доставка.sp4782, isnull(ДокШН.sp4784, ДокШ.sp4783) ORDER BY isnull(ДокШ.sp4332, ДокШН.sp4333),isnull(ДокШ.sp1158, ДокШН.sp4216), Таб.Товар Здесь вроде все правильно... |
|||
931
Mikeware
11.04.13
✎
11:08
|
Если "все правильно" - какие тогда вопросы?
|
|||
932
Ёпрст
11.04.13
✎
11:08
|
>>>>У меня вызывает подозрение:
Запрос.УложитьСписокОбъектов(ВыбТМЦ, "#СписокТМЦ","ТМЦ"); Ага.. Справочник с видом "ТМЦ" есть у тебя в дереве метаданных ? :)) |
|||
933
Mikeware
11.04.13
✎
11:09
|
(932) А ты сам-то как думаешь? :-)
|
|||
934
Wobland
11.04.13
✎
11:10
|
(929) а я спецгалку в 1CQA жмакаю ;)
|
|||
935
bananan
11.04.13
✎
11:23
|
(932) Да, есть такой справочник.
|
|||
936
vinogradъ
11.04.13
✎
11:25
|
(935) открой все-таки тайну: что такое ВыбТМЦ?
|
|||
937
bananan
11.04.13
✎
11:28
|
(936) Не знаю, как это правильно - назвать. это окно на форме (реквизит диалога) с типом справочник.ТМЦ...
|
|||
938
Wobland
11.04.13
✎
11:30
|
дельфист сказал бы "едит-бокс"
|
|||
939
In123
11.04.13
✎
11:34
|
(938) +100
|
|||
940
vinogradъ
11.04.13
✎
11:37
|
(937) тогда что за " ВыбТМЦ.РазмерСписка()>0 "
|
|||
941
Wobland
11.04.13
✎
11:38
|
(940) хм.. лист-бокс?
|
|||
942
Ёпрст
11.04.13
✎
11:39
|
это какой-то неправильный мёд..
запрос не очень верный. |
|||
943
Ёпрст
11.04.13
✎
11:40
|
вот это вот всё нахрена там ?
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 = $ВидДокумента.РасходнаяНакладнаяН |
|||
944
Wobland
11.04.13
✎
11:40
|
>окно на форме (реквизит диалога) с типом
форма ж сама по себе окно.. и как элемент управления может участвовать в запросе? значит, всё-таки реквизит, визуализирующийся на форме непонятно чем. значит, никаких размеров списка. а они есть... или это во мне говорит восьмёрочный взгляд на мир? |
|||
945
vinogradъ
11.04.13
✎
11:45
|
Скрин с ВыбТМЦ на форме в студию
|
|||
946
bananan
11.04.13
✎
11:45
|
(943) соединения, которые объявлют алиясы.
може и неправильно, но я не знаю как это сделать иначе... |
|||
947
bananan
11.04.13
✎
11:49
|
(945)См http://us.ua/1089082/
|
|||
948
Wobland
11.04.13
✎
11:50
|
(946) вопрос: "зачем?" ответ: "соединения"
|
|||
949
vinogradъ
11.04.13
✎
11:50
|
(947) список с пометками?
|
|||
950
Wobland
11.04.13
✎
11:51
|
даю справку: тот же радикал удобней для скриншотов
|
|||
951
vinogradъ
11.04.13
✎
11:52
|
+(949) выбор групп возможен?
|
|||
952
bananan
11.04.13
✎
11:55
|
(951) Да - выбор групп - возможен
|
|||
953
bananan
11.04.13
✎
11:57
|
(950) Это форум по расспространению скриншотов?
(948) Внимательно прочитай ответ, а потом уж стебись! |
|||
954
Wobland
11.04.13
✎
11:58
|
(953) нет. (948) не сторнирую
|
|||
955
Ёпрст
11.04.13
✎
11:59
|
(946) открою тебе тайну - в твоём запросе они не нужны.. совсем
|
|||
956
bananan
11.04.13
✎
12:12
|
(955) Возможно - у меня конечно опыт такой работы мизерный...
Но, как написать без них - не знаю. И написал так как знаю... Но сейчас вопрос в том ПОЧЕМУ запрос мне выдает НЕ выбранные ТМЦ? И как с этим бороться? |
|||
957
Wobland
11.04.13
✎
12:21
|
предлагаю заподозрить истинность всегда: (isnull(ДокС.sp1171, ДокН.sp4235) IN (SELECT val FROM #СписокТМЦ)
|
|||
958
sapphire
11.04.13
✎
12:29
|
(956) Написать нормальный запрос и научиться человечески передавать параметры в оный.
|
|||
959
sapphire
11.04.13
✎
12:29
|
(957) А оно там вообще надо?
|
|||
960
Wobland
11.04.13
✎
12:31
|
(959) хм, задумался.. надо из документов дёргать только нужную номенклатуру, не? //в имеющийся запрос традиционно не вникаю
|
|||
961
bananan
11.04.13
✎
12:32
|
(957) Значит - не только я буксую со своим мизерным опытом написания прямых запросов?
(958) Чем мой запрос "ненормальный"? (957) а оно так невсегда - для того isnull(ДокС.sp1171, ДокН.sp4235) IN (SELECT val FROM #СписокТМЦ) и используется в секции WHERE |
|||
962
bananan
11.04.13
✎
12:34
|
(960) почти так... Надо выбрать документы в которых имеется выбранная номенклатура, ну там еще проверка Агентов и Клиентов (но с этими двумя условиями - вроде все нормально работает)
|
|||
963
Wobland
11.04.13
✎
12:34
|
(961) я тебя удивлю, если скажу, что у меня тоже есть типа прямой запрос, с которым у меня не всегда всё хорошо (время от времени задача меняется и уточняется)?
|
|||
964
Ёпрст
11.04.13
✎
12:34
|
Ну, так хотя бы.. хотя тоже, не комильфо
select Таб.Товар as [Товар $Справочник.ТМЦ] ,isnull($ДокШН.Доставка, $ДокШ.Доставка) as [Доставка $Справочник.Доставка] ,$Доставка.Адрес as Адрес ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиенты] ,isnull($ДокШ.Агент, $ДокШН.Агент) as [Агент $Справочник.Агент] from ( select $ДокС.ТМЦ as Товар ,ДокС.iddoc as Документ ,$ДокС.Кво*$ДокС.Коэффициент as Количество from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) union all select $ДокН.ТМЦ ,ДокН.iddoc ,$ДокН.Кво*$ДокН.Коэффициент as Количество from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) )as Таб inner join _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ and Жур.Closed&1 = 1 left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) left join ( select max($Спр.Коэффициент) as Коэффициент ,Спр.parentext as Владелец from $Справочник.ЕдИзм as Спр (nolock) where $Спр.Ед =:ВыбЕдиница and $Спр.Коэффициент>0 and Спр.ismark=0 group by Спр.parentext ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар WHERE Таб.Товар IN (SELECT val FROM #СписокТМЦ) group by isnull($ДокШ.Агент, $ДокШН.Агент) ,isnull($ДокШ.Клиент, $ДокШН.Клиент) ,Таб.Товар ,$Доставка.Адрес ,isnull($ДокШН.Доставка, $ДокШ.Доставка) ORDER BY isnull($ДокШ.Агент, $ДокШН.Агент),isnull($ДокШ.Клиент, $ДокШН.Клиент), Таб.Товар |
|||
965
bananan
11.04.13
✎
12:39
|
(964) Сейчас проверю твой вариант запроса... Т.е. ты переставил проверку на наличие выбраных ТМЦ в подзапрос... Интерестный вариант... ну там мелочи по поводу того если нет ниодного выбраного ТМЦ... (Юзера интересуют Агенты, которые продали за определенный период хоть что-то)...
Ни и ты убрал проверку на период создания документов... |
|||
966
Wobland
11.04.13
✎
12:40
|
+(963) в частности, принял сомнительное решение считать количество проданных услуг 1 (собираю ОтчётыККМ). количество и сумму беру из партий, а в партиях нулевое количество услуг (глазами в движения документа смотрел). кто кинет в меня какашкой? ;)
|
|||
967
Ёпрст
11.04.13
✎
12:41
|
(965) какой подзапрос ?
Разуй глаза! |
|||
968
Ёпрст
11.04.13
✎
12:41
|
И проверка периода есть - она в иннер джоине
|
|||
969
sapphire
11.04.13
✎
12:45
|
(966) Услуги по продажам не проходят?! :)))
|
|||
970
bananan
11.04.13
✎
12:47
|
(968) пардон, просто неправильно сказал... Проверил твой вариант - с ТМЦ работает нормально, агенты и клиенты пока не проверял
|
|||
971
Wobland
11.04.13
✎
12:49
|
(969) только количество. скрин показать?
|
|||
972
Wobland
11.04.13
✎
12:53
|
||||
973
In123
11.04.13
✎
12:57
|
Близится к тыще...
|
|||
974
Wobland
11.04.13
✎
12:59
|
(973) к третьей тысяче, если учитывать только полные тыщи
|
|||
975
In123
11.04.13
✎
12:59
|
(974) К третьей, ох сколько их еще будет...
|
|||
976
Wobland
11.04.13
✎
13:04
|
а вот ещё вопрос имею. хочется сделать РС соответствия кодов организаций и складов в семёрке справочникам в восьмёрке. измерения: ВидСправочника, Код, ресурс: ссылка (типа организация или склад). ВидСправочника чем делать?
строка - долго (это у меня религия такая) число - непонятно перечисление - трудно дата - бессмысленно булево - некошерно... |
|||
977
bananan
11.04.13
✎
13:05
|
(968) ТАк то воно так але тришечки не так...
В окне выбора я выбираю три ТМЦ, он мне выдает тех клиентов, что взыли хотя бы один из трех ТМЦ, а мне надо только те что взяли все ТМЦ из окна выбора! Как это сделать? |
|||
978
bananan
11.04.13
✎
13:06
|
(976) В зоопарк сходи - там для тебя будет все понятно, нетрудно, со смыслом и кощерно!
|
|||
979
Wobland
11.04.13
✎
13:08
|
(978) а что там?
|
|||
980
sapphire
11.04.13
✎
13:09
|
(976) А зачем РС?
|
|||
981
bananan
11.04.13
✎
13:09
|
(979) в том числе и кошерная вобла... :)
|
|||
982
Wobland
11.04.13
✎
13:11
|
(980) эмм.. а что же?
|
|||
983
sapphire
11.04.13
✎
13:11
|
(979) Это долбобей так шуткует.
Смеяться при слове "лопата" типа... |
|||
984
sapphire
11.04.13
✎
13:12
|
(982) Не использовать коды, а использовать ID в 7.7 и ими же заполнять поля в справочнике - добавить поле нетрудно же
|
|||
985
In123
11.04.13
✎
13:12
|
Так он еще и шутник.. ни фига се
|
|||
986
Wobland
11.04.13
✎
13:14
|
(984) а вот не хочу конфигурацию ломать. и потом есть уже:
Функция ПолучитьСкладПоКоду(КодСклада) Функция ПолучитьОрганизациюПоКоду(КодФирмы) |
|||
987
bananan
11.04.13
✎
13:18
|
+ И непонятно почему с агентом и клиентом проверка типа:
and (isnull($ДокШ.Агент, $ДокШН.Агент) IN (SELECT val FROM #СписокАгентов)) работает правильно, а с ТМЦ надо проверять так: and Таб.Товар IN (SELECT val FROM #СписокТМЦ) (ну и опять же с ТМЦ - в запрос попадают любые клиенты поторые купили хотябы Один из указанных ТМЦ (а ндо чтобы выбирались только те что купили ВСЕ из выбраных ТМЦ) |
|||
988
Ёпрст
11.04.13
✎
13:25
|
(977)
типа того: select t1.tovar,t1.client from table as t1 where exists (select val from #tmptable where val not in (select t2.tovar from table as t2 where t1.client =t2.client) |
|||
989
bananan
11.04.13
✎
13:43
|
(988) Спасибо! Вроде понял. позже попробую. #tmptable - это выбранные (#СписокТМЦ))?
|
|||
990
Ёпрст
11.04.13
✎
13:46
|
(989) да, table - это твой запрос что сейчас, без всяких условий на ТМЦ.
|
|||
991
bananan
11.04.13
✎
14:03
|
А зачем проверка: t1.client =t2.client? Юезр может выбрать только ТМЦ..
|
|||
992
samozvanec
11.04.13
✎
14:06
|
капец. на десятой странице все еще разговаривают про запрос! про ТОТ ЖЕ запрос, что в сабже!!! о_О
|
|||
993
samozvanec
11.04.13
✎
14:08
|
что же предпримет ТС, когда ветку закроют, а вопросы так и не решены?)
|
|||
994
bananan
11.04.13
✎
14:08
|
(990) Написал так:
ТекстЗапроса = " | select | Таб.Товар as [Товар $Справочник.ТМЦ] | ,isnull($ДокШН.Доставка, $ДокШ.Доставка) as [Доставка $Справочник.Доставка] | , $Доставка.Адрес as Адрес | ,sum(Таб.Количество/isnull(СпрЕдиницы.Коэффициент, 1)) as КоличествоВЕд | ,isnull($ДокШ.Клиент, $ДокШН.Клиент) as [Клиент $Справочник.Клиенты] | ,isnull($ДокШ.Агент, $ДокШН.Агент) as [Агент $Справочник.Агент] |from | ( | select | $ДокС.ТМЦ as Товар | ,ДокС.iddoc as Документ | ,$ДокС.Кво*$ДокС.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) | union all | select | $ДокН.ТМЦ | ,ДокН.iddoc | ,$ДокН.Кво*$ДокН.Коэффициент as Количество | from $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) | )as Таб | inner join | _1sjourn as Жур (nolock) on Жур.IDDoc = Таб.Документ | and Жур.iddocdef in ($ВидДокумента.РасходнаяНакладная,$ВидДокумента.РасходнаяНакладнаяН) | and Жур.Date_Time_IDDoc BETWEEN :НачДата and :КонДата~ | and Жур.Closed&1 = 1 | 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 ( | select | max($Спр.Коэффициент) as Коэффициент | ,Спр.parentext as Владелец | from $Справочник.ЕдИзм as Спр (nolock) | where $Спр.Ед =:ВыбЕдиница | and $Спр.Коэффициент>0 | and Спр.ismark=0 | group by Спр.parentext | ) as СпрЕдиницы on СпрЕдиницы.Владелец = Таб.Товар | WHERE (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)"; Если ВыбТМЦ.РазмерСписка()>0 тогда ТекстЗапроса = ТекстЗапроса + "and exists (select from #СписокТМЦ where val not in (select t2.ТМЦ from Таб as t2 where t1.client=t2.client)"; КонецЕсли; не пропускает: ]Incorrect syntax near the keyword 'from'. |
|||
995
samozvanec
11.04.13
✎
14:09
|
(994) ошибка рядом со словом "from"
|
|||
996
bananan
11.04.13
✎
14:10
|
(995) Ошибка у тебя в голове! Не спамь!!!
|
|||
997
Wobland
11.04.13
✎
14:10
|
||||
998
samozvanec
11.04.13
✎
14:10
|
(996) ну так ты долго будешь искать
|
|||
999
Wobland
11.04.13
✎
14:11
|
девятьсот девяносто девять!
|
|||
1000
samozvanec
11.04.13
✎
14:11
|
ТЫЩА
|
|||
1001
bananan
11.04.13
✎
14:13
|
(990) А что такое t1?
|
|||
1002
Wobland
11.04.13
✎
14:14
|
(1001) а об этом мы узнаем в следующей серии
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |