Имя: Пароль:
1C
1С v8
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" уникален для каждого ответа?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс