|
Вложенный запрос к регистру сведений | ☑ | ||
---|---|---|---|---|
0
Gsoom2010
23.01.12
✎
19:36
|
Добрый вечер господа.
Своим умом осилить не выходит, нужна помощь. Есть регистр сведений, переодический по регистратору, зависимый. Имеет структуру из трёх измерений: Документ Статус ПунктНахождения // и стандартные реквизиты Регистратор Дата Разные документы (регистраторы) создают движения в этом регистре, каждое движение отражает изменение Статуса по Документу, и его Местонахождение на момент изменения. Я хочу получить список всех Документов с последним "актуальным" статусом и местонахождением на дату в запросе. Судя по тому что я читал это делается вложенными запросами, но я не понял ( Книга знаний: Срез последних на каждую дату в запросе ). Могу ошибаться и тупить. Пример строк в регистре: - Накладная № 3; Оформлена; Москва; 19.01.01 - Накладная № 3; Выехала; Москва; 20.01.01 - Накладная № 3; Прибыла; Китай; 21.01.01 - Накладная № 3; Выдана; Китай; 22.01.01 - Накладная № 4; Оформлена; Москва; 17.01.01 - Накладная № 4; Выехала; Москва; 18.01.01 - Накладная № 4; Прибыла; Китай; 19.01.01 - Накладная № 4; Выдана; Китай; 23.01.01 Вот запрос на дату 20.01.01 должен мне вернуть: - Накладная № 3; Выехала; Москва; 20.01.01 - Накладная № 4; Прибыла; Китай; 20.01.01 т.е. выбрать "актуальные" на дату в запросе строки. |
|||
1
Rie
23.01.12
✎
19:38
|
(0) СрезПоследних именно это и вернёт, если в нём указать нужную дату.
|
|||
2
Wobland
23.01.12
✎
19:39
|
а что, просто СерзПоследних на период не работает?
|
|||
3
Gsoom2010
23.01.12
✎
19:40
|
Сред последних пробовал так:
Запрос = Новый Запрос (" | ВЫБРАТЬ | Регистр.Статус, | Регистр.Регистратор, | Регистр.ПунктНахождения, | Регистр.Период | ИЗ РегистрСведений.РегистрПеремещений.СрезПоследних(&Дата,) КАК Регистр | ГДЕ | Регистр.Документ= &Накладная"); |
|||
4
Wobland
23.01.12
✎
19:41
|
(3) и что получилось?
|
|||
5
Gsoom2010
23.01.12
✎
19:42
|
Такой запрос выдаёт мне из:
- Накладная № 4; Оформлена; Москва; 17.01.01 - Накладная № 4; Выехала; Москва; 18.01.01 - Накладная № 4; Прибыла; Китай; 19.01.01 - Накладная № 4; Выдана; Китай; 23.01.01 на дату 20.01.01: - Накладная № 4; Оформлена; Москва; 17.01.01 - Накладная № 4; Выехала; Москва; 18.01.01 - Накладная № 4; Прибыла; Китай; 19.01.01 |
|||
6
Wobland
23.01.12
✎
19:42
|
(3) Документ в параметры вирт. таблицы засунь
|
|||
7
ssh2006
23.01.12
✎
19:44
|
Срез последних помог бы если бы измерением был только документ
|
|||
8
Wobland
23.01.12
✎
19:46
|
(7) кстати, да ;)
|
|||
9
Gsoom2010
23.01.12
✎
19:46
|
Как тогда сделать?
|
|||
10
Wobland
23.01.12
✎
19:47
|
кривое проектирование регистра?
|
|||
11
Wobland
23.01.12
✎
19:47
|
(9) тебе по какому статусу и пункту надо СрезПоследних?
|
|||
12
Gsoom2010
23.01.12
✎
19:49
|
Пока что я могу его перепроектировать если пойму в чём соль.
Мне нужно получать список всех документов по "атуальному" статусу на дату в запросе. И тоже самое получать с фильтром по документу или по статусу |
|||
13
Чайник Рассела
23.01.12
✎
19:49
|
можно сделать три запроса по каждому статусу и их объединить
|
|||
14
Wobland
23.01.12
✎
19:50
|
имхо статус и пункт ресурсами должны быть. регистр отражает состояние документа и только, да?
|
|||
15
Gsoom2010
23.01.12
✎
19:51
|
Да
|
|||
16
Gsoom2010
23.01.12
✎
19:51
|
Логично...
|
|||
17
Classic
23.01.12
✎
19:52
|
(15)
Других ресурсов нет? |
|||
18
Wobland
23.01.12
✎
19:52
|
(15) перепроектировывай давай ;)
|
|||
19
Чайник Рассела
23.01.12
✎
19:53
|
у меня такой регистр на 30 ресурсов
|
|||
20
Gsoom2010
23.01.12
✎
19:53
|
Ресурсов других нету.
Уникальность записей обеспечат Регистратор и измерение Документ. А Статус и ПунктНахождения сделаю ресурсами. |
|||
21
Gsoom2010
23.01.12
✎
19:54
|
Когда я это сделаю запрос мой будет правильно работать? Или что-то я всё равно не догоняю?
|
|||
22
Wobland
23.01.12
✎
19:55
|
(21) да. период забыл в (20)
|
|||
23
Wobland
23.01.12
✎
19:56
|
+(22) всё-таки (6)
|
|||
24
Gsoom2010
23.01.12
✎
19:56
|
Период как стандартный реквизит пойдёт. А как сделать (6) ?
|
|||
25
Wobland
23.01.12
✎
19:57
|
(24) кнопка есть в конструкторе. вроде второй параметр в СрезеПоследних
|
|||
26
Gsoom2010
23.01.12
✎
19:58
|
Да я конструктор не трогаю, а то ещё взорвётся
|
|||
27
Wobland
23.01.12
✎
19:59
|
(26) а ничего так штучка, упрощает ;)
|
|||
28
Gsoom2010
23.01.12
✎
20:00
|
А без него как сделать подскажите пожалуйста?
|
|||
29
Wobland
23.01.12
✎
20:02
|
(28) лично мне для этого надо как минимум запустить 1Ску - лениво. стесняешься конструктора? вторая справа кнопка на среднем "подокне"
|
|||
30
JesteR
23.01.12
✎
20:03
|
Либо:
Переделай структуру регистра, статус и пункт перенеси в ресурсы, тогда нормуль должно отработать. Либо: С помощью вложенного запроса вытаскивай максимальный период и документ, потом по нему и документу соединяй с рабочей таблицей. Как-то так.... |
|||
31
Wobland
23.01.12
✎
20:04
|
(30) да решили уже всё, читай (12)
|
|||
32
Gsoom2010
23.01.12
✎
20:07
|
Запрос по всем документам работает:
Запрос = Новый Запрос (" | ВЫБРАТЬ | Регистр.Статус, | Регистр.Регистратор, | Регистр.ПунктНахождения, | Регистр.Период | ИЗ РегистрСведений.РегистрПеремещений.СрезПоследних(&Дата,) КАК Регистр"); Сейчас проверю с фильтрацией по Документу. |
|||
33
Wobland
23.01.12
✎
20:10
|
(32) ИЗ РегистрСведений.РегистрПеремещений.СрезПоследних(&Дата, Документ=&ТвойДокумент) КАК Регистр
кстати, Документ - плохое слово. так, на всякий случай |
|||
34
Gsoom2010
23.01.12
✎
20:10
|
Всё работает, огромное спасибо.
Документом я обозвал для вас, чтобы удобнее было читать... |
|||
35
Wobland
23.01.12
✎
20:11
|
+(33) я тут реквизит у документа обзывал "ПО" (программный объект), что вы думаете? не взлетело на УниверсальнойЗагрузкеXML, т.к. запрос формировался динамически и "ПО" он просто не понял ;)
|
|||
36
Gsoom2010
23.01.12
✎
20:12
|
))))
|
|||
37
Gsoom2010
03.02.12
✎
18:20
|
Подскажите как сделать.
Запросом я получил выборку Накладных с определённым статусом. У меня есть документ "Транспортная накладная" в одно из её табличных полей я добавляю "Накладные", но во время выбора меня интересуют не все Накладные в журнале, а только те которые я получил в запросе. Как использовать результаты запроса для такой задачи? |
|||
38
n koretsky
03.02.12
✎
19:48
|
Отбор не помогает?
|
|||
39
Gsoom2010
04.02.12
✎
18:01
|
помог :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |