МоментВремени отличается от простой даты наличием необязательной ссылки. Сначала сравним собственные даты без ссылок, чтобы понять контракт Сравнить.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Выполняйте на сервере учебной базы; объекты конфигурации и файлы не нужны.
Три момента создаются прямо в коде; второй параметр конструктора намеренно не задан.
Ранний = Новый МоментВремени(Дата(2024, 2, 5, 10, 0, 0));
Поздний = Новый МоментВремени(Дата(2024, 2, 5, 11, 0, 0));
РавныйРаннему = Новый МоментВремени(Дата(2024, 2, 5, 10, 0, 0));
Сообщить(Ранний.Сравнить(Поздний) = -1);
Сообщить(Поздний.Сравнить(Ранний) = 1);
Сообщить(Ранний.Сравнить(РавныйРаннему) = 0);
Сообщить(Ранний.Сравнить(Ранний) = 0);
Сообщить(Ранний.Дата = Дата(2024, 2, 5, 10, 0, 0));
Сообщить(Ранний.Ссылка = Неопределено);
Сообщить(Поздний.Дата - Ранний.Дата = 3600);Разбор по шагам
Конструктор сохраняет дату и необязательную ссылку. Без ссылки Ссылка содержит Неопределено.
Сравнить возвращает число: −1 для меньшего, 0 для равного, 1 для большего, а не Булево.
Проверяем прямое и обратное сравнение, равенство разных объектов с одинаковыми значениями и сравнение с самим собой.
Разность именно дат показывает 3600 секунд. Результат Сравнить не является числом секунд между моментами.
Как проверить результат
Все семь логических сообщений дают Истина.
Временной интервал равен часу, но Сравнить даёт только −1/0/1.
Никакой документ, движение или ссылка на запись этим кодом не создаются.
Ожидаемый результат
Освоен трёхзначный результат сравнения на полностью воспроизводимых датах.
На что обратить внимание
Не пишите Если Ранний.Сравнить(Поздний) Тогда: результат числовой, явно сравнивайте с −1, 0 или 1.
Свойства Дата и Ссылка только читаются. Для другого значения создайте новый МоментВремени.
Сравнение момента времени не является преобразованием часовых поясов.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.