Имя: Пароль:
1C
1С v8
СКД: отбор по счету в запросе
0 Rio3000
 
10.06.14
12:45
конфа бух корп 2.0.58.5
платформа 8.2.19.80

написал в свое время отчет по движению ТМЦ
выводящий информацию по счетам 10, 21, 41, 43
нач остаток, приход, расход, кон остаток.
бухи попросили для прихода и расхода, вывести отдельные клонки "в том числе внут перемещ", тоесть операции со счетом 79.2, которые обычно используются с помощью документов авизо.

попытался реализовать с помощью нескольких полей выражений:

    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоТекущимОперациям)
                И ХозрасчетныйОбороты.СуммаОборотДт > 0
            ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоТекущимОперациям)
                И ХозрасчетныйОбороты.СуммаОборотКт > 0
            ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоТекущимОперациям)
                И ХозрасчетныйОбороты.КоличествоОборотДт > 0
            ТОГДА ХозрасчетныйОбороты.КоличествоОборотДт
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоТекущимОперациям)
                И ХозрасчетныйОбороты.КоличествоОборотКт > 0
            ТОГДА ХозрасчетныйОбороты.КоличествоОборотКт
        ИНАЧЕ 0
    КОНЕЦ


Полный текст запроса:

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

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

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


где я ошибся подскажите пожалуйста
1 Rio3000
 
10.06.14
13:14
все разобрался
надо было сравнивать не Счет, а КорСчет
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший