Имя: Пароль:
1C
1С v8
как получить срез последних документов на дату
0 Max1986
 
27.04.12
13:45
Есть база, где куча документов, в т.ч. много различных, введенных в одну секунду.
Т.е. если ставлю дату 25.04.12 09:15:00 получаю несколько документов одного типа - введенные в 09:15:00.
А нужно именно последние, меньше разреза секунды. т.е. те, которые в уазанную секунду введены последними и находятся последними в списке.
1 Господин ПЖ
 
27.04.12
13:46
(0) забей... в 8-ке это не реализуемо...
2 rotting
 
27.04.12
13:46
МоментВремени()?
3 PR
 
27.04.12
13:46
(0) Лучше mail.ru почитай
4 rotting
 
27.04.12
13:46
(2) разве нельзя получить МоментВремени() объекта?
5 rotting
 
27.04.12
13:47
(4) к (1)
6 Господин ПЖ
 
27.04.12
13:47
(4) можно... но адекватную цепочку из нескольких видов документов не получить...
7 Дикообразко
 
27.04.12
13:47
(4) сейчас он заложится в алгоритме на момент времени,
а следующий вопрос будет: как поменять момент времени :)
8 ptiz
 
27.04.12
13:48
внутри секунды: МАКСИМУМ(Ссылка)
9 Господин ПЖ
 
27.04.12
13:48
спасибо за наше счастливое детство и отсутствие общего журнала...
10 Господин ПЖ
 
27.04.12
13:48
(8) бугага... УРБД передает привет...
11 Дикообразко
 
27.04.12
13:48
(9) скорее за кривую методологию учета, требующу хронологичности ввода документов
12 Господин ПЖ
 
27.04.12
13:49
(11) методология вполне нормальная... фифо должно быть всегда адекватным.
13 Дикообразко
 
27.04.12
13:50
(12) pit'а на тебя нет :)
или РАУЗа :))
14 Max1986
 
27.04.12
13:50
(4)>> разве нельзя получить МоментВремени() объекта?
У меня нет объекта - только дата
15 Господин ПЖ
 
27.04.12
13:51
(13) пит тут не указчик... костыли из 4-х букв - тоже...
16 Дикообразко
 
27.04.12
13:51
(14) ссылка + дата
17 Max1986
 
27.04.12
13:51
(3)гов.нофлудер в тематических ветках?
18 undertaker
 
27.04.12
13:51
(8) а кто сказал что документ с макс UIDом будет последним?
19 Дикообразко
 
27.04.12
13:52
(15) вы сами выбираете себе способ самоудовлетворения :)
20 Ненавижу 1С
 
гуру
27.04.12
13:52
(14) как это нету? периодичность РС то стоит "По позиции регистратора"
21 Ненавижу 1С
 
гуру
27.04.12
13:52
(18) природа 1С ))
22 Ненавижу 1С
 
гуру
27.04.12
13:53
+(21) управлять внутри секунды последовательностью документов нельзя, а жаль
23 Max1986
 
27.04.12
13:53
(16)нет ссылки - только дата!
Есть дата - на нее последние документы получить надо
24 Дикообразко
 
27.04.12
13:54
(23) у документа есть и ссылка и дата и момент времени
25 Shurjk
 
27.04.12
13:55
(0) А ты сам то как это себе представляешь. С какой точностью тебе надо получить время ввода документа? Вообще то чисто теоретически документы разного вида могут быть введены одновременно - здесь главное с какой точностью время ввода смотреть.
И самое главное кому и зачем это надо?
26 Kashemir
 
27.04.12
13:55
(18) Так и будет - но только в пределах одного типа документов. Ибо позиция документов в восьмерке определяется Временем + Тип документа + ИД документа.
27 rotting
 
27.04.12
13:55
(23) так и получай, сначала ссылки внутри одной секунды, потом по их моменту времени определяй последний
28 Max1986
 
27.04.12
13:56
(23)у дока да есть.
Я из обработки/отчета запускаю. последние док на дату
29 Shurjk
 
27.04.12
13:56
(24) Для каждого вида документа момент времени свой.
30 Shurjk
 
27.04.12
13:57
(27) А как сравнить моменты времени?
31 rotting
 
27.04.12
13:57
(29) это потому что они одновременно могут быть записаны, не вижу ничего не правильного в этом
32 Shurjk
 
27.04.12
13:58
(31) ответь на (30)
33 Лоботряс
 
27.04.12
13:58
(28)Где работает это чудо?
34 rotting
 
27.04.12
13:58
(30) ">", "<", "="
35 Max1986
 
27.04.12
13:58
(27) а как в этом списке ссылок внутри одной секунды запросом получить последний док по моменту времени.
36 PR
 
27.04.12
13:58
(17) LOL
Как ты точно себя охарактеризовал :))

ЗЫ: по сабжу все просто, как тебе уже ответили, есть момент времени, от него и отталкивайся, документ с наибольшим моментом времени и есть последний.
37 Max1986
 
27.04.12
13:59
(36)-->(35)
38 Shurjk
 
27.04.12
13:59
(30) Садись "2". Что из себя момент времени представляет - в курсе?
39 PR
 
27.04.12
13:59
(27) А что, выбрать первые 1 с сортировкой по убыванию момента времени не подойдет?
40 rotting
 
27.04.12
14:00
(38) сори, попутал, вот Синтаксис:

Сравнить(<МоментВремени>)
Параметры:

<МоментВремени> (обязательный)

Тип: МоментВремени.
Момент времени, с которым производится сравнение.
Возвращаемое значение:

Тип: Число.
-1 - если момент времени меньше другого момента времени, 0 - если момент времени равен другому моменту времени, 1 - если момент времени больше другого момента времени.
Описание:

Производит сравнение момента времени с другим моментом времени.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Пример:

Момент1 = Новый МоментВремени(Док1.Дата, Док1);
Момент2 = Новый МоментВремени(Док2.Дата, Док2);
Если Момент1.Сравнить(Момент2) = -1 Тогда
   Момент1 = Момент2;
КонецЕсли;
41 Shurjk
 
27.04.12
14:00
(39) Как сравнить моменты времени разных документов?
42 Max1986
 
27.04.12
14:00
(39)хз...можно попробовать
43 Shurjk
 
27.04.12
14:01
(40) А для разных типов документов будет работать правильно такое сравнение?
44 Ненавижу 1С
 
гуру
27.04.12
14:02
ВЫБРАТЬ
   ДокументыКонтрагентов.Контрагент,
   МАКСИМУМ(ДокументыКонтрагентов.Ссылка) КАК Ссылка
ИЗ
   (ВЫБРАТЬ
       ДокументыКонтрагентов.Контрагент КАК Контрагент,
       МАКСИМУМ(ДокументыКонтрагентов.Дата) КАК Дата
   ИЗ
       ЖурналДокументов.ДокументыКонтрагентов КАК ДокументыКонтрагентов
   
   СГРУППИРОВАТЬ ПО
       ДокументыКонтрагентов.Контрагент) КАК ВложенныйЗапрос
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ЖурналДокументов.ДокументыКонтрагентов КАК ДокументыКонтрагентов
       ПО ВложенныйЗапрос.Контрагент = ДокументыКонтрагентов.Контрагент
           И ВложенныйЗапрос.Дата = ДокументыКонтрагентов.Дата

СГРУППИРОВАТЬ ПО
   ДокументыКонтрагентов.Контрагент
45 PR
 
27.04.12
14:02
(41) Что значит как? Обычно.
46 Shurjk
 
27.04.12
14:04
(45) Как в (34) В курсе что такое момент времени вообще? А тог наверное на собеседованиях любишь спрашивать про него.
47 PR
 
27.04.12
14:04
(42) Попробовать можно пирог бабушкин.
А это работающая проверенная конструкция.
48 Max1986
 
27.04.12
14:04
(44)Красиво! спасибо! единственно толковый ответ.
Буду пробовать.
Как оказалось - вопрос не так прост как представлялось авторам )))
49 PR
 
27.04.12
14:05
(43) В (0) написано "документов одного типа".
Или это уже не по (0)?
50 Shurjk
 
27.04.12
14:05
(47) Не выпендривайся ты здесь в корне не прав. Если бы все так было просто бы то для партионного учета не создавали бы последовательности.
51 rotting
 
27.04.12
14:06
(43) работает, только что попробовал
52 PR
 
27.04.12
14:06
(46) Сынок, не мешай папе :))
53 Shurjk
 
27.04.12
14:06
(49) А начинается - про "много различных"
ТС так ты одного типа документы выбираешь или разные?
54 Ненавижу 1С
 
гуру
27.04.12
14:07
какая разница много видов их или нет? что это меняет в принципе?
55 Shurjk
 
27.04.12
14:08
(52) Смотри на собеседованиях может быть весьма неприятно, хотя ты скорее всего и не поймешь:)
56 Shurjk
 
27.04.12
14:08
(54) Почитай про момент времени, что это такое, это нал и непоределено осилил, а вот с этим у тебя явно пробел
57 PR
 
27.04.12
14:09
(48) Ну давай, удачи :))
Производительность нам до сиреневой лампочки, точно :))
58 Ненавижу 1С
 
гуру
27.04.12
14:09
(56) ну давай, рассказывай мне, что момент времени это Дата+ВидДокумента+UUID
59 rotting
 
27.04.12
14:10
(56) да объясни уже нам темным что это такое, или лень?
60 Ненавижу 1С
 
гуру
27.04.12
14:10
(57) разрешаю подзапрос вынести во временную таблицу, да и свой пример приведи заодно
61 rotting
 
27.04.12
14:10
вот в СП написано русским по белому: "Содержит дату и время, а также ссылку на объект базы данных."
62 PR
 
27.04.12
14:11
(50) Ты утверждаешь, что

ВЫБРАТЬ ПЕРВЫЕ 1
   ПоступлениеТоваровУслуг.Ссылка
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

УПОРЯДОЧИТЬ ПО
   ПоступлениеТоваровУслуг.МоментВремени УБЫВ

не сработает?
63 Max1986
 
27.04.12
14:12
(53)Документы то разные. но выбрать надо именно все последние каждого типа
64 Ненавижу 1С
 
гуру
27.04.12
14:13
(62) сработает, но только один документ выдаст, если нужно например максимальный для каждого контрагента?
65 PR
 
27.04.12
14:13
+(62) А при чем здесь последовательности?
С таким же успехом можно было сказать "Если бы все так было просто бы то для наркоманов не создавали бы реабилитационные центры." :))
66 Vovan1975
 
27.04.12
14:13
(63)интересно, а нафейхуа?
67 Shurjk
 
27.04.12
14:16
(62) Для одного документа сработает, а если разные то нет.
68 Vovan1975
 
27.04.12
14:24
(26) да нифига, док по гуиду будет последним, а вот по времени он могет быть вообще первый в году и чо?
69 Vovan1975
 
27.04.12
14:24
Максик, нафейхуа тебе эта херь?
70 PR
 
27.04.12
14:26
(53) Что непонятного-то?
ТС хочет набрать букет из документов, по одному самому позднему документу каждого типа.
И делается это так (текст запроса формируется динамически ессно)

ВЫБРАТЬ ПЕРВЫЕ 1
   ПоступлениеТоваровУслуг.Ссылка
ПОМЕСТИТЬ ПоступлениеТоваровУслуг
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

УПОРЯДОЧИТЬ ПО
   ПоступлениеТоваровУслуг.МоментВремени УБЫВ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
   РеализацияТоваровУслуг.Ссылка
ПОМЕСТИТЬ РеализацияТоваровУслуг
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

УПОРЯДОЧИТЬ ПО
   РеализацияТоваровУслуг.МоментВремени УБЫВ
;

...сюда добавляем еще кучу пакетных запросов для каждого типа документов

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ПоступлениеТоваровУслуг.Ссылка
ИЗ
   ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка
ИЗ
   РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

...сюда добавляем еще кучу объединений для каждого типа документов

;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ПоступлениеТоваровУслуг
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ РеализацияТоваровУслуг

...сюда добавляем еще кучу уничтожений для каждого типа документов
71 PR
 
27.04.12
14:29
(68) Быстро изучать матчасть, двоечник.
72 Max1986
 
27.04.12
14:30
(64)+10000 Именно такая задача! Поставщик и склады разные
73 Лоботряс
 
