Имя: Пароль:
1C
1С v8
Вывод дат прихода и расхода в одной строке в отчете
,
0 ДимДимыч
 
12.05.16
09:02
Добрый день!

Он выводит данные по сертификатам, то есть когда пришла пачка по данному сертификату, когда ушла, её тоннаж и номер вагона..
Не могу сделать так, чтобы ДатаПрихода и ДатаРасхода по одному сертификату была в одной строчке.
Вот собственно сам отчет:

ВЫБРАТЬ
    НоменклатураКоличествоОстаткиИОбороты.Вагон КАК Вагон,
    НоменклатураКоличествоОстаткиИОбороты.Сертификат,
    НоменклатураКоличествоОстаткиИОбороты.КоличествоКонечныйОстаток КАК Количество,
    НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ) КАК Дата,
    НоменклатураКоличествоОстаткиИОбороты.КоличествоПриход,
    НоменклатураКоличествоОстаткиИОбороты.КоличествоРасход,
    ВЫБОР
        КОГДА НоменклатураКоличествоОстаткиИОбороты.КоличествоПриход <> 0
            ТОГДА НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ)
        ИНАЧЕ NULL
    КОНЕЦ КАК ДатаПрихода,
    ВЫБОР
        КОГДА НоменклатураКоличествоОстаткиИОбороты.КоличествоРасход <> 0
            ТОГДА НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ)
        ИНАЧЕ NULL
    КОНЕЦ КАК ДатаРасхода
ИЗ
    РегистрНакопления.НоменклатураКоличество.ОстаткиИОбороты(, , Регистратор, , ) КАК НоменклатураКоличествоОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    НоменклатураКоличествоОстаткиИОбороты.Вагон,
    НоменклатураКоличествоОстаткиИОбороты.Сертификат,
    НоменклатураКоличествоОстаткиИОбороты.КоличествоКонечныйОстаток,
    НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ),
    НоменклатураКоличествоОстаткиИОбороты.КоличествоПриход,
    НоменклатураКоличествоОстаткиИОбороты.КоличествоРасход,
    ВЫБОР
        КОГДА НоменклатураКоличествоОстаткиИОбороты.КоличествоПриход <> 0
            ТОГДА НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ)
        ИНАЧЕ NULL
    КОНЕЦ,
    ВЫБОР
        КОГДА НоменклатураКоличествоОстаткиИОбороты.КоличествоРасход <> 0
            ТОГДА НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ)
        ИНАЧЕ NULL
    КОНЕЦ

УПОРЯДОЧИТЬ ПО
    Вагон,
    Дата,
    Количество УБЫВ
1 cons74
 
12.05.16
09:21
лишние поля группировки
ВЫБОР
        КОГДА НоменклатураКоличествоОстаткиИОбороты.КоличествоПриход <> 0
            ТОГДА НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ)
        ИНАЧЕ NULL
    КОНЕЦ,
    ВЫБОР
        КОГДА НоменклатураКоличествоОстаткиИОбороты.КоличествоРасход <> 0
            ТОГДА НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ)
        ИНАЧЕ NULL
    КОНЕЦ
2 cons74
 
12.05.16
09:22
засунь их  в группируемые с функцией максимум
3 ДимДимыч
 
12.05.16
09:31
Не помогает.. Все равно.. наверное из-за того, что беру данные только из регистра накопления.. Пытался брать из прихода и расхода, но там строчки задваиваются и затраиваются..

Вот код если брать из документов:
ВЫБРАТЬ
    Приход.Дата,
    Расход.Дата КАК Дата1,
    Приход.Материалы.(
        НомерВагона,
        НомерСертификата,
        КоличествоТонн
    )
ИЗ
    Документ.Приход КАК Приход
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Расход КАК Расход
        ПО Приход.Материалы.НомерСертификата = Расход.Материалы.НомерСертификата
4 Javersan
 
12.05.16
09:53
Сам же себе ответил. Делай через соединение получишь одну строку. В одной таблице приход в другой расход.
5 Javersan
 
12.05.16
09:57
Если остатки не нужны то используй таблицу оборотов периодичность день.
6 ДимДимыч
 
12.05.16
09:58
(4) Да, только вот к примеру у меня в одном вагоне пришло 10 пачек(сертификат), потом 2-мя расходами они списываются, и программа берет в отчете, и делает что сперва все 10 списались датой 1ого расхода, потом все 10 датой 2ого расхода.. Видимо надо куда-то то ли условие, то ли отбор сделать..
7 aleks_default
 
12.05.16
09:58
а вот это зачем?
НАЧАЛОПЕРИОДА(НоменклатураКоличествоОстаткиИОбороты.Период, ДЕНЬ) КАК Дата,

конечно у тебя ничего не сгруппируется
8 ДимДимыч
 
12.05.16
10:08
(7) Убрал, не влияет это..=(
9 aleks_default
 
12.05.16
10:11
ну и (1) и (2) сделал?
10 ДимДимыч
 
12.05.16
10:19
(9) Да сделал.. Только если это убрать (7) будет в отчете вместо даты писать "Да" или "Нет" и все равно отображать разными строками=(( Вообщем буду мучаться через приход и расход..
11 aleks_default
 
12.05.16
10:25
Ну мучайся, методом тыка обучаться тоже можно, просто медленнее.
12 Javersan
 
12.05.16
10:33
(6) Если у тебя два расхода разными днями, то две строки расхода это правильно. Если расход одним днем то будет одна строка. Тебе уже писали используй (2).
13 ДимДимыч
 
12.05.16
10:42
(11) Получилось через приход-расход.... Вдруг кому-то понадобиться..



ВЫБРАТЬ
    Приход.Дата,
    ПриходМатериалы.НомерВагона,
    ПриходМатериалы.НомерСертификата,
    ПриходМатериалы.КоличествоТонн,
    Расход.Дата КАК Дата1
ИЗ
    Документ.Приход.Материалы КАК ПриходМатериалы
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.Приход КАК Приход
        ПО ПриходМатериалы.Ссылка = Приход.Ссылка
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Расход КАК Расход
        ПО ПриходМатериалы.НомерСертификата = Расход.Материалы.НомерСертификата

СГРУППИРОВАТЬ ПО
    ПриходМатериалы.НомерВагона,
    Приход.Дата,
    ПриходМатериалы.НомерСертификата,
    ПриходМатериалы.КоличествоТонн,
    Расход.Дата
14 ДимДимыч
 
12.05.16
10:43
(12) Видимо я не понял как это использовать..
Программист всегда исправляет последнюю ошибку.