Имя: Пароль:
1C
1С v8
почему не работает второе условие? только начал изучать 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
ПраздничныеДаты = Новый ТаблицаЗначений;
ПраздничныеДаты.Колонки.Добавить("Дата");
ПраздничныеДаты.Колонки.Добавить("ТекстПоздравления");

НоваяСтрока = ПраздничныеДаты.Добавить;
НоваяСтрока.Дата = Дата(2022,8,3);
НоваяСтрока.ТекстПоздравления = "С 8 Марта!";

НоваяСтрока = ПраздничныеДаты.Добавить;
НоваяСтрока.Дата = Дата(2022,5,1);
НоваяСтрока.ТекстПоздравления = "С 1 Мая!";

//вообще по-хорошему, это надо не в коде указывать, а справочник завести)


Для Каждого Строка из ПраздничныеДаты Цикл
  Если День(ТекущаяДата) = День(Строка.Дата) И Месяц(ТекущаяДата) = Месяц(Строка.Дата) Тогда
    Сообщить(Строка.ТекстПоздравления);
  КонецЕсли;
КонецЦикла;


Так ли много сотрудников открывают 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) А когда срабатывает условие:
Если Сегодня = Завтра Тогда?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.