![]() |
|
v7: Запрос (переделка непрямого в прмой) Ø (Mikeware 22.02.2013 13:09) |
☑ | ||
---|---|---|---|---|
0
bananan
22.02.13
✎
13:03
|
Всем еще раз добрый день!
Эта ветка - продолжение предыдушей (глюкнлуа она что-то...) Так вот благодяря trad был написан такой код запроса: ТекстЗапроса = " |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) |"; Этот код отбирает документы в которых докцена<прихцена... Есть еще два типа ошибок.. Вот сейчас надо придумать как отлавливать не установлена цена категории товара... в функции глобального модуля это делается так: Если кат.Выбран()=1 Тогда минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1))); Сообщить(""+Конт.ТМЦ+ ", минцена= "+минцена); Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда минцена=минцена.Получить(Конт.ДатаДок); КонецЕсли; минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)); Если минцена=0 Тогда //2/ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано); ТЗ.НоваяСтрока(); ТЗ.Товар = Конт.ТМЦ; ТЗ.Ошибка = " не встановлена ціна категорії "; ТЗ.Стр = Конт.НомерСтроки; ТЗ.Автор = Конт.Отпустил; КонецЕсли; Теперь даный код надо "засунуть" в прямой запрос... |
|||
1
Mikeware
22.02.13
✎
13:09
|
та ветка еще жива.
|
|||
2
Mikeware
22.02.13
✎
13:10
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |