Вывод последней цены закупки в отчете остатки номенклатуры
Здравствуйте, пытаюсь вывести последнею цену закупки в отчете, но не выводит, где мог ошибиться
ВЫБРАТЬ РАЗЛИЧНЫЕ
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура,
ВЫБОР КОГДА Закупки.Количество=0 ТОгда
0
Иначе Закупки.Сумма/Закупки.Количество
Конец КАК ЦенаЗакупки
ПОМЕСТИТЬ ВТ_Закупка
ИЗ
РегистрНакопления.Закупки КАК Закупки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
ВЫБРАТЬ ПЕРВЫЕ 1
МАКСИМУМ(Закупки.Период) КАК Период,
МАКСИМУМ(Закупки.Документ.Номер) КАК Номер,
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура
ИЗ
РегистрНакопления.Закупки КАК Закупки
СГРУППИРОВАТЬ ПО
Закупки.Организация,
Закупки.Номенклатура
) КАК ВРЕМ
ПО Закупки.Номенклатура = ВРЕМ.Номенклатура И Закупки.Организация=ВРЕМ.Организация И ЗАКУПКИ.ПЕриод=ВРем.ПЕриод И Закупки.Документ.Номер=ВРЕМ.Номер;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗапасыОстатки.Организация КАК Организация,
ЗапасыОстатки.СтруктурнаяЕдиница КАК Склад,
ЗапасыОстатки.КоличествоОстаток КАК Количество,
ВЫБОР
КОГДА ЗапасыОстатки.ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
ТОГДА 0
ИНАЧЕ ЗапасыОстатки.КоличествоОстаток
КОНЕЦ КАК Резерв,
ВЫРАЗИТЬ(ЕСТЬNULL(ВТ_Закупка.ЦенаЗакупки,0) КАК ЧИСЛО (15,2)) КАК ЦенаЗакупки,
ЗапасыОстатки.СуммаОстаток КАК Сумма,
ЗапасыОстатки.Номенклатура КАК Номенклатура,
ЗапасыОстатки.Характеристика КАК Характеристика,
ВЫБОР
КОГДА НЕ ЗапасыОстатки.КоличествоОстаток = 0
ТОГДА ВЫРАЗИТЬ( ЗапасыОстатки.СуммаОстаток / ЗапасыОстатки.КоличествоОстаток КАК ЧИСЛО (15,2))
ИНАЧЕ 0
КОНЕЦ КАК Цена,
ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
ЗапасыОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
ИЗ
РегистрНакопления.Запасы.Остатки КАК ЗапасыОстатки
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Закупка КАК ВТ_Закупка
ПО (ВТ_Закупка.Номенклатура = ЗапасыОстатки.Номенклатура
И ВТ_Закупка.Организация = ЗапасыОстатки.Организация )
ПоказатьПо теме из базы знаний
- Валовая прибыль от типа цены закупки
- Мониторинг цен закупки / цен продаж и наценки для Управления Торговлей 11 (все), ERP 2, КА 2, Розница 2, УНФ 1.6/3.0
- Последняя цена закупки с остатками номенклатуры (управляемые формы - УТ 11.4, КА 2.4, ERP 2.4)
- Последняя цена закупки с остатками номенклатуры (обычные формы - УТ 10.3, УПП 1.3)
- Анализ неиспользованных остатков номенклатуры – УТ 11.5, КА 2.5, ERP 2.5
Найденные решения
Получилось в итоге так вывести
ВЫБРАТЬ РАЗЛИЧНЫЕ
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура,
ВЫБОР КОГДА Закупки.Количество=0 ТОгда
0
Иначе Закупки.Сумма/Закупки.Количество
Конец КАК ЦенаЗакупки
ПОМЕСТИТЬ ВТ_Закупка
ИЗ
РегистрНакопления.Закупки КАК Закупки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
ВЫБРАТЬ РАЗЛИЧНЫЕ
МАКСИМУМ(Закупки.Период) КАК Период,
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура
ИЗ
РегистрНакопления.Закупки КАК Закупки
СГРУППИРОВАТЬ ПО
Закупки.Организация,
Закупки.Номенклатура
) КАК ВРЕМ
ПО Закупки.Номенклатура = ВРЕМ.Номенклатура И Закупки.Организация=ВРЕМ.Организация И ЗАКУПКИ.ПЕриод=ВРем.ПЕриод;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗапасыОстатки.Организация КАК Организация,
ЗапасыОстатки.СтруктурнаяЕдиница КАК Склад,
ЗапасыОстатки.КоличествоОстаток КАК Количество,
ВЫБОР
КОГДА ЗапасыОстатки.ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
ТОГДА 0
ИНАЧЕ ЗапасыОстатки.КоличествоОстаток
КОНЕЦ КАК Резерв,
ЕСТЬNULL(ВТ_Закупка.ЦенаЗакупки,0) КАК ЦенаЗакупки,
ЗапасыОстатки.СуммаОстаток КАК Сумма,
ЗапасыОстатки.Номенклатура КАК Номенклатура,
ЗапасыОстатки.Характеристика КАК Характеристика,
ВЫБОР
КОГДА НЕ ЗапасыОстатки.КоличествоОстаток = 0
ТОГДА ЗапасыОстатки.СуммаОстаток / ЗапасыОстатки.КоличествоОстаток
ИНАЧЕ 0
КОНЕЦ КАК Цена,
ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
ЗапасыОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
ИЗ
РегистрНакопления.Запасы.Остатки КАК ЗапасыОстатки
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Закупка КАК ВТ_Закупка
ПО (ВТ_Закупка.Номенклатура = ЗапасыОстатки.Номенклатура
И ВТ_Закупка.Организация = ЗапасыОстатки.Организация )
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
а почему не через:
ЦеныНоменклатурыПоставщиковСрезПоследних.Цена
или
ЦеныНоменклатурыСрезПоследних.Цена
?
МАКСИМУМ(Закупки.Период) КАК Период,
МАКСИМУМ(Закупки.Документ.Номер) КАК Номер,
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура
МАКСИМУМ(Закупки.Документ.Номер) КАК Номер,
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура
а почему не через:
ЦеныНоменклатурыПоставщиковСрезПоследних.Цена
или
ЦеныНоменклатурыСрезПоследних.Цена
?
(1) вот так можно
//выборка номенклатуры с последней ценой продажи по дате
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПартииТоваровКомпанииОстатки.Номенклатура.Артикул,
| СУММА(ПартииТоваровКомпанииОстатки.КоличествоОстаток) КАК КоличествоОстаток
|ПОМЕСТИТЬ ВТ
|ИЗ
| РегистрНакопления.ПартииТоваровКомпании.Остатки(
| &НаДату,
| ТИПЗНАЧЕНИЯ(Партия) = ТИП(Документ.ПоступлениеТоваров)
| И Партия.Контрагент = &ПартияКонтрагент) КАК ПартииТоваровКомпанииОстатки
|ГДЕ
| ПартииТоваровКомпанииОстатки.КоличествоОстаток > 0
| И ПартииТоваровКомпанииОстатки.СкладКомпании В(&СкладКомпании)
| И ПартииТоваровКомпанииОстатки.Номенклатура.Производитель = &Производитель
|
|СГРУППИРОВАТЬ ПО
| ПартииТоваровКомпанииОстатки.Номенклатура.Артикул
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
//максимум периода
|ВЫБРАТЬ
| Цены.Номенклатура,
| МАКСИМУМ(Цены.Период) КАК Период
|ПОМЕСТИТЬ ВТ1
|ИЗ
| РегистрСведений.Цены КАК Цены
|ГДЕ
| Цены.ТипЦен = &ТипЦен
|
|СГРУППИРОВАТЬ ПО
| Цены.Номенклатура
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
//получаем номенклатуру с ценой и посделней датой, нужно соединять и по номенклатуре и по периоду
|ВЫБРАТЬ
| Цены.Номенклатура,
| Цены.Цена
|ПОМЕСТИТЬ ВТ3
|ИЗ
| РегистрСведений.Цены КАК Цены
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ1 КАК ВТ1
| ПО Цены.Номенклатура = ВТ1.Номенклатура
| И Цены.Период = ВТ1.Период
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ВТ.НоменклатураАртикул КАК Артикул,
| ВТ.КоличествоОстаток КАК Количество,
| ВТ3.Цена
|ИЗ
| ВТ КАК ВТ
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ3 КАК ВТ3
| ПО ВТ.НоменклатураАртикул = ВТ3.Номенклатура.Артикул";
Показать
Вложенный подзапрос однозначно зря. Лучше через временную таблицу.
И, согласен с (2)
В таблицу ВТЗакупка выбрать закупки
В таблицу ВТЦены выбрать данные по срезу последних цен
Соединить таблицу ВТЗакупки с таблицей ВТЦены левым соединением по организации и номенклатуре.
И, согласен с (2)
В таблицу ВТЗакупка выбрать закупки
В таблицу ВТЦены выбрать данные по срезу последних цен
Соединить таблицу ВТЗакупки с таблицей ВТЦены левым соединением по организации и номенклатуре.
Получилось в итоге так вывести
ВЫБРАТЬ РАЗЛИЧНЫЕ
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура,
ВЫБОР КОГДА Закупки.Количество=0 ТОгда
0
Иначе Закупки.Сумма/Закупки.Количество
Конец КАК ЦенаЗакупки
ПОМЕСТИТЬ ВТ_Закупка
ИЗ
РегистрНакопления.Закупки КАК Закупки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ (
ВЫБРАТЬ РАЗЛИЧНЫЕ
МАКСИМУМ(Закупки.Период) КАК Период,
Закупки.Организация КАК Организация,
Закупки.Номенклатура КАК Номенклатура
ИЗ
РегистрНакопления.Закупки КАК Закупки
СГРУППИРОВАТЬ ПО
Закупки.Организация,
Закупки.Номенклатура
) КАК ВРЕМ
ПО Закупки.Номенклатура = ВРЕМ.Номенклатура И Закупки.Организация=ВРЕМ.Организация И ЗАКУПКИ.ПЕриод=ВРем.ПЕриод;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЗапасыОстатки.Организация КАК Организация,
ЗапасыОстатки.СтруктурнаяЕдиница КАК Склад,
ЗапасыОстатки.КоличествоОстаток КАК Количество,
ВЫБОР
КОГДА ЗапасыОстатки.ЗаказПокупателя = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
ТОГДА 0
ИНАЧЕ ЗапасыОстатки.КоличествоОстаток
КОНЕЦ КАК Резерв,
ЕСТЬNULL(ВТ_Закупка.ЦенаЗакупки,0) КАК ЦенаЗакупки,
ЗапасыОстатки.СуммаОстаток КАК Сумма,
ЗапасыОстатки.Номенклатура КАК Номенклатура,
ЗапасыОстатки.Характеристика КАК Характеристика,
ВЫБОР
КОГДА НЕ ЗапасыОстатки.КоличествоОстаток = 0
ТОГДА ЗапасыОстатки.СуммаОстаток / ЗапасыОстатки.КоличествоОстаток
ИНАЧЕ 0
КОНЕЦ КАК Цена,
ЗапасыОстатки.ЗаказПокупателя КАК ЗаказПокупателя,
ЗапасыОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения
ИЗ
РегистрНакопления.Запасы.Остатки КАК ЗапасыОстатки
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Закупка КАК ВТ_Закупка
ПО (ВТ_Закупка.Номенклатура = ЗапасыОстатки.Номенклатура
И ВТ_Закупка.Организация = ЗапасыОстатки.Организация )
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот