|
Помогите домучить прямой запрос | ☑ | ||
---|---|---|---|---|
0
bananan
20.03.13
✎
12:57
|
На данный момент текст запроса такой:
ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.КаналСбыта as [КаналТТ $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | ,(case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен) END) КатегорияЦены | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 |"; но это код, выдает: Invalid column name 'ТипЦен'. ТипЦен вроде через кейс выбирается... Чего опять у меня неправильно в тексте запроса? |
|||
1
Ёпрст
20.03.13
✎
12:57
|
ё..
|
|||
2
ДенисЧ
20.03.13
✎
12:58
|
опять цирк продолжается?
|
|||
3
viktor_vv
20.03.13
✎
12:59
|
Понеслась очередная серия :).
|
|||
4
Ёпрст
20.03.13
✎
13:00
|
Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен )
СЮДА СМОТРИ много думай |
|||
5
viktor_vv
20.03.13
✎
13:02
|
Ты хотя бы вкратце напомни содержание предыдущих серий, а то цель запроса уже подзабылась.
И вроде ж в прошлых сказали, что смысла в этом Case нету (case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) | ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен) END) КатегорияЦены Ты ж там в каждом условии одинаковые ставишь Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен ) |
|||
6
bananan
20.03.13
✎
13:06
|
(4) Долго думал... ничего не придумал...
ТипЦен это реквезит шапки документа ДокШ и ДокШн это как раз шапки документов.. (5) А какие их там поставить? |
|||
7
Ёпрст
20.03.13
✎
13:09
|
(6) смотри еще раз до полного просветления..
подсказка - пропущен ОДИН символ |
|||
8
Ёпрст
20.03.13
✎
13:10
|
если че, в 9-ой позиции
|
|||
9
bananan
20.03.13
✎
13:15
|
(8) Долар был пропущен... Добавил... А воз и ныне там:
SQL Server]Invalid column name 'ТипЦен'. |
|||
10
Ёпрст
20.03.13
✎
13:17
|
(9) и прям во всех строчках исправил ?
:) |
|||
11
sapphire
20.03.13
✎
13:17
|
Долбебей таки не дочитал предыдущую ветку....
Пичалька |
|||
12
Ёпрст
20.03.13
✎
13:18
|
и есть уверенность, что ТипЦен - это реквизит шапки у обоих документах ?
:) |
|||
13
Ёпрст
20.03.13
✎
13:19
|
да и .. case там вообще нафик не впёрся, если че..
|
|||
14
bananan
20.03.13
✎
13:19
|
(12) Уверенность - 100%
(10) Сейчас еще раз перепроверю... |
|||
15
sapphire
20.03.13
✎
13:19
|
(0) На те из предыдущей ветки.
Очепятки сам исправишь. Долбобеюшка не поймёт зело сложно, но, как-то такъ: + Code |SELECT | Запрос.* | ,cast(SELECT TOP 1 .История Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта |FROM |( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены | ,cast(left(Жур.date_time_iddoc,8) as datetime) ДатаДок | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ОбщийРеквизит.Автор as Автор | , case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then $ИсторияРеквизита.ТМЦ.Цена1 | when $Перечисление.ТипыЦен.Категория2 then $ИсторияРеквизита.ТМЦ.Цена2 | when $Перечисление.ТипыЦен.Категория3 then $ИсторияРеквизита.ТМЦ.Цена3 | when $Перечисление.ТипыЦен.Категория4 then $ИсторияРеквизита.ТМЦ.Цена4 | when $Перечисление.ТипыЦен.Категория5 then $ИсторияРеквизита.ТМЦ.Цена5 | when $Перечисление.ТипыЦен.Категория6 then $ИсторияРеквизита.ТМЦ.Цена6 | when $Перечисление.ТипыЦен.Категория7 then $ИсторияРеквизита.ТМЦ.Цена7 | when $Перечисление.ТипыЦен.Категория8 then $ИсторияРеквизита.ТМЦ.Цена8 | when $Перечисление.ТипыЦен.Категория9 then $ИсторияРеквизита.ТМЦ.Цена9 | ELSE ' ' ИдентификаторИсторииЦены | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) | ) Запрос |
|||
16
bananan
20.03.13
✎
13:21
|
+(14) Таки в одной строке не поставил. КОгда поставил в последней строке. Выжает уже такую ошибку:
The column 'КатегорияЦены' was specified multiple times for 'Данные'. Чего теперь? |
|||
17
sapphire
20.03.13
✎
13:27
|
(16)
The column = колонка was specified multiple times = указано несколько раз |
|||
18
bananan
20.03.13
✎
13:27
|
(15) Насколько я понял мне надо это:
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 ' ' ИдентификаторИсторииЦены |
|||
19
Ёпрст
20.03.13
✎
13:27
|
(16) а нехер два поля в селекте обзывать одним псевдонимом КатегорияЦены в подзапросе
|
|||
20
bananan
20.03.13
✎
13:28
|
(17) конечно английский язык не мой родной язык, но смысл я понял, и что-то не вижу нескольких объявлений..
|
|||
21
Ёпрст
20.03.13
✎
13:29
|
(20) черничку кушай..
, $КаналСбыта.КатегорияЦены as КатегорияЦены ......... .......... | ELSE Coalesce(ДокШ.ТипЦен, $ДокШН.ТипЦен) END) КатегорияЦены |
|||
22
bananan
20.03.13
✎
13:31
|
(19) Увидел и исправил... Заработал запрос... Вот только теперь уж и не помню что этот запрос выбирает ... Сча буду вспоминать :)
|
|||
23
bananan
20.03.13
✎
13:31
|
(21) Со зрением у меня все в норме, а черника у нас в лесах ее море...
|
|||
24
Ёпрст
20.03.13
✎
13:32
|
дык ещь.. ешь её скорее
|
|||
25
sapphire
20.03.13
✎
13:35
|
(18) А зачем это надо ты понел?
|
|||
26
Ёпрст
20.03.13
✎
13:44
|
(25) главное, шоб хоть что-то работает, там не д понимания..
:) |
|||
27
sapphire
20.03.13
✎
13:47
|
(26) Дык ён же не смогет из того работающего гумна вывести то, что надоть...
|
|||
28
Ёпрст
20.03.13
✎
13:49
|
(27) дык.. весна то большая, до лета успеет сделать
|
|||
29
batman69
20.03.13
✎
13:52
|
Новая серия!!!!!!
|
|||
30
viktor_vv
20.03.13
✎
13:58
|
(29) Соскучился :) ?
|
|||
31
Wobland
20.03.13
✎
14:01
|
Дама и господа! После непродолжительного перерыва звезда форума снова с нами. Поприветствуем нашего бананана и пожелаем ему творческих и профессиональных удач! Не переключайте ветку, участвуйте в диалоге
|
|||
32
bananan
20.03.13
✎
14:05
|
(29) Чтобы мы без тебя делали, дорогой
? |
|||
33
sapphire
20.03.13
✎
14:09
|
(32) Ладно, чё там с запросом. Ну вот заработал запрос... Дальше-то что?
|
|||
34
ЧеловекДуши
20.03.13
✎
14:17
|
Жесть, автора еще не уволили :)
|
|||
35
sapphire
20.03.13
✎
14:17
|
(34) Нет, мож он там один такой на весь город...
|
|||
36
ЧеловекДуши
20.03.13
✎
14:20
|
(31) Мне это напоминает дом 2, как бы что-то кажут, но уже одно и тоже и ни о чем :)
|
|||
37
ЧеловекДуши
20.03.13
✎
14:20
|
(35) С какого конца? :)
|
|||
38
bananan
20.03.13
✎
14:21
|
(33) Пока не разбирался чего там еще надо, но то что это запрос не окончательный 100%, будет натхнення на работу посмотрю чего там еще надо в него добавить..
|
|||
39
sapphire
20.03.13
✎
14:22
|
Кто нить понел что у него там на работу будет?
|
|||
40
batman69
20.03.13
✎
14:47
|
(39) натхнення ))))
|
|||
41
Wobland
20.03.13
✎
14:47
|
(40) nathing?
|
|||
42
bananan
20.03.13
✎
16:16
|
по поводу моего запроса:
в "ориганальном" коде, написаным не мной,: кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; Если кат.Выбран()=1 Тогда минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); Если минцена=0 Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат); КонецЕсли; Ну именно для данного случая и пишется запрос... т.е. сейчас надо озапросить такой код: инцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); потом минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); и если минцена=0 тогда и это есть те данные который необходимы.. Вроде как в текущем запросе почти все нужное выбрано... Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); - это будет насколько я понимаю Данные.Цена1..Данные.Цена9... |
|||
43
sapphire
20.03.13
✎
16:24
|
(42) Долбобей. Ну получишь ты кучку цен, а какую именно выбрать надо для данного канала сбыта?
|
|||
44
bananan
20.03.13
✎
16:25
|
+(42)Но минцена юдет равна нулю только если 1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок) или
Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))) равно нулю.... Данные.Цена1..Данные.Цена9...может быть равной нулю это можно в секции where указать но, вроде мне не надо одновременно все Цена1, ...Цена9... для указанной строки в документе надо знать равна ли нулю какая-то конкретно Цена1...Цена9.. Это выбирается КатегорияЦ в данном запросе и, значит надо выбрать Цена№ где № береться из КатегорияЦ (последний знак этого поля)... вроде так? |
|||
45
bananan
20.03.13
✎
16:26
|
(43) см (44)
|
|||
46
sapphire
20.03.13
✎
16:28
|
(44) Тебе потому и написали запрос готовый с ценой для канала сбыта, нет опять вылез со своей телегой...
|
|||
47
bananan
20.03.13
✎
16:30
|
(46) Где мне написали такой запрос?
|
|||
48
bananan
20.03.13
✎
16:31
|
+(47) в (15)?
|
|||
49
sapphire
20.03.13
✎
16:32
|
(48) ты тот запрос всё одно не осилишь.
|
|||
50
bananan
20.03.13
✎
16:33
|
(4( Тот это какой? И почему ты уверен что я его не осилю?
|
|||
51
bananan
20.03.13
✎
16:35
|
(49) Тот запрос /ну и я его не осилю/ это (15)??
|
|||
52
sapphire
20.03.13
✎
16:36
|
(50) Потому что ты не понимаешь и не хочешь понимать как:
1) 1С хранит данные 2) Как их, эти данные получать средствами SQL... |
|||
53
bananan
20.03.13
✎
16:38
|
(52) Не понимаю - согласен ан все 200%, не хочу понимать - не согласен на все 300%!
|
|||
54
sapphire
20.03.13
✎
16:52
|
(53) Ну и что ты пытался понять из (15)?
|
|||
55
bananan
20.03.13
✎
16:52
|
(54) Рлка не пытался. Сейчас буду смотерть...
|
|||
56
bananan
20.03.13
✎
16:59
|
(54) Взял твой код из (15) выдает:
Incorrect syntax near the keyword 'SELECT' А теперь буду разбираться... :) |
|||
57
bananan
20.03.13
✎
17:02
|
+(56) что ему не понравилось в Селекте - не понял, а в запросе ,cast(SELECT TOP 1 .История Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта это правильно ??
|
|||
58
sapphire
20.03.13
✎
17:11
|
(56) Разве в (15) про опечатки никакого упоминания нет?
|
|||
59
bananan
20.03.13
✎
17:16
|
(58) Есть... Но так сходу я их вроде не вижу...
Евгений на тебя по аське можно выйти? |
|||
60
Ёпрст
20.03.13
✎
17:16
|
причем очепятки видны невооруженным взглядом
|
|||
61
sapphire
20.03.13
✎
17:17
|
(60) Старался же :)
|
|||
62
bananan
20.03.13
✎
17:17
|
(60) ну они может и видны неворуженным взглядом, но я их не вижу... :(
|
|||
63
sapphire
20.03.13
✎
17:19
|
(62) А ты по-внимательней посмотри.
|
|||
64
bananan
20.03.13
✎
17:20
|
Насколько я понял ошибка в даной строке:
| ,cast(SELECT TOP 1 .История Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта Да? |
|||
65
bananan
20.03.13
✎
17:24
|
+(64) конкретно в даной строке мне не нравится:
SELECT TOP 1 .История |
|||
66
bananan
20.03.13
✎
17:25
|
+(65) Евгений и чего ты здесь "настарался"? Подскажи...
|
|||
67
bananan
20.03.13
✎
17:30
|
sapphire, Ты где пропал? Просвети меня чего ты там намудрил... Пожалуйста.
|
|||
68
Ёпрст
20.03.13
✎
17:31
|
подсказываю
.История Value |
|||
69
vinogradъ
20.03.13
✎
17:33
|
изверги
|
|||
70
bananan
20.03.13
✎
17:35
|
(69) Да, они садисты!
(68) Классная подсказка... И чего в даной строке неправильно? |
|||
71
Ёпрст
20.03.13
✎
17:37
|
(70) ты в шарады в детстве играл ?
|
|||
72
vinogradъ
20.03.13
✎
17:37
|
(70) а если бы в (0) в первой строке было .Данные IDDoc?
|
|||
73
bananan
20.03.13
✎
17:38
|
sapphire, Ёпрст, будьте же людьми и НОРМАЛЬНО обьясните, ПОЭАЛУЙСТА!
|
|||
74
Ёпрст
20.03.13
✎
17:38
|
как тебе сказать.. один символ не на своём месте.
Если че - в этой строке он такой один, не повторяется - ищи. |
|||
75
bananan
20.03.13
✎
17:39
|
(72) Не понял...
Но, на всякий случай прбывал так: | ,cast(SELECT TOP 1 Запрос.История Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта Все равно ему не нраувится Селект... :( |
|||
76
bananan
20.03.13
✎
17:40
|
(74) Добрый ты...
|
|||
77
Ёпрст
20.03.13
✎
17:41
|
(76) подсказка №2
это первый символ в строке |
|||
78
bananan
20.03.13
✎
17:41
|
(74) Символ "1"? И на каком же месте он должен стоять?
|
|||
79
Ёпрст
20.03.13
✎
17:41
|
если че - строка, это то, что в (68)
|
|||
80
bananan
20.03.13
✎
17:41
|
(77) ЗАПЯТАЯ?
|
|||
81
Ёпрст
20.03.13
✎
17:42
|
читай (68) пост, смотри на первый символ ..много думай :)
|
|||
82
Ёпрст
20.03.13
✎
17:42
|
.История Value
|
|||
83
Ёпрст
20.03.13
✎
17:43
|
смотри на первый символ - используй силу!
|
|||
84
Ёпрст
20.03.13
✎
17:43
|
передвинь его в нужное место!
|
|||
85
bananan
20.03.13
✎
17:43
|
(82) Ну точка! И где же она должна стоять в даной строке??
|
|||
86
Ёпрст
20.03.13
✎
17:43
|
используй стрелочки на клавиатуре плюс делете и бекспейс..
|
|||
87
Ёпрст
20.03.13
✎
17:44
|
(85) аллилуя!
Он нашел его! |
|||
88
Ёпрст
20.03.13
✎
17:44
|
:)
|
|||
89
bananan
20.03.13
✎
17:44
|
+(85) Прбывал так:
История. Value Пробывал так : История.Value Все равно ошибка!!! |
|||
90
Ёпрст
20.03.13
✎
17:44
|
теперь передвинь его вправо
|
|||
91
bananan
20.03.13
✎
17:45
|
(88) Блин неужели это тебе приятно так издеваться?
|
|||
92
Ёпрст
20.03.13
✎
17:47
|
(91) дык , це же обучение, разве нет ?
Если допетришь сам - запомнишь, если напишут готовый ответ - не запомнишь никогда. |
|||
93
bananan
20.03.13
✎
17:48
|
Блин, люди добрые!!!
Как правильно написать: | ,cast(SELECT TOP 1 История Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта Где там должна стоять эта чертова точка?!!! |
|||
94
Ёпрст
20.03.13
✎
17:48
|
>>Пробывал так :
>>>История.Value >>>Все равно ошибка!!! какая ошибка то хоть ? |
|||
95
bananan
20.03.13
✎
17:49
|
(92) СПАСИБО за обучение!!!
Где ту точку ставить??? |
|||
96
bananan
20.03.13
✎
17:50
|
(94) Все таже:
]Incorrect syntax near the keyword 'SELECT'. |
|||
97
vinogradъ
20.03.13
✎
17:51
|
скобка
|
|||
98
Ёпрст
20.03.13
✎
17:51
|
(95)
ё.. ну це же должно быть очевидно, не ? ты берешь поле value из таблички _1SCONST , табличку _1SCONST ты обзываешь псевдонимом История, следовательно поле берешь у псевдонима История, т.е История.value ко всем остальным полям аналогично - в условии, в сортировке и т.д.. |
|||
99
Ёпрст
20.03.13
✎
17:51
|
(97) не допетрит :)
|
|||
100
bananan
20.03.13
✎
17:54
|
(99) код:
| ,cast(SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта выдает: Incorrect syntax near the keyword 'SELECT'. Чего я должен допетрить??? |
|||
101
Ёпрст
20.03.13
✎
17:54
|
ладно, пробел еще перед скобкой с нолок воткни.
|
|||
102
vinogradъ
20.03.13
✎
17:55
|
и посчитай количество открывающих и закрывающих скобок
|
|||
103
Ёпрст
20.03.13
✎
17:57
|
ну да, или добавь одну (
или удали одну ) в нужном месте. |
|||
104
Ёпрст
20.03.13
✎
18:00
|
| ,cast((SELECT TOP 1 История.Value FROM _1SCONST История (NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта
на вот, развлекайся |
|||
105
sapphire
20.03.13
✎
18:04
|
(100){На правах подсказки}
Хотя бы скобки посчитай :) |
|||
106
bananan
20.03.13
✎
18:08
|
Скобки сейчас подсчитаю, ачто за строка "пробел еще перед скобкой с нолок" Ёпрст??
|
|||
107
bananan
20.03.13
✎
18:10
|
+(106) Левых скобок три, правых - четыре какая из них лишняя и где именно?
|
|||
108
Mikeware
20.03.13
✎
18:11
|
:-)))
|
|||
109
bananan
20.03.13
✎
18:11
|
(104) Взыл твой код "для развлечения" выдает:
Incorrect syntax near 'ИдентификаторИсторииЦены'. |
|||
110
sapphire
20.03.13
✎
18:12
|
(109) Долбобей.
,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта |
|||
111
bananan
20.03.13
✎
18:14
|
(110) Может не я долбобей?
Взял твое (110) выдает: Incorrect syntax near 'ИдентификаторИсторииЦены'. |
|||
112
sapphire
20.03.13
✎
18:14
|
+(110) Можешь и дальше заниматься долбобеизмом...
|SELECT | Запрос.* | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта |FROM |( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены | ,cast(left(Жур.date_time_iddoc,8) as datetime) ДатаДок | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ОбщийРеквизит.Автор as Автор | , case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then $ИсторияРеквизита.ТМЦ.Цена1 | when $Перечисление.ТипыЦен.Категория2 then $ИсторияРеквизита.ТМЦ.Цена2 | when $Перечисление.ТипыЦен.Категория3 then $ИсторияРеквизита.ТМЦ.Цена3 | when $Перечисление.ТипыЦен.Категория4 then $ИсторияРеквизита.ТМЦ.Цена4 | when $Перечисление.ТипыЦен.Категория5 then $ИсторияРеквизита.ТМЦ.Цена5 | when $Перечисление.ТипыЦен.Категория6 then $ИсторияРеквизита.ТМЦ.Цена6 | when $Перечисление.ТипыЦен.Категория7 then $ИсторияРеквизита.ТМЦ.Цена7 | when $Перечисление.ТипыЦен.Категория8 then $ИсторияРеквизита.ТМЦ.Цена8 | when $Перечисление.ТипыЦен.Категория9 then $ИсторияРеквизита.ТМЦ.Цена9 | ELSE ' ' 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 ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) | ) Запрос |
|||
113
sapphire
20.03.13
✎
18:15
|
(111) Там END в операторе CASE опущен.
Ищи еще. |
|||
114
sapphire
20.03.13
✎
18:16
|
(111) Да с тобой не сравниться никому, Долбобеюшка...
|
|||
115
bananan
20.03.13
✎
18:18
|
(112) Взял - теперь работает...
И теперь там надо добавить условие ЦенаДляКаналаСбыта=0 и тогда он мне будет выбирать то что надо? |
|||
116
sapphire
20.03.13
✎
18:20
|
(115) А теперь, думай, дарагой...
Я тебе ЦенаДляКаналаСбыта дал? Дал. Сам думать умеешь или думалка не в том месте? |
|||
117
Mikeware
20.03.13
✎
18:20
|
(115) за всей твоей клоунадой цель уже давно никто не помнит... :-)
|
|||
118
sapphire
20.03.13
✎
18:21
|
(117) Ну не надо так. Я покамест еще помню. Кеш сохранился :)
|
|||
119
Mikeware
20.03.13
✎
18:22
|
||||
120
bananan
20.03.13
✎
18:24
|
(116) Вы уже со своими шарадами совсем мне голову забили. А ЗАЧЕМ мне ЦенаДляКаналаСбыта??
|
|||
121
bananan
20.03.13
✎
18:39
|
(116) Все же яф пробывал так:
| WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) AND ЦенаДляКаналаСбыта=0 выдает: Invalid column name 'ЦенаДляКаналаСбыта'. |
|||
122
sapphire
20.03.13
✎
19:20
|
(120) Долбобеюшка, а какую цену ты с рулем сравниваешь?
|
|||
123
bananan
20.03.13
✎
19:21
|
(122) А какую цену сравнивать и зачем мне 'ЦенаДляКаналаСбыта'?
|
|||
124
Mikeware
20.03.13
✎
19:21
|
(122) ухожоп, куле...
|
|||
125
sapphire
20.03.13
✎
19:21
|
(121) потому что ты не думая лепишь условие не туда, где оно должно быть.
|
|||
126
bananan
20.03.13
✎
19:25
|
(125) А КУДА его лепить?
|
|||
127
sapphire
20.03.13
✎
19:33
|
(126) Вестимо туда, где оно есть.
|
|||
128
sapphire
20.03.13
✎
19:35
|
(124) осьминог...
|
|||
129
bananan
20.03.13
✎
19:35
|
(127) А его кроме как в
| WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) больше нигде вроде и нет! |
|||
130
sapphire
20.03.13
✎
19:36
|
(129) Кого его?!
|
|||
131
bananan
20.03.13
✎
19:40
|
(130) Условия
|
|||
132
sapphire
20.03.13
✎
19:48
|
(131) А ты считаешь, что условие может быть только там?
|
|||
133
bananan
20.03.13
✎
19:49
|
(132) Я так не считаю, просто ты написал (127)
|
|||
134
sapphire
20.03.13
✎
19:53
|
(133) Да уж. Я имел ввиду поле...
|
|||
135
bananan
20.03.13
✎
19:53
|
(132) В куда ты предлагаешь поставить это условие?
|
|||
136
bananan
20.03.13
✎
19:54
|
(134) Трудно понять что ты ИМЕЕЩЬ ввиду:
(121) потому что ты не думая лепишь условие не туда, где оно должно быть. |
|||
137
sapphire
20.03.13
✎
20:00
|
(136) Мало того, условие на тождественное равенство нулю неприменимо
|
|||
138
bananan
21.03.13
✎
11:43
|
Вчера в конце рабочего дня шеф заявил что данный запрос нужен в уже в пятницу. Ребята, помогите!
|
|||
139
ЧеловекДуши
21.03.13
✎
11:46
|
(138) Ура... тебя в пятницу уволят? :)
|
|||
140
ЧеловекДуши
21.03.13
✎
11:47
|
(136) >>> потому что ты не думая лепишь условие не туда, где оно должно быть.
Жесть, ты теперь уже человеку сетуешь, что он в твоём запросе не думает :DDDDD |
|||
141
Mikeware
21.03.13
✎
11:47
|
(139)+1 !
|
|||
142
bananan
21.03.13
✎
11:51
|
(139) Рад за тебя, и чего я человеку сетую??
(141)-100 |
|||
143
bananan
21.03.13
✎
12:08
|
Никто не поможет?
|
|||
144
ЧеловекДуши
21.03.13
✎
12:11
|
(143) Чудак человек, ты кусаешь пирог не по своему рту (уму), начни с крошек "Select 'Привет SQL я bananan!'" :)
|
|||
145
bananan
21.03.13
✎
12:12
|
(144) Я "кусаю" то, что мне сказали сделать..
А крошки никому ненужны! |
|||
146
Ёпрст
21.03.13
✎
12:22
|
а чего еще то надо ?
а то ход мысли потерян |
|||
147
ЧеловекДуши
21.03.13
✎
12:24
|
(145) Конечно ненужны, но ты крутишься на одном месте. А быстрее было написать 10-ть запросов и свести все в ТЗ, как надо :)
|
|||
148
sapphire
21.03.13
✎
12:24
|
|SELECT
| IDDoc [Документ $Документ] | ,Автор -- тип тоже не знаю. | ,ДатаДок | ,Доставка [Доставка $Справочник.Доставка] | ,ТипЦен [ТипЦен $Справочник.ТипыЦен] -- не знаю тип. Не помню | ,КаналСбыта [КаналСбыта $Справочник.КаналыСбыта] | ,КатегорияЦены | ,lineno_ НомерСтрокиВДокументе | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,Количество | ,Цена_Прих | ,СуммаСНДС |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ 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 |
|||
149
bananan
21.03.13
✎
12:29
|
(146) На данный момент есть два варианта запроса, но оба незакончены, а ход мысли я и сам потерял...
Изначально надо озапросить такой код: кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; Если кат.Выбран()=1 Тогда минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда минцена=минцена.Получить(Конт.ДатаДок); КонецЕсли; минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); Если минцена=0 Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат); КонецЕсли; Первый вариант запроса: ТекстЗапроса = " |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, Данные.Цена1 as Цена1 |, Данные.Цена2 as Цена2 |, Данные.Цена3 as Цена3 |, Данные.Цена4 as Цена4 |, Данные.Цена5 as Цена5 |, Данные.Цена6 as Цена6 |, Данные.Цена7 as Цена7 |, Данные.Цена8 as Цена8 |, Данные.Цена9 as Цена9 |, Данные.Доставка as [ДоставкаКанал $Справочник.Доставка] |, Данные.КаналСбыта as [КаналТТ $Справочник.КаналыСбыта] |, Данные.КатегорияЦены as [КатегорияЦ $Перечисление.ТипыЦен] |, 'не встановлена ціна категорії' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены2 | , $ПоследнееЗначение.ТМЦ.Цена1(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена1 | , $ПоследнееЗначение.ТМЦ.Цена2(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена2 | , $ПоследнееЗначение.ТМЦ.Цена3(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена3 | , $ПоследнееЗначение.ТМЦ.Цена4(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена4 | , $ПоследнееЗначение.ТМЦ.Цена5(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена5 | , $ПоследнееЗначение.ТМЦ.Цена6(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена6 | , $ПоследнееЗначение.ТМЦ.Цена7(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена7 | , $ПоследнееЗначение.ТМЦ.Цена8(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена8 | , $ПоследнееЗначение.ТМЦ.Цена9(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена9 | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | ,(case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория2 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория3 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория4 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория5 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория6 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория7 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | when $Перечисление.ТипыЦен.Категория8 then Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен ) | ELSE Coalesce($ДокШ.ТипЦен, $ДокШН.ТипЦен) END) КатегорияЦены | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | Left join $Документ.РасходнаяНакладная as ДокШ (nolock) on ДокШ.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $Документ.РасходнаяНакладнаяН as ДокШН (nolock) on ДокШН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | left join $Справочник.Доставка Доставка (nolock) on Доставка.id = isnull($ДокШ.Доставка, $ДокШН.Доставка) | left join $Справочник.КаналыСбыта КаналСбыта (nolock) on КаналСбыта.id = $Доставка.КаналСбытаТТ | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE Данные.Цена5=0 OR Данные.Цена7=0 |"; Второй вариант: ТекстЗапроса = " |SELECT | Запрос.* | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND | История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта |FROM |( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены | ,cast(left(Жур.date_time_iddoc,8) as datetime) ДатаДок | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ОбщийРеквизит.Автор as [Автор $Справочник.Сотрудники] | , case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then $ИсторияРеквизита.ТМЦ.Цена1 | when $Перечисление.ТипыЦен.Категория2 then $ИсторияРеквизита.ТМЦ.Цена2 | when $Перечисление.ТипыЦен.Категория3 then $ИсторияРеквизита.ТМЦ.Цена3 | when $Перечисление.ТипыЦен.Категория4 then $ИсторияРеквизита.ТМЦ.Цена4 | when $Перечисление.ТипыЦен.Категория5 then $ИсторияРеквизита.ТМЦ.Цена5 | when $Перечисление.ТипыЦен.Категория6 then $ИсторияРеквизита.ТМЦ.Цена6 | when $Перечисление.ТипыЦен.Категория7 then $ИсторияРеквизита.ТМЦ.Цена7 | when $Перечисление.ТипыЦен.Категория8 then $ИсторияРеквизита.ТМЦ.Цена8 | when $Перечисление.ТипыЦен.Категория9 then $ИсторияРеквизита.ТМЦ.Цена9 | ELSE ' ' 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 ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) | ) Запрос |"; Оба варианта выдают не совсем то что надо, во втором варианте выбарается ЦенаКатегории, а что с ней делать с этой ценой - я что-то в штопор вошел... |
|||
150
bananan
21.03.13
✎
12:30
|
(148) Это, если я правильно понял и есть окончательный вариант запроса?
|
|||
151
sapphire
21.03.13
✎
12:31
|
(149) Сказочный долбобей...
|
|||
152
sapphire
21.03.13
✎
12:31
|
(150) Да пошел ты нафиг.
|
|||
153
bananan
21.03.13
✎
12:32
|
(151) Спасибо за комплименты и за посыл, но код, что ты дал выдает:
Ошибка типизации поля ТипЦен $Справочник.ТипыЦен |
|||
154
ЧеловекДуши
21.03.13
✎
12:34
|
(153) Серьёзно? Ты не переживай, пойди попей пивка, завтра все будет Хорошо :)
А в понедельник будешь осваивать новые просторы работодателей :) |
|||
155
sapphire
21.03.13
✎
12:34
|
(153) Я еще за тебя типизацию твою долбанную должен знать?
У меня не рентгеновское зрение, я вообще в МСК и твою конфу в глаза не видел. Ты не охренел часом? |
|||
156
sapphire
21.03.13
✎
12:34
|
(154) Давно ему пора туда...
|
|||
157
bananan
21.03.13
✎
12:35
|
+(153) Вообще у нас ТипЦен - это перечисление..
|
|||
158
Wobland
21.03.13
✎
12:35
|
(153) да перестань уже пытаться понять и пытаться думать. попроси готовый рабочий запрос. вот дайте мне, а то я сам не могу. вот моя база, вот техзадание, работайте..
|
|||
159
Mikeware
21.03.13
✎
12:35
|
(151) не "сказочный", а феерический!
|
|||
160
sapphire
21.03.13
✎
12:36
|
(153) Ну и убери типизацию, что сам не в состоянии пользоваться кнопками BackSpace & Delete ?
|
|||
161
bananan
21.03.13
✎
12:36
|
(155-156) Большое спасибо, с типизацеей думаю и сам разберусь, а по поводу пива и т.д. Алкоголь в последни1 раз употреблял 15 ноября прошлого года :)
|
|||
162
Wobland
21.03.13
✎
12:36
|
(160) стартовую позицию и количество нажатий скажи ещё
|
|||
163
Mikeware
21.03.13
✎
12:36
|
(158) ну так за это же денег захотят!
|
|||
164
sapphire
21.03.13
✎
12:37
|
(161) За тебя всю работу сделали, а ты еще и выпендриваешься.
|
|||
165
Wobland
21.03.13
✎
12:37
|
(163) это будет хотя бы честно ;)
|
|||
166
Mikeware
21.03.13
✎
12:37
|
(161) естественно. тебе алкоголь только для запаха. а дурь у тебя своя, врожденная...
|
|||
167
Mikeware
21.03.13
✎
12:38
|
(165)
вот и прикинь сам, где хохол, а где честно :-) |
|||
168
ЧеловекДуши
21.03.13
✎
12:38
|
(164) Ты только сейчас это понял, что тебя развели? :)
|
|||
169
sapphire
21.03.13
✎
12:39
|
(165)(166) А если его не уволят? ... Еще заданий насыпят....
|
|||
170
bananan
21.03.13
✎
12:39
|
Блин типизацию ТипЦен сделал, дак он мне выдал:
Для типизации поля "Документ", не найдено дополнительное типизирующее поле. |
|||
171
sapphire
21.03.13
✎
12:39
|
(168) Я честно стебался и мне не зги не обидна :)))))
|
|||
172
ЧеловекДуши
21.03.13
✎
12:39
|
(161) Нам не говори, думаю тут травкой попахивает (гонджубасом) :)
|
|||
173
sapphire
21.03.13
✎
12:40
|
(167) А вот про национальность не надо, я ведь тоже украинец, хоть родился и вырос в МО.
|
|||
174
ЧеловекДуши
21.03.13
✎
12:40
|
(170) Честно? Так и пишет. Брось, он не может так писать :)
Максимум кто сделает, это выведет в результирующей ТЗ строку с ИД перечисления :) |
|||
175
bananan
21.03.13
✎
12:41
|
(169) По поводу увольнения - не знаю, а заданий и так хватает..
И я вот вам же показывал сколько за эти три месяца я скриптов сдал, а теперь посмотрите, по скольким из них я обращался к вам за помощью? |
|||
176
sapphire
21.03.13
✎
12:41
|
(170) Разбирайся дальше сам. Там уже не очень смешно осталось.
|
|||
177
bananan
21.03.13
✎
12:42
|
(174) Чем в тебя бросить?
Какой резон мне врать вам всем? |
|||
178
bananan
21.03.13
✎
12:43
|
(176) постараюсь разобраться...
А что ща дополнительное типизирующее поле ему надо? |
|||
179
Mikeware
21.03.13
✎
12:44
|
(168) ну почему же... сразу понятно было. я чуть не в первой бананановской ветке сказал, что бананан тупой напрочь, и его "помогите" означает "сделайте за меня".
у него было _три_ месяца на чтение документации, изучение, попытки написать чт-то самому.. |
|||
180
bananan
21.03.13
✎
12:46
|
(179) Я уже вам показывал, кажется 24 скрипта. И много из этих скриптов было написано не мною??? И сделано Вами?????
|
|||
181
Ёпрст
21.03.13
✎
12:46
|
ээхх.. 24 скрипта, какая головокружительная карьера!
Нам бы так! :) |
|||
182
ЧеловекДуши
21.03.13
✎
12:47
|
(177) Не знаю :)
|
|||
183
ЧеловекДуши
21.03.13
✎
12:48
|
(180) Жесть, а ты вообще что там делал, если 24 не тобою :)
|
|||
184
bananan
21.03.13
✎
12:49
|
Вот с той типизацеей вожусь, текст запроса такой:
|SELECT | IDDoc [Документ $Документ] | , $ОбщийРеквизит.Автор as Автор | ,ДатаДок | ,Доставка [Доставка $Справочник.Доставка] | ,ТипЦен [ТипЦен $Перечисление.ТипыЦен] | ,КаналСбыта [КаналСбыта $Справочник.КаналыСбыта] | ,КатегорияЦены | ,lineno_ НомерСтрокиВДокументе | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,Количество | ,Цена_Прих | ,СуммаСНДС |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ 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 |"; Выдает: Invalid column name 'sp226'. Что это за sp226? |
|||
185
bananan
21.03.13
✎
12:50
|
(183) Читал твои шибко умные реплики...
|
|||
186
Wobland
21.03.13
✎
12:51
|
(184) это неверное имя колонки
|
|||
187
bananan
21.03.13
✎
12:53
|
(186) Да понимаю что неверное имя колонки и что здесь альяс вроде как но какой именно? В запросе нет поля 'sp226'
|
|||
188
Wobland
21.03.13
✎
12:53
|
(187) значит, оно разыменовалось во что-то. или ты врёшь
|
|||
189
sapphire
21.03.13
✎
12:54
|
(184) Долбобей, из первого запроса часть данных типизировать не судьба? Там ведь даже имена совпадают.
|
|||
190
ЧеловекДуши
21.03.13
✎
12:55
|
(185) Брось, для тебя их надо Писать и записывать, а далее переписывать и наизусть заучивать :)
|
|||
191
trad
21.03.13
✎
12:58
|
(178)
SELECT IDDoc [Документ $Документ] ,IdDocDef Документ_вид |
|||
192
Mikeware
21.03.13
✎
12:59
|
(191) "не поможет"©
|
|||
193
bananan
21.03.13
✎
13:02
|
(191) Добавил я
,IdDocDef Документ_вид а он мне выдает все то же: Invalid column name 'sp226'. |
|||
194
bananan
21.03.13
✎
13:02
|
(192) А что поможет?
|
|||
195
bananan
21.03.13
✎
13:03
|
И где в запросе 'sp226???
|
|||
196
Mikeware
21.03.13
✎
13:05
|
(195) .отладка(1)
|
|||
197
ЧеловекДуши
21.03.13
✎
13:06
|
(194) Отпуск, простой отпуск :)
Я вместо IdDocDef - обычно пользуюсь пот такой функцией. //sp_tohex - Погугли сам //val - 10-ное число, len1 - количество символов ТекстЗапроса=" |if Object_ID('"+ФункПР+"') is null |Begin |Exec(' |create FUNCTION "+ФункПР+"( val int, @len1 int) RETURNS varchar(9) |AS |begin |declare @v int; |declare @tval varchar(9); |set @v = val; |set @tval = ''''; | |while (@v > 0) |begin | set @tval = SUBSTRING(''0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'',1+@v%36,1)+@tval; | set @v = @v/36; |end; | |if @tval='''' set @tval=''0''; | |while (len(@tval) < @len1) |begin |set @tval = '' ''+@tval; |end; |RETURN(@tval); |end |') | |select 2 as Err |end else |select 1 as Err |"; |
|||
198
bananan
21.03.13
✎
13:08
|
(197) Отпуск будет где-то в конце лета или начале осени...
По поводу функции - возьму на заметку |
|||
199
Mikeware
21.03.13
✎
13:08
|
(197) тут только расстрел поможет..
|
|||
200
Ёпрст
21.03.13
✎
13:09
|
(195)
, $ОбщийРеквизит.Автор as Автор |
|||
201
ЧеловекДуши
21.03.13
✎
13:09
|
(198) Функция переводит 10-чное число в 16-тиричное :)
|
|||
202
ЧеловекДуши
21.03.13
✎
13:09
|
+(201) Т.е. в 36-тиричное :)
|
|||
203
trad
21.03.13
✎
13:10
|
(193)
вместо SELECT IDDoc [Документ $Документ] ,$ОбщийРеквизит.Автор as Автор напиши SELECT IDDoc [Документ $Документ] ,IdDocDef Документ_вид ,Автор |
|||
204
bananan
21.03.13
✎
13:10
|
А по запросу... В конце-концов - он ДОЛЖЕН РАБОТАТЬ!
В тексте: |SELECT | IDDoc [Документ $Документ] | , $ОбщийРеквизит.Автор as Автор | ,ДатаДок | ,Доставка [Доставка $Справочник.Доставка] | ,ТипЦен [ТипЦен $Перечисление.ТипыЦен] | ,КаналСбыта [КаналСбыта $Справочник.КаналыСбыта] | ,КатегорияЦены | ,lineno_ НомерСтрокиВДокументе | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,Количество | ,Цена_Прих | ,СуммаСНДС |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ 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 |"; Мне непонятно такое: | ,ДатаДок ... | ,Количество | ,Цена_Прих | ,СуммаСНДС Откуда эти поля беруться? Вернее, где указано откуда из брать7 |
|||
205
trad
21.03.13
✎
13:12
|
(204) из вложенного запроса
|
|||
206
ЧеловекДуши
21.03.13
✎
13:12
|
(204) ДАтаДок из самого первого Запроса.
У тебя же 3-ёх уровневый запрос получился, пользователи тебя еще долго будут помнить после такого запроса :) | ,cast(left(Жур.date_time_iddoc,8) as datetime) ДатаДок |
|||
207
bananan
21.03.13
✎
13:12
|
(203) Спасибо, написал как ты сказал и он ЗАРАБОТАЛ!!!
|
|||
208
ЧеловекДуши
21.03.13
✎
13:13
|
+(206) Не добрым словом... конечно...
|
|||
209
Ёпрст
21.03.13
✎
13:14
|
(203) добрый ты. с тобой автор до бентли не накопит
|
|||
210
sapphire
21.03.13
✎
13:14
|
- пью кофе -
|
|||
211
sapphire
21.03.13
✎
13:15
|
(207)
Теперь вместо SELECT IDDoc [Документ $Документ] ,IdDocDef Документ_вид ,Автор напиши SELECT IDDoc [Документ $Документ] ,IdDocDef Документ_вид ,Автор [Автор $Справочник.Сотрудники] -- взято из (0) |
|||
212
Mikeware
21.03.13
✎
13:16
|
посмотрел на знаменитые "24 скрипта". эпично...
|
|||
213
trad
21.03.13
✎
13:16
|
(206) а что не так с этим выражением?
|
|||
214
sapphire
21.03.13
✎
13:16
|
(212) Мишь, где?! Я тож поржать хочу.
|
|||
215
bananan
21.03.13
✎
13:16
|
:) Это еще совсем не ВСЕ!!
Теперь надо озапросить код: минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); Если докцена<минцена Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет недопустимо низкую цену="+докцена+" минимальная="+минцена); КонецЕсли |
|||
216
ЧеловекДуши
21.03.13
✎
13:16
|
(213) Он спросил, "Откуда", я в качестве примера, ему нашёл :)
|
|||
217
bananan
21.03.13
✎
13:17
|
(207) Это я уже сделал еще до того как ты мне посоветовал..
|
|||
218
ЧеловекДуши
21.03.13
✎
13:17
|
(215) Не знаю, Код не читабельный, даже смотреть не буду :)
|
|||
219
sapphire
21.03.13
✎
13:18
|
(206) Это я ему такое попрося подсунул.. Хотя конструкция с кучей левых join-ов - авторство Димы aka trad из Кирова.
Так что сей мопед мой чисто риторически :) |
|||
220
AleksAnt
21.03.13
✎
13:18
|
(215) а зачем этот код превращать в запрос?
|
|||
221
sapphire
21.03.13
✎
13:19
|
(215) Там озапрашивать нечего. Всё вполне очевидно
|
|||
222
trad
21.03.13
✎
13:19
|
(216) Я понимаю что ты нашёл, но почему пользователи из-за этого выражения будут поминать его не добрым словом?
Что плохого в этом выражении на твой взгляд? |
|||
223
bananan
21.03.13
✎
13:21
|
(220) Когда все это я написал (без вашей помощи) без прямого запроса, то "запрос2 на период месяц - работает около получаса.
Потому и возникла надобность в прмомо запросе |
|||
224
Mikeware
21.03.13
✎
13:22
|
(214) где-то в прошлой ветке было. отмылил
|
|||
225
ЧеловекДуши
21.03.13
✎
13:22
|
(222) Медленный запрос, чем больше вложений, тем больше место есть SQL сервер, больше есть меньше ресурса на другие запросы.
И от этого медленно работает сам сервер, в итоге все висят и недоумевают в чем проблема и почему 1С работает периодически медленно :) |
|||
226
ЧеловекДуши
21.03.13
✎
13:23
|
(223) А этот будет быстрее? :)
|
|||
227
trad
21.03.13
✎
13:25
|
(225) Извини, понял я. Это ты к вложенности написал, а не к cast.
|
|||
228
ЧеловекДуши
21.03.13
✎
13:26
|
(227) Угу :)
|
|||
229
trad
21.03.13
✎
13:28
|
(228) но тут надо смотреть, может быть без вложенности оптимальнее не написать.
|
|||
230
StanLee
21.03.13
✎
13:28
|
прям сериал :)) долбобаобаб ищет секса на стороне, ему никто не дает, но все объясняют как и что куда сувать, но у него не суется, даже со смазкой.. он уже натер мозоли на всем что можно натереть, но секас не входит и не выходит. напрашивается вопрос, может нужно выбрать более доступный объект для любви, не прямой кактус++, а кривые стандартные запросы 1С :)
|
|||
231
ЧеловекДуши
21.03.13
✎
13:29
|
(229) Тоже верно. Просто в своё время я до оптимизировался :)
В итоге не заметив почти положил сервер, в плане производительности. А делов то, в Базу добавилось всего лишних 10-ть пользователей :) |
|||
232
ЧеловекДуши
21.03.13
✎
13:31
|
(230) Ну, он уже в прогрессу, сумел все же запустить запрос, и фигня, что там результат не результативен, и еще нужно писать Табличную часть к отчету :)
|
|||
233
bananan
21.03.13
✎
13:31
|
(230) может твое - написание порнороманов??
|
|||
234
AleksAnt
21.03.13
✎
13:31
|
(230) интересно, когда ТС начнет изучать 8-ку:)
|
|||
235
Wobland
21.03.13
✎
13:32
|
(230) он от этих психоделических запросов как раз уйти в 1С++ пытается. так-то вроде есть и работает
|
|||
236
bananan
21.03.13
✎
13:32
|
(232) Табличная часть есть, она еще была написана для скрипта с НЕпрямым запросом...
|
|||
237
ЧеловекДуши
21.03.13
✎
13:32
|
(234) Его ждет много чудных откровений :)
|
|||
238
StanLee
21.03.13
✎
13:33
|
(233) а надо попробовать! сенькс за идею, с меня пива :)
|
|||
239
ЧеловекДуши
21.03.13
✎
13:33
|
(236) Везет тебе... Может быть :)
|
|||
240
Wobland
21.03.13
✎
13:38
|
(238) я начну
select girls.id, maximum(girls.beauty) from girls where girls.input_hole between &customer_dick-0.1 and &customer_dick+0.1 |
|||
241
Wobland
21.03.13
✎
13:38
|
(240) having maximum(girls.beauty)
|
|||
242
sapphire
21.03.13
✎
13:39
|
(240) SELECT @@ROWCOUNT ?
|
|||
243
sapphire
21.03.13
✎
13:40
|
(241) GROUP BY по какому полю?
|
|||
244
Wobland
21.03.13
✎
13:41
|
что-то я перегрелся...
select top 20 order by girls.beauty desc |
|||
245
Wobland
21.03.13
✎
13:45
|
бррр... а как выбрать всех, имеющих максимальное значение красоты? where girls.beauty=(select maximum(girls.beauty) from girls) ?
|
|||
246
StanLee
21.03.13
✎
13:48
|
а может банально order by girls.tits desc ? :)
|
|||
247
Wobland
21.03.13
✎
13:48
|
(246) хочу всех с пятым (максимальный имеющийся в базе)
|
|||
248
bananan
21.03.13
✎
14:14
|
Что-то я опять запутался... В только сделанном вами запросе:
|SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,Автор [Автор $Справочник.Сотрудники] | ,ДатаДок | ,Доставка [Доставка $Справочник.Доставка] | ,ТипЦен [ТипЦен $Перечисление.ТипыЦен] | ,КаналСбыта [КаналСбыта $Справочник.КаналыСбыта] | ,КатегорияЦены | ,lineno_ НомерСтрокиВДокументе | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,Количество | ,Цена_Прих | ,СуммаСНДС |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($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ 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 |"; где вібирается Минимальная цена? в непрямом запросе минимальная цена определяется так: минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда минцена=минцена.Получить(Конт.ДатаДок); КонецЕсли; минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); |
|||
249
bananan
21.03.13
✎
14:23
|
+(248) | ,cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2)) ЦенаДляКаналаСбыта
Это определяется минимальная цена? |
|||
250
Wobland
21.03.13
✎
14:26
|
SELECT TOP 1 ORDER BY История.DATE DESC
что-то самое позднее |
|||
251
sapphire
21.03.13
✎
14:27
|
(249) минцена=минцена.Получить(Конт.ДатаДок);
|
|||
252
sapphire
21.03.13
✎
14:27
|
(250) История.DATE<=Запрос.ДатаДок
|
|||
253
bananan
21.03.13
✎
14:29
|
(251) И как это выбрать в прымом запросе?
|
|||
254
Wobland
21.03.13
✎
14:30
|
(252) крайнее значение константы на дату?
|
|||
255
sapphire
21.03.13
✎
14:30
|
cast((SELECT TOP 1 История.Value FROM _1SCONST История(NOLOCK) WHERE История.OBJID=Запрос.ТМЦ AND История.ID=Запрос.ИдентификаторИсторииЦены AND История.DATE<=Запрос.ДатаДок ORDER BY История.DATE DESC) as numeric(10,2))=минцена.Получить(Конт.ДатаДок)
|
|||
256
Wobland
21.03.13
✎
14:31
|
(255) короче, не доходит до меня это. не общался с константами. да и ладно ;)
|
|||
257
sapphire
21.03.13
✎
14:31
|
(254) Нет, это значение периодического реквизита ЦенаX справочника ТМЦ на дату документа для канала сбыта.
|
|||
258
sapphire
21.03.13
✎
14:32
|
(256) В _1SCONST хранятся значения периодических реквизитов справочников.
|
|||
260
bananan
21.03.13
✎
14:50
|
Что-то я не понял, что значит (255) к чему там использоваине =?
|
|||
261
sapphire
21.03.13
✎
14:50
|
(260) Долбобей потому что и понималка у тебю совсем не варит.
|
|||
262
Ёпрст
21.03.13
✎
14:51
|
(260) ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
|
|||
263
sapphire
21.03.13
✎
14:52
|
(262) Тсс... спугнешь тушканчика....
|
|||
264
Ёпрст
21.03.13
✎
14:52
|
надо было заместо знака равенства написать ему посимвольно:
левое выражение Э К В И В А Л Е Н Т Н О правому.. )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) |
|||
265
DrZombi
гуру
21.03.13
✎
14:53
|
Вот оно как, я думал "Сериал" закончен, а тут еще продолжение :)
|
|||
266
DrZombi
гуру
21.03.13
✎
14:54
|
(260) Это и есть получение значения периодического реквизита :)
|
|||
267
sapphire
21.03.13
✎
14:54
|
(264) Он читает как-то странно. Я еще не понял алгоритм его чтения :)
|
|||
268
Wobland
21.03.13
✎
14:55
|
а как вы тут заставили запрос исполнять 1Сный код?
|
|||
269
Ёпрст
21.03.13
✎
14:55
|
(267) мот он арапка ? и справа налево.. или китайчик и ищет знакомые символы и иероглифы ?
)) |
|||
270
sapphire
21.03.13
✎
14:56
|
(269) Фих знает, может просто упал когда-то неудачно...
|
|||
271
sapphire
21.03.13
✎
14:56
|
(268) Чаво?
|
|||
272
Wobland
21.03.13
✎
14:57
|
(271) ну.. сравнить с минЦена.Получить() ;)
|
|||
273
sapphire
21.03.13
✎
14:58
|
(272) А... Ну мы могем :)
|
|||
274
Ёпрст
21.03.13
✎
15:11
|
ну всё, а уутора творческий перерыв - пишет свой 25-ый скрипт
|
|||
275
Mikeware
21.03.13
✎
15:11
|
(274) может, просто потанцевать пошел?
|
|||
276
Ёпрст
21.03.13
✎
15:13
|
(275) рано, бубен еще надо заслужить
|
|||
277
Mikeware
21.03.13
✎
15:27
|
(276) "сара, эта сволочь еще и поет!"©
в том смысле, что оно - хореограф по профессии...танцевалло там в каких-то театрах куевских... |
|||
278
Mikeware
21.03.13
✎
15:27
|
в киевских...
|
|||
279
bananan
21.03.13
✎
16:15
|
Ну из вас и прет...!
Ребята а если я создал в скрипте три разніх таблиці значений, как мне узнать какие имена колонок у всех из этих таблиззначений? |
|||
280
Ёпрст
21.03.13
✎
16:18
|
25 скрипт ужо продавать надо!
Патентуй его скорее.. ЗЫ: Для к = 1 По ТЗ.КоличествоКолонок() Цикл Сообщить("Имя колонки, биомать, будет такое у меня: "+ТЗ.ПолучитьПараметрыКолонки(к)); КонецЦикла; |
|||
281
bananan
21.03.13
✎
16:22
|
(280) Спасибо!
|
|||
282
bananan
21.03.13
✎
16:35
|
Странно код:
ТбРазом = СоздатьОбъект("ТаблицаЗначений"); ТбРазом.КоличествоСтрок(ТбЗн.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+ТбЗн3.КоличествоСтрок()); ТбРазом.Заполнить(ТбЗн, 1, ТбЗн.КоличествоСтрок(),); ТбРазом.Заполнить(ТбЗн2, ТбЗн.КоличествоСтрок()+1, ); ТбРазом.Заполнить(ТбЗн3, ТбЗн.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+1, ); ТбРазом.ВыбратьСтроку(); Для к = 1 По ТбРазом.КоличествоКолонок() Цикл Сообщить("Имя колонки, биомать, будет такое у меня: "+ТбРазом.ПолучитьПараметрыКолонки(к)); КонецЦикла; Сообщить("Строк в итоге: "+ТбРазом.КоличествоСтрок()+" в 1-й: "+ТбЗн.КоличествоСтрок()+" в 2-й: "+ТбЗн2.КоличествоСтрок()+" в 3-й: "+ТбЗн3.КоличествоСтрок()); Возврат; Сообщает: Строк в итоге: 65 в 1-й: 18 в 2-й: 25 в 3-й: 22 И все а где же имена колонок ТбРазом? |
|||
283
bananan
21.03.13
✎
16:38
|
+(282) Когда Добавил коод который выводит количесвто колонок в итоговой таблице ...
Так вот в итоговой таблице колисество колонок - 0, Я чего-то напутал с именами колонок в таблицах? |
|||
284
sapphire
21.03.13
✎
16:41
|
(280) Мне уже страшно....
|
|||
285
Ёпрст
21.03.13
✎
16:41
|
Ё....
|
|||
286
sapphire
21.03.13
✎
16:42
|
(279) Ты ж сам создавал поди и че, не знаешь что насоздавал?
|
|||
287
sapphire
21.03.13
✎
16:43
|
(285) Представляешь, такой код приснится ночью....
|
|||
288
bananan
21.03.13
✎
16:45
|
(284) Ну создавал не сам, а с вами, мнре уже самому страшно..
Для 1-й ТЗ код в запросе такой: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, 'має ціну нижчу за прихідну' as Ошибка 2-й: |SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,lineno_ НомерСтроки_ | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,Автор [Автор $Справочник.Сотрудники] | ,ДатаДок | ,Доставка [Доставка $Справочник.Доставка] | ,ТипЦен [ТипЦен $Перечисление.ТипыЦен] | ,КаналСбыта [КаналСбыта $Справочник.КаналыСбыта] | ,КатегорияЦены | ,Количество | ,Цена_Прих | ,СуммаСНДС | , 'Ошибка 2' as Ошибка 3-й: |SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,lineno_ НомерСтроки_ | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,Автор [Автор $Справочник.Сотрудники] | ,ДатаДок | ,Доставка [Доставка $Справочник.Доставка] | ,ТипЦен [ТипЦен $Перечисление.ТипыЦен] | ,КаналСбыта [КаналСбыта $Справочник.КаналыСбыта] | ,КатегорияЦены | ,lineno_ НомерСтрокиВДокументе | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,Количество | ,Цена_Прих | ,СуммаСНДС | ,'має дуже малу ціну' as Ошибка |
|||
289
Ёпрст
21.03.13
✎
16:45
|
ТбЗн.Выгрузить(ТбРазом);
ТбРазом.КоличествоСтрок(ТбРазом.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+ТбЗн3.КоличествоСтрок()); ТбРазом.Заполнить(ТбЗн2, ТбРазомм.КоличествоСтрок()+1); ТбРазом.Заполнить(ТбЗн3, ТбРазом.КоличествоСтрок()+1); |
|||
290
Ёпрст
21.03.13
✎
16:47
|
чорт, беру свой код обратно..
у него разная структура ТЗ во всех трех.. :)))))))))))))))))))))))))))))))))))))))))))))))))))))))) |
|||
291
bananan
21.03.13
✎
16:50
|
Странно, вроде в коде запросов поисправлял:
1: | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, 'має ціну нижчу за прихідну' as Ошибка 2: |SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,lineno_ НомерСтроки_ | ,Автор [Автор $Справочник.Сотрудники] | , 'Ошибка 2' as Ошибка 3: |SELECT | IDDoc [Документ $Документ] | ,IdDocDef Документ_вид | ,ТМЦ [ТМЦ $Справочник.ТМЦ] | ,lineno_ НомерСтроки_ | ,Автор [Автор $Справочник.Сотрудники] | ,'має дуже малу ціну' as Ошибка А все-равно НЕ работает! |
|||
292
bananan
21.03.13
✎
16:50
|
(290) Посмотри, плиз (291) теперь структура одинаковая?
|
|||
293
sapphire
21.03.13
✎
16:52
|
Хорошо хоть мы ему слово UNION не сказали :)
|
|||
294
Ёпрст
21.03.13
✎
16:53
|
и ? бери код с (289).. пробуй.
|
|||
295
Ёпрст
21.03.13
✎
16:53
|
(293) :)
мот ему оно и не надо.. |
|||
296
sapphire
21.03.13
✎
16:53
|
(295) Это точно...
|
|||
297
bananan
21.03.13
✎
16:55
|
(294) Не совсем понял, а куда вставлять код (289)
после этих : ТбРазом = СоздатьОбъект("ТаблицаЗначений"); ТбРазом.КоличествоСтрок(ТбЗн.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+ТбЗн3.КоличествоСтрок()); ТбРазом.Заполнить(ТбЗн, 1, ТбЗн.КоличествоСтрок(),); ТбРазом.Заполнить(ТбЗн2, ТбЗн.КоличествоСтрок()+1, ); ТбРазом.Заполнить(ТбЗн3, ТбЗн.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+1, ); или где? |
|||
298
Ёпрст
21.03.13
✎
16:56
|
(297) вместо
|
|||
299
Ёпрст
21.03.13
✎
16:56
|
этого кода
|
|||
300
bananan
21.03.13
✎
16:58
|
Всавил я в код чтобы смотреть параметры колонок для каждой из Таблиц значений. Так вот что получаю:
Имя колонки 1, биомать, будет такое у меня: Документ Имя колонки 1, биомать, будет такое у меня: Документ_вид Имя колонки 1, биомать, будет такое у меня: ТМЦ Имя колонки 1, биомать, будет такое у меня: НомерСтроки_ Имя колонки 1, биомать, будет такое у меня: Автор Имя колонки 1, биомать, будет такое у меня: Ошибка ------ Имя колонки2, биомать, будет такое у меня: Документ Имя колонки2, биомать, будет такое у меня: Документ_вид Имя колонки2, биомать, будет такое у меня: ТМЦ Имя колонки2, биомать, будет такое у меня: НомерСтроки_ Имя колонки2, биомать, будет такое у меня: Автор Имя колонки2, биомать, будет такое у меня: Ошибка ------ Имя колонки3, биомать, будет такое у меня: Документ Имя колонки3, биомать, будет такое у меня: Документ_вид Имя колонки3, биомать, будет такое у меня: ТМЦ Имя колонки3, биомать, будет такое у меня: НомерСтроки_ Имя колонки3, биомать, будет такое у меня: Автор Имя колонки3, биомать, будет такое у меня: Ошибка Колонок: 0 Строк в итоге: 65 в 1-й: 18 в 2-й: 25 в 3-й: 22 |
|||
301
sapphire
21.03.13
✎
16:59
|
(299) Одинаковая структура, но колонки могут быть типизированы.
|
|||
302
StanLee
21.03.13
✎
16:59
|
биомать )))))))))))))))))))
паццталом ё |
|||
303
sapphire
21.03.13
✎
17:02
|
(302) Ну он же копипастит :)
|
|||
304
bananan
21.03.13
✎
17:02
|
(301) И в итоге надо чтобы соответствующие колонки в каждой из Тз имели одинаковый тип?
|
|||
305
Ёпрст
21.03.13
✎
17:04
|
(304) желательно, а чего, ща не работает разве что-то ?
:) |
|||
306
bananan
21.03.13
✎
17:10
|
(305) Когда закомментировал немного:
ТбРазом = СоздатьОбъект("ТаблицаЗначений"); ТбЗн.Выгрузить(ТбРазом); //ТбРазом.КоличествоСтрок(ТбРазом.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+ТбЗн3.КоличествоСтрок()); //ТбРазом.Заполнить(ТбЗн2, ТбРазомм.КоличествоСтрок()+1); //ТбРазом.Заполнить(ТбЗн3, ТбРазом.КоличествоСтрок()+1); Заработало, но ведь в ТбРазом только данные из ТБЗн. Да? |
|||
307
bananan
21.03.13
✎
17:13
|
А сейчас я те строки раскомментировал, выдает6
{\\SERVER12\VPKTEST$\EXTFORMS\ЦІНАПОКАТЕГОРІЇ001.ERT(168)}: Номер за пределами значения! |
|||
308
Ёпрст
21.03.13
✎
17:13
|
(306) сейчас - да, а зачем комментил 7
|
|||
309
vinogradъ
21.03.13
✎
17:16
|
ТбЗн.Выгрузить(ТбРазом);
кс1 = ТбРазом.КоличествоСтрок(); кс2 = ТбЗн2.КоличествоСтрок(); кс3 = ТбЗн3.КоличествоСтрок(); ТбРазом.КоличествоСтрок(кс1+кс2+кс3); ТбРазом.Заполнить(ТбЗн2, кс1+1); ТбРазом.Заполнить(ТбЗн3, кс1+кс2+1); |
|||
310
bananan
21.03.13
✎
17:18
|
Всем - большое СПАСИБО.
код в итоге (объединени таблиц) написал такой: ТбРазом = СоздатьОбъект("ТаблицаЗначений"); ТбЗн.Выгрузить(ТбРазом); ТбРазом.КоличествоСтрок(ТбРазом.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+ТбЗн3.КоличествоСтрок()); ТбРазом.Заполнить(ТбЗн2, ТбЗн.КоличествоСтрок()+1); ТбРазом.Заполнить(ТбЗн3, ТбЗн.КоличествоСтрок()+ТбЗн2.КоличествоСтрок()+1); и теперь все работает |
|||
311
Ёпрст
21.03.13
✎
17:18
|
(309) да есть такое.. синдром бананана..затупил я сам ужо мальца :)
|
|||
312
bananan
21.03.13
✎
17:44
|
(311) Не переживай "синдром банананан" имеет два конца, так что раступишся :)!
|
|||
313
batman69
21.03.13
✎
18:03
|
(312) Этот синдром не излечим ))))
|
|||
314
bananan
21.03.13
✎
18:04
|
(313) а ты откуда знаешь, кажанчик69?
|
|||
315
bananan
21.03.13
✎
18:12
|
ну и, блин, открытие документов при нажатии мышки...
Так вот, когда на экране появляется итоговая таблица и я подвожу курсор мыши к документу, он (кусор ) становиться лупой, но... документ НЕ открывается. Что здесь может быть не так?? |
|||
316
Ёпрст
21.03.13
✎
18:16
|
(315)
ТекущийДокумент() |
|||
317
bananan
21.03.13
✎
18:18
|
(316) Не понял...
|
|||
318
sapphire
21.03.13
✎
18:19
|
(316) Поехал я домой...
|
|||
319
sapphire
21.03.13
✎
18:19
|
(317) Долбобей патамушта
|
|||
320
Ёпрст
21.03.13
✎
18:21
|
(317) в ячейке допиши
Вася.ТекущийДокумент() ... заместо Вася |
|||
321
bananan
21.03.13
✎
18:21
|
(319) Счастливого пути.
|
|||
322
bananan
21.03.13
✎
18:24
|
(320) Как я и думал - выдает ошибку ТбРазом.ТекущийДокумент()
В ТаблицеЗначений ТбРазом - есть поле Документ, а вот ТекущийДокумент() для нее не ведомо... :( |
|||
323
bananan
21.03.13
✎
18:27
|
+(322) И еще ко всему прочему для этих запросов НомерСтроки в документе ... короче выдает от 1 до числа количесва возвращенных строк, а не номер строки в документе где ошибка в цене...
|
|||
324
Mikeware
21.03.13
✎
18:40
|
(323) ога. "само выдает"....
|
|||
325
bananan
22.03.13
✎
11:40
|
Доброе утро, всем! что может быть что кусор и "апревращается" в лупу, а когда кликаешь на документе в колонках слышен бип, но документ не открывается...?
|
|||
326
Ёпрст
22.03.13
✎
11:46
|
Чего написано в ячейке ?
Тип ячейки какой хоть, Выражение ? |
|||
327
bananan
22.03.13
✎
11:49
|
В ячейке написал: ТбРазом.Документ
ТбРазом.Документ это поле из Таблицы значений, текст запроса такой: |SELECT | Данные.IDDoc as [Документ $Документ] |, Данные.IdDocDef as Документ_вид |, Данные.ТМЦ as [ТМЦ $Справочник.ТМЦ] |, Данные.lineno_ as НомерСтроки_ |, Данные.Автор as [Автор $Справочник.Сотрудники] |, 'має ціну нижчу за прихідну' as Ошибка |from ( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ПоследнееЗначение.ВидыНалогов.Ставка($ТМЦ.СтавкаНДС, cast(left(Жур.date_time_iddoc,8) as datetime)) Ставка | , $ОбщийРеквизит.Автор as Автор | FROM _1SJourn as Жур (nolock) | Left join $ДокументСтроки.РасходнаяНакладная as ДокС (nolock) on ДокС.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладная | Left join $ДокументСтроки.РасходнаяНакладнаяН as ДокН (nolock) on ДокН.iddoc = Жур.iddoc and Жур.IdDocDef = $ВидДокумента.РасходнаяНакладнаяН | left join $Справочник.ТМЦ ТМЦ (nolock) on ТМЦ.id = isnull($ДокС.ТМЦ, $ДокН.ТМЦ) | WHERE Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ | AND Жур.IdDocDef in ($ВидДокумента.РасходнаяНакладная, $ВидДокумента.РасходнаяНакладнаяН) |) Данные |WHERE ROUND(case when Данные.Количество = 0 then 0 else Данные.СуммаСНДС / Данные.Количество end, 2) < ROUND(Данные.Цена_Прих * (1+Данные.Ставка),2) |"; |
|||
328
Wobland
22.03.13
✎
11:50
|
и как тебе по-твоему платформа представляет расшифровку (вывод) ТЗ?
|
|||
329
Ёпрст
22.03.13
✎
11:51
|
(327) покажи вывод Талицы
|
|||
330
bananan
22.03.13
✎
11:51
|
+(327) Все, этот вопрос снят (у меня была неправильная расшифровка)...
|
|||
331
Ёпрст
22.03.13
✎
11:51
|
Таблицы
|
|||
332
Wobland
22.03.13
✎
11:52
|
(330) запомнил слово?
|
|||
333
bananan
22.03.13
✎
11:54
|
(332) Абизательна!
А вот здесь уж не пойму... В таблицу вывожу ТбРазом.НомерСтроки (расшифровка такая же) Когда смотрю таблицу значений там в поле НомерСтроки стоят правильные номера, а в экранную таблицу выводятся 1 2 3 .. и т.д. Здесь что может быть? |
|||
334
Wobland
22.03.13
✎
11:55
|
неправильное/неожиданное формирование экранной таблицы это может быть
|
|||
335
Ёпрст
22.03.13
✎
11:57
|
нам отсюда не виден код вывода ТЗ в макет
|
|||
336
Wobland
22.03.13
✎
11:57
|
+(335) так что на этом этапе ответ один
|
|||
337
bananan
22.03.13
✎
11:58
|
(334, 335) И этот вопрос снят... Опять сработала моя невнимательность, в запросе поле называется НомерСтроки_ а в ячейке я написал НомерСтроки, после исправления - все работает нормально...
|
|||
338
Wobland
22.03.13
✎
11:59
|
знаешь, почему я относительно редко ветки на мисте создаю? потому что предварительно ищу ответ сам
|
|||
339
bananan
22.03.13
✎
12:01
|
+Ну и все же буду БЛАГОДАРЕН если мне кто-то поможет с третьим запросом (он то работает), но показывает там он совсем не то что должен показывать...
Текст третьего запроса сейчас такой: |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)) МинЦена |FROM |( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , isnull($ДокШ.ТипЦен, $ДокШН.ТипЦен) ТипЦен | , $Доставка.КаналСбытаТТ as КаналСбыта | , $КаналСбыта.КатегорияЦены as КатегорияЦены | ,cast(left(Жур.date_time_iddoc,8) as datetime) ДатаДок | , $ПоследнееЗначение.ТМЦ.Цена_Прих(ТМЦ.id, cast(left(Жур.date_time_iddoc,8) as datetime)) Цена_Прих | , $ОбщийРеквизит.Автор as Автор | , case $КаналСбыта.КатегорияЦены | when $Перечисление.ТипыЦен.Категория1 then $ИсторияРеквизита.ТМЦ.Цена1 | when $Перечисление.ТипыЦен.Категория2 then $ИсторияРеквизита.ТМЦ.Цена2 | when $Перечисление.ТипыЦен.Категория3 then $ИсторияРеквизита.ТМЦ.Цена3 | when $Перечисление.ТипыЦен.Категория4 then $ИсторияРеквизита.ТМЦ.Цена4 | when $Перечисление.ТипыЦен.Категория5 then $ИсторияРеквизита.ТМЦ.Цена5 | when $Перечисление.ТипыЦен.Категория6 then $ИсторияРеквизита.ТМЦ.Цена6 | when $Перечисление.ТипыЦен.Категория7 then $ИсторияРеквизита.ТМЦ.Цена7 | when $Перечисление.ТипыЦен.Категория8 then $ИсторияРеквизита.ТМЦ.Цена8 | when $Перечисление.ТипыЦен.Категория9 then $ИсторияРеквизита.ТМЦ.Цена9 | ELSE ' ' 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)<Запрос.МинЦена |"; Запрос же должен выбирать документы у которых... вот код из оригинала: минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда минцена=минцена.Получить(Конт.ДатаДок); КонецЕсли; минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); Если докцена<минцена Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет недопустимо низкую цену="+докцена+" минимальная="+минцена); КонецЕсли; |
|||
340
Mikeware
22.03.13
✎
12:01
|
+(338) а порой при формулировании вопроса ответ получается почти автоматически. ибо "правильно сформулированный вопрос содержит половину правильного ответа"© :-)
|
|||
341
Wobland
22.03.13
✎
12:02
|
(340) неоднократно обрывал написание 0го поста по этой причине ;)
|
|||
342
Wobland
22.03.13
✎
12:04
|
а слово ЮНИОН уже говорили, не? что-то у него 3 ТЗ появилось..
|
|||
343
bananan
22.03.13
✎
12:07
|
(349) Знаю, я с этим не раз сталкивался... У меня часто бывало, напишу вопрос и сразу же ответ как бы сам по себе приходит в голову..
Мой вопрос некорректно сформирован? Лан Полный код "оригинального" скрипта: прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2); докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2); Если докцена<прихцена Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет цену ниже приходной"); КонецЕсли; кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены; Если кат.Выбран()=1 Тогда минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда минцена=минцена.Получить(Конт.ДатаДок); КонецЕсли; минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); Если минцена=0 Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат); КонецЕсли; минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); Если докцена<минцена Тогда ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет недопустимо низкую цену="+докцена+" минимальная="+минцена); КонецЕсли; Надо написать (дописать) запрос на условие докцена<минцена |
|||
344
Mikeware
22.03.13
✎
12:09
|
(343) все достаточно подробно разобрано в прошлой ветке.
|
|||
345
bananan
22.03.13
✎
12:13
|
(344) Что-то не помню, но сейчас посмотрю прощлую ветку...
Насколько я понимаю сейчас в запросе у меня есть Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); да и минцена.Получить(Конт.ДатаДок); тоже вроде есть... Значит теперь надо выбрать Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); ? Так или нет? |
|||
346
bananan
22.03.13
✎
12:34
|
Mikeware, я правильно думаю?
|
|||
347
bananan
22.03.13
✎
12:51
|
Есть кто живой здесь?
|
|||
348
DrZombi
гуру
22.03.13
✎
12:51
|
(347) Ты еще на работе? Тебе до скольки дали времени?
|
|||
349
bananan
22.03.13
✎
12:52
|
(348) Как видишь, я еще на работе, до сдачи в работу еще час или полтора
|
|||
350
Wobland
22.03.13
✎
12:53
|
аа, сегодня же День Ч. болеем, переживаем
|
|||
351
bananan
22.03.13
✎
13:02
|
(350) Спасибо за поддержку, а может кроме как болеть чем нибудь более практичным поможете?
|
|||
352
Wobland
22.03.13
✎
13:04
|
лично я давно не стремлюсь понять всю затею целиком
|
|||
353
Privalov
22.03.13
✎
13:07
|
Мля, это еще продолжается... Санта-Бар..Бананан какой-то ))))
|
|||
354
Mikeware
22.03.13
✎
13:07
|
(352) да в принципе, там ничего особо сложного. немного по-идиотски построены данные. разобрали в прошлой или позапрошлой ветке...
|
|||
355
Mikeware
22.03.13
✎
13:09
|
(353)"эта музыка будет вечной, если я заменю батарейки..."©
|
|||
356
Privalov
22.03.13
✎
13:09
|
(355) :-))
|
|||
357
Wobland
22.03.13
✎
13:22
|
(355) скоро работодатель батарейку себе сменит ;)
|
|||
358
sapphire
22.03.13
✎
13:26
|
(342) Я вчера со страхом упоминал.
|
|||
359
sapphire
22.03.13
✎
13:26
|
(355) Даже интересно уже.
|
|||
360
Ёпрст
22.03.13
✎
13:43
|
ээх.. еще пару часов и бананан превратится в тыкву.
ЗЫ: Аутор - покажи работодателю все свои ветки на этом форуме - пустиь смотрит, как ты старался, мот того.. премию дадут! |
|||
361
Mikeware
22.03.13
✎
13:47
|
(360) "еще пару часов и бананан превратится ОБРАТНО в тыкву." :-)
|
|||
362
sapphire
22.03.13
✎
13:50
|
Автор, наверное уже на случке с руководством. Заслуживает. :)
|
|||
363
Wobland
22.03.13
✎
13:52
|
вазелином в деканате я рисую слово "хватит"
|
|||
364
bananan
22.03.13
✎
14:01
|
(363) Взелином обычно в другом месте рисуют, но раз у Вас такой деканат - рисуйте там.
Перечитал я прошлую и позапрошлую ветки, не нашел я там о минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2); |
|||
365
sapphire
22.03.13
✎
14:12
|
(364) Ну не нашел и не нашел. Чё дальше-то?
Не знаешь как получить скидку для канала сбыта? |
|||
366
bananan
22.03.13
✎
14:33
|
(365) Уже знаю :
| , $КаналСбыта.ДопустимаяСкидка as Скидка |
|||
367
bananan
22.03.13
✎
14:34
|
+(366) Сейчас это надо засунуть куда надо и вроде как все..
|
|||
368
Wobland
22.03.13
✎
14:35
|
поручик, молчать!
|
|||
369
bananan
22.03.13
✎
14:43
|
(368) полный текст 3-го запроса:
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)) МинЦена |FROM |( | SELECT | Жур.IDDoc as IDDoc | , Жур.IdDocDef as IdDocDef | , isnull($ДокС.ТМЦ, $ДокН.ТМЦ) as ТМЦ | , isnull(ДокС.lineno_, ДокН.lineno_) lineno_ | , isnull($ДокС.Кво*$ДокС.Коэффициент, $ДокН.Кво*$ДокН.Коэффициент) Количество | , isnull($ДокС.СуммаСНДС, $ДокН.СуммаСНДС) СуммаСНДС | , isnull($ДокШН.Доставка, $ДокШ.Доставка) as Доставка | , 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 ROUND(case when Запрос.Количество = 0 then 0 else Запрос.СуммаСНДС / Запрос.Количество end, 2)<ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2) |"; Тут еще немного надо поправить "поле" ошибка и все! |
|||
370
sapphire
22.03.13
✎
14:46
|
(368) Ты не находишь несколько странным развитие событий?
|
|||
371
Wobland
22.03.13
✎
14:48
|
(370) не.. а что не так?
|
|||
372
sapphire
22.03.13
✎
14:48
|
(371) Дюже быстро он сообразил.
|
|||
373
Wobland
22.03.13
✎
14:50
|
из (364) в (367)? хм.. мож, его уже заменили?
|
|||
374
bananan
22.03.13
✎
14:50
|
(372) Упс... Поправил поле Ошибка:
| ,'має дуже малу ціну='+Запрос.СуммаСНДС / Запрос.Количество+' мінімальна='+ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2) as Ошибка Ругается: Error converting data type varchar to numeric. Чего он хочет? |
|||
375
Wobland
22.03.13
✎
14:50
|
(373) поправка: в (366)
|
|||
376
bananan
22.03.13
✎
14:50
|
(373) Ищо не заменили :)
|
|||
377
Wobland
22.03.13
✎
14:50
|
(374) он не хочет с разными типами в одном поле работать
|
|||
378
Wobland
22.03.13
✎
14:52
|
пинг
|
|||
379
Wobland
22.03.13
✎
14:52
|
по сути ты хочешь иметь в этом поле то, что нормальные люди делают после запроса
|
|||
380
sapphire
22.03.13
✎
14:53
|
(374) Error converting data type varchar to numeric.
Error Ошибка converting преобразования data type тип данных varchar строка переменной длины to к numeric число |
|||
381
bananan
22.03.13
✎
14:53
|
(377) и как его заставить работать с разными типаи? Приведение типов? Если привидление типов - то как это в SQL делается - я не знаю :(
|
|||
382
Wobland
22.03.13
✎
14:53
|
(381) никак. не нужно его насильничать
|
|||
383
bananan
22.03.13
✎
14:54
|
(380) А как это "обойти"?
|
|||
384
sapphire
22.03.13
✎
14:54
|
,'має дуже малу ціну='+cast(Запрос.СуммаСНДС / Запрос.Количество+' мінімальна='+ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2) as varchar(255)) Ошибка
|
|||
385
bananan
22.03.13
✎
14:54
|
(382) Да мне и не хочется его насильничать, но так поставлена задача...
|
|||
386
sapphire
22.03.13
✎
14:55
|
+(384) Выражение в cast взять в скобки
,'має дуже малу ціну='+cast((Запрос.СуммаСНДС / Запрос.Количество+' мінімальна='+ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2)) as varchar(255)) Ошибка |
|||
387
bananan
22.03.13
✎
14:56
|
(384) Написал как ты показал, но...
Error converting data type varchar to numeric. |
|||
388
Wobland
22.03.13
✎
14:56
|
(385) врёшь
|
|||
389
Wobland
22.03.13
✎
14:57
|
+(388) так интерпретирована задача
|
|||
390
bananan
22.03.13
✎
14:58
|
(386) написал так:
| ,'має дуже малу ціну='+cast((Запрос.СуммаСНДС / Запрос.Количество+' мінімальна='+ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2)) as varchar(255)) Ошибка а воз и ныне там: Error converting data type varchar to numeric. |
|||
391
sapphire
22.03.13
✎
14:59
|
тю, там он еще строку вставил.. от же пидлюка..
|
|||
392
bananan
22.03.13
✎
14:59
|
(389) Задачу я не интерпретировал в "ориганальном" коде:
Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет недопустимо низкую цену="+докцена+" минимальная="+минцена); |
|||
393
Wobland
22.03.13
✎
14:59
|
(391) при копипасте соринка попала ;)
|
|||
394
bananan
22.03.13
✎
14:59
|
(391) И чего делать??
|
|||
395
Wobland
22.03.13
✎
15:00
|
(392) дай оригинальную постановку задачи и не спорь с бородатыми
|
|||
396
trad
22.03.13
✎
15:00
|
(388) не, не врет
| ,'має дуже малу ціну='+cast(Запрос.СуммаСНДС / Запрос.Количество as varchar(255))+' мінімальна='+cast(ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2) as varchar(255)) as Ошибка |
|||
397
sapphire
22.03.13
✎
15:00
|
,'має дуже малу ціну='
+cast((Запрос.СуммаСНДС / Запрос.Количество) as varchar(255)) +' мінімальна=' +cast(ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2)) as varchar(255)) |
|||
398
sapphire
22.03.13
✎
15:00
|
(394) Долбобействовать дальше
|
|||
399
Ёпрст
22.03.13
✎
15:01
|
(397) не красиво, надо бы еще alltrim хотя бы
|
|||
400
sapphire
22.03.13
✎
15:01
|
скобок лишних убрал
,'має дуже малу ціну=' +cast((Запрос.СуммаСНДС / Запрос.Количество) as varchar(255)) +' мінімальна=' +cast(ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2) as varchar(255)) |
|||
401
sapphire
22.03.13
✎
15:02
|
(399) Зачем? там varchar
|
|||
402
bananan
22.03.13
✎
15:02
|
(397) Так:
| ,'має дуже малу ціну='+cast((Запрос.СуммаСНДС / Запрос.Количество) as varchar(255))+' мінімальна=' | +cast(ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2)) as varchar(255)) as Ошибка выдает: Incorrect syntax near 'cast', expected 'AS' |
|||
403
bananan
22.03.13
✎
15:05
|
+(402) Написал как ты и посоветовал... работает, но...
Как мне ему указать чтобы в цене он показывал только 2 цифры после запятой (в дробной части)? |
|||
404
Ёпрст
22.03.13
✎
15:06
|
(401)точна
|
|||
405
Ёпрст
22.03.13
✎
15:07
|
(42) тот же раунд воткнуть
|
|||
406
sapphire
22.03.13
✎
15:07
|
(403) Как округлить цену со скидкой так ты догадался...
Странно, вы как хотите, мне странно (с) |
|||
407
bananan
22.03.13
✎
15:09
|
(405) но там ведь уже есть раунд...
|
|||
408
bananan
22.03.13
✎
15:09
|
(406) он мне выдает:
має дуже малу ціну=23.8500000000000000000000 мінімальна=24.67000000 |
|||
409
trad
22.03.13
✎
15:10
|
(405) round не поможет, будет типа 12.340000
можно, например, типизировать через numeric(15,2) |
|||
410
trad
22.03.13
✎
15:11
|
+(409)
| ,'має дуже малу ціну='+cast(cast(Запрос.СуммаСНДС / Запрос.Количество as numeric(15,2)) as varchar(15))+' мінімальна='+cast(cast(ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2) as numeric(15,2)) as varchar(15)) as Ошибка |
|||
411
bananan
22.03.13
✎
15:11
|
(409) Ранд таки не помог а как типизировать? :(
|
|||
412
bananan
22.03.13
✎
15:12
|
(410) СПасибо
|
|||
413
bananan
22.03.13
✎
15:13
|
Всем ОГРОМНОЕ спасибо, все работает вроде как и надо :)
|
|||
414
sapphire
22.03.13
✎
15:14
|
,'має дуже малу ціну='+cast(cast((Запрос.СуммаСНДС / Запрос.Количество) as numeric(10,2)) as varchar(255))+' мінімальна='
| +cast(cast(ROUND(Запрос.МинЦена*(1-Запрос.Скидка/100),2)) as numeric(10,2)) as varchar(255)) as Ошибка |
|||
415
sapphire
22.03.13
✎
15:14
|
(410) :)
|
|||
416
bananan
22.03.13
✎
15:16
|
(414) А зачем раунд во второй части?
Написали без раунда - показывает как и хотелось.. |
|||
417
sapphire
22.03.13
✎
15:17
|
(416) round округляет, а cast тупо отбрасывает кусок мантиссы.
|
|||
418
bananan
22.03.13
✎
15:19
|
(417) Ясно, но все же раунд там не нужен, у цены и так два знака в дробной части...
|
|||
419
trad
22.03.13
✎
15:20
|
(416) можно и без round т.к. cast в данном случае округляет
|
|||
420
Ёпрст
11.04.13
✎
14:30
|
продолжаем..
>>>(990) А что такое t1? Это абстрактный пример для таблички с 2-мя полями - клиентосом и товаром и списком с товаром. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |