Как учесть секунды, при выполнении регламентной задачи
Здравствуйте
Есть регламетная задача, которая загружает данные продаж с другой системы. Расписание: каждый день, каждые 300 секунд. Со внешней системы получаю данные за отрезок времени Data between *a and *b. Переменные передаю из 1С a = ТекущаяДата() - 300, b = ТекущаяДата()
Но некоторые документы не попадают. Думаю, что проблема может быть в том, что эти отрезки времени не все секунды затрагивают... Как правильно поступить в этом случае? Какую-то переменную завести, чтобы записывать дату b с точностью до секунды или как?
Есть регламетная задача, которая загружает данные продаж с другой системы. Расписание: каждый день, каждые 300 секунд. Со внешней системы получаю данные за отрезок времени Data between *a and *b. Переменные передаю из 1С a = ТекущаяДата() - 300, b = ТекущаяДата()
Но некоторые документы не попадают. Думаю, что проблема может быть в том, что эти отрезки времени не все секунды затрагивают... Как правильно поступить в этом случае? Какую-то переменную завести, чтобы записывать дату b с точностью до секунды или как?
По теме из базы знаний
- 50+ советов для успешной сдачи 1С: Специалист по платформе
- АИТП. Управляем множественными версиями платформы на серверах, под управлением ОС Linux
- Как сделать интеграцию (обмен) с интернет-магазином? Пошаговый план действий (Часть 1)
- Распространенные ошибки разработчиков, приводящие к проблемам производительности
- Переход на Clickhouse для анализа метрик
Найденные решения
Угадать никогда не получится. Либо надо брать с запасом, либо рисовать систему обмена полноценную.
С запасом - это запускать каждые 5 минут, брать данные за 6 минут, ранее полученные не обрабатывать (как уже выше предложили).
Может системное время разниться в пару секунд в разных системах, может там дата документу присваивается за пару секунд до фактической записи и т.д....
С запасом - это запускать каждые 5 минут, брать данные за 6 минут, ранее полученные не обрабатывать (как уже выше предложили).
Может системное время разниться в пару секунд в разных системах, может там дата документу присваивается за пару секунд до фактической записи и т.д....
На самом деле - у этого варианта куча недостатков и засад:
1. Про время я уже сказал, но это самая мелочь.
2. Может отвалиться канал связи на полчаса. В итоге во внешней системе появится куча документов, а текущая 1С запросит только за 5 минут.
3. Текущая база 1С может уйти на сервисное обслуживание или обновление. В итоге вторая плодит документы, а третья их не получает.
Поэтому желательно такой обмен делать по схеме регистрации новых документов во внешней системе. Но если такой возможности нет, то можно изменить обмен на следующих условиях:
1. Отправлять в качестве параметров запроса во внешнюю систему не две дате интересуемого периода, а номер и дату последнего принятого документа (или даже ГУИД, если на той стороне тоже 1С и гуиды тоже синхронизируются). После чего внешняя система выдает результат начиная именнно с этой хронологической точки.
2. Для снижения нагрузки можно отправлять третий параметр - максимальное количество получаемых документов за один запрос. Этим параметром можно играться в режиме Предприятия в каких-нибудь настройках. Это поможет порционно и без пиковой нагрузки наверстать пропущенные документы за время локаута простым поднятием количества документов в одном пакете.
3. Иметь обработку для ручного запуска обмена с возможностью вручную указать необходимые параметры.
1. Про время я уже сказал, но это самая мелочь.
2. Может отвалиться канал связи на полчаса. В итоге во внешней системе появится куча документов, а текущая 1С запросит только за 5 минут.
3. Текущая база 1С может уйти на сервисное обслуживание или обновление. В итоге вторая плодит документы, а третья их не получает.
Поэтому желательно такой обмен делать по схеме регистрации новых документов во внешней системе. Но если такой возможности нет, то можно изменить обмен на следующих условиях:
1. Отправлять в качестве параметров запроса во внешнюю систему не две дате интересуемого периода, а номер и дату последнего принятого документа (или даже ГУИД, если на той стороне тоже 1С и гуиды тоже синхронизируются). После чего внешняя система выдает результат начиная именнно с этой хронологической точки.
2. Для снижения нагрузки можно отправлять третий параметр - максимальное количество получаемых документов за один запрос. Этим параметром можно играться в режиме Предприятия в каких-нибудь настройках. Это поможет порционно и без пиковой нагрузки наверстать пропущенные документы за время локаута простым поднятием количества документов в одном пакете.
3. Иметь обработку для ручного запуска обмена с возможностью вручную указать необходимые параметры.
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Чем плох вариант загружать с той же периодичностью регламентного задания в диапазоне с начала дня 00:00:00 по конец дня 23:59:59 и не модифицировать уже загруженные?
Или модифицировать например проведенные/помеченные на удаление.
Или модифицировать например проведенные/помеченные на удаление.
Угадать никогда не получится. Либо надо брать с запасом, либо рисовать систему обмена полноценную.
С запасом - это запускать каждые 5 минут, брать данные за 6 минут, ранее полученные не обрабатывать (как уже выше предложили).
Может системное время разниться в пару секунд в разных системах, может там дата документу присваивается за пару секунд до фактической записи и т.д....
С запасом - это запускать каждые 5 минут, брать данные за 6 минут, ранее полученные не обрабатывать (как уже выше предложили).
Может системное время разниться в пару секунд в разных системах, может там дата документу присваивается за пару секунд до фактической записи и т.д....
На самом деле - у этого варианта куча недостатков и засад:
1. Про время я уже сказал, но это самая мелочь.
2. Может отвалиться канал связи на полчаса. В итоге во внешней системе появится куча документов, а текущая 1С запросит только за 5 минут.
3. Текущая база 1С может уйти на сервисное обслуживание или обновление. В итоге вторая плодит документы, а третья их не получает.
Поэтому желательно такой обмен делать по схеме регистрации новых документов во внешней системе. Но если такой возможности нет, то можно изменить обмен на следующих условиях:
1. Отправлять в качестве параметров запроса во внешнюю систему не две дате интересуемого периода, а номер и дату последнего принятого документа (или даже ГУИД, если на той стороне тоже 1С и гуиды тоже синхронизируются). После чего внешняя система выдает результат начиная именнно с этой хронологической точки.
2. Для снижения нагрузки можно отправлять третий параметр - максимальное количество получаемых документов за один запрос. Этим параметром можно играться в режиме Предприятия в каких-нибудь настройках. Это поможет порционно и без пиковой нагрузки наверстать пропущенные документы за время локаута простым поднятием количества документов в одном пакете.
3. Иметь обработку для ручного запуска обмена с возможностью вручную указать необходимые параметры.
1. Про время я уже сказал, но это самая мелочь.
2. Может отвалиться канал связи на полчаса. В итоге во внешней системе появится куча документов, а текущая 1С запросит только за 5 минут.
3. Текущая база 1С может уйти на сервисное обслуживание или обновление. В итоге вторая плодит документы, а третья их не получает.
Поэтому желательно такой обмен делать по схеме регистрации новых документов во внешней системе. Но если такой возможности нет, то можно изменить обмен на следующих условиях:
1. Отправлять в качестве параметров запроса во внешнюю систему не две дате интересуемого периода, а номер и дату последнего принятого документа (или даже ГУИД, если на той стороне тоже 1С и гуиды тоже синхронизируются). После чего внешняя система выдает результат начиная именнно с этой хронологической точки.
2. Для снижения нагрузки можно отправлять третий параметр - максимальное количество получаемых документов за один запрос. Этим параметром можно играться в режиме Предприятия в каких-нибудь настройках. Это поможет порционно и без пиковой нагрузки наверстать пропущенные документы за время локаута простым поднятием количества документов в одном пакете.
3. Иметь обработку для ручного запуска обмена с возможностью вручную указать необходимые параметры.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)