Имя: Пароль:
1C
 
Количество() в СКД
,
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)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан