Имя: Пароль:
1C
 
Выбор партии с минимальной себестоимостью
0 bUbA
 
15.08.14
14:55
Как выбрать партию с минимальной себестоимостью, если себестоимость у нескольких партий одного товара может быть одинаковой? В таком случае неважно какая партия выберется.
1 Apokalipsec
 
15.08.14
14:56
ПЕРВЫЕ 1, МИНИМУМ.
2 bUbA
 
15.08.14
14:58
Первые 1 не катит, потому что дальше эта таблица присоединяется к прайсу, и в результате в прайсе одна позиция будет
3 Крошка Ру
 
15.08.14
15:01
(2) А сколько по товару позиций в прайсе должно быть?
4 tdm
 
15.08.14
15:01
(2) ну первые не подходит, остальное то правильно - группируете в пакетном запросе(или во вложенном) получаете минимум() и эту партию уже используете
5 bUbA
 
15.08.14
15:05
(3) по товару одна позиция с партией минимальной себестоимости.

(4) первый запрос выглядит так
ВЫБРАТЬ
    ТМЦНаСкладах_КоличествоОстатки.ТМЦ,
    МИНИМУМ(ТМЦНаСкладах_КоличествоОстатки.Партия.Себестоимость) КАК Себестоимость
ПОМЕСТИТЬ ВТ_МинСебестоимость
ИЗ
    РегистрНакопления.ТМЦНаСкладах_Количество.Остатки(, ТМЦ = &ТМЦ) КАК ТМЦНаСкладах_КоличествоОстатки

СГРУППИРОВАТЬ ПО
    ТМЦНаСкладах_КоличествоОстатки.ТМЦ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Партии.Владелец КАК ТМЦ,
    Партии.Ссылка КАК Партия,
    МИНИМУМ(Партии.Себестоимость) КАК МинимальнаяСебестоимость
ИЗ
    ВТ_МинСебестоимость КАК ВТ_МинСебестоимость
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партии КАК Партии
        ПО ВТ_МинСебестоимость.ТМЦ = Партии.Владелец
            И ВТ_МинСебестоимость.Себестоимость = Партии.Себестоимость

СГРУППИРОВАТЬ ПО
    Партии.Ссылка,
    Партии.Владелец

в целом работает хорошо, но есть позиции, по которым у десяти партий одинаковая себестоимость, и выводятся все 10 партий, а нужна одна, любая
6 shuhard
 
15.08.14
15:05
(0) а форум должен угадать, какие измерения образуют партию ?
7 Kalambur
 
15.08.14
15:06
ответ как всегда в (1)
8 bUbA
 
15.08.14
15:06
(6) партия это справочник Партии
9 Крошка Ру
 
15.08.14
15:12
(5) Значит соединяя регистр с первой ВТ, делаешь вторую, где по минимальной себестоимости вытаскиваешь первую партию.
А в итоговом запросе соединяешь регистр с двумя ВТ.
10 bUbA
 
15.08.14
15:26
А как можно из такого запроса получить по одной минимальной партии?

ВЫБРАТЬ
Партии.Владелец КАК ТМЦ,
МИНИМУМ(Партии.Себестоимость) КАК Себестоимость,
Партии.Ссылка
ИЗ
Справочник.Партии КАК Партии
ГДЕ
Партии.Владелец В (&Владелец)

СГРУППИРОВАТЬ ПО
Партии.Владелец,
Партии.Ссылка
11 shuhard
 
15.08.14
15:28
(10) нужно сгруппировать по стоимости и взять минимум по коду справочника Партий, после чего связать результат с этим справочником по коду
12 bUbA
 
15.08.14
15:29
(11) можно пример? а то не совсем понятно
13 shuhard
 
15.08.14
15:32
(12) поржал
кто ж в пятницу будет за тебя запросы писать
14 alle68
 
15.08.14
16:33
(5) МАКСИМУМ(Партии.Ссылка) КАК Партия,
15 Крошка Ру
 
15.08.14
16:42
(12) ВЫБРАТЬ
    ТМЦНаСкладах_КоличествоОстатки.ТМЦ,
    МИНИМУМ(ТМЦНаСкладах_КоличествоОстатки.Партия.Себестоимость) КАК Себестоимость
ПОМЕСТИТЬ ВТ_МинСебестоимость
ИЗ
    РегистрНакопления.ТМЦНаСкладах_Количество.Остатки(, ТМЦ = &ТМЦ) КАК ТМЦНаСкладах_КоличествоОстатки

СГРУППИРОВАТЬ ПО
    ТМЦНаСкладах_КоличествоОстатки.ТМЦ
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ ПЕРВЫЕ 1
    Партии.Ссылка КАК Партия,
    МИНИМУМ(Партии.Себестоимость) КАК МинимальнаяСебестоимость
ПОМЕСТИТЬ ВТ_ПартияСМинСебестоимостью
ИЗ
    ВТ_МинСебестоимость КАК ВТ_МинСебестоимость
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партии КАК Партии
        ПО ВТ_МинСебестоимость.ТМЦ = Партии.Владелец
            И ВТ_МинСебестоимость.Себестоимость = Партии.Себестоимость
16 bUbA
 
15.08.14
17:04
(14) Спасибо! Теперь все выводится как надо!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший