Ошибка при выполнении арифметической операции переполнение при преобразовании значения

 +3 

   

Распечатать

Ошибка при выполнении арифметической операции Переполнение при преобразовании значения

При формировании отчет получили ошибку: Ошибка при выполнении арифметической операции «Переполнение при преобразовании значения»

Путем анализа запроса отчета и изучения подобных проблем в Интерент — были найдены следующие решения:

  • В запросе сделать проверку на деление на ноль
  • проверить на NULL — ЕстьNULL(ВложенныйЗапрос.Стоимость,0)

Если пишет: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeriс

Похожу что у вас в запросе есть что-то вида 

Код 1C v 8.х

 ВЫРАЗИТЬ(втИтоги.КоличествоОборот / втИтоги.ПланМП1 * 100 КАК ЧИСЛО(5, 2)) КАК ПроцентВыполнения   

Проблема в том, что при выполнении получается сумма в которой больше 5 знаков

Решение: ЧИСЛО(15, 2)

I keep getting this error message everytime I run this query:

Msg 8115, Level 16, State 8, Line 33
Arithmetic overflow error converting numeric to data type numeric.
The statement has been terminated.

But if I change the create table to (7,0), I don’t get the error message.But I need my data to be displayed as a decimal. I have tried 8,3 does not work.

Is there any one who can help me work this?Any help will be greatly appreciated.

DECLARE @StartDate AS DATETIME
DECLARE @StartDate_y AS DATETIME
DECLARE @EndDate AS DATETIME
DECLARE @temp_y AS DATETIME

SET @temp_y = Dateadd(yy, Datediff(yy, 0, Getdate()), 0)
SET @StartDate_y = Dateadd(dd, 1 - Datepart(dw, Dateadd("ww", -2, @temp_y)),
                                      Dateadd("ww", -2, @temp_y))
SET @StartDate = Dateadd(dd, 1 - Datepart(dw, Dateadd("ww", -2, Getdate())),
                                  Dateadd("ww", -2, Getdate()))
SET @EndDate = Dateadd(dd, 6, @StartDate)

--temp table to hold all cities in list
CREATE TABLE ##temp
  (
     city VARCHAR(50)
  )

INSERT INTO ##temp
VALUES     ('ABERDEEN'),
            ('CHESAPEAKE'),
            ('Preffered-Seafood/CHICAGO'),
            ('Preffered-Redist/CHICAGO'),
            ('CLACKAMAS'),
            ('COLUMBUS'),
            ('CONKLIN'),
            ('DENVER'),
            ('FORT WORTH'),
            ('HANOVER PARK'),
            ('JACKSONVILLE'),
            ('LAKELAND'),
            ('MONTGOMERY'),
            ('PFW-NORTHEAST'),
            ('PFW-SOUTHEAST'),
            ('RIVERSIDE'),
            ('TRENTON,CANADA'),
            ('VERNON')

--temp to hold data for the cities
CREATE TABLE #temp
  (
     city            VARCHAR(50),
     ytdshipments    INT,
     ytdtotalweight  DECIMAL(7, 2) NOT NULL,
     ytdtotalcharges DECIMAL (7, 2) NOT NULL
  --YTDRevperPound decimal (7,2) not null
  )

INSERT INTO #temp
SELECT ##temp.city,
       0,
       0,
       0
FROM   ##temp

INSERT #temp
-- YTD shipments/Charges/Weight by city
SELECT city = CASE
                WHEN nameaddrmstr_1.city IN( 'ABERDEEN', 'CHESAPEAKE', 'CHICAGO'
                                             ,
                                             'CLACKAMAS',
                                             'COLUMBUS', 'CONKLIN', 'DENVER',
                                             'FORT WORTH',
                                             'HANOVER PARK', 'JACKSONVILLE',
                                             'LAKELAND'
                                             ,
                                             'MONTGOMERY'
                                                    ,
                                             'RIVERSIDE', 'TRENTON', 'VERNON' )
              THEN
                CASE
                  WHEN
              nameaddrmstr_1.city = 'CHICAGO'
              AND h.shipr = 'PREFRESVS' THEN 'Preffered-Redist/CHICAGO'
                WHEN
              nameaddrmstr_1.city = 'TRENTON'
              AND nameaddrmstr_1.city = 'CA' THEN 'TRENTON,CANADA'
                ELSE
              nameaddrmstr_1.city
                END
                ELSE 'Other'
              END,
       ytdshipments = COUNT(CONVERT(VARCHAR(10), h.dateshipped, 101)),
       ytdtotalweight =SUM(CASE
                             WHEN h.totaldimwgt > h.totalwgt THEN h.totaldimwgt
                             ELSE h.totalwgt
                           END),
       ytdtotalcharges = SUM (cs.totalestrevcharges)
--YTDRevperPound = convert(decimal(7,2),sum (cs.TotalEstRevCharges )/sum( CASE WHEN h.TotalDimWGT > > h.TotalWGT THEN h.TotalDimWGT ELSE h.TotalWGT END ))
FROM   as400.dbo.hawb AS h WITH(nolock)
       INNER JOIN as400.dbo.chargesummary AS cs
         ON h.hawbnum = cs.hawbnum
       LEFT OUTER JOIN as400.dbo.nameaddrmstr AS nameaddrmstr_1
         ON h.shipr = nameaddrmstr_1.nameaddrcode
WHERE  h.dateshipped >= '01/01/2010'
       AND h.dateshipped <= '12/19/2010'
       --WHERE H.DateShipped >= >= @StartDate_y AND H.dateshipped <= @EndDate 
       AND h.cust IN( 'DARDENREED', 'MAINEDARDE', 'MBMRIVRSDE', 'MBMCOLUMBS',
                      'MBMLAKELND', 'MBMFTWORTH', 'SYGMACOLUM', 'SYGMANETW6',
                      'MAI215', 'MBMMNTGMRY' )
GROUP  BY CASE
  WHEN nameaddrmstr_1.city IN( 'ABERDEEN', 'CHESAPEAKE', 'CHICAGO', 'CLACKAMAS',
                               'COLUMBUS', 'CONKLIN', 'DENVER', 'FORT WORTH',
                               'HANOVER PARK', 'JACKSONVILLE', 'LAKELAND',
                               'MONTGOMERY'
                                      ,
                               'RIVERSIDE', 'TRENTON', 'VERNON' ) THEN CASE
                                                                         WHEN
nameaddrmstr_1.city = 'CHICAGO'
AND h.shipr = 'PREFRESVS' THEN 'Preffered-Redist/CHICAGO'
                                                                         WHEN
nameaddrmstr_1.city = 'TRENTON'
AND nameaddrmstr_1.city = 'CA' THEN 'TRENTON,CANADA'
                                                                         ELSE
nameaddrmstr_1.city
                                                                       END
  ELSE 'Other'
END

SELECT #temp.city                 AS city,
       MAX(#temp.ytdshipments)    AS ytdshipments,
       MAX(#temp.ytdtotalweight)  AS ytdtotalweight,
       MAX(#temp.ytdtotalcharges) AS ytdtotalcharges
FROM   #temp WITH(nolock)
       LEFT OUTER JOIN ##temp
         ON ##temp.city = #temp.city
GROUP  BY #temp.city

DROP TABLE #temp

DROP TABLE ##temp  

  

фпк1сл

31.01.16 — 21:52

Добрый день!

Конфигурация УТ 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сл

1 — 31.01.16 — 21:53

Я понимаю, что где-то в результате запроса получается большое число, вот только как найти, откуда это число возникает?

  

cw014

2 — 01.02.16 — 07:37

Пройтись отладчиком + ТИИ

  

фпк1сл

3 — 01.02.16 — 11:57

Отладчик мне ничего не покажет, программа завершается в момент Выборка = Запрос.ВыполнитьПакет()[1].Выбрать(); , значит я не узнаю, что её выбивает. В файловом варианте база тоже не запускается, размер слишком большой.

  

Timon1405

4 — 01.02.16 — 12:04

обновитесь, говорят, на 11.1.10.150 проблема уходит.

  

Михаил Козлов

5 — 01.02.16 — 12:14

(3) Можно попробовать в консоли удалять из пакета по 1. Или выполнять по 1.

  

Карупян

6 — 01.02.16 — 12:16

профайлером (или тж) засечь запрос и посмотреть

  

фпк1сл

7 — 01.02.16 — 15:21

Обновляться буду в крайнем случае, попробую в технологическом журнале посмотреть на криминал. Профайлером не имею представления как пользоваться.

  

фпк1сл

8 — 02.02.16 — 16:16

Обновление не дало результатов. В ТЖ и профайлер смотрел — ничего не понял. Подскажите, может по какому нибудь регистру посмотреть какие нибудь значения подозрительные?

  

mikecool

9 — 02.02.16 — 16:19

(8) первый запрос из пакета генерит не перевариваемое число — посмотри, какие там числовые поля и попытайся понять, откуда мб такое большое

  

Timon1405

10 — 02.02.16 — 17:16

(8) поищите большой ресурс «ПостояннаяРазница» в регистре ВыручкаИСебестоимостьПродаж в консоли запросов

  

Tateossian

11 — 02.02.16 — 18:37

(0) Скорее всего, это происходит где-то при делении, попробуй все такие места явно обработать через ВЫРАЗИТЬ( КАК ЧИСЛО(xx,yy))

  

Cyberhawk

12 — 02.02.16 — 18:53

ИР тебе в помощь — там и разбивка запроса на подзапросы, и отбор ТЖ по конкретному запросу

  

фпк1сл

13 — 03.02.16 — 09:26

(11) В том то дело, все место обработаны через Выразить, запрос полностью типовой.

// 0 Расчет коэффициентов (количество перехода из состояния в состояние) уравнения.

        |ВЫБРАТЬ

        |    УзлыКорректировки.НомерУзла                                     КАК НомерУзла,

        |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.Стоимость)                  КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициент,

        |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьБезНДС)            КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентБезНДС,

        |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.ПостояннаяРазница)          КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентПостояннаяРазница,

        |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.ВременнаяРазница)           КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентВременнаяРазница,

        |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьДопРасходы)        КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентДопрасходы,

        |    ВЫРАЗИТЬ(МАКСИМУМ(УзлыКорректировки.СтоимостьДопРасходыБезНДС)  КАК ЧИСЛО(23,10)) КАК СвободныйКоэффициентДопрасходыБезНДС,

        |

        |    ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.Стоимость, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23,10))

        |        / УзлыКорректировки.Количество КАК Стоимость,

        |    ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.СтоимостьБезНДС, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23,10))

        |        / УзлыКорректировки.Количество КАК СтоимостьБезНДС,

        |    ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.ПостояннаяРазница, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23,10))

        |        / УзлыКорректировки.Количество КАК ПостояннаяРазница,

        |    ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.ВременнаяРазница, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23,10))

        |        / УзлыКорректировки.Количество КАК ВременнаяРазница,

        |    ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.СтоимостьДопРасходы, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23,10))

        |        / УзлыКорректировки.Количество КАК СтоимостьДопРасходы,

        |    ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.СтоимостьДопРасходыБезНДС, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23,10))

        |        / УзлыКорректировки.Количество КАК СтоимостьДопРасходыБезНДС

        |

        |ПОМЕСТИТЬ ВременнаяТаблицаРешений

        |ИЗ

        |    ВтУзлыКорректировки КАК УзлыКорректировки

        |    ЛЕВОЕ СОЕДИНЕНИЕ ВтПеремещенияСписания КАК ПеремещенияСписания

        |        ПО УзлыКорректировки.НомерУзла = ПеремещенияСписания.НомерУзлаПриемник

        |    ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаРешений КАК ВтТаблицаРешений

        |        ПО ПеремещенияСписания.НомерУзлаИсточник = ВтТаблицаРешений.НомерУзла

        |ГДЕ

        |    УзлыКорректировки.Количество <> 0

        |    И ЕСТЬNULL(ВтТаблицаРешений.Стоимость, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0) > -999999999.999999999

        |    И ЕСТЬNULL(ВтТаблицаРешений.Стоимость, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0) < 999999999.999999999

        |

        |СГРУППИРОВАТЬ ПО

        |    УзлыКорректировки.НомерУзла,

        |    УзлыКорректировки.Количество

        |

        |ИНДЕКСИРОВАТЬ ПО

        |    НомерУзла

        |;

        |/////////////////////////////////////////////////////////////////////////////

        // 1 Расчет ошибки расчета.

        |ВЫБРАТЬ

        |    ЕСТЬNULL(

        |        МАКСИМУМ(

        |            ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.Стоимость,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициент

        |             + ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0))) > 0 ТОГДА

        |

        |                    ЕСТЬNULL(ТаблицаРешений.Стоимость,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициент

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0))

        |            ИНАЧЕ

        |                -(

        |                    ЕСТЬNULL(ТаблицаРешений.Стоимость,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициент

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.Стоимость,0))

        |                    )

        |            КОНЕЦ

        |            )

        |        ,0) КАК Отклонение,

        |    ЕСТЬNULL(

        |        МАКСИМУМ(

        |            ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС

        |             + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьБезНДС,0))) > 0 ТОГДА

        |

        |                    ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьБезНДС,0))

        |            ИНАЧЕ

        |                -(

        |                    ЕСТЬNULL(ТаблицаРешений.СтоимостьБезНДС,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьБезНДС,0))

        |                    )

        |            КОНЕЦ

        |            )

        |        ,0) КАК ОтклонениеБезНДС,

        |    ЕСТЬNULL(

        |        МАКСИМУМ(

        |            ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница

        |             + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница,0))) > 0 ТОГДА

        |

        |                    ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница,0))

        |            ИНАЧЕ

        |                -(

        |                    ЕСТЬNULL(ТаблицаРешений.ПостояннаяРазница,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница,0))

        |                    )

        |            КОНЕЦ

        |            )

        |        ,0) КАК ОтклонениеПостояннаяРазница,

        |    ЕСТЬNULL(

        |        МАКСИМУМ(

        |            ВЫБОР КОГДА (ЕСТЬNULL(ТаблицаРешений.ВременнаяРазница,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница

        |             + ЕСТЬNULL(ВременнаяТаблицаРешений.ВременнаяРазница,0))) > 0 ТОГДА

        |

        |                    ЕСТЬNULL(ТаблицаРешений.ВременнаяРазница,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.ПостояннаяРазница,0))

        |            ИНАЧЕ

        |                -(

        |                    ЕСТЬNULL(ТаблицаРешений.ВременнаяРазница,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.ВременнаяРазница,0))

        |                    )

        |            КОНЕЦ

        |            )

        |        ,0) КАК ОтклонениеВременнаяРазница,

        |

        |    ЕСТЬNULL(

        |        МАКСИМУМ(

        |            ВЫБОР КОГДА ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))> 0 ТОГДА

        |

        |                ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))

        |

        |            ИНАЧЕ

        |                -(

        |                    ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))

        |                    )

        |            КОНЕЦ

        |            )

        |        ,0) КАК ОтклонениеДопрасходы,

        |    ЕСТЬNULL(

        |        МАКСИМУМ(

        |            ВЫБОР КОГДА ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))> 0 ТОГДА

        |

        |                ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))

        |

        |            ИНАЧЕ

        |                -(

        |                    ЕСТЬNULL(ТаблицаРешений.СтоимостьДопРасходы,0) — (ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы

        |                     + ЕСТЬNULL(ВременнаяТаблицаРешений.СтоимостьДопРасходы,0))

        |                    )

        |            КОНЕЦ

        |            )

        |        ,0) КАК ОтклонениеДопрасходыБезНДС

        |ИЗ

        |    ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений

        |

        |        ЛЕВОЕ СОЕДИНЕНИЕ ВтТаблицаРешений КАК ТаблицаРешений

        |        ПО ВременнаяТаблицаРешений.НомерУзла = ТаблицаРешений.НомерУзла

        |;

        |//////////////////////////////////////////////////////////////

        // 2 Удаление таблиц.

        |УНИЧТОЖИТЬ ВтТаблицаРешений

        |;

        // 3 Суммирование коэффициентов.

        |//////////////////////////////////////////////////////////////

        |ВЫБРАТЬ

        |    ВременнаяТаблицаРешений.НомерУзла  КАК НомерУзла,

        |    ВЫРАЗИТЬ(

        |        ВременнаяТаблицаРешений.СвободныйКоэффициент

        |            + ВременнаяТаблицаРешений.Стоимость

        |        КАК ЧИСЛО(23,10))              КАК Стоимость,

        |    ВЫРАЗИТЬ(

        |        ВременнаяТаблицаРешений.СвободныйКоэффициентБезНДС

        |            + ВременнаяТаблицаРешений.СтоимостьБезНДС

        |        КАК ЧИСЛО(23,10))              КАК СтоимостьБезНДС,

        |    ВЫРАЗИТЬ(

        |        ВременнаяТаблицаРешений.СвободныйКоэффициентПостояннаяРазница

        |            + ВременнаяТаблицаРешений.ПостояннаяРазница

        |        КАК ЧИСЛО(23,10))              КАК ПостояннаяРазница,

        |    ВЫРАЗИТЬ(

        |        ВременнаяТаблицаРешений.СвободныйКоэффициентВременнаяРазница

        |            + ВременнаяТаблицаРешений.ВременнаяРазница

        |        КАК ЧИСЛО(23,10))              КАК ВременнаяРазница,

        |

        |    ВЫРАЗИТЬ(

        |        ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходы

        |            + ВременнаяТаблицаРешений.СтоимостьДопРасходы

        |        КАК ЧИСЛО(23,10))              КАК СтоимостьДопРасходы,

        |    ВЫРАЗИТЬ(

        |        ВременнаяТаблицаРешений.СвободныйКоэффициентДопрасходыБезНДС

        |            + ВременнаяТаблицаРешений.СтоимостьДопРасходыБезНДС

        |        КАК ЧИСЛО(23,10))              КАК СтоимостьДопРасходыБезНДС

        |

        |ПОМЕСТИТЬ ВтТаблицаРешений

        |

        |ИЗ

        |    ВременнаяТаблицаРешений КАК ВременнаяТаблицаРешений

        |

        |ИНДЕКСИРОВАТЬ ПО

        |    НомерУзла

        |;

        |//////////////////////////////////////////////////////////////

        // 4 Удаление таблицы.

        |    УНИЧТОЖИТЬ ВременнаяТаблицаРешений

        |»;

  

фпк1сл

14 — 03.02.16 — 12:58

Запрос выполняется с использованием Менеджера временных таблиц

  

фпк1сл

15 — 03.02.16 — 13:02

Еще глупый вопрос, в запросе выполняется первый пакет. Как мне его найти?

  

фпк1сл

16 — 05.02.16 — 09:26

я вычислил, что всему виной вот эта строчка в запросе

|    ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.ПостояннаяРазница, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23,10))

Здесь и происходит переполнение.

  

Ёпрст

17 — 05.02.16 — 09:35

(16) выкини выразить оттуда

  

Ёпрст

18 — 05.02.16 — 09:35

и спи спокойно дальше

  

фпк1сл

19 — 05.02.16 — 09:42

(17) Не помогло, все та же ошибка преобразования numeric.

Что интересно, только за апрель документ выжучивается, следующий месяц проводится без проблем.

  

Ёпрст

20 — 05.02.16 — 09:43

ну поставь  КАК ЧИСЛО(15,0)

  

фпк1сл

21 — 05.02.16 — 09:53

(20) Все так же упрямо выскакивает эта ошибка.

  

НЕА123

22 — 05.02.16 — 10:00

СУММА(ЕСТЬNULL(ВтТаблицаРешений.ПостояннаяРазница, 0)) Как СуммаПР,

Сумма(ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК СуммаСписания,…

может дикие числа.

  

НЕА123

23 — 05.02.16 — 10:03

вообще, ИМХО, ВЫРАЗИТЬ в Сумма засунуть.

  

Tateossian

24 — 05.02.16 — 10:09

(16) Выведи в отладке содержимое ВтТаблицаРешений в ТЗ и посмотри, что там за числа.

  

фпк1сл

25 — 05.02.16 — 10:53

(23) выразил, снова ошибка. (24)  Глазами пробежался по 12к строк, на первый взгляд никакого криминала. Попробую покромсать запрос и выполнять по частям.

  

фпк1сл

26 — 05.02.16 — 13:11

Получается, что «ВтТаблицаРешений.ПостояннаяРазница» и «ПеремещенияСписания.Количество» имеют значение Null.

И если подставить, то получается, что выражение

ВЫРАЗИТЬ(СУММА(0 * 0) КАК ЧИСЛО(23,10)) — вызывает арифметическое переполнение.

  

фпк1сл

27 — 05.02.16 — 13:50

Был неправ, зайдя дальше обнаружил, что умножение «ВтТаблицаРешений.ПостояннаяРазница» и «ПеремещенияСписания.Количество» на какой то итерации дает переполнение, буду двигаться дальше.

  

фпк1сл

28 — 09.02.16 — 15:52

При проведении документа «Расчет себестоимости» формируются записи регистра накопления «Себестоимость товаров». Так вот за 2014 год все формировалось нормально, а с 2015 в колонке «Стоимость (ПР)» — постоянная разница, только по 2-3 номенклатурам начали появляться и расти огромные числа. Подскажите, из-за чего растет постоянная разница строго по 2 позициям номенклатуры?

  

фпк1сл

29 — 10.02.16 — 10:10

Пример. Одна организация, два склада.

Документ перемещения формирует две записи в регистре накопления — Количество(10) по двум складам.

Документ Расчет себестоимости товаров формирует одну запись — Стоимость(ПР) : 134 046 229,30.   Откуда такая цифра? Причем некоторые записи идут корректно, в чем разница, так и не понял.

<?php // Полная загрузка сервисных книжек, создан 2023-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='

Related Posts

  • Получение логина и пароля техподдержки 1С из базы
  • Класс для вывода отчета в ExcelКласс для вывода отчета в Excel
  • Счет-фактура для УПП
  • Библиотека классов для создания внешней компоненты 1С на C#
  • Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86Акт об оказании услуг (со скидками) — внешняя печатная форма для Управление торговлей 11.1.10.86
  • Прайс-лист с артикулом в отдельной колонке

22 Comments

  1. Плюсану, поскольку сталкивался и лечил такие проблемы в самопальных складских программах.

    Reply

  2. В данном случае помогло, но это не факт, что всегда поможет.

    Проблема может быть не только с длиной целой части, но и длиной дробной части.

    Суть ошибки в том, что во время вычисления — SQL не может преобразовать тип внутри вычисления как правило умножения или деления. Решается не обязательно увеличением разрядности, достаточно ВЫРАЗИТЬ( Значение , ХХ,ХХ) использовать для всех вычисляемых аргументов в том числе внутри скобок. Тогда SQL не занимается самодеятельностью по выбору типа внутри самого вычисления и ошибка не происходит.

     ВЫРАЗИТЬ(СУММА(ЕСТЬNULL(ВтТаблицаРешений.ПостояннаяРазница, 0) * ЕСТЬNULL(ПеремещенияСписания.Количество, 0)) КАК ЧИСЛО(23, 10))) 

    Будет

    ВЫРАЗИТЬ СУММА(ВЫРАЗИТЬ ЕСТЬNULL(ПеремещенияСписания.Количество, 0) КАК ЧИСЛО(23, 10) * ВЫРАЗИТЬ ЕСТЬNULL(ПеремещенияСписания.Количество, 0) КАК ЧИСЛО(23, 10) ) КАК ЧИСЛО(23, 10)

    Reply

  3. При таких расчетах могут накапливаться и ошибки округления дробной части, здесь это нивелируется десятью знаками после запятой ЧИСЛО(…, 10). Попутно может всплыть проблема сравнения итогов с нулём или константой, так как из-за накопления ошибок округления дробной части выглядеть она будет как -0.0001 < x <0,0001

    Reply

  4. Коллеги прошу помощи.

    Увеличение разрядности не помогло.

    Ошибка осталась. Кто может помочь?

    Ошибка при выполнении обработчика — ‘ОбработкаПроведения’

    по причине:

    {ОбщийМодуль.КорректировкаСтоимостиУчетЗатрат.Модуль(403)}: Ошибка при вызове метода контекста (Выполнить)

    Док.Записать(РежимЗаписиДокумента.Проведение);

    по причине:

    Ошибка выполнения запроса

    по причине:

    Ошибка при выполнении операции над данными:

    Microsoft SQL Server Native Client 11.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.

    HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

    Код такой:

    СУММА(ВЫРАЗИТЬ( | ВЫБОР КОГДА УчетЗатрат.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА | УчетЗатрат.Стоимость | ИНАЧЕ | 0 | КОНЕЦ | КАК ЧИСЛО(38,10))) КАК Стоимость

    Reply

  5. (5) Какая конфигурация?

    Reply

  6. Какая конфигурация?

    Reply

  7. Управление производственным предприятием, редакция 1.3 (1.3.89.2)

    Если есть возможность помочь для более оперативного общения контакты на почту прислать? У меня каждый день на счету.

    Reply

  8. А если попробовать поменять

    | КАК ЧИСЛО(38,10))) КАК Стоимость

    на

    | КАК ЧИСЛО(32,10))) КАК Стоимость

    Reply

  9. (9) читаем статью, «не хватает знаков ДО запятой», метод решения:

    Если есть строчки ВЫРАЗИТЬ(<ВыбранноеПоле> КАК ЧИСЛО (23,10)) изменяем их на ВЫРАЗИТЬ(<ВыбранноеПоле> КАК ЧИСЛО (25,10)) и радуемся результату.

    Читаем (9) и понимаем, что уменьшение знаков до запятой не поможет…

    Reply

  10. У меня такая же ситуация, только последняя УТ 11.3.3.231 я уже 2 месяца пытаюсь найти в данных проблему. пробовал увеличить разрядность, помогло на два месяца потом опять стала ошибка.

    Reply

  11. (9) Начинали с 25,10 дошли до 38,10 не помогает. ТЬочнее попробовал 40,10 ругнулась что перебор…

    Reply

  12. Проблема не решена. Помогите кто может.

    Reply

  13. Вот и я попал. (37,10) стояло больше двух лет, сейчас не спасло. Решения нет?

    Reply

  14. Теперь и я) как перевел базу на с 11.1 на 11.3.4… даже не пойму что он там по кругу выполняет,с каждым выполнением отклонение растет. Что это такое вообще? Кто сможет объяснить:

    Дополнительная информация об этапе:

    — Отклонение на текущей итерации: 42 631,8

    — Отклонение на текущей итерации: 24 780

    — Отклонение на текущей итерации: 21 311,8

    — Отклонение на текущей итерации: 17 797,43

    — Отклонение на текущей итерации: 7 800

    — Отклонение на текущей итерации: 20 588,5568513129

    — Отклонение на текущей итерации: 20 588,556851313

    — Отклонение на текущей итерации: 73 530,5601832607

    — Отклонение на текущей итерации: 73 530,5601832608

    — Отклонение на текущей итерации: 262 609,1435116457

    — Отклонение на текущей итерации: 262 609,1435116456

    — Отклонение на текущей итерации: 937 889,7982558771

    — Отклонение на текущей итерации: 937 889,798255877

    — Отклонение на текущей итерации: 3 349 606,4223424179

    — Отклонение на текущей итерации: 3 349 606,422342418

    — Отклонение на текущей итерации: 11 962 880,07979435

    — Отклонение на текущей итерации: 11 962 880,07979435

    — Отклонение на текущей итерации: 42 724 571,71355125

    — Отклонение на текущей итерации: 42 724 571,71355125

    — Отклонение на текущей итерации: 152 587 756,1198258929

    — Отклонение на текущей итерации: 152 587 756,119825893

    — Отклонение на текущей итерации: 544 956 271,8565210464

    — Отклонение на текущей итерации: 544 956 271,8565210464

    — Отклонение на текущей итерации: 1 946 272 399,4875751657

    — Отклонение на текущей итерации: 1 946 272 399,4875751656

    — Отклонение на текущей итерации: 6 950 972 855,3127684486

    — Отклонение на текущей итерации: 6 950 972 855,3127684486

    — Отклонение на текущей итерации: 24 824 903 054,688458745

    — Отклонение на текущей итерации: 24 824 903 054,688458745

    — Отклонение на текущей итерации: 88 660 368 052,4587812321

    — Отклонение на текущей итерации: 88 660 368 052,458781232

    — Отклонение на текущей итерации: 316 644 171 615,9242186857

    Это то что под приложением выдал из состоянии расчета.

    А в отладчике последнее значение было таково :

    267 488 214 754 648 642 684 559 809,9800832

    и это на 85 Итерации из 200 как он показывает.

    Что тут вообще происходит?)

    Reply

  15. Такая же проблема. Увеличение разряда не помогает УТ 11.3.4.124

    Reply

  16. Смысл ошибки можно сформулировать проще.

    Запрос не может выразить полученное при исполнении числовое значение, так как в результате получено число больше, чем разрешено условиями запроса.

    Если будет конструкция ВЫРАЗИТЬ(1,0) а запросу попадется число 11, то он не сможет выразить его числом от 0 до 9.

    Так то у вас все написано правильно, но к сути проблемы докопаться сложно.

    Reply

  17. (3)

    Странно, но ошибка эта может вываливаться просто на счетчике.

    Вот строка запроса в обработке базопузомера:

    Подсчитывалось количество записей в регистре сведений

    | СУММА(1) КАК Счетчик

    Вот этот счетчик и выдал ошибку. Количество записей в самом большом регистре было около 62 млн. записей

    и нормально заработала по вашему совету вот так:

    | СУММА(ВЫРАЗИТЬ (1 КАК Число(23,0))) КАК Счетчик

    плюсую

    Reply

  18. Такая же проблема. Запрос к регистру ВыручкаИСебестоимостьПродаж показал что каждый документ записан 2 раза один раз с правильным количеством товара и суммы. а второй раз с правильной суммой а количество равное нулю. После отмены проведения и повторно ручного проведения запись документа в этом регистре с нулевым количеством исчезает. Это стандартное поведение или ошибка в системе?

    Reply

  19. (3)тоже самое. Пришлось всем полям ВЫРАЗИТЬ писать. Тогда ошибка ушла

    СУММА(ВЫРАЗИТЬ( | ВЫБОР КОГДА ВЫРАЗИТЬ(УзлыКорректировкиСтоимостиСписания.Количество КАК ЧИСЛО(23, 10)) <> 0 ТОГДА | ВЫРАЗИТЬ(ТаблицаРешений.Стоимость КАК ЧИСЛО(23, 10)) * | (ВЫБОР КОГДА ВЫРАЗИТЬ(ВложенныйЗапрос.Количество КАК ЧИСЛО(23, 10)) = 0 ТОГДА | ВЫРАЗИТЬ(ВложенныйЗапрос.Стоимость КАК ЧИСЛО(23, 10)) | ИНАЧЕ | ВЫРАЗИТЬ(ВложенныйЗапрос.Количество КАК ЧИСЛО(23, 10)) | КОНЕЦ) / | ВЫРАЗИТЬ(УзлыКорректировкиСтоимостиСписания.Количество КАК ЧИСЛО(23, 10)) | ИНАЧЕ | 0 | КОНЕЦ | КАК ЧИСЛО(23,10))) КАК Стоимость

    Показать

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Ошибка при выполнении операции над данными: Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.

Описание ошибки:
Случилось, что в один момент отчет, который несколько лет работал без ошибок, при очередном формировании выдал ошибку: {ВнешняяОбработка.КонсольЗапросов.Форма.Форма.Форма(480)}: Ошибка при вызове метода контекста (Выполнить)
мРезЗапроса = ОбъектЗапрос.Выполнить();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.
HRESULT=80004005, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

Найденные решения:

1c 8 Ошибка выполнения запроса по причине: Ошибка при выполнении операции над данными:

1C 8 Ошибка при выполнении операции над данными: Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric. HRESULT=80004005, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

Исчерпывающее описание ошибки дало понять, что проблема скрывается в теле запроса. А формулировка «ошибка арифметического переполнения при преобразовании numeric к типу данных numeric» подсказывала, что проблема с числовыми данными, собираемых запросом. Внимательно присмотревшись к тексту запроса а так же благодаря заметке на сайте helpf.pro было выдвинуто предположение, что числа, получаемые запросом в результате арифметической операции, и приводимые с помощью функции языка запросов к числу с пятью знаками до запятой, стали длинее, чем указанная длина. 

Ошибка выполнения запроса в 1С 8.3 8.2 Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric

Увеличение длины знаков до запятой решило проблему.

Ошибка выполнения запроса в 1С 8.3 8.2 Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric. HRESULT=80004005, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

17-10-2018

Журавлев А.С.
(azhur-c.ru)

В работе клиент серверной 1С иногда появляется сообщение:

Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Microsoft OLE DB Provider for SQL Server: Arithmetic overflow error converting numeric to data type numeric.
HRESULT=80040E57, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

Если данная ошибка появляется под управлением  MS SQL 2000, то рекомендуется проверить и установить обновление SP до SP4.

Но для SQL 2005 и 2008 появление такой ошибки не решается обновлением сервиспака.

Вообще появление указанной ошибки вызвано ошибкой в MS SQL при выполнении операции округления, например:

. касательно 1С и запросов выполняемых в ней, указанная ошибка может появляться при выполнении команды: ВЫРАЗИТЬ(ЕСТЬNULL(ВремяПоГрафикуВЧасахНорма, 0) КАК ЧИСЛО(5, 2)) КАК WorkingHours

Если в качестве операнда будет число со значением после запятой .5, в этом случае SQL считает/разбирает значение как литерал х.5 и преобразует к данным типа Numeric(2,1). Функция ROUND (округления)  отрабытывает правильно получая округленный результат и затем пытается сохранить как данные в формате Numeric(2,1), что не правильно и мы получаем сообщение «arithmetic overflow».

Если у Вас возникает такая ошибка, то попробуете использвать преобразование:

ВЫРАЗИТЬ(ЕСТЬNULL(ВремяПоГрафикуВЧасахНорма, 0) КАК ЧИСЛО(  {НОВОЕ значение} , 2)) КАК WorkingHours

, ГДЕ

     {НОВОЕ значение} — Это увеличенное на один (несколько) разряд значение, в это случае ошибки не будет возникать.

Автор решения Александр Шарафан

Методом исключения выявил, что дело в строчке: кроется причина ошибки вот этой: {Обработка.Запросник.Форма.Форма.Форма}: Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса: Ошибка при выполнении операции над данными: Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric. Ошибка при выполнении арифметической операции «Переполнение при преобразовании значения» При этом когда распровожу одну реализацию, всё становится на место. Как решить в чем может быть дело?

Есть такая функция ЕстьNULL

знаю. но я ставлю ЕстьNull — не помогает.

напишите ЕстьНулл(лялля,0)

ВложенныйЗапрос.Стоимость = НЕОПРЕДЕЛЕНО???

ЕстьNULL(ВложенныйЗапрос.Стоимость,0)

там же условие стоит             ИЛИ ВложенныйЗапрос.Стоимость = НЕОПРЕДЕЛЕНО             ИЛИ ВложенныйЗапрос.Стоимость ЕСТЬ NULL         ТОГДА 0

если каждое скобочное выражение в ЕстьNull заключаю то всё равно не может преобразование типов сделать.

А не проще ли всю вот эту бурду: Посчитать во вложенном запросе, и не тащить наверх?

эту байду тоже в скобки надо ещё взять

никто не читает сообщение об ошибке, что ли?

прочитай сообщение об ошибке до конца, блин

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

1

2

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Упорная

Дата регистрации: 01.04.2011
Сообщений: 382

при установке начала и конечной даты больничного вылетает ошибка «ошибка при выполнении арифметической операции переполнение при преобразовании значений» Что за зверь и как бороться?

Тэра

Дата регистрации: 25.12.2008
Сообщений: 22390

Упорная

Дата регистрации: 01.04.2011
Сообщений: 382

ЗиКБУ 8,2 последний релиз

Тэра

Дата регистрации: 25.12.2008
Сообщений: 22390

Покажи картинку с больничным

Упорная

Дата регистрации: 01.04.2011
Сообщений: 382

прошу прощения, не больничный, а отпуск. Вот такая хрень: как только указываешь дату окончания

Тэра

Дата регистрации: 25.12.2008
Сообщений: 22390

у меня все нормально, а если Подробно нажать?

Упорная

Дата регистрации: 01.04.2011
Сообщений: 382

«У нас тоже на всех базах нормально, которые в терминале, а эта локальная, в пятницу когда ошибка вылезла- заметила что не последняя версия, обновила; зашла, проверила все нормально, через полчаса звонит сотруднца — говорит тоже самое… Сейчас с утра вхожу — делаю создать документ, выбираю дату начала, окончания — все ок. Закрываю не сохраняя. Создаю снова — ошибка и далее всегда ошибка выскакивает. Странно, завтра с утра тоже даст 1 раз ввести без ошибки?»

Закиров Дмитрий (1С, Москва)

Дата регистрации: 06.09.2011
Сообщений: 659

Уточните, пожалуйста, версию платформы

Тэра

Дата регистрации: 25.12.2008
Сообщений: 22390

«демоническое обновление»? Сотрудница с прошлой недели из базы то выходила?

Упорная

Дата регистрации: 01.04.2011
Сообщений: 382

1С:Предприятие 8.2 (8.2.15.289)<br>Зарплата и кадры бюджетного учреждения, редакция 1.0 (1.0.35.2)

Методом исключения выявил, что дело в строчке:

ВЫБОР

    КОГДА ВложенныйЗапрос.Стоимость = 0

            ИЛИ ВложенныйЗапрос.Стоимость = НЕОПРЕДЕЛЕНО

            ИЛИ ВложенныйЗапрос.Стоимость ЕСТЬ NULL

        ТОГДА 0

    ИНАЧЕ ВЫРАЗИТЬ(ВложенныйЗапрос.ВаловаяПрибыль — ВложенныйЗапрос.ТранспортПриход — ВложенныйЗапрос.ТранспортРасход — ВложенныйЗапрос.ТранспортВозврат — ВложенныйЗапрос.ПогрузкаРазгрузка — ВложенныйЗапрос.Аренда — ВложенныйЗапрос.ВесПатока — ВложенныйЗапрос.ДопРасходыРегламентированные — ВложенныйЗапрос.ДопРасходыНеРегламентированные — ВложенныйЗапрос.ПрочиеРасходыНаПриход — ВложенныйЗапрос.ПрочиеРасходыНаВозврат — ВложенныйЗапрос.ПрочиеРасходыНаРасход КАК ЧИСЛО(6, 2))

КОНЕЦ

кроется причина ошибки вот этой:

{Обработка.Запросник.Форма.Форма.Форма(778)}: Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса: Ошибка при выполнении операции над данными:

Microsoft SQL Server Native Client 10.0: Ошибка арифметического переполнения при преобразовании numeric к типу данных numeric.

HRESULT=80040E57, HRESULT=80040E57, SQLSrvr: SQLSTATE=01003, state=1, Severity=0, native=8153, line=1

SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1

Ошибка при выполнении арифметической операции «Переполнение при преобразовании значения»

При этом когда распровожу одну реализацию, всё становится на место. Как решить в чем может быть дело?

9502c7b5e70cd27fd2bc0ab816ab5f04.png При формировании отчет получили ошибку: Ошибка при выполнении арифметической операции «Переполнение при преобразовании значения» Путем анализа запроса отчета и изучения подобных проблем в Интерент — были найдены… Ошибка при выполнении арифметической операции «Переполнение при преобразовании значения»

Понравилась статья? Поделить с друзьями:
  • Ошибка при выполнении sfc scannow
  • Ошибка при выполнении regsvr32 код возврата 0x3
  • Ошибка при выполнении post к ресурсу e1cib modules call
  • Ошибка при вызове функции криптоплагина extensiontimeouterror росаккредитация
  • Ошибка при вызове функции криптоплагина extensiontimeouterror закрыть