Всем привет! Нужно для каждой номенклатуры из остатка, вывести только последний документ партии и цену из него. Вот написал запрос, но он не всегда выводит последнюю партию, иногда показывает документ полугодичной давности, закономерности нет никакой... Помогите разобраться.
Конфигурация дописанная УТП.
ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.Качество, ТаблицаПартий.ДокументОприходования, ВЫБОР КОГДА ТаблицаПартий.КоличествоОборот <> 0 ТОГДА ЕСТЬNULL(ТаблицаПартий.СтоимостьОборот, 0) / ЕСТЬNULL(ТаблицаПартий.КоличествоОборот, 1) ИНАЧЕ 0 КОНЕЦ КАК Цена ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, МАКСИМУМ(ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования) КАК ДокументОприходования, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьОборот) КАК СтоимостьОборот, ПартииТоваровНаСкладахОстаткиИОбороты.Качество КАК Качество, ПартииТоваровНаСкладахОстаткиИОбороты.Склад КАК Склад, СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоОборот) КАК КоличествоОборот ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, , Регистратор, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты ГДЕ (НЕ ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Ссылка ССЫЛКА Документ.ВозвратТоваровОтПокупателя)
СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.Качество, ПартииТоваровНаСкладахОстаткиИОбороты.Склад) КАК ТаблицаПартий ПО ТоварыНаСкладахОстатки.Склад = ТаблицаПартий.Склад И ТоварыНаСкладахОстатки.Качество = ТаблицаПартий.Качество И ТоварыНаСкладахОстатки.Номенклатура = ТаблицаПартий.Номенклатура
МАКСИМУМ(ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата) КАК ДокументОприходования,
не?
Да, вроде все верно, выводит дату последнего документа партии, но в поле" Документ" (ссылка на док. партии) все равно поступление полугодичной давности. Это когда добавляю документ в суммируемые поля:
МАКСИМУМ(ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования) КАК ДокументОприходования
. А когда добавляю в групповое поле, то выводит все поступления по номенклатуре. Хотелось бы получить правильную ссылку на документ...
Ardi, вроде все так и сделал. Но либо ссылка на документ не выводится, либо попадают все документы.
Подзапрос 1 - Таблица1: выбираем пары Номенклатура/Последний документ.
Вот с этим как раз и возникла трудность, вот подзапрос:
ВЫБРАТЬ ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, МАКСИМУМ(ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования) КАК ДокументОприходования, МАКСИМУМ(ПартииТоваровНаСкладахОстаткиИОбороты.ДокументОприходования.Дата) КАК ДокументОприходованияДата ИЗ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты КАК ПартииТоваровНаСкладахОстаткиИОбороты
СГРУППИРОВАТЬ ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
В результате получаю: --------------------------------------------------------------------------------- |Номенклатура_1 | 13.08.2013 | Поступление_№1 01..3.2013|
Цитата(Zaval @ 22.12.13, 21:53)
Зачем ТоварыНаСкладах, если в ПартииТоваровНаСкладах есть все необходимое?
По-моему, не нужно искать макс дату. Упорядочить по убыванию документов и "ВЫБРАТЬ 1".
По партиям очень большие несоответствие с реальным остатком, поэтому количество берется из ТоварыНаСкладах. Если я не ошибаюсь, то при "выбрать 1" запрос вернет только одну строку для первой попавшейся номенклатуры.
В результате получаю:---------------------------------------------------------------------------------|Номенклатура_1 | 13.08.2013 | Поступление_№1 01..3.2013|
Значит максимум работает с датой. С документом не работает. Объединять по дате и номенклатуре из одной таблицы и дате документа и номенклатуре из другой.
Значит максимум работает с датой. С документом не работает. Объединять по дате и номенклатуре из одной таблицы и дате документа и номенклатуре из другой.
Блин точно, добавил связь таблиц по дате документа. Большое спасибо Ardi!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!