Имя: Пароль:
1C
1С v8
печать ценников по остатку
0 _barracuda_
 
05.04.18
09:48
Добрый день УТП типовая.обработка по печати ценников.Хотелось бы чтобы печатало по реальному количеству на складе.а печатает все по 1

ВЫБРАТЬ
    ИСТИНА КАК Печать,
    СпрНоменклатура.Номенклатура КАК Номенклатура,
    СпрНоменклатура.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    СпрНоменклатура.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
    0 КАК Цена,
    1 КАК Количество
ИЗ
    (ВЫБРАТЬ
        СпрНоменклатура.Ссылка КАК Номенклатура,
        ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНоменклатуры
    ИЗ
        Справочник.Номенклатура КАК СпрНоменклатура
    ГДЕ НЕ СпрНоменклатура.ЭтоГруппа
    {ГДЕ
        СпрНоменклатура.Ссылка.* КАК Номенклатура}
    ОБЪЕДИНИТЬ ВСЕ
    ВЫБРАТЬ
        СпрХарактеристики.Владелец,
        СпрХарактеристики.Ссылка
    ИЗ
        Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристики
    {ГДЕ
        СпрХарактеристики.Владелец.* КАК Номенклатура,
        СпрХарактеристики.Ссылка.* КАК ХарактеристикаНоменклатуры}
    ) КАК СпрНоменклатура

ЛЕВОЕ СОЕДИНЕНИЕ
    (ВЫБРАТЬ
        НаСкладе.Номенклатура,
        НаСкладе.ХарактеристикаНоменклатуры,
        СУММА(НаСкладе.Количество) КАК Количество
    ИЗ
        (ВЫБРАТЬ
            НаСкладе.Номенклатура,
            НаСкладе.ХарактеристикаНоменклатуры,
            НаСкладе.КоличествоОстаток КАК Количество
        ИЗ
            РегистрНакопления.ТоварыНаСкладах.Остатки(, {Номенклатура.* КАК Номенклатура,
               ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
               Склад.* КАК Склад}) КАК НаСкладе
        ОБЪЕДИНИТЬ ВСЕ
        ВЫБРАТЬ
            ВРознице.Номенклатура,
            ВРознице.ХарактеристикаНоменклатуры,
            ВРознице.КоличествоОстаток КАК Количество
        ИЗ
            РегистрНакопления.ТоварыВРознице.Остатки(, {Номенклатура.* КАК Номенклатура,
               ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
               Склад.* КАК Склад}) КАК ВРознице
        ОБЪЕДИНИТЬ ВСЕ
        ВЫБРАТЬ
            ВНТТ.Номенклатура,
            ВНТТ.ХарактеристикаНоменклатуры,
            ВНТТ.КоличествоОстаток КАК Количество
        ИЗ
            РегистрНакопления.ТоварыВНТТ.Остатки(, {Номенклатура.* КАК Номенклатура,
               ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
               Склад.* КАК Склад}) КАК ВНТТ
        ) КАК НаСкладе
    СГРУППИРОВАТЬ ПО
        НаСкладе.Номенклатура,
        НаСкладе.ХарактеристикаНоменклатуры
    ) КАК НаСкладе
ПО
    СпрНоменклатура.Номенклатура = НаСкладе.Номенклатура
    И СпрНоменклатура.ХарактеристикаНоменклатуры = НаСкладе.ХарактеристикаНоменклатуры
ГДЕ
    ЕСТЬNULL(НаСкладе.Количество, 0) > 0

УПОРЯДОЧИТЬ ПО
    СпрНоменклатура.Номенклатура.Наименование,
    СпрНоменклатура.ХарактеристикаНоменклатуры.Наименование
1 Cool_Profi
 
05.04.18
09:52
ВЫБРАТЬ
...
    0 КАК Цена,
    1 КАК Количество

А сколько оно должно при таком запросе печатать?
2 _barracuda_
 
05.04.18
09:52
(1) (( так понятно.подскажите как лучше переделать
3 Ненавижу 1С
 
гуру
05.04.18
09:56
4 _barracuda_
 
05.04.18
09:59
(3)там много трепа,по делу ноль слов.ни примера ничего
5 Ненавижу 1С
 
гуру
05.04.18
10:01
НаСкладе.Количество КАК Количество
6 _barracuda_
 
05.04.18
10:21
(5) извините запрос скопировал с отладчика чтобы полностью посмотреть а в процедуре это выглядит так:


    ТекстЗапроса = "
    |ВЫБРАТЬ
    |    ИСТИНА КАК Печать,
    |    СпрНоменклатура.Номенклатура КАК Номенклатура,
    |    СпрНоменклатура.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    |    СпрНоменклатура.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
    |    0 КАК Цена,
    |   НаСкладе.Количество КАК Количество
    |    (ВЫБРАТЬ
    |        СпрНоменклатура.Ссылка КАК Номенклатура,
    |        ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК ХарактеристикаНоменклатуры
    |    ИЗ
    |        Справочник.Номенклатура КАК СпрНоменклатура
    |    ГДЕ НЕ СпрНоменклатура.ЭтоГруппа
    |    {ГДЕ
    |        СпрНоменклатура.Ссылка.* КАК Номенклатура}
    |    ОБЪЕДИНИТЬ ВСЕ
    |    ВЫБРАТЬ
    |        СпрХарактеристики.Владелец,
    |        СпрХарактеристики.Ссылка
    |    ИЗ
    |        Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристики
    |    {ГДЕ
    |        СпрХарактеристики.Владелец.* КАК Номенклатура,
    |        СпрХарактеристики.Ссылка.* КАК ХарактеристикаНоменклатуры}
    |    ) КАК СпрНоменклатура
    |";
    
    Если ТолькоИмеющиесяВНаличии Тогда
        ТекстЗапроса = ТекстЗапроса + "
        |ЛЕВОЕ СОЕДИНЕНИЕ
        |    (ВЫБРАТЬ
        |        НаСкладе.Номенклатура,
        |        НаСкладе.ХарактеристикаНоменклатуры,
        |        СУММА(НаСкладе.Количество) КАК Количество
        |    ИЗ
        |        (ВЫБРАТЬ
        |            НаСкладе.Номенклатура,
        |            НаСкладе.ХарактеристикаНоменклатуры,
        |            НаСкладе.КоличествоОстаток КАК Количество
        |        ИЗ
        |            РегистрНакопления.ТоварыНаСкладах.Остатки(, {Номенклатура.* КАК Номенклатура,
        |               ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
        |               Склад.* КАК Склад}) КАК НаСкладе
        |        ОБЪЕДИНИТЬ ВСЕ
        |        ВЫБРАТЬ
        |            ВРознице.Номенклатура,
        |            ВРознице.ХарактеристикаНоменклатуры,
        |            ВРознице.КоличествоОстаток КАК Количество
        |        ИЗ
        |            РегистрНакопления.ТоварыВРознице.Остатки(, {Номенклатура.* КАК Номенклатура,
        |               ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
        |               Склад.* КАК Склад}) КАК ВРознице
        |        ОБЪЕДИНИТЬ ВСЕ
        |        ВЫБРАТЬ
        |            ВНТТ.Номенклатура,
        |            ВНТТ.ХарактеристикаНоменклатуры,
        |            ВНТТ.КоличествоОстаток КАК Количество
        |        ИЗ
        |            РегистрНакопления.ТоварыВНТТ.Остатки(, {Номенклатура.* КАК Номенклатура,
        |               ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
        |               Склад.* КАК Склад}) КАК ВНТТ
        |        ) КАК НаСкладе
        |    СГРУППИРОВАТЬ ПО
        |        НаСкладе.Номенклатура,
        |        НаСкладе.ХарактеристикаНоменклатуры
        |    ) КАК НаСкладе
        |ПО
        |    СпрНоменклатура.Номенклатура = НаСкладе.Номенклатура
        |    И СпрНоменклатура.ХарактеристикаНоменклатуры = НаСкладе.ХарактеристикаНоменклатуры
        |ГДЕ
        |    ЕСТЬNULL(НаСкладе.Количество, 0) > 0
        |";
    КонецЕсли;

    ТекстЗапроса = ТекстЗапроса + "
    |УПОРЯДОЧИТЬ ПО
    |    СпрНоменклатура.Номенклатура.Наименование,
    |    СпрНоменклатура.ХарактеристикаНоменклатуры.Наименование
    |";

    // Соответствие имен полей в запросе и их представлений в отчете.
    СтруктураПредставлениеПолей = Новый Структура(
    "Номенклатура,   ХарактеристикаНоменклатуры,    Склад",
    "Номенклатура", "Характеристика номенклатуры", "Склад");

    ПостроительОтчета.Текст = ТекстЗапроса;


естественно ругается на НаСкладе.Количество КАК Количество  поле не найдено
7 _barracuda_
 
05.04.18
10:29
ругается на НаСкладе.Количество КАК Количество  поле не найдено
8 Ненавижу 1С
 
гуру
05.04.18
10:31
(7) позовите уже программиста
9 _barracuda_
 
05.04.18
10:32
)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн