|
Как реализовать Иначе Истина | ☑ | ||
---|---|---|---|---|
0
Александр89
02.08.18
✎
12:45
|
Изменение вручную невозможно. Если текущая дата меньше или равна «срок действия по» И больше или равна «Срок действия с», то ложь. Иначе – Истина.
&НаКлиенте Процедура ДатаПриИзменении(Элемент) Если ТекущаяДата() <= Объект.СрокДействияПо И ТекущаяДата() >= Объект.СрокДействияС Тогда Объект.Закрыт = Ложь; КонецЕсли; КонецПроцедуры |
|||
1
Александр89
02.08.18
✎
12:46
|
Забыл, всем добрый день! )))
|
|||
2
youalex
02.08.18
✎
12:46
|
Объект.Закрыт = Истина ?
|
|||
3
Зуекщмшср
02.08.18
✎
12:48
|
Интрига! Есть ощущение, что автор будет потихоньку приоткрывать завесу зловещей тайны.
|
|||
4
Kondarat
02.08.18
✎
12:48
|
Объект.Закрыт = ТекущаяДата() <= Объект.СрокДействияПо И ТекущаяДата() >= Объект.СрокДействияС;
|
|||
5
youalex
02.08.18
✎
12:50
|
ну или сразу, Объект.Закрыт = НЕ {Твое условие}.
|
|||
6
Александр89
02.08.18
✎
12:53
|
(3) Только начал свой путь 1С
Я не могу понять как продолжить код, можно конечно тупо наоборот сделать, но по любому можно как правильно написать |
|||
7
youalex
02.08.18
✎
12:53
|
или
Объект.Закрыт = ТекущаяДата() > Объект.СрокДействияПо ИЛИ ТекущаяДата() < Объект.СрокДействияС |
|||
8
Eastert
02.08.18
✎
12:55
|
Процедура ДатаПриИзменении(Элемент)
Если ТекущаяДата() <= Объект.СрокДействияПо И ТекущаяДата() >= Объект.СрокДействияС Тогда Объект.Закрыт = Ложь; Иначе Объект.Закрыт = Истина; КонецЕсли; КонецПроцедуры |
|||
9
Deon
02.08.18
✎
12:55
|
Меня вот больше интересует, почему меняется Дата объекта, а в условии сравнивается ТекущаяДата()
|
|||
10
Buster007
02.08.18
✎
13:14
|
а если у тебя пользователи работают в нескольких часовых поясах, то твой код не работает
|
|||
11
Адинэснег
02.08.18
✎
13:19
|
(0) "Пишите код так, как будто сопровождать его будет ..."
|
|||
12
Адинэснег
02.08.18
✎
13:21
|
август... еще одного гамнокодера выкакало отечественное образование
|
|||
13
Адинэснег
02.08.18
✎
13:22
|
хотя 89год... как ты тут оказался?
|
|||
14
Адинэснег
02.08.18
✎
13:25
|
кто там про синьоров спрашивал?
в 1С джун из (0) пилет сук, на котором сидит мидлы советуют ножовки и оптимальную технику пиления... сеньоры наблюдают |
|||
15
Александр89
02.08.18
✎
13:53
|
(8) Иначе
Объект.Закрыт = Истина; Вот именно это и нужно было, спасибо)) Правда поменял Процедуру ДатаИзменения на СрокДействияСПриИзменении &НаКлиенте Процедура СрокДействияСПриИзменении(Элемент) Если ТекущаяДата() <= Объект.СрокДействияПо И ТекущаяДата() >= Объект.СрокДействияС Тогда Объект.Закрыт = Ложь; Иначе Объект.Закрыт = Истина; КонецЕсли; КонецПроцедуры (11) а что такого если есть желание писать сразу правильный код?? (14) а что тебя смущает возраст 28 лет? То есть когда за 50 это нормально ))) (10) Я сомневаюсь что они будут работать в разных Часовых поясах, но идея хорошая спасибо, подумаю. А кстати всем спасибо)) |
|||
16
Адинэснег
02.08.18
✎
14:24
|
(15) у тебя само решение подозрительно выглядит...
1. Есть реквизит объекта, который меняется от текущей даты Причем не по наступлению этой даты в по интерактивному действию... Если пользователь не зашел, или зашел, но не трогал элемент управления - то алгоритм твой не отработает... 2. Строки кода выполняются не параллельно, не единовременно, а последовательно ТекущаяДата() в первой строке не равна ТекущаяДата() в следующей, хотя в твоем случае и будут в рамках, напремер одной секунды 3. Раз алгоритм и логика тебя не смущает, и сук надо отпилить, делай его одним-двумя движением, не разматывай спагетти: &НаКлиенте Процедура СрокДействияСПриИзменении(Элемент) ТекДата = ТекущаяДата(); Объект.Закрыт = (Объект.СрокДействияС<=ТекДата) И (Объект.СрокДействияПо>=ТекДата); КонецПроцедуры |
|||
17
Buster007
02.08.18
✎
14:27
|
(16) а ты лишние переменные не делай
|
|||
18
Buster007
02.08.18
✎
14:28
|
+(17) особенно сокращать названия: тчк, зпт и т.д. как-будто телеграмму пишешь
|
|||
19
Адинэснег
02.08.18
✎
14:29
|
(17)в каком месте переменная лишняя? я ж скалал ТекущаяДата() <> ТекущаяДата()
науя сравнивать с двумя разными значениями? |
|||
20
Адинэснег
02.08.18
✎
14:37
|
(18)бэстпрактикс, загляни в типовые :-D
|
|||
21
Kondarat
02.08.18
✎
14:37
|
(19) Странно.
Сообщить("Дата = " + ТекущаяДата() + " еще дата = " + ТекущаяДата()); Результат: Дата = 02.08.2018 14:36:10 еще дата = 02.08.2018 14:36:10 |
|||
22
1Сергей
02.08.18
✎
14:38
|
(16)
1. +100500 2. = 3. Лучше пусть подробно пишет, проще понять. И ему и следущему прогу |
|||
23
Адинэснег
02.08.18
✎
14:39
|
это у вас компы быстрые, бгг
|
|||
24
Адинэснег
02.08.18
✎
14:42
|
ну ладно, в одной строке допустим примерно равны)
ТекДата в свежей типовой: https://image.prntscr.com/image/Xwr5LSg5R0WZ6KTe9Ceirw.png |
|||
25
youalex
02.08.18
✎
14:46
|
(16) у тебя условие неправильно задано
|
|||
26
Адинэснег
02.08.18
✎
14:47
|
(26) оно перевернуто
|
|||
27
youalex
02.08.18
✎
14:48
|
(26) оно неправильно перевернуто
|
|||
28
Адинэснег
02.08.18
✎
15:11
|
(27) переверни монитор
|
|||
29
Адинэснег
02.08.18
✎
15:13
|
а ну да, там же В периоде Ложь, тогда Не(Условие)
|
|||
30
youalex
02.08.18
✎
15:19
|
(28) еще > и < , без равно, если исходить из (0)
+ ИЛИ вместо И |
|||
31
Casey1984
02.08.18
✎
15:33
|
(0) Это не к 1С, а к логике вопрос, я так подозреваю, более фундаментальные знания, законы де Моргана и прочее.
|
|||
32
Адинэснег
02.08.18
✎
15:33
|
вообще чуваку надо РЗ написать, в котором реквизит менялся у объектов... а возможно и вынести в регистр статус Открыт/Закрыт, чтоб объекты не блокировать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |