1С 8.3 Проверка пересечения дат в выбранном периоде
Данные > Примеры кода 1С > 1С 8.3 Дата и время
Перейти в основной раздел:
Функция определяет вхождение одного временного периода в другой.
Период №1: НачПериода1 - КонПериода1
Период №2: НачПериода2 - КонПериода2
Проверка периода на вхождение одной даты в другую в 1С 8.3:
Функция ВычислениеПересеченияПериодов(НачПериода1, КонПериода1, КонПериода2, НачПериода2) Экспорт
ПериодыПересекаются = Ложь;
Если Макс(НачПериода1,НачПериода2) < Мин(КонПериода1,КонПериода2) Тогда
ПериодыПересекаются = Истина;
КонецЕсли;
// или ПериодыПересекаются = Макс(НачПериода1, НачПериода2) < Мин(КонПериода1, КонПериода2);
Возврат ПериодыПересекаются;
КонецФункции
&НаКлиенте
Процедура Тест()
НачДата1 = Дата(2021, 10, 26);
КонДата1 = Дата(2021, 11, 22);
НачДата2 = Дата(2021, 10, 28);
КонДата2 = Дата(2021, 12, 03);
Сообщить(ВычислениеПересеченияПериодов(НачДата1, КонДата1, КонДата2, НачДата2)); // Да
НачДата1 = Дата(2021, 10, 26);
КонДата1 = Дата(2021, 11, 22);
НачДата2 = Дата(2021, 11, 23);
КонДата2 = Дата(2021, 12, 03);
Сообщить(ВычислениеПересеченияПериодов(НачДата1, КонДата1, КонДата2, НачДата2)); // Нет
КонецПроцедуры
ПериодыПересекаются = Ложь;
Если Макс(НачПериода1,НачПериода2) < Мин(КонПериода1,КонПериода2) Тогда
ПериодыПересекаются = Истина;
КонецЕсли;
// или ПериодыПересекаются = Макс(НачПериода1, НачПериода2) < Мин(КонПериода1, КонПериода2);
Возврат ПериодыПересекаются;
КонецФункции
&НаКлиенте
Процедура Тест()
НачДата1 = Дата(2021, 10, 26);
КонДата1 = Дата(2021, 11, 22);
НачДата2 = Дата(2021, 10, 28);
КонДата2 = Дата(2021, 12, 03);
Сообщить(ВычислениеПересеченияПериодов(НачДата1, КонДата1, КонДата2, НачДата2)); // Да
НачДата1 = Дата(2021, 10, 26);
КонДата1 = Дата(2021, 11, 22);
НачДата2 = Дата(2021, 11, 23);
КонДата2 = Дата(2021, 12, 03);
Сообщить(ВычислениеПересеченияПериодов(НачДата1, КонДата1, КонДата2, НачДата2)); // Нет
КонецПроцедуры
2
комментарии
Администратор
19 апр 2024
Для Антона: ничего не надо менять. Все работает
Антон
18 апр 2024
Нужно знак < изменить на
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник