Имя: Пароль:
1C
1С v8
Проблема с запросом
0 held88
 
22.04.15
08:00
Добрый день!

Отчет делают через СКД

такой запрос схемы компоновки данных

ВЫБРАТЬ
    ВидыНоменклатуры.Родитель КАК Родитель,
    ВидыНоменклатуры.Ссылка КАК Номенклатура,
    ВложенныйЗапрос.Склад КАК Склад,
    ВложенныйЗапрос.Остаток КАК Остаток,
    0 КАК РеализацияСНачалаГода,
    0 КАК РеализацияЗаПериод
ИЗ
    Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ТиповойОстатки.Субконто1.ВидНоменклатуры КАК Номенклатура,
            ТиповойОстатки.Субконто2 КАК Склад,
            ТиповойОстатки.КоличествоОстаток КАК Остаток
        ИЗ
            РегистрБухгалтерии.Типовой.Остатки(&КонецПериода0, , , ) КАК ТиповойОстатки
        ГДЕ
            ТиповойОстатки.Счет = &Счет) КАК ВложенныйЗапрос
        ПО ВидыНоменклатуры.Ссылка = ВложенныйЗапрос.Номенклатура
ГДЕ
    ВидыНоменклатуры.ГруппаТМЗ = &ГруппаТМЗ

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

ВЫБРАТЬ
    РеализацияТМЗОбороты.Номенклатура.ВидНоменклатуры.Родитель,
    РеализацияТМЗОбороты.Номенклатура.ВидНоменклатуры,
    РеализацияТМЗОбороты.Склад,
    0,
    РеализацияТМЗОбороты.КоличествоОборот,
    0
ИЗ
    РегистрНакопления.РеализацияТМЗ.Обороты(НАЧАЛОПЕРИОДА(&НачалоПериода0, ГОД), &КонецПериода0, , ) КАК РеализацияТМЗОбороты
ГДЕ
    РеализацияТМЗОбороты.СчетУчета = &Счет

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

ВЫБРАТЬ
    РеализацияТМЗОбороты.Номенклатура.ВидНоменклатуры.Родитель,
    РеализацияТМЗОбороты.Номенклатура.ВидНоменклатуры,
    РеализацияТМЗОбороты.Склад,
    0,
    0,
    РеализацияТМЗОбороты.КоличествоОборот
ИЗ
    РегистрНакопления.РеализацияТМЗ.Обороты(&НачалоПериода0, &КонецПериода0, , ) КАК РеализацияТМЗОбороты
ГДЕ
    РеализацияТМЗОбороты.СчетУчета = &Счет

УПОРЯДОЧИТЬ ПО
    Номенклатура

Почему в поле 0 РеализацияСНачалаГода, РеализацияЗаПериод возвращается одно и тоже число???
1 anaed
 
22.04.15
08:08
а в параметре началопериода0 случайно не начало года? :)
2 asady
 
22.04.15
08:16
(0)
1. Параметр запроса Счет в ПВТ засунь
2. открой для себя конструкцию ВЫРАЗИТЬ
3 held88
 
22.04.15
08:22
(2) ПВТ - это??? В таблице в скобочках где условие? Объясните пожалуйста в краце для чего нужна консрукция ВЫРАЗИТЬ???
4 held88
 
22.04.15
08:24
(1) Нет, как раз таки возвращает данные за месяц. СКД возаращает данные за период даже если параметры периодов явно в запросе не задаются. То есть в запросе нет нигде параметра периодов, а он все равно возвращает данные за период. Вот и тут думаю мои параметры переопределяются.
5 asady
 
22.04.15
08:27
(3) ПВТ - параметры виртуальной таблицы
конструкция ВЫРАЗИТЬ(Поле КАК Тип) позволяет убрать лишние таблицы для полей составного типа данных и существенно ускорить запрос.
6 held88
 
22.04.15
08:55
(5) понятно. ускорит запрос - но не решит моей проблемы верно?
7 held88
 
22.04.15
10:00
(6) Ура
Решино
РегистрНакопления.РеализацияТМЗ.Обороты(&НачалоПериода1 {(&НачалоПериода1)}, &КонецПериода0, , СчетУчета = &Счет)

Фигурные скобочки помогли.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.