|
|
|
Как отделить пустое числовое поле от нуля? | ☑ | ||
|---|---|---|---|---|
|
0
Бежечаночка
08.04.09
✎
11:20
|
Как в 8-ке отделить пустое числовое поле от нуля? Эти ситуации мне надо обрабатывать по-разному.
|
|||
|
1
Злобный Йожег
08.04.09
✎
11:21
|
Что значит "пустое числовое поле"?
|
|||
|
2
Михаил Козлов
08.04.09
✎
11:21
|
Значение "пустого" числового поля чему равно?
|
|||
|
3
ДенисЧ
08.04.09
✎
11:22
|
как по-разному?
|
|||
|
4
Господин ПЖ
08.04.09
✎
11:22
|
брюнетка с розовым мозгом?
|
|||
|
5
megalodon
08.04.09
✎
11:23
|
Если тип поля простой, то никак, потому как в числовом поле пустое значение и есть нуль. Надо назначить составной тип для поля с одной галкой "Число" - тогда он сможет принимать 2 значения: Неопределено и 0 - по разному их и обрабатывай.
|
|||
|
6
Бежечаночка
08.04.09
✎
11:23
|
(4) Ну и дурак
|
|||
|
7
Бежечаночка
08.04.09
✎
11:24
|
(5) спасибо за подсказку, буду пробовать
|
|||
|
8
Mitriy
08.04.09
✎
11:27
|
это не запрос?
|
|||
|
9
Defender aka LINN
08.04.09
✎
11:28
|
Они нашли друг друга... Главное - чтобы детей не было :)
|
|||
|
10
Бежечаночка
08.04.09
✎
11:29
|
(5) Надо назначить составной тип для поля с ОДНОЙ галкой "Число" - тогда он сможет принимать 2 значения: Неопределено и 0 - по разному их и обрабатывай.
В этом случае галка Составной тип не сохраняется... |
|||
|
11
Бежечаночка
08.04.09
✎
11:30
|
(8) нет это не запрос, числовое поле на форме, мне надо чтобы НЕзаполненное поле не считалось 0
|
|||
|
12
Господин ПЖ
08.04.09
✎
11:32
|
(11) ААА!!! Это вторжение разрушителей мозгов.
|
|||
|
13
megalodon
08.04.09
✎
11:32
|
(10) понятно, а было бы весело. Ну тогда рядом добавь еще реквизит логического типа, куда и пиши, заполнено поле или нет.
|
|||
|
14
eklmn
гуру
08.04.09
✎
11:32
|
=О
|
|||
|
15
eklmn
гуру
08.04.09
✎
11:33
|
(11) формат поля настрой чтоб при нуле показывало пусто и все
|
|||
|
16
eklmn
гуру
08.04.09
✎
11:34
|
В свойствах поля -Формат
|
|||
|
17
megalodon
08.04.09
✎
11:36
|
господа, чего вы на девушку накинулись? бывает такая ситуация, как у нее. Например, у меня когда то при составлении бюджетов подразделений для финансиста было принципиально: запланирован по подразделению 0 или просто ничего не планировалось (то есть план не составлялся) - разные вещи при анализе.
|
|||
|
18
Бежечаночка
08.04.09
✎
11:37
|
(15) не подходит, мне нужно чтоб пользователь мог вводить 0 и это был бы 0, а если поле не заполнено - то пусто, а 8-ка и в этом случае считает поле 0.
(13) не совсем удобно, т.к. реже встречается 0, а пустое поле - чаще |
|||
|
19
Синий зуб
08.04.09
✎
11:37
|
Введи строковый реквизит, обрабатывай его, переводи в число.
|
|||
|
20
FanatToNight
08.04.09
✎
11:38
|
а если реквизит строчный, его можно проверять на ПустаяСтрока() или "0"
некрасиво, но можно.. :)) |
|||
|
21
eklmn
гуру
08.04.09
✎
11:38
|
(18) так в чем проблема в свйсвах поля при изменении проверку делать?
|
|||
|
22
eklmn
гуру
08.04.09
✎
11:39
|
(18) сначала пробуй и думай, потом вопросы залавай.
|
|||
|
23
Snorkler
08.04.09
✎
11:39
|
(0) А у поля на форме нет в свойствах что-то вроде ОтметкаНезаполненного?
|
|||
|
24
Бежечаночка
08.04.09
✎
11:41
|
(22) Откуда вы знаете, что я раньше делала? :)
просто удивилась, что в 8-ке нет легкого решения такого вопроса. |
|||
|
25
Defender aka LINN
08.04.09
✎
11:41
|
(17) Дык и делается это тогда совершенно по другому.
|
|||
|
26
Defender aka LINN
08.04.09
✎
11:41
|
(24) В восьмерке вопроса такого нет. Он только в воспаленных розовых мозгах.
|
|||
|
27
eklmn
гуру
08.04.09
✎
11:42
|
(24) по (18) видно
|
|||
|
28
Бежечаночка
08.04.09
✎
11:42
|
(23) ввожу явно 0 - АвтоОтметкаНезаполннего также работет как и при незаполнном поле
|
|||
|
29
eklmn
гуру
08.04.09
✎
11:43
|
+(27) решение занимает ~30 секунд
|
|||
|
30
Бежечаночка
08.04.09
✎
11:44
|
(29) значит старею, и в чем же решение? очередной изврат?
|
|||
|
31
FanatToNight
08.04.09
✎
11:45
|
(30) - вопрос весьма частный, чтобы 1с предусматривала на него штатное решение.
предложенное - не изврат. три варианта - достаточно |
|||
|
32
Бежечаночка
08.04.09
✎
11:47
|
(31) Частный? Почему же в большинстве СУБД он решен и NULL не равен 0???
|
|||
|
33
eklmn
гуру
08.04.09
✎
11:48
|
(32) так опредились уже че тебе нужно, NULL неопределено 0...
|
|||
|
34
Господин ПЖ
08.04.09
✎
11:49
|
(32) NULL также <> NULL - сюрприз...
|
|||
|
35
eklmn
гуру
08.04.09
✎
11:49
|
+ и при чем тут поле на форме и СУБД?
|
|||
|
36
FanatToNight
08.04.09
✎
11:49
|
(32) у языка 1с задачи несколько другие.
в СУБД тоже можно посетовать, что многого, чего хотелось-бы - нет.. |
|||
|
37
Бежечаночка
08.04.09
✎
11:50
|
(33) НЕЗАПОЛНЕННОЕ не считать нулем
|
|||
|
38
eklmn
гуру
08.04.09
✎
11:50
|
(30) в чем изврат так и не понял...
зайди у же в свойства поля и ВНИМАТЕЛЬНО посмотри все что там есть, а поотм думай, потом еще раз думай, а потом... ну не дано тебе ... |
|||
|
39
Бежечаночка
08.04.09
✎
11:51
|
(36) какие другие? хранить данные-анализировать-удобно представлять - такие же как и везде
|
|||
|
40
eklmn
гуру
08.04.09
✎
11:52
|
(37) еще раз: Свойства поля-Формат-Закладка Число-предствление нуля-Отсутсвует.
|
|||
|
41
FanatToNight
08.04.09
✎
11:52
|
(37) ты читать умеешь? прочти еще раз (19).. я уж не говорю о (20) :))
ЗЫ. блин.. одни капризы.. |
|||
|
42
eklmn
гуру
08.04.09
✎
11:53
|
И все-таки опять прав ПЖ :)
|
|||
|
43
Бежечаночка
08.04.09
✎
11:55
|
(40) да при чем здесь ФОРМАТ? незаполнное число на форме хранится как 0 НЕЗАВИСИМО от формата.
Сами вы не в теме Один был дельный совет - еще одно булево поле завести и хранить их парой |
|||
|
44
Бежечаночка
08.04.09
✎
11:57
|
19-20 топик и представляет из себя извратное решение разве нет? Нигде мне так делать не приходилось
|
|||
|
45
skunk
08.04.09
✎
11:57
|
а почему бы просто строковый реквизит не зависти.... а потом просто его длину смотреть
|
|||
|
46
Господин ПЖ
08.04.09
✎
11:58
|
дельный совет имхо это строка с маской ввода
|
|||
|
47
FanatToNight
08.04.09
✎
11:59
|
(45) счас и ты получишь :) см (19,20) :))
|
|||
|
48
Бежечаночка
08.04.09
✎
11:59
|
А что не так? LOL
|
|||
|
49
Stepa86
08.04.09
✎
12:00
|
(44) если б у Вас было мышление программиста, то таких вопросов не возникло бы... а вообще согласен, что неудобно, когда 0 считается незаполненным значением, но в 98% случаев это и требуется (когда количество товаров =0 или сумма продажи =0, то явно что то не то)...
|
|||
|
50
Snorkler
08.04.09
✎
12:00
|
(28) Не АвтоОтметка, а Отметка...
К примеру: ЭлементыФормы.ДатаОплаты.ОтметкаНезаполненного=Ложь; Но это в 8.1, как в 8.0 не знаю... |
|||
|
51
Бежечаночка
08.04.09
✎
12:01
|
АвтоОтметкаНезаполненного
|
|||
|
52
megalodon
08.04.09
✎
12:01
|
(45) думаю потому что как то в запросах строки хренова складываются, а получать итоги по этому полю скорее всего придется.
|
|||
|
53
skunk
08.04.09
✎
12:02
|
(44)в чем изврат? ... один фих в базе число храниться как строка... так что полный ответ в (46) и не придумывай гемморой
|
|||
|
54
Serg_1960
08.04.09
✎
12:02
|
Сегодня пятница и пятничный развод? Бежечаночка объясни для меня тупого, зачем это !?!
|
|||
|
55
Stepa86
08.04.09
✎
12:03
|
(53) в базе число хранится как строка????????? я об 1Ске был лучшего мнения
|
|||
|
56
megalodon
08.04.09
✎
12:03
|
(53) это с каких пор?
|
|||
|
57
eklmn
гуру
08.04.09
✎
12:03
|
(54) не в кусре что у баб на первом месте?
|
|||
|
58
Рэйв
08.04.09
✎
12:04
|
(0)А я что-то не понял чем не устраивает составной тип(Строка,Число).
НезаполненноеЗначение=Неопределено. |
|||
|
59
Бежечаночка
08.04.09
✎
12:05
|
(54) Считаем потери в ВЛ и трансформаторах, так показание может быть 0, а может не измеряться и не вноситься вовсе, вот и все, в этом случае при расчете заменяется на номинал
|
|||
|
60
FanatToNight
08.04.09
✎
12:05
|
(58) изврат. Точка. :)
|
|||
|
61
eklmn
гуру
08.04.09
✎
12:06
|
(58) щас ляпнет типа в СУБД не вписываеться или еще ченить в таком духе, у меня изврата не хватает прдумать :)
|
|||
|
62
Рэйв
08.04.09
✎
12:06
|
(58)С каких это пор? нормальное штатное решение.
|
|||
|
63
Рэйв
08.04.09
✎
12:06
|
(62)->(60)
|
|||
|
64
Бежечаночка
08.04.09
✎
12:06
|
а 8-ка чисто попробовать, посмотреть, пощупать - пока не нравится
|
|||
|
65
regniws
08.04.09
✎
12:07
|
(58) вообще - решение не очень хорошее.
Как назначать тип полю ввода!? |
|||
|
66
eklmn
гуру
08.04.09
✎
12:07
|
(59) кто мешает держать там сразу номинал?
|
|||
|
67
regniws
08.04.09
✎
12:07
|
(64) там много чего другого вкусно есть, кроме "представление нуля" и т.д.
|
|||
|
68
skunk
08.04.09
✎
12:08
|
(55)1С тут совсем не причем...
(56)с момента существования скула и дэби |
|||
|
69
eklmn
гуру
08.04.09
✎
12:08
|
(64) плохому танцору...
|
|||
|
70
regniws
08.04.09
✎
12:09
|
я расстрою, но:
1с не хранит числа в строках в субд, если тип значения не составной. |
|||
|
71
regniws
08.04.09
✎
12:11
|
Девушка, советую прислушаться все же к решению не составного типа (во-первых, это работает медленно), а к мысли ввести дополнительное поле типа булева "ИзмеренияНеПроизводились", работать с этим удобно, а, главное, система с этим работать будет быстро.
|
|||
|
72
mikecool
08.04.09
✎
12:11
|
(70) :)
|
|||
|
73
megalodon
08.04.09
✎
12:12
|
(68) глаза протри.
|
|||
|
74
Рэйв
08.04.09
✎
12:12
|
(65)
МассивТипов=Новый Массив(); МассивТипов.Добавить(Тип("Число")); ЭлементыФормы.Поле.ОграничениеТипа=Новый ОписаниеТипов(МассивТипов); |
|||
|
75
regniws
08.04.09
✎
12:13
|
(74). И как вы в это поле введете "не заполнено"?
|
|||
|
76
Рэйв
08.04.09
✎
12:13
|
(65)+ а тип ручками
|
|||
|
77
Рэйв
08.04.09
✎
12:13
|
(75)Кнопку очистки-и все
|
|||
|
78
regniws
08.04.09
✎
12:14
|
(76) вы предлагаете пользователю каждый раз при вводе числа выбирать тип вводимых данных!?? жестоко. очень..
|
|||
|
79
regniws
08.04.09
✎
12:14
|
(77) кнопку очистки, а после этого он захочет опять внести данные в это поле!?? Опять выбирать тип ручками!???
|
|||
|
80
Рэйв
08.04.09
✎
12:15
|
(79)Ну да:).А никак другим путем не получится.Только если (19).
|
|||
|
81
mikecool
08.04.09
✎
12:16
|
В ПриОткрытии
ПолеРедактировалось = Ложь; В ПриИзменении ПолеРедактировалось = Истина; |
|||
|
82
megalodon
08.04.09
✎
12:16
|
+ (81) и еще в ПриОчистке ПолеРедактировалось = Ложь;
|
|||
|
83
mikecool
08.04.09
✎
12:18
|
(82) ненене, поле редактировалось... очистка - тоже редактирование
|
|||
|
84
FanatToNight
08.04.09
✎
12:19
|
)62) с каких? - отвечаю, как только этот вариант решения появился в данной ветке :)
так что "штатный" он только вне ветки :) |
|||
|
85
sam_sam
08.04.09
✎
12:20
|
Если речь идет про положительные значения, то можно неопределено назначить -1. Если и в минусах и в плюсах назначить неопределено какую нибудь маловероятную величину например -0.000000918279879877239834639298359876237
|
|||
|
86
megalodon
08.04.09
✎
12:20
|
(83) ну это вопрос организации ввода данных, возможно ты и прав, но в этом случае надо предусмотреть другую возможность для отказа от ввода нулевого значения.
|
|||
|
87
Snorkler
08.04.09
✎
12:28
|
(0) Автор, таки вам надо "отделить пустое числовое поле от нуля" на форме объекта или в выборке из базы понять заполнялось поле или нет?
|
|||
|
88
FanatToNight
08.04.09
✎
12:32
|
(87) ты сложно спрашиваешь.. сказано-же: трансформаааатор.. в плане, или забыли запланировать. вот и всё :)
|
|||
|
89
Zlodey1С
08.04.09
✎
12:33
|
А что так нельзя полю назначаем составной тип. При открытии строка при начале редактирования переводим в число и все.
|
|||
|
90
FanatToNight
08.04.09
✎
12:34
|
кстати, запланировали "0" и не запланировали вовсе - чем от нуля отличаются?
по-моему, авторский изврат. |
|||
|
91
mergan
08.04.09
✎
12:35
|
(70,73)специально для писающих паром... скул хранит число в типе numeric... который по сути является строкой
|
|||
|
92
eklmn
гуру
08.04.09
✎
12:35
|
(90) только дошло? :)
|
|||
|
93
FanatToNight
08.04.09
✎
12:36
|
+90 результат один: работы выплняться не будут.
(92) угу, честно :)) |
|||
|
94
Рэйв
08.04.09
✎
12:40
|
(90) В случае не запланировали -- пропьянствовали и манкировали своими обязанностями.
Запланировали 0- молодцы ребята!подумали и решили что будет 0.Есть за что платить зп:) |
|||
|
95
FanatToNight
08.04.09
✎
12:43
|
(94) тоже логично :)
скажем, с точки зрения поиска в БД инфы о вновь поступивших трансформаторах :) а вот с точки зрения пятницы: запланировано "0 бутылок" и "не планировалось" - результат - все ходят трезвые.. как ети.. :)) |
|||
|
96
megalodon
08.04.09
✎
12:44
|
(91) философ? я могу еще выше подняться в стремлении абстрагироваться от всего. только вот у поля numeric можно сделать sum, а у поля "nchar" - нельзя
|
|||
|
97
mergan
08.04.09
✎
12:50
|
(96)теоритик? ... открой любу базу данных хексом и глянь
|
|||
|
98
megalodon
08.04.09
✎
12:51
|
(97) и что мне это даст?
|
|||
|
99
Torquader
08.04.09
✎
12:51
|
(91) грамотный SQL хранит числовое поле в формате integer + сдвиг для дробной части. И integer - это двоичное число в восемь байт длиной - такие числа складываются на ура. А numeric в integer переводится маской и сдвигом (указание дробной части).
|
|||
|
100
Нуф-Нуф
08.04.09
✎
12:52
|
100
|
|||
|
101
Torquader
08.04.09
✎
12:53
|
(97) или чего - "умная" 1С не умеет работать с числами в integer и хранит их как строки ?
|
|||
|
102
mergan
08.04.09
✎
12:55
|
(98)увидишь
|
|||
|
103
mergan
08.04.09
✎
12:59
|
(99)сделай sizeof(значение типа нумерик)
(101)вопрос к 1С |
|||
|
104
Torquader
08.04.09
✎
13:09
|
(103) таки в описании, например, firebird-sql написано, как он хранит числовые данные, и как их получать в буфер из запроса, и что в том буфере будет.
Про ms-sql точно не знаю, но есть подозрение, что он работает точно также. |
|||
|
105
eklmn
гуру
08.04.09
✎
13:12
|
(96)-(104) вообще не в тему пошли :)
|
|||
|
106
Torquader
08.04.09
✎
13:16
|
(105) почему не в тему ?
Если внутри SQL у числа нет флага NULL, то отличить незаполненное значение от выбранного за незаполненное никак не получится. (34) В описании, например, Visual Basic написано, что при сравнении данных, если одно из сравниваемых значений равно NULL, то результат будет FALSE вне зависимости от второго выражение, поэтому получается, что NULL=NULL -> FALSE и NULL<>NULL -> FALSE и нужно использовать IsNull. |
|||
|
107
eklmn
гуру
08.04.09
✎
13:18
|
(106) потому что поле на форме никак не связано с СУБД
|
|||
|
108
eklmn
гуру
08.04.09
✎
13:18
|
+судя по топик+(10)
|
|||
|
109
Бежечаночка
08.04.09
✎
13:20
|
(107) не надо заводить рака за камень, форма - есть представление хранимых данных
|
|||
|
110
szhukov
08.04.09
✎
13:21
|
(109)Ответ по топику (46) - я бы делал так!
"Строка с маской ввода" |
|||
|
111
Torquader
08.04.09
✎
13:27
|
(109) можно ещё вместо нуля писать 0.00001 или какое-то самое маленькое число, которое не сильно влияет на расчёты, а всё, что меньше - не введено.
|
|||
|
112
Бежечаночка
08.04.09
✎
13:30
|
(111) ну так это тот же самый изврат
|
|||
|
113
Ювелир
08.04.09
✎
13:31
|
(0) Может просто дополнительный реквизит. Типа <<Измерение произведено>>/
|
|||
|
114
Бежечаночка
08.04.09
✎
13:37
|
Короче говоря, только через аватар Дуба
Всем спасибо. А вопрос, как хотите, не праздный. С такой ситуацией, мне кажется, любой кодер столкнется, и в платформе д.б. штатные средства реализации. |
|||
|
115
Torquader
08.04.09
✎
13:38
|
(112) у тебя же трансформатор - в нём разве ноль измерить можно ? Наверняка есть погрешность измерений, и если меньше погрешности, то это ноль.
|
|||
|
116
Torquader
08.04.09
✎
13:39
|
Даже в Visual Basic если явно задать тип переменной Integer, но у неё не будет значения "Неопределено".
|
|||
|
117
Serg_1960
08.04.09
✎
13:42
|
Угомонись :) Автор уже сказал "Всем спасибо".
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |