|
Документы не хотят записываться в начало дня. | ☑ | ||
---|---|---|---|---|
0
lukinskiy
02.06.19
✎
16:31
|
Как программно сохранить новый документ в начало дня, если уже есть документы за этот день с нулевым временем?
Тогда перестают помогать эти строки Док.Дата = НачалоДня(ТекДата); Док.УстановитьВремя(РежимАвтоВремя.Первым, Истина); И документ сохраняется после документов этого вида с нулевым временем. |
|||
1
Aleksey
02.06.19
✎
16:42
|
Отключи время
Док.АвтоВремяОтключить() Синтаксис: АвтоВремяОтключить() Назначение: Отключить режим автоматической установки времени для новых документов, при этом новые документы заносятся с временем, устанавливаемым при помощи метода УстановитьВремя. |
|||
2
lukinskiy
02.06.19
✎
16:43
|
Так если там уже есть документ данного вида с нулевым временем, как быть?
И нужно создать второй документ того же вида, чтобы он был раньше. |
|||
3
Aleksey
02.06.19
✎
16:46
|
(2) Сто, это 8-ка?
Тогда что мешает програмно в дате задать время? к примеру 1 Час = 60*60 = 3600 сек Док.Дата = НачалоДня(ТекДата)+3600; |
|||
4
Aleksey
02.06.19
✎
16:48
|
(2) ты же понимаешь что в рамках одной секунды количество документов ограничено. и может быть ситуация когда оно просто не сможет записаться?
|
|||
5
lukinskiy
02.06.19
✎
16:50
|
Не понимаю. Что это за ограничение такое? Его, вроде, даже в 7.7 не было.
Да, это восьмерка. Так что, никак не поставить в начало дня что ли? |
|||
6
Aleksey
02.06.19
✎
16:50
|
(5) Ограничения были в 7-ке
|
|||
7
Aleksey
02.06.19
✎
16:52
|
И да насколько я помню позиция в 8-ка, в отличие от 7-ки это дата-время + guid. Т.е. два одинаковых документа нельзя в одной секунды разместить как хочешь. Только разнесение по времени
|
|||
8
Aleksey
02.06.19
✎
16:52
|
Что за задача странная?
|
|||
9
lukinskiy
02.06.19
✎
16:54
|
Ничего странного. Создаются выпуски продукции, которые должны быть раньше других документов за этот день.
Странно, что количество документов в один день таким образом ограничено. |
|||
10
lukinskiy
02.06.19
✎
16:56
|
В общем понял, без передвижения других документов не сделать. Хотя это бред, конечно :(
|
|||
11
shuhard
02.06.19
✎
17:37
|
(4) нет в 8-ке такого ограничения
(10) не используй Док.УстановитьВремя и не будет проблем |
|||
12
shuhard
02.06.19
✎
17:42
|
(11) +1
ДокОбъект=Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); ДокОбъект.Дата=НачалоДня(ТекущаяДата()); ДокОбъект.Записать(); ДокОбъект=Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); ДокОбъект.Дата=НачалоДня(ТекущаяДата()); ДокОбъект.Записать(); ДокОбъект=Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); ДокОбъект.Дата=НачалоДня(ТекущаяДата()); ДокОбъект.Записать(); ДокОбъект=Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); ДокОбъект.Дата=НачалоДня(ТекущаяДата()); ДокОбъект.Записать(); ДокОбъект=Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); ДокОбъект.Дата=НачалоДня(ТекущаяДата()); ДокОбъект.Записать(); ДокОбъект=Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); ДокОбъект.Дата=НачалоДня(ТекущаяДата()); ДокОбъект.Записать(); ДокОбъект=Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); ДокОбъект.Дата=НачалоДня(ТекущаяДата()); ДокОбъект.Записать(); Дата Номер 02.06.2019 0:00:00 00000000001 02.06.2019 0:00:00 00000000002 02.06.2019 0:00:00 00000000003 02.06.2019 0:00:00 00000000004 02.06.2019 0:00:00 00000000005 02.06.2019 0:00:00 00000000006 02.06.2019 0:00:00 00000000007 |
|||
13
Aleksey
02.06.19
✎
17:51
|
(12)
А теперь установи новый документ между 4 и 5 |
|||
14
shuhard
02.06.19
✎
18:08
|
(13) в 8-ке между через момент, а не через время
Дата Номер 19.05.2008 19:27:13 00000000001 30.06.2009 12:00:00 00000000001 30.06.2009 12:00:01 00000000002 02.06.2019 0:00:00 00000000001 02.06.2019 0:00:00 00000000002 02.06.2019 0:00:00 00000000003 02.06.2019 0:00:00 00000000004 02.06.2019 0:00:00 00000000005 02.06.2019 0:00:00 00000000006 02.06.2019 0:00:00 00000000007 02.06.2019 0:00:00 00000000008 02.06.2019 0:00:00 00000000009 02.06.2019 0:00:00 00000000010 02.06.2019 0:00:00 00000000011 02.06.2019 0:00:00 00000000012 02.06.2019 0:00:00 00000000013 02.06.2019 0:00:00 00000000014 |
|||
15
lukinskiy
02.06.19
✎
18:20
|
И с и без "УстановитьВремя", если уже есть документы данного вида с нулевым временем, доки создаются по порядку, а мне нужно каждый новый ставить в начало дня.
|
|||
16
shuhard
02.06.19
✎
18:49
|
(15) время к этому отношения не имеет, у тебя ошибочная логика
|
|||
17
lukinskiy
02.06.19
✎
18:58
|
Как это не имеет, когда в противном случае все расставляется, как надо. 1С просто уменьшает у каждого нового документа время на секунду. А тут уменьшать некуда. Так что с логикой у вас что-то не то, а не у меня.
|
|||
18
RomanYS
02.06.19
✎
19:00
|
(15) Если "начало дня" это перед другими документами с таким же временем, то единственный вариант играться с УИДами. Но лучше понять, что тебе это не надо.
(17) Ещё один глупый вариант: сдвинь все документы на секунду. |
|||
19
lukinskiy
02.06.19
✎
19:05
|
С уидами уже попробовал, фигня какая-то получается. Если их генерить обычным образом с помощью УникальныйИдентификатор(), они идут вразнабой. И вразнабой, соответственно, выстраиваются тогда и документы. (хотел нагенерить заранее и потом присваивать в обратном порядке).
А документы с нулевым временем, тем не менее, почему-то выстраиваются по порядку введения. Так что забил и занялся именно что дурацкими сдвигами на секунду. |
|||
20
RomanYS
02.06.19
✎
19:20
|
(19) >> почему-то выстраиваются по порядку введения
А как ты это проверяешь? Ещё интересна прикладная задача, для которой ты это делаешь. |
|||
21
Dmitry1c
02.06.19
✎
19:28
|
(7) нет, это только гуид. т.н. кластерный индекс, если выключены все сортировки.
другое дело, что сам гуид формируется таким образом, что в рамках сессии одного пользователя гуиды идут в итерационном порядке с минимальной сменой строкового представления гуида |
|||
22
Dmitry1c
02.06.19
✎
19:29
|
(20) судя по всему надо в списке для пользователя в самом вверху отображать последний введенный документ
но ТС не догадался, как это можно сделать другими способами. |
|||
23
RomanYS
02.06.19
✎
19:32
|
(22) сортировка "Дата, Номер Убыв" должна решать
|
|||
24
Dmitry1c
03.06.19
✎
07:17
|
(23) нет, в его случае не решит, т.к. все даты у него оканчиваются на "00:00:00"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |