Имя: Пароль:
1C
1С v8
Ругается запрос на преобразование к числу. но не пойму как вылечить это.
,
0 Cerera
 
18.09.13
13:11
Методом исключения выявил, что дело в строчке:

ВЫБОР
    КОГДА ВложенныйЗапрос.Стоимость = 0
            ИЛИ ВложенныйЗапрос.Стоимость = НЕОПРЕДЕЛЕНО
            ИЛИ ВложенныйЗапрос.Стоимость ЕСТЬ NULL
        ТОГДА 0
    ИНАЧЕ ВЫРАЗИТЬ(ВложенныйЗапрос.ВаловаяПрибыль - ВложенныйЗапрос.ТранспортПриход - ВложенныйЗапрос.ТранспортРасход - ВложенныйЗапрос.ТранспортВозврат - ВложенныйЗапрос.ПогрузкаРазгрузка - ВложенныйЗапрос.Аренда - ВложенныйЗапрос.ВесПатока - ВложенныйЗапрос.ДопРасходыРегламентированные - ВложенныйЗапрос.ДопРасходыНеРегламентированные - ВложенныйЗапрос.ПрочиеРасходыНаПриход - ВложенныйЗапрос.ПрочиеРасходыНаВозврат - ВложенныйЗапрос.ПрочиеРасходыНаРасход КАК ЧИСЛО(6, 2))
КОНЕЦ


кроется причина ошибки вот этой:

{Обработка.Запросник.Форма.Форма.Форма(778)}: Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса: Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.
HRESULT=80040E57, HRESULT=80040E57, SQLSrvr: SQLSTATE=01003, state=1, Severity=0, native=8153, line=1
SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1
Ошибка при выполнении арифметической операции "Переполнение при преобразовании значения"


При этом когда распровожу одну реализацию, всё становится на место. Как решить в чем может быть дело?
1 sikuda
 
18.09.13
13:15
Есть такая функция ЕстьNULL()
2 Cerera
 
18.09.13
13:16
(1)знаю. но я ставлю ЕстьNull - не помогает.
3 rikodroo
 
18.09.13
13:17
(2) напишите ЕстьНулл(лялля,0)
4 Широкий
 
18.09.13
13:18
ВложенныйЗапрос.Стоимость = НЕОПРЕДЕЛЕНО???
5 rikodroo
 
18.09.13
13:18
ЕстьNULL(ВложенныйЗапрос.Стоимость,0)
6 Cerera
 
18.09.13
13:18
(4)там же условие стоит

   КОГДА ВложенныйЗапрос.Стоимость = 0
            ИЛИ ВложенныйЗапрос.Стоимость = НЕОПРЕДЕЛЕНО
            ИЛИ ВложенныйЗапрос.Стоимость ЕСТЬ NULL
        ТОГДА 0
7 Cerera
 
18.09.13
13:19
(3)если каждое скобочное выражение в ЕстьNull заключаю то всё равно не может преобразование типов сделать.
8 GROOVY
 
18.09.13
13:19
А не проще ли всю вот эту бурду:
ВложенныйЗапрос.ВаловаяПрибыль - ВложенныйЗапрос.ТранспортПриход - ВложенныйЗапрос.ТранспортРасход - ВложенныйЗапрос.ТранспортВозврат - ВложенныйЗапрос.ПогрузкаРазгрузка - ВложенныйЗапрос.Аренда - ВложенныйЗапрос.ВесПатока - ВложенныйЗапрос.ДопРасходыРегламентированные - ВложенныйЗапрос.ДопРасходыНеРегламентированные - ВложенныйЗапрос.ПрочиеРасходыНаПриход - ВложенныйЗапрос.ПрочиеРасходыНаВозврат - ВложенныйЗапрос.ПрочиеРасходыНаРасход

Посчитать во вложенном запросе, и не тащить наверх?
9 Maxus43
 
18.09.13
13:20
ВложенныйЗапрос.ВаловаяПрибыль - ВложенныйЗапрос.ТранспортПриход - ВложенныйЗапрос.ТранспортРасход - ВложенныйЗапрос.ТранспортВозврат - ВложенныйЗапрос.ПогрузкаРазгрузка - ВложенныйЗапрос.Аренда - ВложенныйЗапрос.ВесПатока - ВложенныйЗапрос.ДопРасходыРегламентированные - ВложенныйЗапрос.ДопРасходыНеРегламентированные - ВложенныйЗапрос.ПрочиеРасходыНаПриход - ВложенныйЗапрос.ПрочиеРасходыНаВозврат - ВложенныйЗапрос.ПрочиеРасходыНаРасход

эту байду тоже в скобки надо ещё взять
10 Cerera
 
18.09.13
13:21
(8)попробую спасибо)
11 Fragster
 
модератор
18.09.13
13:44
КАК ЧИСЛО(16, 2)
12 Fragster
 
модератор
18.09.13
13:45
никто не читает сообщение об ошибке, что ли?
13 Cerera
 
18.09.13
14:38
(12)странно но заработало.
14 Fragster
 
модератор
18.09.13
14:52
(13) прочитай сообщение об ошибке до конца, блин