Имя: Пароль:
1C
1С v8
Деление на 0 помогите
0 ghostrid3r
 
15.10.13
15:42
Всем доброго времени суток помогите увидить что мешает выполнению отчета в консоле запросов запрос выполняется успешно, этот же запрос засовываю в компоновку, в результате чего получаю ошибку: Ошибка SQL: Деление на 0
по причине:
Деление на 0 значения типа Numeric


сам запрос:

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

СГРУППИРОВАТЬ ПО
    НЗП.ОС,
    НЗП.Подразделение,
    НЗП.СтатьяИспользования,
    НЗП.Заказчик,
    НЗП.Заказ

ИНДЕКСИРОВАТЬ ПО
    Заказ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ЕСТЬNULL(НЗП.Подразделение, ВыпускПродукции.Подразделение) КАК Подразделение,
    ЕСТЬNULL(НЗП.Заказ, ВыпускПродукции.Заказ) КАК Заказ,
    ЕСТЬNULL(НЗП.СтатьяИспользования, ВыпускПродукции.Заказ.СтатьяИспользования) КАК СтатьяИспользования,
    ЕСТЬNULL(НЗП.Заказчик, ВыпускПродукции.Заказ.ПодразделениеЗаказчик) КАК Заказчик,
    ЕСТЬNULL(НЗП.ОС, ВЫБОР
            КОГДА ВыпускПродукции.Заказ.ОсновноеСредство <> ЗНАЧЕНИЕ(Справочник.ОсновныеСредства.ПустаяСсылка)
                ТОГДА ВыпускПродукции.Заказ.ОсновноеСредство
            ИНАЧЕ ВЫБОР
                    КОГДА ВыпускПродукции.Заказ.ОбъектСтроительства <> ЗНАЧЕНИЕ(Справочник.ОбъектыСтроительства.ПустаяСсылка)
                        ТОГДА ВыпускПродукции.Заказ.ОбъектСтроительства
                КОНЕЦ
        КОНЕЦ) КАК ОС,
    НЗП.МатериальныеСтоимость КАК МатериальныеСтоимость,
    НЗП.ОплатаТруда КАК ОплатаТруда,
    НЗП.ВозвратныеОтходыСтоимость КАК ВозвратныеОтходыСтоимость,
    НЗП.СтоимостьНЗП КАК СтоимостьНЗП,
    НЗППоЗаказам.СтоимостьНЗППоЗаказу КАК СтоимостьНЗППоЗаказу,
    ВыпускПродукции.Стоимость КАК Стоимость,
    ВыпускПродукции.Стоимость * ЕСТЬNULL(НЗП.СтоимостьНЗП / НЗППоЗаказам.СтоимостьНЗППоЗаказу, 1) - ЕСТЬNULL(НЗП.СтоимостьНЗП, 0) - ЕСТЬNULL(НЗПНачальная.НЗПНачОстаток, 0) КАК СтоимостьНакладныхРасходов,
    ВыпускПродукции.Продукция КАК Продукция,
    НЗПНачальная.НЗПНачОстаток КАК НЗПНачОстаток,
    ОплатаНЗП.ОплатаТрудаНЗП,
    (ВыпускПродукции.Стоимость * ЕСТЬNULL(НЗП.СтоимостьНЗП / НЗППоЗаказам.СтоимостьНЗППоЗаказу, 1) - ЕСТЬNULL(НЗП.СтоимостьНЗП, 0) - ЕСТЬNULL(НЗПНачальная.НЗПНачОстаток, 0)) / ВЫБОР
        КОГДА ОплатаНЗП.ОплатаТрудаНЗП = 0
            ТОГДА 1
        ИНАЧЕ ОплатаНЗП.ОплатаТрудаНЗП
    КОНЕЦ КАК Коэффициент
{ВЫБРАТЬ
    Подразделение.*,
    Заказ.*,
    СтатьяИспользования.*,
    Заказчик.*,
    ОС.*,
    МатериальныеСтоимость,
    ОплатаТруда,
    ВозвратныеОтходыСтоимость,
    СтоимостьНЗП,
    СтоимостьНЗППоЗаказу,
    Стоимость,
    СтоимостьНакладныхРасходов,
    Продукция.*,
    НЗПНачОстаток,
    Коэффициент}
ИЗ
    (ВЫБРАТЬ
        ВыпускПродукцииБухгалтерскийУчет.Заказ КАК Заказ,
        СУММА(ВыпускПродукцииБухгалтерскийУчет.Стоимость) КАК Стоимость,
        ВыпускПродукцииБухгалтерскийУчет.Подразделение КАК Подразделение,
        МАКСИМУМ(ВыпускПродукцииБухгалтерскийУчет.Продукция) КАК Продукция
    ИЗ
        РегистрНакопления.ВыпускПродукцииБухгалтерскийУчет КАК ВыпускПродукцииБухгалтерскийУчет
    ГДЕ
        ВыпускПродукцииБухгалтерскийУчет.Период МЕЖДУ &ДатаНач И &ДатаКон
        И НЕ ВыпускПродукцииБухгалтерскийУчет.Регистратор ССЫЛКА Документ.ОприходованиеМатериаловИзПроизводства
    
    СГРУППИРОВАТЬ ПО
        ВыпускПродукцииБухгалтерскийУчет.Заказ,
        ВыпускПродукцииБухгалтерскийУчет.Подразделение) КАК ВыпускПродукции
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказНаПроизводствоПродукция.Ссылка КАК Ссылка
        ИЗ
            Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
        ГДЕ
            ЗаказНаПроизводствоПродукция.Ссылка.Проведен
        
        СГРУППИРОВАТЬ ПО
            ЗаказНаПроизводствоПродукция.Ссылка) КАК ТЧЗаказа
        ПО ВыпускПродукции.Заказ = ТЧЗаказа.Ссылка
        ПОЛНОЕ СОЕДИНЕНИЕ ВТНЗП КАК НЗП
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                НЗП.Заказ КАК Заказ,
                СУММА(НЗП.СтоимостьНЗП) КАК СтоимостьНЗППоЗаказу
            ИЗ
                ВТНЗП КАК НЗП
            
            СГРУППИРОВАТЬ ПО
                НЗП.Заказ) КАК НЗППоЗаказам
            ПО НЗП.Заказ = НЗППоЗаказам.Заказ
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                НезавершенноеПроизводствоБухгалтерскийУчетОстаткиИОбороты.СтоимостьНачальныйОстаток КАК НЗПНачОстаток,
                НезавершенноеПроизводствоБухгалтерскийУчетОстаткиИОбороты.Заказ КАК Заказ
            ИЗ
                РегистрНакопления.НезавершенноеПроизводствоБухгалтерскийУчет.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК НезавершенноеПроизводствоБухгалтерскийУчетОстаткиИОбороты) КАК НЗПНачальная
            ПО НЗП.Заказ = НЗПНачальная.Заказ
        ПО (НЗП.Заказ = ТЧЗаказа.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Заказ КАК Заказ,
            СУММА(ВЫБОР
                    КОГДА НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СтатьяЗатрат.ВидЗатрат = ЗНАЧЕНИЕ(Перечисление.ВидыЗатрат.ОплатаТруда)
                        ТОГДА ВЫБОР
                                КОГДА НЕ НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СтоимостьПриход ЕСТЬ NULL
                                    ТОГДА НезавершенноеПроизводствоБухгалтерскийУчетОбороты.СтоимостьПриход
                                ИНАЧЕ 0
                            КОНЕЦ
                    ИНАЧЕ 0
                КОНЕЦ) КАК ОплатаТрудаНЗП
        ИЗ
            РегистрНакопления.НезавершенноеПроизводствоБухгалтерскийУчет.Обороты(&ДатаНач, &ДатаКон, , ) КАК НезавершенноеПроизводствоБухгалтерскийУчетОбороты
        
        СГРУППИРОВАТЬ ПО
            НезавершенноеПроизводствоБухгалтерскийУчетОбороты.Заказ) КАК ОплатаНЗП
        ПО ВыпускПродукции.Заказ = ОплатаНЗП.Заказ
ГДЕ
    (&СНаработкой
            ИЛИ ВыпускПродукции.Стоимость <> 0)
{ГДЕ
    (ЕСТЬNULL(НЗП.Подразделение, ВыпускПродукции.Подразделение)).* КАК Подразделение,
    (ЕСТЬNULL(НЗП.Заказ, ВыпускПродукции.Заказ)).* КАК Заказ,
    (ЕСТЬNULL(НЗП.СтатьяИспользования, ВыпускПродукции.Заказ.СтатьяИспользования)).* КАК СтатьяИспользования,
    (ЕСТЬNULL(НЗП.Заказчик, ВыпускПродукции.Заказ.ПодразделениеЗаказчик)).* КАК Заказчик}
1 salih020292
 
15.10.13
15:45
У меня была аналогичная проблема..не вдаваясь в подробности запросов её решение крылось в том, что пользователи сами не правильно загрузили данные в справочники.( Классификаторы и прочее)(конфа УТ 10.3) В общем решение было в том, чтобы правильно загрузить нужную номенклатуру.
2 shuhard
 
15.10.13
15:46
(0)[ помогите увидить]
выслать лупу ?
3 fmrlex
 
15.10.13
15:48
(0) Делений в запросе у тебя немного. Анализируй их.
Выдели запрос с делениями и гоняй его в консольке.
4 NikVars
 
15.10.13
15:49
(0) Запости базу. Покопаемся.
5 ghostrid3r
 
15.10.13
15:50
Все нашел, главное быоло обратится )