Имя: Пароль:
1C
1С v8
Помогите с запросом
,
0 WED
 
26.08.14
15:20
Есть запрос, его результат помещается во врем.таблицу
ВремТабл:
Номенклатура,
Остаток,
Регистратор

В таблице получаются записи типа:

Номенклатура1 Остаток1 Регистратор1
Номенклатура1 Остаток2 Регистратор2
Номенклатура1 Остаток3 Регистратор3
Номенклатура2 Остаток4 Регистратор4
Номенклатура2 Остаток5 Регистратор5
Номенклатура2 Остаток6 Регистратор6
Номенклатура3 Остаток8 Регистратор2
Номенклатура3 Остаток9 Регистратор3
Номенклатура3 Остаток10 Регистратор4
Номенклатура4 Остаток11 Регистратор3
Номенклатура4 Остаток12 Регистратор2

Нужно из этой временной таблицы получить такой резальтат:

Номенклатура1 Остаток1 Регистратор1
Номенклатура2 Остаток4 Регистратор4
Номенклатура3 Остаток8 Регистратор2
Номенклатура4 Остаток11 Регистратор3

т.е. надо взять первую строчку для каждой Номенклатура

Какой должен быть текст запроса
1 WED
 
26.08.14
15:22
+(0) (рано нажал отправить, а редактировать нельзя)

Какой должен быть текст запроса для выборки из такой таблицы для такого результата?
2 Ненавижу 1С
 
гуру
26.08.14
15:23
откуда берется таблица "Есть запрос, его результат помещается во врем.таблицу"
3 zulu_mix
 
26.08.14
15:24
если есть четкий признак упорядочивания у регистратора, то максимум(регистратор.признак)(или минимум, я ж хз как у тебя упорядочено) с группировкой по номенклатуре и джойном остатка
4 Maxus43
 
26.08.14
15:24
группируй по номенклатуре и Минимальному регистратору, потом эту табличку соедени с большой
5 WED
 
26.08.14
15:34
Вкратце о предыдущих запросах:

Есть ТаблицаЗначений: Номенклатура, Количество.

Она помещается в запрос и объединяется с оборотами из регистра накоплений, добавляя или уменьшая Количество к Остатку у каждого движения.
Результат помещается во временную таблицу из которой надо для каждой номенклатуры выбрать только одну первую записи по определенному признаку (например 10<Остаток<20)

(3) Упорядочивания нет, это выборка движений из регистра накоплений. Поэтому упорядочивать по регистратору нельзя - поздний документ мог быть проведен раньше.

(4) Нельзя выбирать по минимальному регистратору: поздний документ мог быть проведен раньше чем более созданный раньше
6 Maxus43
 
26.08.14
15:40
(5) разберись в вопросе "Первая запись", сделай нужную сортировку и делай соединениями. По периоду регистра накопления тоже не вариант? Чтобы появилось понятие Первая запись - должен быть призгак упорядочивания. Сейчас наверно как раз по периоду
7 WED
 
26.08.14
15:49
(6) Надо внимательно посмотреть на исходную таблицу и на результат приведенные в (0).

Из исходной таблицы взяты записи, которые являются первой (по порядку строк) у каждой различной номенклатуры.
Для Номенклатура1 это строка 1 исходной таблицы, для Номенклатура2 это строка 4, для Номенклатура3 это строка 7, для Номенклатура4 это строка 10. Т.е. взята каждая первая строка для каждой номенклатуры в исходной таблице.

Порядок исходной таблицы - это порядок проведения регистраторов в регистре накоплений. По нему сортировать и/или брать минимальный нельзя, потому что более поздний регистратор мог быть проведен раньше, чем другой созданный раньше
8 Maxus43
 
26.08.14
15:56
>>Порядок исходной таблицы - это порядок проведения регистраторов в регистре накоплений
Давно ли в регистре накопления записи сортируются по порядку проведения? В РН порядок - Период, другого быть не может. И сортируй по периоду РН значит (соединяй по периоду + номенклатура)
9 Fergus
 
26.08.14
15:57
исходный текст запроса в студию...
10 WED
 
26.08.14
16:03
(8) Ты прав! :)
Порядок, конечно, можно брать из Период у регистра накопления, и потом получать по минимальному периоду.

Всем спасибо! :)
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший