База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как найти пропущенные периоды дат в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 10 месяцев назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
20 февраля 2025 в 12:15 #31672
Как найти Пропущенные периоды в интервале дат
-
20 февраля 2025 в 12:15 #31673
Для нахождения пропущенных периодов в интервале дат в 1С можно использовать следующий подход:
1. Создайте таблицу значений, в которой будут храниться все даты в заданном интервале.
2. Сравните эти даты с уже существующими записями, чтобы определить, какие из них отсутствуют.Вот пример кода на языке 1С, который демонстрирует этот процесс:
1C Процедура НайтиПропущенныеПериоды(НачалоПериода, КонецПериода, СуществующиеПериоды) // Создаем таблицу значений для хранения пропущенных периодов ПропущенныеПериоды = Новый ТаблицаЗначений; ПропущенныеПериоды.Колонки.Добавить("Начало"); ПропущенныеПериоды.Колонки.Добавить("Конец"); // Перебираем все даты в заданном интервале ТекущаяДата = НачалоДня(НачалоПериода); КонецДня = КонецДня(КонецПериода); Пока ТекущаяДата <= КонецДня Цикл // Проверяем, есть ли запись на текущую дату Если Не СуществующиеПериоды.Найти(ТекущаяДата) Тогда // Если записи нет, добавляем в таблицу пропущенных периодов НоваяСтрока = ПропущенныеПериоды.Добавить(); НоваяСтрока.Начало = ТекущаяДата; НоваяСтрока.Конец = ТекущаяДата; // Можно изменить, если нужно указать диапазон КонецЕсли; ТекущаяДата = ТекущаяДата + 1; // Переход к следующему дню КонецЦикла; // Возвращаем таблицу пропущенных периодов Возврат ПропущенныеПериоды; КонецПроцедурыВ этом коде:
— `НачалоПериода` и `КонецПериода` — это даты, между которыми мы ищем пропуски.
— `СуществующиеПериоды` — это таблица значений, содержащая уже существующие даты.
— Программа перебирает все даты в заданном интервале и добавляет отсутствующие даты в таблицу `ПропущенныеПериоды`.Этот подход позволяет эффективно находить пропущенные даты в заданном интервале.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.