Имя: Пароль:
1C
1С v8
Arithmetic overflow error converting numeric to data type numeric в запросе
0 ZAKZAK
 
21.02.17
16:23
1с ERP при смене единицы измерения на форме в документе, выдает ошибку:

Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 11.0: Arithmetic overflow error converting numeric to data type numeric.
HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1



Запрос = Новый Запрос;
    ТекстЗапроса =     
    "ВЫБРАТЬ
    |    ВнутреннийЗапрос.Ссылка,
    |    ВнутреннийЗапрос.ТипИзмеряемойВеличины,
    |    ВнутреннийЗапрос.Порядок
    |ИЗ
    |    (ВЫБРАТЬ
    |        Номенклатура.ЕдиницаИзмерения КАК Ссылка,
    |        НЕОПРЕДЕЛЕНО КАК ТипИзмеряемойВеличины,
    |        1 КАК Порядок
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ДобавлятьЕдиницуХранения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ РАЗЛИЧНЫЕ
    |        ПРЕДСТАВЛЕНИЕ(ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)),
    |        ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка),
    |        2
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И Номенклатура.ИспользоватьУпаковки
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ РАЗЛИЧНЫЕ
    |        ПРЕДСТАВЛЕНИЕ(ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)),
    |        ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес),
    |        3
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
    |            ПО (Номенклатура.ВесИспользовать)
    |                И (Номенклатура.ВесМожноУказыватьВДокументах)
    |                И (УпаковкиНоменклатуры.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес))
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ПоказыватьМерныеЕдиницыИзмерения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ РАЗЛИЧНЫЕ
    |        ПРЕДСТАВЛЕНИЕ(ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)),
    |        ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем),
    |        4
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
    |            ПО (Номенклатура.ОбъемИспользовать)
    |                И (Номенклатура.ОбъемМожноУказыватьВДокументах)
    |                И (УпаковкиНоменклатуры.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем))
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ПоказыватьМерныеЕдиницыИзмерения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ РАЗЛИЧНЫЕ
    |        ПРЕДСТАВЛЕНИЕ(ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)),
    |        ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина),
    |        5
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
    |            ПО (Номенклатура.ДлинаИспользовать)
    |                И (Номенклатура.ДлинаМожноУказыватьВДокументах)
    |                И (УпаковкиНоменклатуры.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина))
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ПоказыватьМерныеЕдиницыИзмерения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ РАЗЛИЧНЫЕ
    |        ПРЕДСТАВЛЕНИЕ(ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)),
    |        ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь),
    |        6
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
    |            ПО (Номенклатура.ПлощадьИспользовать)
    |                И (Номенклатура.ПлощадьМожноУказыватьВДокументах)
    |                И (УпаковкиНоменклатуры.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ПоказыватьМерныеЕдиницыИзмерения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))) КАК ВнутреннийЗапрос
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВнутреннийЗапрос.Порядок
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВнутреннийЗапрос.Ссылка,
    |    ВнутреннийЗапрос.Порядок,
    |    ВнутреннийЗапрос.Коэффициент КАК Коэффициент
    |ИЗ
    |    (ВЫБРАТЬ
    |        УпаковкиНоменклатуры.Ссылка КАК Ссылка,
    |        3 КАК Порядок,
    |        &ТекстЗапросаКоэффициентУпаковки КАК Коэффициент
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
    |            ПО (Номенклатура.ВесИспользовать)
    |                И (Номенклатура.ВесМожноУказыватьВДокументах)
    |                И (УпаковкиНоменклатуры.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес))
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ПоказыватьМерныеЕдиницыИзмерения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        УпаковкиНоменклатуры.Ссылка,
    |        4,
    |        &ТекстЗапросаКоэффициентУпаковки
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
    |            ПО (Номенклатура.ОбъемИспользовать)
    |                И (Номенклатура.ОбъемМожноУказыватьВДокументах)
    |                И (УпаковкиНоменклатуры.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем))
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ПоказыватьМерныеЕдиницыИзмерения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        УпаковкиНоменклатуры.Ссылка,
    |        5,
    |        &ТекстЗапросаКоэффициентУпаковки
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
    |            ПО (Номенклатура.ДлинаИспользовать)
    |                И (Номенклатура.ДлинаМожноУказыватьВДокументах)
    |                И (УпаковкиНоменклатуры.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина))
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ПоказыватьМерныеЕдиницыИзмерения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        УпаковкиНоменклатуры.Ссылка,
    |        6,
    |        &ТекстЗапросаКоэффициентУпаковки
    |    ИЗ
    |        Справочник.Номенклатура КАК Номенклатура
    |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
    |            ПО (Номенклатура.ПлощадьИспользовать)
    |                И (Номенклатура.ПлощадьМожноУказыватьВДокументах)
    |                И (УпаковкиНоменклатуры.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))
    |    ГДЕ
    |        Номенклатура.Ссылка = &Номенклатура
    |        И (&ПоказыватьМерныеЕдиницыИзмерения
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
    |                ИЛИ Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь))) КАК ВнутреннийЗапрос
    |
    |УПОРЯДОЧИТЬ ПО
    |    ВнутреннийЗапрос.Порядок,
    |    ВнутреннийЗапрос.Коэффициент УБЫВ,
    |    ВнутреннийЗапрос.Ссылка.Наименование
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    СпрУпаковки.Ссылка КАК Ссылка,
    |    СпрУпаковки.Числитель / СпрУпаковки.Знаменатель КАК Коэффициент
    |ИЗ
    |    Справочник.Номенклатура КАК СпрНоменклатура
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК СпрУпаковки
    |        ПО (ВЫБОР
    |                КОГДА СпрНоменклатура.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
    |                    ТОГДА СпрУпаковки.Владелец = СпрНоменклатура.Ссылка
    |                КОГДА СпрНоменклатура.НаборУпаковок <> ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ПустаяСсылка)
    |                    ТОГДА СпрУпаковки.Владелец = СпрНоменклатура.НаборУпаковок
    |                ИНАЧЕ ЛОЖЬ
    |            КОНЕЦ)
    |ГДЕ
    |    СпрНоменклатура.Ссылка = &Номенклатура
    |    И НЕ СпрУпаковки.ПометкаУдаления
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка ИЕРАРХИЯ";
    
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстЗапросаКоэффициентУпаковки", Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки("УпаковкиНоменклатуры", "Номенклатура"));
    
    Запрос.Текст = ТекстЗапроса;
                        
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("ПоказыватьМерныеЕдиницыИзмерения", ПоказыватьМерныеЕдиницыИзмерения);
    Запрос.УстановитьПараметр("ДобавлятьЕдиницуХранения", ДобавлятьЕдиницуХранения);

    Результат = Запрос.ВыполнитьПакет();
1 olegves
 
21.02.17
16:30
Деление на 0 поймал... исправляй:
СпрУпаковки.Числитель / СпрУпаковки.Знаменатель КАК Коэффициент
Независимо от того, куда вы едете — это в гору и против ветра!