|   |   | 
| 
 | v7: Слетает точка актуальности при программном проведении документов | ☑ | ||
|---|---|---|---|---|
| 0
    
        Dolphinbet 05.03.15✎ 19:04 | 
        Слетает точка актуальности при программном проведении документов. Документы проводятся со сдвигом точки актуальности, предварительно устанавливается текущее время. Как бороться?...     | |||
| 1
    
        Злопчинский 05.03.15✎ 19:34 | 
        Меню-Сервис-Параметры-Закладка "Оперативный учет"     | |||
| 2
    
        Dolphinbet 05.03.15✎ 19:42 | 
        (1) Так там для новых документов настройки? А у меня документы не новые     | |||
| 3
    
        Остап Сулейманович 05.03.15✎ 19:47 | 
        (0) У метода Провести() есть параметры. У ДенисаЧ можно купить СП и там почитать.     | |||
| 4
    
        Dolphinbet 05.03.15✎ 19:49 | 
        (3)ну да, я делаю Провести(1)....     | |||
| 5
    
        Остап Сулейманович 05.03.15✎ 19:53 | 
        (4) И что?
 В моем СП : "1 - проводить непроведенный документ реальным временем (со сдвигом ТА)". Ровно так как описано в (0). Зачем с этим бороться? | |||
| 6
    
        Dolphinbet 05.03.15✎ 19:54 | 
        (5) Бороться не с этим, а с тем что при этом слетает точка актуальности...     | |||
| 7
    
        Остап Сулейманович 05.03.15✎ 19:59 | 
        (6) Давай по буквам. Как должно быть.
 Случай 1. Дата документа меньше или равна ПолучитьДатуТА(). Случай 2. Дата документа больше ПолучитьДатуТА() Как должно быть в каждом случае? | |||
| 8
    
        Злопчинский 05.03.15✎ 20:02 | 
        (6) куда она слетает? - назад? это врядли..вперед - ну так это штатное поведение программы
 или все таки не ТА а ГП? | |||
| 9
    
        Злопчинский 05.03.15✎ 20:03 | 
        Смотреть в коде наштрямканое ручками ПроводитьПослеТА()...?     | |||
| 10
    
        Злопчинский 05.03.15✎ 20:05 | 
        (7) должно быть три случая, бо во втором случае есть специфика
 Случай 1. Дата документа меньше ПолучитьДатуТА(). Случай 2. Дата документа равна ПолучитьДатуТА(). Случай 3. Дата документа больше ПолучитьДатуТА() | |||
| 11
    
        Dolphinbet 05.03.15✎ 20:44 | 
        (6) не всегда, но довольно часто. Из-за многопользовательского режима работы походу     | |||
| 12
    
        Dolphinbet 05.03.15✎ 20:44 | 
        (8) назад на 01.01.2015     | |||
| 13
    
        Dolphinbet 05.03.15✎ 20:52 | 
        (10) ПолучитьДатуТА() - это дата, но тут важно еще и время. Дата документа везде равна ПолучитьДатуТА() и равна ТекущаяДата()     | |||
| 14
    
        Dolphinbet 05.03.15✎ 20:54 | 
        (13) а вот что делать со временем документа непонятно.. Ставлю сейчас ТекущееВремя()     | |||
| 15
    
        Dolphinbet 05.03.15✎ 20:57 | 
        (14) думаю в этом как раз косяк и заключается, так как теоретически возможна ситуация, когда время этого документа окажется меньше времени последнего проведенного документа на котором стоит ТА. Это как предположение     | |||
| 16
    
        Dolphinbet 05.03.15✎ 21:01 | 
        Может попробовать делать это в явной транзакции?     | |||
| 17
    
        Злопчинский 05.03.15✎ 21:40 | 
        Ты хочешь сказать, что у тебя НАЗАД слетает ТА...???? - это вообщем-то не секундное дело... если слетает на 01.01.2015 ТОЧКА АКТУАЛЬНОСТИ - это вообщем-то  пересчет регистров весьма ощутимый будет... что-то там у тебя не то вкоде. смотри что наштрямкано руками. что наштрямканов в загрузках всяких, может бвть УРБД подмешивает...?     | |||
| 18
    
        Dolphinbet 06.03.15✎ 13:26 | 
        (17) как раз вопрос в том что не так)     | |||
| 19
    
        varelchik 06.03.15✎ 14:17 | 
        (18)вы точно уверены что это ТА а не ГП?
 Сдается мне что у вас Граница Последовательности слетает а не Точка актуальности. Сделайте скриншот. | |||
| 20
    
        varelchik 06.03.15✎ 14:18 | 
        правда есть еще одна хрень.
 Называется УстановитьТА() Но опять же в разделенном режиме оно не работает. | |||
| 21
    
        Dolphinbet 06.03.15✎ 14:56 | 
        (19) Да, точно. Так как я ее восстанавливаю каждый раз, пересчетом итогов     | |||
| 22
    
        varelchik 06.03.15✎ 15:28 | 
        (21)А вы определитесь кто ее туда сносит.
 Если база распределенная вот тута уже проблема. | |||
| 23
    
        Dolphinbet 06.03.15✎ 15:29 | 
        (22) Нет, не распределенная, обычная складская база.     | |||
| 24
    
        Ёпрст гуру 06.03.15✎ 15:30 | 
        ГП слетает ?
 Так и она должна там быть | |||
| 25
    
        Dolphinbet 06.03.15✎ 15:31 | 
        (24) Нет, ТА     | |||
| 26
    
        varelchik 06.03.15✎ 15:31 | 
        +(22) и восстанавливать ГП надо с помощью восстановления последовательности, а не тупым перепроведением документов.
 1.Есть штатный механизм восстановления(только монопольно). 2.Я у себя сделал обработку для восстановления (разделенный режим). По ночам стартует агент и запускает восстановление. Так что к началу закрытия месяца у меня граница находиться почти у текущей даты. | |||
| 27
    
        varelchik 06.03.15✎ 15:32 | 
        (25) сам же (21) подтвердил что ГП.
 ТА не может быть меньше текущий даты или последнего проведенного документа. | |||
| 28
    
        Dolphinbet 06.03.15✎ 15:33 | 
        (27) подтвердил, что слетает ТА а не ГП :)     | |||
| 29
    
        varelchik 06.03.15✎ 15:36 | 
        У меня что-то типа было с откатом ТА назад, но опять таки на один единственный документ.
 Но это в среде УРБД.Когда идет обмен и пользователь пытается провести документ. Так что в модуле проведения проверяю не открыт ли в момент проведения Конфигуратор (что говорит о том что идет обмен). Посему то что я описал выше уже 2 года как перестало появляться. Так что не надо доказывать что это слетает ТА. | |||
| 30
    
        varelchik 06.03.15✎ 15:37 | 
        Скриншот выложи.     | |||
| 31
    
        Dolphinbet 06.03.15✎ 15:37 | 
        (30) как слетит - выложу)     | |||
| 32
    
        varelchik 06.03.15✎ 15:37 | 
        +(30)  А так это без предметный тряп.     | |||
| 33
    
        varelchik 06.03.15✎ 15:39 | 
        И желательно с открытым Общим журналом.
 После слета у тебе все проведенные документы должны быть с зелеными галками. | |||
| 34
    
        Dolphinbet 06.03.15✎ 15:39 | 
        (33 да, так и есть)     | |||
| 35
    
        varelchik 06.03.15✎ 15:39 | 
        +(33)Или я неправ?     | |||
| 36
    
        varelchik 06.03.15✎ 15:40 | 
        (34)Тогда ищи того придурка что сноси.
 В журнале регистрации есть об этом информация. | |||
| 37
    
        Dolphinbet 06.03.15✎ 15:41 | 
        (36) Это моя кнопка сносит, по которой проводятся документы     | |||
| 38
    
        Dolphinbet 06.03.15✎ 15:44 | 
        ДокПеремещение = НайтиПеремещение(ДокЗаявка);
 //Если ПустоеЗначение(ДокПеремещение)=0 Тогда Если ДокПеремещение<>"" Тогда Если ДокПеремещение.ДатаДок<>ТекущаяДата() тогда ДокПеремещение.ДатаДок = ТекущаяДата(); ТекВремя = ТекущееВремя(чч,мм,сс); ДокПеремещение.УстановитьВремя(чч,мм,сс); глСообщить("Точка актуальности перед записью перемещения внутрискладского " + ПолучитьТА(),,,ДокПеремещение); ДокПеремещение.Записать(); глСообщить("Точка актуальности после записи перемещения внутрискладского " + ПолучитьТА(),,,ДокПеремещение); Иначе ТекВремя = ТекущееВремя(чч,мм,сс); ДокПеремещение.УстановитьВремя(чч,мм,сс); глСообщить("Точка актуальности перед записью перемещения внутрискладского " + ПолучитьТА(),,,ДокПеремещение); ДокПеремещение.Записать(); глСообщить("Точка актуальности после записи перемещения внутрискладского " + ПолучитьТА(),,,ДокПеремещение); КонецЕсли; //ДокПеремещение.АвтоВремяКонецДня(); //ДокПеремещение.АвтоВремяТекущее(); глСообщить("Точка актуальности перед проведением перемещения внутрискладского " + ПолучитьТА(),,,ДокПеремещение); Если ДокПеремещение.Провести(1) <> 1 тогда глСообщить("Точка актуальности после неудачного проведения перемещения внутрискладского " + ПолучитьТА(),,,ДокПеремещение); Сообщить("Не удалось провести "+ДокПеремещение.ТекущийДокумент(),"!"); Возврат; КонецеСли; глСообщить("Точка актуальности после проведения перемещения внутрискладского " + ПолучитьТА(),,,ДокПеремещение); КонецЕсли; | |||
| 39
    
        Dolphinbet 06.03.15✎ 15:45 | 
        Вот код, что здесь не так?     | |||
| 40
    
        Ёпрст гуру 06.03.15✎ 15:57 | 
        (39) Этот код не может двинуть ТА назад     | |||
| 41
    
        Dolphinbet 06.03.15✎ 15:58 | 
        (40) а вот может :)     | |||
| 42
    
        Ёпрст гуру 06.03.15✎ 15:58 | 
        + Этот код не может двинуть ТА вперёд, если дата дока<> дате ТА     | |||
| 43
    
        Ёпрст гуру 06.03.15✎ 15:58 | 
        (41) ваши доказательства ?     | |||
| 44
    
        Ёпрст гуру 06.03.15✎ 16:00 | 
        тем более, в режиме 1 в методе Провести - он только не проведенный док сможет толкнуть вперёд, но никак не назад.     | |||
| 45
    
        varelchik 06.03.15✎ 16:01 | 
        (42)Согласен на все 100.
 Щоб снести ТА назад надо использовать как минимум УстановитьТАна() или УстановитьТАпо() Иначе только в монопольном и установка ТА. Или же прямым вмешательством в 1ssystem | |||
| 46
    
        Ёпрст гуру 06.03.15✎ 16:02 | 
        +45 ну или уриб может ТА сдвинуть еще     | |||
| 47
    
        Остап Сулейманович 06.03.15✎ 16:04 | 
        (45) Банальное Операции->Проведение документов именно так себя и ведет, если при "Групповой обработке" возникает рантайм ошибка. И тогда ТА останавливается на последнем проведенном документе.     | |||
| 48
    
        varelchik 06.03.15✎ 16:08 | 
        (47)опять же это в монопольном режиме.
 Не спорю. Но на сколько тута описано это делается в разделенном режиме. | |||
| 49
    
        Ёпрст гуру 06.03.15✎ 16:09 | 
        (47) и ?
 Мы сейчас за код говорим, а не о штатной возможности, подвинуть ТА куда угодно интерактивно в монопольном режиме. | |||
| 50
    
        varelchik 06.03.15✎ 16:10 | 
        +(46) ну типа да.
 Опять же вперед но никак не назад. Ну если в ПБ ктось не здвинул монопольно назад.(гы)руки бы ему оторвал. | |||
| 51
    
        Остап Сулейманович 06.03.15✎ 16:11 | 
        (49) Вы то может и да... А вот ТС фиг знает о чем. Это я так ... телепатирую.     | |||
| 52
    
        Остап Сулейманович 06.03.15✎ 16:12 | 
        + (51) Поскольку из кода ТА можно двинуть только вперед. За исключением УстановитьТА.     | |||
| 53
    
        Dolphinbet 06.03.15✎ 16:13 | 
        И вот опять слетела :(     | |||
| 54
    
        Ёпрст гуру 06.03.15✎ 16:14 | 
        (53) не верю.     | |||
| 55
    
        Остап Сулейманович 06.03.15✎ 16:15 | 
        (53) Колись : где была до "слетела" и куда встала после.     | |||
| 56
    
        Dolphinbet 06.03.15✎ 16:16 | 
        как скриншот сюда вставить?)     | |||
| 57
    
        Остап Сулейманович 06.03.15✎ 16:16 | 
        (56) Да ты просто дату и время напиши. До и после.     | |||
| 58
    
        Ёпрст гуру 06.03.15✎ 16:17 | ||||
| 59
    
        Dolphinbet 06.03.15✎ 16:17 | 
        вы же не верите на слово)     | |||
| 60
    
        Dolphinbet 06.03.15✎ 16:19 | ||||
| 61
    
        Dolphinbet 06.03.15✎ 16:22 | 
        ТА слетает, если этот код выполняется одновременно 2 пользователями.     | |||
| 62
    
        Ёпрст гуру 06.03.15✎ 16:22 | 
        (60) И ?
 06.03.2015 <>01.01.2015 Где там слёт то говоришь ? | |||
| 63
    
        Dolphinbet 06.03.15✎ 16:23 | 
        (62) Из скриншота видно что ТА слетела на 01.01.2015     | |||
| 64
    
        Dolphinbet 06.03.15✎ 16:24 | 
        Вы че там уже праздник отмечаете что ли?)     | |||
| 65
    
        DJ Anthon 06.03.15✎ 16:25 | 
        (64) я тоже не вижу     | |||
| 66
    
        Ёпрст гуру 06.03.15✎ 16:26 | 
        (63) в табло написано - 06.03.2015     | |||
| 67
    
        DJ Anthon 06.03.15✎ 16:27 | 
        (66) извините, оффтоп можно? только что заморочился с одной проблемкой, надо проводить из одного документа два других. сделал известным способом через открытьформумодально, но проводятся все документы, кроме тех, которые находятся в день, в котором стоит точка актуальности. если день совпадает с ТА, 1С говорит, что существуют более поздние проведенные документы. перед проведением выравниваю время документов на одно.
 как такие проводить? пока что сделал через ожидание, работает вроде, документы мелкие. | |||
| 68
    
        Dolphinbet 06.03.15✎ 16:28 | 
        (66) смотрите в строке состояния     | |||
| 69
    
        Ёпрст гуру 06.03.15✎ 16:29 | 
        (68) ищи того, кто 1ssystem ручонками правит (прямым запросм, например)     | |||
| 70
    
        DJ Anthon 06.03.15✎ 16:30 | 
        (68) а, у меня браузер обрезает низ )     | |||
| 71
    
        Dolphinbet 06.03.15✎ 16:31 | 
        (69) кто это может делать?     | |||
| 72
    
        Ёпрст гуру 06.03.15✎ 16:31 | 
        база файловая ?     | |||
| 73
    
        Dolphinbet 06.03.15✎ 16:31 | 
        (72) скульная     | |||
| 74
    
        Ёпрст гуру 06.03.15✎ 16:32 | 
        смотри, какие обращения и когда были у таблички _1SSYSTEM     | |||
| 75
    
        Dolphinbet 06.03.15✎ 16:32 | 
        (70) В журнале я тоже вывожу ТА перед проведением и после проведения дока, видно что до проведения она 06.03.2015 а после пустая     | |||
| 76
    
        Ёпрст гуру 06.03.15✎ 16:34 | 
        + Ищи в базе документы с пустой датой     | |||
| 77
    
        Ёпрст гуру 06.03.15✎ 16:34 | 
        Если такой док провести - та полетит на него     | |||
