|
v7: $ПоследнееЗначение в Классе ПрямойЗапрос 1с++ возвращает значение на предыдущую | ☑ | ||
---|---|---|---|---|
0
daviels
26.11.15
✎
10:20
|
Доброго дня.
столкнулся вот с какой проблемой: Использую в запросе Виртуальное значение $ПоследнееЗначение, пытаюсь получить цену товара на дату документа, а в выборке возвращается значение на предыдущую дату. Версия 1cpp 3.2.4.1. $ПоследнееЗначение.Цены.Цена(СпрЦены.текЭлемент,ВыборкаПоступлений.ДатаДокумента) КАК ЦенаБезнал Возвращается значение на предыдущую дату, т.е. например цена на 01.09.15 – 101 рубль, а возвращается значение 105 р, действующая до 01.09.15 Такая же история была и с курсом валют: $ПоследнееЗначение.Валюты.Курс($СпрВалюты.ТекущийЭлемент,ВыборкаПоступлений.ДатаДокумента) КАК КурсБезнал, НО вопрос решился подстановкой дополнительного параметра: $ПоследнееЗначение.Валюты.Курс($СпрВалюты.ТекущийЭлемент,ВыборкаПоступлений.ДатаДокумента,86399) КАК КурсБезнал, Где 86399 – число секунд за день, таким образом я подумал что получаю значение на конец дня ОДНАКО в случае с получением цены это не работает вот полный код запроса: ТекстЗапроса = " |ВЫБРАТЬ | ВыборкаПоступлений_1.Документ КАК [Документ $Документ.ПоступлениеТоваров] | ,ВыборкаПоступлений_1.Товар КАК [Товар $Справочник.Номенклатура] | ,ВыборкаПоступлений_1.ТипЦенБезнал КАК [ТипЦенБезнал $Справочник.ТипыЦен] | ,ВыборкаПоступлений_1.ЭлементЦена КАК [ЭлементЦена $Справочник.Цены] | ,$ПоследнееЗначение.Цены.Валюта(ВыборкаПоступлений_1.ЭлементЦена,ВыборкаПоступлений_1.ДатаДокумента,86399) КАК [ВалютаБезнал $Справочник.Валюты] | ,$ПоследнееЗначение.Цены.Цена(ВыборкаПоступлений_1.ЭлементЦена,ВыборкаПоступлений_1.ДатаДокумента,86399) КАК ЦенаБезнал |ИЗ | (ВЫБРАТЬ | ВыборкаПоступлений.Документ КАК Документ | ,ВыборкаПоступлений.ДатаДокумента КАК ДатаДокумента | ,ВыборкаПоступлений.Товар КАК Товар | ,ВыборкаПоступлений.ТипЦенБезнал КАК ТипЦенБезнал | ,СпрЦены.текЭлемент КАК ЭлементЦена | ,ВЫБОР | КОГДА ВыборкаПоступлений.Представитель = :ОтборНачальникОтдела | ТОГДА ВыборкаПоступлений.Нетто | ИНАЧЕ 0 | КОНЕЦ КАК НеттоНачальникОтдела | ,ВЫБОР | КОГДА ВыборкаПоступлений.Представитель В (ВЫБРАТЬ val ИЗ #ОтборСотрудникиОтдела) | ТОГДА ВыборкаПоступлений.Нетто | ИНАЧЕ 0 | КОНЕЦ КАК НеттоСотрудникиОтдела | ИЗ | #vt_1 КАК ВыборкаПоступлений | ЛЕВОЕ СОЕДИНЕНИЕ | #vt_price КАК СпрЦены | ПО | (СпрЦены.Товар = ВыборкаПоступлений.Товар) | И | (СпрЦены.ТипЦен = ВыборкаПоступлений.ТипЦенБезнал) | | ГДЕ | (ВыборкаПоступлений.ВидНачисления = :ОтборВидНачисления) | ) КАК ВыборкаПоступлений_1"; Помогите разобраться пожалуйста, что то я явно делаю не так... |
|||
1
Ёпрст
26.11.15
✎
10:28
|
(0)
Время=(ЧЧ*3600+ММ*60+СС)*10000; |
|||
2
ЧеловекДуши
26.11.15
✎
10:35
|
(0) Попробуй Включать отладку у 1С++. Ты начнешь видеть запрос в таком виде, в котором его получает SQL :)
|
|||
3
ЧеловекДуши
26.11.15
✎
10:36
|
Далее дело техники, отладить такой запросик на самом SQL менеджере или QA :)
|
|||
4
daviels
26.11.15
✎
10:37
|
(1) Ёпрст как обычно оказался прав на все 100%
вопрос закрыт. Спасибо. |
|||
5
trad
26.11.15
✎
10:42
|
(4) а какое значение для времени применил?
|
|||
6
daviels
26.11.15
✎
10:45
|
(5) 863990000
|
|||
7
trad
26.11.15
✎
10:46
|
если значение будет установлено в последнюю секунду дня, то опять будет проблема
нужно 864000000 |
|||
8
daviels
26.11.15
✎
10:52
|
(7) да, думаю это более корректное значение.
Спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |