Имя: Пароль:
1C
1С v8
розница 2,1 расчет себестоимсти
0 lite700700
 
30.10.16
20:23
В администрров/ склад создаю документ расчет себестоимости за октябрь
валезает ошибка при нажатии рассчитать и заполнить ---

{ОбщийМодуль.ЗапасыСервер.Модуль(1092)}: Ошибка при вызове метода контекста (Выполнить)
    Результат = Запрос.Выполнить().Выгрузить();
по причине:
Ошибка выполнения запроса

Ошибка SQL: Деление на 0
по причине:
Деление на 0 значения типа Numeric

причем если брать за сентябрь все заполняет нори\мально ,
где то 1с ники не предусмотрели деление на ноль чтоли , хотя вроде смотрег реситр себес нет там нулевых количеств
1 lite700700
 
30.10.16
20:25
вот этот запрос в общем модуле     

Запрос.Текст =
    "ВЫБРАТЬ
    |    РезультатКомплект.Магазин,
    |    РезультатКомплект.Номенклатура,
    |    РезультатКомплект.Характеристика,
    |    РезультатКомплект.КоличествоКомплектов КАК КоличествоКомплектов,
    |    РезультатКомплект.Сумма
    |ПОМЕСТИТЬ РезультатКомплект
    |ИЗ
    |    &ТаблицаПриемник КАК РезультатКомплект
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    СебестоимостьСоСборкой.Магазин,
    |    СебестоимостьСоСборкой.Номенклатура,
    |    СебестоимостьСоСборкой.Характеристика,
    |    СУММА(СебестоимостьСоСборкой.КоличествоПеремещение) КАК КоличествоПеремещение,
    |    СУММА(СебестоимостьСоСборкой.Количество) КАК Количество,
    |    СУММА(СебестоимостьСоСборкой.СуммаОборот) КАК СуммаОборот,
    |    СУММА(СебестоимостьСоСборкой.СуммаОборот) / СУММА(СебестоимостьСоСборкой.Количество) КАК Стоимость
    |ИЗ
    |    (ВЫБРАТЬ
    |        СебестоимостьПоступлений.Магазин КАК Магазин,
    |        СебестоимостьПоступлений.Номенклатура КАК Номенклатура,
    |        СебестоимостьПоступлений.Характеристика КАК Характеристика,
    |        СебестоимостьПоступлений.КоличествоПеремещение КАК КоличествоПеремещение,
    |        СебестоимостьПоступлений.Количество КАК Количество,
    |        СебестоимостьПоступлений.СуммаОборот КАК СуммаОборот
    |    ИЗ
    |        СебестоимостьПоступлений КАК СебестоимостьПоступлений
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        РезультатКомплект.Магазин,
    |        РезультатКомплект.Номенклатура,
    |        РезультатКомплект.Характеристика,
    |        0,
    |        МАКСИМУМ(РезультатКомплект.КоличествоКомплектов),
    |        СУММА(РезультатКомплект.Сумма)
    |    ИЗ
    |        РезультатКомплект КАК РезультатКомплект
    |    
    |    СГРУППИРОВАТЬ ПО
    |        РезультатКомплект.Номенклатура,
    |        РезультатКомплект.Характеристика,
    |        РезультатКомплект.Магазин
    |) КАК СебестоимостьСоСборкой
    |
    |СГРУППИРОВАТЬ ПО
    |    СебестоимостьСоСборкой.Магазин,
    |    СебестоимостьСоСборкой.Характеристика,
    |    СебестоимостьСоСборкой.Номенклатура";
    
    Результат = Запрос.Выполнить().Выгрузить();
    Возврат Результат;
2 Смотрящий
 
30.10.16
20:28
Ошибка SQL: Деление на 0
по причине:
Деление на 0 значения типа Numeric
СУММА(СебестоимостьСоСборкой.СуммаОборот) / СУММА(СебестоимостьСоСборкой.Количество) КАК Стоимость
3 lite700700
 
30.10.16
20:34
И что делать с эим делением ? Это 1с ники писалли
4 lite700700
 
30.10.16
20:36
может КОГДА использовать
5 Смотрящий
 
30.10.16
20:40
Аааа ... Так ты не vолокёшь. Приглаsи sпециалиsта.
6 lite700700
 
30.10.16
20:41
ВЫБОР КОГДА Регистр.Количество = 0 ТОГДА
0
ИНАЧЕ
//тут расчет

КОНЕЦ
такую фигню нашел
7 lite700700
 
30.10.16
20:51
ВЫБОР
| КОГДА СУММА(ВложенныйЗапрос.Себестоимость) <> 0
| ТОГДА (СУММА(ВложенныйЗапрос.СтоимостьБезНДС) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Себестоимость)
| ИНАЧЕ 0
8 lite700700
 
30.10.16
21:11
|   ВЫБОР КОГДА СУММА(СебестоимостьСоСборкой.Количество) <> 0 ТОГДА
     |         СУММА(СебестоимостьСоСборкой.СуммаОборот) / СУММА(СебестоимостьСоСборкой.Количество)
     |   ИНАЧЕ   0
     |   КОНЕЦ      КАК Стоимость
    

короче впаял такую штуку и заработало !