Имя: Пароль:
1C
 
Интересный глюк запроса. Как обойти без ВТ?
,
0 stopa85
 
27.12.17
09:56
Запрос
ВЫБРАТЬ
Документ,
СУММА(КоличествоОстаток)
ИЗ
РегистрНакопления.ТоварыКВыдачеСоСклада.Остатки
СГРУППИРОВАТЬ ПО
Документ

Возвращает пустой результат

При этом запрос

ВЫБРАТЬ
*
ИЗ
РегистрНакопления.ТоварыКВыдачеСоСклада.Остатки

возвращает
Основной склад    Расходная накладная 0000000004 от 26.12.2017 17:36:54    04 Пл. ОРАДЖЕТ 3640-00М  1,00х50м прозр.матов.    1,000
Основной склад    Расходная накладная 0000000004 от 26.12.2017 17:36:54    Пл. монтажн. МТ-95 (1,00х50м) без подложки    -1,000

Конфигурация самописака на базе БСП. Платформа 8.3.10.2699

Нужно для динамического списка без возможности использования ВТ
1 PolarBear
 
27.12.17
09:59
Это глюк?! Ха.
2 stopa85
 
27.12.17
10:00
(1) Это фишка? Она еще может в доке описана (я серьезно)?
3 Mankubus
 
27.12.17
10:01
(0) >>Платформа 8.3.10.2699
разве там еще нельзя временные таблицы использовать? вложенный запрос еще есть
4 stopa85
 
27.12.17
10:02
(3) Режим совместимости менять нужно. Не известно к чему это еще приведет, да и не факт что мне поможет
5 patapum
 
27.12.17
10:05
(0) добавить поле СУММА(ВЫБОР КОГДА КоличествоОстаток >=0 ТОГДА КоличествоОстаток ИНАЧЕ -КоличествоОстаток) и не выводить его не поможет?
6 Гипервизор
 
27.12.17
10:05
А если без группировки?
7 stopa85
 
27.12.17
10:07
(5) тоже не прокатывает (6) - тогда норм
(3) Точно!
8 stopa85
 
27.12.17
10:08
Вот так прокатило:

ВЫБРАТЬ
    Документ,
    СУММА(КоличествоОстаток) КАК КоличествоОстаток
ИЗ
(
    ВЫБРАТЬ
        *
    ИЗ
        РегистрНакопления.ТоварыКВыдачеСоСклада.Остатки
) КАК ИсточникДанных
СГРУППИРОВАТЬ ПО
    Документ
9 ptiz
 
27.12.17
10:08
(0) Добавь условие ГДЕ Номенклатура <> НЕОПРЕДЕЛЕНО
10 stopa85
 
27.12.17
10:09
Три дня уже туплю. Даже "стенд" уже собрал себе.
(9) тоже прокатывает)))
11 ptiz
 
27.12.17
10:12
И это не глюк, а фиче. Курите мануалы про виртуальные таблицы.
12 Borteg
 
27.12.17
10:16
(0) Основной склад    Расходная накладная 0000000004 от 26.12.2017 17:36:54    04 Пл. ОРАДЖЕТ 3640-00М  1,00х50м прозр.матов.    1,000
Основной склад    Расходная накладная 0000000004 от 26.12.2017 17:36:54    Пл. монтажн. МТ-95 (1,00х50м) без подложки    -1,000
1+ -1 = 0, где глюк то? в виртуальной таблице не вернет ничего.
13 stopa85
 
27.12.17
10:17
(12) нет там номенклатура разная. Одна штука и минус_одна штука.
04 Пл. ОРАДЖЕТ 3640-00М 1шт
Пл. монтажн. МТ-95  -1шт
14 Borteg
 
27.12.17
10:18
(13) ВЫБРАТЬ
Документ,
СУММА(КоличествоОстаток)
ИЗ
РегистрНакопления.ТоварыКВыдачеСоСклада.Остатки
СГРУППИРОВАТЬ ПО
Документ  где в этом запросе номенклатура?
15 Borteg
 
27.12.17
10:18
(13) документ и остаток
16 Hans
 
27.12.17
10:23
(0) Это не глюк.
17 Ненавижу 1С
 
гуру
27.12.17
10:24
такой запрос тоже будет пустой

ВЫБРАТЬ
Документ,
КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыКВыдачеСоСклада.Остатки

это особенности виртуальных таблиц регистров накопления
они сами группируют и если ресурсы нулевые - выкидывают
18 Dmitrii
 
гуру
27.12.17
10:28
(0) Абсолютно верно работает платформа.
(2) >> Она еще может в доке описана (я серьезно)?
Да. Описана. Согласно документации:

РегистрНакопления.<Имя регистра>.Остатки
Описание:
Предназначена для получения остатков по регистру накопления. Данные представляют собой итоги ресурсов.
Агрегация производится по измерениям указанным(!!!) в запросе.

То есть в твоем случае агрегация по измерению Документ даёт 0 (-1 + 1 = 0).

Если речь о запросе для динамического списка и необходимо выводить данные без группировки по одному из измерений, то можно попробовать в запросе для динамического списка перечислить все измерения (а не только те, что нужны). На форму вывести только те поля, которые нужны (Документ). Но при этом в настройках основного реквизита формы "Список" указать у поля "Номенклатура" флажок "Использовать всегда".

Надо пробовать. Это моё предположение.
19 stopa85
 
27.12.17
10:33
(18) Да, ребята, я понял свой косяк(

Не то чтобы я документацию не читал, но делал это очень давно, когда 8.1 еше была... не помню такой фишки...

Всем спасибо))
2 + 2 = 3.9999999999999999999999999999999...