![]() |
Определение реального начала рейса
Доброго времени суток Дамы и Господа.
Я понимаю что уже всех достал своими вопросами, но прошу НЕ :tomato: :) Вопрос в следующем - есть рейс, например с 09.11.2013 23:53:00 по 10.11.2013 00:05:00, он благополучно попал в регистр 1с, но тут пользователь решил обновить данные по рейсам (данная возможность есть у пользователя), и указал период, например, с 10.11.2013 00:00:00 по 10.11.2013 23:59:59. В результате при получении рейсов WaitForComputing с периодом с 10.11.2013 00:00:00 по 10.11.2013 23:59:59 первый рейс по параметру TripStartRealTime имеет данные 10.11.2013 00:00:07, а не 09.11.2013 23:53:00, что не является в началом рейса, зафиксированного АвтоГРАФом. Параметров OLE сервера, которые бы мне помогли я не нашел к сожалению :( Подскажите плиз, каким образом можно получить начало (либо окончание рейса), который не ограничен периодом пользователя, а периодом АвтоГРАФа. Заранее спасибо и заранее сорри за столь большое количество тем :) |
Ну как бы это логично, что расчет проводится именно на том интервале, который Вы задали. Если это кусок рейса, то расчет ведется по куску рейса.
А иначе Вы закажете посчитать данные за 15 минут, а он Вам от начала рейса расчет всегда выполнять будет, который может и неделю длиться и 3 года (тут как кто разбивку задаст). Плюс еще тогда логично и конец последнего рейса искать, если он лежит за пределами расчетного интервала... В Вашем случае следует просто-напросто добавлять к анализируемому интервалу х часов или дней запаса (и справа и слева интервала) для чего можно ввести специальную константу и потом отфильтровывать рейсы, окончание которых раньше, чем нерасширенный интервал и начало позже, чем нерасширенный интервал. Что совсем несложно и быстро сделать средствами 1С. Как считаете ? |
Согласен, так и сделал, но это все отражается на:
1) Скорости обработки (+- час, это не проблема, если ТС единицы и сервер мощьный) 2) Какую константу ставить? Если настройка АвтоГРАФа - рейс - это от точки к точке, то ТС может проехать за 1 час, а может за месяц, утрирую конечно :) , поэтому и сделал проверку, если в периоде +-час только 1 рейс, то расширяем период, но опять же, см пункт 1 Я если, четно, думал что параметр TripStartRealTime - реальная дата начала рейса, то есть дата/время, зафиксированная АвтоГРАФом. Поэтому и сидел радостный что все так хорошо :) Спасибо за ответ :) :temazakryta: |
Цитата:
Чтобы ПО автоматом искало начало рейса оно точно так же должно ступенями (или фиксированной дельтой) откатываться назад по времени... что я и предложил сделать через OLE. А затраты процессорного времени на отфильтровку лишних рейсов - они смехотворны. Да и при чем тут сервер, кстати ??? OLE у Вас локально на машине отрабатывает. |
Vasiliy_09_05, кстати, Вы пробовали замерить время на расчет, допустим, 100 машин за сутки и за сутки + 1 час, 2 часа, 4 часа ? Какие дельты времени у Вас получились ?
|
Про скорость я говорил в следующем плане:
Допустим первый свой рейс ТС №1 начала в 01.10.2013, оператор ввел команду на обновление с 01.01.2010 (вероятность небольшая, но все же), алгоритм такой - у левой стороны периода (начало периода) отнимаем константу (час,день,неделя,месяц - чисто эмпирическая константа, какую поставлю, та и будет) а к правой, соответственно прибавляем ту же константу и определяем, получили полный рейс или нет (то есть что не ограничили рейс периодом, а получили его полностью). Теперь что касается скорости и выбора константы - выберем слишком маленькую константу (например в 1 час), цикл (пока ПолныйРейс=Ложь, то есть пока не вытащили весь рейс), будет крутиться очень долго, в моем примере (с 01.01.2010 по 01.10.2013) я даже не хочу на калькуляторе считать :) Если ставим большую константу - АвтоГРАФ может выдать (не помню как точно звучало сообщение, но что то типа слишком мало памяти, выберете меньший период) В своем посте я говорил про данную ситуацию |
Цитата:
У Вас реально рейсы сколько суток длятся в максимуме ? Можете такую статистику сделать для себя ? На 1С такая обработка пишется за 5 минут. Или 4. |
Текущее время: 10:47. Часовой пояс GMT. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot