Имя: Пароль:
1C
1С v8
Запросом получить предпоследний документ
0 bfss-732
 
07.06.21
13:48
Привет!
Как запросом получить предпоследний документ?
1 youalex
 
07.06.21
13:55
Выбрать top 1 из top 2 (Как вариант)
2 bfss-732
 
07.06.21
14:14
(1) есть пример?
3 fisher
 
07.06.21
14:23
Есть вот такой элегантный рецепт отбора произвольного количества последних. Вроде рабочий должен быть. Дальше сверху или так же или классической эмуляцией среза последних/первых.
ВЫБРАТЬ
ИЗ
   Документ КАК Д1
   ГДЕ Д1.Ссылка В (ВЫБРАТЬ ПЕРВЫЕ 2 ИЗ Документ КАК Д2 ГДЕ Д1.Контрагент = Д2.Контрагент УПОРЯДОЧИТЬ ПО Д2.Дата УБЫВ)
4 Garykom
 
гуру
07.06.21
14:31
(0) что значит предпоследний?
5 Serg_1960
 
07.06.21
14:31
Вложенным запросом выбрать ПЕРВЫЕ 2 по убыванию и из них выбрать ПЕРВЫЕ 1 по возрастанию. Если в запросе всего один документ - то он же первый и он же последний.
6 youalex
 
07.06.21
14:34
(2) ВЫБРАТЬ ПЕРВЫЕ 1 Ссылка
ИЗ (
    ВЫБРАТЬ  ПЕРВЫЕ 2 Ссылка, МоментВремени ИЗ Документ.Встреча  УПОРЯДОЧИТЬ ПО МоментВремени УБЫВ) Влож
УПОРЯДОЧИТЬ ПО МоментВремени
7 fisher
 
07.06.21
14:35
(5) Толковое замечание. Действительно, если документ только один, то предпоследний в идеале должен быть пустым. Это усложнит запрос.
8 Serg_1960
 
07.06.21
14:36
(4) "А вот это, детектив, правильный вопрос"(х/ф "Я - робот")
9 Garykom
 
гуру
07.06.21
14:42
Имхо я возьму запросом два "последних", выгружу в ТЗ и возьму [0]
10 Kassern
 
07.06.21
14:42
(9) а если документ всего 1, тогда что?)
11 Garykom
 
гуру
07.06.21
14:43
(10) даже ничего менять не надо
12 Garykom
 
гуру
07.06.21
14:44
(11) в смысле один фиг будет условие на количество ибо запрос может ничего не вернуть
13 bfss-732
 
07.06.21
14:47
(4) Есть список документов введенных за определенный период... 1,2,3,4
Вот мне нужно вытащить ТОЛЬКО 3-й, чтоб реквизит сумма с 4-го минус реквизит сумма 3-го.
14 Serg_1960
 
07.06.21
14:53
(13) Вам тонко намекают, что Вы забыли уточнить критерий очередности. По номеру, по дате, по моменту времени или иное...
15 fisher
 
07.06.21
14:55
(14) И что, упоминание критерия очередности как-то радикально повлияет на алгоритм?
16 Serg_1960
 
07.06.21
15:02
(15) Нет, радикально не повлияет. Но как сказал один классик - "давайте спорить о вкусе устриц с теми, кто их ел"(с) - автор в (2) попросил пример -вот с этим проблема.
17 fisher
 
07.06.21
15:04
(13) Выбери список последних. А потом еще раз выбери список последних за исключением первого списка.
18 Serg_1960
 
07.06.21
15:05
+(16) Например, если учитывать уточнее в (13) - то запрос можно построить по регистру движения.
19 Garykom
 
гуру
07.06.21
15:05
(17) ему просто надо исключить текущий документ и взять последний и все
20 Serg_1960
 
07.06.21
15:06
*(18) "уточнее" --> "уточнение"
21 fisher
 
07.06.21
15:07
(19) Как оказалось, ему нужны и последние и предпоследние. И потом он как-то собирается скрещивать этих ужа и ежа. Если это реальная задача, то явно следствие архитектурной ошибки.
22 fisher
 
07.06.21
15:09
(19) Сабжевая задача обычно никогда не требуется в чистом виде (один документ). Обычно всегда в разрезе измерений.
23 fisher
 
07.06.21
15:09
"Обычно никогда" - это я сказанул, конечно
24 bfss-732
 
07.06.21
15:52
по дате
25 bfss-732
 
07.06.21
15:52
(14) по дате
26 bfss-732
 
07.06.21
15:53
(21) это отчет, где нужна разница сумм в документах
27 DJ Anthon
 
08.06.21
04:36
(24) если будет одинаковая дата и время?