Имя: Пароль:
1C
1С v8
Предыдущая запись в регистре сведений. запрос.
0 prtx
 
10.06.15
18:53
Уважаемы форумчане. В запросах я не очень силен.

Ситуация такая.

Есть периадический регистр сведения "Прайсы", туда мы загружаем прайсы поставщиков.

И нужно в запросе отобрать только новые позиции.

Например:

В первом прайсе у нас были только яблоки и груши. А во втором яблоки, груши, сливы.

Так вот мне нужно получить сливы. При этом во всех пред-предыдущих прайсах сливы могут быть. Т.е. получаем новые позиции только по сравнению с предыдущим прайсом.

Чет ни как не могу сообразить как?
Зараннее всем спасибо.
1 Casey1984
 
10.06.15
18:56
А в свойствах виртуальной таблицы регистра сведений СрезПоследних разве отбор по сливам не спасает?
2 mehfk
 
10.06.15
18:59
(0) Написать свой СрезПредПоследних, сделать внутренне соединение со срезомпоследних по номенклатура и ценникпоследних <> ценникпредпоследних
3 Casey1984
 
10.06.15
19:01
(2) Мне кажется не нужны ему предпоследние, у него просто во второй записи нету слив а есть в первой. Регистр периодический и отбор в свойствах виртуальной таблицы может помочь.
4 mehfk
 
10.06.15
19:01
прочитал еще раз (0) не внутреннее, а правое
5 Casey1984
 
10.06.15
19:02
Последнюю цену слив надо получить, так?
6 mehfk
 
10.06.15
19:02
вангую у (0) скорее всего печать списка ценников/этикеток по новым или отличающимся по цене позициям.
7 Casey1984
 
10.06.15
19:04
Молчание... наверное слив наелся) Они слабят)
8 Drac0
 
10.06.15
19:28
(0) тебе надо не регистр дергать, а сам последний прайс. Нужную тебе инфу не получить из регистра.
9 prtx
 
10.06.15
19:53
(1) Нет оно все равно мне достает все записи.
10 Casey1984
 
10.06.15
19:54
(9) кинь уж запрос сюда на всякий случай)
11 prtx
 
10.06.15
19:55
(5) (6) Не не угадали. Нужно сделать для человека который делает заказ, что бы он мог посмотреть что новеньго появилось а не перелапачивать весь последний прайс, ибо там может быть и 1000 и 6000 позиций.
12 prtx
 
10.06.15
20:01
(10) вот запрос. ну это пока фигня а не запрос.

"ВЫБРАТЬ
|    ПрайсыПоставщиковСрезПоследних.Код,
|    ПоставляемаяНоменклатура.Номенклатура
|ИЗ
|    РегистрСведений.ПрайсыПоставщиков.СрезПоследних КАК ПрайсыПоставщиковСрезПоследних
|        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПоставляемаяНоменклатура КАК ПоставляемаяНоменклатура
|        ПО ПрайсыПоставщиковСрезПоследних.Код = ПоставляемаяНоменклатура.Код"

Нужно из ПрайсыПоставщиков получить новые(те которых не было именно в предыдущем прайсе от этого поставщика) записи.
Регистр ПоставляемаяНоменклатура - это регистр в которм храниться связка номенклатуры по коду этойсамой номенклатуры у поставщика, это для удобства и для болешего гемороя.. т.е. у нас написано Огурец а у поставщика Агурец, но мы друг друга понимали, ну не суть...
13 Casey1984
 
10.06.15
20:09
Да тут, mehfk в правильном направлении указал походу.
14 prtx
 
10.06.15
21:04
(13) (2)

Вот что у меня получилось, но теперь вообще ничего не выбирает.

Поскажите, я наверное не правильно понял..

"ВЫБРАТЬ
                   |    ПрайсыПоставщиковСрезПоследних.Код,
                   |    ПоставляемаяНоменклатура.Номенклатура
                   |ИЗ
                   |    РегистрСведений.ПрайсыПоставщиков.СрезПоследних КАК ПрайсыПоставщиковСрезПоследних
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПоставляемаяНоменклатура КАК ПоставляемаяНоменклатура
                   |        ПО ПрайсыПоставщиковСрезПоследних.Код = ПоставляемаяНоменклатура.Код
                   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   |            ПрайсыПоставщиковСрезПервых.Код КАК Код,
                   |            ПрайсыПоставщиковСрезПервых.Регистратор КАК Регистратор,
                   |            ПрайсыПоставщиковСрезПервых.Период КАК Период
                   |        ИЗ
                   |            РегистрСведений.ПрайсыПоставщиков.СрезПервых КАК ПрайсыПоставщиковСрезПервых) КАК ВложенныйЗапрос
                   |        ПО (ПрайсыПоставщиковСрезПоследних.Код <> ВложенныйЗапрос.Код)
                   |            И ВложенныйЗапрос.Период < ПрайсыПоставщиковСрезПоследних.Период
                   |ГДЕ
                   |    ПрайсыПоставщиковСрезПоследних.Код ЕСТЬ NULL "
15 prtx
 
10.06.15
21:22
Ну не ужели ни у кого никогда нистояла задача сравнить в запросе записи с предыдущей ?
16 Drac0
 
10.06.15
22:45
(15) если я твою задачу понял правильно, то все-таки смотри (8) .

Тогда задача банальна: находишь прошлый документ прайс, к табличной части нового присоединяешь табличную часть этого последнего и фильтруешь по тем, где товар из старой таблицы ЕСТЬ NULL.
17 prtx
 
11.06.15
08:39
(16) спасибо. ну впринципи я понял суть, но как мне обратиться и найти предыдущий документ?
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.