![]() |
![]() |
![]() |
|
Проверка даты на пустое значение - как? | ☑ | ||
---|---|---|---|---|
0
Parti
02.09.09
✎
11:46
|
На форме поле ввода, тип Дата. Как проверить, введено ли в него значение?
Если ДатаДокумента = "01.01.0001 0:00:00" Тогда Сообщить ("да"); Иначе Сообщить ("нет"); КАК? |
|||
1
Irbis
02.09.09
✎
11:47
|
ЗначениеЗаполнено
|
|||
2
Волшебник
модератор
02.09.09
✎
11:47
|
Если дата = '00010101'
|
|||
3
Mort
02.09.09
✎
11:47
|
ЗначениеЗаполнено()
|
|||
4
Parti
02.09.09
✎
11:49
|
ок. послушаю ВОлшебника:)
|
|||
5
Parti
02.09.09
✎
11:58
|
еще вопрос: как программно сбросить значение в поле ввода типа Даты?
Есть кнопочка, и при её нажатии должна очищаться Дата |
|||
6
Parti
02.09.09
✎
12:03
|
хелп
|
|||
7
Mirid
02.09.09
✎
12:05
|
ТвоеПолеВвода = Дата(1,1,1)
|
|||
8
Ненавижу 1С
гуру
02.09.09
✎
12:05
|
Дата = 0;
|
|||
9
bvn13
02.09.09
✎
12:05
|
твоеПоле = Дата("00010101");
|
|||
10
Asmody
02.09.09
✎
12:06
|
(4) не слушай Волшебника.
|
|||
11
Mirid
02.09.09
✎
12:06
|
(9) а не одинарные кавычки нужны?
|
|||
12
Ненавижу 1С
гуру
02.09.09
✎
12:07
|
(11) можно вообще
Дата = Неопределено; |
|||
13
Mirid
02.09.09
✎
12:09
|
Если ТвоеПолеВвода = Дата(1,1,1) Тогда
Или же Если ТвоеПолеВвода = Дата('00010101') Тогда Эти функция с такими параметрами возвращает пустую дату |
|||
14
Mirid
02.09.09
✎
12:09
|
(12) это если бы поле не было с типом Дата
|
|||
15
Ненавижу 1С
гуру
02.09.09
✎
12:12
|
(14) это все равно
|
|||
16
Andry888
02.09.09
✎
12:12
|
(13) '00010101' это уже дата... а "дата("00010101")" преобразует СТРОКУ "00010101" к дате (т.е. к '00010101')
|
|||
17
ShoGUN
02.09.09
✎
12:14
|
Самый универсальный вариант - в (3), но строгий ответ - в (2).
(7) и (9) - то же самое, что (2), но через одно место. |
|||
18
Mirid
02.09.09
✎
12:16
|
(16) Сорри. Согласен. Вот из типовой
ПустаяДата = Дата("00010101"); |
|||
19
Ненавижу 1С
гуру
02.09.09
✎
12:16
|
(17) ты стал сранивать сравнение с пустой датой и установку пусто даты, автор в (5) задал другой уже вопрос, но многие оленей не кормят
|
|||
20
ShoGUN
02.09.09
✎
12:17
|
(19) Как ни странно, ответы на вопросы - одинаковые :))) Потому как присвоение и равенство в 1С выглядит одинаково ;)
|
|||
21
ShoGUN
02.09.09
✎
12:18
|
+(20) Разве что ПустоеЗначение() уже не годится...
|
|||
22
Ненавижу 1С
гуру
02.09.09
✎
12:18
|
(20) мои ответы подходят только на присвоение ))
|
|||
23
Andry888
02.09.09
✎
12:18
|
В (18) написано одно, а в (13) другое...
|
|||
24
ShoGUN
02.09.09
✎
12:19
|
Тьфу))) ЗначениеЗаполнено() :)
|
|||
25
Aprobator
02.09.09
✎
12:20
|
ПустаяДата = Дата(1,1,1,0,0,0) тож из типовой.
|
|||
26
kosts
02.09.09
✎
12:20
|
Так нельзя
Дата = Неопределено; т.к. Неопределено <> Дата(1,1,1) |
|||
27
Mirid
02.09.09
✎
12:21
|
я в (7) так и написал
|
|||
28
ShoGUN
02.09.09
✎
12:21
|
(27) Спасибо, КО.
Похоже намечается еще одно тупое соревнование... |
|||
29
ShoGUN
02.09.09
✎
12:22
|
Тьфу, посыпаю голову пеплом... (28) к (26).
|
|||
30
Mort
02.09.09
✎
12:22
|
(26) Ошибка в логике. Из 2-го не следует первое.
|
|||
31
Mirid
02.09.09
✎
12:23
|
Автор, так в каком вопросе ты еще не разобрался?:)
|
|||
32
Ненавижу 1С
гуру
02.09.09
✎
12:23
|
(26) можно и даже так можно:
Дата = Константы.ВалютаРегламентированногоУчета.Получить(); |
|||
33
ShoGUN
02.09.09
✎
12:24
|
(32) Вот поэтому ты 1С и ненавидишь, надо думать :)
|
|||
34
kosts
02.09.09
✎
12:24
|
(30) Не следует, но уже достаточно следует что бы не использовать
(32) При чем здесь?... |
|||
35
Mirid
02.09.09
✎
12:25
|
(32) если это реквизит с типом ДАТАЮ то выдаст ошибку "значение не является типом Дата"
|
|||
36
kosts
02.09.09
✎
12:26
|
Для (26) я имел ввиду, что нельзя так сравнивать на пустую дату
Если Дата = Неопределено тогда // Неправильно |
|||
37
Mort
02.09.09
✎
12:26
|
(34) Он какбе намекает что если немножко копнуть правила преобразования типов в 1С при присваивании, выражение Х = Неопределено обретает смысл.
|
|||
38
Ненавижу 1С
гуру
02.09.09
✎
12:27
|
(33) кстати, да
мне по душе строгая типизация, ООП единственный плюс радости они добавили SQL-подобные запросы, но положили смачную ложку дегтя, создав Неопределено<>NULL |
|||
39
Mort
02.09.09
✎
12:28
|
(38) Ну вообще разница есть. Могу привести пример.
|
|||
40
Ненавижу 1С
гуру
02.09.09
✎
12:28
|
(35) ты пробовал?
(36) сравнивать неправильно, а присваивать можно |
|||
41
Ненавижу 1С
гуру
02.09.09
✎
12:29
|
(39) ну есть конечно, у 1С
другие СУБД живут без этого |
|||
42
kosts
02.09.09
✎
12:29
|
(38) Не помешала бы типизация, хотя бы включаемая
(40) Присваивать "иногда" можно, но зачем делать грабли... |
|||
43
Ненавижу 1С
гуру
02.09.09
✎
12:31
|
(42) не бойся, я так не пишу, просто показываю "прелести" языка
|
|||
44
Mort
02.09.09
✎
12:32
|
(41) Как насчет Object* AnyObject ? ))
|
|||
45
Mort
02.09.09
✎
12:32
|
+(44) Где Object - базовый для всех.
|
|||
46
ShoGUN
02.09.09
✎
12:33
|
(38) Я тоже от Неопределено офигевал, потом привык. А строгая типизация конечно полезна, но я и так типизации придерживаюсь при написании.
|
|||
47
Ненавижу 1С
гуру
02.09.09
✎
12:34
|
(44) и что? что-то я не вкурил
|
|||
48
ShoGUN
02.09.09
✎
12:35
|
(47) Он по ходу про то, что в 1С нет такого типа.
|
|||
49
Mort
02.09.09
✎
12:38
|
(47) Наоборот я про то, что прообраз типа Неопределено есть во многих системах.
|
|||
50
ShoGUN
02.09.09
✎
12:39
|
(49) Неопределено <> AnyObject
|
|||
51
Ненавижу 1С
гуру
02.09.09
✎
12:42
|
(49) примеры, достаточно распространенных систем
|
|||
52
Mort
02.09.09
✎
12:44
|
(50) Тут не абсолютная схожесть. Например контакт может быть физлицом, сотрудником и т.д. когда оно не заполнено в поле неопределено.
Базовый класс фигур CFigura, наследники треугольники, квадраты и т.д. Массив фигур сцены будет содержать указатели CFigura*. CFigura* здесь какбе аналог "Неопределено". Хреновый пример, но в ту сторону. |
|||
53
Ненавижу 1С
гуру
02.09.09
✎
12:45
|
(52) и чем тут NULL не устраивает?
|
|||
54
Mort
02.09.09
✎
12:47
|
(53) Потому что в базах данных NULL это отсутствие записей. По смыслу NULL из C++ <> NULL из SQL.
|
|||
55
ShoGUN
02.09.09
✎
12:49
|
(54) NULL - это в т.ч. и неопределенное значение, по крайней мере по смыслу.
|
|||
56
Ненавижу 1С
гуру
02.09.09
✎
12:52
|
(54) не всегда, поле может хранить значение NULL, в стандарте SQL запрос
SELECT A.ID FROM A LEFT JOIN B ON (A.BID=B.ID) WHERE B.X IS NULL выдаст как записи таблицы A, для которых нет соответствия в B, так и те у которых соответствие есть, но поле B.X имеет значение NULL |
|||
57
Mort
02.09.09
✎
12:54
|
NULL в C++ вполне определенное значение.
Кста, CFigura* T; T <> NULL; - созданные указатели не равны NULL. |
|||
58
Ненавижу 1С
гуру
02.09.09
✎
12:55
|
(57) ну это в C++, в C# вполне
|
|||
59
Mort
02.09.09
✎
12:59
|
(56) В курсе, не только отсутствие записей. Короче думаю щас правильно сформулирую.
1С Неопределено - имеет отношение к типизации, как Object* в С++, т.е. это неопределенный ТИП в первую очередь. 1С NULL - имеет отношение именно к БД, в SQL тоже NULL. Неопределенное ЗНАЧЕНИЕ. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |