Вход | Регистрация


Количество() в СКД

Количество() в СКД
Я
   Альбатрос
 
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) Да, точно есть. На той же схеме сделал из этой таблицы выборку, записи есть.
Опять же повторюсь, в консоли все отрабатывает на ура.
   Tonik992
 
8 - 02.07.18 - 11:05
Вы пишите:
Отладчиком смотрю ТЧ, там одна строка(отбор накладываю) поля заполнены, а КоличествоДнейСОстатком = неопределено

Поэтому вам надо отладчиком посмотреть, что в МакетКомпоновкиДанных. Посмотрите, как выглядит результирующий запрос, возможно СКД формирует условия не так, как вы ожидаете.
   Малыш Джон
 
9 - 02.07.18 - 11:06
(7) если в консоли один результат, а в СКД другой, значит или параметры разные, или СКД текст запроса меняет.
первое - можно в отладке посмотреть
второе - через консоль СКД посмотреть
   Альбатрос
 
10 - 02.07.18 - 11:10
(8) (9) Решил тем, что поместил во временную таблицу, а из нее сделал выборку.
 
 Рекламное место пустует
   Tonik992
 
11 - 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) значит СКД твой первоначальный запрос "оптимизировала")
   Tonik992
 
15 - 02.07.18 - 11:25
(14) ага. Поэтому надо (9) способ пробовать.
   Tonik992
 
16 - 02.07.18 - 11:28
А то малость говнокод получается
   Альбатрос
 
17 - 02.07.18 - 11:34
(14) По-любому, время поджимает, сделаю пока в таком варианте, потом буду СКД курить. Всем спасибо!
   Ненавижу 1С
 
18 - 02.07.18 - 11:35
(3) тогда будет 0
   Малыш Джон
 
19 - 02.07.18 - 11:55
(18) да, для количества 0 будет.
Просто сталкивался с максимумом, поэтому и запомнил, что Null.
   Малыш Джон
 
20 - 02.07.18 - 11:56
И ещё момент: так происходит когда есть группировка, но нет полей, по которым группируют, т.е. явно не случай из (0)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует