|
почему не работает второе условие? только начал изучать 1С | ☑ | ||
---|---|---|---|---|
0
pyankoff
07.10.22
✎
11:50
|
Процедура ПриНачалеРаботыСистемы()
ТекущаяДата = ТекущаяДата(); Сегодня = Дата(ТекущаяДата()); Завтра = Дата(ТекущаяДата()) + 86400; Если ТекущаяДата = Сегодня Тогда Сегодня = ("Сегодня"); ДатаПраздника = Дата(2022, 10, 7); НазваниеПраздника = ("Международный день 1"); ИначеЕсли ТекущаяДата = Дата(ТекущаяДата()) + 86400 И ДатаПраздника = Дата(2022, 10, 8) Тогда Завтра = ("Завтра"); ДатаПраздника = Дата(2022, 10, 8); НазваниеПраздника = ("Международный день 2"); КонецЕсли; ТекстПредупреждения = СтрШаблон("Поздравляю, %1, %2", НазваниеПраздника); Сообщить(ТекстПредупреждения); КонецПроцедуры |
|||
1
Garykom
гуру
07.10.22
✎
11:51
|
:)
|
|||
2
Пузан
07.10.22
✎
11:53
|
Пройди отладчиком и посмотри что там чему равно.
|
|||
3
Lama12
07.10.22
✎
11:54
|
(0) А разве зеленый может быть равен красному?
|
|||
4
pyankoff
07.10.22
✎
11:58
|
Ну хоть повеселю знатоков))
|
|||
5
Asmody
07.10.22
✎
12:00
|
можно начать с рассказа о том, что вообще хочется получить. можно пока просто на русском
|
|||
6
pyankoff
07.10.22
✎
12:02
|
Хочется получить чтобы при начале работы 1с если даты совпадают с праздником выводилось сообщение о том какой праздник
|
|||
7
SleepyHead
гуру
07.10.22
✎
12:02
|
(4)
1. Сегодня = текущая дата 2. если сегодня = текущая дата + 1 день тогда это условие никогда не выполнится У тебя что, реально так плохо с логикой? |
|||
8
Волшебник
модератор
07.10.22
✎
12:13
|
Если НачалоДня(ТекущаяДата) = НачалоДня(ДеньПраздника1) Тогда
Сообщить("Сегодня праздник 1"); КонецЕсли; |
|||
9
Arbuz
07.10.22
✎
12:14
|
Ну, и в блоке
Если <условие> ... ИначеЕсли <условие> ... ИначеЕсли <условие> ... ... Иначе <условие> ... Условия проверяются подряд только до первого верного и дальше не проверяются |
|||
10
SiAl-chel
07.10.22
✎
12:20
|
(0) ТекущаяДата = ТекущаяДата();
Сегодня = Дата(ТекущаяДата()); Это одно и тоже. Дата в 1С - это дата + время. Сегодня и Завтра - это должны быть даты с нулевым временем. Сегодя = НачалоДня(ТекущаяДата()); И ты сравниваешь дату с дата+время. Приводи все к началу дня или к концу дня. Почитай документацию о базовых типах данных в 1С. |
|||
11
pyankoff
07.10.22
✎
12:21
|
Благодарю всех за отклик)
|
|||
12
rudnitskij
07.10.22
✎
16:07
|
Завтра = ("Завтра");
а зачем тут скобки? |
|||
13
b_ru
07.10.22
✎
16:35
|
ПраздничныеДаты = Новый ТаблицаЗначений;
Так ли много сотрудников открывают 1С в праздничные даты? Но это риторический вопрос. |
|||
14
b_ru
07.10.22
✎
16:36
|
Скобки в ПраздничныеДаты.Добавить(); забыл
|
|||
15
Tatitutu
07.10.22
✎
16:41
|
потому что во втором условии
ДатаПраздника=Неопределено |
|||
16
Kassern
07.10.22
✎
16:50
|
(13) "Если День(ТекущаяДата) = День(Строка.Дата) И Месяц(ТекущаяДата) = Месяц(Строка.Дата) Тогда" - зачем так сложно, когда можно просто "Если НачалоДня(ТекущаяДата())=Строка.Дата Тогда" ?
Да и вообще можно сразу через НайтиСтроки() Получить нужные по отбору и по ним вывести данные. |
|||
17
b_ru
07.10.22
✎
20:11
|
(16) Затем чтобы год не сравнивать, а сравнивать только число и месяц.
|
|||
18
b_ru
07.10.22
✎
20:12
|
нужно не через НайтиСтроки(), а даты в справочник, и искать запросом по условию. Но это следующий уровень.
|
|||
19
PR
07.10.22
✎
20:42
|
(0) Потому что условие X = X + 86400 всегда ложно
|
|||
20
Сияющий Асинхраль
07.10.22
✎
21:53
|
(0) А когда срабатывает условие:
Если Сегодня = Завтра Тогда? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |