|
Цена последней продажи | ☑ | ||
---|---|---|---|---|
0
Александр43
06.08.19
✎
12:52
|
Необходимо получить цену последней продажи номенклатуры по контрагенту. Подскажите как можно сделать
|
|||
1
catena
06.08.19
✎
12:56
|
Открыть список реализаций, отфильтровать по контрагенту, заглянуть в последний документ
|
|||
2
Александр43
06.08.19
✎
13:01
|
(1) Нужно из регистра ПродажиОбороты, запросом как-то это достать
|
|||
3
МихаилМ
06.08.19
✎
13:02
|
это вопрос на проф пригодность. кто не знает , тому не место в профессии.
|
|||
4
K1RSAN
06.08.19
✎
13:02
|
(2) Выбрать 1 и отсортировать по дате регистратора от самых последних?
|
|||
5
catena
06.08.19
✎
13:02
|
(2)Сколько новых вводных и все не в первом сообщении.
Что делали, что не получилось? |
|||
6
K1RSAN
06.08.19
✎
13:03
|
(4)+ это если одной конкретной для обработки. Но а так чем "срез последних" не нравится?
|
|||
7
Александр43
06.08.19
✎
13:04
|
(6) Там цена номенклатуры будет последняя. А надо именно цену продажи
|
|||
8
catena
06.08.19
✎
13:06
|
(6)продажиОБОРОТЫ - и срез последних?
|
|||
9
Maniac
06.08.19
✎
13:07
|
100 рублей заплатишь?
|
|||
10
piter3
06.08.19
✎
13:08
|
(6) Нет.цены там не причем скорее всего,вообще от балды могут поставить в этом зупе
|
|||
11
Александр43
06.08.19
✎
13:11
|
[CODE]ВЫБРАТЬ
ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот КАК Цена, ПродажиОбороты.Регистратор.Дата КАК РегистраторДата ИЗ РегистрНакопления.Продажи.Обороты(, , Регистратор, Контрагент = &Контрагент) КАК ПродажиОбороты УПОРЯДОЧИТЬ ПО РегистраторДата УБЫВ ИТОГИ ПО РегистраторДата[/CODE] Я могу так примерно получить последние значения, а как их дальше взять отсюда именно последние |
|||
12
Maniac
06.08.19
✎
13:11
|
Если по реализациям то
"ВЫБРАТЬ ПЕРВЫЕ 1 | РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата, | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, | РеализацияТоваровУслугТовары.Характеристика КАК Характеристика, | МАКСИМУМ(РеализацияТоваровУслугТовары.Цена) КАК Цена |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Партнер = &Партнер | И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА | |СГРУППИРОВАТЬ ПО | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Характеристика, | РеализацияТоваровУслугТовары.Ссылка.Дата | |УПОРЯДОЧИТЬ ПО | Дата УБЫВ" |
|||
13
Maniac
06.08.19
✎
13:12
|
(11)
ВЫБРАТЬ ПЕРВЫЕ 1 |
|||
14
Maniac
06.08.19
✎
13:12
|
а стоп. по всем товарам?
|
|||
15
Александр43
06.08.19
✎
13:13
|
(13) даааа, для каждого товара своя цена. А так я тоже делал и он получается будет брать 1 последнюю цену с любого товара
|
|||
16
Maniac
06.08.19
✎
13:13
|
понятно. если по всем товарам тогда ВЫБРАТЬ ПЕРВЫЕ 1 не подходит.
тогда МАКСИМУМ(Дата) |
|||
17
Maniac
06.08.19
✎
13:14
|
по регистру максимум период
|
|||
18
Александр43
06.08.19
✎
13:20
|
(17) У меня просто есть запрос, хотелось бы туда добавить, максимум получалось что выводилась одна цена для всей номенклатуры
|
|||
19
K1RSAN
06.08.19
✎
13:32
|
(18)
Ну мне в голову сразу приходит отобрать для каждой номенклатуры последнюю дату использования, например "Выбрать |Регистр.Номенклатура, |Максимум(Регистр.Дата) |ПОМЕСТИТЬ ВТ_1 |Из |РегистрНакопления.ПродажиОбороты КАК Регистр |Сгруппировать ПО |Регистр.Номенклатура |//////////////////////////////////////// А во второй части уже отобрать цену по этим записям. Номенклатура и дата уже есть - осталось цену подкинуть. Вроде несложно, хотя уверен есть и покрасивее решения. |
|||
20
K1RSAN
06.08.19
✎
13:33
|
(19)+ Да отбор по контрагенту не учел
|
|||
21
Александр43
06.08.19
✎
13:35
|
(20) Щас попробую
|
|||
22
K1RSAN
06.08.19
✎
14:09
|
(21) Я там не заморачивался орфографии, так что голову не забудь включить)
|
|||
23
Александр43
07.08.19
✎
10:22
|
(22) Пытаюсь выудить цену последнюю, почему-то одну цену берет правильно, а другие нет
[CODE]ВЫБРАТЬ ПродажиОбороты.Номенклатура, МАКСИМУМ(ПродажиОбороты.Регистратор) КАК Регистратор, МАКСИМУМ(ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) КАК ЦенаПродажи ИЗ РегистрНакопления.Продажи.Обороты(, , Регистратор, Контрагент = &Контрагент) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура][/CODE] |
|||
24
hhhh
07.08.19
✎
10:30
|
(23) так ты берешь максимум от цены. А тебе наоборот нужно последнюю цену. Действительно, голову не включил.
|
|||
25
xxTANATORxx
07.08.19
✎
10:44
|
(12)бгг, не угадал
я такие вопросы на собеседовании задавал, сразу видно может чел с запросами работать или нет |
|||
26
piter3
07.08.19
✎
10:46
|
(23) максимум период
|
|||
27
catena
07.08.19
✎
11:11
|
(23)Перечитай (22) еще раз по буквам.
|
|||
28
sqr4
07.08.19
✎
11:13
|
(0) в одну секунду может быть сколько угодно продаж)
|
|||
29
Maniac
07.08.19
✎
11:30
|
1) Сделай запрос по номенклатуре
2) ПОтом перебором - по каждой запрос с ВЫБРАТЬ ПЕРВЫЕ 1 с даной убывания. 3) Отсеваешь номенклатуру по которой не было продаж. Получаешь то что нужно уверенно. |
|||
30
sqr4
07.08.19
✎
11:42
|
(29) Можно круче
1. Определяешь максимальную длину наименования твоей номенклатуры 2. Получаешь все наборы сочитаний букв и цифр и знаков этой длины 3. Связываешь данный набор со справочником номенклатуры дальше все как Маня описал) |
|||
31
gSha
07.08.19
✎
11:44
|
а что это за читерство такое с последней продажей ? Это ларьки третьего уровня ? Знаю когда вот цену на год утвердили и по нему торгуют.
|
|||
32
sqr4
07.08.19
✎
11:46
|
(31) учебная задача же
|
|||
33
gSha
07.08.19
✎
11:49
|
Ну раз учебная, то мне больше нравится ответ - найти глазаами и не терзать программиста ... все равно в ларьке денег на него нет.
|
|||
34
Александр43
07.08.19
✎
12:00
|
(32) Да, задача учебная) Нельзя сделать получается, чтобы он сразу выводил только с последней датой? Если делаю так, то он выводит цены к каждому документу. Было бы не плохо, если он так сразу выводил) Советую еще сделать вторую таблицу и там получать цену, а потом связать уже в итоге, но чего-то не получается.
ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура, МАКСИМУМ(ПродажиОбороты.Регистратор) КАК Регистратор, ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот КАК Цена ИЗ РегистрНакопления.Продажи.Обороты(, , Регистратор, Контрагент = &Контрагент) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура, ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот |
|||
35
catena
07.08.19
✎
12:08
|
(34)Ты на форум поболтать пришел? Или совета попросить?
Сначала отбираешь максимальную ДАТУ(максимальный регистратор не факт, что будет последний по дате) для каждой номенклатуры. Только Номенклатура и дата, у них традиционная любовь. А потом по дате и номенклатуре ищешь цену. Проблема будет, если в одну секунду было несколько цен - тут уж тебе придется решать, какая из них "последняя". |
|||
36
Maniac
07.08.19
✎
12:12
|
(29) рабочее решение. для отчета - подойдет на 146 процентов. без каких либо проблем.
Даже можно будет еще какие то данные добавлять к отчету. остатки и прочую фигню. Можно сделать любой отчет. Я такие делаю постоянно. У меня есть помощник установки цен где берутся последние цены (правда закупки). Но цены продаж тоже без проблем. Полноценный отчет. с остатками, продажами, ценами, сравнение цен. и прочее. Просто садишся и делаешь. |
|||
37
Maniac
07.08.19
✎
12:13
|
Пусть автор для начала озвучит задачу для которой это выгребается. Явно это не прсто примитивный отчет. А преследуется какая то задача и наверняка выводимых данных больше.
|
|||
38
sqr4
07.08.19
✎
12:15
|
(36) Маня ты же был моим героем, зачем запрос в цикле с выбрать 1? Надеюсь ты стебешься
|
|||
39
Александр43
07.08.19
✎
12:16
|
(37) Макет печатной формы, туда еще выводится Номенклатура, количество, цена(НДС), сумма и т.д Все выводится и работает, кроме последнего столбика Цена последней продажи
|
|||
40
Maniac
07.08.19
✎
12:16
|
(38) и что? если это разовый отчет для какой то редко используемой задачи то и циклом не грех сделать.
|
|||
41
sqr4
07.08.19
✎
12:17
|
(40) один раз не пидор.с?
|
|||
42
Maniac
07.08.19
✎
12:18
|
(39) тю......емае. тем более (29)!!! уже даже список номенклатуры известен. Там явно в доке у тебя не тысячи товаров.
Цикл сработает просто за долю секунды. |
|||
43
Maniac
07.08.19
✎
12:19
|
Функция ПолучитьПоследнююЦенуПродажи(Контрагент,Номенклатура)
тралялялял ВЫБРАТЬ ПЕРВЫЕ 1 Убыв дата. Возврат Цена; КонецФункции все |
|||
44
Kashey
07.08.19
✎
12:19
|
ВЫБРАТЬ
ПродажиОбороты.Номенклатура, МАКСИМУМ(ПродажиОбороты.Период) КАК Период ПОМЕСТИТЬ ВТ_Периоды ИЗ РегистрНакопления.Продажи.Обороты(, , Регистратор, Контрагент = &Контрагент) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Периоды.Номенклатура, ВЫБОР КОГДА Продажи.Количество <> 0 ТОГДА Продажи.Сумма / Продажи.Количество ИНАЧЕ 0 КОНЕЦ КАК Цена ИЗ ВТ_Периоды КАК ВТ_Периоды ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи ПО ВТ_Периоды.Период = Продажи.Период И ВТ_Периоды.Номенклатура = Продажи.Номенклатура |
|||
45
Maniac
07.08.19
✎
12:20
|
Я бы даже сказал что цикл нормально сработает и для 100 000 товаров.
За секунд 15 все вымахает. |
|||
46
Maniac
07.08.19
✎
12:20
|
Кидай печатную форму. за 300 рублей сделаю и мозг больше не ипи
|
|||
47
sqr4
07.08.19
✎
12:21
|
(46) Сделай мне, даже 300 рублей не жалко на запрос в цикле от Мани)
|
|||
48
Maniac
07.08.19
✎
12:22
|
Говорите конфигурации. Напишу каждому отчет Последние цены продаж.
|
|||
49
sqr4
07.08.19
✎
12:23
|
(44) мне кажется этот запрос в некоторых модификациях делается с периодичностью раз в месяц
|
|||
50
Maniac
07.08.19
✎
12:26
|
(49) у него печатная форма. заказа или реализации. те по табличной части где есть товары вывести колонку последняя цена продажи 9видимо покупателю нужна).
Вообще плевая задача. |
|||
51
sqr4
07.08.19
✎
12:31
|
(50) Нет он пришел на стажировку и ему сказали написать такой запрос
|
|||
52
Maniac
07.08.19
✎
12:31
|
по всей УТ (кроме прайс листа) везде где только цены берутся - везде получение цены и т.п. не групповым запросом а по конкретной номенклатуре. Могу просто тысячи примеров привести где в любой типовой есть циклы в которых идут функции с запросами.
Короче утал уговаривать. хоч ипи мозг. а хоч просто сделай - тут работы на 5минут. задача была бы быстрее решена чем написание этой темы. |
|||
53
Maniac
07.08.19
✎
12:33
|
ВЫБРАТЬ ПЕРВЫЕ 1 - сработает быстрее чем МАКСИМУМ.
потому что во втором случае выгрубутся вес записи и будут сравниваться. Так как в первом случае сразу будет получена конкретно 1 запись. Запрос в цикле окажется в сотню раз быстрее. |
|||
54
Maniac
07.08.19
✎
12:34
|
(51) да такие задачи и на уровне сдачи экзамена на специалиста есть. фигня.
|
|||
55
sqr4
07.08.19
✎
12:37
|
(52) ага и в заполнение по виду цен в реализации да?)
|
|||
56
Maniac
07.08.19
✎
12:40
|
(55) у него УТ10 - там везде ПолучитьЦенуНоменклатуры
|
|||
57
Maniac
07.08.19
✎
12:40
|
по всей конфигурации. все через одну функцию.
|
|||
58
sqr4
07.08.19
✎
12:56
|
Кроме как ленью разработчиков, ничем не могу это объяснить
|
|||
59
Александр43
08.08.19
✎
09:33
|
Внесу точность, делал макет внешней печатной формы для документа РеализацияТоваров. Вывод цены последней продажи наконец-то сделал с помощью 2 запросов, но получается он берет самые последние цены из самых последних регистраторов. Но тут мне сказали, что нужно чтобы он брал последние цены из тех документов, которые находятся перед тем документом, в котором я работаю. И это снова меня загнало в тупик.
Сейчас цена выводится так ВЫБРАТЬ ПродажиОбороты.Номенклатура, МАКСИМУМ(ПродажиОбороты.Регистратор) КАК Регистратор ПОМЕСТИТЬ ПоследнийДокумент ИЗ РегистрНакопления.Продажи.Обороты(, , Регистратор, Контрагент = &Контрагент) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродажиОбороты.Номенклатура, ПродажиОбороты.Регистратор, ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот КАК ЦенаПоследнейПродажи ПОМЕСТИТЬ ПоследняяЦена ИЗ ПоследнийДокумент КАК ПоследнийДокумент ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , Регистратор, Контрагент = &Контрагент) КАК ПродажиОбороты ПО ПоследнийДокумент.Номенклатура = ПродажиОбороты.Номенклатура И ПоследнийДокумент.Регистратор = ПродажиОбороты.Регистратор ; |
|||
60
НадюшаЯ
08.08.19
✎
09:37
|
(59) 1. Ваш постановщик вам всего не рассказывает, а многие тонкости лучше бы знать. А т.к множество доков можно провести в одну секунду, то задайте ему вопрос, а как определить те, которые до а какие после в рамках одной секунды)
2. Поставьте параметр КонецПериода, для регистра накопления |
|||
61
Натуральный Йог
08.08.19
✎
10:04
|
(7) В чём разница?
|
|||
62
Александр43
08.08.19
✎
14:14
|
(60) Можно показать, как это сделать? С периодами еще не приходилось сталкиваться т.к. еще учусь всему. А то у меня что-то не особо получается
|
|||
63
НадюшаЯ
08.08.19
✎
14:19
|
ВЫБРАТЬ
ПродажиОбороты.Номенклатура, МАКСИМУМ(ПродажиОбороты.Регистратор) КАК Регистратор ПОМЕСТИТЬ ПоследнийДокумент ИЗ РегистрНакопления.Продажи.Обороты(, &ЭтоОтЛениАНеОтНезнания, Регистратор, Контрагент = &Контрагент) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПродажиОбороты.Номенклатура, ПродажиОбороты.Регистратор, ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот КАК ЦенаПоследнейПродажи ПОМЕСТИТЬ ПоследняяЦена ИЗ ПоследнийДокумент КАК ПоследнийДокумент ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, &ЭтоОтЛениАНеОтНезнания, Регистратор, Контрагент = &Контрагент) КАК ПродажиОбороты ПО ПоследнийДокумент.Номенклатура = ПродажиОбороты.Номенклатура И ПоследнийДокумент.Регистратор = ПродажиОбороты.Регистратор ; |
|||
64
Александр43
08.08.19
✎
14:21
|
(63) Я так и делал, но он выводит по прежнему те документы последние
|
|||
65
НадюшаЯ
08.08.19
✎
15:13
|
(64) не люблю врунов.
|
|||
66
Александр43
08.08.19
✎
17:05
|
(65) Если в этом месяце продажи будут первый раз по этому товару, то он не будет брать из прошлого месяца цену. Хотя бы охват в полгода нужно сделать.
Делаю так (&КонецПериода, ДОБАВИТЬКДАТЕ(&НачалоПериода, МЕСЯЦ, -6), , Контрагент = &Контрагент) Но тогда он не выводит. |
|||
67
НадюшаЯ
08.08.19
✎
17:14
|
(66) т.е у меня также сделано да как у тебя. А самому додуматься, что в конец периода не надо включать секунду которой создан документ не получилось да?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |