Имя: Пароль:
1C
 
Вроде бы простой запрос, а результат не правильный :)
0 Полька
 
27.05.16
09:08
Запрос.Текст=  "ВЫБРАТЬ
  |    _ГрСд.Номенклатура,
  |    _ГрСД.КоличествоСдачи КАК КоличествоПлан,
  |    _ГрСд.КоличествоСдачи * _ГрСд.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК ОбъемПлан,
  |    0 КАК КоличествоФакт,
  |    0 КАК ОбъемФакт
  |ИЗ
  |    РегистрНакопления._ГрСд КАК _ГрСд                 |ГДЕ
  |    _ГрСд.Сценарий В(&Сценарии)
  |    И _ГрСд.ДатаПланирования МЕЖДУ &ДатаНач И &ДатаКон
  |    И _ГрСд.ДатаСдачи МЕЖДУ &ДатаНач И &ДатаКон
  |
  |ОБЪЕДИНИТЬ
  |
  |ВЫБРАТЬ
  |    ТоварыНаСкладах.Номенклатура,
  |    0,
  |    0,
  |    ТоварыНаСкладах.Количество,
  |    ТоварыНаСкладах.Количество * ТоварыНаСкладах.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
  |ИЗ
  |    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
  |ГДЕ
  |    ТоварыНаСкладах.Качество = &КачествоНовый
  |    И ТоварыНаСкладах.Склад = &Склад
  |    И ТоварыНаСкладах.Период МЕЖДУ &ДатаНач И &ДатаКон
  |    И ТоварыНаСкладах.ВидДвижения = &ВидДвижения
  |    И ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
  |    И ТоварыНаСкладах.Регистратор.СкладОтправитель В ИЕРАРХИИ(&СкладОтправитель)";
По отдельности каждый запрос отрабатывает правильно. Как только объединяю- выводит ерунду. Не правильные суммы по номенклатуре.
Что не так?
1 Cyberhawk
 
27.05.16
09:09
Ты ж не группируешь ничего, поэтому разницы между "по отдельности" и "вместе" быть не может
2 Cyberhawk
 
27.05.16
09:10
Где сравниваешь результаты? Только в консоли запросов? Или большой запрос уже в отладке смотришь?
3 1Сергей
 
27.05.16
09:10
Отличное наименование у регистра!
4 Полька
 
27.05.16
09:16
(3) название отличное. сократила, чтобы в окошко влезло :) (1) увы :(
(2) в отладчике смотрю.
5 1Сергей
 
27.05.16
09:18
(4) АНуТгПнт
6 Полька
 
27.05.16
09:20
Если каждый запрос делаю по отдельности, то кол-во записей в результате 4327+2651
А если все вместе, то всего лишь 3707
7 Nuobu
 
27.05.16
09:22
(6) Параметры те?
8 Полька
 
27.05.16
09:25
(7)конечно
9 1Сергей
 
27.05.16
09:26
(8) не верим. или запрос чуть-чуть не такой, или параметры чуть-чуть не такие. Как вариант, КонецДня(ДатаКон)
10 Полька
 
27.05.16
09:30
(9)     Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаОкончания));    
сама не верю :(
запрос один. просто комментирую то одну, то другую половину.
11 Optan
 
27.05.16
09:30
Может быть у тебя есть позиции товаров у которых в регистрах есть записи с нулевыми значениями КоличествоПлан и ОбъемПлан+КоличествоФакт и Объем факт.
ОБЪЕДИНИТЬ группирует повторяющиеся строки.
Сколько записей показывает у объединенного запроса с конструкцией ОБЪЕДИНИТЬ ВСЁ ?
12 Полька
 
27.05.16
09:32
(11) по отдельности  4327 и 2651
все вместе 3707
13 Optan
 
27.05.16
09:34
(12) Разницы по количеству записей между ОБЪЕДИНИТЬ и ОБЪЕДИНИТЬ ВСЁ у тебя нет???
14 grate
 
27.05.16
09:34
(12) Сколько строк выводит запрос с "ОБЪЕДИНИТЬ", а сколько с "ОБЪЕДИНИТЬ ВСЕ"?
15 Полька
 
27.05.16
09:43
в общем, закомментировала я этот запрос весь.
разбила на 2. прокрутила.
потом закомментировала 2 запроса и раскомментировала предыдущий. и все нормально
и что это было??????
16 Полька
 
27.05.16
09:44
и да, ОБЪЕДИНИТЬ поменяла на ОБЪЕДИНИТЬ ВСЕ
17 Optan
 
27.05.16
09:46
(15) Ну ОБЪЕДИНИТЬ у тебя группировал дублирующиеся строки в 1 строку. А ОБЪЕДИНИТЬ ВСЁ выводит именно ВСЁ и дубли строк тоже.
18 Полька
 
27.05.16
09:51
(17) ну так вроде группировка то должна была количественные показатели сложить?
19 catena
 
27.05.16
10:01
(18)Кто сказал? Почему именно количественные? Почему сложить, а не взять среднее?
20 dmpl
 
27.05.16
10:04
(18) Зачем сложить? Нет, конечно. Она просто берет первый набор и дополняет его вторым набором без дублирования (отбрасывает полностью одинаковые записи).
Ошибка? Это не ошибка, это системная функция.