|
Количество() в СКД | ☑ | ||
---|---|---|---|---|
0
Альбатрос
02.07.18
✎
10:27
|
Кусок запроса из СКД
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаЕжедневныхОстатков.Номенклатура, ТаблицаЕжедневныхОстатков.Поставщик, ТаблицаЕжедневныхОстатков.ДатаГрафика, ТаблицаЕжедневныхОстатков.Количество ПОМЕСТИТЬ ТаблицаОстатков ИЗ ТаблицаЕжедневныхОстатков КАК ТаблицаЕжедневныхОстатков ГДЕ ТаблицаЕжедневныхОстатков.Количество <> 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТаблицаОстатков.Номенклатура, КОЛИЧЕСТВО(ТаблицаОстатков.ДатаГрафика) КАК КоличествоДнейСОстатком, ТаблицаОстатков.Поставщик ИЗ ТаблицаОстатков КАК ТаблицаОстатков СГРУППИРОВАТЬ ПО ТаблицаОстатков.Номенклатура, ТаблицаОстатков.Поставщик КоличествоДнейСОстатком в итоге равно NULL, в консоли запросов все отрабатывает правильно. Что не так? |
|||
1
Ненавижу 1С
гуру
02.07.18
✎
10:29
|
неправда, функция КОЛИЧЕСТВО не может давать значение NULL
|
|||
2
Альбатрос
02.07.18
✎
10:31
|
(1) Стоит уточнить, что я получаю результат программно:
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаСКД,ОтборСКД.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиДанных);ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЧ= ПроцессорВывода.Вывести(ПроцессорКомпоновки); //ЭтаОбработка.ТЧДокументов.Загрузить(ТЧ); ЗначениеВРеквизитФормы(ЭтаОбработка, "Объект"); Отладчиком смотрю ТЧ, там одна строка(отбор накладываю) поля заполнены, а КоличествоДнейСОстатком = неопределено |
|||
3
Малыш Джон
02.07.18
✎
10:41
|
(1) может-может)
если строк таблице нет, а группировка есть, то добавляется строка как раз-таки с Null'ем. |
|||
4
Альбатрос
02.07.18
✎
10:44
|
(3) Но строки то в таблице есть
|
|||
5
Альбатрос
02.07.18
✎
10:55
|
Бл*, голову уже сломал)))) ап
|
|||
6
Малыш Джон
02.07.18
✎
10:57
|
(4) именно в ТаблицеОстатков есть строки?
|
|||
7
Альбатрос
02.07.18
✎
10:59
|
(6) Да, точно есть. На той же схеме сделал из этой таблицы выборку, записи есть.
Опять же повторюсь, в консоли все отрабатывает на ура. |
|||
8
Tonik992
02.07.18
✎
11:05
|
Вы пишите:
Отладчиком смотрю ТЧ, там одна строка(отбор накладываю) поля заполнены, а КоличествоДнейСОстатком = неопределено Поэтому вам надо отладчиком посмотреть, что в МакетКомпоновкиДанных. Посмотрите, как выглядит результирующий запрос, возможно СКД формирует условия не так, как вы ожидаете. |
|||
9
Малыш Джон
02.07.18
✎
11:06
|
(7) если в консоли один результат, а в СКД другой, значит или параметры разные, или СКД текст запроса меняет.
первое - можно в отладке посмотреть второе - через консоль СКД посмотреть |
|||
10
Альбатрос
02.07.18
✎
11:10
|
(8) (9) Решил тем, что поместил во временную таблицу, а из нее сделал выборку.
|
|||
11
Tonik992
02.07.18
✎
11:14
|
(10) это как? Избавились от СКД?
|
|||
12
Альбатрос
02.07.18
✎
11:19
|
(11) Вот так :)
ВЫБРАТЬ ТаблицаОстатков.Номенклатура, КОЛИЧЕСТВО(ТаблицаОстатков.ДатаГрафика) КАК КоличествоДнейСОстатком, ТаблицаОстатков.Поставщик ПОМЕСТИТЬ Конечная ИЗ ТаблицаОстатков КАК ТаблицаОстатков СГРУППИРОВАТЬ ПО ТаблицаОстатков.Номенклатура, ТаблицаОстатков.Поставщик ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Конечная.Номенклатура, Конечная.КоличествоДнейСОстатком, Конечная.Поставщик, |
|||
13
Альбатрос
02.07.18
✎
11:20
|
+(12) Это в запросе СКД
|
|||
14
Малыш Джон
02.07.18
✎
11:24
|
(13) значит СКД твой первоначальный запрос "оптимизировала")
|
|||
15
Tonik992
02.07.18
✎
11:25
|
(14) ага. Поэтому надо (9) способ пробовать.
|
|||
16
Tonik992
02.07.18
✎
11:28
|
А то малость говнокод получается
|
|||
17
Альбатрос
02.07.18
✎
11:34
|
(14) По-любому, время поджимает, сделаю пока в таком варианте, потом буду СКД курить. Всем спасибо!
|
|||
18
Ненавижу 1С
гуру
02.07.18
✎
11:35
|
(3) тогда будет 0
|
|||
19
Малыш Джон
02.07.18
✎
11:55
|
(18) да, для количества 0 будет.
Просто сталкивался с максимумом, поэтому и запомнил, что Null. |
|||
20
Малыш Джон
02.07.18
✎
11:56
|
И ещё момент: так происходит когда есть группировка, но нет полей, по которым группируют, т.е. явно не случай из (0)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |