Имя: Пароль:
1C
1С v8
1С Запрос, количество знаков после запятой при группировке
0 CepeLLlka
 
07.06.24
15:52
Добрый день.
В клиент-серверном варианте, на платформе 8.3.22.2239 и СУБД SQL Server 2012 я столкнулся с такой ошибкой:

ВЫБРАТЬ
	ТестОбороты.Товар КАК Товар,
	ТестОбороты.КоличествоОборот КАК КоличествоОборот
ИЗ
	РегистрНакопления.Тест.Обороты КАК ТестОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ТестОбороты.Товар КАК Товар,
	СУММА(ТестОбороты.КоличествоОборот) КАК КоличествоОборот
ИЗ
	РегистрНакопления.Тест.Обороты КАК ТестОбороты

СГРУППИРОВАТЬ ПО
	ТестОбороты.Товар



Два этих запроса выдают разный результат, при условии, что в оборотном регистре накопления "Тест" только одна запись
Товар № 1 с количеством -0,003494665

Первый запрос выводит количество равное -0,003494665
А второй запрос в результат выводит -0,00349467
по сути округляя и теряя один знак после запятой.
Подскажите пожалуйста, что можно сделать, чтобы не было округления и считалось верно?
1 Волшебник
 
07.06.24
15:51
"Тест" — плохое название регистра
2 mikecool
 
07.06.24
15:51
ВЫРАЗИТЬ в СУММА() попробуй запихнуть
3 maxab72
 
07.06.24
15:51
Какая размерность у ресурса "Количество"?
4 CepeLLlka
 
07.06.24
15:52
(3)22 символа и 9 из них, после запятой.
5 Eiffil123
 
07.06.24
15:53
(0) сталкивались с чем-то похожим на ERP (при расчете себестоимости при очень малом количестве). Выходили из положения тем, что сумму внутри агрегатной функции умножали на 10000, а потом итоговую сумму делили на 10000.
6 PR
 
07.06.24
15:53
7 CepeLLlka
 
07.06.24
15:53
(2)Вопрос решён. Спасибо.
8 CepeLLlka
 
07.06.24
15:54
(6)Виноват, да.
9 Мультук
 
07.06.24
15:55
(0)


Хранить в виде 3494,665   ?
А затем там где надо делить?
10 PR
 
07.06.24
15:56
Именно поэтому https://its.1c.ru/db/v8std/content/535/hdoc
11 CepeLLlka
 
07.06.24
15:57
(9)Вариант из (2) помог, всё норм. Спасибо.
12 PR
 
07.06.24
15:58
(8) Я не про то, я про то, что не помню где, ищи сам, но причина в том, что скуль округляет все вычисления до скольки-то там знаков, до 6 вроде
И 1С тут бессильна
Можно в запросе все умножать на миллиард, а потом в 1С уже делить на миллиард, например
13 Garykom
 
07.06.24
15:59
(10)
При выполнении арифметических операций в запросах к базе данных платформа 1С:Предприятия поддерживает точность вычислений до 8 разрядов дробной части.
14 CepeLLlka
 
07.06.24
16:02
(13)В файловой то всё норм было, я тестил
15 breezee
 
07.06.24
20:31
Сделайте единицу измерения Микро*.
И создавайте запись в регистр 100 микро(допустим, грамм)
16 timurhv
 
07.06.24
21:37
(0) К числам с плавающей точкой всегда надо относиться особенно осторожно.
Тут Excel вроде уже начинает считать не как целые числа, а как с плавающей точкой со всеми вытекающими. А то начнется эта ваша 1С неправильно считает.