Имя: Пароль:
1C
1С v8
запрос на выборку цены номенклатуры из последнего поступления.
,
0 Novi4ek2015
 
24.03.15
13:50
Есть запрос, на выборку цены номенклатуры из последнего поступления.
Если поступление 1 шт., то все нормально, а если поступление 2 и более шт. товара , то выдает ошибку делить на 0 нельзя.
|ВЫБРАТЬ
|    ЗакупкиОбороты.Период,
|    ЗакупкиОбороты.Номенклатура как Номенклатура,
|ВЫБОР
|    КОГДА ЗакупкиОбороты.СтоимостьОборот <> 0
|        ТОГДА ЗакупкиОбороты.СтоимостьОборот / ЗакупкиОбороты.КоличествоОборот
|    ИНАЧЕ 0
|КОНЕЦ КАК Цена
|ПОМЕСТИТЬ Данные
|ИЗ
|    РегистрНакопления.Закупки.Обороты(, , Регистратор, Номенклатура = &Номенклатура) КАК ЗакупкиОбороты

Если : КОГДА ЗакупкиОбороты.СтоимостьОборот <> 0 и ЗакупкиОбороты.КоличествоОборот <> 0, то запрос цену не выводит.
Помогите, как правильно написать эту строчку?
1 SleepyHead
 
гуру
24.03.15
13:53
ВЫБОР КОГДА Закупки.КоличествоОборот=0 Тогда 0 ИНАЧЕ ЗакупкиОбороты.СтоимостьОборот / ЗакупкиОбороты.КоличествоОборот КОНЕЦ
2 Novi4ek2015
 
24.03.15
13:58
SleepyHead, в таком случае, он вообще не ставит цену
3 Novi4ek2015
 
24.03.15
14:13
Кто нибудь сталкивался с этим?
4 hhhh
 
24.03.15
14:13
а где запрос на выбор цены?
5 Novi4ek2015
 
24.03.15
14:23
Он Дальше, ошибка в первой части
6 Simod
 
24.03.15
14:24
Это вообще какая конфигурация?
7 hhhh
 
24.03.15
14:28
(5) ошибки нет ведь, написано, не ставит цену.
8 Novi4ek2015
 
24.03.15
14:28
1с 8.2 УТ 10.3
9 Novi4ek2015
 
24.03.15
14:28
Запрос.Текст = "
    |ВЫБРАТЬ
    |    ЗакупкиОбороты.Период,
    |    ЗакупкиОбороты.Номенклатура как Номенклатура,
    |ВЫБОР
    |    КОГДА ЗакупкиОбороты.КоличествоОборот <> 0
    |        ТОГДА ЗакупкиОбороты.СтоимостьОборот / ЗакупкиОбороты.КоличествоОборот
    |    ИНАЧЕ 0
    |КОНЕЦ КАК Цена
    |ПОМЕСТИТЬ Данные
    |ИЗ
    |    РегистрНакопления.Закупки.Обороты(, , Регистратор, Номенклатура = &Номенклатура) КАК ЗакупкиОбороты
    |;

////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |   МАКСИМУМ(Данные.Период) КАК Период,
      |  Данные.Номенклатура
    |ПОМЕСТИТЬ Последнее
    |ИЗ
    |   Данные КАК Данные
    |СГРУППИРОВАТЬ ПО
    |    Данные.Номенклатура
    |;
////////////////////////////////////////////////////////////////////////////////

    |ВЫБРАТЬ
    |    Данные.Период,
    |    Данные.Номенклатура,
    |    МАКСИМУМ(Данные.Цена) КАК Цена
    |ИЗ
    |    Данные КАК Данные
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Последнее КАК Последнее
    |        ПО Данные.Период = Последнее.Период
    |            И Данные.Номенклатура = Последнее.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    |   Данные.Период,
    |   Данные.Номенклатура
    |    ";
10 D_E_S_131
 
24.03.15
14:31

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

УПОРЯДОЧИТЬ ПО
    ДокРегистратор УБЫВ
11 Novi4ek2015
 
24.03.15
14:39
Вообще перестает ставить цену
12 Novi4ek2015
 
24.03.15
14:50
D_E_S_131, еще вопрос такой, а как указать,чтобы отбор был на дату создания документа?
13 Simod
 
24.03.15
14:54
(10) Неправильно. Если документ введен задним числом, то будет он, а не последний по хронологии.
14 D_E_S_131
 
24.03.15
14:57
(11) "Вообще перестает ставить цену" - показывай скрин со списком записей в регистре "Закупки".
(12) Что значит "на дату создания"? Обороты это значения в периоде.
(13) в (0) шла речь о "из последнего поступления". Так-то может сортировать как хочет — по ссылке, по дате, по номеру и т.п.
Основная теорема систематики: Новые системы плодят новые проблемы.