27.04.12
14:30
(33) Не дай бог связаться с тем франчем... Свят-свят
74 Ненавижу 1С
 
гуру
27.04.12
14:30
(71) о-о ты веришь, что гуид сам по себе о чем то говорит?
75 PR
 
27.04.12
14:31
Мне кажется, Max1986 уже наговорил на пару часов работы :))
76 Max1986
 
27.04.12
14:33
(69)>> Максик, нафейхуа тебе эта херь?

Из торговых точек идет массив доков.
Надо выбрать на некую дату/секунду получить последние документы разного типа - при различных менеджерах, складах, поставщиках.
Типа Заявка поступления товара - от 09:00 - куча менегеров  вводит с утра. надо по каждому менегеру по каждому контрагенту последние доки
77 PR
 
27.04.12
14:33
(74) И эти люди автоматизируют мою страну...
Всем, кто не знает, как определить, какой из документов с одинаковой датой более поздний _быстро_ марш изучать матчасть!
78 Max1986
 
27.04.12
14:34
(70)пример плохой и не рабочий
79 PR
 
27.04.12
14:34
(78) Это мозги у тебя просроченные, а пример стопроцентнорабочий.
80 Vovan1975
 
27.04.12
14:35
(76) а это зачем?
81 Ненавижу 1С
 
гуру
27.04.12
14:35
(77) не передергивай, я про "да нифига, док по гуиду будет последним, а вот по времени он могет быть вообще первый в году и чо?"
и потом уже про одну секунду - что есть последний? последний введенный? по гуиду ты не узнаешь какой
82 Ненавижу 1С
 
гуру
27.04.12
14:36
(79) в разрезе контрагентов (в каком либо разрезе аналитики) он не работает
83 Kashemir
 
27.04.12
14:36
(81) (77)Не пойму чего вы ругаетесь - вы же говорите об одном и том же.
84 Ненавижу 1С
 
гуру
27.04.12
14:36
(83) ну... не в курсе
85 Max1986
 
27.04.12
14:37
(79)тебе в (82)ответили "в разрезе контрагентов (в каком либо разрезе аналитики) он не работает"
86 Kashemir
 
27.04.12
14:38
(84) Предложи PR в профайлере поглядеть на запрос с .МоментВремени и придете к (83)
87 Vovan1975
 
27.04.12
14:38
(83) нифига не об одном и том же. ГУИД, он же ссылка, с датой связан только при создании дока. После первой записи дата у дока могет быть любой а вот гуид остается всегда прежним, так что макс по гуиду нифига не макс по дате
88 PR
 
27.04.12
14:38
(81) Есть такое понятие, как момент времени документа.
89 Kashemir
 
27.04.12
14:39
(87) Да причем тут датавремя - эта тема всем очевидна и никому не интересна. Люди ругается за позицию в пределах одной секунды.
90 Ненавижу 1С
 
гуру
27.04.12
14:39
(88) понятие такое есть, только вот управлять им в переделах 1 секунды невозможно - невозможно изменить порядок моментов времени документов у которых совпадает реквизит Дата
91 Kashemir
 
27.04.12
14:40
(88) МоментВремени = ПозицияРегистратора = Дата+ТипСсылки+ИД
92 PR
 
27.04.12
14:40
(82) Может мне за ТС еще и целиком всю работу выполнить?
Так я что-то от него оплаты на РС не увидел пока.
Может он за свою зарплату уже сам подумает, как использовать (70) для решения своей задачи?
93 Ненавижу 1С
 
гуру
27.04.12
14:40
(91) см (58) :-)
94 Ненавижу 1С
 
гуру
27.04.12
14:41
(92) просто твое решение хорошо пока нет разрезов
95 Лоботряс
 
27.04.12
14:42
(85) почему? А условие добавить не судьба?
96 PR
 
27.04.12
14:42
(90) А кто говорит про изменение?
Речь про упорядочивание.
97 Kashemir
 
27.04.12
14:42
(93) Да и видел ;-) в (26) писал то же :)
98 Shurjk
 
27.04.12
14:43
(85) А условие в запрос добавить тебе что мешает?
99 Max1986
 
27.04.12
14:45
(99)не мешает
100 Max1986
 
27.04.12
14:46
100
101 Ненавижу 1С
 
гуру
27.04.12
14:46
(96) не концептуальный разговор, схожу с тропы, болтаешь ты классно, столько воды
(98) все, я пас
102 Max1986
 
27.04.12
14:46
(92)Зачем - решение в (44) грамотное и в временными таблицами приемлемое.
А вот ты похоже плаваешь в теме - реально флудишь много, оскорбляшь, а сам ничего не предложил.
И это еще директор Франча! Я в шоке!
103 Max1986
 
27.04.12
14:47
(101)спасибо за корректную помощь
104 Shurjk
 
27.04.12
14:47
(101) Ты считаешь что нельзя в запросе по моменту времени упорядочить?
105 PR
 
27.04.12
14:48
(102) LOL
Ну удачи :))
Черкани адресок клиента, когда он в ужасе начнет искать другого специалиста :))
106 Kashemir
 
27.04.12
14:51
(105) (44) действительно более гибкое и универсальное решение, в то время как (62) может подойти только для куда более узкого круга задач.
107 Ненавижу 1С
 
гуру
27.04.12
14:52
(104) я такого не говорил ))
108 PR
 
27.04.12
14:54
(106) Выбрать все документы из базы и потом в переборе их обработать — еще более гибкое решение. Но за него могут и убить :))

А правильное решение — это

ВЫБРАТЬ
   ПоступлениеТоваровУслуг.Ответственный,
   МАКСИМУМ(ПоступлениеТоваровУслуг.Ссылка) КАК Ссылка
ПОМЕСТИТЬ ПоступлениеТоваровУслуг
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

СГРУППИРОВАТЬ ПО
   ПоступлениеТоваровУслуг.Ответственный
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   РеализацияТоваровУслуг.Ответственный,
   МАКСИМУМ(РеализацияТоваровУслуг.Ссылка) КАК Ссылка
ПОМЕСТИТЬ РеализацияТоваровУслуг
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

СГРУППИРОВАТЬ ПО
   РеализацияТоваровУслуг.Ответственный
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ПоступлениеТоваровУслуг.Ответственный,
   ПоступлениеТоваровУслуг.Ссылка
ИЗ
   ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   РеализацияТоваровУслуг.Ответственный,
   РеализацияТоваровУслуг.Ссылка
ИЗ
   РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ПоступлениеТоваровУслуг
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ РеализацияТоваровУслуг
109 PR
 
27.04.12
14:56
+(108) Более того, (44) — неработающий запрос, поскольку в нем не учтен тип документа :))
110 ptiz
 
27.04.12
14:57
(108) Достойное завершение ветки.
111 Kashemir
 
27.04.12
14:57
(108) Попробуй (44) на больших базах - не будет никаких проблем с производительностью. Поля дата+ссылки по дефолту индексированы и не будут вызывать проблем.
(109) Да зачем учитывать тип документа ? Автор вроде такого и не хотел. Но если очень надо - не сложно добавить группировку по ТипЗнч(Ссылка) во вложенном запросе по максдате
112 Kashemir
 
27.04.12
14:58
(109) Кстати зря 2 вт создал - у тебя сама операция объединения вряд ли вызовет проблемы с планом запроса. Достаточно было сразу объединить.
113 Ненавижу 1С
 
гуру
27.04.12
14:59
(108) это что за бред?
114 PR
 
27.04.12
15:02
(112) А, ну да, ессно

ВЫБРАТЬ
   ПоступлениеТоваровУслуг.Ответственный,
   МАКСИМУМ(ПоступлениеТоваровУслуг.Ссылка) КАК Ссылка
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

СГРУППИРОВАТЬ ПО
   ПоступлениеТоваровУслуг.Ответственный

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   РеализацияТоваровУслуг.Ответственный,
   МАКСИМУМ(РеализацияТоваровУслуг.Ссылка)
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

СГРУППИРОВАТЬ ПО
   РеализацияТоваровУслуг.Ответственный

В предыдущем примере использовал, потому что там упорядочить было.
115 PR
 
27.04.12
15:04
(111) В (44) вложенный запрос, что плохо и читабельность запроса сама по себе фиговенькая.
По поводу типа документа условие в (0).
116 PR
 
27.04.12
15:05
(113) Твое восприятие 1С заканчивается на уровне различий NULL, Неопределено и пустой ссылки? :))
117 Kashemir
 
27.04.12
15:06
(116) Думаю (113) хотел сказать что дата у тебя потерялась ;-)
118 PR
 
27.04.12
15:06
(117) В смысле? :))
119 Ненавижу 1С
 
гуру
27.04.12
15:07
(116) не ёрничай, какую важную информацию мы получаем от
 МАКСИМУМ(ПоступлениеТоваровУслуг.Ссылка) КАК Ссылка
120 Kashemir
 
27.04.12
15:07
(118) В том смысле что (114) и (108) совершенно не учитывает датувремя документа :)
121 Ненавижу 1С
 
гуру
27.04.12
15:07
(115) еще раз - сделай временной таблицей
122 PR
 
27.04.12
15:08
А в (44) практически то, что написал я, только:
— Используется журнал документов вместо объединений по типам документов;
— Нет разреза по типу документа;
— Зачем-то вложенный запрос вместо сразу максимума по ссылке.
123 Ненавижу 1С
 
гуру
27.04.12
15:10
(122)
1 и 2. на тот момент я не знал полной постановке, журнал, это просто пример, не концептуально
3. ответь на (119)
124 PR
 
27.04.12
15:10
(120) МАКСИМУМ(ПоступлениеТоваровУслуг.Ссылка) не учитывает дату + время + момент времени документа?
125 Ненавижу 1С
 
гуру
27.04.12
15:10
(124) не поверишь конечно, но нет
126 Kashemir
 
27.04.12
15:11
(124) Эм - конечно не учитывает
127 Kashemir
 
27.04.12
15:12
(124) Эта конструкция учитывает лишь тип + ИД.
А для времени еще нужен 3 пункт (122)
128 PR
 
27.04.12
15:34
(125), (126), (127) А, пардоньте, не учитывает, да.
Хуже, что нельзя взять максимум от момента времени, что странно.
Тогда придется слегка испачкаться, пока дойдешь до истины, да.
Только с чего бы тогда в (44) максимум по ссылке?
129 Kashemir
 
27.04.12
15:36
(128) В (44) сначала отбирается максимальная дата во вложенном запросе, после чего из оставшихся (после внутреннего соединения) отбирается максимальная ссылка.
130 PR
 
27.04.12
15:37
(129) И с чего бы вдруг максимальная ссылка за весь период не даст самый поздний документ, а в рамках одной секунды даст?
Это реально так?
131 Kashemir
 
27.04.12
15:39
(130) Потому что ссылка не имеет никакого отношения к датевремени, и самое прямое к ИД и Типу.
132 Kashemir
 
27.04.12
15:41
+(131) См. (26) (58) (91)
133 PR
 
27.04.12
15:42
(131) То есть упорядочивание по ссылке — это:
— Не упорядочивание по дате
— Упорядочивание по моменту времени документа в рамках документов с одинаковой секундой
?
134 Max1986
 
27.04.12
15:42
(131)Получается в разрезе одной секунды последняя ссылка не есть последний введенный документ?
135 Kashemir
 
27.04.12
15:43
(133) Да - все верно. По дате времени надо упорядочивать отдельно.
136 PR
 
27.04.12
15:43
+(133) А, вижу (8).
137 Ненавижу 1С
 
гуру
27.04.12
15:43
(133) интересные ты проводишь собеседования
138 Max1986
 
27.04.12
15:44
кстати, вот почему ввели документ 29.04.12, сменили дату на 25.04.12, но не время - и он последний в разрзе секунды?
139 zak555
 
27.04.12
15:44
как Ссылка генериться для документа ?
140 PR
 
27.04.12
15:45
(137) А у нас сейчас собеседование?
Я, кстати, на собеседовании куда более прозаичные вещи спрашиваю, о высшем пилотаже речи никогда не идет. Потому что зачем?
141 Лоботряс
 
27.04.12
15:47
(139) не мое

GUID - ссылка - это тупо 16 байт.
Формируется по особому алгоритму, гарантирующему уникальность вновь созданных
ПРЕДСТАВЛЯЕТСЯ обычно в виде:
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,
где
X - представлем в шестнадцетиричном видею

Важно!

GUID 1С-а представленный в 1С, например
Сообщить(Строка(Ссылка.УникальныйИдентификатор()));
отличается от фактически хранимого в базе на некоторые перемешанные значения
Например, в 1С он выглядит как
6F9619FF-8B86-D011-B42D-00CF4FC964FF
В базе (фактически) он имеет значение:
6F9619FF-D011-8B86-B42D-00CF4FC964FF
(Это тупо пример, там алгоритм перестановки другой, лень споминать)

Важно!

GUID 1С формирует не по правилам Microsoft, а инкрементно.
В начале сеанса формируется стартовый GUID, r примеру
6F9619FF-8B86-D011-B42D-00CF4FC964F0

У каждого последующего, созданного в этом сеансе ссылочного объекта GUID будет на 1 больше, к примеру:
6F9619FF-8B86-D011-B42D-00CF4FC964F1
6F9619FF-8B86-D011-B42D-00CF4FC964F2
6F9619FF-8B86-D011-B42D-00CF4FC964F3
142 PR
 
27.04.12
15:48
(135) А что

ВЫБРАТЬ
   ПоступлениеТоваровУслуг.Ответственный,
   МАКСИМУМ(ПоступлениеТоваровУслуг.Дата) КАК Дата,
   МАКСИМУМ(ПоступлениеТоваровУслуг.Ссылка) КАК Ссылка
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

СГРУППИРОВАТЬ ПО
   ПоступлениеТоваровУслуг.Ответственный

не даст нам нужного эффекта?
143 PR
 
27.04.12
15:49
(138) Потому что у него ГУИД больше всех других ГУИДов в этой секунде.
144 zak555
 
27.04.12
15:50
(141) почему факт отличается от действительности ?
145 Kashemir
 
27.04.12
15:53
(138) Потому что есть ТИП документа, который упорядочивается до ИД документа. Другими словами среди 2 видов документов в пределах одной секунды всегда документы одного типа будут раньше чем другого. Кроме того никто не обязывает платформу генерить ИД последовательно.
146 Max1986
 
27.04.12
15:54
(145) понятно...
147 Kashemir
 
27.04.12
15:54
(142) Конечно нет - ты возьмешь у одного документа самое больше время, а у другого самое больше значения Типа + ИД.
148 Лоботряс
 
27.04.12
15:59
(144) ХЗ но это факт
149 Kashemir
 
27.04.12
16:01
(142) Эта информация малополезна и к ней нельзя привязываться. Так же как и к тому  что определенные группы генеренных ИД как правило содержат и часть ИД узла генерации.
150 Kashemir
 
27.04.12
16:02
+(149) относится к (141)
151 Лоботряс
 
27.04.12
16:06
(149) Может статейку в Книгу знаний забацаешь, а? Чтоб ни возникало больше вопросов...
152 Kashemir
 
27.04.12
16:07
(151) Лень :)
153 Лоботряс
 
27.04.12
16:11
А тему на 150 постов развивать не? Эх лень, тормоз прогресса
154 Лоботряс
 
27.04.12
16:11
:(
155 Kashemir
 
27.04.12
16:11
(153) Это не я чес слово :)
156 PR
 
27.04.12
16:16
(145) То есть истинной хронологии не получится? Да ладно.
А как же известное "Введите сначала поступление товаров, а уж потом реализацию"? Секунды менять?
157 Kashemir
 
27.04.12
16:17
(156) Совершенно верно - менять можно только что нам доступно. А это все лишь время.
158 PR
 
27.04.12
16:18
(147) А, пардон, чувствовал, что что-то не так, но не допетрил :))
Мда, видимо без избыточной выборки не обойтись.
159 zak555
 
27.04.12
16:20
(157) ссылку "изменять" нельзя ?
160 PR
 
27.04.12
16:21
(157) Я про другое.
Если мы занесем сначала поступление 1 на 10 штук, а потом реализацию 1 на 10 штук, а потом снова поступление 2 на 10 штук и реализацию 2 на 10 штук, все в рамках одной секунды, то у нас по остаткам будет нехватка товара?
161 Kashemir
 
27.04.12
16:22
(160) Беспорно
162 Kashemir
 
