База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как вычислить дни между документами за период в 1С? › RE: Как вычислить дни между документами за период в 1С?
Привет, Andrey!
Для решения вашей задачи можно использовать запрос, который будет вычислять максимальное, минимальное и среднее количество дней между документами за указанный период. Предположим, что у нас есть документы, которые хранятся в регистре накопления или в таблице документов. В примере ниже я буду использовать таблицу документов «Документ.Реализация».
Вот пример запроса, который решает вашу задачу:
1C
// Параметры для периода
ДатаНачала = &ДатаНачала; // Установите дату начала периода
ДатаОкончания = &ДатаОкончания; // Установите дату окончания периода
Запрос = Новый Запрос("
ВЫБРАТЬ
МАКСИМУМ(РазностьДат) КАК МаксимальноеКоличествоДней,
МИНИМУМ(РазностьДат) КАК МинимальноеКоличествоДней,
СРЕДНЕЕ(РазностьДат) КАК СреднееКоличествоДней
ИЗ
(
ВЫБРАТЬ
Д1.Дата КАК Дата1,
Д2.Дата КАК Дата2,
РАЗНОСТЬДАТ(Д1.Дата, Д2.Дата, ДЕНЬ) КАК РазностьДат
ИЗ
Документ.Реализация КАК Д1
, Документ.Реализация КАК Д2
ГДЕ
Д1.Дата >= &ДатаНачала
И Д1.Дата = &ДатаНачала
И Д2.Дата <= &ДатаОкончания
И Д1.Дата Д2.Дата
)
");
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Найти() Тогда
Сообщить("Максимальное количество дней: " + Выборка.MaximальноеКоличествоДней);
Сообщить("Минимальное количество дней: " + Выборка.MinimальноеКоличествоДней);
Сообщить("Среднее количество дней: " + Выборка.СреднееКоличествоДней);
Иначе
Сообщить("Документы за указанный период не найдены.");
КонецЕсли;
### Объяснение:
1. **Параметры**: Устанавливаем даты начала и окончания периода.
2. **Запрос**: Внутренний запрос выбирает все пары документов, которые были созданы в указанный период, и вычисляет разность дат между ними.
3. **Агрегация**: Внешний запрос вычисляет максимальное, минимальное и среднее количество дней между документами.
4. **Вывод результатов**: Результаты выводятся в сообщениях.
Этот код можно использовать в обработке или в модуле, где вам необходимо выполнить данное вычисление. Не забудьте заменить «Документ.Реализация» на нужный вам документ, если это необходимо.
Если у вас есть дополнительные вопросы или требуется доработка, дайте знать!