|
HTTPСоединение Как получить только новые файлы? | ☑ | ||
---|---|---|---|---|
0
ad205
20.04.20
✎
11:34
|
Всем Добрый день.
Подскажите пожалуйста, как по HTTPСоединение получить только новые файлы? Ситуация следующая, есть запрос на сервер ЕГАИС Соединение = Новый HTTPСоединение(СокрЛП(ИмяСервера),СокрЛП(ПортСервера)); ВременныйФайл = ПолучитьИмяВременногоФайла("XML"); СтрокаЗапроса ="opt/out?refresh=true" Соединение.Получить(СтрокаЗапроса, ВременныйФайл); Так вот он получает все файлы, что там есть. А нужно получить только те что он еще не получал, в связи с чем вопрос, как это организовать? Файлов там очень много и количество их увеличивается, скачивать все, а потом проверять их не вариант. Можно ли как то получать только те, которых еще не получали или с отбором по периоду их записи на сервере? Вариант с удалением файлов на серваке, тоже не подходит((( Всем спасибо за продуктивный ответ. |
|||
1
acht
20.04.20
✎
11:36
|
Что такое "новый файл" и кто знает, какие файлы уже получались?
|
|||
2
ДенисЧ
20.04.20
✎
11:43
|
Если сервер такого не умеет (а по хттп для этого нужно писАть отдельную приблуду), то нет.
|
|||
3
ad205
20.04.20
✎
11:46
|
На площадке ЕГАИС, записываются ответы от ЕГАИСА, эти ответы от туда скачиваются к нам. Сейчас 1С"УТМ" после каждого получения этих файлов, удаляет их на площадке ЕГАИС и именно так понимает, что все последующие появившиеся записи на данной площадке являются новыми. НО удаление этих данных на площадке ЕГАИСА вариант не правильный. Вот и вопрос как бы это обойти. Записей там очень много и скачивание каждый раз всех для анализа это то же не вариант. Вот и прошу совета как быть(((
|
|||
4
Garykom
гуру
20.04.20
✎
11:58
|
(3) Делай запросы к УТМ а не к "площадке ЕГАИС"
|
|||
5
ad205
20.04.20
✎
12:08
|
(4) Заказчик поставил условие, что бы работал типовой механизм. И он работает. Если УТМ не затирает данные.
Предыстория такая: Есть старая база УТ 10.2, к ней поставили УТМ и дописали обработчики. Сейчас поставлена новая 1С УТАП, которая типовая и ею должна остаться, на момент перехода сразу всех перевести на новую, возможности нет. Поэтому часть работает с Новой, а основная масса пока на старой. От сюда и вопрос, как изменить УТМ, что бы она не зачищала данные на площадке и в то же самое время считывала только новые файлы на площадке ЕГАИС, а не все? |
|||
6
ad205
20.04.20
✎
12:09
|
Как что бы не зачищала, вопросов нет, но тогда она фигачит все подряд по миллиону раз
|
|||
7
sitex
naïve
20.04.20
✎
12:10
|
(6) Документация что об этом говорит по УТМ? Читал ?
|
|||
8
ad205
20.04.20
✎
12:15
|
(7) НЕТ, тут и УТМ сюдя по коду дописанный( Ссылкой поделитесь, может там что найду.
|
|||
9
ad205
20.04.20
✎
12:19
|
УТМ в данном случае это что то написанное на 1С, а не федеральная площадка ЕГАИС
|
|||
10
ad205
20.04.20
✎
12:21
|
Короче вопрос опять прежний, как по HTTPСоединение получить только новые файлы? или только те что появились там сегодня?
|
|||
11
sitex
naïve
20.04.20
✎
12:24
|
(9) И что это меняет ?
|
|||
12
NorthWind
20.04.20
✎
12:26
|
(10) Если только написать свой веб-сервис, который по отдельному запросу будет возвращать имена файлов с датами, анализировать ответ на клиенте, определять что уже скачано, и потом скачивать только те файлы, которые надо.
|
|||
13
sitex
naïve
20.04.20
✎
12:28
|
(10) Если нет таких запросов к площадке ЕГАИСА , то УТМ ваша тоже этого не сможешь. Смотрю доку по версии 4.0.2, b посмотрите там страницу 18-19.
|
|||
14
sitex
naïve
20.04.20
✎
12:29
|
(12) Ну какой то временный "Костыл".
|
|||
15
NorthWind
20.04.20
✎
12:30
|
(14) аналог команды dir протокола ftp, по сути. ftp это умеет. http нет.
|
|||
16
ad205
20.04.20
✎
12:32
|
Извиняюсь, я тут всех запутал терминами(
Ситуация тут следующая: Имеем: 1) Самописная УТ 10.2. 2) УТМ 3) На 1С самописная конфа, которая считывает с УТМ данные, записывает их и удаляет на УТМ. 4) Типовая 1С УТАП на базе УТ 10.3, которая работает напрямую с УТМ. Так вот, вопрос по самописке из пункта (3) и именно в ней этот код: Соединение = Новый HTTPСоединение(СокрЛП(ИмяСервера),СокрЛП(ПортСервера)); ВременныйФайл = ПолучитьИмяВременногоФайла("XML"); СтрокаЗапроса ="opt/out?refresh=true" Соединение.Получить(СтрокаЗапроса, ВременныйФайл); Соединение.Удалить(ПолученныеФайлы) Как мне получать только новые файлы. Если такого метода в HTTPСоединение нет, то пойду изобретать что то с обработкой всех скаченных файлов((( |
|||
17
sitex
naïve
20.04.20
✎
12:34
|
(15) там вроде есть по страничный вывод “/opt/out?offset=1&limit=200” , с timestamp
|
|||
18
Garykom
гуру
20.04.20
✎
12:48
|
(17) Угу тоже думал по постраничку и запоминать в 1С на какой с странице или файле остановились в последний раз.
Но надо убедиться что там сортировка в выдаче правильная. |
|||
19
sitex
naïve
20.04.20
✎
12:54
|
(18) Вообще да соглашусь с (12) что лучше поднять какой нить Сервер WebSocket, и с него уже слушать и передавать данные на несколько подсистем , баз и etc.
|
|||
20
ad205
20.04.20
✎
12:58
|
Подскажите, параметр "replyId" уникален для каждого ответа?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |