Имя: Пароль:
1C
1С v8
Запрос в консоли показывает верные цифры, а отчет в СКД совсем другие (УТ 11)
0 moonq4
 
06.06.16
12:47
Всем привет.
В УТ 11 нужно получить информацию по незакрытым заказам - для этого по виртуальной таблице РегистрНакопления.ЗаказыКлиентов.Обороты беру Заказы.ЗаказаноОборот - в консоле показывает верные данные, за прошлый месяц лишь несколько заказов до сих пор не отгружены, по ним Заказы.ЗаказаноОборот>0.
Если этот запрос оформляю в виде отчета на СКД - результат меняется, туда упорно попадают заказы уже закрытые (но не все, а лишь некоторые, понять по какому принципу они туда попадают не получается).
Кто-нибудь сталкивался с ситуацией, когда один и тот же запрос в консоле отрабатывается верно, а в СКД нет?
1 moonq4
 
06.06.16
12:53
https://dropmefiles.com/oSSJM - скрин закрытого заказа, который упорно попадает в СКД (а в консоле его нет, что правильно)
2 Mort
 
06.06.16
12:55
Условие типа "Заказы.ЗаказаноОборот>0" это такая веселая штука, которая меняет результат в зависимости от состава выбранных полей.

В скд наверняка автополя на первой закладке?
3 moonq4
 
06.06.16
12:59
Условия "Заказы.ЗаказаноОборот>0" в запросе нет, там просто берется оборот. Если заказ закрыт и оборот = 0, то такие строки не попадают в результат запроса.
Да, на первой закладке стоит Автозаполнение
4 aleks_default
 
06.06.16
13:02
проверь одинаковость параметров периода
5 moonq4
 
06.06.16
13:02
Запрос простенький, почти такой:
ВЫБРАТЬ
    ЗаказыКлиентовОбороты.ЗаказКлиента КАК ЗаказКлиента,
    ЗаказыКлиентовОбороты.Номенклатура КАК Номенклатура,
    ЗаказыКлиентовОбороты.ЗаказаноОборот КАК ЗаказаноОборот
ИЗ
    РегистрНакопления.ЗаказыКлиентов.Обороты(, , , ) КАК ЗаказыКлиентовОбороты

Единственно, там в реале чуть больше полей и некоторые условия, наложенные на виртуальную таблицу
6 moonq4
 
06.06.16
13:03
Отбор по периоду записей не стоит. Есть отбор по некоторому внутреннему реквизиту типа Дата из ЗаказКлиента
7 LordCMEPTb
 
06.06.16
13:04
Проанализировать запрос, который уже в макете компоновки, не предлагать?
8 moonq4
 
06.06.16
13:05
ИЗ
    РегистрНакопления.ЗаказыКлиентов.Обороты(, , , ЗаказКлиента.ДатаОтгрузки МЕЖДУ &ДатаНачала и &ДатаОкончания) КАК ЗаказыКлиентовОбороты
9 moonq4
 
06.06.16
13:06
(7) предлагать )))
т.е. в модуле отчета расписать все и через отладчик посмотреть текст запроса? или?
10 LordCMEPTb
 
06.06.16
13:22
(9) Можно в модуле расписать, можно воспользоваться консолью отчетов. Суть в том, что надо получить запрос, который исполняется, а он живет в макете компоновки после выполнения действий компоновщика макета.
11 moonq4
 
06.06.16
13:26
(7) Спасибо! Кажется, проблема решена. По крайней мере появился свет в конце тоннеля ))))
СКД меняет запрос, добавляя, все-таки, отбор по дате:
ИЗ
    РегистрНакопления.ЗаказыКлиентов.Обороты(
            &П,
            &П2,
12 moonq4
 
06.06.16
14:38
Хм, проблема осталась. Добавил в параметры период:
ИЗ
    РегистрНакопления.ЗаказыКлиентов.Обороты(
            &Дата1,
            &Дата2,

которые определяю на закладке Параметры как ДОБАВИТЬКДАТЕ(&НачалоПериода, "МЕСЯЦ", -3) и ДОБАВИТЬКДАТЕ(&КонецПериода, "МЕСЯЦ", 3) соответственно.

Далее смотрю через отладчик, какой запрос у него в макете компоновки - там появились 2 параметра, которые рассчитываются правильно, но при этом в тексте запроса по-прежнему
ИЗ
    РегистрНакопления.ЗаказыКлиентов.Обороты(
            &П,
            &П2,
13 moonq4
 
06.06.16
14:55
Нашел ответ на свой вопрос: "в запросе в виртуальных таблицах не используются стандартные параметры периодов &Период, &НачалоПериода, &КонецПериода, от них нужно полностью отказаться в запросе и использовать свои параметры."
14 Sabbath
 
06.06.16
15:31
(12) так сделай

РегистрНакопления.ЗаказыКлиентов.Обороты(
            {&Дата1},
            {&Дата2},
15 moonq4
 
06.06.16
16:00
(14) я уже изменил названия параметров - все теперь ок.
А фигурные скобки что делают?