PDA

Просмотр полной версии : Автограф.WEB и интеграция с 1С, как?


Waso
27.11.2019, 07:58
Изначально стоял .NET service и работала интеграция через XML. После добавления в схему новой машины все сломалось. Нам посоветовали поставить WEB версию. поставили, теперь маюсь с запросами.
Из дебага 1С берем старый (когда-то работавший запрос), который выглядит так:
http://autograph:8200/GetTrips/Gazobeton/53ab7ce7-bcd0-4901-aa12-2ac4d9789279/20191104-0600/20191104-1600/0/*/*Согласно документации JSON запросы должны выглядеть так:
http://c.radikal.ru/c29/1911/2a/95c42c0cb9d2.png
Перелопачиваем под WEB то, что было в дебаге. По идее это должно выглядеть так:
http://autograph/ServiceJSON/GetTrips?schemaID=Gazobeton&IDs=53ab7ce7-bcd0-4901-aa12-2ac4d9789279&SD=20191104-0600&ED=20191104-1600&tripSplitterIndex=0
получаем:
http://d.radikal.ru/d30/1911/ec/2f0d4f5d9880.png
Что я делаю не так? schemaID никак не желает передаваться.
И да, можно заметить, что здесь нет sessionID. его наличие или отсутствие не влияет ошибку.




И да, в документации написано, что в WEB можно сгенерировать токен, чтобы обходится без логинов/паролей, в нынешнем интерфейсе этого нет. Где взять? И не является ли ID генерируемый методом Login тем самым токеном?




версия WEB webmap_net_20191118.zip
Что ещё требуется для решения?

Ivan
27.11.2019, 08:36
Что я делаю не так?
Вы к дилеру обращались с данным вопросом?

Запрос некорректный, в описании приведены примеры таких запросов. - https://i.tk-chel.ru/ivan/sharex/chrome_2019-11-27_13-34-50.png

Ошибки следующие: https://i.tk-chel.ru/ivan/sharex/chrome_2019-11-27_13-32-51.png, т.е. адрес WEBa некорректный и запрос схемы, нужно указывать не имя, а GUID схемы, который возвращается при запросе метода EnumSchemas

Waso
27.11.2019, 09:03
Что я делаю не так?
Вы к дилеру обращались с данным вопросом?

Общение с дилером странно как никогда. Дозвониться до конкретного человека я могу с трудом.




Запрос некорректный, в описании приведены примеры таких запросов. - https://i.tk-chel.ru/ivan/sharex/chrome_2019-11-27_13-34-50.png



Зачем мне WCF? Вроде речь шла о JSON.






Ошибки следующие: https://i.tk-chel.ru/ivan/sharex/chrome_2019-11-27_13-32-51.png, т.е. адрес WEBa некорректный и запрос схемы, нужно указывать не имя, а GUID схемы, который возвращается при запросе метода EnumSchemas

Почему адрес WEBа неправильный? Нужен IP? поставил ID схемы, запрос заработал, что-то возвращается.

Добавлено через 2 минуты
И ещё один вопрос. Насколько я понялл license.xml ограничивает только доступ к самому .WEB ? Для интеграции лицензия роли не играет?

Добавлено через 4 минуты
и запрос схемы, нужно указывать не имя, а GUID схемы, который возвращается при запросе метода EnumSchemas
И опять у вас полное несоответствие документации и реальности....


Идем в http://wiki.tk-chel.ru/index.php/AutoGRAPH.NET_Service_GetTrips смотрим раздел про JSON как выглядит запрос. В скриншоте он же

Ivan
27.11.2019, 09:33
Зачем мне WCF? Вроде речь шла о JSON.
Там и JSON ниже, курсор случайно попал на WCF, если Вы на это заострили внимание.

Почему адрес WEBа неправильный? Нужен IP?
Нужен IP или DNS.

ещё один вопрос. Насколько я понял license.xml ограничивает только доступ к самому .WEB ?
Да, ограничение из вне, как внешний ресурс. Если лицензия по умолчанию, то работа доступна только локально.

И опять у вас полное несоответствие документации и реальности
По поводу правок данного руководства можно отписаться по адресу denisio@tk-chel.ru
Сейчас не успевают отследить и внести правки, но это временно.

Waso
27.11.2019, 09:55
Зачем мне WCF? Вроде речь шла о JSON.
Там и JSON ниже, курсор случайно попал на WCF, если Вы на это заострили внимание.

конечно заострил. так как если кликнуть на JSON, то можно пару раз пробежать по кругу и ничего нового не узнать, попробуйте :)

Добавлено через 2 минуты

Почему адрес WEBа неправильный? Нужен IP?
Нужен IP или DNS.

Сервер находится внутри локалки, там что FQDN, что имя хоста, все едино.

denisio
17.12.2019, 06:57
schemaID это идентификатор схемы (поле ID), который отдается в EnumSchemas. Используйте его для параметра schemaID.
В AutoGRAPH Service список схем также отдавался в виде массива ID,Name - и в этом частном случае ID может совпадать с названием схемы.
schemaID - это просто строка-идентификатор схемы на сервере, не надо закладываться на его тип. Это просто строка-уникальныйID схемы на данном сервере.

Сергей К
01.06.2020, 12:20
Приветствую всех.
Подскажите что за id видит 1С, но нигде не видно в Автографе?

Добавлено через 3 минуты
Приветствую всех.
Подскажите что за id видит 1С, но нигде не видно в Автографе?
id транспортного средства если быть точным

пример id
b5136661-4f22-4036-9396-532fe8e99d1c

plex
01.06.2020, 13:01
Сергей К, уникальный идентификатор ТС, номер тс может меняться, номер прибора модет меняться, GUID меняется при создании ТС

SK
02.06.2020, 05:34
b5136661-4f22-4036-9396-532fe8e99d1c
Это внутренний уникальный идентификатор объекта типа GUID. Присваивается каждому объекту только 1 раз при его создании и служит практически для всех внутренних операций с объектом.
Применяется за неимением какого-либо иного гарантированно уникального идентификатора. В т.ч. при экспорте/импорте объектов между схемами гарантирует минимальную вероятность совпадения.

Сергей К
02.06.2020, 08:35
b5136661-4f22-4036-9396-532fe8e99d1c
Это внутренний уникальный идентификатор объекта типа GUID. Присваивается каждому объекту только 1 раз при его создании и служит практически для всех внутренних операций с объектом.
Применяется за неимением какого-либо иного гарантированно уникального идентификатора. В т.ч. при экспорте/импорте объектов между схемами гарантирует минимальную вероятность совпадения.

Где в программе автограф мы можем его увидеть ?

Добавлено через 30 секунд
b5136661-4f22-4036-9396-532fe8e99d1c
Это внутренний уникальный идентификатор объекта типа GUID. Присваивается каждому объекту только 1 раз при его создании и служит практически для всех внутренних операций с объектом.
Применяется за неимением какого-либо иного гарантированно уникального идентификатора. В т.ч. при экспорте/импорте объектов между схемами гарантирует минимальную вероятность совпадения.
Где в программе автограф мы можем его увидеть ?

SK
02.06.2020, 08:36
Можете параметр сделать, который будет GUID объекта Вам показывать в интерфейсе или в отчете.

С точки зрения работы обычного юзера он абсолютно не нужен и не отображается в интерфейсе.

Сергей К
02.06.2020, 09:10
каким методом можно получить Дату принятия данных сервером и Период, за который эти данные были приняты.
Подскажите мне где это хранится в автографе и есть ли возможность такие данные получать в 1С?

SK
02.06.2020, 09:16
каким методом можно получить Дату принятия данных сервером и Период, за который эти данные были приняты.
Подскажите мне где это хранится в автографе и есть ли возможность такие данные получать в 1С?
Ваш вопрос непонятен. ПО АвтоГРАФ.PRO/WEB не содержит встроенного сервера. ПО АвтоГРАФ.Server - не единственный способ получения данных от прибора в ПО АвтоГРАФ.PRO/WEB.
Оно по сути работает с дата-папкой (с БД). И ему неважно, как туда данные попадают - через сервер, прямым чтением с прибора или копированием файлов в папку, через дата-лоадер или через программы-синхронизаторы.
Также оно может работать через удаленное хранилище, получая данные трекеров из него по HTTP.
ПО АвтоГРАФ.Server - это отдельное приложение и у него есть свой API. Вы смотрели документацию по API на ПО АвтоГРАФ.Server ?

Сергей К
02.06.2020, 09:21
Rаким методом можно получить Дату принятия данных сервером и Период, за который эти данные были приняты.
Подскажите мне информацию где это хранится в автографе и есть ли возможность такие данные получать в 1С?

Добавлено через 1 минуту
каким методом можно получить Дату принятия данных сервером и Период, за который эти данные были приняты.
Подскажите мне где это хранится в автографе и есть ли возможность такие данные получать в 1С?
Ваш вопрос непонятен. ПО АвтоГРАФ не содержит встроенного сервера. ПО АвтоГРАФ.Server - не единственный способ получения данных от прибора в ПО АвтоГРАФ.PRO/WEB.
Оно по сути работает с дата-папкой (с БД). И ему неважно, как туда данные попадают - через сервер, прямым чтением с прибора или копированием файлов в папку, через дата-лоадер или через программы-синхронизаторы.
ПО АвтоГРАФ.Server - это отдельное приложение и у него есть свой API. Вы смотрели документацию по API на ПО АвтоГРАФ.Server ?


Запрос к данным Автографа идет через специальный веб-сервис (ServiceJSON) с использованием документированных методов.

SK
02.06.2020, 09:27
Сергей К, еще раз: ПО АвтоГРАФ.WEB работает с дата-папкой либо сетевым хранилищем. В ПО АвтоГРАФ.WEB нет информации - когда и какой кусок данных был получен Сервером от прибора и сервером ли он вообще был получен (или его доставили в хранилище иным способом). Это избыточная для ПО АвтоГРАФ.WEB информация.
Сервер вообще может быть полностью изолирован от АвтоГРАФ.WEB по причинам внутренней безопасности предприятия и находиться вообще в другом регионе или даже стране.
Для работы с Сервером приема данных - используйте API ПО АвтоГРАФ.Server.

Сергей К
05.06.2020, 04:34
к чему тогда можно привязаться что бы исключить появление пробелов в данных в программе 1С.
ведь на момент загрузки может быть так что данных за период либо нет по причине отсутствия связи или же они не полные..

загрузка производится автоматически в 7:00 загружается период времени с вчера 19:00 до сегодня 06:59
загрузка производится автоматически в 19:00 загружается период времени с сегодня 7:00 до сегодня 18:59

SK
05.06.2020, 06:55
к чему тогда можно привязаться что бы исключить появление пробелов в данных в программе 1С.
ведь на момент загрузки может быть так что данных за период либо нет по причине отсутствия связи или же они не полные..
Так Вы же можете сначала запросить дату/время последних данных по ТС.
Данные, разумеется, могут быть неполные. По разным причинам. Было выключено зажигание и кусок не передался, связи не было, антенна повреждена/отрезана/откручена, баланс симки обнулился или еще что.
Это ладно еще у терминалов АвтоГРАФ™ строго последовательный протокол. А когда непоследовательные протоколы ? Тогда никогда нет понимания - нет ли где отсутствующих кусков в данных, даже если с сервера они только что пришли.

Если нужно непосредственно понимать, когда крайний раз поступали данные от прибора именно на сервер - можно обратиться к API сервера, если он Вам доступен: https://i.tk-chel.ru/docs/ServerAPI/Public/api.html

Сергей К
05.06.2020, 08:27
к чему тогда можно привязаться что бы исключить появление пробелов в данных в программе 1С.
ведь на момент загрузки может быть так что данных за период либо нет по причине отсутствия связи или же они не полные..
Так Вы же можете сначала запросить дату/время последних данных по ТС.
Данные, разумеется, могут быть неполные. По разным причинам. Было выключено зажигание и кусок не передался, связи не было, антенна повреждена/отрезана/откручена, баланс симки обнулился или еще что.
Это ладно еще у терминалов АвтоГРАФ™ строго последовательный протокол. А когда непоследовательные протоколы ? Тогда никогда нет понимания - нет ли где отсутствующих кусков в данных, даже если с сервера они только что пришли.
Если нужно непосредственно понимать, когда крайний раз поступали данные от прибора именно на сервер - можно обратиться к API сервера, если он Вам доступен: https://i.tk-chel.ru/docs/ServerAPI/Public/api.html

У нас стоит задача организовать загрузку информации из АвтоГРАФ в 1С: Управление автотранспортом так, чтобы исключить потерю данных, если ТС не было в зоне покрытия мобильной связи длительное время.

То есть необходим механизм перепроверки загруженных данных в 1С УАТ и данных, принятых сервером АвтоГРАФ от ТС, но не загруженных в 1С.

МЫ предполагали, что регистрируется время принятия данных от ТС, и можно опираясь на него, сравнением, организовать загрузку периодами по 12 часов. И в них бы попадало всё загруженное в АвтоГРАФ за 12 часов, независимо от даты совершения самого действия ТС.

Поскольку нет информации о времени регистрации принятия данных от ТС в АвтоГРАФ, прошу поделиться возможными вариантами решения данной задачи.

SK
05.06.2020, 09:58
Тогда Вам вообще это все не поможет. Если прибор был на связи с сервером минуту назад - это не значит, что он успел все данные на эту минуту выгрузить. Это безотносительно к нашей системе, в любой другой будет то же самое.

Вам поможет железобетонно только один (вроде как) алгоритм: проверять, что время последних данных от прибора старше, чем время правой границы запроса. Если нет - помечать такой прибор (в справочнике или в регистре 1С) на повторную загрузку периода в следующий раз и так далее (может машинка и неделю и месяц стоять с выключенной массой и куском непереданных данных).