Имя: Пароль:
1C
1С v8
Время документа при оперативном проведении
0 simol
 
18.11.15
12:46
При оперативном проведении изменяется дата документа.

Сейчас в базе нет ни одного документа с датой больше чем дата на севере 1С.
Сервер 1С перезапустил.
В подписке Докумета ПередЗаписью и в При записью запрещаю записывать документы датой больше чем дата на сервере 1С.

Но у пользователей при оперативном проведении упорно идет попытка установить дату документа больше даты на сервере.

Почему дата ставиться больше чем за сервере?
1 neo_matrix_123
 
18.11.15
13:15
(0) оперативное проведение меняет не дату, а время с времени документа на текущее и только если дата документа соответствует текущей. если проводится документ от вчерашней (прошедшей) даты - всегда проведение неоперативное. проведение с датой больше текущей - возможно только в контуре планирования, насколько помню, но там нет понятия "оперативное\неоперативное". у пользователя на компе дата какая? она должна быть синхронизирована с сервером.
2 simol
 
18.11.15
13:29
(1)Да, конечно речь про оперативное проведение документов текущей даты и про смену при этом времени на текущее. Но Оно меняет на будущее время.
Но я не позволяю записать документ с временем большем текущего серверного. Но я это прерываю уже в ПриЗаписи.
Пользователь, даже те у кого время совпадает с временем сервера, жалуются что не могут провестись, потому что в ПриЗаписи уже время +2часа от текущего
3 simol
 
18.11.15
13:32
Где берется время документа при оперативном проведении? Как оно может быть больше текущего при условии что документов с датой больше текущей в базе нет и сервер перезагружен?
4 simol
 
18.11.15
13:36
При этом при входе в 1С я запрещаю запуск 1С если время на клиенте больше времени на сервере 1С
5 neo_matrix_123
 
18.11.15
13:37
(2) а почему + 2? (3) у юзера, в 1С, сервис - параметры - рабочая дата. там что?
6 simol
 
18.11.15
13:45
(5)У меня все работают в тонких клиентах, там нет РабочаяДата
7 simol
 
18.11.15
13:53
(5)Время убегания увеличиваться снежным комом
Сначала это секунду, потом минуты. потом часы.
Всех пользователей выгоняю. ставлю нормальное время в документах, перезапускаю сервер 1С.

Заходять пользователи и опять начинает время вперед убегать.
8 neo_matrix_123
 
18.11.15
13:59
(7) отладчик в руки и в модуль по вашим подпискам на событие...
9 simol
 
18.11.15
14:29
(8)Время не программно устанавливается. Вопрос про то, откуда берется время платформа при оперативном проведении документа текущего дня.
10 simol
 
18.11.15
15:14
Есть предположение ,что это из-за пользователей, у которых время ОТСТАЕТ от серверного.
11 Enterprise
 
18.11.15
15:26
(10) Под датой на Сервере 1С подразумевается дата компьютера, на котором он стоит?
12 Enterprise
 
18.11.15
15:35
(10) Может часто используется метод ПолучитьОперативнуюОтметкуВремени(), из-за которого смещение происходит
13 Cyberhawk
 
18.11.15
15:38
"В ходе оперативного проведения система изменяет время документа таким образом, чтобы очередной документ, проводимый в оперативном режиме, имел бы момент времени более поздний чем, у предыдущего оперативно проведенного документа. Для этого используется понятие оперативной отметки времени. Оперативная отметка получается системой автоматически при оперативном проведении, но может быть получена во встроенном языке в явном виде с помощью метода ПолучитьОперативнуюОтметкуВремени()"
14 Cyberhawk
 
18.11.15
15:38
Вот и проверь, и выводи в ЖР значение оперативной отметки времени, потом и поймешь, что к чему
15 simol
 
18.11.15
15:39
(10) Сравниваю ТекущееВремя() в серверных функциях и ТекущееВремя() в клиентских. И в принципе считал ,что первое соответствует времени компа на сервере ,второе времени компа на клиенте.

Часовой пояс одинаковый.
16 simol
 
18.11.15
15:40
(12)Не использовал
17 simol
 
18.11.15
15:41
(13)я понимаю почему если есть будущая дата, то следующий оперативный будет позже него. Вот почему если нет документов будущей датой, то идет попытка записать ПЕРВЫЙ документ при оперативном проведении будущей датой.
А что в ПолучитьОперативнуюОтметкуВремени погляжу
18 Cyberhawk
 
18.11.15
15:41
"В качестве оперативной отметки система, как правило, возвращает текущее время (текущую дату и текущее время). Однако если текущее время больше или равно последней выданной какому-либо пользователю отметке, то возвращается значение на секунду большее, чем значение последней выданной отметки."
+
"Все пользователи обращаются к единому механизму оперативной отметки времени, а механизм выдает каждому пользователю очередную отметку. Механизм получения оперативной отметки времени обеспечивает получение даты, большей, чем предыдущая отметка, полученная этим или другим пользователем в данном сеансе работы. В этом случае под сеансом работы понимается не работа одного пользователя, а работа всех пользователей, от момента входа первого пользователя в систему, до выхода последнего."
19 Cyberhawk
 
18.11.15
15:43
Напрашивается вывод: какому-то пользователю выдается в качестве оперативной отметки будущее время дня, ну а всем последующим поэтому выдается еще большее значение
В конфигураторе сеанс тоже учитывается, если что
20 simol
 
18.11.15
15:53
(19)Как-то пытаюсь выявить его.
сервер перезапустил и в 1С ни зашел ни один пользовтель со временем большим севрера убегает вперед.

Есть пользователь с временем меньшим серверное - думаю проблема из-за них
21 Enterprise
 
18.11.15
15:56
(20) Больше/меньше сервера на сколько?
22 Cyberhawk
 
18.11.15
16:05
Посмотри еще что возвращает у клиентов методы ЧасовойПоясСеанса() и ПолучитьЧасовойПоясИнформационнойБазы(), а также в коде конфигурации проверь, не выполняются ли методы УстановитьЧасовойПоясСеанса или УстановитьЧасовойПоясИнформационнойБазы (включая в коде регл. заданий)
23 simol
 
18.11.15
17:28
Я нашел проблему.
Если открыть документ, который проводится оперативно и часто нажимать записать (чаще чем раз в секунду), то его время убегает вперед.

А у нас есть процесс где человек в одной ситуации не сколько дней выкручивался именно нажимая много раз записать. Ему нужна была не дата, дата оказалась побочным эффектом.
24 aleks_default
 
18.11.15
17:36
(23) - это уже не оперативное проведение
25 aleks_default
 
18.11.15
17:37
ищи где у тебя изменяется дата документа программно
26 simol
 
18.11.15
17:51
(24)создал новый документ. С ним тоже самое.
Замером производительности посмотрел - дата программно не изменяется.

Документы, которые проводятся быстрее 1 секунды - зло :)
27 ptiz
 
18.11.15
17:53
(23) Да, оперативное проведение как минимум сдвигает время на секунду вперед. Это фича.
У нас в период интенсивного ввода документов время на час убегает.
28 Cyberhawk
 
18.11.15
17:59
"есть процесс где человек в одной ситуации не сколько дней выкручивался именно нажимая много раз записать" // не представляю, как такое нажатие даже 3600 раз может кому-то помешать... или 3600 нажатий сдвигают оперативную отметку времени больше, чем на час вперед?
29 simol
 
18.11.15
18:02
(28) 5 человек по 5 минут нажимали по 2 раза в секунду записать документ. Это сдвиг 25 мину. Другие пользователи тоже проводят документы и у них уже +25 секунд. через пол часа это 5-ро опять проводят. и т.д.
30 simol
 
18.11.15
18:03
*+25 минут
31 simol
 
18.11.15
18:03
(27) Во-во. А в ситуации (29) это попа :)
32 Cyberhawk
 
18.11.15
18:23
Понятно. Ну тогда после записи в форме блокируй доступность кнопки "Записать" и подключай однократный обработчик ожидания, который разблокирует доступность кнопки
33 simol
 
18.11.15
18:43
(32)Да, полечил, но голову сломал почти