Вопрос по СКД #740833


#0 by alexmobile
Помогите разобраться Вот текст запроса ВЫБРАТЬ     ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Сделка,     ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Сделка.Ответственный КАК Менеджер,     ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Сделка.СуммаДокумента КАК СуммаЗаказ,             (ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОбороты.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер Во вложенном запросе собираются записи со всего регистра, так и есть если запустить запрос не через СКД. Через СКД на вложенный запрос накладываются ограничения по периоду, как и в выборке по остаткам и оборотам.
#1 by alexmobile
конфа УТ 10
#2 by Вася Чез
а в чем помочь разобраться?
#3 by alexmobile
почему в режиме СКД накладываются ограничения по периоду на вложенный запрос, если я явно этого не указываю.
#4 by Вася Чез
может в настройках на вкладке "Параметры" задан период?
#5 by alexmobile
да задан. во вложенном запросе параметры не используются
#6 by alexmobile
ВЫБРАТЬ     ОстаткиИОбороты.Сделка,             (Обороты.Регистратор ССЫЛКА Документ.ПриходныйКассовыйОрдер Убрал лишнее чтобы читалось проще
#7 by Вася Чез
ну судя по коду вложенный запрос выполняется для каждой строки внешнего запроса, поэтому и есть период
#8 by LordCMEPTb
СКД сама добавляет в параметры виртуальной таблицы оборотов параметры "НачалоПериода" и "КонецПериода", а потому для таких ситуаций можно использовать костыль: добавить параметры виртуальной таблицы и заполнить их такими значениями, чтобы охватывался весь период (1980-3999 гг). Добавить параметры можно либо в кострукторе запроса на закладке "Построитель" для виртуальной таблицы, либо в самом тексте "РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты((&ОченьНачалоПериода),(&ОченьКонецПериода) , Регистратор, )"
#9 by anaed
датавремя(1,1,1) попробуй использовать в датах вложенных запросов
#10 by alexmobile
Нет. Пробовал вложенный формировать во временную таблицу. Результат тот-же
#11 by LordCMEPTb
ну всмысле через фигурные скобки РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Обороты(({&ОченьНачалоПериода}),({&ОченьКонецПериода}) , Регистратор, )
#12 by alexmobile
помогло
#13 by Вася Чез
а что нет другого решения, кроме этого жуткого костыля?
#14 by alexmobile
Обороты({(ДАТАВРЕМЯ(1, 1, 1)) КАК Поле2}, {(ДАТАВРЕМЯ(1, 1, 1)) КАК Поле2}, Регистратор, ) все записи стали попадать. но есть еще другая проблема, если запись из вложенного запроса попадает в период верхнего запроса, то она создает дублирующую строку.
#15 by LordCMEPTb
СКД - система для быстрого проектирования отчета, она как МТС, на шаг впереди.. вот только она не учитывает, что впереди может быть пропасть..
#16 by alexmobile
я 2 часа убил, не нашел.
#17 by alexmobile
+ хотя явно указано левое соединение
#18 by LordCMEPTb
а детальные записи по сделке уникальные или возможны дубли? Судя по соединению такое возможно, если какая-то запись разбита на несколько
#19 by alexmobile
да, косяк. детальные записи неуникальны. спасибо всем.
#20 by GenAcid
Правильное решение - снять галку "автозаполнение" в СКД и заполнить закладку "компоновка данных" в запросе или текстом явно описать нужные поля и отборы.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С