Имя: Пароль:
1C
1С v8
Отчет на базе универсального. Выводится лишняя строка. Как исправить ?
0 Румата
 
06.12.18
15:15
Делаю отчет на базе универсального. В запросе три группировки - Склад, номенклатура, Документ движения регистратор. Отчет по регистру товары на складах.
В отчет выводятся эти три группировки и ниже пустая строка с показателями. Как убрать эту пустую строку ?
1 Румата
 
06.12.18
15:15
2 Румата
 
06.12.18
15:16
Текст запроса :

ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
    ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
    ТоварыНаСкладахОстаткиИОбороты.Качество КАК Качество,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    ВЫБОР
        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
            ТОГДА 0
        ИНАЧЕ ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
    КОНЕЦ КАК КоличествоРасход,
    ВЫБОР
        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоСписание,
    ВЫБОР
        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
        ИНАЧЕ 0
    КОНЕЦ КАК КоличествоНедостача
{ВЫБРАТЬ
    Склад.*,
    Номенклатура.*,
    Регистратор.*,
    ХарактеристикаНоменклатуры.*,
    СерияНоменклатуры.*,
    Качество.*,
    КоличествоНачальныйОстаток,
    КоличествоКонечныйОстаток,
    КоличествоПриход,
    КоличествоРасход,
    КоличествоСписание,
    КоличествоНедостача}
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
{ГДЕ
    ТоварыНаСкладахОстаткиИОбороты.Склад.*,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура.*,
    ТоварыНаСкладахОстаткиИОбороты.Регистратор.*,
    (ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                    ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                ТОГДА 0
            ИНАЧЕ ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
        КОНЕЦ) КАК КоличествоРасход,
    (ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
            ИНАЧЕ 0
        КОНЕЦ) КАК КоличествоСписание,
    (ВЫБОР
            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
            ИНАЧЕ 0
        КОНЕЦ) КАК КоличествоНедостача}
ИТОГИ ПО
    ОБЩИЕ
{ИТОГИ ПО
    Склад.*,
    Номенклатура.*,
    Регистратор.*}
3 Румата
 
06.12.18
15:17
Ниже будут настроки для универсального отчета :

УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
    УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
    УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Истина;
    УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоНачальныйОстаток","Количество нач. остаток", Истина,"ЧЦ=15; ЧДЦ=3", );
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоПриход","Количество приход",           Истина,"ЧЦ=15; ЧДЦ=3", );
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоРасход","Количество расход",           Истина,"ЧЦ=15; ЧДЦ=3", );
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоСписание","Количество списание",  Истина,"ЧЦ=15; ЧДЦ=3", );
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоНедостача","Количество недостача",  Истина,"ЧЦ=15; ЧДЦ=3", );
    УниверсальныйОтчет.ДобавитьПоказатель("КоличествоКонечныйОстаток","Количество кон. остаток",  Истина,"ЧЦ=15; ЧДЦ=3", );
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Склад");
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура");
    УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Регистратор");
    УниверсальныйОтчет.ДобавитьОтбор("Склад");
    УниверсальныйОтчет.ДобавитьОтбор("Номенклатура");
    УниверсальныйОтчет.УстановитьНачальныеНастройки(ложь);
4 azernot
 
06.12.18
15:32
УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Ложь;
5 Румата
 
06.12.18
15:34
(azernot) Тогда последняя строка исчезает и результатов нигде не выводится.
6 Румата
 
06.12.18
15:36
7 azernot
 
06.12.18
16:51
Эээ.. А почему у вас в запросе нет итогов?


ИТОГИ
Сумма(КоличествоПриход),
Сумма(КоличествоРасход),
Сумма(КоличествоСписание),
Сумма(КоличествоНедостача),
и т.п.
ПО
    ОБЩИЕ
8 Румата
 
06.12.18
17:16
(azernot) Я по разному, пробовал. Сейчас изменил, как вы сказали...


Вот текст запроса :

"ВЫБРАТЬ
                   |    ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
                   |    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
                   |    ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
                   |    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
                   |    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
                   |    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
                   |    ВЫБОР
                   |        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                   |                ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                   |            ТОГДА 0
                   |        ИНАЧЕ ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
                   |    КОНЕЦ КАК КоличествоРасход,
                   |    ВЫБОР
                   |        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                   |            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
                   |        ИНАЧЕ 0
                   |    КОНЕЦ КАК КоличествоСписание,
                   |    ВЫБОР
                   |        КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                   |            ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
                   |        ИНАЧЕ 0
                   |    КОНЕЦ КАК КоличествоНедостача
                   |{ВЫБРАТЬ
                   |    Склад.*,
                   |    Номенклатура.*,
                   |    Регистратор.*,
                   |    КоличествоНачальныйОстаток,
                   |    КоличествоКонечныйОстаток,
                   |    КоличествоПриход,
                   |    КоличествоРасход,
                   |    КоличествоСписание,
                   |    КоличествоНедостача}
                   |ИЗ
                   |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
                   |{ГДЕ
                   |    ТоварыНаСкладахОстаткиИОбороты.Склад.*,
                   |    ТоварыНаСкладахОстаткиИОбороты.Номенклатура.*,
                   |    ТоварыНаСкладахОстаткиИОбороты.Регистратор.*,
                   |    (ВЫБОР
                   |            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                   |                    ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                   |                ТОГДА 0
                   |            ИНАЧЕ ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
                   |        КОНЕЦ) КАК КоличествоРасход,
                   |    (ВЫБОР
                   |            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная
                   |                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
                   |            ИНАЧЕ 0
                   |        КОНЕЦ) КАК КоличествоСписание,
                   |    (ВЫБОР
                   |            КОГДА ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.СписаниеТоваров
                   |                ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
                   |            ИНАЧЕ 0
                   |        КОНЕЦ) КАК КоличествоНедостача}
                   |ИТОГИ
                   |    СУММА(КоличествоНачальныйОстаток),
                   |    СУММА(КоличествоКонечныйОстаток),
                   |    СУММА(КоличествоПриход),
                   |    СУММА(КоличествоРасход),
                   |    СУММА(КоличествоСписание),
                   |    СУММА(КоличествоНедостача)
                   |ПО
                   |    ОБЩИЕ
                   |{ИТОГИ ПО
                   |    Склад.*,
                   |    Номенклатура.*,
                   |    Регистратор.*}
9 Румата
 
06.12.18
17:17
Результат на картинке https://cdn1.savepice.ru/uploads/2018/12/6/8225c1da6dfe449ebe58f3db7fbcb48c-full.jpg


Пустая строка выводится, как я уже не пробовал (
10 azernot
 
06.12.18
17:32
(9) а когда есть итоги, вот это
УниверсальныйОтчет.ВыводитьДетальныеЗаписи = Ложь;
сделано?

Пустая строка - это детальные записи. А показатели не выводились в группировках потому что итогов не было.
11 azernot
 
06.12.18
17:36
Да и ещё, при использовании периодичности "Регистратор" результат запроса всегда содержит "пустую строку" в которой он пишет остатки нач и кон.

Для построителя я решения проблемы не видел, а вот для СКД - есть.
http://1cskd.ru/2011/02/pustye-stroki-registrator-neopredeleno-reshenie-ochevidnoe/

Вообще поищите в гугле по "Остатки и обороты с детализацией по регистратору"
12 Румата
 
06.12.18
17:44
(azernot) Спасибо за направление, буду разбираться ;)
Закон Брукера: Даже маленькая практика стоит большой теории.