![]() |
![]() |
|
v7: Как программно двигать КонецДня? | ☑ | ||
---|---|---|---|---|
0
diesell
27.07.11
✎
12:59
|
Когда документу меняешь время, и ставишь записать в конец дня.
Мне нужно этот конец дня установить самому. |
|||
1
Азат
27.07.11
✎
12:59
|
АвтоВремяТекущее и т.д. и т.п.
СП в помощь) |
|||
2
IamAlexy
27.07.11
✎
13:00
|
как программно сделать чтобы году было 532 дня а в сутка 45 часов?
|
|||
3
zak555
27.07.11
✎
13:00
|
открыть модуль общего журнала документов и посмотреть процедуру
|
|||
4
diesell
27.07.11
✎
13:05
|
О спасибо про модуль журнала
|
|||
5
zak555
27.07.11
✎
13:08
|
не за что
|
|||
6
diesell
27.07.11
✎
13:12
|
Но это немного не там
|
|||
7
diesell
27.07.11
✎
13:13
|
При записи нового документа появляется табличка с выбором времени записи, вот там есть конецдня
|
|||
8
zak555
27.07.11
✎
13:14
|
отключить автовРемя и назначить своё
|
|||
9
Vladal
27.07.11
✎
13:43
|
АвтоВремяКонецДня()
|
|||
10
Vladal
27.07.11
✎
13:53
|
+(9) Поспешил.
Однажды решал аналогичную задачу, чтобы ПН всегда в начало дня проводилась. Делал так - 8-00 условное начало дня. Выборка документов одного вида (ПриходнаяНакладная), тупой перебор (некошерно, но работает), определение самого молодого документа, т.е. это первый в выборке на указанную дату. Далее чтение его времени и установка записываемому документу полученное время минус 10 секунд. Аналогично и с концом дня. Получить выборку с обратным порядком. Если документ раньше условного конца (18-00, 20-00 и т.д.), ставим начальное время (18-00, 20-00...) Берем снова выборку и теперь к времени добавляем 10 секунд. Задача решена. |
|||
11
diesell
27.07.11
✎
14:07
|
Я вот так сделал:
АвтоВремяОтключить(); Док=СоздатьОбъект("Документ"); Док.ОбратныйПорядок(1); Док.ВыбратьДокументы(СформироватьПозициюДокумента(ПолучитьПозицию(),1),ДатаДок); Если Док.ПолучитьДокумент()=0 Тогда АвтоВремяТекущее(); Иначе ч=0; м=0; с=0; Док.ПолучитьВремя(ч,м,с); с=с+1; Если с = 60 Тогда м=м+1; с=0; КонецЕсли; Если м = 60 Тогда ч=ч+1; м=0; КонецЕсли; УстановитьВремя(ч,м,с); КонецЕсли; |
|||
12
zak555
27.07.11
✎
14:13
|
(11) так я ж написал уже это
зы заменить блок если на цикл АвтоВремяТекущее(); в конце блока |
|||
13
Ёпрст
гуру
27.07.11
✎
14:25
|
(11)
вот этот весь код лишний: Если с = 60 Тогда м=м+1; с=0; КонецЕсли; Если м = 60 Тогда ч=ч+1; м=0; КонецЕсли; достаточно ч=0; м=0; с=0; Док.ПолучитьВремя(ч,м,с); УстановитьВремя(ч,м,с+1); |
|||
14
diesell
27.07.11
✎
14:28
|
(13) а проверка с на значения более 60 ?
Или платформа сама догадается и минуту добавит? |
|||
15
diesell
27.07.11
✎
14:28
|
(12) зачем цикл?
|
|||
16
Vladal
27.07.11
✎
14:50
|
(14) Сама догадается.
|
|||
17
diesell
27.07.11
✎
14:52
|
Блин не пойму, сейчас начал проверять - не работает это.
Создаю документ, специально ставлю ему время 20:00, потом провожу. Потом распровожу, и вручную ставлю время 14:00 Создаю новый документ, в ПриЗаписи() он проходит этот код, устанавливает время на 14:01, выходит из процедуры, а в журнале все равно создается со временем 20ч Что такое? |
|||
18
KRV
27.07.11
✎
14:53
|
КонецДня.Прогаммно.Подвинуть() = 1
|
|||
19
diesell
27.07.11
✎
15:28
|
Почемуто после:
АвтоВремяОтключить(); УстановитьВремя(ч,м,с); Документ все равно записывается по времени ТА, можно это как то обойти? |
|||
21
Ёпрст
гуру
27.07.11
✎
15:34
|
(17) где код пишешь и какой он сейчас ?
+ если в коде строчка ПроводитьПослеТА(....) |
|||
22
Ёпрст
гуру
27.07.11
✎
15:34
|
+21 есть ли ?
|
|||
23
diesell
27.07.11
✎
15:55
|
Меня тут забанили немного. По делу:
Добавил в конце кода ПроводитьПослеТА(-1) и док стал записываться и проводиться моим временем. А вот время ТА никак не двигается, так и стоит на 20:00 Как бы ее назад вернуть, а то получается что все доки проводятся задним числом. |
|||
24
ДенисЧ
27.07.11
✎
15:58
|
(23) УстановитьТАНа() не предлагать?
|
|||
25
diesell
27.07.11
✎
16:01
|
Да можно предложить, только куда ее засунуть :)
С документа то вызвать не получается. И вообще она разве монопольный доступ не требует? |
|||
26
ДенисЧ
27.07.11
✎
16:03
|
(25) требует...
А нефиг было заталкивать её незнамо куда :-0 |
|||
27
diesell
27.07.11
✎
16:07
|
Та проблема в том, что пользователи создают документы завтрашней датой с текущем временем. Т.е. если я сегодня в 20:00 записываю док на завтра, то завтра он будет со временем 20:00. Наступает завтра и кто-то берет и проводит такой документ, естественно ТА уезжает, остальные доки за ним, и уже к обеду у них кончается время и все встает... Начинается свистопляска с восстановлением времени, распроведением-проведением и т.д.
Ищется способ этого избежать. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |