|
Срез последних возвращает несколько значений. Как получить последнее значение в запросе | ☑ | ||
---|---|---|---|---|
0
lg2marvel
11.04.19
✎
17:29
|
Добрый день, запрос:
ВЫБРАТЬ ДокументыФизическихЛиц.Серия КАК Серия, ДокументыФизическихЛиц.Номер КАК Номер, ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи ИЗ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&ДатаСреза, Физлицо = &Физлицо) КАК ДокументыФизическихЛиц Как получить текущий документ? |
|||
1
1Сергей
11.04.19
✎
17:31
|
Надо все измерения указать. В том числе и ВидДокумента
|
|||
2
lg2marvel
11.04.19
✎
17:37
|
(1) Хорошо:
ВЫБРАТЬ ДокументыФизическихЛиц.Серия КАК Серия, ДокументыФизическихЛиц.Номер КАК Номер, ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи, ДокументыФизическихЛиц.ВидДокумента КАК ВидДокумента, ДокументыФизическихЛиц.Физлицо КАК Физлицо ИЗ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&ДатаСреза, Физлицо = &Физлицо И ВидДокумента = &ВидДок) КАК ДокументыФизическихЛиц В данном случае получу я всех у кого паспорт, что делать с теми у кого вид на жительство, военный билет и прочие документы? |
|||
3
lg2marvel
11.04.19
✎
17:37
|
Брать перебирать все варианты с приоритетом, если результат есть то дальше не выполняем а берем текущее значение?
|
|||
4
lg2marvel
11.04.19
✎
17:38
|
Может можно как-то по дате добавления записи в регистр сведений отсортировать и выбрать последнее?
|
|||
5
Вафель
11.04.19
✎
17:39
|
ВЫБРАТЬ ПЕРВЫЕ 1
|
|||
6
sqr4
11.04.19
✎
17:41
|
Делаешь таблицу приоритетов
1 паспорт 2 вид на жительство 3 военный билет 4 еще чтото 5 .... грузишь ее в запрос Затем соединяешь с основной таблицей. Далее отбираешь по минимальным приоритетам по физ лицам затем еще раз соединяешь с основной таблицей. Но т.к у тебя идет отбор по физ лицу, я не пойму что ты паришься |
|||
7
Asmody
11.04.19
✎
17:42
|
А кто, позвольте спросить, ДокументыФизическихЛиц в регистр запихал?
|
|||
8
lg2marvel
11.04.19
✎
17:42
|
(7) ЗУП
|
|||
9
Вафель
11.04.19
✎
17:43
|
(7) у вас в самописке не так?
|
|||
10
lg2marvel
11.04.19
✎
17:43
|
(5) ВЫБРАТЬ ПЕРВЫЕ 1
ДокументыФизическихЛиц.Серия КАК Серия, ДокументыФизическихЛиц.Номер КАК Номер, ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи ИЗ РегистрСведений.ДокументыФизическихЛиц.срезпоследних(,Физлицо = &Физлицо) КАК ДокументыФизическихЛиц выдает первое значение ВЫБРАТЬ ПЕРВЫЕ 1 ДокументыФизическихЛиц.Серия КАК Серия, ДокументыФизическихЛиц.Номер КАК Номер, ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи ИЗ РегистрСведений.ДокументыФизическихЛиц.срезпервых(,Физлицо = &Физлицо) КАК ДокументыФизическихЛиц выдает первое значение |
|||
11
lg2marvel
11.04.19
✎
17:44
|
(9) нет штатный зуп 3.1.8.246
|
|||
12
sqr4
11.04.19
✎
17:44
|
(7) они же вроде меняются с течением времени
|
|||
13
lg2marvel
11.04.19
✎
17:45
|
(6) "Но т.к у тебя идет отбор по физ лицу, я не пойму что ты паришься"
Для каждого сотрудника выдает по 3-4 документа (у нас много иностранцев) - в итоге получаю кучу дублированных записей сотрудников в отчет |
|||
14
lg2marvel
11.04.19
✎
17:46
|
Можно как-то получить срез на дату?
|
|||
15
sqr4
11.04.19
✎
17:46
|
(10) сортируй по датевыдачи по убыванию
|
|||
16
sqr4
11.04.19
✎
17:47
|
(14) можно)
|
|||
17
lg2marvel
11.04.19
✎
17:49
|
(15) ну это как-то "неправильно" что-ли
|
|||
18
craxx
11.04.19
✎
17:50
|
(0) Вот знаете, когда ко мне приходят на собеседование программисты, первое тестовое задание, отсекающее дураков - сделать срез последних по произвольному набору реквизитов из произвольной таблицы с полем типа "Дата". Это как раз тот случай
|
|||
19
sqr4
11.04.19
✎
17:50
|
(17) сформулируй нормально, со всеми буквами, даже нелюбимыми, что нужно.
|
|||
20
lg2marvel
11.04.19
✎
17:50
|
(16) сп молчит зараза
|
|||
21
sqr4
11.04.19
✎
17:51
|
(18) я помнится на одном собеседовании так переволновался, что не сделал.
|
|||
22
sqr4
11.04.19
✎
17:52
|
(18) Причем помнил, что будучи стажером на первом рабочем месте, я решал эту задачу и когда не мог решить, помнил что решал, но совладать с собой не смог.
|
|||
23
lg2marvel
11.04.19
✎
17:53
|
(18) и как быть? сортировать по датевыдачи и выбирать ПЕРВЫЕ 1?
|
|||
24
banco
11.04.19
✎
17:54
|
Объясните, что конкретно то хотите получить?
|
|||
25
lg2marvel
11.04.19
✎
17:54
|
ВЫБРАТЬ ПЕРВЫЕ 1
ДокументыФизическихЛиц.Серия КАК Серия, ДокументыФизическихЛиц.Номер КАК Номер, ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи ИЗ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(, Физлицо = &Физлицо) КАК ДокументыФизическихЛиц УПОРЯДОЧИТЬ ПО ДатаВыдачи УБЫВ |
|||
26
sqr4
11.04.19
✎
17:55
|
делай как в (6)
|
|||
27
lg2marvel
11.04.19
✎
17:56
|
(24) (19) Хочу получить по сотруднику текущие серию, номер и дату выдачи документа. Данные хранятся в периодическом регистре сведений ДокументыФизическихЛиц
|
|||
28
lg2marvel
11.04.19
✎
17:57
|
(26) если по другому никак, придется
|
|||
29
banco
11.04.19
✎
17:58
|
(27) какого документа? у физ лица может быть несколько документов, вот вам и программа выдает все последние документы физ лица
|
|||
30
lg2marvel
11.04.19
✎
17:59
|
(29) хочется конкретно из последнего добавленного
|
|||
31
sqr4
11.04.19
✎
17:59
|
Перечисли хотябы что там измерения, а что ресурсы, я честно говоря не помню
|
|||
32
lg2marvel
11.04.19
✎
18:03
|
(31) Измерения Сотрудник и ВидДокумента, остальное ресурсы
|
|||
33
hhhh
11.04.19
✎
18:34
|
(32) ну тогда только как в (6) других вариантов нет
|
|||
34
singlych
11.04.19
✎
18:41
|
Вы все еще получаете данные из регистров?
Тогда мы идем к вам. |
|||
35
lg2marvel
11.04.19
✎
18:53
|
(33) понял, спасибо
|
|||
36
ЧессМастер
11.04.19
✎
20:03
|
(18) "сделать срез последних по произвольному набору реквизитов из произвольной таблицы с полем типа "Дата"
Какая то задача странная. Причем тут дата. Берем запрос ВЫБРАТЬ ДокументыФизическихЛиц.Серия КАК Серия, ДокументыФизическихЛиц.Номер КАК Номер, ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи ИЗ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(&ДатаСреза, Физлицо = &Физлицо) КАК ДокументыФизическихЛиц Что подставили в &ДатаСреза (на какую дату срез) то и получили в Серия, Номер, ДатаВыдачи. Как эту задачу можно неправильно решить ? |
|||
37
Фрэнки
11.04.19
✎
20:14
|
ну как... Если у регистра несколько измерений, но та срезе будет несколько записей, отличающиеся друг от друга значениями в полях измерений. Это без оглядки на конкретный регистр, а чисто в теории.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |