|
Срез последних не так работает или что-то подзабыл | ☑ | ||
---|---|---|---|---|
0
ig0z
19.11.20
✎
16:09
|
ВЫБРАТЬ
ЗакупкиСоглосованиеДатыПоступленияСрезПоследних.Номенклатура, ЗакупкиСоглосованиеДатыПоступленияСрезПоследних.ПроизводственныйЗаказ, ЗакупкиСоглосованиеДатыПоступленияСрезПоследних.ДатаСоглосования ИЗ РегистрСведений.ЗакупкиСоглосованиеДатыПоступления.СрезПоследних( , Номенклатура = &Номенклатура И ПроизводственныйЗаказ = &ПроизводственныйЗаказ) КАК ЗакупкиСоглосованиеДатыПоступленияСрезПоследних Измерения: ПроизводственныйЗаказ = &ПроизводственныйЗаказ И Номенклатура = &Номенклатура Ресурс: ЗакупкиСоглосованиеДатыПоступленияСрезПоследних.ДатаСоглосования НО почему он возвращает 5 строк с одинаковыми ПроизводственныйЗаказ и Номенклатура? и 5 разных ДатаСоглосования |
|||
1
PR
19.11.20
✎
16:10
|
(0) Потому что нечего было ДатаСоглосования в измерения пихать
|
|||
2
ig0z
19.11.20
✎
16:16
|
(1) бляя специлально написал
Ресурс: ЗакупкиСоглосованиеДатыПоступленияСрезПоследних.ДатаСоглосования |
|||
3
ig0z
19.11.20
✎
16:17
|
обновлял отдельно итоги
|
|||
4
Волшебник
19.11.20
✎
16:18
|
пишется "ДатаСогласования"
|
|||
5
mkalimulin
19.11.20
✎
16:18
|
(0) Id номенклатуры и заказов посмотри
|
|||
6
sikuda
19.11.20
✎
16:19
|
"ДатаСогласования" <> Период
|
|||
7
ig0z
19.11.20
✎
16:19
|
(5) одинаково
|
|||
8
mkalimulin
19.11.20
✎
16:19
|
(4) Может это дата внесения в глоссарий
|
|||
9
RomanYS
19.11.20
✎
16:19
|
(0) Значит есть ещё измерения, которые ты в запросе не выбираешь
|
|||
10
ig0z
19.11.20
✎
16:19
|
(6) период
|
|||
11
CHerypga
19.11.20
✎
16:20
|
измерений больше чем два, не иначе
|
|||
12
ig0z
19.11.20
✎
16:20
|
(9) блин ты когда итоги из регистра итогового берёшь дубли строк получаешь или суммированные данные?
|
|||
13
ig0z
19.11.20
✎
16:21
|
(11) 7
|
|||
14
mkalimulin
19.11.20
✎
16:21
|
(0) Период включи в запрос
|
|||
15
mkalimulin
19.11.20
✎
16:22
|
(13) Семь измерений? И чего ты нам голову морочишь тогда?
|
|||
16
CHerypga
19.11.20
✎
16:22
|
(12) не в случае со срезом последних, тут если есть еще измерения, то надо агрегатную функцию
|
|||
17
RomanYS
19.11.20
✎
16:22
|
(12) Это не регистр накопления. Срез всегда возвращает все записи среза, свёртки нет и быть не должно.
|
|||
18
mkalimulin
19.11.20
✎
16:23
|
(12) Регистр сведений - не регистр, а справочник с составным уникальным кодом.
|
|||
19
ig0z
19.11.20
✎
16:25
|
когда курс валют получаем по срезу последних получаем измерение с отбором по валюте и сам курс последний, все же строки не показаны
|
|||
20
CHerypga
19.11.20
✎
16:25
|
(4) всё правильно, проверочное словосочетание "голое сование" в котором нет ни одной "а"
|
|||
21
CHerypga
19.11.20
✎
16:26
|
(19) там измерение одно
|
|||
22
Волшебник
19.11.20
✎
16:26
|
(18) Регистр сведений - не справочник, а регистр. Ключ регистра сведений похож на ссылку на элемент справочника.
Для регистров сведений ключом является комбинация всех измерений + регистратор (если подчинён) + период (если периодический) |
|||
23
ig0z
19.11.20
✎
16:26
|
(18) сдела составной отбор, где единичный результат
|
|||
24
mkalimulin
19.11.20
✎
16:26
|
(19) А там других измерений нет.
|
|||
25
ДенисЧ
19.11.20
✎
16:26
|
(19) В курсах валют сколько у тебя измерений?
(21) не подсказывай... |
|||
26
ig0z
19.11.20
✎
16:27
|
блин, всё дошло, сорян
|
|||
27
ig0z
19.11.20
✎
16:28
|
перепутал с регистром итогов
|
|||
28
Волшебник
19.11.20
✎
16:29
|
(27) регистров итогов не бывает
|
|||
29
ig0z
19.11.20
✎
16:31
|
ладно уговорил перепутал с регистром накопления или бухгалтерии с видом регистра "Остатки"
|
|||
30
CHerypga
19.11.20
✎
16:32
|
(27) Я на собеседованиях задаю вопрос о том как из регистра накопления Закупки получить срез последних закупочных цен по контрагентам. Вот там то народ жёстко начинает путаться. Привыкли все к виртуальным таблицам и что за них адинэска сама думает
|
|||
31
PR
19.11.20
✎
16:47
|
(13) LOL
|
|||
32
Kassern
19.11.20
✎
16:58
|
(30) Что то типа такого?
ВЫБРАТЬ Закупки.Контрагент КАК Контрагент, МАКСИМУМ(Закупки.Период) КАК Период, Закупки.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры ПОМЕСТИТЬ ЗакупкиНаДату ИЗ РегистрНакопления.Закупки КАК Закупки ГДЕ Закупки.Период <= &Дата И Закупки.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО Закупки.Контрагент, Закупки.АналитикаУчетаНоменклатуры ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗакупкиНаДату.Контрагент КАК Контрагент, ЗакупкиНаДату.Период КАК Период, ВЫРАЗИТЬ(Закупки.Сумма / Закупки.Количество КАК ЧИСЛО(10, 2)) КАК ЦенаЗакупа, ЗакупкиНаДату.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура ИЗ ЗакупкиНаДату КАК ЗакупкиНаДату ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Закупки КАК Закупки ПО ЗакупкиНаДату.Период = Закупки.Период И ЗакупкиНаДату.Контрагент = Закупки.Контрагент И ЗакупкиНаДату.АналитикаУчетаНоменклатуры = Закупки.АналитикаУчетаНоменклатуры ГДЕ Закупки.Количество > 0 |
|||
33
PR
19.11.20
✎
17:07
|
(32) Неа
Че делать, если в одну секунду попало 100 записей? |
|||
34
dka80
19.11.20
✎
17:09
|
(33) момент времени. Но это неправильно. Обычно, последняя цена прихода определяется с точностью до дня. В противном случае, будет зависеть от порядка ввода документов
|
|||
35
PR
19.11.20
✎
17:12
|
(34) Спасибо, Кэп
Это, кстати, как раз правильно, потому что момент времени — это как раз и есть дата + регистратор |
|||
36
PR
19.11.20
✎
17:14
|
+(35) Только так просто взять и прикрутить момент времени не получится, потому что максимум от момента времени не учитывает дату
То есть запрос будет сложнее, чем в (32) |
|||
37
PR
19.11.20
✎
17:16
|
+(36) Неправильно выразился, ща заклюют
Момент времени — это регистратор, который уточняет секунду, но по моменту времени упорядочивание работает только в пределах секунды, поэтому максимум надо брать сначала по дате, а потом уже по моменту времени |
|||
38
Kassern
19.11.20
✎
17:17
|
(36) я конечно все понимаю, могут быть разные извращение в базах...Но в реальных условиях, никто не заведет 100500 документов одной датой по одному контрагенту с одинаковой аналитикой товара... Даже если такое произойдет да еще и по разной цене, результатом запроса будет 2 строчки с разной ценой за одну дату.
|
|||
39
PR
19.11.20
✎
17:23
|
(38) Да я согласен, можно вообще не делать всякие эти срезы, ну будет просто куча строк везде вместо одной, подумаешь
Не случалось у тебя, я смотрю, разговоров типа "А почему ваш отчет по оценке склада в последних закупочных ценах показывает какую-то хрень, типа у нас на складе на полтора миллиарда ТМЦ, хотя их там на 600 миллионов максимум?", когда в глазах вопрошающего явно читается непроизнесенное "А можно ли вообще доверять тебе и твоему коду, обезьяна криворукая?" |
|||
40
PR
19.11.20
✎
17:25
|
(38) Основная проблема даже не та, что будет две разные цены и непонятно, какую брать, а та, что строк будет две, то есть они задвоят ту таблицу, с которой будут соединяньться
|
|||
41
Волшебник
19.11.20
✎
17:27
|
(40) Да, есть такое...
|
|||
42
dka80
19.11.20
✎
17:28
|
так себе проблема. Добавь РАЗЛИЧНЫЕ. И код в (32) написан на коленке в курилке, а не для боевого решения
|
|||
43
Kassern
19.11.20
✎
17:32
|
(40) А кто-то сказал что дальше этот запрос будет соединяться с другими таблицами? Или была цель вывести единую цену, даже при условии что были две цены на эту дату? Задача была поставлена проще. Получить срез последних цен по контрагентам. Я прекрасно понимаю что в этом запросе при определенных условиях может быть несколько строк с ценой на один товар. И использовать его для дальнейших вычислений итоговых полей я бы не стал. Задал бы наводящий вопрос, какая цена нужна заказчику, если например в 2х документах поступления по одному поставщику с одинаковым товаром на одну дату указана разная цена (в 99,9% это косяк тех кто заводил). А уже потом принимал решение.
|
|||
44
PR
19.11.20
✎
17:34
|
(42) Различные ничего не решит, если цены разные
Я и не писал про (32), что сдохни в мучениях, я всего-лишь сказал, что нифига, в таком виде не сработает |
|||
45
PR
19.11.20
✎
17:37
|
(43) Прелестно
То есть тебе поставили цель получить срез последних, ты ее не выполнил, но почти достиг, поэтому говоришь, что в принципе норм, и так сойдет? — Какой сегодня курс доллара? — 65 рублей за доллар — Спасибо, пойду оформлю реализацию контрагенту на акулиард бабла — Э, подожди, тебе точный что ли нужен, я думал просто посмеяться |
|||
46
Cthulhu
19.11.20
✎
17:44
|
а сделать временные таблицы с вычисляемым полем, в которое загнать по каждому регистратору момент времени в виде ГГГГММДДччммсс{GIIDрегистратора} - и уже его вместо периода в использовать - в типа 32 но уже эти врем.табы вязать?..
|
|||
47
PR
19.11.20
✎
17:47
|
(46) Капец
Все проще Выбирается времянка с максимальными датами Выбирается времянка с максимальными моментами времени, соединенная с времянкой с максимальными датами Выбирается основная выборка, соединенная с времянкой с максимальными моментами времени |
|||
48
PR
19.11.20
✎
17:48
|
(46) А сортировка по текстовому виду ГУИДа вообще даст нужный порядок?
|
|||
49
Cthulhu
19.11.20
✎
18:00
|
(47): это не "все проще" imho.
(48): да. ( причем, даже если "нет" - это полтора пинка преобразования к числу) |
|||
50
Cthulhu
19.11.20
✎
18:01
|
(48): оно с пределах секунды по гуид как раз во всех выборках в пределах секунды и сортируется. ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |