|
Запрос с выводом минимальной и максимальной цены 🠗 (Волшебник 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 КОНЕЦ КОНЕЦ так что УРААА! вс етепреь все классно работает |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |