|
Параметры виртуальной таблицы | ☑ | ||
---|---|---|---|---|
0
NikolayNiko
03.11.17
✎
20:28
|
Здравствуйте! Пожалуйста подскажите, как в параметрах виртуальной таблицы периодического регистра сведений установить отбор так, чтобы получать только последнюю запись по одному конкретному измерению. Всего измерений 4. Один ресурс. Ресурс не заполнен.
|
|||
1
Волшебник
модератор
03.11.17
✎
20:32
|
Вы как пробовали?
|
|||
2
NikolayNiko
03.11.17
✎
20:37
|
(1) Не знаю даже как попробовать
|
|||
3
Волшебник
модератор
03.11.17
✎
20:38
|
(2) Не стесняйтесь.
|
|||
4
Египтянин
03.11.17
✎
20:40
|
(0) надо попробовать с прочтения книжки http://www.ozon.ru/context/detail/id/138526046/?partner=epoint&partneragentid=955860_42oyurp7mw29vikgougt2b6khgqfyx0g&utm_source=epoint&utm_medium=partner&utm_campaign=955860 ну, или вон хотя бы Митичкина почитай.
|
|||
5
mistеr
03.11.17
✎
20:48
|
(0) Виртуальная таблица СрезПоследних возвращает записи сразу по всем измерениям. Если нужно только по одному, то кроме задания параметров ВТ, нужно дополнительно упорядочить по периоду (по убыванию) и взять ПЕРВЫЕ 1.
|
|||
6
Vladal
03.11.17
✎
21:34
|
(5) так уже брать и не виртуальную а обычную.
(0) озвучь задачу полностью. Может там срез последних на каждую дату, или статус договора на момент времени и т.д. И т.п. Не стесняйся, здесь как у доктора — чем четче анамнеза, тем точней диагноз. |
|||
7
Волшебник
модератор
03.11.17
✎
21:54
|
(6) Дык я сразу спросил в (1) и (3)
Чувствую себя доктором |
|||
8
Cyberhawk
03.11.17
✎
23:05
|
"установить отбор так, чтобы получать только последнюю запись по одному конкретному измерению" // Покажи несколько последних записей таблицы и что должно быть на выходе
|
|||
9
Sasha_H
03.11.17
✎
23:47
|
(0) зачем упорядычивать по периода когда ты используешь СрезПоследних?
|
|||
10
NikolayNiko
06.11.17
✎
20:12
|
Если конкретнее, то в периодическом регистре сведений есть измерения: Организация, контрагент, договор; и одно измерение: Аннулировано. Измерение в регистре вообще не заполняется. Мне нужно получить последнюю запись по договору. Вот ломаю голову по незнанию, как же получается эта последняя запись, когда делаешь запрос с помощью конструктора. Да знаю, что надо читать и учиться или вызывать программиста, но надо сделать самому и сегодня же.
|
|||
11
NikolayNiko
06.11.17
✎
20:13
|
И один Ресурс*
|
|||
12
Мимохожий Однако
06.11.17
✎
20:41
|
(11) Табличку с примерными данными покажи
|
|||
13
NikolayNiko
06.11.17
✎
20:48
|
(12) Период Регистратор НомерСтроки Организация Контрагент Договор Аннулирвоано
|
|||
14
Мимохожий Однако
06.11.17
✎
22:52
|
Теперь покажи запрос, которым пытался получить хоть что-то
|
|||
15
NikolayNiko
06.11.17
✎
23:00
|
Ведь можно как-то просто в параметрах вирт таблицы указать измерение по которому должен идти поиск последнего. Именно не по всем измерениям, а по одному только. Как это описать, мне только это нужно. Нигде не могу найти
|
|||
16
Мимохожий Однако
06.11.17
✎
23:28
|
(15) Есть обработка "Консоль запросов". На ней потренируйся.
|
|||
17
h-sp
07.11.17
✎
00:08
|
(15) можете не искать, нет такой возможности.
|
|||
18
jsmith82
07.11.17
✎
00:42
|
Аннулировано надо делать измерением, а не ресурсом и указывать в отборе НЕ Аннулировано
|
|||
19
jsmith82
07.11.17
✎
00:43
|
Ой, чё это я, не то погнал
|
|||
20
AlvlSpb
07.11.17
✎
01:26
|
Автору надо получить последнюю запись по конкретному договору?
ВЫБРАТЬ ПЕРВЫЕ 1 // поля выбора ИЗ РегистрСведений.НашРегистр.СрезПоследних(, Договор = &Договор) КАК НашРегистрСрезПоследних УПОРЯДОЧИТЬ ПО НашРегистрСрезПоследних.Регистратор.Дата УБЫВ Или У меня послепраздничный синдром и я не понял задачи? |
|||
21
Antony8x
07.11.17
✎
03:47
|
(20) совершенно верно пишите, автор в (15) написал
|
|||
22
Рэйв
07.11.17
✎
04:44
|
(0)Для того чтобы по одному измерению срез последних дало его только одно и надо поставить в Выбрать. Сколько измерений будет выбрано - столько вариантов разреза и получишь.
|
|||
23
youalex
07.11.17
✎
05:10
|
Срез последних всегда получает все возможные комбинации измерений, и состав полей выборки (секция ВЫБРАТЬ) тут не играет.
|
|||
24
NikolayNiko
07.11.17
✎
07:15
|
(20) Нет, не по конкретному документу, а по всем. Например если есть две записи с одним договором, то взять последний. (23) То есть как сказал (17), не возможно?
|
|||
25
NikolayNiko
07.11.17
✎
07:19
|
Как тогда? Группировать по договору и брать максимальное?
|
|||
26
Мимохожий Однако
07.11.17
✎
07:42
|
(25) Тебе нужен листочек бумажки,если нет экселя. Выпиши в него табличку с данными и подумай. Пока каша в голове - программу не составишь.
|
|||
27
Salimbek
07.11.17
✎
08:44
|
(0) Надо что-то типа такого:
Выбрать Данные.* ИЗ (Выбрать Макс(Период) КАК МПериод, Договор КАК МДоговор ИЗ РегистрСведений.ТвойРегистр ГДЕ Договор=&Договор) Как Выборка ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТвойРегистр КАК Данные ПО МПериод=Данные.Период И МДоговор=Данные.Договор |
|||
28
youalex
07.11.17
✎
08:59
|
(24)
У тебя в регистре измерения Организация, контрагент, договор. Условие "Договор = &Договор" в параметрах среза фильтрует по договору, это то что тебе и нужно. Контрагент - это скорее всего справочник Контрагенты, который является владельцем спр. Договоры, т.е. Контрагент = Договор.Владелец. Остается Организация - если у тебя в регистре по выбранному договору одна организация, то будет одна строка, если две - то две строки, т.е. будут выбираться все комбинации с учетом условия Договор = &Договор. Более правильным будет указать в условиях все измерения, т.е. ВЫБРАТЬ * //какие-то поля ИЗ РегистрСведений.НашРегистр.СрезПоследних(, Договор = &Договор И Контрагент = &Контрагент И Организация = &Организация) ) В параметры запроса пихаешь Договор (он у тебя уже есть), Контрагент (Договор.Владелец) и Организацию (нужно понять откуда ее взять, если она в регистре не заполнена, то просто Справочники.Организация.ПустаяСсылка()) |
|||
29
DrZombi
гуру
07.11.17
✎
09:01
|
(10) Все и сразу, и желательно без знаний, феерично :)
|
|||
30
DrZombi
гуру
07.11.17
✎
09:03
|
(24) Последний куда, вы нарисуйте, на бумаге, что бы "мы" поняли :)
|
|||
31
DrZombi
гуру
07.11.17
✎
09:04
|
(24) Молодец, ты уже близок к решению, вскоре за СП сядешь и напишешь запрос ;)
|
|||
32
Salimbek
07.11.17
✎
09:39
|
(27) А, да, в первой выборке надо группировку по Договор
|
|||
33
NikolayNiko
07.11.17
✎
12:52
|
(27) и (28) По моему что-то не то. ГДЕ Договор=&Договор.
Если правильно понимаю будет браться только определенный договор, а мне как я уже писал нужны все. (30) Вот: Структура регистра: Период|Регистратор|Номер|Организация|Контрагент|Договор|Условия|Аннулировано Например: 01.01.16|Регистр1|Номер|Орг1|Контр1|Договор1|Усл1|Ложь 01.02.16|Регистр1|Номер|Орг1|Контр1|Договор1|Усл2|Ложь 01.02.16|Регистр1|Номер|Орг1|Контр1|Договор2|Усл3|Ложь 01.03.16|Регистр1|Номер|Орг1|Контр1|Договор2|Усл4|Ложь Из этого хочу получить: 01.02.16|Регистр1|Номер|Орг1|Контр1|Договор1|Усл2|Ложь 01.03.16|Регистр1|Номер|Орг1|Контр1|Договор2|Усл4|Ложь |
|||
34
NikolayNiko
07.11.17
✎
13:28
|
Создаю вложенный запрос. Беру два поля, Договор и период. Группирую договора по МаксПериоду. Хорошо, но как в основном запросе обратиться к полю условие если я его не выбирал во вложенном запросе. А если я его выбираю во вложенном - тогда оно попадает в группировку и результат уже не тот. Что за ... ?! Где лыжи не едут?!
|
|||
35
Михаил Козлов
07.11.17
✎
13:46
|
Если правильно понял:
- выгрузить во временную таблицу договор и МАКС(Период) из таблицы регистра; - соединить таблицу регистра с временной таблицей по договору и периоду. Поле Условие получите из таблицы регистра, если соединение по договору и периоду дает единственную запись в таблице регистра. |
|||
36
Сти
07.11.17
✎
15:03
|
(35) Будет множить записи, если на один договор с тем же самым периодом будут записи для других организаций и контрагентом.
Вообще можно сделать с помощью скореллированного запроса: ВЫБРАТЬ
|
|||
37
Сти
07.11.17
✎
15:06
|
(36) Блин, пробелы съелись. И отредактировать нельзя...
ВЫБРАТЬ
|
|||
38
Михаил Козлов
07.11.17
✎
15:16
|
(36) Конфа не озвучена, но в типовых у договора 1 владелец (Контрагент) и 1 организация.
Срез последних, мне кажется, вообще ни при чем. |
|||
39
Сти
07.11.17
✎
15:28
|
(38) Да это понятно, но каких только чудес не встречалось в дописках-переделках. И 20 измерений в регистре накопления, а ведь это больше миллиона итогов. И периодический регистр сведений с одним из измерений в виде строки ТЧ документа (видимо, чтобы номенклатуру можно было повторить в доке, что было в нем абсолютно противопоказано). И...
|
|||
40
NikolayNiko
07.11.17
✎
15:54
|
(35) Спасибо! Так и сделал. Все окей! (37) Тоже большое списибо. Конфа не типовая, но описанных сюрпризов теоретически быть не должно.
Да и вообще спасибо всем кто откликнулся! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |