Имя: Пароль:
1C
1С v8
Как сделать запрос?
0 Uragan_a
 
03.04.14
04:17
Есть запрос:
1 Uragan_a
 
03.04.14
04:17
ВЫБРАТЬ
    СписокОС.ГруппаОС,
    СписокОС.ИнвентарныйНомер,
    СписокОС.ОсновноеСредство,
    СписокОС.ПервоначальнаяСтоимость,
    СписокОС.ОстаточнаяСтоимость,
    СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.ПорядокНалогообложения,
    СписокОС.ДатаВвода,
    СписокОС.АмортизацияОборот КАК АмортизацияОборот,
    СписокОС.АмортизацияНачало,
    СписокОС.АмортизацияКонец,
    СписокОС.ПервоначальнаяСтоимостьКонец,
    СписокОС.ОстаточнаяСтоимостьКонец
ПОМЕСТИТЬ ВТ_СписокОС
ИЗ
    (ВЫБРАТЬ
        ХозрасчетныйОстаткиОС.Субконто1.ГруппаОС КАК ГруппаОС,
        ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер КАК ИнвентарныйНомер,
        ХозрасчетныйОстаткиОС.Субконто1 КАК ОсновноеСредство,
        ХозрасчетныйОстаткиОС.СуммаОстатокДт КАК ПервоначальнаяСтоимость,
        ХозрасчетныйОстаткиАмортизацияНачало.СуммаОстатокКт КАК АмортизацияНачало,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиАмортизацияНачало.СуммаОстатокКт <> 0
                ТОГДА ХозрасчетныйОстаткиОС.СуммаОстатокДт - ХозрасчетныйОстаткиАмортизацияНачало.СуммаОстатокКт
            ИНАЧЕ ХозрасчетныйОстаткиОС.СуммаОстатокДт
        КОНЕЦ КАК ОстаточнаяСтоимость,
        СостоянияОСОрганизацийСрезПоследних.Период КАК ДатаВвода,
        ХозрасчетныйОборотыАмортизации.СуммаОборот КАК АмортизацияОборот,
        ХозрасчетныйОстаткиАмортизацииКонец.СуммаОстатокКт КАК АмортизацияКонец,
        ХозрасчетныйОстаткиОСКонец.СуммаОстатокДт КАК ПервоначальнаяСтоимостьКонец,
        ВЫБОР
            КОГДА ХозрасчетныйОстаткиАмортизацииКонец.СуммаОстатокКт <> 0
                ТОГДА ХозрасчетныйОстаткиОСКонец.СуммаОстатокДт - ХозрасчетныйОстаткиАмортизацииКонец.СуммаОстатокКт
            ИНАЧЕ ХозрасчетныйОстаткиОСКонец.СуммаОстатокДт
        КОНЕЦ КАК ОстаточнаяСтоимостьКонец
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&Счет01), , Организация = &Организация) КАК ХозрасчетныйОстаткиОС
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&Счет02), , Организация = &Организация) КАК ХозрасчетныйОстаткиАмортизацияНачало
            ПО ХозрасчетныйОстаткиОС.Субконто1 = ХозрасчетныйОстаткиАмортизацияНачало.Субконто1
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&Дата, Организация = &Организация) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
            ПО ХозрасчетныйОстаткиОС.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияОСОрганизаций.СрезПоследних(
                    &Дата,
                    Организация = &Организация
                        И Состояние = &ПринятоКУчету) КАК СостоянияОСОрганизацийСрезПоследних
            ПО ХозрасчетныйОстаткиОС.Субконто1 = СостоянияОСОрганизацийСрезПоследних.ОсновноеСредство
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&Дата, &ДатаОкончания, Период, Счет В ИЕРАРХИИ (&Счет02), , Организация = &Организация, , ) КАК ХозрасчетныйОборотыАмортизации
            ПО ХозрасчетныйОстаткиОС.Субконто1 = ХозрасчетныйОборотыАмортизации.Субконто1
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОкончания, Счет В ИЕРАРХИИ (&Счет02), , Организация = &Организация) КАК ХозрасчетныйОстаткиАмортизацииКонец
            ПО ХозрасчетныйОстаткиОС.Субконто1 = ХозрасчетныйОстаткиАмортизацииКонец.Субконто1
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОкончания, Счет В ИЕРАРХИИ (&Счет01), , Организация = &Организация) КАК ХозрасчетныйОстаткиОСКонец
            ПО ХозрасчетныйОстаткиОС.Субконто1 = ХозрасчетныйОстаткиОСКонец.Субконто1) КАК СписокОС
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствам.СрезПоследних(&Дата, Организация = &Организация) КАК СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних
        ПО СписокОС.ОсновноеСредство = СтавкиНалогаНаИмуществоПоОтдельнымОсновнымСредствамСрезПоследних.ОсновноеСредство
;

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

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

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

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

ВЫБРАТЬ
    ВТ_СписокОС.ГруппаОС,
    ВТ_СписокОС.ИнвентарныйНомер,
    ВТ_СписокОС.ОсновноеСредство,
    ВТ_СписокОС.ПервоначальнаяСтоимость,
    ВТ_СписокОС.ОстаточнаяСтоимость,
    ВТ_СписокОС.ПорядокНалогообложения,
    ВТ_СписокОС.ДатаВвода,
    ВТ_СписокОС.АмортизацияНачало,
    ВТ_СписокОС.АмортизацияКонец,
    ВТ_СписокОС.ПервоначальнаяСтоимостьКонец,
    ВТ_СписокОС.ОстаточнаяСтоимостьКонец,
    ВТ_СписокОС.АмортизацияОборот
ИЗ
    ВТ_СписокОС КАК ВТ_СписокОС
ГДЕ
    НЕ ВТ_СписокОС.ГруппаОС В (&СписокГруппОС)
    И ВЫБОР
            КОГДА ГОД(ВТ_СписокОС.ДатаВвода) >= 2013
                ТОГДА ВТ_СписокОС.ГруппаОС В (&ИсключениеГруппОС)
                        И ВТ_СписокОС.ПорядокНалогообложения = &ПорядокНалогообложения
            ИНАЧЕ ВТ_СписокОС.ПорядокНалогообложения = &ПорядокНалогообложения
        КОНЕЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РезультирующаяТаблица.ГруппаОС КАК ГруппаОС,
    РезультирующаяТаблица.ИнвентарныйНомер КАК ИнвентарныйНомер,
    РезультирующаяТаблица.ОсновноеСредство,
    РезультирующаяТаблица.ПервоначальнаяСтоимость КАК ПервоначальнаяСтоимость,
    РезультирующаяТаблица.ОстаточнаяСтоимость КАК ОстаточнаяСтоимость,
    РезультирующаяТаблица.АмортизацияНачало КАК АмортизацияНачало,
    РезультирующаяТаблица.АмортизацияКонец КАК АмортизацияКонец,
    РезультирующаяТаблица.ПервоначальнаяСтоимостьКонец КАК ПервоначальнаяСтоимостьКонец,
    РезультирующаяТаблица.ОстаточнаяСтоимостьКонец КАК ОстаточнаяСтоимостьКонец,
    РезультирующаяТаблица.АмортизацияОборот * -1 КАК АмортизацияОборот
ИЗ
    РезультирующаяТаблица КАК РезультирующаяТаблица

УПОРЯДОЧИТЬ ПО
    РезультирующаяТаблица.ОсновноеСредство.ГруппаОС.Порядок,
    ИнвентарныйНомер
ИТОГИ
    СУММА(ПервоначальнаяСтоимость),
    СУММА(ОстаточнаяСтоимость),
    СУММА(АмортизацияНачало),
    СУММА(АмортизацияКонец),
    СУММА(ПервоначальнаяСтоимостьКонец),
    СУММА(ОстаточнаяСтоимостьКонец),
    СУММА(АмортизацияОборот)
ПО
    ОБЩИЕ,
    ГруппаОС
2 Uragan_a
 
03.04.14
04:18
Лучше просто кусок:


