|
Запрос и СКД | ☑ | ||
---|---|---|---|---|
0
first_may
10.03.17
✎
23:01
|
Добрый день.
Выполняю запрос ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.СерияНоменклатуры КАК Серия, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток, ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Стоимость, ЕСТЬNULL(ТоварыНаСкладахОстаткиСрез.КоличествоОстаток, 0) КАК ОстатокСрез, ЕСТЬNULL(ТоварыНаСкладахОстаткиСрез.КоличествоОстаток, 0) * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследнихСрез.Цена, 0) КАК СтоимостьСрез ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(КОНЕЦПЕРИОДА(&Период, ДЕНЬ), СерияНоменклатуры.СрокГодности <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&Период, ДЕНЬ), ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(КОНЕЦПЕРИОДА(&ПериодСрез, ДЕНЬ), СерияНоменклатуры.СрокГодности <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КАК ТоварыНаСкладахОстаткиСрез ПО ТоварыНаСкладахОстатки.Склад = ТоварыНаСкладахОстаткиСрез.Склад И ТоварыНаСкладахОстатки.Номенклатура = ТоварыНаСкладахОстаткиСрез.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстаткиСрез.ХарактеристикаНоменклатуры И ТоварыНаСкладахОстатки.СерияНоменклатуры = ТоварыНаСкладахОстаткиСрез.СерияНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&ПериодСрез, ДЕНЬ), ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследнихСрез ПО (ТоварыНаСкладахОстаткиСрез.Номенклатура = ЦеныНоменклатурыСрезПоследнихСрез.Номенклатура) И (ТоварыНаСкладахОстаткиСрез.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследнихСрез.ХарактеристикаНоменклатуры) УПОРЯДОЧИТЬ ПО ТоварыНаСкладахОстатки.Номенклатура.Наименование Получаю Остато = 40 ОстатокСрез = 0 Затем делаю отчет на СКД с этим запросом. И при тех же параметрах получаю Остато = 40 ОстатокСрез = 40 Скажите пож, почему один и тот же запрос с одинаковыми параметрами в консоле и СКД выдает разные результаты? |
|||
1
mehfk
10.03.17
✎
23:15
|
Берешь портативные инструменты разработчика, делаешь отчет в консоли компоновок, запускаешь с отладкой и смотришь реальный запрос.
|
|||
2
mehfk
10.03.17
✎
23:16
|
НУ и собственно ответ: потому что реальные запросы разные.
|
|||
3
first_may
10.03.17
✎
23:26
|
(2) почему разные? тектс запроса один и тот же.
|
|||
4
h-sp
10.03.17
✎
23:29
|
(3) нет, текст запроса в скд другой
|
|||
5
mistеr
10.03.17
✎
23:30
|
(0) Проблема здесь:
РегистрНакопления.ТоварыНаСкладах.Остатки(КОНЕЦПЕРИОДА(&Период, ДЕНЬ) СКД плюет на твои параметры виртуальных таблиц и ставит свои. |
|||
6
mehfk
10.03.17
✎
23:31
|
(3) ты (1) проделал?
|
|||
7
youalex
10.03.17
✎
23:51
|
(0) >почему один и тот же запрос с одинаковыми параметрами в консоле и СКД выдает разные результаты?
как минимум, потому что консоль, а не консоля. |
|||
8
first_may
10.03.17
✎
23:54
|
(5) надо вместо &Период и &ПериодСрез надо делать допустим &Дата1 и &Дата2?
|
|||
9
mehfk
10.03.17
✎
23:55
|
В СКД есть свои параметры. Специальные. В книжке по СКД можно найти более подробную информацию.
|
|||
10
h-sp
11.03.17
✎
00:00
|
(8) возьми их в фигурные скобки
|
|||
11
first_may
11.03.17
✎
07:00
|
(9) да,я знаю что Период это свой параметр. Но ПериодСрез этот же не стандартный. А остатки на эту дату почему то не берутся.
(10) попробую. |
|||
12
first_may
11.03.17
✎
07:15
|
Заменил параметры и написал так
РегистрНакопления.ТоварыНаСкладах.Остатки(КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ), СерияНоменклатуры.СрокГодности <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ тзКоличествоСимволов100 КАК тзКоличествоСимволов100 ПО (ТоварыНаСкладахОстатки.СерияНоменклатуры.СерийныйНомер ПОДОБНО тзКоличествоСимволов100.Симв) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&ДатаОтчета, ДЕНЬ), ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(КОНЕЦПЕРИОДА(&ДатаСравнения, ДЕНЬ), СерияНоменклатуры.СрокГодности <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) КАК ТоварыНаСкладахОстаткиСрез ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&ДатаСравнения, ДЕНЬ), ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследнихСрез ПО ТоварыНаСкладахОстаткиСрез.Номенклатура = ЦеныНоменклатурыСрезПоследнихСрез.Номенклатура И ТоварыНаСкладахОстаткиСрез.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследнихСрез.ХарактеристикаНоменклатуры ПО ТоварыНаСкладахОстатки.Склад = ТоварыНаСкладахОстаткиСрез.Склад И ТоварыНаСкладахОстатки.Номенклатура = ТоварыНаСкладахОстаткиСрез.Номенклатура И ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстаткиСрез.ХарактеристикаНоменклатуры И ТоварыНаСкладахОстатки.СерияНоменклатуры = ТоварыНаСкладахОстаткиСрез.СерияНоменклатуры Г Получилось то, что хотел. Спасибо всем. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |