|
Помогите разобраться с запросом. | ☑ | ||
---|---|---|---|---|
0
ZUM
07.12.11
✎
12:18
|
Есть список номенклатуры, необходимо для каждого элемента выбрать самую раннюю партию.
Исходные данные: Список номенклатуры Регистр Накопления партии товаров, есть ресурс ДокументОприходования (партия) Подскажите как это можно сделать одним запросом? |
|||
1
Cube
07.12.11
✎
12:21
|
Делаешь в запросе внутренний запрос, в котором получаешь для каждой номенклатуры самую меньшую дату, потом во внешнем запросе ищешь по этой дате документ. Будет работать, если нет документов с одинаковой датой, а если есть, то придется ещё подумать.
|
|||
2
GROOVY
07.12.11
✎
12:22
|
(1) Даже с одинаковой датой можно через группировку с функцией МИНИМУМ выбрать данные по моменту времени.
|
|||
3
ZUM
07.12.11
✎
12:31
|
(2) Момент времени не идет в группировку :(
|
|||
4
Абыр
07.12.11
✎
12:32
|
(2) Хм.
Кстати, МИНИМУМ(ПартииТоваров.ДокументОприходования) КАК ДокументОприходования каким образом отработает при полном совпадении дат документов оприходования? Учтет момент времени? |
|||
5
Kashemir
07.12.11
✎
12:34
|
(4) Нет. Дата не будет учитываться.
+(2) Пример на тему ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, МИНИМУМ(ТоварыНаСкладахОбороты.Регистратор) КАК Регистратор ИЗ (ВЫБРАТЬ ТоварыНаСкладахОбороты.Номенклатура КАК Номенклатура, МИНИМУМ(ТоварыНаСкладахОбороты.Регистратор.Дата) КАК РегистраторДата ИЗ РегистрНакопления.ТоварыНаСкладах.Обороты(, , Регистратор, ) КАК ТоварыНаСкладахОбороты СГРУППИРОВАТЬ ПО ТоварыНаСкладахОбороты.Номенклатура) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Обороты(, , Регистратор, ) КАК ТоварыНаСкладахОбороты ПО ВложенныйЗапрос.Номенклатура = ТоварыНаСкладахОбороты.Номенклатура И ВложенныйЗапрос.РегистраторДата = ТоварыНаСкладахОбороты.Регистратор.Дата СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Номенклатура |
|||
6
Kashemir
07.12.11
✎
12:41
|
+(5) к (4) СП: Правила сравнения значений
.... Отношения между различными ссылочными типами определяются на основе внутренних ссылочных номеров таблиц, соответствующих тому или иному типу. ... Если типы данных совпадают, то производится сравнение значений по следующим правилам: .... ссылочные типы сравниваются на основе своих значений (номера записи и т. п.); |
|||
7
ZUM
07.12.11
✎
12:49
|
Интересно а почему Момент времени не идет МИНИМУМ(МоментВремени)
|
|||
8
Kashemir
07.12.11
✎
12:53
|
(7) Откуда взяться моменту времени в чистом виде в запросах ?
|
|||
9
Buster007
07.12.11
✎
12:57
|
да можно еще по номеру отсортировать на дату)
|
|||
10
Buster007
07.12.11
✎
12:58
|
+(9) получили минимальную дату, получили минимальный номер в этой дате и взяли то, что нам нужно
|
|||
11
Kashemir
07.12.11
✎
12:59
|
(9) Ерунда. Номера никакого отношения к "моменту времени" не имеют и могут повторятся для разных видов документов.
|
|||
12
Абыр
07.12.11
✎
13:01
|
(5) точно. это ж момент времени у нас дата + ссылка. тут и получается сначала минимум даты, а потом в рамках минимума даты выбираем минимум по ссылке.
|
|||
13
Абыр
07.12.11
✎
13:02
|
и все как всегда потому, что в одной секунде документов уйма может быть))
|
|||
14
Escander
07.12.11
✎
13:07
|
Если проводилось не оперативно, ошибочка с ссылкой может получиться... внутрунний номер введённого позднее будет больше, неважно что при неоперативном его приход мог оказаться ранее.
|
|||
15
Kashemir
07.12.11
✎
13:18
|
(14) А ты думаешь как сейчас платформа позицию определяет ?
|
|||
16
Escander
07.12.11
✎
13:25
|
(15)2.14 - пока не разбирался
|
|||
17
Kashemir
07.12.11
✎
13:27
|
(16) Так я как бы намекаю, что именно так и работает платформа. И всякие "восстановления последовательности" и решают эту проблему
|
|||
18
Escander
07.12.11
✎
13:39
|
(17) как-бы последовательность самостоятельный объект и у него свой список кто за кем в очереди.
|
|||
19
Kashemir
07.12.11
✎
13:40
|
(18) Последовательность работает с моментами времени, которые все также определяются как дата+ссылка.
|
|||
20
Escander
07.12.11
✎
13:59
|
(19) дата+ссылка - только в рамках 1 документа.
|
|||
21
Kashemir
07.12.11
✎
14:03
|
(20) Дата+ссылка в пределах любых типов. Ссылка для 1С = Тип+ИД. Согласно (5) сначала будут упорядочены типы и уже в пределах типов - ссылки. Таким образом документы одного типа в пределах одной секунды всегда будут стоять на позиции выше (ниже) чем у другого типа.
|
|||
22
Kashemir
07.12.11
✎
14:04
|
+(21) Т.е. *согласно (6)
|
|||
23
Escander
07.12.11
✎
14:16
|
(21) ну так и какой тогда момент времени, если сначала в пределах 1 секунды прошёл приход по документу "Возврат из переработки" и в ту-же секунду но после прошёл приход из "Поступление", а сортировка по типу ставит "Поступление" перед "Возвратом из переработки"!
|
|||
24
Kashemir
07.12.11
✎
14:18
|
(23) ПН будет стоять перед Возвратом. Селяви. Чего спорить - возьми проверь
|
|||
25
Escander
07.12.11
✎
14:40
|
(24) вот именно и пофиг что по факту в другом порядке было...
|
|||
26
Kashemir
07.12.11
✎
14:44
|
(25) Увы ...это то "малое зло", на которое пришлось пойти разработчикам.
|
|||
27
Escander
07.12.11
✎
17:31
|
(26) да это блин, понятно...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |