Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прошу помощи с построением отчета
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
pqrst
Доброго времени суток, уважаемые форумчане!

Добровольно-принудительно пришлось заниматься 1С.

Ситуация такая: есть в консоли отчетов отчет остатки на складах со столбцами: Наименование, Дней на складе

Необходимо его изменить: добавить колонки, в которых отображалась инфонмация о днях на складе в зависимости от колличества дней, т.е.:
Наименование - 120 дней на складе - 180 дней на складе - 360 дней на складе

Как его можно привести к такому виду?
Пытался добавлять колонки, но такого параметра, как колличество дней на складе нет, а выражением не дает.

 i 

Ознакомьтесь с правилами. Перенесено.
 
Vofka
Выполнить 3 запроса к остаткам на нужные даты и результаты соедить.
sava1
Цитата(Vofka @ 09.09.12, 11:16) необходимо зарегистрироваться для просмотра ссылки
Выполнить 3 запроса к остаткам на нужные даты и результаты соедить.


в Екселе !
Vofka
Цитата(sava1 @ 10.09.12, 8:12) необходимо зарегистрироваться для просмотра ссылки
в Екселе !

Не понял.
Batchir
А я понял.
Понял что для оказания помощи:
1. нужно знать что за конфигурация.
2. нужно видеть текст запроса, т.к. консоль отчетов используется для написания своих отчетов, и что там у ТС известно только одному ТС.
pqrst
Согласен что для решения вопроса надо прояснить ситуацию. Конфигурация УПП 1.3.14.3

А вот текст запроса:

ВЫБРАТЬ
    ДопХарактеристика.Значение КАК Поставщик,
    ОстаткиРезервы.Номенклатура КАК Номенклатура,
    ОстаткиРезервы.СерияНоменклатуры КАК СерияНоменклатуры,
    ОстаткиРезервы.ДокументРезерваСоСклада КАК ДокументРезерваСоСклада,
    ОстаткиРезервы.ДнейНаСкладе,
    ОстаткиРезервы.КоличествоОстаток КАК КоличествоОстаток,
    ОстаткиРезервы.РезервНаСкладе КАК РезервНаСкладе,
    ОстаткиРезервы.КоличествоОстаток - ОстаткиРезервы.РезервНаСкладе КАК СвободныйОстаток,
    ОстаткиРезервы.ЗаказаноПоставщику КАК ЗаказаноПоставщику,
    ОстаткиРезервы.РазмещеноВЗаказахПоставщику КАК РазмещеноВЗаказахПоставщику,
    ОстаткиРезервы.ЗаказаноПоставщику - ОстаткиРезервы.РазмещеноВЗаказахПоставщику КАК ОстатокРазмещения,
    ОстаткиРезервы.КоличествоОстаток - ОстаткиРезервы.РезервНаСкладе + ОстаткиРезервы.ЗаказаноПоставщику - ОстаткиРезервы.РазмещеноВЗаказахПоставщику КАК ОбщийСвободныйОстаток
ИЗ
    (ВЫБРАТЬ
        ТоварыНаСкладахОстатки.Склад КАК Склад,
        ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
        ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
        ТоварыНаСкладахОстатки.СерияНоменклатуры КАК СерияНоменклатуры,
        НЕОПРЕДЕЛЕНО КАК ДокументРезерваСоСклада,
        ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
        0 КАК РезервНаСкладе,
        0 КАК ЗаказаноПоставщику,
        0 КАК РазмещеноВЗаказахПоставщику,
        РАЗНОСТЬДАТ(ТоварыНаСкладахОстатки.СерияНоменклатуры.ДатаПрихода, &ДатаКон, ДЕНЬ) КАК ДнейНаСкладе
    ИЗ
        РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаКон, Склад = &Склад) КАК ТоварыНаСкладахОстатки
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ТоварыВРезервеНаСкладахОстатки.Склад,
        ТоварыВРезервеНаСкладахОстатки.Номенклатура,
        ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры,
        ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры,
        ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
        0,
        ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
        0,
        0,
        0
    ИЗ
        РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&ДатаКон, ) КАК ТоварыВРезервеНаСкладахОстатки
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ВложенныйЗапрос.ЗаказПоставщику.Склад,
        ВложенныйЗапрос.Номенклатура,
        ВложенныйЗапрос.ХарактеристикаНоменклатуры,
        НЕОПРЕДЕЛЕНО,
        ВложенныйЗапрос.ЗаказПокупателя,
        0,
        0,
        ВложенныйЗапрос.ЗаказаноПоставщику,
        ВложенныйЗапрос.РазмещеноВЗаказахПоставщику,
        0
    ИЗ
        (ВЫБРАТЬ
            ЗаказыПоставщикамОстатки.Номенклатура КАК Номенклатура,
            ЗаказыПоставщикамОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
            ЗаказыПоставщикамОстатки.ЗаказПоставщику КАК ЗаказПоставщику,
            НЕОПРЕДЕЛЕНО КАК ЗаказПокупателя,
            ЗаказыПоставщикамОстатки.КоличествоОстаток КАК ЗаказаноПоставщику,
            0 КАК РазмещеноВЗаказахПоставщику
        ИЗ
            РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаКон, ЗаказПоставщику.ДатаПоступления МЕЖДУ &ДатаВПути1 И &ДатаВПути2) КАК ЗаказыПоставщикамОстатки
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            РазмещениеЗаказовПокупателейОстатки.Номенклатура,
            РазмещениеЗаказовПокупателейОстатки.ХарактеристикаНоменклатуры,
            РазмещениеЗаказовПокупателейОстатки.ЗаказПоставщику,
            РазмещениеЗаказовПокупателейОстатки.ЗаказПокупателя,
            0,
            РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток
        ИЗ
            РегистрНакопления.РазмещениеЗаказовПокупателей.Остатки(&ДатаКон, ) КАК РазмещениеЗаказовПокупателейОстатки) КАК ВложенныйЗапрос) КАК ОстаткиРезервы
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗначенияСвойствОбъектов.Значение КАК Значение,
            ЗначенияСвойствОбъектов.Объект КАК Объект
        ИЗ
            РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ГДЕ
            ЗначенияСвойствОбъектов.Свойство.Ссылка = &СвойствоПоставщика) КАК ДопХарактеристика
        ПО ОстаткиРезервы.ХарактеристикаНоменклатуры = ДопХарактеристика.Объект
ГДЕ
    ОстаткиРезервы.Номенклатура В ИЕРАРХИИ(&Номенклатура)

СГРУППИРОВАТЬ ПО
    ОстаткиРезервы.ДнейНаСкладе,
    ДопХарактеристика.Значение,
    ОстаткиРезервы.Номенклатура,
    ОстаткиРезервы.СерияНоменклатуры,
    ОстаткиРезервы.ДокументРезерваСоСклада,
    ОстаткиРезервы.КоличествоОстаток,
    ОстаткиРезервы.РезервНаСкладе,
    ОстаткиРезервы.ЗаказаноПоставщику,
    ОстаткиРезервы.РазмещеноВЗаказахПоставщику


Временно настроил отчет на отбор по параметрам с изменением цвета, но не думаю что в таком виде он будет принят.
Batchir
Насколько я понял Вы хотите видеть что-то типа
Номенклара ___ 120-180 дней на складе ___ 180-360 дней на складе ___ более 360 дней на складе
Товар 1________1__________________________0_______________________0
Товар 2________0__________________________1_______________________0
Товар 3________0__________________________0_______________________1

?
pqrst
именно так, но еще там надо усложнить условием:
если закупка плановая и на складе больше 120 дней то в первый столбец, если бльше 180 то во второй столбец.

Вот как эти отборы делать, не знаю. Читал все выходные про СКД, но еще не до конца разобрался с объединением запросов.
Я так понимаю что надо результат запроса делать одной виртуальной таблицей и из нее вытягивать в результирующую.
sava1
ВЫБРАТЬ
    ....    
    ОстаткиРезервы.ДнейНаСкладе,

Добавить
CASe WHEN ОстаткиРезервы.ДнейНаСкладе < 180 THEN ОстаткиРезервы.ДнейНаСкладе ELSE 0 END as Days1,
CASe WHEN ОстаткиРезервы.ДнейНаСкладе > 180 AND ОстаткиРезервы.ДнейНаСкладе < 360 THEN ОстаткиРезервы.ДнейНаСкладе ELSE 0 END as Days2,
CASe WHEN ОстаткиРезервы.ДнейНаСкладе > 360 THEN ОстаткиРезервы.ДнейНаСкладе ELSE 0 END as Days3,

или в скд использовать Вычисляемые поля, в которые вписать это-же текст



 ! 

Выделяйте код! Или будем удалять
 
Batchir
Нужно добавить несколько расчетных количеств и заполнять их, с помощью конструкции Выбор

"Выбор Когда (ОстаткиРезервы.ДнейНаСкладе >= 120 И ОстаткиРезервы.ДнейНаСкладе < 180)
            ИЛИ (ЗакупкаПлановая И ОстаткиРезервы.ДнейНаСкладе >= 120) Тогда
<КоличествоОстатка>
Иначе 0
Конец КАК Колво120

Выбор Когда ОстаткиРезервы.ДнейНаСкладе >= 180 И ОстаткиРезервы.ДнейНаСкладе < 360 И Не ЗакупкаПлановая Тогда
<Количествоостатки>
Иначе 0
Конец КАК Колво180

Выбор Когда ОстаткиРезервы.ДнейНаСкладе >= 360 И Не ЗакупкаПлановая Тогда
<Количествоостатки>
Иначе 0
Конец КАК Колво360"


Текст писался от руки и является примером для решения задачи
ЗакупкаПлановая - это вы сами должны определять в тесте запроса
pqrst
Спасибо! Буду пробовать!
Если что отпишусь!
Прошу прощения за возможно глупые вопросы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.