![]() |
![]() |
![]() |
|
Ошибка Microsoft SQL и 1С Arithmetic overflow error | ☑ | ||
---|---|---|---|---|
0
MAPATNK2
naïve
28.07.17
✎
11:25
|
Ошибка при выполнении операции над данными:
Microsoft SQL Server Native Client 10.0: Arithmetic overflow error converting numeric to data type numeric. HRESULT=80004005, SQLSrvr: SQLSTATE=22003, state=8, Severity=10, native=8115, line=1 Добрый день. Эта ошибка преследует меня последнюю неделю. отчеты перестали формироваться, документы заполнятся. Просто бред какой-то. При выполнении системного запроса ПостроительОтчета.Текст = "ВЫБРАТЬ | ОстаткиТоваров.Номенклатура, | ОстаткиТоваров.ХарактеристикаНоменклатуры," +?(УчитыватьСерии, " | ОстаткиТоваров.СерияНоменклатуры,", "") + " | ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения, | ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения, | ОстаткиТоваров.ЦенаВРознице, | ВЫБОР | КОГДА (СУММА(ОстаткиПартий.КоличествоОстаток) = 0) | ИЛИ (СУММА(ОстаткиПартий.КоличествоОстаток) ЕСТЬ NULL) ТОГДА | 0 | ИНАЧЕ | СУММА(ОстаткиПартий.СтоимостьОстаток)*СУММА(ОстаткиТоваров.КоличествоОстаток) | / СУММА(ОстаткиПартий.КоличествоОстаток) | КОНЕЦ КАК Сумма, | СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество |ИЗ | РегистрНакопления.ТоварыВНТТ.Остатки(&МоментДокумента, | Склад = &Склад |// И ЦенаВРознице > 0 |) КАК ОстаткиТоваров |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента, | Склад = &ПартионныйСклад) КАК ОстаткиПартий |ПО | ОстаткиТоваров.Номенклатура = ОстаткиПартий.Номенклатура | И ОстаткиТоваров.ХарактеристикаНоменклатуры = ОстаткиПартий.ХарактеристикаНоменклатуры" +?(УчитыватьСерии, " | И (ОстаткиТоваров.СерияНоменклатуры = ОстаткиПартий.СерияНоменклатуры | ИЛИ НЕ ОстаткиТоваров.Номенклатура.ВестиПартионныйУчетПоСериям)", "") + " | |{ГДЕ ОстаткиТоваров.Номенклатура КАК Номенклатура, | ОстаткиТоваров.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа} | |СГРУППИРОВАТЬ ПО | ОстаткиТоваров.Номенклатура, | ОстаткиТоваров.ХарактеристикаНоменклатуры," +?(УчитыватьСерии, " | ОстаткиТоваров.СерияНоменклатуры,", "") + " | ОстаткиТоваров.ЦенаВРознице"; Иначе Если Склад.ВидСклада = Перечисления.ВидыСкладов.Оптовый Тогда РегОстатки = "ТоварыНаСкладах"; Иначе РегОстатки = "ТоварыВРознице"; КонецЕсли; ПостроительОтчета.Текст = "ВЫБРАТЬ | ОстаткиТоваров.Номенклатура, | ОстаткиТоваров.ХарактеристикаНоменклатуры," +?(УчитыватьСерии, " | ОстаткиТоваров.СерияНоменклатуры,", "") + " | ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения, | ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения, | ОстаткиТоваров.Качество, | СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество, | ВЫБОР | КОГДА (СУММА(ОстаткиПартий.КоличествоОстаток) = 0) | ИЛИ (СУММА(ОстаткиПартий.КоличествоОстаток) ЕСТЬ NULL) ТОГДА | 0 | ИНАЧЕ | СУММА(ОстаткиПартий.СтоимостьОстаток)*СУММА(ОстаткиТоваров.КоличествоОстаток) | / СУММА(ОстаткиПартий.КоличествоОстаток) | КОНЕЦ КАК Сумма |ИЗ | РегистрНакопления." + РегОстатки + ".Остатки(&МоментДокумента, Склад = &Склад) |КАК ОстаткиТоваров | |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента, | Склад = &ПартионныйСклад) КАК ОстаткиПартий |ПО | ОстаткиТоваров.Номенклатура = ОстаткиПартий.Номенклатура | И ОстаткиТоваров.ХарактеристикаНоменклатуры = ОстаткиПартий.ХарактеристикаНоменклатуры" +?(УчитыватьСерии, " | И (ОстаткиТоваров.СерияНоменклатуры = ОстаткиПартий.СерияНоменклатуры | ИЛИ НЕ ОстаткиТоваров.Номенклатура.ВестиПартионныйУчетПоСериям)", "") + " | И ОстаткиТоваров.Качество = ОстаткиПартий.Качество | |{ГДЕ ОстаткиТоваров.Номенклатура КАК Номенклатура, | ОстаткиТоваров.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа} | |СГРУППИРОВАТЬ ПО | ОстаткиТоваров.Номенклатура, | ОстаткиТоваров.ХарактеристикаНоменклатуры," +?(УчитыватьСерии, " | ОстаткиТоваров.СерияНоменклатуры,", "") + " | ОстаткиТоваров.Качество"; КонецЕсли; Запрос = ПостроительОтчета.ПолучитьЗапрос(); Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("ПартионныйСклад", ВремСклад); Если ЭтоНовый() Тогда Запрос.УстановитьПараметр("МоментДокумента", КонецДня(Дата)); Иначе Попытка Запрос.УстановитьПараметр("МоментДокумента", МоментВремени()); исключение Запрос.УстановитьПараметр("МоментДокумента", МоментВремени().Дата); КонецПопытки; КонецЕсли; Выборка = Запрос.Выполнить().Выбрать(); Вылазит эта ошибка. Что делать? Кто сталкивался. |
|||
1
Ненавижу 1С
гуру
28.07.17
✎
11:27
|
||||
2
MAPATNK2
naïve
28.07.17
✎
11:28
|
(1) Не подходит
|
|||
3
MAPATNK2
naïve
28.07.17
✎
11:29
|
(1) Нет у меня функций округления
|
|||
4
Господин ПЖ
28.07.17
✎
11:31
|
переполнение... какое-то поле вылезает за пределы размерности
|
|||
5
MAPATNK2
naïve
28.07.17
✎
11:32
|
(4) уже больше похоже на правду, спасибо
|
|||
6
1dvd
28.07.17
✎
11:32
|
Вылетает на новом или записанном документе?
|
|||
7
1dvd
28.07.17
✎
11:33
|
имхается мне, что проблема здесь:
Если ЭтоНовый() Тогда Запрос.УстановитьПараметр("МоментДокумента", КонецДня(Дата)); Иначе Попытка Запрос.УстановитьПараметр("МоментДокумента", МоментВремени());//<--- вот тута исключение Запрос.УстановитьПараметр("МоментДокумента", МоментВремени().Дата); КонецПопытки; |
|||
8
Йохохо
28.07.17
✎
11:36
|
или КоличествоОстаток = 10Е-10
|
|||
9
MAPATNK2
naïve
28.07.17
✎
12:05
|
(7) Ну я ведь добавил попытку. тоже думал, что там
|
|||
10
MAPATNK2
naïve
28.07.17
✎
12:05
|
(8) А как это узнать?
|
|||
11
1dvd
28.07.17
✎
12:06
|
Почему бы не сделать просто?
Запрос.УстановитьПараметр("МоментДокумента", Дата); |
|||
12
Buster007
28.07.17
✎
12:11
|
СУММА(ОстаткиПартий.СтоимостьОстаток)*СУММА(ОстаткиТоваров.КоличествоОстаток)
| / СУММА(ОстаткиПартий.КоличествоОстаток) проблема здесь |
|||
13
Buster007
28.07.17
✎
12:13
|
+(12) криво прочитал )
|
|||
14
Йохохо
28.07.17
✎
12:16
|
(10) в консоли выполни запрос по первой таблице убрав все деления
| СУММА(ОстаткиПартий.СтоимостьОстаток)*СУММА(ОстаткиТоваров.КоличествоОстаток) КАК СУммаСтоимость, | ВЫБОР | КОГДА (СУММА(ОстаткиПартий.КоличествоОстаток) = 0) | ИЛИ (СУММА(ОстаткиПартий.КоличествоОстаток) ЕСТЬ NULL) ТОГДА | 0 | ИНАЧЕ | СУММА(ОстаткиПартий.КоличествоОстаток) | КОНЕЦ КАК КоличествоОстаток |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |