Имя: Пароль:
1C
1С v8
Запрос с выводом минимальной и максимальной цены
🠗 (Волшебник 21.08.2024 10:37)
0 Alex_
Alexsin_2020
 
13.08.24
17:23
Всем доброго дня!

подскажите как построить правильно запрос для Динамического списка

что-бы он выводил цену "ОТ" по первой незакрытой партии

а цена "ПО" по последней партии.

Сейчас у меня такой запрос, но он неверно работает он, отбирает минимум и максимум

по партиям которых нет в остатке

ТекстЗапроса = "ВЫБРАТЬ
                       |    СправочникНоменклатура.Ссылка КАК Номенклатура,
                       |    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток КАК Количество,
                       |    Остатки.ВРезервеСоСкладаОстаток КАК КоличествоВРезерве,
                       |    СправочникНоменклатура.Артикул,
                       |    СправочникНоменклатура.МинимальныйЗаказ КАК МинимальныйЗаказ,
                       |    СправочникНоменклатура.КоличествоВУпаковке КАК КоличествоВУпаковке,
                       |    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток КАК КоличествоПодЗаказ,
                       |    ВЫБОР
                       |        КОГДА СправочникНоменклатура.ОсобыйТовар = ИСТИНА ТОГДА
                       |            МИНИМУМ(Цены.Цена)
                       |        ИНАЧЕ  МАКСИМУМ(Цены.Цена)
                       |    КОНЕЦ КАК ЦенаМАКС
                       |ИЗ
                       |    Справочник.Номенклатура КАК СправочникНоменклатура
                       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК Остатки
                       |        ПО СправочникНоменклатура.Ссылка = Остатки.Номенклатура
                       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикОтгрузкиТоваров.Остатки(&Период, Склад = &Склад) КАК ГрафикОтгрузкиТоваровОстатки
                       |        ПО СправочникНоменклатура.Ссылка = ГрафикОтгрузкиТоваровОстатки.Номенклатура
                       |        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК Цены
                       |        ПО СправочникНоменклатура.Ссылка = Цены.Номенклатура
                       |ГДЕ
                       |    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
                       |    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)
                       |
                       |СГРУППИРОВАТЬ ПО
                       |    СправочникНоменклатура.Ссылка,
                       |    Остатки.ВРезервеСоСкладаОстаток,
                       |    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток,
                       |    СправочникНоменклатура.Артикул,
                       |    СправочникНоменклатура.МинимальныйЗаказ,
                       |    СправочникНоменклатура.КоличествоВУпаковке,
                       |    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток,
                       |    СправочникНоменклатура.ОсобыйТовар";

я пробовал изменить в запросе это кусок

|        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК Цены
                       |        ПО СправочникНоменклатура.Ссылка = Цены.Номенклатура

на

|        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК Цены
                       |        ПО Остатки.Партия= Цены.Партия
то-есть отбирать по партии.

Но тогда Динамический список ругается на дубли ключевых колонок

и как итог вообще ничего не работает

(
Все регистры

СвободныеОстатки, ГрафикОтгрузкиТоваров, ЦеныНоменклатуры. Имеют измерение "Партия"
,
СправочникНоменклатура.ОсобыйТовар = ИСТИНА "ОсобыйТовар = истина" именно по этим товарам необходимо выводить цену по первой незакрытой партии.
остальные необходимо выводить по последней партии.
)

помогите пожалуйста построить верный запрос
8 Доминошник
 
18.08.24
11:29
(7) Вот серьёзно, да?

Сначала (в ОстаткиТоваров) пишем NULL КАК Номенклатура, а потом по этому полю соединяем и ждём какой-то разумный результат?
9 Alex_
Alexsin_2020
 
18.08.24
12:34
(8) к сожалению, да, я лох :-)
спасибо за наводку щас исправлю
10 2S
 
18.08.24
12:23
(9) жёстко так о себе
11 Alex_
Alexsin_2020
 
18.08.24
12:26
(10) да. нормально )
12 Волшебник
 
18.08.24
12:34
NULL КАК Номенклатура,
0 КАК МинимальныйЗаказ,

Такие поля не нужны. Все удалить
13 Alex_
Alexsin_2020
 
18.08.24
12:47
(12) Спасибо!
я думал что количество полей в каждом должно соответствовать.
14 Alex_
Alexsin_2020
 
18.08.24
12:51
Извинил запрос
но он формируется больше 5 сек

теперь остатки есть / резервы то-же а вот цены нету (

ТекстЗапроса = "ВЫБРАТЬ
                 |    СправочникНоменклатура.Ссылка КАК Номенклатура,
                 |    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток КАК Количество,
                 |    Остатки.ВРезервеСоСкладаОстаток КАК КоличествоВРезерве,
                 |    СправочникНоменклатура.Артикул,
                 |    СправочникНоменклатура.МинимальныйЗаказ КАК МинимальныйЗаказ,
                 |    СправочникНоменклатура.КоличествоВУпаковке КАК КоличествоВУпаковке,
                 |    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток КАК КоличествоПодЗаказ
                 |ПОМЕСТИТЬ СписокТоваров
                 |ИЗ
                 |    Справочник.Номенклатура КАК СправочникНоменклатура
                 |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК Остатки
                 |        ПО СправочникНоменклатура.Ссылка = Остатки.Номенклатура
                 |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикОтгрузкиТоваров.Остатки(&Период, Склад = &Склад) КАК ГрафикОтгрузкиТоваровОстатки
                 |        ПО СправочникНоменклатура.Ссылка = ГрафикОтгрузкиТоваровОстатки.Номенклатура
                 |ГДЕ
                 |    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
                 |    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)
                 |
                 |СГРУППИРОВАТЬ ПО
                 |    СправочникНоменклатура.Ссылка,
                 |    Остатки.ВРезервеСоСкладаОстаток,
                 |    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток,
                 |    СправочникНоменклатура.Артикул,
                 |    СправочникНоменклатура.МинимальныйЗаказ,
                 |    СправочникНоменклатура.КоличествоВУпаковке,
                 |    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ ПЕРВЫЕ 1
                 |    ОстаткиПервойПартии.Номенклатура,
                 |    ОстаткиПервойПартии.Партия,
                 |    ОстаткиПервойПартии.ВНаличииОстаток
                 |ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
                 |ИЗ
                 |    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
                 |ГДЕ
                 |    ОстаткиПервойПартии.ВНаличииОстаток > 0
                 |
                 |УПОРЯДОЧИТЬ ПО
                 |    ОстаткиПервойПартии.Партия.ПриходныйДокумент.Дата
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ
                 |    Цены.Цена,
                 |    Цены.Партия
                 |ПОМЕСТИТЬ ЦеныТоваров
                 |ИЗ
                 |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК Цены
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ
                 |    СписокТоваров.Номенклатура КАК Номенклатура,
                 |    СписокТоваров.Артикул КАК Артикул,
                 |    СписокТоваров.МинимальныйЗаказ КАК МинимальныйЗаказ,
                 |    СписокТоваров.КоличествоВУпаковке КАК КоличествоВУпаковке,
                 |    СписокТоваров.Количество КАК Количество,
                 |    СписокТоваров.КоличествоВРезерве КАК КоличествоВРезерве,
                 |    СписокТоваров.КоличествоПодЗаказ КАК КоличествоПодЗаказ,
                 |    ЦеныТоваров.Цена КАК ЦенаМАКС
                 |ИЗ
                 |    СписокТоваров КАК СписокТоваров
                 |        ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров КАК ОстаткиПервойПартииТоваров
                 |        ПО СписокТоваров.Номенклатура = ОстаткиПервойПартииТоваров.Номенклатура
                 |        ЛЕВОЕ СОЕДИНЕНИЕ ЦеныТоваров КАК ЦеныТоваров
                 |        ПО (ОстаткиПервойПартииТоваров.Партия = ЦеныТоваров.Партия)";

  

    Возврат Запрос.Выполнить().Выгрузить();
15 Alex_
Alexsin_2020
 
18.08.24
13:17
Переписал запрос так

цены показывает остатки то-же но, цена не первой партии а последней (

ВЫБРАТЬ ПЕРВЫЕ 1
    ОстаткиПервойПартии.Номенклатура,
    ОстаткиПервойПартии.Партия,
    ОстаткиПервойПартии.ВНаличииОстаток
ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
ГДЕ
    ОстаткиПервойПартии.ВНаличииОстаток > 0
;

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

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

        ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров КАК ОстаткиПервойПартииТоваров
        ПО СправочникНоменклатура.Ссылка = ОстаткиПервойПартииТоваров.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ЦеныТоваров КАК ЦеныТоваров
        ПО ОстаткиПервойПартииТоваров.Партия = ЦеныТоваров.Партия
ГДЕ
    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)

СГРУППИРОВАТЬ ПО
    СправочникНоменклатура.Ссылка,
    Остатки.ВРезервеСоСкладаОстаток,
    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток,
    СправочникНоменклатура.Артикул,
    СправочникНоменклатура.МинимальныйЗаказ,
    СправочникНоменклатура.КоличествоВУпаковке,
    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток,
    ЦеныТоваров.Цена

полагаю проблема в ДНК (моем))) думаю в "Упорядочить" но и тут блин проблема если я пишу вот так

|УПОРЯДОЧИТЬ ПО
                 |    ОстаткиПервойПартии.Партия.ПриходныйДокумент.Дата
                 |;

тогд аматюгается что типа порядок задавать  внастройках

а если без

|УПОРЯДОЧИТЬ ПО
                 |    ОстаткиПервойПартии.Партия.ПриходныйДокумент.Дата
                 |;

тогда не ругается и работает но неверно.
16 Волшебник
 
18.08.24
14:02
(13) Это если запросы складываются через ОБЪЕДИНИТЬ
17 Alex_
Alexsin_2020
 
18.08.24
14:15
(16) Понял! спасибо за уточнение.
простите что в Выходной день не поможете по запросу в (15)?

что-то я совсем туплю уже ничего не выходит

цены вижу но, по последней партии а как упорядочить и убрать лишние партии не понимаю (
18 Волшебник
 
18.08.24
14:30
(17) Я не анализирую запросы, в которых есть СГРУППИРОВАТЬ ПО количество или сумма или цена
Всё удалить и переписать с нуля
19 Alex_
Alexsin_2020
 
18.08.24
16:51
(18) Спасибо буду пробовать.

вот переписал убрал все лишнее

но уже вообще перестало что либо показывать что то я за день вообще не сдвинулся с места (

ВЫБРАТЬ ПЕРВЫЕ 1
    ОстаткиПервойПартии.Номенклатура,
    ОстаткиПервойПартии.Партия
ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СправочникНоменклатура.Ссылка КАК Номенклатура,
    ЦеныТоваров1.Цена КАК ЦенаМАКС
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров КАК ОстаткиПервойПартииТоваров
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЦеныТоваров КАК ЦеныТоваров1
            ПО ОстаткиПервойПартииТоваров.Партия = ЦеныТоваров1.Партия
        ПО СправочникНоменклатура.Ссылка = ОстаткиПервойПартииТоваров.Номенклатура
ГДЕ
    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)
20 Волшебник
 
18.08.24
18:23
(19) замените ВНУТРЕННЕЕ на ЛЕВОЕ
21 Alex_
Alexsin_2020
 
18.08.24
19:39
(20) пробовал но, тогда цену вообще не показывает(
22 Волшебник
 
18.08.24
20:31
(21) Так и должно быть
23 Alex_
Alexsin_2020
 
18.08.24
21:04
(22) возможно но, все-же хотелось бы цену увидеть (
24 Волшебник
 
19.08.24
07:29
(23) У вас партия только одна, первая по складу, а надо брать первую по каждой номенклатуре
25 Alex_
Alexsin_2020
 
19.08.24
07:55
(24) ПО СправочникНоменклатура.Ссылка = ОстаткиПервойПартииТоваров.Номенклатура

Это ж задаёт условие по номенклатуре или ошибаюсь?

Дайте пример пожалуйста
26 Волшебник
 
19.08.24
09:20
(25) См. свой первый запрос. Там единственная партия
27 Alex_
Alexsin_2020
 
19.08.24
10:26
(26)

|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК Остатки
                       |        ПО СправочникНоменклатура.Ссылка = Остатки.Номенклатура

этот? тут же все партии из остатка лезут

если я затем по партии цены фильтрую тогда получаю ошибку так как ключевые поля дублируется
28 Волшебник
 
19.08.24
10:28
(27) этот

ВЫБРАТЬ ПЕРВЫЕ 1
    ОстаткиПервойПартии.Номенклатура,
    ОстаткиПервойПартии.Партия
ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
;


и ниже
 ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров


А Вашей фразы я вообще не вижу в запросе (19)
Вы ушли в бред?
29 Волшебник
 
19.08.24
10:29
(27) >> получаю ошибку так как ключевые поля дублируется

Устраните ошибку.
30 Alex_
Alexsin_2020
 
19.08.24
10:51
я думал что здесь

ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров КАК ОстаткиПервойПартииТоваров  
        ПО СправочникНоменклатура.Ссылка = ОстаткиПервойПартииТоваров.Номенклатура

я отбираю по номенклатуре?
31 Волшебник
 
19.08.24
10:55
Как со стенкой разговариваю...

У Вас в таблице ОстаткиПервойПартииТоваров единственная партия, одна. В ней наверняка нет всей номенклатуры
32 Alex_
Alexsin_2020
 
19.08.24
11:02
(31) Вы имеете в виду что по выбранной номенклатуре нету еще партий?

но я другим запросом смотрю в остатке более чем одна партия по выбранному складу и номенклатуре

иначе я не понимаю Вас (
33 Волшебник
 
19.08.24
11:03
Покажите последнюю версию запроса
34 Alex_
Alexsin_2020
 
19.08.24
11:07
(33)
вот две версии

эта показывает цену но не верной партии (последней)

ВЫБРАТЬ ПЕРВЫЕ 1
    ОстаткиПервойПартии.Номенклатура,
    ОстаткиПервойПартии.Партия
ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
;

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

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

а вот эта не показывает цены вообще

ВЫБРАТЬ ПЕРВЫЕ 1
    ОстаткиПервойПартии.Номенклатура,
    ОстаткиПервойПартии.Партия
ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СправочникНоменклатура.Ссылка КАК Номенклатура,
    ЦеныТоваров1.Цена КАК ЦенаМАКС
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров КАК ОстаткиПервойПартииТоваров
            ЛЕВОЕ СОЕДИНЕНИЕ ЦеныТоваров КАК ЦеныТоваров1
            ПО ОстаткиПервойПартииТоваров.Партия = ЦеныТоваров1.Партия
        ПО СправочникНоменклатура.Ссылка = ОстаткиПервойПартииТоваров.Номенклатура
ГДЕ
    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)
35 Alex_
Alexsin_2020
 
19.08.24
11:09
+(34) а вот этим запросом я вывожу по номенклатуре (дополнителньо) информацию о текущих партиях в остатке по выбранному товару

ВЫБРАТЬ
    Остатки.Партия КАК Партия,
    ISNULL(Цены.Цена,0) КАК Цена,
    ISNULL(Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток,0) КАК Количество,
    ISNULL(Остатки.ВРезервеСоСкладаОстаток,0) КАК КоличествоВРезерве,
    Остатки.Партия.ПриходныйДокумент КАК Документ,
    Остатки.Партия.ПриходныйДокумент.Контрагент КАК Контрагент,
    ISNULL(ТоварыНаСкладах.ВНаличии,0) КАК КолВоПриход,
    ISNULL(Остатки.Партия.Себестоимость,0) КАК ЦенаПоступления,
    Остатки.Партия.Валюта КАК ВалютаПоступления
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(
            &Период,
            Склад = &Склад
                И Номенклатура = &ВыбНоменклатура) КАК Остатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК Цены
        ПО Остатки.Партия.Ссылка = Цены.Партия,
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Регистратор = Остатки.Партия.ПриходныйДокумент
    И ТоварыНаСкладах.Партия = Остатки.Партия
36 maxab72
 
19.08.24
11:18
Эта часть сойдет
ВЫБРАТЬ ПЕРВЫЕ 1
    ОстаткиПервойПартии.Номенклатура,
    ОстаткиПервойПартии.Партия
ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
;

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

Но в первую таблицу надо добавить дату партии, а во вторую Номенклатуру

затем надо из таблицы ОстаткиПервойПартииТоваров
ПО каждой номенклатуре отобрать даты партий максимальную и минимальную.

После этого полученную таблицу соединить с таблицей ОстаткиПервойПартииТоваров по дате партии и номенклатуре, и получится связка Номенклатура - Минимальная и Максимальная по дате партия.
После этого по номенклатуре и партии результат соединить с таблицей ЦеныТоваров и будет вам счастье!
37 Alex_
Alexsin_2020
 
19.08.24
11:35
(36)

(Но в первую таблицу надо добавить дату партии, а во вторую Номенклатуру)

дак я-ж не знаю даты партии я запрос делаю остатки партий получить на конец дня! КонецДня(ТекущаяДата())

а во второй мне же нужно именно по партии а не по товару получать

в любом случае первый запрос делает все правильно за исключением только того что я там получаю только последнею партию по каждому товару тогда когда мне нужна только одна партия (первая)
38 Alex_
Alexsin_2020
 
19.08.24
11:36
в любом случае я сейчас перепишу и напишу здесь другой запрос так как моя проблема не в соединениях таблиц а именно в первой таблице где не та партия я сейчас перепишу посмотрю что вообще там выдает в первой таблице
39 maxab72
 
19.08.24
11:56
(37) Партия в регистре "СвободныеОстатки" это измерение, если вы сделали ее ресурсом - переделайте и прочитайте про виртуальные таблицы остатков и срезы по ним.
Если у вас партия это независимая сущность - в регистре ЦеныНоменклатуры должна быть номенклатура. Если партии подчинены номенклатуре (для каждой номенклатуры создаются свои партии) - хорошо, и так сойдет.
(38) Ошибка в том, что пытаетесь решить задачу не проанализировав ее. Постройте на бумаге связи между таблицами и ответ будет очевиден.
40 Alex_
Alexsin_2020
 
19.08.24
11:59
(39) это измерение и уже не переделаешь так как учет ведется уже лет пять (
41 maxab72
 
19.08.24
12:02
(40) если это измерение, то и работайте с ним как с измерением. Ваш запрос по остаткам выдаст все товары со всеми партиями, хранящимися на указанный момент в регистре. Много товаров и к каждому товару много партий. У партии есть дата - иначе как определить, какая партия была раньше а какая позже.
42 Alex_
Alexsin_2020
 
19.08.24
14:07
так видимо я сам запутался и всех Вас запутал.

имеем в остатках по товару А две партии

партия 1 от 01 01 2024 (в остатке 12шт)
и партия 2 от 12 02 2024 (в остатке 1000)

так вот мне для товаров нужно получить только первую партию

(партия 1 от 01 01 2024 (в остатке 12шт))

и по этой партии цену

все остальные партии должны идти мимо

мне нужна цена только первой незакрытой партии.

Во всех регистрах Партия это измерение

а сама партия это справочник Партии

Сам справочник "Партии" не подчинен никому
43 Alex_
Alexsin_2020
 
19.08.24
13:35
мне палагаю нужно сортироватьпо дате партии что бвы получить остаток первой партии
44 maxab72
 
19.08.24
13:19
(43) используйте агрегатную функцию МИНИМУМ()
45 Волшебник
 
19.08.24
13:20
(43) У вас усы отклеились отключился модуль русского языка.
46 Alex_
Alexsin_2020
 
19.08.24
13:34
(44) в (0) я именно так и сделал но цена всеравно не верная (
48 maxab72
 
19.08.24
13:51
(46) В 0 не то и не с тем соединяли.
49 Alex_
Alexsin_2020
 
19.08.24
14:07
(48) спасибо буду курить дальше )
50 Alex_
Alexsin_2020
 
19.08.24
14:08
(45) Извиняюсь все исправил )
51 Alex_
Alexsin_2020
 
19.08.24
14:16
Вот запрос подскажите почему поле партия пустое?

ВЫБРАТЬ ПЕРВЫЕ 1
    ОстаткиПервойПартии.Номенклатура,
    ОстаткиПервойПартии.Партия
ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СправочникНоменклатура.Ссылка КАК Номенклатура,
    ОстаткиПервойПартииТоваров.Партия КАК Партия
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров КАК ОстаткиПервойПартииТоваров
        ПО СправочникНоменклатура.Ссылка = ОстаткиПервойПартииТоваров.Номенклатура
ГДЕ
    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)
52 Волшебник
 
19.08.24
14:20
(51) У вас первый запрос выбирает одну партию по складу, причём первую попавшуюся. В ней этой номенклатуры нет.

Слушайте, мы это уже обсуждаем с (26) и ниже.
Хватит уже тупить-то?
53 Волшебник
 
19.08.24
14:21
(50) вот цитата из (43) >> мне палагаю нужно сортироватьпо дате партии что бвы получить остаток первой партии

Ничего не исправлено
54 СвинТуз
 
19.08.24
14:26
(51)
У Станислава ангельское терпение.
Я бы просто пристрелил, что бы не мучался. )))

Уже в (0)
"Сейчас у меня такой запрос, но он неверно работает он, отбирает минимум и максимум по партиям которых нет в остатке"

= Не понимаете, что написали в запросе.

Мне стало не интересно. )
55 СвинТуз
 
19.08.24
14:27
Мне казалось.
Невозможно из остатков выбрать то что в них нет. (Не Хранится).
Наверное я ошибаюсь.
57 СвинТуз
 
19.08.24
14:29
Без конструктора запросов.
58 Alex_
Alexsin_2020
 
19.08.24
15:00
(52) простите да я тупой ))

+(54) да и спасибо ему за это ))

но я уж еспрашивал разве тут я не по номенклатуре отбираю?

ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров КАК ОстаткиПервойПартииТоваров
        ПО СправочникНоменклатура.Ссылка = ОстаткиПервойПартииТоваров.Номенклатура

Левым соединением я ж еспрашивал я прост оне понимаю
59 Волшебник
 
19.08.24
14:56
(58) Вернёмся к первому запросу.

ВЫБРАТЬ ПЕРВЫЕ 1
    ОстаткиПервойПартии.Номенклатура,
    ОстаткиПервойПартии.Партия
ПОМЕСТИТЬ ОстаткиПервойПартииТоваров
ИЗ
    РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК ОстаткиПервойПартии
;


Здесь 1 партия. В этой партии нет всей номенклатуры. Здесь только 1 номенклатура.
Значит соединение с этой таблицей не даст желаемого множества.
60 Alex_
Alexsin_2020
 
19.08.24
15:18
похоже меня сейчас  пошлют ))

я верно понимаю я должен был сделать так что бы выборка прошла по номенклатуре?

РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад, Номенклатура = &Номенклатура) КАК ОстаткиПервойПартии

тогда вопрос как задать значение этого параметра? (&Номенклатура)

или же дело в ПЕРВЫЕ 1?
61 maxab72
 
19.08.24
15:19
(60) сперва ответьте самому себе на вопрос: "Что должен дать этот запрос?"
62 Волшебник
 
19.08.24
15:20
(60) Дело в ПЕРВЫЕ 1
63 Alex_
Alexsin_2020
 
19.08.24
17:30
(61) мне нужно вывести в динамический список

все товары их остаток по всем партиям

и для товаров у которых флаг "ОсобыйТовар" имеет значение ИСТИНА цену по первой незакрытой партии (по первой партии в остатке)

а для товаров у которых флаг "ОсобыйТовар" имеет значение ЛОЖЬ цену по последней партии

Вот
64 Alex_
Alexsin_2020
 
19.08.24
17:33
(62)
при таком запросе я получаю ошибку
(
Обнаружено дублирование ключевых значений в колонках: "Номенклатура".
Отображение данных в списке невозможно.
)

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СправочникНоменклатура.Ссылка КАК Номенклатура,
    ОстаткиПервойПартииТоваров.Партия КАК Партия
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиПервойПартииТоваров КАК ОстаткиПервойПартииТоваров
        ПО СправочникНоменклатура.Ссылка = ОстаткиПервойПартииТоваров.Номенклатура
ГДЕ
    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)

как здесь получить только первую незакрытую партию в остатке?
65 Волшебник
 
19.08.24
17:31
(63) Почему такое расхождение по флагу ОсобыйТовар? Какой в нём экономический смысл?
66 Alex_
Alexsin_2020
 
19.08.24
17:55
(65) согласно 713 постановления
Нужно следить за ценами.

В кавычках мы должны следить за предельной наценкой при продаже товаров которые подпадают под список товаров постановления 713

А остальные по любой наценка

Отсюда и было решено сделать партионный учёт и устанавливать цену на партию номенклатуры
67 Гена
 
гуру
19.08.24
18:06
(65) Это Белоруссия.
68 Гена
 
гуру
19.08.24
18:09
(66) Зачем же привязали цену к партии, если предельная наценка должна работать по номенклатуре?
69 maxab72
 
19.08.24
18:30
(68) У них вроде партии привязываются к номенклатуре, поэтому номенклатуру можно получить как владельца партии. Так во всяком случае было в белорусской какой-то полутиповой торговле раньше.
70 Alex_
Alexsin_2020
 
19.08.24
19:51
(68) потому что наценка зависит от прихода, а приход это партия

У нас расценивает один человек и куча менеджеров продают

Они не желают отслеживать наценку, поэтому и было решено сделать так.

Конфа полностью самописная.

И сперва человек который занимался приходами он просто не приходовал товары пока не будут распроданы предыдущие приходы, но это просто пипец, сколько было работы, поэтому сделали партии и привязали к ним цену. Где-то так
71 Волшебник
 
19.08.24
19:06
Наконец-то включились мозги!
72 Alex_
Alexsin_2020
 
20.08.24
01:18
+(70) а теперь моя задача доработать рабочий стол менеджера

Я сделал отдельную таблицу куда вывожу все партии что имеются в остатках и цены по ним но, менеджерам это типа неудобно просят что бы в основной таблице была верная информация о ценах.

Но вот чтото с запросом мне этим сложновато уже вторую неделю ковыряю его. Но что - то видимо годы работы без отпуска дают о себе знать.
73 Волшебник
 
19.08.24
23:02
(72) пишется "чтобы" и "что-то", слитно
74 Волшебник
 
19.08.24
23:03
(72) Вы поймите, я Вас научу разговаривать по-русски, как Ваш батюшка или матушка. Ты будешь говорить по-русски!
75 Alex_
Alexsin_2020
 
20.08.24
01:23
(73), (74) спасибо.
Извините я не учился в школе рос в неблагополучной семье.

Но я буду стараться!
76 Волшебник
 
20.08.24
09:52
(75) Вот вам корзинка запятых:


,,,,,
 ,,,
  ,
77 DrZombi
 
гуру
20.08.24
10:48
(0) Сотри все что наделал :)

1. Зачем вам видеть остаток в интерактивном режиме, т.е. сию секунду?
    - Я к тому, что человек, на другом конце базы, все видит с интервалом "Семеныч, я тут товар подгрузил, прими!" ... т.е. уже не в онлайн.

2. Рекомендации, добавить Регистр сведений, который будет содержать нужные вам поля "Мин цена", "Мак цена" и др... на вашу фантазию...
    - Измерения в этом регистре будут ваш динамический список, т.е. ... в пункте 3

2.5. Регистр сведений заполнять по регламенту, с периодичностью в зависимости от набора данных, и ваших умелых ручонок, которые напишут алгоритм быстрого формирования и записи этого регистра...

3. Т.е. Мы получаем, динамический список в базовом варианте, с подгружаемой информацией... :)
78 Alex_
Alexsin_2020
 
20.08.24
12:48
(77) куча розничных операций, остаток и цены меняются очень часто поэтому все эти данные нужно видеть сразу спасибо Вам
79 Гена
 
гуру
20.08.24
13:00
(78) А там куча поставщиков одной номенклатуры и каждый подъел разный кусок максимальной наценки от цены производителя?
80 Гена
 
гуру
20.08.24
13:05
Не проще тогда не мудрить с ценами партий, а завести разные номенклатуры от разных производителей:
Номенклатура_1_Производитель_1
Номенклатура_1_Производитель_2
...
Тогда просто иметь сразу по списку 713 заданную максимальную наценку именно для Номенклатура_1 ?
81 Гена
 
гуру
20.08.24
13:14
Просто я глянул это постановление. Батька установил для некоторых товаров максимальную наценку от цены производителя.

1. Если цена сахара от Производитель_1 равна 1000, то продать можно максимум, пусть будет 30%, 1300.

1. Если цена сахара от Производитель_2 равна 1200, то продать можно максимум 1560.

На мой взгляд зря прицепились к партиям. Лучше отслеживать производителя и его цену. А поступлений от промежуточных продавцов может быть туча и не следует их отслеживать. Главное - производитель.
82 СвинТуз
 
20.08.24
14:59
(0)
А если остаток по партии определяющей цену меньше чем количество в продажном документе?
83 СвинТуз
 
20.08.24
15:02
например, осталась одна штучка закупленная по цене
100 зайчиков, и
10 000 по цене 50 зайчиков.

Максимальная наценка 30%
Продадите 1 000 штук по цене 130 зайцев и
попадете под батьку ...
84 Ногаминебить
 
20.08.24
16:40
(81) А что такое цена производителя? Она ведь тоже не гвоздями приколочена на века.
85 Alex_
Alexsin_2020
 
20.08.24
21:41
(80)  нет не проще
проще тогда не указывать основную таблицу и сгруппировать все
и тогда тупо дубли будут и все что мне нужно, но так не хотят менеджеры
86 Alex_
Alexsin_2020
 
21.08.24
09:29
(81) Производитель вообще не имеет значения.

наценка зависит от того, какое ты звено

там очень много нюансов
87 Гена
 
гуру
21.08.24
09:44
(86) Пример приведите.
88 Alex_
Alexsin_2020
 
21.08.24
10:23
(87) есть определенный список товаров который подпадает под постановление 731

производитель может быть любой

если Товары ввозим ИЗ РФ тогда

% максимальной наценки зависит от того, ввез ли я этот товар или я уже у кого-то его приобретаю

список товаров, подпадающих под постановление, очень большой а у нас его (товаров из этого списка) оочень много
все эти данные необходимо хранить в базе и при печати накладной указывать эти сведения в колонке "Примечание"

% наценки напрямую зависит от торгового звена

например Вы ввезли товар и сделали наценку на товар у которого максимальная наценка == 30%

Вы сделали свою наценку 15%

следующее звено приобрело у Вас этот товар он уже не может наценить на этот товар 30% у него уже максимальная наценка будет 15% и если он сделает 15% тогда сможет отпустить товар только в розничную сеть, иначе никто его не приобретает, так как лимит наценок кончился

короче даже вспоминать не хочется
я довольно долго это делал в программе, чтобы все контролировалось и не давало наценить больше, чем положено.

ну вот щас опять люлюй отхвачу за орфографию )))
89 Гена
 
гуру
21.08.24
10:02
(88) Ну а я Вам о чём талдычу. Ваша ошибка, что Вы идёте по прямому пути наценок, а надо - от обратного.
Есть цена производителя или что то же самое - от таможни. Вот её и надо заносить в регистр. По списку 731 для данной группы номенклатуры чёткая максимальная наценка. Вы сразу имеете свою максимальную продажную цену и далее работаете скидками. Это и есть метод от обратного. А прямой метод наценок через партии товаров - тупик.
90 Alex_
Alexsin_2020
 
21.08.24
10:07
(89) Я должен печатать наценку которую я установил

и если я указал всю наценку то другой оптовое звено уже не сможет произвести наценку на этот товар

поэтому работа со скидками вообще не вариант.

в Накладной я долен указать

Ввез тот то наценку установил такую то

купил по такой то цене

и т д

ах да есл ипроизводитель запретил применяь скидку то и скидку я не применю (

и таких товаров куча где скидку я то же сделать не могу
91 Гена
 
гуру
21.08.24
10:11
(90) Дубль четыре: никто и не заставляет выбирать максимум, понятно, что следующее звено в пролёте, кроме конечного физлица. Вы из регистра по данной номенклатуре берёте максимум и далее уже делаете скидку от МАКСИМУМА. А наценка тупо рассчитается от обратного как продажная цена минус покупная.
92 Alex_
Alexsin_2020
 
21.08.24
10:17
в общем перепишу запрос так чтобы выводил дубли
другого варианта не вижу (
93 Alex_
Alexsin_2020
 
21.08.24
10:19
(91) и что я покажу в реестре цен? который я обязан печатать на каждое постулпение?

пришла накладна яя обязан принять товар, оприходавать его, СОздать установку Цен , установить цены и распечатать реестр цен и наценок

и все это под подпись )

но вообще зачем ломать то что уде работат уже переделывать не будет никто это 100% да и всех устраивает такой вариант работы особенно тех кто сидит и ничего не делатт скормил эксельку накладной программе она создала приход далее установил цены ито и цены программа сама рассчитывает теперь от человека только проверить и руками редактировтаь то что программа неверно посчитала

и все

менеджера то же нефига не делают толкьо на кнпоки жмут

особенно с заказами с сайтов

и из приложений
94 Волшебник
 
21.08.24
10:18
(93) Это не ваша функция, а товароведов. Ваша обязанность - хорошо программировать
95 Alex_
Alexsin_2020
 
21.08.24
10:39
(94) Расскажите это моему директору )))

он все возложил на меня и на гл. Бухгалтера.

когда писал им конфигу я предлагал вариант как предлагает Геннадий но мне было сказано что делать именно Партионный учет так как типа по постановлению мы обязаны вести партионный учет и точка

я объяснил что типа это все невозможно что в типовых такого нет он мне сказал незаменимых программистов нет )))

вот мне и пришлось писать так как скажут )

кушать то хочется

за 7 месяцев была написана новая конфига, под основную деятельность + куча форм под ТСД и РМК

короче писал день и ночь (

а получил шиш(

а теперь мне еще сказали сделать эту долбаное РММ, чтобы там, понимаете ли, в основной таблице были и цены и остатки и прочее

и никого не волнует, что я уже неделю вожусь с этим запросом (
96 Волшебник
 
21.08.24
10:24
(88) >> ну вот щас опять люлюй отхвачу за орфографию )))

Сказку про "казнить нельзя помиловать" знаете? Орфография и синтаксис могут поменять смысл на противоположный.
А когда Вас читаешь, то такое сообщение, что Вас там башкой об клавиатуру бьют.
Я уж вставляю запятые за ВАС, но честно говоря, уже заебался. Мне проще нахуй снести эту ветку.
97 Волшебник
 
21.08.24
10:25
(95) Пошлите его нахуй. Или дай мне его телефон, я его сам пошлю.
98 Гена
 
гуру
21.08.24
10:26
(93) Да это я уже понял. Советский вариант, когда куча народа на ручном прямом счёте. Хотя бы для себя сделайте хоть раз обратный счёт.

На 95% уверен, что в бумазее "Реестр цен" просто таки обязана быть графа некоей "учётной цены" либо от родного производителя, либо по таможенной декларации. А никак не покупные цены предыдущих оптовиков.
99 Alex_
Alexsin_2020
 
21.08.24
10:28
(96) извините я буду стараться.
100 Alex_
Alexsin_2020
 
21.08.24
10:38
думаю, что тему можно закрывать, так как вариантов уже и нету,

видимо, я слишком тупой, чтобы решить эту задачу
устал уже

вот решаю сейчас, все же реально переделать РММ, чтобы отвязать от Основной таблицы и тогда не будет ругаться на дубли.

просите за орфографию.
101 Волшебник
 
21.08.24
10:39
(100) да, видимо да

Если Вы одновременно и программист, и товаровед, то оба дела вы делаете плохо.
102 Гена
 
гуру
21.08.24
10:39
Делайте что хотите. Но концепция привязки наценки к партии поступления порочна изначально. Вот даст оптовик одним поступлением одну номенклатуру одной ценой продажи, но разных учётных цен и квакнет Ваш алгоритм стопудово.
103 Alex_
Alexsin_2020
 
21.08.24
12:13
(101) нет я не товаровед я только программист но да Вы правы я еще совсем молодой программист!
еще есть чему учиться
104 DrZombi
 
гуру
21.08.24
14:19
(103) Судя по писаному вами, вы упретесь в потолок возможности 1С... Если был бы SQL или Оракл (прямые запросы), то еще можно там усложнить сбор данных, без потери функционала. Но все же, выход у вас "2", либо забить, и нечего не делать... в данной доработке. Либо смотри в (77)... Регистр сведений с измерениями, включая Дату и вуаля... + Запаситесь дисковыми массивами на никчемный список, который нужен с интервалом пару дней :)

А так, учите пользователей работать с отчетами и смотреть туда, а не в список документов :)
105 Alex_
Alexsin_2020
 
23.08.24
09:59
(104) Спасибо Вам!
ткнул пальцем в небо и немного изменил запрос из (0)

итог. Получилось сделать так как мне нужно!

я  подумал а что если запрос из (0) просто не может отобрать одновременно и минимум и максимум

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

ВЫБРАТЬ
    СправочникНоменклатура.Ссылка КАК Номенклатура,
    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток КАК Количество,
    Остатки.ВРезервеСоСкладаОстаток КАК КоличествоВРезерве,
    СправочникНоменклатура.Артикул,
    СправочникНоменклатура.МинимальныйЗаказ КАК МинимальныйЗаказ,
    СправочникНоменклатура.КоличествоВУпаковке КАК КоличествоВУпаковке,
    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток КАК КоличествоПодЗаказ,
    
    ВЫБОР
        КОГДА СправочникНоменклатура.ОсобыйТовар = ИСТИНА
            ТОГДА
            
            ВЫБОР
        КОГДА МАКСИМУМ(Цены.Цена) <> МИНИМУМ(ЦеныТоваров.Цена)
            ТОГДА МИНИМУМ(ЦеныТоваров.Цена)
        ИНАЧЕ 0
    КОНЕЦ
    
    
        ИНАЧЕ 0
    КОНЕЦ КАК ЦенаМИН,
    
    МАКСИМУМ(Цены.Цена) КАК ЦенаМАКС
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК Остатки
        ПО СправочникНоменклатура.Ссылка = Остатки.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикОтгрузкиТоваров.Остатки(&Период, Склад = &Склад) КАК ГрафикОтгрузкиТоваровОстатки
        ПО СправочникНоменклатура.Ссылка = ГрафикОтгрузкиТоваровОстатки.Номенклатура
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК Цены
        ПО СправочникНоменклатура.Ссылка = Цены.Номенклатура
        ПОЛНОЕ СОЕДИНЕНИЕ ЦеныТоваров КАК ЦеныТоваров
            ПО СправочникНоменклатура.Ссылка = ЦеныТоваров.Номенклатура

ГДЕ
    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)

СГРУППИРОВАТЬ ПО
    СправочникНоменклатура.Ссылка,
    Остатки.ВРезервеСоСкладаОстаток,
    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток,
    СправочникНоменклатура.Артикул,
    СправочникНоменклатура.МинимальныйЗаказ,
    СправочникНоменклатура.КоличествоВУпаковке,
    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток,
    СправочникНоменклатура.ОсобыйТовар

все выводится так как я хотел

если товар особый и если минимальная цена <> максимальной тогда выводится цена "от"- как минимальная цена, а иначе цена  "от" == 0

с другой стороны я все -же думаю меня здесь ждет еще один тупик (

а что если по первой партии цена 15р а по второй (последней ) 10 итого что будет в "Цене ОТ"?

скорее всего выведет минимальную 10
106 Alex_
Alexsin_2020
 
23.08.24
09:49
(105) Видимо я Вам всем не правильно поставил вопрос.

извините меня и спасибо за попытки помочь мне а так же за терпение!

Все хорошего дня!
107 Alex_
Alexsin_2020
 
23.08.24
10:57
(106) подтвердились мои ожидания лох
это судьба я просто пришёл обратно к тому с чего начал (

1. цена с таким запросом выводиться даже если партии уже нет в остатке

2. выводится неверная минимальная если в последней партии цена ниже первой то цена от будет неправильная (

но я напряг свой мозг и сделал следующее

сперва отбираю минимум и максимум периода цен в остатках

затем по периодам получаю минимум и максимум Цены

не знаю все ли верно я сделал но теперь 100% выводит как мне нужно было

теперь осталось упростить запрос

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Цены.Номенклатура,
    Цены.Период,
    Цены.Цена
ПОМЕСТИТЬ ЦеныТоваровМаксимум
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ВидЦены = &ВидЦены) КАК Цены
;

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

СГРУППИРОВАТЬ ПО
    Остатки.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СправочникНоменклатура.Ссылка КАК Номенклатура,
    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток КАК Количество,
    Остатки.ВРезервеСоСкладаОстаток КАК КоличествоВРезерве,
    СправочникНоменклатура.Артикул,
    СправочникНоменклатура.МинимальныйЗаказ КАК МинимальныйЗаказ,
    СправочникНоменклатура.КоличествоВУпаковке КАК КоличествоВУпаковке,
    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток КАК КоличествоПодЗаказ,
    ВЫБОР
        КОГДА СправочникНоменклатура.ОсобыйТовар = ИСТИНА
            ТОГДА ВЫБОР
                    КОГДА ЦеныТоваровМинимум.Цена <> ЦеныТоваровМаксимум.Цена
                        ТОГДА ЦеныТоваровМинимум.Цена
                    ИНАЧЕ 0
                КОНЕЦ
    КОНЕЦ КАК ЦенаМИН,
    ЦеныТоваровМаксимум.Цена КАК ЦенаМАКС
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(&Период, Склад = &Склад) КАК Остатки
        ПО СправочникНоменклатура.Ссылка = Остатки.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ГрафикОтгрузкиТоваров.Остатки(&Период, Склад = &Склад) КАК ГрафикОтгрузкиТоваровОстатки
        ПО СправочникНоменклатура.Ссылка = ГрафикОтгрузкиТоваровОстатки.Номенклатура
        ПОЛНОЕ СОЕДИНЕНИЕ ДатыЦеныТоваров КАК ДатыЦеныТоваров
        ПО СправочникНоменклатура.Ссылка = ДатыЦеныТоваров.Номенклатура
        ПОЛНОЕ СОЕДИНЕНИЕ ЦеныТоваровМинимум КАК ЦеныТоваровМинимум
        ПО СправочникНоменклатура.Ссылка = ЦеныТоваровМинимум.Номенклатура
            И (ДатыЦеныТоваров.ПериодМинимальный = ЦеныТоваровМинимум.Период)
        ПОЛНОЕ СОЕДИНЕНИЕ ЦеныТоваровМаксимум КАК ЦеныТоваровМаксимум
        ПО СправочникНоменклатура.Ссылка = ЦеныТоваровМаксимум.Номенклатура
            И (ДатыЦеныТоваров.ПериодМаксимальный = ЦеныТоваровМаксимум.Период)
ГДЕ
    СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ
    И СправочникНоменклатура.Ссылка В ИЕРАРХИИ(&РодительТовара)

СГРУППИРОВАТЬ ПО
    СправочникНоменклатура.Ссылка,
    Остатки.ВРезервеСоСкладаОстаток,
    ГрафикОтгрузкиТоваровОстатки.КоличествоНеобеспеченоОстаток,
    СправочникНоменклатура.Артикул,
    СправочникНоменклатура.МинимальныйЗаказ,
    СправочникНоменклатура.КоличествоВУпаковке,
    Остатки.ВНаличииОстаток - Остатки.ВРезервеСоСкладаОстаток,
    ЦеныТоваровМинимум.Цена,
    ЦеныТоваровМаксимум.Цена,
    ВЫБОР
        КОГДА СправочникНоменклатура.ОсобыйТовар = ИСТИНА
            ТОГДА ВЫБОР
                    КОГДА ЦеныТоваровМинимум.Цена <> ЦеныТоваровМаксимум.Цена
                        ТОГДА ЦеныТоваровМинимум.Цена
                    ИНАЧЕ 0
                КОНЕЦ
    КОНЕЦ

так что УРААА! вс етепреь все классно работает
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.