|
Получить максимальную цену и виды цены этой максимальной цены | ☑ | ||
---|---|---|---|---|
0
Maniac
10.08.19
✎
19:59
|
Ребя после моря) Настроение не сильно рабочее.
Короче говоря динамический список номенклатуры. Получаем максимальную цену из всех цен. Но еще нужно также вывести вид цены, соответствующий этой максимальной. МАКСИМУМ(ЦеныНоменклатуры.Цена) - тут все гуд. А Вид цены если запрашиваю то уже все равно все цены выгребаются. |
|||
1
Maniac
10.08.19
✎
20:00
|
Короче как к максимальной цене получить вид цены так чтобы она не стала группировкой. иначе все цены .
Нужна всего 1 запись. |
|||
2
МихаилМ
10.08.19
✎
20:06
|
||||
3
PuhUfa
10.08.19
✎
20:10
|
(0) а если 2 вида цены с максимальной ценой?
|
|||
4
Garykom
гуру
10.08.19
✎
20:10
|
ВЫБРАТЬ ПЕРВЫЕ 1 а перед этим отсортировать по убыванию выбранной цены
|
|||
5
Maniac
10.08.19
✎
20:11
|
Это не в тему.
Как я писал выше есть динамический список номенклатуры. к нему левым соединением цены. Максимальную получить ерунда. но нужно еще вид этой максимальной цены. Если строку с видом цены она становится группировокой. соответственно записей становится много. |
|||
6
Maniac
10.08.19
✎
20:11
|
(3) пофиг. любой из них. такого не будет
|
|||
7
Maniac
10.08.19
✎
20:12
|
(4) выбрать первые 1 это если ты пишешь запрос штучный. ЧИТАЙТЕ что я пишу. это динамический список номенклатуры с левым соединением цен.
|
|||
8
Garykom
гуру
10.08.19
✎
20:12
|
(7) Даже запросы не научился писать за столько лет?
|
|||
9
PuhUfa
10.08.19
✎
20:15
|
(6) ну сделай соединение по самой цене
|
|||
10
Garykom
гуру
10.08.19
✎
20:17
|
(9) Если для одной номенклатуры две одинаковые максимальные цены разных видов ?
|
|||
11
PuhUfa
10.08.19
✎
20:18
|
(10) тогда смотри (6)
|
|||
12
Maniac
10.08.19
✎
20:19
|
(8) ну судя по тому что от тебя как то ответа правильного нет, то и ты тоже
|
|||
13
Маленький Вопросик
10.08.19
✎
20:21
|
если я тебя правильно понял, то вот как-то так?
ВЫБРАТЬ Номенклатура.Ссылка КАК НоменклатураСсылка1 ПОМЕСТИТЬ ВТ_ГруппаНоменклатуры ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ЭтоГруппа = ЛОЖЬ И Номенклатура.ПометкаУдаления = ЛОЖЬ И Номенклатура.Родитель В ИЕРАРХИИ(&Родитель) ИНДЕКСИРОВАТЬ ПО НоменклатураСсылка1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена, ЦеныНоменклатуры.Номенклатура КАК Номенклатура, ЦеныНоменклатуры.ТипЦен КАК ТипЦен ИЗ ВТ_ГруппаНоменклатуры КАК ВТ_ГруппаНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО ВТ_ГруппаНоменклатуры.НоменклатураСсылка1 = ЦеныНоменклатуры.Номенклатура СГРУППИРОВАТЬ ПО ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.ТипЦен ИТОГИ ПО Номенклатура, ТипЦен ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВТ_ГруппаНоменклатуры |
|||
14
Маленький Вопросик
10.08.19
✎
20:26
|
вот так, наверное, ближе будет к твоим хотелкам
ВЫБРАТЬ Номенклатура.Ссылка КАК НоменклатураСсылка1 ПОМЕСТИТЬ ВТ_ГруппаНоменклатуры ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ЭтоГруппа = ЛОЖЬ И Номенклатура.ПометкаУдаления = ЛОЖЬ И Номенклатура.Родитель В ИЕРАРХИИ(&Родитель) ИНДЕКСИРОВАТЬ ПО НоменклатураСсылка1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена, ЦеныНоменклатуры.Номенклатура КАК Номенклатура, ЦеныНоменклатуры.ТипЦен КАК ТипЦен ПОМЕСТИТЬ ВТ_СТипамиЦен ИЗ ВТ_ГруппаНоменклатуры КАК ВТ_ГруппаНоменклатуры ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО ВТ_ГруппаНоменклатуры.НоменклатураСсылка1 = ЦеныНоменклатуры.Номенклатура СГРУППИРОВАТЬ ПО ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.ТипЦен ИНДЕКСИРОВАТЬ ПО Номенклатура, ТипЦен ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВТ_ГруппаНоменклатуры ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ВТ_СТипамиЦен.Цена) КАК Цена, ВТ_СТипамиЦен.Номенклатура ИЗ ВТ_СТипамиЦен КАК ВТ_СТипамиЦен СГРУППИРОВАТЬ ПО ВТ_СТипамиЦен.Номенклатура |
|||
15
Maniac
10.08.19
✎
20:27
|
Вы видимо не читаете. Динамический список.....
|
|||
16
Maniac
10.08.19
✎
20:27
|
никаких временных таблиц. тупо список формы справочника номенклатуры. где должны быть еще колонки Цена (максимальная из всех видов цен) и вид цены который соответствует этой максимальной из всех.
|
|||
17
Maniac
10.08.19
✎
20:29
|
те нужна какая то агрегатная функция на вид цены или выбор. хз что.
я помню уже когда то писал и делал что то подобное, но забыл. из головы вылетело где я это применял уже с чем то. |
|||
18
Маленький Вопросик
10.08.19
✎
20:33
|
(17) это простейший запрос "получающий максимальную цену по всем типам цен" - дальше крути сам
|
|||
19
Маленький Вопросик
10.08.19
✎
20:33
|
одну запись!
|
|||
20
Маленький Вопросик
10.08.19
✎
20:36
|
если ты делал "срезом последних" - то регистры сведений устроены так, что на каждое из условий измерений - ты получаешь срез последних - поэтому у тебя вываливается куча всего в запросе!
|
|||
21
Maniac
10.08.19
✎
20:36
|
(18) ..... все короче иди отдыхать. вы не помощники сегодня.
|
|||
22
Garykom
гуру
10.08.19
✎
20:37
|
(15) Динамический список это такая хрень куда данные попадают запросом
|
|||
23
Maniac
10.08.19
✎
20:38
|
(20) если ты ставишь максимум для получения 1 записи то все измерения урезаются. их нет.
|
|||
24
Маленький Вопросик
10.08.19
✎
20:39
|
(23) тебе запрос написали - смотри дальше сам!
|
|||
25
Maniac
10.08.19
✎
20:41
|
(24) фигню написали не в тему вообще
|
|||
26
Maniac
10.08.19
✎
20:42
|
ВЫБРАТЬ
МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена, ЦеныНоменклатуры.Номенклатура КАК Номенклатура, ЦеныНоменклатуры.ТипЦен КАК ТипЦен вот это выгребет ВСЕ ЦЕНЫ А НЕ ОДНУ максимальную |
|||
27
Maniac
10.08.19
✎
20:43
|
у тебя две группировки. значит будут получены все цены и максимальная В ПРЕДЕЛАХ ВИДА ЦЕНЫ.
а я уже час пишу что нужно получить ОДНУ МАКИСМАЛЬНУЮ из всех записей регистра по каждой номенклатуре НО отобразить вид цены к которому эта максимальная принадлежит. |
|||
28
Maniac
10.08.19
✎
20:44
|
если не понимаете то лучше вообще ничего не пишите, отдыхайте.
|
|||
29
Garykom
гуру
10.08.19
✎
20:47
|
Это ты не понимаешь.
Сделай сначала табличку Номенклатура|Макс(Цена) Затем соедини ее с табличкой Номенклатура|ТипЦены|Цена По полям Номенклатура и Цена |
|||
30
Maniac
10.08.19
✎
20:50
|
(29) НЕ ПОЛУЧИТСЯ. потому что это ДИНАМИЧЕСКИЙ СПИСОК. он ругается если несколько записей с номенклатурой в любом соединении.
Так как там стоит ссылка обязательным элементом. любое попадание нескольких записей номенклатуры сразу выдает ошибку списка. |
|||
31
Maniac
10.08.19
✎
20:53
|
(29) Все да получилось. все верно. два запроса правда к регистру цен. но сработало. пока что не ругнулось и вроде бы как верно показывает.
Буду тестировать |
|||
32
Маленький Вопросик
10.08.19
✎
20:55
|
ВЫБРАТЬ
Номенклатура.Ссылка КАК НоменклатураСсылка1 ПОМЕСТИТЬ ВТ_ГруппаНоменклатуры ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ЭтоГруппа = ЛОЖЬ И Номенклатура.ПометкаУдаления = ЛОЖЬ И Номенклатура.Родитель В ИЕРАРХИИ(&Родитель) ИНДЕКСИРОВАТЬ ПО НоменклатураСсылка1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена, ЦеныНоменклатуры.Номенклатура КАК Номенклатура, ЦеныНоменклатуры.ТипЦен КАК ТипЦен ПОМЕСТИТЬ ВТ_СТипамиЦен ИЗ ВТ_ГруппаНоменклатуры КАК ВТ_ГруппаНоменклатуры ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО ВТ_ГруппаНоменклатуры.НоменклатураСсылка1 = ЦеныНоменклатуры.Номенклатура СГРУППИРОВАТЬ ПО ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.ТипЦен ИНДЕКСИРОВАТЬ ПО Номенклатура, ТипЦен ; //////////////////////////////////////////////////////////////////////////////// УНИЧТОЖИТЬ ВТ_ГруппаНоменклатуры ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ВТ_СТипамиЦен.Цена) КАК Цена, ВТ_СТипамиЦен.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ВТ_МаксЦены ИЗ ВТ_СТипамиЦен КАК ВТ_СТипамиЦен СГРУППИРОВАТЬ ПО ВТ_СТипамиЦен.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_МаксЦены.Цена, ВТ_МаксЦены.Номенклатура, МАКСИМУМ(ЦеныНоменклатуры.ТипЦен) КАК ТипЦен ИЗ ВТ_МаксЦены КАК ВТ_МаксЦены ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ПО ВТ_МаксЦены.Цена = ЦеныНоменклатуры.Цена И ВТ_МаксЦены.Номенклатура = ЦеныНоменклатуры.Номенклатура СГРУППИРОВАТЬ ПО ВТ_МаксЦены.Цена, ВТ_МаксЦены.Номенклатура |
|||
33
Маленький Вопросик
10.08.19
✎
20:57
|
(29) ты забыл добавить ему МАКСИМУМ по типу цены, иначе у него задвоятся строки если есть 2 одинаковые цены на типы цен.
|
|||
34
Maniac
10.08.19
✎
21:02
|
все уже. сработало. как нужно.
ВЫБРАТЬ СправочникНоменклатура.Ссылка КАК Ссылка, СправочникНоменклатура.Код КАК Код, СправочникНоменклатура.Артикул КАК Артикул, СправочникНоменклатура.Наименование КАК Наименование, СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, СправочникНоменклатура.Производитель КАК Производитель, СправочникНоменклатура.Родитель КАК Родитель, ЕСТЬNULL(ЦеныНоменклатуры.Цена * КурсВалютыВидЦен.Курс * КурсВалютыДокумента.Кратность / (КурсВалютыДокумента.Курс * КурсВалютыВидЦен.Кратность), 0) КАК Цена, ЦеныНоменклатуры2.ВидЦен КАК ВидЦен ИЗ Справочник.Номенклатура КАК СправочникНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦеныНоменклатуры.Номенклатура КАК Номенклатура, МИНИМУМ(ЦеныНоменклатуры.ВидЦен) КАК ВидЦен, МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(ВидЦен = &ВидЦеныНоменклатуры)}) КАК ЦеныНоменклатуры СГРУППИРОВАТЬ ПО ЦеныНоменклатуры.Номенклатура) КАК ЦеныНоменклатуры ПО (ЦеныНоменклатуры.Номенклатура = СправочникНоменклатура.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(ВидЦен = &ВидЦеныНоменклатуры)}) КАК ЦеныНоменклатуры2 ПО (ЦеныНоменклатуры2.Номенклатура = ЦеныНоменклатуры.Номенклатура) И (ЦеныНоменклатуры2.Цена = ЦеныНоменклатуры.Цена) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(, ) КАК КурсВалютыВидЦен ПО (КурсВалютыВидЦен.Валюта = ЦеныНоменклатуры.ВидЦен.ВалютаЦены), РегистрСведений.КурсыВалют.СрезПоследних(, {(Валюта = &Валюта)}) КАК КурсВалютыДокумента ГДЕ СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ |
|||
35
Maniac
10.08.19
✎
21:03
|
опс немного там криво и лишнее есть. уберу уже у себя
|
|||
36
Maniac
10.08.19
✎
21:04
|
ВЫБРАТЬ
СправочникНоменклатура.Ссылка КАК Ссылка, СправочникНоменклатура.Код КАК Код, СправочникНоменклатура.Артикул КАК Артикул, СправочникНоменклатура.Наименование КАК Наименование, СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, СправочникНоменклатура.Производитель КАК Производитель, СправочникНоменклатура.Родитель КАК Родитель, ЕСТЬNULL(ЦеныНоменклатуры.Цена * КурсВалютыВидЦен.Курс * КурсВалютыДокумента.Кратность / (КурсВалютыДокумента.Курс * КурсВалютыВидЦен.Кратность), 0) КАК Цена, ЦеныНоменклатуры2.ВидЦен КАК ВидЦен ИЗ Справочник.Номенклатура КАК СправочникНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦеныНоменклатуры.Номенклатура КАК Номенклатура, МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(ВидЦен = &ВидЦеныНоменклатуры)}) КАК ЦеныНоменклатуры СГРУППИРОВАТЬ ПО ЦеныНоменклатуры.Номенклатура) КАК ЦеныНоменклатуры ПО (ЦеныНоменклатуры.Номенклатура = СправочникНоменклатура.Ссылка) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, {(ВидЦен = &ВидЦеныНоменклатуры)}) КАК ЦеныНоменклатуры2 ПО (ЦеныНоменклатуры2.Номенклатура = ЦеныНоменклатуры.Номенклатура) И (ЦеныНоменклатуры2.Цена = ЦеныНоменклатуры.Цена) ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(, ) КАК КурсВалютыВидЦен ПО (КурсВалютыВидЦен.Валюта = ЦеныНоменклатуры2.ВидЦен.ВалютаЦены), РегистрСведений.КурсыВалют.СрезПоследних(, {(Валюта = &Валюта)}) КАК КурсВалютыДокумента ГДЕ СправочникНоменклатура.ЭтоГруппа = ЛОЖЬ |
|||
37
Maniac
10.08.19
✎
21:05
|
как правильно сработает будет видно у клиента на базе.
|
|||
38
Маленький Вопросик
10.08.19
✎
21:14
|
твой запрос не будет отражать корректную информацию - если ты используешь срез последних - используй Дату, во-первых, иначе он возьмет самый последний срез хоть от 2100 года - если кто-то поставит туда цену....
во-вторых - что за конфигурация - РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦен - ??????????????? |
|||
39
Maniac
10.08.19
✎
21:17
|
(38) нормально все. УНФ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |