Имя: Пароль:
1C
1С v8
Прошу совета по формированию отчета
0 СэдКС
 
29.11.13
07:54
Доброе утро! Сегодня пятница и по идее мозг должен отдыхать, но нельзя оставить один отчет без внимания. Делаю отчет по регистрау накопления Продажи и регистру сведений ЦеныНоменклатуры. В отчете выводятся док-ты реализации за определенный период. В нем есть такая колонка как Стоимость. Она и берется с регистра ЦеныНоменклатуры.
Когда экономисты формируют отчет, они должны видеть стоимость именно ту, которая была установлена в выбранный отрезок дат. Цена за один и тот же месяц может рассчитаться 2 раза. Тогда нужно брать последнюю. Отчет может формироваться не только за предыдущий месяц, но и за предпредыдущий.

Я выставляю даты с док-тов реал-ции и период с регистра сведений. Но когда выставляешь этот период, формируются реализации только те, для продукции которых стоимость была установлена в указанный период.

Что посоветуете?
1 Kurbash
 
29.11.13
07:58
левое соединение по номенклтурек регистру сведений Цены Номенклатуры.СрезПОследних
2 Defender aka LINN
 
29.11.13
08:00
(0) Найти переводчика?
3 СэдКС
 
29.11.13
08:01
(1) Ну это понятно. Иначе бы стоимость у меня не вышла правильно. Но мне не нужна последняя стоимость, мне нужна стоимость, которая была рассчитана в заданный период!!
4 Kurbash
 
29.11.13
08:02
переведи, давай примерчик простой
5 СэдКС
 
29.11.13
08:02
(2) Я знала, что меня никто не рассшифрует.
6 Kurbash
 
29.11.13
08:03
это нормально кггда эмоции логично трудно выражаться давай пример
7 СэдКС
 
29.11.13
08:06
Пример:

Плановая стоимость кабеля КВВГ 15.08.13 - 100 р.
Плановая стоимость кабеля КВВГ 15.09.13. - 110 р.
Задаем период: с 01.08.13 по 01.09.13. Выходят все док-ты реализации за этот период, стоимость кабеля КВВГ должна выйти 100 р.
8 Kurbash
 
29.11.13
08:07
срезпервых?
9 СэдКС
 
29.11.13
08:11
(8) неееет. мне первые не нужны значения
10 Kurbash
 
29.11.13
08:12
так значения то будут на заданныей период
11 Kurbash
 
29.11.13
08:12
согласно твоему примеру такое и нужно просто в параметрах виртуаьной таблицы задай период и все
12 kochurovg
 
29.11.13
08:16
(7) СрезПоследних на 01.09.2013 даст 100р.
13 СэдКС
 
29.11.13
08:16
разве срезпервых не обратное значение срезупоследних?? плановая стоимость кабеля была рассчитана в начале года, в июне, просто я не стала приводить их
14 СэдКС
 
29.11.13
08:19
(12) да, так и есть. Но проблема есть в том, что если в заданный период не была рассчитана стоимость для продукции, которая была реализованна в период с 01.08.13 по 01.09.13, то док-ты реализации вообще не выходят
15 СэдКС
 
29.11.13
08:23
"Компьютеры — прекрасное средство для решения проблем, которых до их появления не было." - вышло сейчас под рекламой, согласна полностью
16 Defender aka LINN
 
29.11.13
08:25
(7) И за 02.08 100р должна быть? Это еще почему?
Ну и то, как оно должно быть - это хорошо, но не хватает описания - как оно сейчас
17 kochurovg
 
29.11.13
08:27
(14) боюсь без текста запроса тебе никто не поможет.
Похоже в запросе ты сначала выбираешь цены а потом реализацию.
18 catena
 
29.11.13
08:27
(14)Значит ты еще что-то в запросе делаешь. Так и будем гадать на кофейной гуще или текст покажешь?
19 СэдКС
 
29.11.13
08:29
Запрос:

ВЫБРАТЬ РАЗЛИЧНЫЕ
    Продажи.Регистратор,
    Продажи.Регистратор.Номер КАК Номер,
    Продажи.Регистратор.Дата КАК Дата,
    Продажи.Организация,
    Продажи.Контрагент,
    Продажи.Номенклатура,
    Продажи.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдИзм,
    Продажи.Количество,
    ВЫБОР
        КОГДА ЕСТЬNULL(Продажи.Количество, 0) = 0
            ТОГДА 0
        ИНАЧЕ ВЫБОР
                КОГДА РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000007"
                        ИЛИ РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000001"
                        ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000007"
                        ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000001"
                    ТОГДА ЕСТЬNULL(Продажи.Стоимость, 0) / ЕСТЬNULL(Продажи.Количество, 0) * 100 / 112
                ИНАЧЕ ВЫБОР
                        КОГДА РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000003"
                                ИЛИ РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000002"
                                ИЛИ РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000005"
                                ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000003"
                                ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000002"
                                ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000005"
                            ТОГДА ЕСТЬNULL(Продажи.Стоимость / Продажи.Количество, 0)
                    КОНЕЦ
            КОНЕЦ
    КОНЕЦ КАК ЦенаБезНДС,
    ВЫБОР
        КОГДА РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000007"
                ИЛИ РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000001"
                ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000007"
                ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000001"
            ТОГДА Продажи.Стоимость * 100 / 112
        ИНАЧЕ ВЫБОР
                КОГДА РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000003"
                        ИЛИ РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000002"
                        ИЛИ РеализацияТоваровУслугТовары.СтавкаНДС.Код = "000000005"
                        ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000003"
                        ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000002"
                        ИЛИ РеализацияТоваровУслугУслуги.СтавкаНДС.Код = "000000005"
                    ТОГДА Продажи.Стоимость
            КОНЕЦ
    КОНЕЦ КАК СуммаРеализацииБезНДС
ПОМЕСТИТЬ Запрос1
ИЗ
    РегистрНакопления.Продажи КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ПО Продажи.Регистратор = РеализацияТоваровУслугТовары.Ссылка
            И Продажи.Номенклатура = РеализацияТоваровУслугТовары.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
        ПО Продажи.Номенклатура = РеализацияТоваровУслугУслуги.Номенклатура
            И (Продажи.Регистратор = РеализацияТоваровУслугТовары.Ссылка)
ГДЕ
    Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Запрос2.Трудозатраты,
    Запрос2.СуммаТрудозатрат,
    Запрос2.Электроэнергия,
    Запрос2.СуммаЭлектроэнергии,
    Запрос2.ПлановаяСтоимость,
    Запрос2.ПлановаяДляРасчета,
    Запрос2.Регистратор,
    Запрос2.Номер,
    Запрос2.Дата,
    Запрос2.Организация,
    Запрос2.Контрагент,
    Запрос2.Номенклатура,
    Запрос2.ЕдИзм,
    Запрос2.Количество,
    Запрос2.ЦенаБезНДС,
    Запрос2.СуммаРеализацииБезНДС,
    ВЫБОР
        КОГДА Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Готовая продукция"
                ИЛИ Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Прочие материалы"
            ТОГДА (Запрос2.ПлановаяСтоимость - Запрос2.Трудозатраты - Запрос2.Электроэнергия) / 1.15
        ИНАЧЕ ВЫБОР
                КОГДА Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                            И ПОДСТРОКА(Запрос2.Номенклатура.Наименование, 1, 6) = "Кабель"
                        ИЛИ Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                            И ПОДСТРОКА(Запрос2.Номенклатура.Наименование, 1, 5) = "Труба"
                    ТОГДА (Запрос2.ПлановаяДляРасчета - Запрос2.Трудозатраты - Запрос2.Электроэнергия) / 1.02
                ИНАЧЕ ВЫБОР
                        КОГДА Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                            ТОГДА (Запрос2.ПлановаяДляРасчета - Запрос2.Трудозатраты - Запрос2.Электроэнергия) / 1.05
                    КОНЕЦ
            КОНЕЦ
    КОНЕЦ КАК СебестоимостьПоМатериалам,
    ВЫБОР
        КОГДА Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Готовая продукция"
                ИЛИ Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Прочие материалы"
            ТОГДА (Запрос2.ПлановаяСтоимость - Запрос2.Трудозатраты - Запрос2.Электроэнергия) / 1.15 * Запрос2.Количество
        ИНАЧЕ ВЫБОР
                КОГДА Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                            И ПОДСТРОКА(Запрос2.Номенклатура.Наименование, 1, 6) = "Кабель"
                        ИЛИ Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                            И ПОДСТРОКА(Запрос2.Номенклатура.Наименование, 1, 5) = "Труба"
                    ТОГДА (Запрос2.ПлановаяДляРасчета - Запрос2.Трудозатраты - Запрос2.Электроэнергия) / 1.02 * Запрос2.Количество
                ИНАЧЕ ВЫБОР
                        КОГДА Запрос2.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                            ТОГДА (Запрос2.ПлановаяДляРасчета - Запрос2.Трудозатраты - Запрос2.Электроэнергия) / 1.05 * Запрос2.Количество
                    КОНЕЦ
            КОНЕЦ
    КОНЕЦ КАК СуммаСебестоимостиПоМатериалам
ПОМЕСТИТЬ Запрос3
ИЗ
    Запрос2 КАК Запрос2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    Запрос3.Регистратор,
    Запрос3.Дата,
    Запрос3.Номер,
    Запрос3.Организация,
    ВЫБОР
        КОГДА ПОДСТРОКА(Запрос3.Регистратор.Номер, 1, 1) = "К"
            ТОГДА ПРЕДСТАВЛЕНИЕ("Головной офис")
        ИНАЧЕ ВЫБОР
                КОГДА ПОДСТРОКА(Запрос3.Регистратор.Номер, 1, 1) = "1"
                    ТОГДА ПРЕДСТАВЛЕНИЕ("ф. Астана")
                ИНАЧЕ ВЫБОР
                        КОГДА ПОДСТРОКА(Запрос3.Регистратор.Номер, 1, 1) = "2"
                            ТОГДА ПРЕДСТАВЛЕНИЕ("ф. Алматы")
                        ИНАЧЕ ВЫБОР
                                КОГДА ПОДСТРОКА(Запрос3.Регистратор.Номер, 1, 1) = "3"
                                    ТОГДА ПРЕДСТАВЛЕНИЕ("ф. Усть-Каменогорск")
                                ИНАЧЕ ВЫБОР
                                        КОГДА ПОДСТРОКА(Запрос3.Регистратор.Номер, 1, 1) = "4"
                                            ТОГДА ПРЕДСТАВЛЕНИЕ("ф. Актобе")
                                    КОНЕЦ
                            КОНЕЦ
                    КОНЕЦ
            КОНЕЦ
    КОНЕЦ КАК Подразделение,
    Запрос3.Контрагент,
    Запрос3.Номенклатура,
    Запрос3.ЕдИзм,
    Запрос3.Количество,
    Запрос3.ЦенаБезНДС,
    Запрос3.СуммаРеализацииБезНДС,
    Запрос3.СебестоимостьПоМатериалам,
    Запрос3.СуммаСебестоимостиПоМатериалам,
    Запрос3.Трудозатраты,
    Запрос3.СуммаТрудозатрат,
    Запрос3.Электроэнергия,
    Запрос3.СуммаЭлектроэнергии,
    ВЫБОР
        КОГДА Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Готовая продукция"
                ИЛИ Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Прочие материалы"
            ТОГДА Запрос3.ПлановаяСтоимость - Запрос3.Трудозатраты - Запрос3.Электроэнергия - Запрос3.СебестоимостьПоМатериалам
        ИНАЧЕ ВЫБОР
                КОГДА Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                    ТОГДА Запрос3.ПлановаяДляРасчета - Запрос3.Трудозатраты - Запрос3.Электроэнергия - Запрос3.СебестоимостьПоМатериалам
            КОНЕЦ
    КОНЕЦ КАК УсловноПостоянные,
    ВЫБОР
        КОГДА Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Готовая продукция"
                ИЛИ Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Прочие материалы"
            ТОГДА (Запрос3.ПлановаяСтоимость - Запрос3.Трудозатраты - Запрос3.Электроэнергия - Запрос3.СебестоимостьПоМатериалам) * Запрос3.Количество
        ИНАЧЕ ВЫБОР
                КОГДА Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                    ТОГДА (Запрос3.ПлановаяДляРасчета - Запрос3.Трудозатраты - Запрос3.Электроэнергия - Запрос3.СебестоимостьПоМатериалам) * Запрос3.Количество
            КОНЕЦ
    КОНЕЦ КАК СуммаУсловноПостоянных,
    ВЫБОР
        КОГДА Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Готовая продукция"
                ИЛИ Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Прочие материалы"
            ТОГДА Запрос3.СуммаСебестоимостиПоМатериалам + Запрос3.СуммаТрудозатрат + Запрос3.СуммаЭлектроэнергии + (Запрос3.ПлановаяСтоимость - Запрос3.Трудозатраты - Запрос3.Электроэнергия - Запрос3.СебестоимостьПоМатериалам) * Запрос3.Количество
        ИНАЧЕ ВЫБОР
                КОГДА Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                    ТОГДА Запрос3.СуммаСебестоимостиПоМатериалам + Запрос3.СуммаТрудозатрат + Запрос3.СуммаЭлектроэнергии + (Запрос3.ПлановаяДляРасчета - Запрос3.Трудозатраты - Запрос3.Электроэнергия - Запрос3.СебестоимостьПоМатериалам) * Запрос3.Количество
            КОНЕЦ
    КОНЕЦ КАК ИТОГО,
    ВЫБОР
        КОГДА Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Готовая продукция"
                ИЛИ Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Прочие материалы"
            ТОГДА Запрос3.СуммаРеализацииБезНДС - (Запрос3.СуммаСебестоимостиПоМатериалам + Запрос3.СуммаТрудозатрат + Запрос3.СуммаЭлектроэнергии + (Запрос3.ПлановаяСтоимость - Запрос3.Трудозатраты - Запрос3.Электроэнергия - Запрос3.СебестоимостьПоМатериалам) * Запрос3.Количество)
        ИНАЧЕ ВЫБОР
                КОГДА Запрос3.Номенклатура.ВидНоменклатуры.Наименование = "Товары приобретенные"
                    ТОГДА Запрос3.СуммаРеализацииБезНДС - (Запрос3.СуммаСебестоимостиПоМатериалам + Запрос3.СуммаТрудозатрат + Запрос3.СуммаЭлектроэнергии + (Запрос3.ПлановаяДляРасчета - Запрос3.Трудозатраты - Запрос3.Электроэнергия - Запрос3.СебестоимостьПоМатериалам) * Запрос3.Количество)
            КОНЕЦ
    КОНЕЦ КАК Прибыль,
    Запрос3.ПлановаяДляРасчета,
    Запрос3.ПлановаяСтоимость
ИЗ
    Запрос3 КАК Запрос3
20 kochurovg
 
29.11.13
08:33
(19) вот этот вот кусочек во всем виноват :
И ЦеныНоменклатурыСрезПоследних.Период МЕЖДУ &Период1 И &Период2
    И ЦеныНоменклатурыСрезПоследних1.Период МЕЖДУ &Период1 И &Период2

скорее всего надо ***.СрезПоследниХ(&Период2,...)
21 СэдКС
 
29.11.13
08:34
(16) Если до 15.08.13 не было установлены цены, то ничего не должно выходить, я думаю. Сейчас это пока еще в excelle, и цены все есть там, просто в базе это с недавнего времени
22 catena
 
29.11.13
08:34
(19)Когда делаешь левое соединение и накладываешь условия, касающиеся левой таблицы, соединение молча становится внутренним. Твое условие
ГДЕ
    ЦеныНоменклатурыСрезПоследних.ТипЦен.Наименование = "Плановая"
    И ЦеныНоменклатурыСрезПоследних1.ТипЦен.Наименование = "Плановая (для расчета)"

    И ЦеныНоменклатурыСрезПоследних.Период МЕЖДУ &Период1 И &Период2
    И ЦеныНоменклатурыСрезПоследних1.Период МЕЖДУ &Период1 И &Период2

Обрезает все товары с нерасчитанной ценой.

И это... Период все-тки лучше в параметры виртуальной таблицы добавить, да.
23 kochurovg
 
29.11.13
08:35
(21) так цены должны быть на конец периода или на дату документа ?
24 СэдКС
 
29.11.13
08:36
(23) на конец периода
25 kochurovg
 
29.11.13
08:37
(24) тогда однозначно (20) и (24)
26 catena
 
29.11.13
08:40
(25)Может ей не нужны цены до Период1
27 СэдКС
 
29.11.13
08:46
(22) вот здесь вы имели ввиду сделать внутреннее соед.?
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Трудозатраты.СрезПоследних КАК ТрудозатратыСрезПоследних
        ПО Запрос1.Номенклатура = ТрудозатратыСрезПоследних.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ) КАК ЦеныНоменклатурыСрезПоследних1
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура

на первое соединение выставляю внутр., на двух других ругается на соед #1
28 catena
 
29.11.13
08:51
(27)Нет. Я имела в виду, что ты берешь номенклатуру, к ней левым соединением добавляешь цены - видимо хочешь видеть ВСЮ номенклатуру и цены к ней, которые есть. А потом говоришь: но без цен мне не показывай, только где цена ЕСТЬ, плановай и установленная в период с по.

Если все-таки нужна номенклатура без цен, то ВСЕ условия из ГДЕ, касающиеся ЦеныНоменклатуры надо перенести в соединения.
29 СэдКС
 
29.11.13
08:53
(28) мне должна выйти вся реализация, только если в заданный период не была рассчитана стоимость, то в колонке Стоимость должно быть пусто
30 catena
 
29.11.13
08:53
(29)Вот я про это и говорю.
31 catena
 
29.11.13
08:55
Выбрать * из Номенклатура
   Левое соединение Цена

Получаем таблицу:
Шняжка - 5р.
Финтифлюшка - NULL(пуста)

А внизу добавляем:
ГДЕ Цена ...

Из таблицы Финтифлюшка вырезается, потому что ее цена NULL под условие не подходит.
32 СэдКС
 
29.11.13
09:04
(22) указала период в вирт. таблицах. Но в отчете, в параметрах нет значение с и по. Это сделать можно только через отбор? я это не поняла.
33 СэдКС
 
29.11.13
09:12
(31) у меня вроде так и идет в запросе...

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Трудозатраты.СрезПоследних КАК ТрудозатратыСрезПоследних
        ПО Запрос1.Номенклатура = ТрудозатратыСрезПоследних.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период2, ) КАК ЦеныНоменклатурыСрезПоследних1
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период1, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
    ЦеныНоменклатурыСрезПоследних.ТипЦен.Наименование = "Плановая"
    И ЦеныНоменклатурыСрезПоследних1.ТипЦен.Наименование = "Плановая (для расчета)"
34 catena
 
29.11.13
09:35
(33)Да, так и идет. Поэтому и получается "Но когда выставляешь этот период, формируются реализации только те, для продукции которых стоимость была установлена в указанный период"
35 hhhh
 
29.11.13
09:46
(33) блин, вы что, издеваетесь? НУ вот же

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Трудозатраты.СрезПоследних КАК ТрудозатратыСрезПоследних
        ПО Запрос1.Номенклатура = ТрудозатратыСрезПоследних.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период2, ТипЦен = &ТипЦенПлановая) КАК ЦеныНоменклатурыСрезПоследних1
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период1, ТипЦен = &ТипЦенПлановаяДляРасчета) КАК ЦеныНоменклатурыСрезПоследних
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
36 СэдКС
 
29.11.13
10:30
(35) У меня не получается никак с периодом. Я не понимаю, как со среза последних в параметры отчета вытащить период с и период по. Когда просто задаю дату периода, на цену это никак не влияет. Вытаскивает цену последнюю, в соответствии с типом цен.
37 catena
 
29.11.13
10:34
(36)Блин, ну что сложного?

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период1, ТипЦен = &ТипЦенПлановаяДляРасчета) КАК ЦеныНоменклатурыСрезПоследних
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
        И ЦеныНоменклатурыСрезПоследних.Период>=&Период2
        И ЦеныНоменклатурыСрезПоследних.ЧтоТамУвас = "Плановая"
38 СэдКС
 
29.11.13
12:00
(37) У меня не получается это выставить в связях, хоть убей
        И ЦеныНоменклатурыСрезПоследних.Период>=&Период2
        И ЦеныНоменклатурыСрезПоследних.ЧтоТамУвас = "Плановая"
39 Катерина19_94
 
29.11.13
12:02
Лена привет
40 Катерина19_94
 
29.11.13
12:03
если сумма положительная , то выводится в ПКО, если сумма отрицательная то должно быть какое то сообщение??
42 СэдКС
 
29.11.13
12:22
(40) не поняла
43 Катерина19_94
 
29.11.13
12:25
Допустим пользователь выписает ПКО для конкретного контрагента . А программа подсказывает : сколько этот контрагент нам должен.Поэтому:
При выборе контрагента  в документе ПКо создать процедуру, которая проверит задолженность данной организации перед нами.И в случае , если та -полож.,пропишет эту зад-ть в поел СУмма
44 Катерина19_94
 
29.11.13
12:26
я в документе ПКО создала форму ) нажала на реквизит Контрагент и выбрала обработчик события ПРИ ИЗМЕНЕНИИ вот такой код:
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
    КонтрагентПриИзмененииНаСервер()// Вставить содержимое обработчика.
КонецПроцедуры

&НаСервере
Процедура  КонтрагентПриИзмененииНаСервер()
     Запрос = Новый Запрос;
    Запрос.Текст =

     "ВЫБРАТЬ
    |    Задолженности.Контрагент,
    |    Задолженности.СуммаДолга
    |ИЗ
    |    РегистрНакопления.Задолженности КАК Задолженности
    |ГДЕ
    |    Задолженности.Контрагент = &Контрагент";
    
    Запрос.УстановитьПараметр("Контрагент",Объект.Контрагент);
    
    РезультатЗапроса=Запрос.Выполнить();

    Выборка=РезультатЗапроса.Выбрать();
    Если Выборка.Следующий()Тогда
        Объект.Сумма=Строка(Выборка.СуммаДолга);
    КонецЕсли;
    
КонецПроцедуры
45 Катерина19_94
 
29.11.13
12:27
я может что то не так делаю ?
46 СэдКС
 
29.11.13
12:34
(45) не засоряй мою ветку)) думай!
47 Катерина19_94
 
29.11.13
12:34
не засоряю ) просто посмотри правильно я делаю ) пж ) а я тебе куплю ЧИПСЫ )))
48 catena
 
29.11.13
13:05
(38) клавиатура сломалась?
49 НаборДанных
 
29.11.13
13:18
смищьно, Объект.Сумма=Строка(Выборка.СуммаДолга);
50 СэдКС
 
29.11.13
13:19
(48) я забыла, что при выставлении Произвольное в связях можно выставить вручную период, извиняюсь)
Только еще один вопрос, если таблицу 1 я выбираю как ЦеныНоменклатурыСрезПоследних, то какую я ставлю таблицу 2?
51 Катерина19_94
 
29.11.13
13:33
лена ты что ещё всё отчёт делаешь?
52 Катерина19_94
 
29.11.13
13:38
мы пойдём пить чай?
53 Масянька
 
29.11.13
13:40
(52) Лучше - шампаньского :))))
54 Катерина19_94
 
29.11.13
13:41
мы не пьем
55 СэдКС
 
29.11.13
13:41
Отчет мне будет сегодня сниться!
56 Катерина19_94
 
29.11.13
13:41
с твоими печеньками
57 Катерина19_94
 
29.11.13
13:41
и с твоим чаем
58 Масянька
 
29.11.13
13:43
(54) "Мой президент не пьет и не курит,
Лучше бы пил и курил" (С)
59 СэдКС
 
29.11.13
15:12
продублировала регистр сведений еще 2 раза, сделала соединение по периоду, в итоге стоимость вообще не вышла....

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Трудозатраты.СрезПоследних КАК ТрудозатратыСрезПоследних
        ПО Запрос1.Номенклатура = ТрудозатратыСрезПоследних.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен.Наименование = &ПлановаяДляРасчета) КАК ЦеныНоменклатурыСрезПоследних1
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен.Наименование = &ПлановаяДляРасчета) КАК ЦеныНоменклатурыСрезПоследних3
            ПО (ЦеныНоменклатурыСрезПоследних1.Период >= &Период1)
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен.Наименование = &Плановая) КАК ЦеныНоменклатурыСрезПоследних
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен.Наименование = &Плановая) КАК ЦеныНоменклатурыСрезПоследних2
            ПО (ЦеныНоменклатурыСрезПоследних.Период >= &Период2)
        ПО Запрос1.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
60 catena
 
29.11.13
18:59
пичалька
Ошибка? Это не ошибка, это системная функция.