Имя: Пароль:
1C
1С v8
Запрос по бухгалтерии
, ,
0 serg-lom89
 
09.09.14
13:16
Доделываю карточку по Основному средству..
нужно что бы в отделе сведения о приемке,перемещениях,списание ос
в строке выбивалась остат. стоимость.
Строка выглядит так
Номердока |Вид операции     |наим. структурного под. | Ост.стоим  |МОЛ
010101      пере-д в собст.    Транс. отдел                        Вася

Этот док формирует проводки.и мне нужно из оборотов по 01.01 вычесть обороты по 02.01 и получиться моя стоимость по данному документу.вот и прошу помощи самой в запросе

Вот запрос написанный мной в консоли запросов.

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


Выдает результат
Авто Маз-129      -740 000    90 0000

как мне теперь узнать из разность?или я может не правильно написал запрос?буду благодарен за совет.Спасибо )
1 Степан_Д
 
09.09.14
13:47
(0) Можно узнать разность просто применив вычитание в запросе)

т.е. заменить в начале

ХозрасчетныйОбороты.СуммаОборот КАК ОборотыПо02_01,
    ВложенныйЗапрос.СуммаОборот КАК ОборотыПо01_01

на
2 Степан_Д
 
09.09.14
13:47
ХозрасчетныйОбороты.СуммаОборот КАК ОборотыПо02_01 - ВложенныйЗапрос.СуммаОборот КАК ОборотыПо01_01 КАК Разность
3 Степан_Д
 
09.09.14
13:49
(0) также не забывай про проверку на null для ресурсов регистра (оператор ЕСТЬNULL())
4 GROOVY
 
09.09.14
13:49
Не кошерно запрос дважды к одной и той же таблице делать.
Сделай через ВЫБР КОГДА с условием по счету, и сгруппируй, будет тебе и красивее и разность получишь.
5 serg-lom89
 
09.09.14
13:52
(3) спасибо
(4) а можно пример?
6 Степан_Д
 
09.09.14
13:53
(2) По невнимательности ошибся, конечно же именование через КАК должно выполняться один раз в конце
(4) - прав, так еще лучше
7 GROOVY
 
09.09.14
13:54
ВЫБОР КОГДА счет = &Счет01 ТОГДА СуммаОборот КОНЕЦ КАК СуммаПоСчету01
8 zak555
 
09.09.14
13:56
(0) чем стандартный отчёт не устраивает ?
9 serg-lom89
 
09.09.14
13:59
(8) не подхватывается ост. стоимость
10 GROOVY
 
09.09.14
14:02
(9) Ведомость амортизации ОС пробовали юзать?
11 serg-lom89
 
09.09.14
14:03
(10)надо посмотреть
12 zak555
 
09.09.14
14:05
(10) кстати, если случай но так вбита одна позиция ОС, то весь отчёт по остальным позициям будет показывать недостоверные данные
13 Степан_Д
 
09.09.14
14:07
Как-то так


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


Далее можно сгруппировать если надо, поместить во временную таблицу и вычесть в следующем запросе из нее.
14 GROOVY
 
09.09.14
14:09
(13) Как то не так. Условие на счета лучше делать используя оператор В, а условие на организацию поместить в параметры виртуальной таблицы, на ряду с субконто, причем первым параметром, так же в операторе В.
15 GROOVY
 
09.09.14
14:11
И временная таблица тут нафиг не нужна.
16 serg-lom89
 
09.09.14
14:18
(13) спасибо)

спасибо)

..буду разбираться с запросом..а то что то я понатыкивал таблиц,одна в одну)))
17 zak555
 
09.09.14
14:19
(16) стандартный отчёт не устраивает ?
18 serg-lom89
 
09.09.14
14:26
(17) ну вот захотелось буху так что бы было....
19 Serioso
 
09.09.14
14:45
(13) Спасибо. И мне это пригодилось.
20 Степан_Д
 
09.09.14
15:02
(16), (19)
Не за что, но учитывайте к этому комментарии из (14), они сделают запрос корректнее)
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой