powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Arithmetic overflow error converting numeric
34 сообщений из 34, показаны все 2 страниц
Arithmetic overflow error converting numeric
    #36778701
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Исходные данные: 1С , конфигурация УПП 1.2.27, платформа 8.1.15.14, MSSQL 2008, Win x64 2008.

При выполнении запроса есть такое вычисление суммы:
Стоимость * КурсыВалют.Курс * КурсыВалютУпрУчет.Кратность / (ЕСТЬNULL(КурсыВалют.Кратность, 1) * КурсыВалютУпрУчет.Курс)
т.е. приведение суммы из любой валюты в управленческую. И при выполнении запроса возникает ошибка:
Arithmetic overflow error converting numeric to data type numeric.
HRESULT=80040E57, SQLSrvr: Error state=8, Severity=10, native=8115, line=1
Это арифметическое переполнение. Потеря значащих цифр при вычислении значения выражения. У нас используется такая валюта, как иена, вот в ней кратность = 100. На ней и возникает такая ошибка. По гривнам, например, где кратность = 10, все окей.
Суммы вроде в иенах небольшие. Например, 3900000*34,5867/(100*39.5248) = 34127,47, где 34,5867 - курс иены, 100 - кратность иены, 39.5248 - курс евро. И вот такое вычисление приводит к переполнению?
Не могу понять, где собака зарылась, или как обойти эту ошибку.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778704
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам запрос на на 1С:

Модератор: Он тут абсолютно бесполезен.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778708
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос из профайлера SQL:

Модератор: И эта портянка лишняя, раз Вы знаете "место", где происходит ошибка.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778712
ekaskies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ret Zet, смотрите запрос профайлером
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778727
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetИ вот такое вычисление приводит к переполнению?
Не могу понять, где собака зарылась, или как обойти эту ошибку.

Гм... А Вы сможете изменить запрос (не на птичьем языке, а на T-SQL) и \ или типы данных в таблицах?
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778737
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ekaskiesRet Zet, смотрите запрос профайлером

Ну я привел запрос из профайлера, модератор потер, типа лишняя портянка. А в самом SQL я ни в зуб ногой. Открыл в профайлере, нашел свой запрос, дальше что? На такой интерпретированный SQL-запрос я смотрю как баран на новые ворота.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778739
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret Zet
Суммы вроде в иенах небольшие. Например, 3900000*34,5867/(100*39.5248) = 34127,47, где 34,5867 - курс иены, 100 - кратность иены, 39.5248 - курс евро. И вот такое вычисление приводит к переполнению?

Каждое вычисление дает на выходе результат, размер и точность которого отличаются от размеров и точности операндов
Конкретно в этом примере результат вовсе не 34127.47, а 34127.466805651135489
Поэтому вам придется переписать запрос так, чтобы и промежуточные вычиления явно приводились к такому размеру и точности, которые не вызовут переполнения
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778740
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinRet ZetИ вот такое вычисление приводит к переполнению?
Не могу понять, где собака зарылась, или как обойти эту ошибку.

Гм... А Вы сможете изменить запрос (не на птичьем языке, а на T-SQL) и \ или типы данных в таблицах?

Простите, я на 1С V8 могу только запрос написать. Мне не понятно, что вы просите.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778751
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryRet Zet
Суммы вроде в иенах небольшие. Например, 3900000*34,5867/(100*39.5248) = 34127,47, где 34,5867 - курс иены, 100 - кратность иены, 39.5248 - курс евро. И вот такое вычисление приводит к переполнению?

Каждое вычисление дает на выходе результат, размер и точность которого отличаются от размеров и точности операндов
Конкретно в этом примере результат вовсе не 34127.47, а 34127.466805651135489
Поэтому вам придется переписать запрос так, чтобы и промежуточные вычиления явно приводились к такому размеру и точности, которые не вызовут переполнения

Я делал это так: Выразить(ТутМоеВычисление КАК ЧИсло(15,2))
и на каждый элемент в вычислении, не помогло.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778757
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret Zet
Я делал это так: Выразить(ТутМоеВычисление КАК ЧИсло(15,2))
и на каждый элемент в вычислении, не помогло.
Значит неправильно сделали. Или не в том месте запроса
И я не уверен, что функция Выразить() преобразует результат именно на стороне сервера
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778761
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetЯ делал это так: Выразить(ТутМоеВычисление КАК ЧИсло(15,2))
и на каждый элемент в вычислении, не помогло.

И это хоть как-то повлияло на запрос, отправляемый на сервер?

ЗЫ. Что-то у меня сомнения, что это привело к вставке CAST в запрос.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778766
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, я спецом привел запросы. Модератор их потер. Я теперь не знаю как быть. Могу выложить снова, но не забанят ли за такое?
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778769
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryRet Zet
Я делал это так: Выразить(ТутМоеВычисление КАК ЧИсло(15,2))
и на каждый элемент в вычислении, не помогло.
Значит неправильно сделали. Или не в том месте запроса
И я не уверен, что функция Выразить() преобразует результат именно на стороне сервера

Вот где именно он преобразует, мне сложно сказать. Я так сказать одинесник. Но вроде как сама 1С говорит, что все запросы выполняются исключительно на сервере. Утверждать не буду.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778770
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetРебята, я спецом привел запросы. Модератор их потер. Я теперь не знаю как быть. Могу выложить снова, но не забанят ли за такое?
Вы привели запроса 1С.
Которые вовсе не являются теми запросами, которые выполняет сервер
Кроме того незачем постить "простыню" на несколько экранов, когда есть опция Присоеденить файл
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778773
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetЯ теперь не знаю как бытьЗа помощью в изменении кода на языке 1С рекомендую обратиться в форум по 1С
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778774
ekaskies
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ret Zet,
все что можно посоветовать - это переписать выражения таким образом, чтобы после каждой операции получалось число не выходящее за пределы типа операндов. Надеюсь понятно выразился :)
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778775
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinRet ZetЯ делал это так: Выразить(ТутМоеВычисление КАК ЧИсло(15,2))
и на каждый элемент в вычислении, не помогло.

И это хоть как-то повлияло на запрос, отправляемый на сервер?

ЗЫ. Что-то у меня сомнения, что это привело к вставке CAST в запрос.

Не могу сказать как на запрос по влияло, но ошибка от этого не исчезла.
Т.е. Выразить() накладывал на каждый множитель или делитель.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778778
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetGloryRet Zet
Я делал это так: Выразить(ТутМоеВычисление КАК ЧИсло(15,2))
и на каждый элемент в вычислении, не помогло.
Значит неправильно сделали. Или не в том месте запроса
И я не уверен, что функция Выразить() преобразует результат именно на стороне сервера

Вот где именно он преобразует, мне сложно сказать. Я так сказать одинесник. Но вроде как сама 1С говорит, что все запросы выполняются исключительно на сервере. Утверждать не буду.
Вы понимаете, что есть технология клиент-сервер
Ваши команды для 1С есть всего лишь оболочка-надстройка над языком запросов
Неужели вы думаете, что в MS SQL Server есть функция Выразить() ???
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778782
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryRet ZetРебята, я спецом привел запросы. Модератор их потер. Я теперь не знаю как быть. Могу выложить снова, но не забанят ли за такое?
Вы привели запроса 1С.
Которые вовсе не являются теми запросами, которые выполняет сервер
Кроме того незачем постить "простыню" на несколько экранов, когда есть опция Присоеденить файл

Я честно не знаю как это сделать. "Впервые замужем", так сказать :) . Типа загнать в текст и приложить текстовый файл? Могу так сделать.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778784
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetGloryRet ZetРебята, я спецом привел запросы. Модератор их потер. Я теперь не знаю как быть. Могу выложить снова, но не забанят ли за такое?
Вы привели запроса 1С.
Которые вовсе не являются теми запросами, которые выполняет сервер
Кроме того незачем постить "простыню" на несколько экранов, когда есть опция Присоеденить файл

Я честно не знаю как это сделать. "Впервые замужем", так сказать :) . Типа загнать в текст и приложить текстовый файл? Могу так сделать.
Это всяко будет лучше, чем листать экраны вашего запроса
Только все равно это будет запрос 1С,а не MS SQL
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778785
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ekaskiesRet Zet,
все что можно посоветовать - это переписать выражения таким образом, чтобы после каждой операции получалось число не выходящее за пределы типа операндов. Надеюсь понятно выразился :)

Понятно. Что и пытался сделать. Естественно на 1С. SQL-запросом я уже не могу управлять.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778791
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryRet ZetGloryRet Zet
Я делал это так: Выразить(ТутМоеВычисление КАК ЧИсло(15,2))
и на каждый элемент в вычислении, не помогло.
Значит неправильно сделали. Или не в том месте запроса
И я не уверен, что функция Выразить() преобразует результат именно на стороне сервера

Вот где именно он преобразует, мне сложно сказать. Я так сказать одинесник. Но вроде как сама 1С говорит, что все запросы выполняются исключительно на сервере. Утверждать не буду.
Вы понимаете, что есть технология клиент-сервер
Ваши команды для 1С есть всего лишь оболочка-надстройка над языком запросов
Неужели вы думаете, что в MS SQL Server есть функция Выразить() ???

Конечно нет там такой функции, во что она преобразуется, я не могу сказать. Тут я полный профан.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778793
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret Zet

Понятно. Что и пытался сделать. Естественно на 1С. SQL-запросом я уже не могу управлять.
Это вы так думаете ? Или вам это кто-то сказал ? Или вы где-то прочитали об этом ?
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778801
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интерпретированный запрос из профайлера.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778806
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сам запрос на языке 1С
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778813
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GloryRet Zet

Понятно. Что и пытался сделать. Естественно на 1С. SQL-запросом я уже не могу управлять.
Это вы так думаете ? Или вам это кто-то сказал ? Или вы где-то прочитали об этом ?

Я имею в виду, что создать и править могу только в 1С. Как там в SQL все происходит, я не знаю.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778815
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetGloryRet Zet

Понятно. Что и пытался сделать. Естественно на 1С. SQL-запросом я уже не могу управлять.
Это вы так думаете ? Или вам это кто-то сказал ? Или вы где-то прочитали об этом ?

Я имею в виду, что создать и править могу только в 1С. Как там в SQL все происходит, я не знаю.
И какое решение вы тогда хотите услышать в форуме по SQL, в не по 1С ?
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778819
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А кто-нибуть может подсказать, как перенести тему в подраздел 1С?
Может там кто поможет, чтобы не заводить 2 темы.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778832
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetА кто-нибуть может подсказать, как перенести тему в подраздел 1С?
Может там кто поможет, чтобы не заводить 2 темы.Легко!

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36778852
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tpgRet ZetА кто-нибуть может подсказать, как перенести тему в подраздел 1С?
Может там кто поможет, чтобы не заводить 2 темы.Легко!

Модератор: Тема перенесена из форума "Microsoft SQL Server".

Спасибо!
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36779066
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все оказалось просто как три копейки. Слава Будде/Аллаху, направили мои мысли в нужное русло.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36779067
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема закрыта.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36779093
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ret ZetВсе оказалось просто как три копейки. Слава Будде/Аллаху, направили мои мысли в нужное русло.Так может поделишься этой информацией?
Чтобы следующий пришедший с такой же проблемой не начинал всё с начала.
...
Рейтинг: 0 / 0
Arithmetic overflow error converting numeric
    #36779156
Ret Zet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSeryRet ZetВсе оказалось просто как три копейки. Слава Будде/Аллаху, направили мои мысли в нужное русло.Так может поделишься этой информацией?
Чтобы следующий пришедший с такой же проблемой не начинал всё с начала.

Там и делится то нечем. В запросе 1С-совском ошибся в одном месте. SQL, так сказать тут не причем. Он просто следствие.
...
Рейтинг: 0 / 0
34 сообщений из 34, показаны все 2 страниц
Форумы / [игнор отключен] [закрыт для гостей] / Arithmetic overflow error converting numeric
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]