ВЫБРАТЬ
    ХозрасчетныйОстаткиОС.Субконто1.ГруппаОС КАК ГруппаОС,
    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер КАК ИнвентарныйНомер,
    ХозрасчетныйОстаткиОС.Субконто1 КАК ОсновноеСредство,
    ХозрасчетныйОстаткиОС.СуммаОстатокДт КАК ПервоначальнаяСтоимость,
    ХозрасчетныйОстаткиАмортизацияНачало.СуммаОстатокКт КАК АмортизацияНачало,
    ВЫБОР
        КОГДА ХозрасчетныйОстаткиАмортизацияНачало.СуммаОстатокКт <> 0
            ТОГДА ХозрасчетныйОстаткиОС.СуммаОстатокДт - ХозрасчетныйОстаткиАмортизацияНачало.СуммаОстатокКт
        ИНАЧЕ ХозрасчетныйОстаткиОС.СуммаОстатокДт
    КОНЕЦ КАК ОстаточнаяСтоимость,
    СостоянияОСОрганизацийСрезПоследних.Период КАК ДатаВвода,
    ХозрасчетныйОборотыАмортизации.СуммаОборот КАК АмортизацияОборот,
    ХозрасчетныйОстаткиАмортизацииКонец.СуммаОстатокКт КАК АмортизацияКонец,
    ХозрасчетныйОстаткиОСКонец.СуммаОстатокДт КАК ПервоначальнаяСтоимостьКонец,
    ВЫБОР
        КОГДА ХозрасчетныйОстаткиАмортизацииКонец.СуммаОстатокКт <> 0
            ТОГДА ХозрасчетныйОстаткиОСКонец.СуммаОстатокДт - ХозрасчетныйОстаткиАмортизацииКонец.СуммаОстатокКт
        ИНАЧЕ ХозрасчетныйОстаткиОСКонец.СуммаОстатокДт
    КОНЕЦ КАК ОстаточнаяСтоимостьКонец
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&Счет01), , Организация = &Организация) КАК ХозрасчетныйОстаткиОС
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&Счет02), , Организация = &Организация) КАК ХозрасчетныйОстаткиАмортизацияНачало
        ПО ХозрасчетныйОстаткиОС.Субконто1 = ХозрасчетныйОстаткиАмортизацияНачало.Субконто1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&Дата, Организация = &Организация) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
        ПО ХозрасчетныйОстаткиОС.Субконто1 = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияОСОрганизаций.СрезПоследних(
                &Дата,
                Организация = &Организация
                    И Состояние = &ПринятоКУчету) КАК СостоянияОСОрганизацийСрезПоследних
        ПО ХозрасчетныйОстаткиОС.Субконто1 = СостоянияОСОрганизацийСрезПоследних.ОсновноеСредство
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&Дата, &ДатаОкончания, Период, Счет В ИЕРАРХИИ (&Счет02), , Организация = &Организация, , ) КАК ХозрасчетныйОборотыАмортизации
        ПО ХозрасчетныйОстаткиОС.Субконто1 = ХозрасчетныйОборотыАмортизации.Субконто1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОкончания, Счет В ИЕРАРХИИ (&Счет02), , Организация = &Организация) КАК ХозрасчетныйОстаткиАмортизацииКонец
        ПО ХозрасчетныйОстаткиОС.Субконто1 = ХозрасчетныйОстаткиАмортизацииКонец.Субконто1
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОкончания, Счет В ИЕРАРХИИ (&Счет01), , Организация = &Организация) КАК ХозрасчетныйОстаткиОСКонец
        ПО ХозрасчетныйОстаткиОС.Субконто1 = ХозрасчетныйОстаткиОСКонец.Субконто1
3 Uragan_a
 
03.04.14
04:19
Так, вот если в какой - то из таблиц нет ОС, то оно не попадает в результирующую.

Так, вот как переделать запрос, чтобы ОС, попадало в результат, если оно есть хоть в одной из таблиц?
4 FoxFox
 
03.04.14
04:33
Объединением запросов
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn