Имя: Пароль:
1C
1С v8
Ошибка арифметического переполнения при преобразовании numeric к типу данных num
0 PRO100 NigGaZ
 
11.07.14
21:31
Открываю я документ УстановкаЦенНоменклатуры и вываливается еррор при выполнении запроса (запрос типовой) платформа 8.3.5.1068 (тестирую новую платформу), УТ 11.1.7.36 (тестирую УТ)
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 11.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.
HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

    Запрос = Новый Запрос("
    |ВЫБРАТЬ
    |    ВременнаяТаблицаТовары.Индекс                         КАК Индекс,
    |    ВременнаяТаблицаТовары.Номенклатура                   КАК Номенклатура,
    |    ВременнаяТаблицаТовары.Характеристика                 КАК Характеристика,
    |    ВременнаяТаблицаТовары.ВидЦены                        КАК ВидЦены,
    |    ВременнаяТаблицаТовары.Цена                           КАК Цена,
    |    ВременнаяТаблицаТовары.Упаковка                       КАК Упаковка,
    |    ВременнаяТаблицаТовары.ЦенаИзмененаВручную            КАК ЦенаИзмененаВручную
    |ПОМЕСТИТЬ
    |    ВременнаяТаблицаТовары
    |ИЗ
    |    &Товары КАК ВременнаяТаблицаТовары
    |ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика, ВидЦены
    |;
    |ВЫБРАТЬ
    |    ВременнаяТаблицаТовары.Индекс                         КАК Индекс,
    |    ВременнаяТаблицаТовары.Номенклатура                   КАК Номенклатура,
    |    ВременнаяТаблицаТовары.Номенклатура.Артикул           КАК Артикул,
    |    ВременнаяТаблицаТовары.Характеристика                 КАК Характеристика,
    |    ВременнаяТаблицаТовары.Номенклатура.ЕдиницаИзмерения  КАК ЕдиницаИзмерения,
    |    ВременнаяТаблицаТовары.Номенклатура.ЦеноваяГруппа     КАК ЦеноваяГруппа,
    |
    |    ВЫБОР
    |        КОГДА ВременнаяТаблицаТовары.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры) ТОГДА Истина
    |        КОГДА ВременнаяТаблицаТовары.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры) ТОГДА Истина
    |    ИНАЧЕ Ложь КОНЕЦ КАК ХарактеристикиИспользуются,
    |
    |    ВременнаяТаблицаТовары.ВидЦены                        КАК ВидЦены,
    |    ВременнаяТаблицаТовары.Цена                           КАК Цена,
    |    ВременнаяТаблицаТовары.ЦенаИзмененаВручную            КАК ЦенаИзмененаВручную,
    |    
    |    ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка = ВременнаяТаблицаТовары.Упаковка ТОГДА
    |        ЦеныНоменклатуры.Цена
    |    ИНАЧЕ
    |        ЦеныНоменклатуры.Цена/ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент,1)*ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Коэффициент,1)
    |    КОНЕЦ КАК ДействующаяЦена,
    |    
    |    ВЫРАЗИТЬ(ВЫБОР КОГДА ЦеныНоменклатуры.Цена <> 0 Тогда 100*(ВременнаяТаблицаТовары.Цена - ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка = ВременнаяТаблицаТовары.Упаковка ТОГДА
    |        ЦеныНоменклатуры.Цена
    |    ИНАЧЕ
    |        ЦеныНоменклатуры.Цена/ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент,1)*ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Коэффициент,1)
    |    КОНЕЦ)/
    |    
    |    ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка = ВременнаяТаблицаТовары.Упаковка ТОГДА
    |        ЦеныНоменклатуры.Цена
    |    ИНАЧЕ
    |        ЦеныНоменклатуры.Цена/ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент,1)*ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Коэффициент,1)
    |    КОНЕЦ ИНАЧЕ 0.00 КОНЕЦ КАК Число(10,2)) КАК Процент,
    |    
    |    ВременнаяТаблицаТовары.Упаковка                       КАК Упаковка
    |ИЗ
    |    ВременнаяТаблицаТовары КАК ВременнаяТаблицаТовары
    |    
    |    ЛЕВОЕ СОЕДИНЕНИЕ
    |        РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, (Номенклатура, Характеристика) В (Выбрать Номенклатура, Характеристика Из ВременнаяТаблицаТовары)) КАК ЦеныНоменклатуры
    |            ПО ЦеныНоменклатуры.Номенклатура   = ВременнаяТаблицаТовары.Номенклатура
    |             И ЦеныНоменклатуры.Характеристика = ВременнаяТаблицаТовары.Характеристика
    |             И ЦеныНоменклатуры.ВидЦены        = ВременнаяТаблицаТовары.ВидЦены
    |    
    |УПОРЯДОЧИТЬ ПО
    |    Индекс
    |    
    |ИТОГИ
    |    МИНИМУМ(ЕдиницаИзмерения) КАК ЕдиницаИзмерения
    |ПО
    |    Номенклатура,
    |    Характеристика
    |");
    
залипает запрос скорее всего при умножении на 100
максимальная цена в документе 116 439,68
что делать с подобным? и самое главное, документ с такой ценой есть ранее и он открывается
1 Coldboy
 
11.07.14
21:46
|    ИНАЧЕ
    |        ЦеныНоменклатуры.Цена/ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Коэффициент,1)*ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Коэффициент,1) а здесь нет деления на 0?
2 Crush
 
11.07.14
21:55
Выразить() - эта функция косячит. Нужно увеличить длину числа
3 Crush
 
11.07.14
21:58
+ (2) Убери Выразить и посмотри максимальное число. Скорее всего оно будет более 8 знаков до запятой
4 PRO100 NigGaZ
 
11.07.14
22:37
Ну да Процент 428 667 800
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс