Имя: Пароль:
1C
1С v8
Проблема с запросом
0 Kemmorat
 
21.11.13
06:12
В отчете имеется запрос, который получает данные о номенклатуре, её остаткам и оборотам с привязкой к документам, по которым эти обороты были. Необходимо для каждой строки из документа получить код назначения. Казалось бы, задача простая. однако столкнулся с такой проблемой: при попытке добавления ещё одной колонки происходит полная ересь. Либо результат запроса совершенно другой получается (по количеству строк), либо остатки на начало и конец получаются неправильные. Обороты, вроде, совпадают, однако конечный остаток даже не сходится с математически вычисляемым.
Конфига КА, отчёт "ведомость по материалам в эксплуатации"
1 Wobland
 
21.11.13
06:13
а ну и чо?
2 osa1C
 
21.11.13
06:15
(0) Вопрос хороший, мне понравился
3 osa1C
 
21.11.13
06:17
(0) Запрос в студию
4 Kemmorat
 
21.11.13
06:21
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РегМатериалы.Подразделение,
    ПРЕДСТАВЛЕНИЕ(РегМатериалы.Подразделение),
    РегМатериалы.Номенклатура,
    ПРЕДСТАВЛЕНИЕ(РегМатериалы.Номенклатура),
    РегМатериалы.ХарактеристикаНоменклатуры,
    ПРЕДСТАВЛЕНИЕ(РегМатериалы.ХарактеристикаНоменклатуры),
    РегМатериалы.СерияНоменклатуры,
    ПРЕДСТАВЛЕНИЕ(РегМатериалы.СерияНоменклатуры),
    РегМатериалы.ФизЛицо,
    ПРЕДСТАВЛЕНИЕ(РегМатериалы.ФизЛицо),
    РегМатериалы.КоличествоНачальныйОстаток КАК КолНачОст,
    РегМатериалы.КоличествоКонечныйОстаток КАК КолКонОст,
    РегМатериалы.КоличествоПриход КАК КолПриход,
    РегМатериалы.КоличествоРасход КАК КолРасход,
    РегМатериалы.Регистратор,
    ПРЕДСТАВЛЕНИЕ(РегМатериалы.Регистратор),
    РегМатериалы.Период,
    РегМатериалы.КоличествоНачальныйОстаток * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВЫБОР
        КОГДА РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0
            ТОГДА 1
        ИНАЧЕ ЕСТЬNULL(РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1)
    КОНЕЦ КАК КолНачОстЕдОтчетов,
    РегМатериалы.КоличествоПриход * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВЫБОР
        КОГДА РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0
            ТОГДА 1
        ИНАЧЕ ЕСТЬNULL(РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1)
    КОНЕЦ КАК КолПриходЕдОтчетов,
    РегМатериалы.КоличествоРасход * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВЫБОР
        КОГДА РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0
            ТОГДА 1
        ИНАЧЕ ЕСТЬNULL(РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1)
    КОНЕЦ КАК КолРасходЕдОтчетов,
    РегМатериалы.КоличествоКонечныйОстаток * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВЫБОР
        КОГДА РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0
            ТОГДА 1
        ИНАЧЕ ЕСТЬNULL(РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1)
    КОНЕЦ КАК КолКонОстЕдОтчетов,
    РегМатериалы.КоличествоНачальныйОстаток * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КолНачОстБазовЕд,
    РегМатериалы.КоличествоПриход * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КолПриходБазовЕд,
    РегМатериалы.КоличествоРасход * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КолРасходБазовЕд,
    РегМатериалы.КоличествоКонечныйОстаток * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КолКонОстБазовЕд,
    НАЧАЛОПЕРИОДА(РегМатериалы.Период, ДЕНЬ) КАК ПериодДень,
    НАЧАЛОПЕРИОДА(РегМатериалы.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    НАЧАЛОПЕРИОДА(РегМатериалы.Период, ДЕКАДА) КАК ПериодДекада,
    НАЧАЛОПЕРИОДА(РегМатериалы.Период, МЕСЯЦ) КАК ПериодМесяц,
    НАЧАЛОПЕРИОДА(РегМатериалы.Период, КВАРТАЛ) КАК ПериодКвартал,
    НАЧАЛОПЕРИОДА(РегМатериалы.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
    НАЧАЛОПЕРИОДА(РегМатериалы.Период, ГОД) КАК ПериодГод
{ВЫБРАТЬ
    Подразделение.*,
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    ФизЛицо.*,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод,
    КолНачОстЕдОтчетов,
    КолПриходЕдОтчетов,
    КолРасходЕдОтчетов,
    КолКонОстЕдОтчетов,
    КолНачОстБазовЕд,
    КолПриходБазовЕд,
    КолРасходБазовЕд,
    КолКонОстБазовЕд,
    КолНачОст,
    КолКонОст,
    КолПриход,
    КолРасход}
ИЗ
    РегистрНакопления.МатериалыВЭксплуатации.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(Подразделение).* КАК Подразделение, (Номенклатура).* КАК Номенклатура, (ХарактеристикаНоменклатуры).* КАК ХарактеристикаНоменклатуры, (СерияНоменклатуры).* КАК СерияНоменклатуры, (ФизЛицо).* КАК ФизЛицо}) КАК РегМатериалы
{ГДЕ
    РегМатериалы.КоличествоНачальныйОстаток КАК КолНачОст,
    РегМатериалы.КоличествоКонечныйОстаток КАК КолКонОст,
    РегМатериалы.КоличествоПриход КАК КолПриход,
    РегМатериалы.КоличествоРасход КАК КолРасход,
    (РегМатериалы.КоличествоНачальныйОстаток * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВЫБОР
            КОГДА РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0
                ТОГДА 1
            ИНАЧЕ ЕСТЬNULL(РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1)
        КОНЕЦ) КАК КолНачОстЕдОтчетов,
    (РегМатериалы.КоличествоПриход * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВЫБОР
            КОГДА РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0
                ТОГДА 1
            ИНАЧЕ ЕСТЬNULL(РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1)
        КОНЕЦ) КАК КолПриходЕдОтчетов,
    (РегМатериалы.КоличествоРасход * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВЫБОР
            КОГДА РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0
                ТОГДА 1
            ИНАЧЕ ЕСТЬNULL(РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1)
        КОНЕЦ) КАК КолРасходЕдОтчетов,
    (РегМатериалы.КоличествоКонечныйОстаток * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент / ВЫБОР
            КОГДА РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент = 0
                ТОГДА 1
            ИНАЧЕ ЕСТЬNULL(РегМатериалы.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1)
        КОНЕЦ) КАК КолКонОстЕдОтчетов,
    (РегМатериалы.КоличествоНачальныйОстаток * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КолНачОстБазовЕд,
    (РегМатериалы.КоличествоПриход * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КолПриходБазовЕд,
    (РегМатериалы.КоличествоРасход * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КолРасходБазовЕд,
    (РегМатериалы.КоличествоКонечныйОстаток * РегМатериалы.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент) КАК КолКонОстБазовЕд,
    РегМатериалы.Регистратор.*,
    РегМатериалы.Период,
    (НАЧАЛОПЕРИОДА(РегМатериалы.Период, ДЕНЬ)) КАК ПериодДень,
    (НАЧАЛОПЕРИОДА(РегМатериалы.Период, НЕДЕЛЯ)) КАК ПериодНеделя,
    (НАЧАЛОПЕРИОДА(РегМатериалы.Период, ДЕКАДА)) КАК ПериодДекада,
    (НАЧАЛОПЕРИОДА(РегМатериалы.Период, МЕСЯЦ)) КАК ПериодМесяц,
    (НАЧАЛОПЕРИОДА(РегМатериалы.Период, КВАРТАЛ)) КАК ПериодКвартал,
    (НАЧАЛОПЕРИОДА(РегМатериалы.Период, ПОЛУГОДИЕ)) КАК ПериодПолугодие,
    (НАЧАЛОПЕРИОДА(РегМатериалы.Период, ГОД)) КАК ПериодГод}
{УПОРЯДОЧИТЬ ПО
    Подразделение.*,
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    ФизЛицо.*,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод,
    КолНачОстЕдОтчетов,
    КолПриходЕдОтчетов,
    КолРасходЕдОтчетов,
    КолКонОстЕдОтчетов,
    КолНачОстБазовЕд,
    КолПриходБазовЕд,
    КолРасходБазовЕд,
    КолКонОстБазовЕд,
    КолНачОст,
    КолКонОст,
    КолПриход,
    КолРасход}
ИТОГИ
    СУММА(КолНачОст),
    СУММА(КолКонОст),
    СУММА(КолПриход),
    СУММА(КолРасход),
    СУММА(КолНачОстЕдОтчетов),
    СУММА(КолПриходЕдОтчетов),
    СУММА(КолРасходЕдОтчетов),
    СУММА(КолКонОстЕдОтчетов),
    СУММА(КолНачОстБазовЕд),
    СУММА(КолПриходБазовЕд),
    СУММА(КолРасходБазовЕд),
    СУММА(КолКонОстБазовЕд)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    Подразделение.*,
    Номенклатура.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    ФизЛицо.*,
    Регистратор.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодДекада,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод}
АВТОУПОРЯДОЧИВАНИЕ
5 Kemmorat
 
21.11.13
06:23
(3) надо бы добавить колонку, в которой для каждой строки с документом "передача в эксплуатацию" выводился код назначения использования, взятый из табличной части этого документа по этой номенклатуре
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.