![]() |
![]() |
|
v7: Правильное расположение документа если он первый в новом дне..? | ☑ | ||
---|---|---|---|---|
0
Злопчинский
21.11.12
✎
02:34
|
Имеем: ТИС
ТА: 20.11.12, 17:57 (последний документ в рабочем дне) Сейчас: 21.11.12, 02:31 . Допустим, создаем (записываем и проводим) программно новый документ в сегодняшней дате, надо: а) если первый док в дне - положить его текущим временем б) если не первый док в дне - положить его после ТА текущего дня. . по простому для а) не получается - или падает в 06:00 или в 12:00 извращаться с принудительной установкой текущего времени через определение что это док первый в дне - как-то мне кажется "кривовато". . ???? |
|||
1
zak555
21.11.12
✎
02:35
|
02:35 сейчас
|
|||
2
zak555
21.11.12
✎
02:37
|
если ТА переместить на сейчас и создать док -- время будет какое ?
|
|||
3
Aleksey
21.11.12
✎
02:39
|
Я так понимаю вся проблема что рабочая дата осталась вчера?
|
|||
4
Злопчинский
21.11.12
✎
02:40
|
(3) угу
|
|||
5
Злопчинский
21.11.12
✎
02:41
|
автоВремяТекущее не работает блин для программных доков...
|
|||
6
zak555
21.11.12
✎
02:42
|
РабочаяДата(<?>,)
Синтаксис: РабочаяДата(<Дата>,<РежимСменыРабДаты>) Назначение: Устанавливает значение рабочей даты. Возвращает значение рабочей даты, выбранной в текущем сеансе работы программы. Рабочая дата может изменяться при помощи главного меню Сервис-Параметры-Общие-РабочаяДата). Параметры: <Дата> - Необязательный параметр. Выражение типа дата. <РежимСменыРабДаты> - Необязательный параметр. Режим автоматической смены рабочей даты в полночь: 0 - не менять; 1 - менять с предупреждением; 2 - менять автоматически без предупреждения. Если параметр не указан, то режим не меняется и действует установка, выбранная в параметрах системы. |
|||
7
КонецЦикла
21.11.12
✎
02:43
|
См. общий журнал в ТиС
Там время устанавливается программно для существующего документа (если не получается для нового, забыл уже действительно ли это так) |
|||
8
Злопчинский
21.11.12
✎
02:44
|
тьху, блин!
рабочая дата - все нормальноЮ, она - соответсвует текущей дате. ТА осталось во вчера |
|||
9
КонецЦикла
21.11.12
✎
02:45
|
Зачем вообще это нужно? ТА ведь может оказать где угодно теоретически
Все проводимое в системе должно быть текущим временем имхо Время нужно синхронизировать на всех компах (если просто по сетке доступ) Для "своих" важных событий брать с сервера, GetDate() |
|||
10
zak555
21.11.12
✎
02:46
|
аплодисменты ?
|
|||
11
Попытка1С
21.11.12
✎
02:46
|
(5) Ы?
Док.АвтоВремяОтключить(); Док.ТекущееВремя(Ч,М,С); Док.УстановитьВремя(Ч,М,С); Док.Записать(); или я что-то не понял |
|||
12
Злопчинский
21.11.12
✎
02:47
|
(9) именно так!
факт в том, что если . ТА: 20.11.12, 17:57 (последний документ в рабочем дне) Сейчас: 21.11.12, 02:47 и выполнить Док.Новый(); Док.Записать(); Док.Провести(); . то док будет нифига не текущим временем. |
|||
13
Злопчинский
21.11.12
✎
02:49
|
(11) можно и так, примерно это и имел ввиду в () когда писал "..извращаться с принудительной установкой текущего времени"
. но как-то это блин негкошерно.. |
|||
14
zak555
21.11.12
✎
02:50
|
(12) а так :
Док.АвтоВремяОтключить(); Док.АвтоВремяТекущее(); Док.Новый(); Док.Записать(); Док.Провести(); *? |
|||
15
Попытка1С
21.11.12
✎
02:50
|
(13) Ну фиг знает, сто лет работает, кашерно не кашерно, это уже философия.
|
|||
16
КонецЦикла
21.11.12
✎
02:52
|
Помницца начал криво работать отчет у контролеров
Оказалось, что админы поставили компы в работу, на которых было не то что неточное время, а год немного не тот :) |
|||
17
Злопчинский
21.11.12
✎
02:58
|
(14) Прокатило!!!
. Док.Новый(); Док.АвтоВремяОтключить(); Док.АвтоВремяТекущее(); Док.Записать(); Док.Провести(); . встало на текущее время, ТА - на этом доке. нормуль. . но.... |
|||
18
Злопчинский
21.11.12
✎
03:00
|
теперь второй вопрос по варианту б)
созданный документ стоит в ТА. создаем еще раз программно документ - хочется чтобы он упал после этого дока на текущее время со сдвижкой ТА н атекущее время... |
|||
19
zak555
21.11.12
✎
03:01
|
(18) аналогично (17) ?
|
|||
20
КонецЦикла
21.11.12
✎
03:05
|
Может это как-то поможет:
Провести(<Режим>,<Знач>) Читаем в СП про Режим |
|||
21
Попытка1С
21.11.12
✎
03:07
|
(18) Так а что (17) при создании второго дока не ставит на текущее время?
|
|||
22
zak555
21.11.12
✎
03:07
|
Провести(<?>,);
Синтаксис: Провести(<Режим>,<Знач>) Назначение: Выполнить проведение документа. Возвращает: 1 - если проведение документа выполнено, 0 - иначе. Параметры: <Режим> - необязательный параметр. Число: 0 - проводить документ без сдвига ТА; 1 - проводить непроведенный документ реальным временем (со сдвигом ТА); 2 - перепроводить проведенный документ реальным временем (со сдвигом ТА); 3 - проводить любой (непроведенный, проведенный) документ реальным временем (со сдвигом ТА). Значение по умолчанию - 0. <Знач> - выражение произвольного типа, которое передается при запуске предопределенной процедуры ОбработкаПроведения (необязателен, по умолчанию - пусто). Замечание: Метод нельзя использовать в теле предопределенной процедуры ОбработкаПроведения. Если этот метод применяется в Модуле формы документа непосредственно к документу локального контекста, то данный метод отрабатывает те же действия, как интерактивное нажатие пользователем кнопки с формулой ''#Провести''. В этом случае, если параметр <Режим> опущен, то документ проводится в режиме, соответствующем установкам системы меню Сервис-Параметры. |
|||
23
Попытка1С
21.11.12
✎
03:07
|
У меня все работает, как создают так и валится хронологично.
|
|||
24
Попытка1С
21.11.12
✎
03:08
|
+23 Создают обработкой.
|
|||
25
zak555
21.11.12
✎
03:09
|
(23) Режим = 3 ?
|
|||
26
Попытка1С
21.11.12
✎
03:12
|
(25) У меня провести нету, только запись )
|
|||
27
Злопчинский
21.11.12
✎
03:20
|
Итого:
. меню-сервис-параметры системы, закладка "Оперативный учет", включены все галки. . ТА: 20.11.12, 17:57 (последний документ в рабочем дне) Сейчас: 21.11.12, 03:14 . Если Док.ДатаДок = ПолучитьДатуТА() Тогда //Док.АвтоВремяПослеТА(); ИначеЕсли Док.ДатаДок > ПолучитьДатуТА() Тогда Док.АвтоВремяОтключить(); Док.АвтоВремяТекущее(); КонецЕсли; Док.Записать(); Док.Провести(1); . Создаем, записываем и проводим программно новый документ в сегодняшней дате если первый док в дне - кладется текущим временем, зашибись... . следующий док - нихера не правильно.. пишется с квантом 10 сек относительно предыдущего.. а хочется - чтобы в текущее время... |
|||
28
КонецЦикла
21.11.12
✎
03:22
|
Блин, Чебур
У тебя же ТА сдвинулось, смотри свое Если первое |
|||
29
Злопчинский
21.11.12
✎
03:25
|
(28) в первом если - ничего не выполняется, заремлено.
|
|||
30
КонецЦикла
21.11.12
✎
03:26
|
Ну так вот именно
Первый документ меняет ТА И следующий в цикле уже попадает в первое Если Если я правильно понял процесс... |
|||
31
Злопчинский
21.11.12
✎
03:27
|
(30) да, правильно понял.
второй раз не в цикле выполняем, а вручную... - перед вторым выполнением прошло несколько минут от первого, выполняем - имеем документ упал первый +10 сек.. |
|||
32
Злопчинский
21.11.12
✎
03:28
|
хочу простого: при программном создании документа если ТА в текущем дне и время точки ТА - меньше текущего системного - чтобы падало в текущее системное, а не с квантом 10 сек от ТА
|
|||
33
Попытка1С
21.11.12
✎
03:30
|
(32) Попробуй убрать Провести(), сделай только Записать(), будет выстраиваться или нет.
|
|||
34
Злопчинский
21.11.12
✎
03:31
|
(33) хм...
|
|||
35
КонецЦикла
21.11.12
✎
03:33
|
(31) Ой, да ну тебя
Подскажи по МОДу и пойду я спать |
|||
36
Злопчинский
21.11.12
✎
03:33
|
По(33) пофиг, квант 10 сек
|
|||
37
Злопчинский
21.11.12
✎
03:34
|
(35) ой блин.. МОДа мне только не хватало. нет у меня распределенки.
|
|||
38
Злопчинский
21.11.12
✎
03:35
|
в от если интерактивно документ создать и записать - то все ок...
|
|||
39
Злопчинский
21.11.12
✎
03:35
|
уродство, блин, как я все ненавижу..
|
|||
40
Попытка1С
21.11.12
✎
03:36
|
(39) Покажи весь код, у меня все нормально создается. Только у меня провести нету, только запись.
|
|||
41
Злопчинский
21.11.12
✎
03:37
|
(27) весь код в (27)
|
|||
42
Злопчинский
21.11.12
✎
03:39
|
(40) весь код в (27)
|
|||
43
Злопчинский
21.11.12
✎
03:40
|
в параметрах на ОУ - включены все галки
|
|||
44
France
21.11.12
✎
03:40
|
а что то про "Записать в форме"?? не??.. как то "Записать#" чтоли?
|
|||
45
Злопчинский
21.11.12
✎
03:41
|
(40) в принципе если есть сумнение в моей адекватности - могу показать удаленно.. через тим
|
|||
46
Злопчинский
21.11.12
✎
03:42
|
(44) не, все в обработке, программно
|
|||
47
Злопчинский
21.11.12
✎
03:43
|
ну не ужели придется код писать по анализу времени та...
|
|||
48
France
21.11.12
✎
03:48
|
(46) таки и я о том же.. вызвать процедуру "ЗаписатьВФорме" или что то такое программно...
|
|||
49
France
21.11.12
✎
03:48
|
#Записать - запись документа в форме.. может, как и при интерактивном дата нужная установится
|
|||
50
Злопчинский
21.11.12
✎
03:52
|
(48) не... нафиг...
|
|||
51
France
21.11.12
✎
03:53
|
(50) зачему?? совсем не в тему??
|
|||
52
Злопчинский
21.11.12
✎
03:56
|
Итого:
меню-сервис-параметры, ОУ = все галки включены . Если Док.ДатаДок = ПолучитьДатуТА() Тогда ВремяТА = ПолучитьВремяТА(); Если ТекущееВремя() >= ВремяТА Тогда Док.АвтоВремяТекущее(); КонецЕсли; ИначеЕсли Док.ДатаДок > ПолучитьДатуТА() Тогда Док.АвтоВремяОтключить(); Док.АвтоВремяТекущее(); КонецЕсли; Док.Записать(); Док.Провести(1); . отрабатывает вроде как надо? - первый док в дне - ставит в текущее время, та = текущее время - следующие доки если хронология идет нормально - ставит после ТА в текущее время со сдвижкой ТА в текущее время. - если вдруг ТА в дне убежалось вперед - ставит +10 сек к ТА. |
|||
53
Злопчинский
21.11.12
✎
03:57
|
"отрабатывает вроде как надо?" - вопр.занк заменить на двтч!
отрабатывает вроде как надо: - первый док в дне - ставит в текущее время, та = текущее время - следующие доки если хронология идет нормально - ставит после ТА в текущее время со сдвижкой ТА в текущее время. - если вдруг ТА в дне убежалось вперед - ставит +10 сек к ТА. |
|||
54
Злопчинский
21.11.12
✎
04:00
|
.. да, кто-то может сказать что япрограммировать не умею.. а ну и хрен с ним... не умею, значит не умею. зато в базе порядок. и заепись!
. пойдк насиповские курсы учить. не уметь программировать на снеговике - гораздо больше возможностей! есть где развернуться... |
|||
55
Aleksey
21.11.12
✎
04:06
|
А если датаДок < Даты ТА?
|
|||
56
Злопчинский
21.11.12
✎
04:15
|
(55) ты думаешь ты самый умный? ;-)
. прорабатывал: если такое случится - то пофиг в какое время станет ;-) потому что если рабочая дата уйдет назад от ТА - то проведение этого дока - это вообще самое маленькое что может случится.. ;-) |
|||
57
Aleksey
21.11.12
✎
04:19
|
(56) Ради бога, главное чтобы они толпой в 23:59:59 не собирались
|
|||
58
Злопчинский
21.11.12
✎
04:24
|
(57) не, если толпа не шибко большая - то нормуль...
мы с табой вроде как-то проверяли, сколько в одну секунду влазит доков... - дофигища получилось... . или это иименно критично для 59-59..? |
|||
59
Злопчинский
21.11.12
✎
04:24
|
а в 23:58 - можно просто офигенную толпу собрать?
|
|||
60
Aleksey
21.11.12
✎
04:25
|
(58) не критично, главное чтобы не в кучи, иначе 1С-ка откажется записывать новые доки
|
|||
61
Злопчинский
21.11.12
✎
06:10
|
(600 да нифига подобного. в 1 секунду можно просто преофигенное количество доков записать. по крайней мере в разделенном режиме одному пользователю...
|
|||
62
Aleksey
21.11.12
✎
06:21
|
||||
63
Aleksey
21.11.12
✎
06:22
|
||||
64
Злопчинский
21.11.12
✎
16:08
|
(63) Епр ст там дал ценное замечание - в 21 посте. а так - в 23.59.59 можно программно запихнуть неимоверную кучу доков.
|
|||
65
Злопчинский
21.11.12
✎
16:10
|
здесь вот полезное еще чуток: АвтоВремяКонецДня() и прибавка по 10 секунд
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |