Задача: построить отчет, который выводит остатки не свежих товаров (т.е. условие: дата закупки > X дней).
Как рассуждаю:
1. Отметаем свежие товары (Условие: ДатаЗакупки < ДекущаяДата - Х);
2. Из того что осталось, вычитаем расход товаров (у нас ФИФО);
3. Если остатки меньше нуля (т.е. не свежие кончились и пошел расход свежих) - убираем эти строки.
Пытаюсь в запросе реализовать первый пункт:
Но вместо того, чтобы уменьшался приход при увеличении &КоличествоДнейСМоментаЗакупки, строки просто исчезают из отчёта целиком.
Подскажите, что не так? (приложил внешний отчет УТ10.3)
Как рассуждаю:
1. Отметаем свежие товары (Условие: ДатаЗакупки < ДекущаяДата - Х);
2. Из того что осталось, вычитаем расход товаров (у нас ФИФО);
3. Если остатки меньше нуля (т.е. не свежие кончились и пошел расход свежих) - убираем эти строки.
Пытаюсь в запросе реализовать первый пункт:
ВЫБРАТЬ
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты КАК ПартииТоваровНаСкладахОстаткиИОбороты
ГДЕ
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата < ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, -&КоличествоДнейСМоментаЗакупки)
ПоказатьНо вместо того, чтобы уменьшался приход при увеличении &КоличествоДнейСМоментаЗакупки, строки просто исчезают из отчёта целиком.
Подскажите, что не так? (приложил внешний отчет УТ10.3)
Прикрепленные файлы:
ОстаткиПоПартиям_2.erf
По теме из базы знаний
Найденные решения
(12) Я не уверен, но мне кажется, что для 2ух условий вам нужно будет брать 2 таблицы(и накладывать условия в виртуальной таблице, а не в "ГДЕ")
Немного не понял, почему (6) не работает? Строки он тогда не удаляет, цифры должны меняться, на худой конец сделать условие чтоб не выводил нулевые строки(для того что-бы уменьшить количество строк)
Немного не понял, почему (6) не работает? Строки он тогда не удаляет, цифры должны меняться, на худой конец сделать условие чтоб не выводил нулевые строки(для того что-бы уменьшить количество строк)
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Ну если только остатки, то
Зачем усложнять? Или есть нюансы?
ВЫБРАТЬ
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты КАК ПартииТоваровНаСкладахОстаткиИОбороты
ГДЕ
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата < ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, &КоличествоДнейСМоментаЗакупки)
Зачем усложнять? Или есть нюансы?
(2)
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
Написаны для того, чтобы отследить поведение отчёта.
Так, например, данная строка не отсеивает приходы с нужной датой, а сразу удаляется и приход и расход и остаток, в общем вся строка:
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата < ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, &КоличествоДнейСМоментаЗакупки)
Это не правильно, и хотелось бы разобраться почему это не работает и как правильно сделать..
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
Написаны для того, чтобы отследить поведение отчёта.
Так, например, данная строка не отсеивает приходы с нужной датой, а сразу удаляется и приход и расход и остаток, в общем вся строка:
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата < ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, &КоличествоДнейСМоментаЗакупки)
Это не правильно, и хотелось бы разобраться почему это не работает и как правильно сделать..
А не проще сделать в регистре измерение- дата прихода, и смотреть по ней уже и списывать наиболее "древние товары"? Хотя если база рабочая- такие изменения вносить сложновато будет....
Просто накладывать условия не на виртуальную таблицу, а уже на выборку - неправильно все таки
Просто накладывать условия не на виртуальную таблицу, а уже на выборку - неправильно все таки
выбор когда ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата < ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, -&КоличествоДнейСМоментаЗакупки) Тогда 0 Иначе ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток конец
это вместо КоличествоКонечныйОстаток
и из Где условие убери, если не хочешь чтоб он тебе строки целиком убирал
это вместо КоличествоКонечныйОстаток
и из Где условие убери, если не хочешь чтоб он тебе строки целиком убирал
(6)
Так вообще поле "Приход" не отображается. Отображается, в ресурсы не добавил.
Но всё равно не работает. Не меняется количество..
ВЫБРАТЬ
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ВЫБОР
КОГДА ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата >= ДОБАВИТЬКДАТЕ(&КонецПериода, ДЕНЬ, -&КоличествоДнейСМоментаЗакупки)
ТОГДА 0
ИНАЧЕ ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход
КОНЕЦ КАК Приход
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты КАК ПартииТоваровНаСкладахОстаткиИОбороты
ПоказатьНо всё равно не работает. Не меняется количество..
(6) возможно ли в одном запросе ресурсы регистра брать на разные даты?
ВЫБРАТЬ
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты КАК ПартииТоваровНаСкладахОстаткиИОбороты
ГДЕ
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход (и тут условие, что КоличествоПриход на такое-то число) И
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход (на КонецПериода)
Показать
(12) Я не уверен, но мне кажется, что для 2ух условий вам нужно будет брать 2 таблицы(и накладывать условия в виртуальной таблице, а не в "ГДЕ")
Немного не понял, почему (6) не работает? Строки он тогда не удаляет, цифры должны меняться, на худой конец сделать условие чтоб не выводил нулевые строки(для того что-бы уменьшить количество строк)
Немного не понял, почему (6) не работает? Строки он тогда не удаляет, цифры должны меняться, на худой конец сделать условие чтоб не выводил нулевые строки(для того что-бы уменьшить количество строк)
(0) ДокументОприходования - это измерение РН. Для указанной задачи достаточно наложить условие в параметрах виртуальной таблицы. И использовать РегистрНакопления.ПартииТоваровНаСкладах.Остатки, а не РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты.
(13) Это работает, спасибо)
На данном этапе запрос выглядит так:
Я добавил в него документ, совершающий движение, и увидел что работает это немножко не так..
Необходимо было отсеять поступления товаров по условию. Условие написал следующее: ДокументОприходования.Дата < &Дата
Но в итоге вместе с нужными документами отсеялись и все документы прихода, так как они тоже не выполняют этого условия.
Подскажите, как поправить этот момент?
На данном этапе запрос выглядит так:
ВЫБРАТЬ
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования,
ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , , , ДокументОприходования.Дата < &Дата) КАК ПартииТоваровНаСкладахОстаткиИОбороты
ПоказатьЯ добавил в него документ, совершающий движение, и увидел что работает это немножко не так..
Необходимо было отсеять поступления товаров по условию. Условие написал следующее: ДокументОприходования.Дата < &Дата
Но в итоге вместе с нужными документами отсеялись и все документы прихода, так как они тоже не выполняют этого условия.
Подскажите, как поправить этот момент?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот