Имя: Пароль:
1C
 
Почему в консоли отчетов может быть такое
0 kn
 
27.02.15
20:06
В консоли отчетов если без отбора то номенклатурная позиция  не показывается, а если с отбором то показывается. Т.е отбор не сужает а наоборот.Консоль отчетов стандартная в УТ10.3.
1 Defender aka LINN
 
27.02.15
20:34
(0) Как написал запрос, то тебе отчет и выводит
2 Ненавижу 1С
 
гуру
27.02.15
20:34
покажи запрос
3 D_E_S_131
 
27.02.15
20:38
Я бы еще и зрачки ТС на расширенность проверил.
4 RomanYS
 
27.02.15
21:02
Предлагаю устроить конкурс на пример такого запроса, ТС похоже не покажет на свой запрос)
5 kn
 
27.02.15
21:22
ВЫБРАТЬ
    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход - ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоОстаток,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ОстатокКСписанию
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, &ДатаКон, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
    (ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
            ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
            ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровПоставщику
            ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя)
{ГДЕ
    ТоварыНаСкладахОстаткиИОбороты.Склад.*,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура.*}

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход - ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоОстаток,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ НачальныйОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, &ДатаНач, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
    (ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
            ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
            ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровПоставщику
            ИЛИ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ВозвратТоваровОтПокупателя)
{ГДЕ
    ТоварыНаСкладахОстаткиИОбороты.Склад.*,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура.*}

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладах.Регистратор,
    ТоварыНаСкладах.Номенклатура КАК Номенклатура,
    ТоварыНаСкладах.Количество КАК Количество,
    ТоварыНаСкладах.Период
ПОМЕСТИТЬ ТабДок
{ВЫБРАТЬ
    Регистратор.*,
    Номенклатура.*,
    ТоварыНаСкладах.Склад.*}
ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Период <= &ДатаКон
    И ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
{ГДЕ
    ТоварыНаСкладах.Регистратор.*,
    ТоварыНаСкладах.Номенклатура.*,
    ТоварыНаСкладах.Склад.*}
{УПОРЯДОЧИТЬ ПО
    ТоварыНаСкладах.МоментВремени,
    ТоварыНаСкладах.Регистратор.*}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабДок.Регистратор КАК Регистратор,
    ТабДок.Номенклатура КАК Номенклатура,
    ТабДок.Количество,
    СУММА(ТабДок1.Количество) КАК КоличествоНакопительное,
    ТабДок.Период
ПОМЕСТИТЬ ТабСНакоплением
ИЗ
    ТабДок КАК ТабДок
        ЛЕВОЕ СОЕДИНЕНИЕ ТабДок КАК ТабДок1
        ПО ТабДок.Номенклатура = ТабДок1.Номенклатура
            И ТабДок.Период <= ТабДок1.Период

СГРУППИРОВАТЬ ПО
    ТабДок.Регистратор,
    ТабДок.Количество,
    ТабДок.Номенклатура,
    ТабДок.Период
{УПОРЯДОЧИТЬ ПО
    Регистратор.*,
    ТабДок.Регистратор.МоментВремени}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабСНакоплением.Регистратор,
    ПРЕДСТАВЛЕНИЕ(ТабСНакоплением.Регистратор),
    ТабСНакоплением.Номенклатура,
    ПРЕДСТАВЛЕНИЕ(ТабСНакоплением.Номенклатура),
    ТабСНакоплением.Количество,
    ТабСНакоплением.КоличествоНакопительное,
    ТабСНакоплением.Период
ПОМЕСТИТЬ ТабНакопительная2
ИЗ
    ТабСНакоплением КАК ТабСНакоплением
{УПОРЯДОЧИТЬ ПО
    Регистратор.*,
    ТабСНакоплением.Регистратор.МоментВремени}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабНакопительная2.Регистратор,
    ТабНакопительная2.Номенклатура,
    ТабНакопительная2.Количество,
    ТабНакопительная2.КоличествоНакопительное КАК КоличествоНакопительное,
    ТабНакопительная2.Период,
    ЕСТЬNULL(ОстатокКСписанию.КоличествоОстаток, 0) КАК Остаток
ПОМЕСТИТЬ ТабСписанияПодготовительная
ИЗ
    ТабНакопительная2 КАК ТабНакопительная2
        ЛЕВОЕ СОЕДИНЕНИЕ ОстатокКСписанию КАК ОстатокКСписанию
        ПО ТабНакопительная2.Номенклатура = ОстатокКСписанию.Номенклатура

СГРУППИРОВАТЬ ПО
    ТабНакопительная2.Регистратор,
    ТабНакопительная2.Номенклатура,
    ТабНакопительная2.Количество,
    ТабНакопительная2.КоличествоНакопительное,
    ТабНакопительная2.Период,
    ЕСТЬNULL(ОстатокКСписанию.КоличествоОстаток, 0)
{УПОРЯДОЧИТЬ ПО
    Регистратор.*,
    ТабНакопительная2.Регистратор.МоментВремени}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабСписанияПодготовительная.Регистратор,
    ТабСписанияПодготовительная.Номенклатура,
    ТабСписанияПодготовительная.Количество,
    СУММА(ТабСписанияПодготовительная.КоличествоНакопительное) КАК КоличествоНакопительное,
    ТабСписанияПодготовительная.Период
ПОМЕСТИТЬ ТабСписания
ИЗ
    ТабСписанияПодготовительная КАК ТабСписанияПодготовительная

СГРУППИРОВАТЬ ПО
    ТабСписанияПодготовительная.Регистратор,
    ТабСписанияПодготовительная.Номенклатура,
    ТабСписанияПодготовительная.Количество,
    ТабСписанияПодготовительная.Период,
    ТабСписанияПодготовительная.Остаток

ИМЕЮЩИЕ
    СУММА(ТабСписанияПодготовительная.КоличествоНакопительное) <= ТабСписанияПодготовительная.Остаток
{УПОРЯДОЧИТЬ ПО
    Регистратор.*,
    ТабСписанияПодготовительная.Регистратор.МоментВремени}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабНакопительная2.Регистратор КАК Регистратор,
    ТабНакопительная2.Количество,
    ТабНакопительная2.КоличествоНакопительное,
    ТабНакопительная2.Номенклатура КАК Номенклатура,
    ТабНакопительная2.Период
ПОМЕСТИТЬ ТабРазность
ИЗ
    ТабНакопительная2 КАК ТабНакопительная2

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

ВЫБРАТЬ
    ТабСписания.Регистратор,
    0,
    0,
    ТабСписания.Номенклатура,
    ТабСписания.Период
ИЗ
    ТабСписания КАК ТабСписания
{УПОРЯДОЧИТЬ ПО
    Регистратор.*}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабРазность.Регистратор,
    ТабРазность.Номенклатура,
    СУММА(ТабРазность.Количество) КАК Количество,
    МАКСИМУМ(ТабРазность.КоличествоНакопительное) КАК КоличествоНакопительное,
    ТабРазность.Период
ПОМЕСТИТЬ ТабРазностьСвертка
ИЗ
    ТабРазность КАК ТабРазность

СГРУППИРОВАТЬ ПО
    ТабРазность.Регистратор,
    ТабРазность.Номенклатура,
    ТабРазность.Период
{УПОРЯДОЧИТЬ ПО
    Регистратор.*,
    ТабРазность.Регистратор.МоментВремени}
;

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

СГРУППИРОВАТЬ ПО
    ТабРазностьСвертка.Регистратор,
    ТабРазностьСвертка.Номенклатура,
    ТабРазностьСвертка.КоличествоНакопительное,
    ТабРазностьСвертка.Период,
    ВЫБОР
        КОГДА ТабРазностьСвертка.КоличествоНакопительное > ОстатокКСписанию.КоличествоОстаток
            ТОГДА ТабРазностьСвертка.Количество - (ТабРазностьСвертка.КоличествоНакопительное - ОстатокКСписанию.КоличествоОстаток)
        ИНАЧЕ 0
    КОНЕЦ

УПОРЯДОЧИТЬ ПО
    Период УБЫВ
{УПОРЯДОЧИТЬ ПО
    Регистратор.*,
    ТабРазностьСвертка.Регистратор.МоментВремени}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТабСписания.Регистратор КАК Регистратор,
    ТабСписания.Номенклатура КАК Номенклатура,
    ТабСписания.Количество КАК КоличествоСписываемое,
    ТабСписания.Период,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК ПериодЦены
ПОМЕСТИТЬ СписываетсоеСДатойЦены
ИЗ
    ТабСписания КАК ТабСписания
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО ТабСписания.Номенклатура = ЦеныНоменклатуры.Номенклатура
            И (ЦеныНоменклатуры.ТипЦен = &ТипЦен)
            И ТабСписания.Период >= ЦеныНоменклатуры.Период

СГРУППИРОВАТЬ ПО
    ТабСписания.Номенклатура,
    ТабСписания.Период,
    ТабСписания.Регистратор,
    ТабСписания.Количество

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

ВЫБРАТЬ
    ПоследняяСтрока.Регистратор,
    ПоследняяСтрока.Номенклатура,
    ПоследняяСтрока.КОличествоСписываемое,
    ПоследняяСтрока.Период,
    МАКСИМУМ(ЦеныНоменклатуры.Период)
ИЗ
    ПоследняяСтрока КАК ПоследняяСтрока
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО ПоследняяСтрока.Номенклатура = ЦеныНоменклатуры.Номенклатура
            И (ЦеныНоменклатуры.ТипЦен = &ТипЦен)
            И ПоследняяСтрока.Период >= ЦеныНоменклатуры.Период

СГРУППИРОВАТЬ ПО
    ПоследняяСтрока.Период,
    ПоследняяСтрока.Номенклатура,
    ПоследняяСтрока.Регистратор,
    ПоследняяСтрока.КОличествоСписываемое
{УПОРЯДОЧИТЬ ПО
    Регистратор.*}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СписываетсоеСДатойЦены.Номенклатура КАК Номенклатура,
    СписываетсоеСДатойЦены.Номенклатура.Код КАК Код,
    СписываетсоеСДатойЦены.Номенклатура.Артикул КАК Артикул,
    СписываетсоеСДатойЦены.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    СписываетсоеСДатойЦены.Номенклатура.СтранаПроисхождения КАК СтранаПроисхождения,
    СписываетсоеСДатойЦены.Номенклатура.Комментарий КАК Комментарий,
    СписываетсоеСДатойЦены.Регистратор КАК Регистратор,
    ЕСТЬNULL(НачальныйОстаток.КоличествоОстаток, 0) КАК ОстатокНаНачалоПериода,
    ПродажиОбороты.КоличествоОборот КАК КоличествоПродаж,
    ЗакупкиОбороты.КоличествоОборот КАК КоличествоЗакупок,
    СписываетсоеСДатойЦены.КоличествоСписываемое КАК ОстатокНаКонецПериода,
    ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК Цена,
    ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) * ЕСТЬNULL(СписываетсоеСДатойЦены.КоличествоСписываемое, 0) КАК Всего
{ВЫБРАТЬ
    Номенклатура.*,
    Регистратор.*,
    Код,
    Артикул,
    НаименованиеПолное,
    СтранаПроисхождения.*,
    Комментарий,
    ОстатокНаНачалоПериода,
    КоличествоПродаж,
    КоличествоЗакупок,
    ОстатокНаКонецПериода,
    Цена,
    Всего}
ИЗ
    СписываетсоеСДатойЦены КАК СписываетсоеСДатойЦены
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
        ПО СписываетсоеСДатойЦены.Номенклатура = ЦеныНоменклатуры.Номенклатура
            И СписываетсоеСДатойЦены.ПериодЦены = ЦеныНоменклатуры.Период
            И (ЦеныНоменклатуры.ТипЦен = &ТипЦен)
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , ) КАК ПродажиОбороты
        ПО СписываетсоеСДатойЦены.Номенклатура = ПродажиОбороты.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки.Обороты(&ДатаНач, &ДатаКон, , ) КАК ЗакупкиОбороты
        ПО СписываетсоеСДатойЦены.Номенклатура = ЗакупкиОбороты.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ НачальныйОстаток КАК НачальныйОстаток
        ПО СписываетсоеСДатойЦены.Номенклатура = НачальныйОстаток.Номенклатура
{ГДЕ
    СписываетсоеСДатойЦены.Номенклатура.*,
    СписываетсоеСДатойЦены.Регистратор.*,
    СписываетсоеСДатойЦены.КоличествоСписываемое,
    (ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0)) КАК Поле1,
    (ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) * ЕСТЬNULL(СписываетсоеСДатойЦены.КоличествоСписываемое, 0)) КАК Поле2,
    СписываетсоеСДатойЦены.Номенклатура.Код,
    СписываетсоеСДатойЦены.Номенклатура.Артикул,
    СписываетсоеСДатойЦены.Номенклатура.НаименованиеПолное,
    СписываетсоеСДатойЦены.Номенклатура.СтранаПроисхождения.*,
    СписываетсоеСДатойЦены.Номенклатура.Комментарий,
    ПродажиОбороты.КоличествоОборот,
    ЗакупкиОбороты.КоличествоОборот}

УПОРЯДОЧИТЬ ПО
    СписываетсоеСДатойЦены.Номенклатура.Наименование,
    СписываетсоеСДатойЦены.Регистратор.МоментВремени УБЫВ
{УПОРЯДОЧИТЬ ПО
    Номенклатура.*,
    Регистратор.*,
    Код,
    Артикул,
    НаименованиеПолное,
    СтранаПроисхождения.*,
    Комментарий,
    КоличествоПродаж,
    КоличествоЗакупок,
    ОстатокНаНачалоПериода,
    ОстатокНаКонецПериода,
    Цена,
    Всего,
    СписываетсоеСДатойЦены.Регистратор.МоментВремени}
ИТОГИ
    МАКСИМУМ(ОстатокНаНачалоПериода),
    МАКСИМУМ(КоличествоПродаж),
    МАКСИМУМ(КоличествоЗакупок),
    СУММА(ОстатокНаКонецПериода),
    ВЫБОР
        КОГДА Регистратор ЕСТЬ NULL
            ТОГДА ВЫБОР
                    КОГДА СУММА(ОстатокНаКонецПериода) = 0
                        ТОГДА 0
                    ИНАЧЕ ВЫРАЗИТЬ(СУММА(Всего) / СУММА(ОстатокНаКонецПериода) КАК ЧИСЛО(15, 2))
                КОНЕЦ
        ИНАЧЕ ВЫРАЗИТЬ(СРЕДНЕЕ(Цена) КАК ЧИСЛО(15, 2))
    КОНЕЦ КАК Цена,
    СУММА(Всего)
ПО
    ОБЩИЕ,
    Номенклатура,
    Регистратор
{ИТОГИ ПО
    Номенклатура.*,
    Регистратор.*,
    Код,
    Артикул,
    НаименованиеПолное,
    СтранаПроисхождения.*,
    Комментарий,
    КоличествоПродаж,
    КоличествоЗакупок,
    ОстатокНаНачалоПериода,
    ОстатокНаКонецПериода,
    Цена,
    Всего}
6 mikecool
 
27.02.15
21:22
заверни его обратно, читать лень )
7 kn
 
27.02.15
21:24
да понятно
пробую по разному и с {} и без
если на номенклатуру накладываю отбор то показывает
а если общий то этой номенклатуры нет, глаза на месте.
8 kn
 
27.02.15
21:25
консоль сама доступные поля строит видимо
9 mikecool
 
27.02.15
21:25
консоли плевать на {}
10 RomanYS
 
27.02.15
21:29
попробуй в последнем запросе переименовать Номенклатуру (как НоменклатураОтчета) и фильтруй по нему
11 kn
 
27.02.15
21:32
(9)после очистки {} тот же результат
(10)а для вышестоящих запросов сработает отбор?
12 kn
 
27.02.15
21:35
(10) так да не показывает,
самое интересное что по смыслу номенклатура должна показываться в общем списке, данные которые показываются при отборе мне кажутся правильными, а полные - нет
13 Defender aka LINN
 
27.02.15
21:41
Результирующий запрос смотри, думай
14 France
 
27.02.15
23:56
мля.. смотреть страшно, а анализировать - лениво.. совести нет у ТС))
15 kn
 
01.03.15
10:37
дело было в ВЫБРАТЬ ПЕРВЫЕ 1, надо было периписать этот запрос
для отбора срабатывал и показывал результат, а без отбора - не показывал)
16 kn
 
01.03.15
10:39
(14) а карандаш есть?