Имя: Пароль:
1C
1С v8
СКД прячет некоторые строки, имеющиеся в запросе.
,
0 ixilimuse
 
14.04.14
13:41
Всем доброго времени суток.

Что-то не могу понять. Пытался смотреть в интернетах, но как-то не нашел аналогичных ситуаций. Может и плохо искал.

В общем, есть запрос. В Консоли запроса либо через обычные программные методы, запрос возвращает 10 строк. К примеру. 9 документов и +1 документ "Генеральный договор". Собственно у генерального единственное отличие в том что не заполнены некоторые поля. Какие-то равны NULL какие-то пустой строке.

Вот именно эта строка с налами и пустыми значениями не выводится через СКД. Один в один запрос. Одна база. Одни и те же значения параметров. Все одинаково. Но в СКД этой строки нет.

Пробовал в запросе все потенциальные NULL'ы заменить пустыми ссылками, нулями и пустыми строками - не помогло.
Словом все что приходило в голову уже перепробовал. Понимаю что дело в какой-то мелочи. Какой-то галочке или настройке. Но вот в какой уже затрудняюсь предположить.

Буду благодарен если подскажите направление в котором стоит покопаться.
Заранее спасибо.
1 ramir
 
14.04.14
13:42
Запрос через ОБЪЕДЕНИТЬ? Какие группировки выводятся в СКД, детальные записи?
2 ixilimuse
 
14.04.14
13:48
Эмм.. Сам запрос - гигантский. Там куча временных таблиц и расчетов.
Финальная выборка имеет примерно такой вид:
ВЫБРАТЬ
    ДД.Ссылка КАК Ссылка,
    ДД.Тип КАК Тип,
    ДД.ЛьготныйДоговор КАК ЛьготныйДоговор
    //Далее 60 полей... Имеют аналогичный вид. Разве что есть один кейс:
    ВЫБОР
        КОГДА (ДДД.Полис И ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДСП.Генеральный)) ИЛИ (ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДСП.Генеральный) И ДДД.ГенеральныйДоговор <> ДД.Ссылка)
                ИЛИ (ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДСП.Сложный) И ДДД.ГенеральныйДоговор <> ДД.Ссылка) //дебаг
                ИЛИ (ДДД.Полис И ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДВП.ГенеральныйДоговор)) ИЛИ (ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДВП.ГенеральныйДоговор) И ДДД.ГенеральныйДоговор <> ДД.Ссылка)
            ТОГДА 0
        ИНАЧЕ ДД.КоличествоДоговоров
    КОНЕЦ КАК КоличествоДоговоров,    

ИЗ
    ВТ_ПолныйФинал КАК ДД
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Действующие КАК ДДД
        ПО ДДД.Документ = ДД.Ссылка
УПОРЯДОЧИТЬ ПО  
    ДД.ДатаНачисления
;
3 ixilimuse
 
14.04.14
13:55
Прошу прощения. Про группировки забыл отписать. Группировка одна единственная. В ней собственно все поля сидят. В закладке "Выбранные поля" этой группировки, имеются группы, для корректного отображения шапки. Других группировок нет.
4 Пеппи
 
14.04.14
13:58
(0) группировку убери и посмотри попадает ли в детальные записи твой документ
5 ramir
 
14.04.14
13:58
(3) Группировка по каким полям идет? Попробуйте удалить все поля из группировки.
6 ixilimuse
 
14.04.14
14:18
(4) Спасибо, ещё одну фичу СКД узнал)) Отобразил "<Детальные записи>". Документ туда тоже не попал.
(5) Группировка в понимании СКД по всем полям. Но вот даже при выводе "Детальных записей" результат не меняется. Один документ теряется.
7 ixilimuse
 
14.04.14
14:36
Есть подозрение что это может быть как-то связано с промежуточными запросами (временными таблицами и выборками), пустыми полями и условиями. Казалось бы как?
Подозреваю что когда СКД преобразует запрос в свой оптимизированный запрос, где-то что-то и вылазиет))
Попробую в эту сторону покопать. Потом отпишусь.
8 Пеппи
 
14.04.14
14:37
(6) тогда параметры. :)
наверняка этот док провели последним днем периода

(6) а зачем группировать по всем полям? В этом нет смысла
9 ixilimuse
 
14.04.14
14:53
(8) Собственно тоже теперь думаю что надо бы группировку заменить "дет. записями")) Просто в "Выбранных полях" так же выстроить последовательность полей, объединить поля в группы да и все)) Век живи, век учись.
10 ixilimuse
 
15.04.14
08:39
Все верно. В одном из промежуточных запросов, примерно на первой трети пути к результирующему набору данных, используются условия отбирающие по диапазону дат.
У того документа который не выводился, именно эти поля оставались NULL. Так как в этом документе нет данных в таб. части.
Но в моем запросе все было предусмотрено так, что даже если там NULL, то условие отрабатывало нормально. И документ проходил. После преобразования запроса СКДшкой, видимо эта часть условия терялась и уже на том этапе, документ отсеивался.

Поставил заглушку, которая подставляет даты из последнего документа договора, и на том уровне NULL изчез. Документ стал и в СКД выводиться.

Такая вот прикольная задачка оказалась)) Всем спасибо за помощь :)
11 cons74
 
15.04.14
09:26
есть консоль отчетов (от Чистова вроде) где виден преобразованный СКДшкой запрос.