1. 1C / Говнокод #24385

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Если (Строка(Объект.ДатаНач) = "01.01.0001 0:00:00") или (Строка(Объект.ДатаКон) = "01.01.0001 0:00:00") Тогда
      ТекстСообщения = НСтр("ru = 'Задайте период формирования отчета!
      |Должны быть заполнены дата начала и дата окончания периода.'");
      Предупреждение(ТекстСообщения);
      Возврат;
     КонецЕсли;

    Проверка даты от лучшего программиста организации с ЗП 100k р

    Запостил: AlexZ1978, 15 Июня 2018

    Комментарии (11) RSS

    • показать все, что скрытоvanished
      Ответить
      • Правильно использовать ф-ю ЗначениеЗаполнено(...) либо сравнение с пустой датой Дата("00010101") но никак не преобразование значения в строку и дальнейшее сравнение со значением "01.01.0001 0:00:00"

        Например:
        Если Не (ЗначениеЗаполнено(Объект.ДатаНач) и ЗначениеЗаполнено(Объект.ДатаКон)) Тогда
        Ответить
      • Правильно писать так:
        Если Объект.ДатаНач = '00010101000000' Или Объект.ДатаКон = '00010101000000' Тогда
        ...
        Ответить
        • Тогда уж просто ...Объект.ДатаНач='00010101'.... Можно и так, но это дело личных предпочтений и читаемости кода, на мой взгляд
          Ответить
          • Использование функции ЗначениеЗаполнено() для примитивных типов нежелательно, т.к. можно обойтись без неё - немного, но время на вызов сэкономить. А использование Дата("00010101") вообще ничем от приведённого случая не отличается - там-и-там приведение типов, от чего и следует уйти. Моё предложение - '00010101000000' - константа типа "Дата" сразу на встроенном языке.
            Ответить
          • ...и да: Объект.ДатаНач = '00010101' нельзя писать. Будет ошибка, так как у константы типа "Дата" обязательно должно быть время.
            Ответить
            • Объект.ДатаНач = '00010101' писать еще как можно... В данном случае значение часов минут и секунд будет равно 0... мало того, такой прием используется повсеместно в типовых решениях от 1С.
              Ответить
              • Раньше было нельзя... видимо, я пропустил тот замечательный момент, когда стало можно
                Ответить
    • Гавно
      Ответить

    Добавить комментарий