Имя: Пароль:
1C
1С v8
Помогите разобраться с запросом.
,
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) да это блин, понятно...