8.х Подскажите как правильно объединить результаты двух запросов?

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем kittybello, 22 апр 2015.

  1. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Пдскажите. как правильно записать в ГДЕ такое условие для Корсчета: если Корсчет=Счет и Регистратор= КорректировкаЗаписейРег, то Счет, Иначе Не Счет

    пишу так:

    Код:
    
    ВЫБОР
            КОГДА ХозрасчетныйОбороты.Регистратор Ссылка Документ.КорректировкаЗаписейРегистров
                    И ХозрасчетныйОбороты.КорСчет = &Счет
    
                ТОГДА ХозрасчетныйОбороты.Счет
            ИНАЧЕ ХозрасчетныйОборотыДтКт.СчетДт
        КОНЕЦ 
    
    Ругается "операция не разрешена в предложении выбор"
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    А само условие то где?
    Это просто конструкция выбор, которая ни с чем не сравнивается.
  3. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    НЕ ПОНЯЛА(
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    в секции ГДЕ запросов пишется условие. Т.е. выражение, возвращающее булево значение.
    Где у вас условие?
    У вас просто конструкция выбор.
    Для того чтобы это стало условием его надо сравнить с чем-нибудь.
  5. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Кор
    КорСчет=...
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
  7. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    теперь оно разбивает все записи , где есть КорСчет=Счет и КорСчет=СчетДт, на 2 записи(

    Код:
    ВЫБРАТЬ
        ОстаткиИОбороты.Счет,
        ОстаткиИОбороты.Субконто1 КАК ОбъектыСтроительства,
        ОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
        ОстаткиИОбороты.СуммаНачальныйОстатокКт КАК СуммаНачальныйОстатокКт,
        ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОборотДт1,
        ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаОборотКт1,
        ОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт,
        ОстаткиИОбороты.СуммаКонечныйОстатокКт КАК СуммаКонечныйОстатокКт,
        ВЫБОР
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт = ХозрасчетныйОбороты.СуммаОборотКт
                ТОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт + ХозрасчетныйОбороты.СуммаОборотДт = ХозрасчетныйОбороты.СуммаОборотКт
                    И ХозрасчетныйОбороты.СуммаОборотКт > ХозрасчетныйОбороты.СуммаОборотДт
                    И ХозрасчетныйОбороты.СуммаОборотКт > ОстаткиИОбороты.СуммаНачальныйОстатокДт
                ТОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт = ХозрасчетныйОбороты.СуммаОборотКт
                ТОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт > 0
                    И ХозрасчетныйОбороты.СуммаОборотДт > 0
                    И ОстаткиИОбороты.СуммаКонечныйОстатокДт > 0
                    И ХозрасчетныйОбороты.СуммаОборотКт < ОстаткиИОбороты.СуммаНачальныйОстатокДт
                ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт > 0
                    И ХозрасчетныйОбороты.СуммаОборотДт > 0
                    И ОстаткиИОбороты.СуммаКонечныйОстатокДт > 0
                    И ХозрасчетныйОбороты.СуммаОборотКт > ОстаткиИОбороты.СуммаНачальныйОстатокДт
                ТОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт
            ИНАЧЕ 0
        КОНЕЦ КАК ПереводИзОднойКатегорииВДругую,
        ВЫБОР
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт = 0
                    И ХозрасчетныйОбороты.СуммаОборотДт = ХозрасчетныйОбороты.СуммаОборотКт
                ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт = 0
                    И ХозрасчетныйОбороты.СуммаОборотДт > ХозрасчетныйОбороты.СуммаОборотКт
                    И ОстаткиИОбороты.СуммаКонечныйОстатокДт > 0
                ТОГДА ХозрасчетныйОбороты.СуммаОборотКт
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт + ХозрасчетныйОбороты.СуммаОборотДт = ХозрасчетныйОбороты.СуммаОборотКт
                    И ХозрасчетныйОбороты.СуммаОборотКт > ХозрасчетныйОбороты.СуммаОборотДт
                    И ХозрасчетныйОбороты.СуммаОборотКт > ОстаткиИОбороты.СуммаНачальныйОстатокДт
                ТОГДА ХозрасчетныйОбороты.СуммаОборотДт
            КОГДА ОстаткиИОбороты.СуммаНачальныйОстатокДт > 0
                    И ХозрасчетныйОбороты.СуммаОборотДт > 0
                    И ОстаткиИОбороты.СуммаКонечныйОстатокДт > 0
                    И ХозрасчетныйОбороты.СуммаОборотКт > ОстаткиИОбороты.СуммаНачальныйОстатокДт
                ТОГДА ХозрасчетныйОбороты.СуммаОборотКт - ОстаткиИОбороты.СуммаНачальныйОстатокДт
            ИНАЧЕ 0
        КОНЕЦ КАК Поступление,
        ОстаткиИОбороты.СуммаОборотДт КАК СуммаОборотДт,
        ОстаткиИОбороты.СуммаОборотКт КАК СуммаОборотКт,
        ХозрасчетныйОбороты.Счет КАК Счет1,
        ХозрасчетныйОборотыДтКт.СчетДт
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , Счет = &Счет, ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбъектыСтроительства), Организация = &Организация) КАК ОстаткиИОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоПериода, &КонецПериода, Авто, Счет = &Счет, ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбъектыСтроительства), Организация = &Организация, , ) КАК ХозрасчетныйОбороты
            ПО ОстаткиИОбороты.Субконто1 = ХозрасчетныйОбороты.Субконто1
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
                    &НачалоПериода,
                    &КонецПериода,
                    ,
                    СчетДт = &СчетДт
                        ИЛИ СчетДт = &СчетУчетаОС,
                    ,
                    СчетКт = &Счет,
                    ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.ОбъектыСтроительства),
                    Организация = &Организация) КАК ХозрасчетныйОборотыДтКт
            ПО ОстаткиИОбороты.Субконто1 = ХозрасчетныйОборотыДтКт.СубконтоКт1
    ГДЕ
        ХозрасчетныйОбороты.КорСчет = ВЫБОР
                КОГДА ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
                        И ХозрасчетныйОбороты.КорСчет = &Счет
                    ТОГДА ХозрасчетныйОбороты.Счет
                ИНАЧЕ ХозрасчетныйОборотыДтКт.СчетДт
            КОНЕЦ
    ИТОГИ
        СУММА(СуммаНачальныйОстатокДт),
        СУММА(СуммаНачальныйОстатокКт),
        СУММА(СуммаОборотДт1),
        СУММА(СуммаОборотКт1),
        СУММА(СуммаКонечныйОстатокДт),
        СУММА(СуммаКонечныйОстатокКт),
        СУММА(ПереводИзОднойКатегорииВДругую),
        СУММА(Поступление),
        СУММА(СуммаОборотДт),
        СУММА(СуммаОборотКт)
    ПО
        ОБЩИЕ
    
  8. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Написала такое условие, все равно разбивает на много записей одну позицию. ПОМОГИТЕ-Arghh-
    Код:
    
    ВЫБОР
        КОГДА ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров
                И ХозрасчетныйОбороты.КорСчет = &Счет
            ТОГДА ХозрасчетныйОбороты.КорСчет = ХозрасчетныйОбороты.Счет
        ИНАЧЕ ХозрасчетныйОбороты.КорСчет <> ХозрасчетныйОбороты.Счет
    КОНЕЦ
    
    
    Последнее редактирование: 27 апр 2015
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Я не понимаю какое должно быть условие.
  10. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    КорСчет<>Счет, но если Регистратор=КорректировкаЗаписейРегистров, тогда КорСчет=Счет
  11. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Код:
    ГДЕ
      ((ХозрасчетныйОбороты.КорСчет <> ХозрасчетныйОбороты.Счет)
      ИЛИ
      (ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.КорректировкаЗаписейРегистров И ХозрасчетныйОбороты.КорСчет = &Счет))
    
  12. TopicStarter Overlay
    kittybello
    Offline

    kittybello Опытный в 1С

    Регистрация:
    2 апр 2015
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Не могу понять почему так получается одна позиция разбивается на множество (я так понимаю от количества проводок)
    [​IMG]

Поделиться этой страницей