Имя: Пароль:
1C
1С v8
Точность 10 знаков после запятой в регистрах накопления
0 xavchik
 
17.01.18
14:47
Всем доброго дня.

Столкнулся с проблемой. Найдо в регистрах учитывать количество с точность 10 знаков после запятой. Сделал регистр накопления, к нему ресурс - число 20,10.

Сделал по нему движение 0,0000000001 (единица в десятой позиции), движение по регистру вижу.

Выбираю статки запросом - получаю 0,0000000000 (НОЛЬ).

По всей видимость итоги 1С округляет до 8 знаков после запятой. База MS SQL Server Express 2012.

Сталкивался кто-нибудь с подобной задачей?
1 Segate
 
17.01.18
14:48
храни значения с множителем 100, потом при обработке результата дели на 100
2 xavchik
 
17.01.18
14:50
Есть такая идея, но нехота код переписывать по все конфе. Хотелось бы покрасивее.

Это ограничение СУБД? Знает кто подробнее.
3 xavchik
 
17.01.18
15:02
Нашел решение.
Было подсказано вот этой статьей ИТС

https://its.1c.ru/db/metod8dev#content:2665:hdoc

Изменил типы ресурсов с Число(20,10) на Число(14,10) и заработало. Причем если использовать уже Число(15,10), то 10-я цифра обрезается.

Пока времени разбираться подробно нет, а это решение пока устраивает.
4 xavchik
 
17.01.18
15:37
Обнаружил еще несколько моментов

Установил к конфигураторе тип ресурса Число(20,10), открыл конфигурацию, выполнил запрос по остаткам - цифры в послежних разрядах на месте.

Перепровел документ - цифры в последних разрядах обнулились.

Т.е. при реструктуризации при созранении конфигурации он эти итоги считает правильно, и при пересчете после проведения документа он их теряет.

Универсальный отчет УТ 10.3 показывает нормально только при типе Число(14,10), консоль запросов показывает нормально начиная с Число(16,10).

Магия!
5 Fannasankh
 
17.01.18
15:40
А зачем такая точность?
6 Ботаник Гарден Меран
 
17.01.18
15:46
В партнерке кстати есть темы про 8 знаков после запятой.
Это не магия, это кужня у них такая, с темной кладовкой.
7 xavchik
 
17.01.18
15:48
И еще немного магии:

Универсальный отчет за 1 день
https://ibb.co/edM22R

Универсальный отчет без указания периода (данные те же):
https://ibb.co/i0K5NR
8 xavchik
 
17.01.18
15:48
(5) Есть разные объекты учета. Мои требуют такой точности :-)
9 xavchik
 
17.01.18
15:49
(6) Речь идет о партнерском разделе сайта?
10 El_Duke
 
гуру
17.01.18
15:58
(8) Очень интересно ...
На каких весах вы взвешиваете или в какой микроскоп разглядываете такие объекты учета ?
11 Быдло замкадное
 
17.01.18
16:01
20 знаков слева, 10 справа...
Тогда уж оставь 1 знак слева
12 Быдло замкадное
 
17.01.18
16:01
героин продают, не иначе!
13 kauksi
 
17.01.18
16:03
чую что конфа для учета биткоинов
14 Serg_1960
 
17.01.18
16:18
Из одной моей старой темы на эту тему (точнее про некоторые  особенности работы ВЫРАЗИТЬ в запросе):

Запрос = Новый Запрос("Выбрать ВЫРАЗИТЬ(13.1/13 КАК ЧИСЛО(27,25)) КАК Точность");
Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий();
Сообщить(""+Выборка.Точность);// 1,0076923076923076923076923...
15 organizm
 
17.01.18
16:33
Это старая песня, единицу хранения присвоили килотонны, а приходуют наноограммы. "Дебилы, мля" (с)
16 xavchik
 
17.01.18
16:41
(11) Маловато будет
17 xavchik
 
17.01.18
16:41
(12) Хорошая идея для разработки отраслевой конфигурации. 1С: Наркоторговля 8 ПРОФ :-)
18 lodger
 
17.01.18
16:42
(0) ведите учет в целых числах, без дробной части. "позицию запятой", т.е. множитель, хранить в соседнем реквизите или в реквизите измерения и доставать для математики.
косяки с дробными частями это старый прикол платформы и особенности работы с СУБД (которая, как вы помните может быть встроенной файловой в том числе).
19 xavchik
 
17.01.18
16:43
(14) Да, в статье по ссылки выше так и написано. Но мне надо, чтобы это работало глобально, а не переписывать все места обращения к этому ресурсу - ибо геморно и забивает логику
20 xavchik
 
17.01.18
16:44
(15) Нет, тут единиц измерения нет вообще, не используются они
21 xavchik
 
17.01.18
16:45
(18) Да, это решение, предлагали уже выше. Но забивает код ненужными деталями. Хочется красиво. В принципе, предложенный обходной путь работает.
22 organizm
 
17.01.18
16:48
(21) с кратностью как раз красивый универсальный способ! Как вы определил, что 10 знаков после запятой будет достаточно?
23 breezee
 
17.01.18
16:52
(17) Ага, там все занято уже по торговле, а отчетность им наркоторговцам навряд ли сдавать надо)
24 xavchik
 
17.01.18
16:52
Ну, если уж упрусь, что надо будет больше, то передалаю таким способом.
25 xavchik
 
17.01.18
16:53
(23) Нужно, нужно... Перед крышующими "органами" :-)
26 breezee
 
17.01.18
16:54
(21) А чем вам единицы хранения не устраивают? Выше предлагали или у вас товар может быть продан на 1 микрограмм и 1 млн тонн одновременно? Так все равно можно оформить в разных единицах продажу, а то что вы пишите про регистр с точностью в 10 знаков - это как раз не очень красивое решение
27 breezee
 
17.01.18
16:55
(26)
*Выше предлагали. Или у  
Фикс
28 xavchik
 
17.01.18
16:56
(27) Segate предлагал, в самом начала
29 xavchik
 
17.01.18
16:57
(26) У меня вообще нет единиц измерения и быть их не может. Они не присущи объекту учета. Это просто количество и все.
30 breezee
 
17.01.18
16:57
(28) Ну так разве плохое решение? продайте в 1 мг, а не 0.0000001 грамм
31 breezee
 
17.01.18
16:58
(29) А что у вас такое? Если копейки криво округляются - спишите последнюю...
32 vde69
 
17.01.18
16:59
если количество с 10 знаками, то с какой точностью нужна цена? и в каких это будет единицах?

блин я целый год потратил для приведение учета сделанного дебилами до 6 знаков после запятой к типовому, все жутко ругались.... а поработали на типовом полгода и стали вспоминать старое как страшилку ...
33 breezee
 
17.01.18
17:00
(32) Манагеры тоже будут рады забивать такие удобные документы
34 vde69
 
17.01.18
17:00
за реализацию САБЖА - надо гнать из профессии...
35 bodri
 
17.01.18
17:05
(34) а заказчиков расстрелять?
36 xavchik
 
17.01.18
17:08
Как же я люблю, когда люди начинают вместо ответа на вопрос, рассуждать о том, кого надо расстреливать и жалеть манагеров, которые будут что-то куда забивать :-)

Непередаваемая атмосфера форумов...
37 breezee
 
17.01.18
17:11
(36) Но вопрос довольно странный, если бы мы отвечали на вопрос, а не разбирались в сути проблемы - у нас бы получилась не рабочая система, которая состоит целиком из хотелок пользователей
38 xavchik
 
17.01.18
17:13
(37) Я согласен, что с заказчиком надо обсуждать вопрос со всех сторон. Но - я не заказчик в данном случае. Я - разработчик.
39 vde69
 
17.01.18
17:13
(37) ну на самом деле, может это и не сумма и не количество, а например координаты геопозиционирования... но в таком случае их проще написать в виде строки.
41 Lama12
 
17.01.18
18:31
(0) Разработка конфигурации - "1С:Астронавигация"?
Вроде у них своя платформа...
42 stopa85
 
17.01.18
19:31
(0) Вообще, конечно, грусно .. но что делать.

В СУБД у тебя есть DECIMAL(20,10), а в коде платформы только Число.

Подозреваю, что это "Число" - есть число с плавающей точкой, а операции по ним по определению приближенные, т.е. не точные.
43 Asmody
 
17.01.18
19:36
Представление чисел, виды числовых типов, операции с десятичными и с плавающей точкой, точность числа и "машинный ноль" сейчас проходят в школьном курсе информатики.
44 xavchik
 
17.01.18
20:29
(43) Еще один гений, блин...

Я пишу на 1С. На 1С, Карл!

1С, это не ассемблер с прямой работой с регистрами памяти процессора, это платформа. Платформа, включает в себя целый набор технологий (SQL, платформа 1С, драйверы для работы с СУБД и куча еще чего), которые позводяют не заморачивасть с операциями с числами с плавающей точкой.

Так что мой вопрос совсем не простой, как может показаться, а твои перечисления умных слов не никак не приближают к правильному ответу...
45 xavchik
 
17.01.18
20:33
(42) +100500

Внутри все так и есть. Но задача проста: хранить значения в регистрах с точностью до 10-го знака и получать по ним итоги платформенными средствами
46 Веселый собака
 
17.01.18
22:16
(32) Ты супермен, конечно, и правильный такой. Но теперь тебе надо будет каждый раз доказывать это!
47 Asmody
 
17.01.18
22:27
(44) Независимо от того, на чём ты пишешь, Карлуша, знать как представляются и обрабатываются числа в компьютере нужно.
48 xavchik
 
17.01.18
23:43
(47) Во-первых, я знаю. Во-вторых, нужно знать много чего. Например, какие грибы есть можно, а какие - нет. Это тоже очень важная информация, даже иногда жизненноважная. Но ценность от нее в этом месте, возможно, даже выше, чем то, о чем ты говоришь.
49 Asmody
 
17.01.18
23:53
(48) хочешь об этом поговорить?
2 + 2 = 3.9999999999999999999999999999999...