|
Ошибка при закрытии месяца (УНФ) | ☑ | ||
---|---|---|---|---|
0
bestuzhev
16.05.23
✎
17:47
|
При закрытии месяца вылетает следующая ошибка:
Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: {Документ.ЗакрытиеМесяца.МодульОбъекта(1523)}: Ошибка при вызове метода контекста (ВыполнитьПакет) по причине: по причине: Ошибка выполнения запроса по причине: Ошибка при выполнении операции над данными: 22003: ERROR: numeric field overflow DETAIL: A field with precision 23, scale 10 must round to an absolute value less than 10^13. Гугл не помог. Смотрел отладкой, запрос выполняется несколько раз в цикле, и на одной из итераций валится с ошибкой. Может кто сталкивался или какой совет умный даст. |
|||
1
Волшебник
16.05.23
✎
17:49
|
Покажите запрос
|
|||
2
bestuzhev
16.05.23
✎
18:07
|
(1)
// Следующая итерация расчета. Запрос.Текст = "ВЫБРАТЬ | УзлыКорректировкиСтоимостиСписания.НомерУзла КАК НомерУзла, | Сумма(ВЫРАЗИТЬ(ВЫБОР | КОГДА УзлыКорректировкиСтоимостиСписания.Количество <> 0 | ТОГДА ВЫРАЗИТЬ(ТаблицаРешений.СуммаБезНДС КАК ЧИСЛО(23, 10)) * ВЫБОР | КОГДА УчетЗатрат.Количество = 0 | ТОГДА ВЫРАЗИТЬ(УчетЗатрат.СуммаБезНДС КАК ЧИСЛО(23, 10)) | ИНАЧЕ ВЫРАЗИТЬ(УчетЗатрат.Количество КАК ЧИСЛО(23, 10)) | КОНЕЦ / ВЫРАЗИТЬ(УзлыКорректировкиСтоимостиСписания.Количество КАК ЧИСЛО(23, 10)) | ИНАЧЕ 0 | КОНЕЦ КАК ЧИСЛО(23, 10))) КАК СуммаБезНДС, | СУММА(ВЫРАЗИТЬ(ВЫБОР | КОГДА УзлыКорректировкиСтоимостиСписания.Количество <> 0 | ТОГДА ВЫРАЗИТЬ(ТаблицаРешений.Сумма КАК ЧИСЛО(23, 10)) * ВЫБОР | КОГДА УчетЗатрат.Количество = 0 | ТОГДА ВЫРАЗИТЬ(УчетЗатрат.Сумма КАК ЧИСЛО(23, 10)) | ИНАЧЕ ВЫРАЗИТЬ(УчетЗатрат.Количество КАК ЧИСЛО(23, 10)) | КОНЕЦ / ВЫРАЗИТЬ(УзлыКорректировкиСтоимостиСписания.Количество КАК ЧИСЛО(23, 10)) | ИНАЧЕ 0 | КОНЕЦ КАК ЧИСЛО(23, 10))) КАК Сумма |ПОМЕСТИТЬ ВременнаяТаблицаРешений |ИЗ | РегистрСведений.УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания | ЛЕВОЕ СОЕДИНЕНИЕ УчетЗатрат КАК УчетЗатрат | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРешений КАК ТаблицаРешений | ПО УчетЗатрат.НомерУзла = ТаблицаРешений.НомерУзла | ПО УзлыКорректировкиСтоимостиСписания.Организация = УчетЗатрат.Организация | И УзлыКорректировкиСтоимостиСписания.СтруктурнаяЕдиница = УчетЗатрат.СтруктурнаяЕдиница | И УзлыКорректировкиСтоимостиСписания.СчетУчета = УчетЗатрат.СчетУчета | И УзлыКорректировкиСтоимостиСписания.Номенклатура = УчетЗатрат.Номенклатура | И УзлыКорректировкиСтоимостиСписания.Характеристика = УчетЗатрат.Характеристика | И УзлыКорректировкиСтоимостиСписания.Партия = УчетЗатрат.Партия | И УзлыКорректировкиСтоимостиСписания.ЗаказПокупателя = УчетЗатрат.ЗаказПокупателя | И УзлыКорректировкиСтоимостиСписания.ЗаказНаПроизводство = УчетЗатрат.ЗаказНаПроизводство |ГДЕ | УзлыКорректировкиСтоимостиСписания.Регистратор = &Регистратор | |СГРУППИРОВАТЬ ПО | УзлыКорректировкиСтоимостиСписания.НомерУзла | |ИНДЕКСИРОВАТЬ ПО | НомерУзла |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СУММА((ЕСТЬNULL(ТаблицаРешений.СуммаБезНДС, 0) - (УзлыКорректировкиСтоимостиСписания.СуммаБезНДС + ЕСТЬNULL(ВременнаяТаблицаРешений.СуммаБезНДС, 0))) * (ЕСТЬNULL(ТаблицаРешений.СуммаБезНДС, 0) - (УзлыКорректировкиСтоимостиСписания.СуммаБезНДС + ЕСТЬNULL(ВременнаяТаблицаРешений.СуммаБезНДС, 0)))) КАК СуммаБезНДСКвадратовОтклонений, | СУММА((ЕСТЬNULL(ТаблицаРешений.Сумма, 0) - (УзлыКорректировкиСтоимостиСписания.Сумма + ЕСТЬNULL(ВременнаяТаблицаРешений.Сумма, 0))) * (ЕСТЬNULL(ТаблицаРешений.Сумма, 0) - (УзлыКорректировкиСтоимостиСписания.Сумма + ЕСТЬNULL(ВременнаяТаблицаРешений.Сумма, 0)))) КАК СуммаКвадратовОтклонений |ИЗ | РегистрСведений.УзлыКорректировкиСтоимостиСписания КАК УзлыКорректировкиСтоимостиСписания | ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений | ПО (ВременнаяТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла) | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаРешений КАК ТаблицаРешений | ПО (ТаблицаРешений.НомерУзла = УзлыКорректировкиСтоимостиСписания.НомерУзла) |ГДЕ | УзлыКорректировкиСтоимостиСписания.Регистратор = &Регистратор"; |
|||
3
Волшебник
16.05.23
✎
18:09
|
(2) У Вас там какое-то деление на ноль и бесконечное число с 23 нулями. Ищите
|
|||
4
Гена
16.05.23
✎
19:01
|
Может немного увеличить целую часть? Например, ЧИСЛО(25, 10)
|
|||
5
Гена
16.05.23
✎
19:09
|
А вообще, СуммаКвадратовОтклонений вполне может в геометрической прогрессии расходиться вместо схождения, например при отрицательных остатках в каком-нибудь используемом РН. По арифметике. Раскачается +/- до бесконечности.
|
|||
6
Гена
16.05.23
✎
19:14
|
Поэтому лучше в этой приблуде суммы квадратов отклонений на всякий случай заложить не просто произведение двух слагаемых, а их модулей.
В 1С есть что-то вроде ABS()? |
|||
7
bestuzhev
16.05.23
✎
19:49
|
(5) Да, дело было именно в отрицательных остатках, запросом глянул что там с минусом, исправил проблему и все пошло.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |