Имя: Пароль:
1C
1С v8
Запрос задваивает строки.
0 Bodrug
 
12.12.13
14:17
Добры день, запрос задваивает строки. Не могу разобраться почему - я не большой специалист в этом деле. Вот текст запроса:
ВЫБРАТЬ
    Хозрасчетный.Регистратор КАК Регистратор,
    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    РеализацияТоваровУслугТовары.СуммаНДС КАК СуммаНДС,
    ХозрасчетныйДвиженияССубконто.СубконтоКт3 КАК СубконтоКТ1,
    NULL КАК Поле1,
    ГТДИмпортТовары.Номенклатура КАК НоменклатураВПереработку,
    ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество КАК СуммаНДСГТД,
    ГТДИмпортТовары.ДокументПартии,
    ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС КАК Разница,
    ВЫБОР
        КОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС > 0
            ТОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС
    КОНЕЦ КАК НДСПоУсловнойПродаже,
    ВЫБОР
        КОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС > 0
            ТОГДА (ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС) * 6
    КОНЕЦ КАК СуммаУсловнойПродажиСНДС
ИЗ
    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ПО Хозрасчетный.Регистратор = РеализацияТоваровУслугТовары.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт.Товары КАК ГТДИмпортТовары
            ПО ХозрасчетныйДвиженияССубконто.СубконтоКт3 = ГТДИмпортТовары.ДокументПартии
        ПО Хозрасчетный.Регистратор = ХозрасчетныйДвиженияССубконто.Регистратор
ГДЕ
    (ХозрасчетныйДвиженияССубконто.СчетДт = &СчетДт
            ИЛИ ХозрасчетныйДвиженияССубконто.СчетКт = &СчетКт)
    И Хозрасчетный.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон
    И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.СубконтоКт3) = ТИП(Документ.ПоступлениеТоваровУслуг)

СГРУППИРОВАТЬ ПО
    Хозрасчетный.Регистратор,
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугТовары.СуммаНДС,
    ХозрасчетныйДвиженияССубконто.СубконтоКт3,
    ГТДИмпортТовары.Номенклатура,
    ГТДИмпортТовары.ДокументПартии,
    ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС,
    ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество,
    ВЫБОР
        КОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС > 0
            ТОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС
    КОНЕЦ,
    ВЫБОР
        КОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС > 0
            ТОГДА (ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС) * 6
    КОНЕЦ

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

ВЫБРАТЬ
    Хозрасчетный.Регистратор,
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугТовары.СуммаНДС,
    ХозрасчетныйДвиженияССубконто.СубконтоКт3,
    ХозрасчетныйДвиженияССубконто1.СубконтоКт3,
    ГТДИмпортТовары.Номенклатура,
    ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество,
    ГТДИмпортТовары.ДокументПартии,
    ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС,
    ВЫБОР
        КОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС > 0
            ТОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС
    КОНЕЦ,
    ВЫБОР
        КОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС > 0
            ТОГДА (ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС) * 6
    КОНЕЦ
ИЗ
    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ПО Хозрасчетный.Регистратор = РеализацияТоваровУслугТовары.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто1
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.ГТДИмпорт.Товары КАК ГТДИмпортТовары
                ПО ХозрасчетныйДвиженияССубконто1.СубконтоКт3 = ГТДИмпортТовары.ДокументПартии
            ПО ХозрасчетныйДвиженияССубконто.СубконтоКт3 = ХозрасчетныйДвиженияССубконто1.Регистратор
        ПО Хозрасчетный.Регистратор = ХозрасчетныйДвиженияССубконто.Регистратор
ГДЕ
    (ХозрасчетныйДвиженияССубконто.СчетДт = &СчетДт
            ИЛИ ХозрасчетныйДвиженияССубконто.СчетКт = &СчетКт)
    И Хозрасчетный.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон
    И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто.СубконтоКт3) = ТИП(Документ.ПоступлениеИзПереработки)
    И ТИПЗНАЧЕНИЯ(ХозрасчетныйДвиженияССубконто1.СубконтоКт3) = ТИП(Документ.ПоступлениеТоваровУслуг)

СГРУППИРОВАТЬ ПО
    Хозрасчетный.Регистратор,
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугТовары.СуммаНДС,
    ХозрасчетныйДвиженияССубконто.СубконтоКт3,
    ХозрасчетныйДвиженияССубконто1.СубконтоКт3,
    ГТДИмпортТовары.Номенклатура,
    ГТДИмпортТовары.ДокументПартии,
    ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС,
    ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество,
    ВЫБОР
        КОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС > 0
            ТОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС
    КОНЕЦ,
    ВЫБОР
        КОГДА ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС > 0
            ТОГДА (ГТДИмпортТовары.СуммаНДС / ГТДИмпортТовары.Количество * РеализацияТоваровУслугТовары.Количество - РеализацияТоваровУслугТовары.СуммаНДС) * 6
    КОНЕЦ

УПОРЯДОЧИТЬ ПО
    Регистратор
1 Плот
 
12.12.13
14:18
(0) Чет много строк. Хоть бы немного конкретизировал.
2 Fragster
 
модератор
12.12.13
14:18
задваивает он из-за соединений. но вообще - запрос надо выкинуть и пойти учить запросы.
3 daemvik
 
12.12.13
14:21
(2) точно...
4 Bodrug
 
12.12.13
14:22
Конкретизирую: запрос обращается к регистру Хозрасчетный и берет в нем реализацию и из нее таб часть Товары. В том случае, когда в реализации больше одной позиции номенклатуры, то запрос задваивается.
5 Avganec
 
12.12.13
14:26
(4) перепиши запрос с нуля в соответствии со своим описанием. и подумай хорошо.
6 МихаилМ
 
12.12.13
14:26
неуказание параметров виртуальных таблиц - диагноз профнепригодности.
7 krakazybra
 
12.12.13
14:47
разбирайся с соединениями, это из-за них строчки раздваиваются.
8 Bodrug
 
12.12.13
14:57
Спасибо, буду работать с соединениями.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший