Имя: Пароль:
1C
1С v8
Отчет на скд
,
0 pedagog
 
17.08.15
14:55
Есть отчет на СКД, который получает остатки по регистру накопления. нужно добавить возможность не учитывать в этом отчете некоторые реализации. я добавила реквизит типа список значений, в котором указываю список реализаций, которые не должны влиять на отчет, передаю его как параметр в скд. и все вроде правильно работает, только вот если указать в отборе "номенклатура в группе", то он берет позиции из этой группы плюс все позиции из доков реализаций. не могу понять, почему не отбирает номенклатуру по группе. подскажите.
1 pedagog
 
17.08.15
14:57
Реализация - это один из регистраторов в этом регистре накопления
2 GreatOne
 
17.08.15
14:59
лучше пока запрос
3 GreatOne
 
17.08.15
15:00
"то он берет позиции из этой группы плюс все позиции из доков реализаций"
вы явно что-то не понимаете. Почему именно все позиции из реализаций? Почему не из ПТиУ?
4 GreatOne
 
17.08.15
15:01
(2) покажите**
5 pedagog
 
17.08.15
15:02
ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    ВложенныйЗапрос.Партия,
    ВложенныйЗапрос.Склад,
    СУММА(ВложенныйЗапрос.КоличествоОстаток) КАК КоличествоОстаток
ИЗ
    (ВЫБРАТЬ
        ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
        ТоварыНаСкладахОстатки.Номенклатура.Партия КАК Партия,
        ТоварыНаСкладахОстатки.Склад КАК Склад,
        ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
    ИЗ
        РегистрНакопления.ТоварыНаСкладах.Остатки(&КонецПериода, ) КАК ТоварыНаСкладахОстатки
    ГДЕ
        ТоварыНаСкладахОстатки.Номенклатура.ЭтоГруппа = ЛОЖЬ
        И ТоварыНаСкладахОстатки.КоличествоОстаток > 0
        И НЕ ТоварыНаСкладахОстатки.Номенклатура В
                    (ВЫБРАТЬ
                        РегистрНакопления.Продажи.Обороты.Номенклатура
                    ИЗ
                        РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Период, ))
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ТоварыНаСкладах1.Номенклатура,
        ТоварыНаСкладах1.Номенклатура.Партия,
        ТоварыНаСкладах1.Склад,
        ТоварыНаСкладах1.Количество
    ИЗ
        РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах1
    ГДЕ
        ТоварыНаСкладах1.Регистратор В(&Реализация)) КАК ВложенныйЗапрос
ГДЕ
    ВложенныйЗапрос.КоличествоОстаток > 0

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Партия,
    ВложенныйЗапрос.Склад
6 pedagog
 
17.08.15
15:04
ПТиУ? это что?
7 GreatOne
 
17.08.15
15:06
смысл отчета в том, чтобы выбрать остатки товара, который никогда не продавался, или что?
8 pedagog
 
17.08.15
15:09
смысл отчета: получить остатки товара, за исключением некоторых реализаций, которые делают движения по данному регистру со знаком минус.
9 pedagog
 
17.08.15
15:09
и все работает, за исключением отбора по группе номенклатуры
10 GreatOne
 
17.08.15
15:18
(8) ничего подобного я здесь не вижу=)
ваш запрос лучше через параметры вирт. таблиц делать

ВЫБРАТЬ
    ПродажиОбороты.Номенклатура
ПОМЕСТИТЬ ВТ_ИсключающиеТовары
ИЗ
    РегистрНакопления.Продажи.Обороты(&нач, &кон, , ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            ,
            НЕ Номенклатура В
                    (ВЫБРАТЬ
                        ВТ_ИсключающиеТовары.Номенклатура
                    ИЗ
                        ВТ_ИсключающиеТовары)) КАК ТоварыНаСкладахОстатки

ОБЪЕДИНИТЬ ВСЕ

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

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТ_ИсключающиеТовары
11 pedagog
 
18.08.15
15:03
Спасибо, все заработало.