|
v7: 1sqlite: Отбрасывается дробная часть, База DBF | ☑ | ||
---|---|---|---|---|
0
Volodja
22.01.22
✎
17:45
|
При выполнении запроса возвращается результат с отбрасыванием дробной части (СпрАбоненты_ОбщаяПлощадь):
SELECT СпрАбоненты.[ID] AS [СпрАбоненты_Ссылка :Справочник.Абоненты] ,СпрАбоненты.[ОбщаяПлощадь] as [СпрАбоненты_ОбщаяПлощадь :Число.7.2] FROM [Справочник.Абоненты] AS СпрАбоненты Как это победить? Версия sqlite 3.36.0.25 ( пробовал и более ранние) |
|||
1
Volodja
22.01.22
✎
18:25
|
(0) Если Периодический реквизит (Цена), то нормально все. Возвращается с дробной частью
SELECT СпрНоменклатура.[ID] AS [СпрНоменклатура_Ссылка :Справочник.Номенклатура] ,(Select Value From Константы Where (OBJID= СпрНоменклатура.ID) AND (ID=:ИсторияРеквизита.Номенклатура.Цена) AND (Date <= '20220101') Order By Date Desc Limit 1) AS [СпрНоменклатура_Цена :Число.15.2] FROM [Справочник.Номенклатура] AS СпрНоменклатура |
|||
2
Ёпрст
22.01.22
✎
23:33
|
ОбщаяПлощадь - какой тип в метаданных задан ?
|
|||
3
Ёпрст
22.01.22
✎
23:37
|
ну и.. если .15.2 поставить (мало ли, переполнение разряда у тебя там
|
|||
4
Ёпрст
22.01.22
✎
23:37
|
или вообще выкинь типизацию, просто
,СпрАбоненты.ОбщаяПлощадь СпрАбоненты_ОбщаяПлощадь че кажет ? |
|||
5
Volodja
23.01.22
✎
07:46
|
(4) Реквизит ОбщаяПлощадь Число(7.2)
В запросе и больше ставил. Типизацию тоже убирал, также. |
|||
6
Volodja
23.01.22
✎
08:02
|
(4) Может кто у себя проверит? Может тут проблема в библиотеке?
(1) - работает как надо. |
|||
7
hhhh
23.01.22
✎
08:35
|
(5) возможно дальше ошибка, а не здесь. Пишете в реквизит, который целое.
|
|||
8
Volodja
23.01.22
✎
09:12
|
(7) У меня в базе ОбщаяПлощадьс дробной частью. В списке это прекрасно видно. После применения запроса (0) :
_глБД_SQLite = СоздатьОбъект("SQLiteBase"); _глБД_SQLite.Открыть(":memory:"); Запрос = _глБД_SQLite.НовыйЗапрос(); //Запрос.Отладка(1); _тз = Запрос.ВыполнитьЗапрос(СокрЛП(ТекстЗапроса)); _тз.ВыбратьСтроку(); В _тз колонка СпрАбоненты_ОбщаяПлощадь содержит данные без дробной части |
|||
9
Volodja
23.01.22
✎
09:15
|
(8) Проверил и на документах (Строки), таже история.
ОС - Windows 10 pro (если это имеет значение) |
|||
10
youalex
23.01.22
✎
10:03
|
А если не в 1С посмотреть, а в DBeaver или типа того
|
|||
11
Volodja
23.01.22
✎
10:06
|
(10) Через DBFNavigator смотрю. Есть там дробная часть.
|
|||
12
youalex
23.01.22
✎
10:11
|
А если 1.0 * СпрАбоненты.[ОбщаяПлощадь]
|
|||
13
youalex
23.01.22
✎
10:12
|
и указание типа :Число.7.2 - разве в алиасе должно быть?
|
|||
14
Volodja
23.01.22
✎
10:18
|
(13) Убирал, ставил, и 10.2 пробовал и умножал на 1.0. Нифига
Если умножаю на 10, то результат без учета дробной части. Что за дичь? |
|||
15
Volodja
23.01.22
✎
10:27
|
(14) Вот скрины экранов
https://wdfiles.ru/e16d3c |
|||
16
Volodja
23.01.22
✎
10:40
|
(15) Вообще если применяю арифметическую операцию, то она выполняется с целой частью
Например: Площадь=50.7 1.1*Площадь возвращает 55 Площадь=36.2 1.1*Площадь возвращает 39.6 |
|||
17
Volodja
23.01.22
✎
11:40
|
Может быть, 1sqlite обрабатывает числа, согласно региональным настройкам? У меня в настройках формата стоял разделитель целой и дробной части ",", я установил ".". Но это не решило проблему.
Погуглив, нашел, что на C# при обращении к sqLite решали эту проблему так: Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; Может и в моем случае чтоөто подобное применить? |
|||
18
Гость из Мариуполя
гуру
23.01.22
✎
11:50
|
(17) но ты же сам говоришь, что Номенклатура.Цена отрабатывает нормально? если бы дело было в региональных настройках, наверно бы это влияло на все дробные части везде?
|
|||
19
Volodja
23.01.22
✎
11:54
|
(18) Наверное? потому что тип Value в 1s_const это строка
|
|||
20
Volodja
23.01.22
✎
11:55
|
(19) Наверное, потому что тип Value в 1s_const это строка
|
|||
21
Djelf
23.01.22
✎
12:53
|
О подобном никто и никогда не сообщал. Увы, надо смотреть базу. Есть вот такая идея, что выводит такой код?
|
|||
22
Volodja
23.01.22
✎
13:56
|
(21) Тип Число Длина 6 Точность 2
|
|||
23
Volodja
23.01.22
✎
14:01
|
(21) На Windows Server 2008 тоже самое происходит
Вообще любые числовые реквизиты с дробной частью с разной точностью возвращаются целыми |
|||
24
Djelf
23.01.22
✎
14:07
|
(22) Ладно, видимо метаданные верные.
На других справочниках, документах, регистрах пробовал? Как там с числами? А оригинальная от Орефкова https://snegopat.ru/1sqlite/index так же себя ведет? Отключай все ВК. Kernel32, Kernel33 и т.п. стоит? Давно дело было, но кажется после v7lua.dll такое было, не помню уже... Да у меня даже на linux под wine оно работает! Такого поведения никогда не видел. |
|||
25
Djelf
23.01.22
✎
14:13
|
+(24) И проверим с еще вот так, что выводит запрос
|
|||
26
Volodja
23.01.22
✎
14:21
|
(24) Бинго !!!
v7lua.dll чудит. А так хотелось раскраску сделать. |
|||
27
Volodja
23.01.22
✎
14:23
|
(25) Numeric (7,2) выдает
|
|||
28
Djelf
23.01.22
✎
14:26
|
Для раскраски хватает в ВК sci хватает скорости и 1С, впрочем можешь попробовать сборку отсюда: https://code.google.com/archive/p/v7lua/downloads или мою: https://cloud.mail.ru/public/PvqV/4CNpYPW8a
Это не пригодилось: https://6bix.livejournal.com/47995.html ;) |
|||
29
Volodja
23.01.22
✎
14:28
|
Спасибо, Djelf. Снова выручили.
(28) попробую |
|||
30
Volodja
23.01.22
✎
14:50
|
(28) а как это использовать? - https://cloud.mail.ru/public/PvqV/4CNpYPW8a
https://code.google.com/archive/p/v7lua/downloads - у меня такая же. |
|||
31
Djelf
23.01.22
✎
14:54
|
Не то, это: https://cloud.mail.ru/public/rp2u/SN2o5Lv3a
Не знаю, сейчас у меня обе работают при загрузке и до и после 1sqlite |
|||
32
Volodja
23.01.22
✎
15:05
|
(31) С этой v7lua.dll тоже пропадает дробная часть.
Она работает в паре с 1sci.dll ? |
|||
33
Djelf
23.01.22
✎
15:17
|
каталог bin кидай на обменник
|
|||
34
Volodja
23.01.22
✎
15:27
|
||||
35
Злопчинский
23.01.22
✎
15:29
|
А что такое v7lua ?
|
|||
36
Volodja
23.01.22
✎
15:39
|
(35) https://wdfiles.ru/1a4d23
Вот так с ней можно поле ввода делать |
|||
37
Злопчинский
23.01.22
✎
15:50
|
(36) это именно для раскраски текстов запросов?
|
|||
38
Volodja
23.01.22
✎
16:02
|
(37) с ней идут еще несколько файлов *.lua, видимо там и описываются какие слова выделяются.
|
|||
39
alyuev
25.01.22
✎
16:32
|
||||
40
alyuev
25.01.22
✎
19:27
|
(28) Согласен с Djelf! Всё работает и с ВК sci.dll.
|
|||
41
Djelf
25.01.22
✎
20:06
|
(40) С sci.dll работает, с луа - нет, просто загрузка луа dll ничего не делает, но если какой то ее метод вызвать, она что-то перехватывает и потом ой - все.
И как я писал в (28), эта ворона мне не пригодилась. Если не пригодилась лет 10 назад, теперь уже точно возвращается за ней не буду, и лечить ее тоже не буду, не моя это ВК, чтобы ее лечить... З.Ы. С sci.dll луа не нужна, код на 1С не сильно медленнее для раскраски и т.п., и 10 лет назад это не тормозило, а сейчас тем более. |
|||
42
Volodja
26.01.22
✎
07:49
|
(41) А есть пример как раскрасить текст поля ввода без помощи Луа?
Тот пример, что у меня есть работает в связке Sci + Lua |
|||
43
Djelf
26.01.22
✎
08:22
|
(42) Посмотри тут: https://www.1cpp.ru/forum/YaBB.pl?num=1217410246/0
|
|||
44
Ёпрст
26.01.22
✎
09:54
|
sci.dll даже я в свои поделки включал.. валяется на нимфостарте - класс редактирования формы
|
|||
45
Volodja
27.01.22
✎
06:44
|
(44) Ссылку не покажешь?
|
|||
46
Ёпрст
27.01.22
✎
10:35
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |