Ошибка SQL: Arithmetic overflow error converting numeric to data type numeric

25.08.21

База данных - Администрирование СУБД

Считаю количество строк в таблицах БД. Выскакивает ошибка. Привожу описание моего случая и решение.

По запросу "Arithmetic overflow error converting numeric to data type numeric" есть куча обсуждений и очень мало записано решений. Мой случай, вероятно, частный, но кого-то подтолкнет в направлении "куда копать".

SQL 2016 Standard
Платформа 8.3.18

При выполнении запросов к БД типа:

Выбрать Сумма(1) Из РегистрНакопления.ТоварыКПоступлению
Выбрать Сумма(1) Из Документ.ПриобретениеТоваровУслуг.Товары

Когда, количество строк > ~10 000 000, выдавалась ошибка:

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 КАК Число(15,0))) Из РегистрНакопления.ТоварыКПоступлению

Добавлено преобразование типа Число к конкретной длине. Баг перестал воспроизводиться.

Коллеги, если сталкивались с ошибкой, в комментариях опишите причину сбоя, и, если знают - другие способы устранения.

Вступайте в нашу телеграмм-группу Инфостарт

Ошибка SQL Arithmetic overflow error

См. также

Администрирование СУБД Программист Бесплатно (free)

Прокачиваем Постгрес с помощью пользовательских функций и процедур.

02.03.2026    914    SerVer1C    3    

10

HighLoad оптимизация Администрирование СУБД 1С:Предприятие 8 Бесплатно (free)

В статье рассматриваются текущие возможности горизонтального масштабирования СУБД для 1С, а также какое решение предлагает Tantor Postgres.

02.02.2026    1127    Tantor    3    

8

Администрирование СУБД Технологический журнал Мониторинг Системный администратор Программист Бесплатно (free)

Рассказываем, почему высоконагруженным бэкендам на 1С нужен регулярный мониторинг и что происходит, когда его нет: производительность и стабильность деградируют, а обращения пользователей копятся. Показываем, как построили легкую систему наблюдаемости для бэкендов корпоративных порталов. Она включает сбор метрик из технологического журнала, Apdex, журнала регистрации и динамики размеров таблиц с последующим анализом в связке ClickHouse и служебной информационной базы на 1С. Объясняем, какие отчеты и метрики быстрее всего помогают находить критичные проблемы производительности, и демонстрируем интерфейс расследования. Разбираем несколько кейсов оптимизации, найденных по итогам мониторинга, включая доработки функционала БСП «управление доступом» и «присоединенные файлы».

15.12.2025    4384    tystik    1    

9

HighLoad оптимизация Администрирование СУБД 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

Завершаем цикл статей по совместному докладу Алены Генераловой и Александра Симонова на INFOSTART TECH EVENT 2025 о нагрузочном тестировании (НТ) на 30 000 АРМ на машине баз данных Tantor XData. В заключительной части расскажем о том, что нас ждало при запусках теста, и какие доработки СУБД Tantor Postgres были сделаны, чтобы его пройти с высоким результатом.

27.11.2025    3141    Tantor    28    

16

HighLoad оптимизация Администрирование СУБД Программист Бесплатно (free)

Продолжаем знакомить вас с улучшениями СУБД Tantor Postgres для работы с продуктами 1С. В рамках предыдущей статьи мы разобрали арсенал специализированных функций, призванных существенно ускорить выполнение типичных для 1С операций, снизить нагрузку на инфраструктуру и упростить администрирование. Сегодня мы рассмотрим, с какими проблемами можно столкнуться при высоких значениях default_statistics_target, расскажем о новых оптимизациях для ускорения выполнения запросов, и, конечно, коснемся временных таблиц.

11.11.2025    2046    Tantor    10    

5

Администрирование СУБД 1С:Элемент Системный администратор Программист Бесплатно (free)

1С:Управление ландшафтом – это инструмент, способный объединить десятки разрозненных систем, серверов и баз данных в единое управляемое пространство, где установка, обновление, администрирование и контроль за инфраструктурой 1С происходят из одной точки, а рутинные задачи решаются за пару минут. Расскажем о том, как сделать свой ИТ-ландшафт управляемым.

23.10.2025    5106    user2169944    4    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kser87 2480 25.08.21 12:29 Сейчас в теме
Видимо превышается предельное значение для типа int . Можно создать втшку и посмотреть, какой тип он назначит для поля 1
2. user1350278 25.08.21 14:25 Сейчас в теме
int до 2 147 483 647, не думаю, что такое кол-во записей в регистре.

Скорее всего, это игры 1С/MSSQL с precison numeric. Например, рассматривает 1 как Numeric(7,0), пытаясь к нему преобразовать результат СУММА(1).

P.S.
В конкретном примере использование "Сумма", по-моему, неоправдано, ибо Количество(*), скорее-всего выполнится верно.
( а если есть еще индекс по одному из измерений и делать COUNT(OUR_FIELD), то и full index scan не так страшен).

Советы по использованию "Выразить", наверное, относятся к случаю, когда вместо литерала суммируют что-то более осмысленное.

Лезть в профайлер и смотреть во что 1С превращает 1, неохота.
3. SerVer1C 1044 25.08.21 16:29 Сейчас в теме
Для подсчета кол-ва записей лучше юзать:
Выбрать Количество(1) Из РегистрНакопления.ТоварыКПоступлению

ну а если нужна сумма, то можно применить такой костыль:
Выбрать Сумма(0.001) Из РегистрНакопления.ТоварыКПоступлению
получите сумму в тысячах )
Дмитрий74Чел; Nikola23; triviumfan; kser87; +4 Ответить
4. triviumfan 103 31.08.21 15:22 Сейчас в теме
Давно заметил эту ошибку, но создавать публикацию по этому поводу...
5. Nikola23 710 01.09.21 08:12 Сейчас в теме
(4) мысль автора комментария по-моему осталась не законченной.
Заметил и что?
Если решил, то как?
Если знаете решение - почему не поделиться с сообществом?
Кто знает о вашем достижении?

Если по существу - то вы молодец.
6. triviumfan 103 01.09.21 15:53 Сейчас в теме
(5) Ну, а зачем мне делиться, если эта ошибка стара как... и гуглиться за секунды.
https://forum.mista.ru/topic.php?id=545119
http://www.gilev.ru/arithmeticoverflow/
https://forum.infostart.ru/forum9/topic183137/

(5)
Если по существу - то вы молодец.

Не могу ответить тем же.
7. Nikola23 710 02.09.21 10:13 Сейчас в теме
(6) наверное, мой навык гугления не такой как ваш.
Видел эту статью.
Там SQL древний описан и я не стал ее читать (зря).

Ничего страшного, если решение будет записано еще раз с указанием более свежей версии SQL.
8. alexey.kutya 314 13.01.23 23:46 Сейчас в теме
У меня такая ошибка возникла, когда дробная часть числа получаемого в запросе выражением превысила какое-то количество знаков. Помогло ВЫРАЗИТЬ с ограничением знаков дробной части.
Для отправки сообщения требуется регистрация/авторизация