27.04.12
16:23
(160) Хотя технически 50/50 если повезет - может тип поступления идти раньше чем реализации, тогда ошибки не будет - сначала гору на складирует ... а после все реализует.
163 Kashemir
 
27.04.12
16:25
(159) Нельзя. Разве что при создании объектов можно подсунуть из несуществующих
164 PR
 
27.04.12
16:27
(162) А, пардон.
Либо пример 1 должен сбойнуть, либо пример 2 сработать.

Пример 1
Поступление 1 на 10 штук
Реализация 1 на 10 штук

Пример 2
Реализация 1 на 10 штук
Поступление 1 на 10 штук
165 zak555
 
27.04.12
16:28
(16) ну я как раз хотел предложить

получаем док, который нужно сделать "последним"
копируем его, далее

докНов = ДокСтар.Скопировать();
докНов.УстановитьСсылкуНового(  Новый УникальныйИдентификатор );

ну а далее записать/провести и удалить старый
166 Kashemir
 
27.04.12
16:29
(165) Но коммент :D
167 Ненавижу 1С
 
гуру
27.04.12
16:33
(165) а гарантия, что UUID будет больше?
да и для разных видов - там непреодолимо совсем
168 Max1986
 
27.04.12
16:34
(165)Идею запатентуешь?
169 zak555
 
27.04.12
16:38
(167) тогда найти максимум в таблице документа, прибавить один и установить ссылку
170 Kashemir
 
27.04.12
16:40
(169) А если строго после него в пределах секунды должен идти еще один ? :D
171 Ненавижу 1С
 
гуру
27.04.12
16:45
(170) надо тогда секунду поделить на N
172 zak555
 
27.04.12
16:46
(170) это я про то, как сделать самый последний в одной секунде
173 Kashemir
 
27.04.12
16:48
(172) Ну я надеюсь ты понимаешь что такое решение это так - "чисто поржать" :)
174 PR
 
27.04.12
17:47
Попробовал занести поступление, потом реализацию и наоборот, в рамках одной секунды.
В обоих случаях поступление впереди реализации.
Интересно, зачем сделали сортировку еще и с учетом типа документа, логичнее было без него обойтись. IMHO.
175 zak555
 
27.04.12
17:52
(174) у поступления своя таблица, у реализации своя
=> начальный гуид тоже разный
176 Shurjk
 
27.04.12
17:54
(174) Ндаа, для тебя сегодня прямо день открытий.
177 Kashemir
 
27.04.12
17:55
(174) 1. Гуиды разных типов технически могут повторяться
2. Такие правила сравнения ссылочных типов:

СП:

Правила сравнения значений
Поскольку в языке запросов могут сравниваться значения разных типов, определены правила, по которым выполняется сравнение двух значений. Данные правила используются для:

сравнения значений в операторах сравнения;
определения максимального и минимального значений в агрегатных функциях МИНИМУМ и МАКСИМУМ;
упорядочивания записей результата запроса в соответствии с порядком, заданным в предложении УПОРЯДОЧИТЬ ПО.
Если типы значений отличаются друг от друга, то отношения между значениями определяются на основании приоритета типов:

тип NULL (самый низший);
тип Булево;
тип ЧИСЛО;
тип ДАТА;
тип СТРОКА;
ссылочные типы.
Отношения между различными ссылочными типами определяются на основе внутренних ссылочных номеров таблиц, соответствующих тому или иному типу.

Если типы данных совпадают, то производится сравнение значений по следующим правилам:

у типа Булево значение ИСТИНА больше значения ЛОЖЬ;
у типа ЧИСЛОобычные правила сравнения для чисел;
у типа ДАТА более ранние даты меньше более поздних;
у типа СТРОКА сравнения производится в соответствии с установленными национальными особенностями базы данных;
ссылочные типы сравниваются на основе своих значений (номера записи и т. п.);
не допускается сравнение полей неограниченной длины (строки неограниченной длины, ХранилищеЗначения, поле ТИПЗНАЧЕНИЯ из таблицы планов видов характеристик).
178 PR
 
27.04.12
18:00
(175) Да таблицы-то разные.
Я не уверен был, что у ГУИДов не сквозная нумерация.
А оно вон как получается.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан