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,ВсеВыбрано);
ТЗ.НоваяСтрока();
ТЗ.Товар = Конт.ТМЦ;
ТЗ.Ошибка = " не встановлена ціна категорії ";
ТЗ.Стр = Конт.НомерСтроки;
ТЗ.Автор = Конт.Отпустил;
КонецЕсли;
Теперь даный код надо "засунуть" в прямой запрос...
|
|