| 78
    
        Ёпрст гуру 06.03.15✎ 16:35 | 
        (75) воткни туда проверку на дату дока (ты ж её вроде как меняешь)     | |||
| 79
    
        Злопчинский 06.03.15✎ 16:35 | 
        Подсказка: ПустойНомерГТД
 Для неимпортных товаров указывай тупо ГТД, которая номер ГТД = три прочерка, страна происхождения три прочерка. и все. | |||
| 80
    
        Ёпрст гуру 06.03.15✎ 16:36 | 
        (79) Кто здесь ?!     | |||
| 81
    
        Dolphinbet 06.03.15✎ 16:37 | 
        (78) ну вроде в журнале видно, что дата у проводимого документа не пустая. Я все вывожу в журнал.     | |||
| 82
    
        Ёпрст гуру 06.03.15✎ 16:38 | 
        (81) как бэ видно, что там пустая дата :)     | |||
| 83
    
        Dolphinbet 06.03.15✎ 16:39 | 
        это уже после того как ТА слетела. До проведения дата не пустая...     | |||
| 84
    
        Ёпрст гуру 06.03.15✎ 16:40 | 
        проверь _1sjourn на наличие пустых дат (01.01.1753)     | |||
| 85
    
        Злопчинский 06.03.15✎ 16:41 | 
        однозначно криво написанный код, возможно с прямым вмешательством в системную таблицу. или же чтото с урбд     | |||
| 86
    
        Злопчинский 06.03.15✎ 16:41 | 
        (80) Ай эм     | |||
| 87
    
        Dolphinbet 06.03.15✎ 16:41 | 
        (85) код можно посмотреть выше. Что в нем кривого?     | |||
| 88
    
        Ёпрст гуру 06.03.15✎ 16:43 | 
        ну и..реиндекс базы, обновление статистики, на крайнея чекдб не помешает     | |||
| 89
    
        Ёпрст гуру 06.03.15✎ 16:45 | 
        ну и это запусти     | |||
| 90
    
        Ёпрст гуру 06.03.15✎ 16:45 | ||||
| 91
    
        Злопчинский 06.03.15✎ 16:45 | 
        (87) хз чьто там в глСообщить и что там в внутрискладском перемещении - нам оотсюда не видно все ваши процессы     | |||
| 92
    
        Ёпрст гуру 06.03.15✎ 16:46 | 
        А так, надо профайлером ловить, в какой момент идет обращение к 1ссистем и че за запрос был     | |||
| 93
    
        Ёпрст гуру 06.03.15✎ 16:50 | 
        По ЖР видно, что  проводишь с пустой датой.. у тебя же там 2 проведения подряд     | |||
| 94
    
        Dolphinbet 06.03.15✎ 18:16 | 
        Мне кажется Вы глубоко копаете. Все просто я устанавливаю время документа равным текущему времени и провожу со сдвигом ТА. То есть после проведения ТА будет на документе. При этом если параллельно запущен такой же алгоритм то запросто может оказаться, будет проведенный документ после даты текущего проводимого документа. То есть пользователю показывается окошко с вопросом что существуют долее поздние проведенные документы. Первый вопрос как убрать это окно?     | |||
| 95
    
        Злопчинский 06.03.15✎ 18:33 | 
        (94) ты не хочешь слушать и копать
 "То есть пользователю показывается окошко с вопросом что существуют долее поздние проведенные документы." - это коно вываливается в том случае, если ТА уже "сломано" - то есть ТА стоит на какой-то точке времени\документе - а после ТА существует куча проведенных документов. . то есть в этот момент та у тебя уже сломана. . сдвиг ТА назад связан всегда с ресурсоемкой операцией отката/пересчета текущих итогов на начало месяца - у тебя на 01.01.15 - это не происходит мгновенно. это как правило длительный процесс если он выполняется штатно - ну по крайней мере с десяток секунд. так как ты не жалуешься на задержки при проведении и таком слете та - это возможно значит что что-то где-то дописанов ручную в обход платформы 9в 1ссистемз например где указана точка та). или ты не всю инфу даешь. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |