Прошу помощи Ошибка SQL

1. tana1257 2 12.01.12 13:18 Сейчас в теме
Очень прошу помощи. При расчете бух итогов в ПУБ стала выходить ошибка State: 22003 Native: 8115 Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric. У нас сервер sql 2005. Не понимаю в чем причина. После этого сообщения программа слетает. Пытаюсь опять зайти в 1С и опять начинается пересчет итогов. Кто сталкивался с такой ошибкой, просьба помочь
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Kom-off 12.01.12 18:02 Сейчас в теме
(1) Подобная ошибка может возникать, если на SQL2005 не "натянуты" сервиспаки, но может и по другим причинам. Если размеры базы позволяют, то можно выгрузить базу в локальную, провести расчет итогов и загрузить ее обратно - как вариант.
5. tana1257 2 13.01.12 06:21 Сейчас в теме
(3) Kom-off, СервисПак установлен, с базой не было проблем около 5 лет. Она большая, а в dbf пробовала выгрузить, но она зависла .
6. little_s 13.01.12 16:11 Сейчас в теме
(5) проблема уже решена?
2. d1n0_r@pt0r 12.01.12 17:50 Сейчас в теме
Сделай исправление базы.В скуле DBCC CHECKDB. Затем из конфигуратора тестирование и исправление.
4. tana1257 2 13.01.12 06:17 Сейчас в теме
(2) d1n0_r@pt0r, На счет первой части предложения, можно поподробнее, какие сделать исправления?
7. tana1257 2 14.01.12 00:13 Сейчас в теме
Нет. В копии базы восстановление проходит, но копия 10 дневной давности. А в самой базе исправления не проходят. Получается, что бух итоги на 31.12.11 - 100 рублей, а 1.01.12 остается только 1 руб
8. tana1257 2 21.03.12 10:35 Сейчас в теме
Не написала сразу. Проблему решила путем написания программы по очистке базы в регистрах и бух итогах очень больших итоговых чисел. Сейчас все работает. Спасибо всем, кто пытался мне помочь
10. rom-x 152 16.01.14 16:04 Сейчас в теме
(8) tana1257, я так понимаю просто обработку написали? тоже такая ошибка возникла.
9. ra9000 11 23.03.12 10:47 Сейчас в теме
А есть где посмотреть эту программу?
Или ссылочку на документацию.
Заранее благодарен
11. ADirks 187 17.01.14 07:57 Сейчас в теме
(9), (10) обработка это конечно здорово, но для начала надо смотреть, откуда ноги выросли. Это же банальная ошибка переполнения. Возникает не по техническим причинам, а потому что итоги не закрываются, или обороты вылазят из разрядности.
13. rom-x 152 06.02.14 16:33 Сейчас в теме
(11) ADirks, а можно поподробнее? У меня есть большой запрос с анализом данных много откуда. Допустим для того чтобы узнать какой регистр накопления дает ошибку мне нужно сделать по нему запрос с оборотами за период итогами и остатками и итогами так? И тогда данная ошибка вылезет?. Пока решил проблему увеличением длинны ресурсов регистров с 10 до 15 символов.
16. ADirks 187 07.02.14 07:00 Сейчас в теме
(13) Как оно вылезет в запросе я не знаю. Итоги в запросе считаются локально, и вполне вероятно, что 1С разрядность таки увеличит.
Разрядность ресурсов можно смело увеличивать до максимума - на размеры БД это никак не влияет, ибо
numeric (p, s) Fixed-precision and scale-numeric data from –10^38+1 through 10^38–1. The p variable specifies precision and can vary between 1 and 38. The s variable specifies scale and can vary between 0 and p. Storage size is 19 bytes.
10 - это маловато, любая конторка чуть покрупнее ларька, быстро вылезет за эти пределы. ну и нужно помнить, что первая цифра - это разрядность всего числа, вместе с дробной частью. т.е. Число(10, 2) - это максимум 10^7 (именно в седьмой, 1С трансформирует это в Numeric(9, 2))

Ошибка переполнения, как у автора, возникает в момент пересчета итогов - в данном случае бухгалтерских. В принципе тоже можно поставить везде разрядность 19, может и поможет.
17. rom-x 152 07.02.14 09:47 Сейчас в теме
(16) ADirks, увы проблема не решилась даже увеличением длинны до 20 символов. Что сделал: Пересчитал итоги через Операции-Управление итогами, потом увеличил длинну до 15 и все заработало, откатился назад и начал постепенно у каждого регистра увеличивать длинну до 15, не сработало, увеличил длинну до 20 у всех и тоже не сработало. Что делать?
20. m-sla 5 26.12.14 09:30 Сейчас в теме
(13) rom-x, в каких именно таблицах нужно увеличить разрядность? тоже возникла такая проблема, думала на файловом варианте рассчитаю и загружу обратно, а sql при загрузке начинает пересчет итогов и опять падает с ошибкой арифметического переполнения.
21. rom-x 152 26.12.14 11:15 Сейчас в теме
(20) m-sla, в которых возникает ошибка, у меня были регистры накопления. Однозначного решения не нашел, обработку никакую не присылали. Если найдете решение отпишите.
12. ra9000 11 22.01.14 13:34 Сейчас в теме
Это же банальная ошибка переполнения.
Возникает не по техническим причинам, а потому что итоги не закрываются.
14. tana1257 2 06.02.14 18:57 Сейчас в теме
У меня тоже обороты вылезли из разрядности. Обработка подделанная под наши нужды (когда-то ее нашла в инете, а потом пригодилась), но пока я не в своем городе, в отпуске, вышлю позже.
15. rom-x 152 06.02.14 21:59 Сейчас в теме
Может еще кто что-нибудь посоветует, или на вопрос ответит из 13.
18. ADirks 187 07.02.14 09:53 Сейчас в теме
Ну так смотреть, что за обороты такие бешеные. Или остатки не закрываются.
Я же говорил, что обычно это не в данных косяк, а в алгоритмах.
19. ADirks 187 07.02.14 10:00 Сейчас в теме
Точнее, даже не так. Косяки в данных обусловлены косяками в алгоритмах. И прежде чем лечить данные, надо вылечить алгоритмы.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот