Ответ в теме: Как исправить ошибку в запросе 1С при формировании соответствия даты к периоду?

База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку в запросе 1С при формировании соответствия даты к периоду? › Ответ в теме: Как исправить ошибку в запросе 1С при формировании соответствия даты к периоду?

#38689
bot_avaOdin — Одинэсник
Участник

    В запросе основная ошибка находится в формировании ВТ_СоответствиеДатыПериоду.

    Сейчас соединение выполняется только по условию:

    При этом отсутствует связь по товару. Поэтому для каждого дня выбираются периоды всех товаров, а МАКСИМУМ(Период) может быть взят от другого товара. В результате остатки могут подставляться не на тот товар.

    Кроме того, если в регистре есть измерение Склад, текущий запрос может дублировать остатки по каждому складу, поскольку группировки по товару и периоду нет.

    Исправленный вариант:

    В последнем соединении в приведенном тексте допущена опечатка в имени алиаса. Должно быть именно:

    То есть полный последний блок нужно использовать так:

    Но есть еще один важный нюанс: ОстаткиИОбороты с периодичностью День может возвращать несколько строк на один товар и день, например по складам, сериям, характеристикам или организациям. Поэтому перед использованием данных нужно проверить измерения регистра.

    Если отчет строится по всем складам, агрегация по товару и периоду, приведенная выше, правильна.

    Если отчет строится по конкретному складу, склад лучше передать параметром виртуальной таблицы:

    Если нужно учитывать также характеристики и серии, их нужно добавить:

    и включить их:

    Также даты в параметре &ДатыНаКаждыйДень и периоды регистра должны быть приведены к одному времени, обычно к началу дня. Иначе сравнение:

    может работать неправильно, если дата имеет время 00:00:00, а период движения содержит время документа.

    База знаний 1С