Позиция документа #14045


#0 by gray
Док.ПолучитьПозицию = "#20040430 863990000     38579   " первая часть понятна, это дата, а остальные составляющие ?
#1 by Rovan
Скорее всего внутренний ИД объекта конфы.
#2 by SKrin
вторая цифра - это время (как то там в секундах считается и складыаеется) третья цифра - это ИМХО ИД документа
#3 by gray
* вторая - точно время а вот айдишники у документов не такие вроде
#4 by Славко
Синтаксис: РазобратьПозициюДокумента(<Позиция>,<Дата>,<Час>,<Мин>,<Сек>,<Документ>) Назначение: Раскладывает позицию документа на составляющие и возвращает строковое представление позиции документа.
#5 by gray
Собственно, у меня проблема такая, что документы, существующие в 1с определенным образом выгружаются в другую БД, и мне важна последовательность следования этих документов во времени, а, как известно, в 1с могут и существую документы, время которых идентично вплоть до секунды ... Мне надо как-то узнать порядковый номер следования документа в общем журнале ...думал, позиция поможет
#6 by Оборотень
Очень похоже что последняя цифра как и сказал Rovan в есть внутренний номер объекта в 1С. Поэтому при совпадении времени я так думаю можно опереться на эти данные. Вроде того что чем больше идентификатор - тем позже создан объект... Есть ещё мысли?
#7 by YF
Вообще-то Док1 с позицией Поз1, Док2 с позицией Поз2. Если Поз1>Поз2 - > Док1 позже Док2 все просто. Позиции есть строки - > сравнивать из можно в любой системе, не только в 1С. Я не прав?
#8 by Славко
и шо за проблема? правильно ты думал...
#9 by Оборотень
К второе число есть количество милисекунд с начала суток если выкинуть ноль к конце ... Так что в правильное решение ... это 1С отображает время документа до секунд, а есть возможность еще 10000 позиций в этоу секунду запихать, думаю достаточно для однозначного определения какой док был создан раньше :)
#10 by SKrin
создан то он создан, а если я время поменяю, то он будет в другой позиции, а ИД не поменяется
#11 by YF
Какая разница-то, время поменяется -> он будет раньше или позже всех доков с его предидущим временем, в чем проблема-то?
#12 by SKrin
Если док1 проведен в одно время и его поз.: "#20040430 863990000     38579   " Другой док2 : #20040430 973990000     38580   " И если я поменяю время док2 на время док1 то его поз. :#20040430 863990000     38580   " что получается...
#13 by SKrin
...получается что надо стравнивать и время документа и его ИД сразу вместе!
#14 by 427 ver2
Who like drink russian vodka?
#15 by Оборотень
Но позиция то изменится ... я и не предлагал опираться только на ИД. Так что есть позиции, вот их и нужно сравнивать :)
#16 by SKrin
чем она выражается эта позиция, в каких значениях?
#17 by Оборотень
Позиция выжажается во времени и ИД документа Я сейчас на 1С поэкспериментировал ... Если выставляешь одинаковое время, то документом с меньшей позицией является док с меньшим ИД.
#18 by SKrin
собственно по сабжу: выгружаешь все доки в ТЗ с колонками: "ИДДок", "Док" где ИДДок-порядковый номер документа в ТЗ!, и все, вся последовательность сохранена ;) потом выгружаешь по порядку куда тебе надо
#19 by SKrin
ты неправ
#20 by BorisX
Экперименты до добря не доводят
#21 by Оборотень
в чем неправ "Позиции документа — это строковое значение специального формата длиной 32 символа. Позиция документа однозначно характеризует расположение документа на оси времени относительно других документов, т. е. позиция документа заключает в себе и дату и время (с точностью до секунды), плюс некоторые дополнительные данные, определяющие взаимное расположение документов в пределах одной секунды. Позиции документов можно сравнивать (>; <), определяя какой документ раньше, какой позже." "...плюс некоторые дополнительные данные..." - и есть милисекунды и ИД документа.. А с согласен полностью - самое простое и верное решение :)
#22 by SKrin
убедил, не туда посмотрел ;) а по поводу и я непонял
#23 by YF
Дык и окажется, что Док2 позднее док1, как и было в начале, ачто-то не так должно было быть? +По-моему почти никогда время док вручную не меняют, т.е. меняют, но типа в начало дня, в конец дня.
#24 by YF
+ Вариант с ТЗ - неплохо, хотя номер получится относительный.
#25 by SKrin
меняют время вручную, может и не так часто, но это тоже нельзя исключать
#26 by YF
Не, про 12 подробнее, чо-то я не понял, там ведь все ОК ? + 1С стандартно дает пользователям право (возможность) менять ВРЕМЯ а не позицию документа. И это, я считаю, правильно. Т. о. исключаются всякие непонятки, типа . Если док был раньше Док2, то изменив его ВРЕМЯ на время Док2 все равно получим Док раньше Док2.
#27 by Оборотень
Да, так и получается. Если время совпадает, то смотрится на ИД документа.
#28 by Оборотень
+ Если меняется время - меняется и позиция документа ибо время есть часть позиции. а сравнение ИД и придумано для разрешения коллизий типа
#29 by YF
Дык зачем же отдельно ИД то сравнивать? Позиции целиком сравнить и ОК?
#30 by Оборотень
Дык и не нужно сравнивать ИД - когда сравниваем позиции которые получаем по ПолучитьПозицию - так и получается ... отдельно ничего не нужно сравнивать все за нас сделает 1С. ... Это просто по смыслу технология сравнения такая :)
#31 by SKrin
(29,30) непонял. как можно сравнивать строки? или я что-то недогоняю?
#32 by gray
я несколько отвлекся от ветки, большое спасибо всем, проблема решилась ..-)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С