HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...
Actions
Bug #939917
open8.3.18-20 Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric
Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:
0%
Estimated time:
Description
https://partners.v8.1c.ru/forum/t/2038306/m/2038306
https://bugboard.v8.1c.ru/error/000120358
Конфигурация ПО
1С 8.3.18-20, исправлено 8.3.21, СУБД MSSQL
Проблема
При выполнении запроса может возникать ошибка арифметического переполнения при преобразовании numeric к типу данных numeric
Воспроизведение
Открыть приложенную внешнюю обработку в любой базе в управляемом клиентском приложении. Нажать "Команда1". При этом выполнится код
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ 1 |ПОМЕСТИТЬ ВТ ГДЕ ЛОЖЬ |; |ВЫБРАТЬ | ВЫБОР | КОГДА ЛОЖЬ | ТОГДА КОЛИЧЕСТВО(*) | ИНАЧЕ ЕСТЬNULL(МАКСИМУМ(0), 1) | КОНЕЦ |ИЗ | вт |"; Результат = Запрос.Выполнить();
Т.е. вычисляем в запросе из пустой таблицы агрегатное выражение. Возникнет ошибка
Ошибка при вызове метода контекста (Выполнить) {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма1.Форма(23)}:Результат = Запрос.Выполнить(); {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма1.Форма(4)}:Команда1НаСервере(); по причине: Ошибка выполнения запроса по причине: Ошибка при выполнении операции над данными: Microsoft SQL Server Native Client 11.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric. HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1
Проверил SQL запрос
select 1 as w into #tt2 where 1=0 ; SELECT ISNULL(MAX(0.0),1.0) FROM #tt2 T1 WITH(NOLOCK)
напрямую в MSSQL 13.0.1601.5 и 12.0.2269.0 . Выдает такую же ошибку.
Обойти ее можно путем указания квалификаторов числа.
SELECT ISNULL(MAX(CAST(0.0 AS numeric(15))), 1.0)
ВЫБРАТЬ ЕСТЬNULL(МАКСИМУМ(ВЫРАЗИТЬ(0 КАК ЧИСЛО(15))), 1)
Files
Updated by Сергей Старых over 1 year ago
- Subject changed from 8.3.18-+ Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric to 8.3.18-20 Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric
- Description updated (diff)
Actions