Ошибка арифметического переполнения при преобразовании numeric #764125


#0 by фпк1сл
Добрый день! Конфигурация УТ 11.1.10.145, платформа 8.3.6.2237, SQL Server 2008. При проведении документа "Расчет себестоимости товаров" за апрель, выскакивает ошибка Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {Документ.РасчетСебестоимостиТоваров.МодульОбъекта(2181)}: Ошибка при вызове метода контекста (ВыполнитьПакет)         Выборка = Запрос.ВыполнитьПакет[1].Выбрать; по причине: Ошибка выполнения запроса по причине: Ошибка при выполнении операции над данными: Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric. HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1 Все  другие документы проводятся нормально. Подскажите пожалуйста, все чем может быть проблема, куда смотреть?
#1 by фпк1сл
Я понимаю, что где-то в результате запроса получается большое число, вот только как найти, откуда это число возникает?
#2 by cw014
Пройтись отладчиком + ТИИ
#3 by фпк1сл
Отладчик мне ничего не покажет, программа завершается в момент Выборка = Запрос.ВыполнитьПакет[1].Выбрать; , значит я не узнаю, что её выбивает. В файловом варианте база тоже не запускается, размер слишком большой.
#4 by Timon1405
обновитесь, говорят, на 11.1.10.150 проблема уходит.
#5 by Михаил Козлов
Можно попробовать в консоли удалять из пакета по 1. Или выполнять по 1.
#6 by Карупян
профайлером (или тж) засечь запрос и посмотреть
#7 by фпк1сл
Обновляться буду в крайнем случае, попробую в технологическом журнале посмотреть на криминал. Профайлером не имею представления как пользоваться.
#8 by фпк1сл
Обновление не дало результатов. В ТЖ и профайлер смотрел - ничего не понял. Подскажите, может по какому нибудь регистру посмотреть какие нибудь значения подозрительные?
#9 by mikecool
первый запрос из пакета генерит не перевариваемое число - посмотри, какие там числовые поля и попытайся понять, откуда мб такое большое
#10 by Timon1405
поищите большой ресурс "ПостояннаяРазница" в регистре ВыручкаИСебестоимостьПродаж в консоли запросов
#11 by Tateossian
Скорее всего, это происходит где-то при делении, попробуй все такие места явно обработать через ВЫРАЗИТЬ( КАК ЧИСЛО(xx,yy))
#12 by Cyberhawk
ИР тебе в помощь - там и разбивка запроса на подзапросы, и отбор ТЖ по конкретному запросу
#13 by фпк1сл
В том то дело, все место обработаны через Выразить, запрос полностью типовой.
#14 by фпк1сл
Запрос выполняется с использованием Менеджера временных таблиц
#15 by фпк1сл
Еще глупый вопрос, в запросе выполняется первый пакет. Как мне его найти?
#16 by фпк1сл
я вычислил, что всему виной вот эта строчка в запросе |    ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.ПостояннаяРазница, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23,10)) Здесь и происходит переполнение.
#17 by Ёпрст
выкини выразить оттуда
#18 by Ёпрст
и спи спокойно дальше
#19 by фпк1сл
Не помогло, все та же ошибка преобразования numeric. Что интересно, только за апрель документ выжучивается, следующий месяц проводится без проблем.
#20 by Ёпрст
ну поставь  КАК ЧИСЛО(15,0)
#21 by фпк1сл
Все так же упрямо выскакивает эта ошибка.
#22 by НЕА123
может дикие числа.
#23 by НЕА123
вообще, ИМХО, ВЫРАЗИТЬ в Сумма засунуть.
#24 by Tateossian
Выведи в отладке содержимое ВтТаблицаРешений в ТЗ и посмотри, что там за числа.
#25 by фпк1сл
выразил, снова ошибка.   Глазами пробежался по 12к строк, на первый взгляд никакого криминала. Попробую покромсать запрос и выполнять по частям.
#26 by фпк1сл
Получается, что "ВтТаблицаРешений.ПостояннаяРазница" и "ПеремещенияСписания.Количество" имеют значение Null. И если подставить, то получается, что выражение ВЫРАЗИТЬ(СУММА(0 * 0) КАК ЧИСЛО(23,10)) - вызывает арифметическое переполнение.
#27 by фпк1сл
Был неправ, зайдя дальше обнаружил, что умножение "ВтТаблицаРешений.ПостояннаяРазница" и "ПеремещенияСписания.Количество" на какой то итерации дает переполнение, буду двигаться дальше.
#28 by фпк1сл
При проведении документа "Расчет себестоимости" формируются записи регистра накопления "Себестоимость товаров". Так вот за 2014 год все формировалось нормально, а с 2015 в колонке "Стоимость (ПР)" - постоянная разница, только по 2-3 номенклатурам начали появляться и расти огромные числа. Подскажите, из-за чего растет постоянная разница строго по 2 позициям номенклатуры?
#29 by фпк1сл
Пример. Одна организация, два склада. Документ перемещения формирует две записи в регистре накопления - Количество по двум складам. Документ Расчет себестоимости товаров формирует одну запись - Стоимость(ПР) : 134 046 229,30.   Откуда такая цифра? Причем некоторые записи идут корректно, в чем разница, так и не понял.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С