Форум OlegON > Программы и оборудование для автоматизации торговли > ЕГАИС в опте и рознице

УТМ, транспортный модуль для ЕГАИС, тесты и отзывы : ЕГАИС в опте и рознице

29.03.2024 2:53


06.10.2015 21:34
OlegON
 
Цитата:
avz_60 Вопрос снимаю. Разобрался.
Принято писать, как... Мало ли, кто-то не разберется...
07.10.2015 06:53
Mtirt
 
Цитата:
OlegON Принято писать, как... Мало ли, кто-то не разберется...
Если используется curl, то в каталог с curl. Или указывать полный путь к файлу...
07.10.2015 08:40
AndreyZh
 
или, если задать переменную среды windows: свойство "моего ПК"/дополнительно/переменные среды и в переменной path добавить путь к curl, то можно запускать curl из каталога, где лежат xml файлы
07.10.2015 09:37
AndreyZh
 
Цитата:
AndreyZh ... IV. Создание "своей" игрушки по "обертке" к ЕГАИС. В принципе она уже может ... если будут скачивания её или вопросы на данной проге - заведу отдельную тему....
Чуток напрягшись думаю к пятнице "своя" игрушка по "обертке" будет доделана в виде 100% достаточном, с небольшими оговорками по взаимодействию с поставщиками для встречи ЕГАИС образца 01 января 2016.

Нужно ли её выставлять, описывать? В отдельно теме? Вопросы эти в силу того, что это самописка для фирмы моей постоянной работы, а для меня способ освоения работы с ХМЛ файлами, а не тиражный (со своими жесткими требования) программный продукт.
07.10.2015 09:46
jgalt
 
Если поделитесь - то выставляйте. Можно без описания - по документации от УТМ можно разобраться.
Мне интересно.
А так, я сам свою "обёртку" сочиняю, просто для понимания работы.
07.10.2015 09:55
OlegON
 
Цитата:
AndreyZh или, если задать переменную среды windows: свойство "моего ПК"/дополнительно/переменные среды и в переменной path добавить путь к curl, то можно запускать curl из каталога, где лежат xml файлы
Можно запускать curl из батника (.cmd), где в начале добавить строку
Код:
set PATH=%PATH%;путь к curl
или просто указывать полный путь к curl
07.10.2015 11:24
jgalt
 
К посту 58.
Цитата:
AndreyZh ...
Для сего, "украв" решение с Web сервиса перепахал технику: сейчас нет "одиночных" запросов к серверу ЕГАИС, которые каждый он отрабатывает от 5 до 12 минут... а делается "пачка" запросов (клиентов, товаров, удаления запросов) и после запуска, желательно через 5 минут этого режима может обрабатывать возвращенную инфу по "пачке" - пункты 2. менющек, ну или смотреть какие входящие запросы удалились (в самом деле удаляются все).
...
Как я понял, УТМ сам обменивается с сервером (отправляет запросы и принимает ответы). Период обмена настраивается в файле c:\TT\transporter\conf\transport.properties по умолчанию 300 секунд.

Так что не будет ничего страшного, если после удаления ответов сервера командами вида:
Код:
curl -X DELETE http://localhost:8080/opt/in/QueryPartner/12
запрашивать новый файлик с ответами командой:
Код:
curl.exe -X GET http://localhost:8080/opt/out?refresh=true
(выполняется быстро, несколько секунд) и отображать уже неудаленные ответы.
07.10.2015 12:47
akonev
 
Цитата:
AndreyZh Чуток напрягшись думаю к пятнице "своя" игрушка по "обертке" будет доделана в виде 100% достаточном, с небольшими оговорками по взаимодействию с поставщиками для встречи ЕГАИС образца 01 января 2016.

Нужно ли её выставлять, описывать? В отдельно теме? Вопросы эти в силу того, что это самописка для фирмы моей постоянной работы, а для меня способ освоения работы с ХМЛ файлами, а не тиражный (со своими жесткими требования) программный продукт.
нужно.
если "религия позволяет" - с исходниками совсем хорошо будет.
07.10.2015 13:24
AndreyZh
 
Возьму небольшую паузу - "отойти" от чудоразработчиков ФСРАР, пользователей с наездами "не по адресу" и потрындеть... последнее думаю будет полезно всем.

Цитата:
jgalt Если поделитесь - то выставляйте. Можно без описания - по документации от УТМ можно разобраться.А так, я сам свою "обёртку" сочиняю, просто для понимания работы.
Выставлю - "уже" надеюсь в пятницу.

Цитата:
jgalt К посту 58.
Как я понял, УТМ сам обменивается с сервером (отправляет запросы и принимает ответы). Период обмена настраивается в файле c:\TT\transporter\conf\transport.properties по умолчанию 300 секунд.

Так что не будет ничего страшного, если после удаления ответов сервера командами вида: ... out?refresh=true (выполняется быстро, несколько секунд) и отображать уже неудаленные ответы.
Наверное инфа по настройке УТМ полезна, но пока до таких "нюансов" не дошел. Что по скорости ответа - думаю это не зависит от настроек, т.к. иногда ЕГАИС обновляет "входящие запросы" за 5 минут, а иногда ответ (обновление инфы) ждал 20 минут

Цитата:
akonev нужно. если "религия позволяет" - с исходниками совсем хорошо будет.
"Религия позволяет", но

1. Хотя это условно (потом буду лабать и интеграцию) "независимая" от "УС Лэнд" программа, но базируется она на исходниках и библиотеках "УС Лэнд" и "неявно" входит в пакет поставки УС, т.е. когда выставлю - будут все исходники

2. Что может дать исходный код на xHarbour программисту на других системах разработки. Например будет ли полезно?
Код:
* ---------------------------------------------------------------------------
*	Закачиваю список входящих запросов по накладным и другим типам подтверж-
*	дений переданных через уникальный контекст в возвращаемый массив памяти
*	Парсим xml файл (содержимое между тэгами) примерно структуры:
*	<?xml version="1.0" encoding="UTF-8" standalone="no"?>
*	<A>
*		<url></url>
*		<url></url>
*		<url replyId="ec8cf067-2013-4e6d-b342-9868c845d89f">http://localhost:8080/opt/out/ReplyAP/95</url>
*		....
*		<url></url>
*		<ver>1</ver>
*	</A>
*	Существование ХМЛ файла и корректность контекста проверяю до вызова
FUNC aReadListOut(cUnic,cXmlUTF8)	
	LOCA cStr:="", nI:=0, aZap:={}, oUrl, oDoc:=TXmlDocument():new()
     
    //  Читаем в объект содержимое XML файла. Нужно конвертировать содержимое из UTF-8 в OEM кодировку программы
	oDoc:read( HB_UTF8TOSTR(MemoRead(cXmlUTF8)) )
	
	//	Использую самую простую технику парсинга ХМЛ файла, используя уникальность и однородность тэгов, содержащих необходимую инфу.
    oUrl		:= oDoc:findFirst( "url" )
	IF oUrl <> NIL						//	Существует хотя бы единственная строка с данными тэгами
		cStr	:= czOutStr(oUrl:cData)
		IF At( Upper(Alltrim(cUnic)), Upper(cStr) ) > 0 THEN aadd( aZap, cStr )
	
		//	Продолжаю искать другие узлы, используя навигацию из исходного документа
		DO WHIL TRUE						//	Обрабатываю все вхождения узлов в документ
			oUrl	:= oDoc:findNext( "url" )
			IF oUrl == NIL THEN EXIT   		//  Если закончились - возвращается неопределенный объект, то выход
		
			cStr	:= czOutStr(oUrl:cData)
			IF At( Upper(Alltrim(cUnic)), Upper(cStr) ) > 0 THEN aadd( aZap, cStr )
		ENDD
	ENDI
	
	RETU aZap
Теперь по "чудо" разработчикам и техническим писателям ФСРАР! Считал накладную, вывел её в форме таблицы и отчета, а затем мне нужно послать подтверждение (или другую реакцию)... и "завис".

1. Читаю инструкцию
Код:
1.8. Получение ТТН 

Организация в ЕГАИС осуществляет получение ТТН, отправленных ей с УТМ 
организаций-отправителей этих ТТН. Командой (1.5.6) осуществляется опрос входящих 
документов. В списке входящих документов будут строки вида: 

<url>http://localhost:8080/opt/out/WayBill/102</url> (1.8.1) 

<url>http://localhost:8080/opt/out/FORMBREGINFO/103</url> 

Эти адреса соответствуют входящим ТТН и уведомлениям о регистрации движения 
ТТН. Атрибут replyIdу входящих ТТН не указывается, т. к. эти ТТН были подписаны и 
отправлены с другого УТМ. Такие документы требуется сохранить из УТМ в файл 
командами: 

curl –X GET http://localhost:8080/opt/out/WayBill/102 

curl –X GET http://localhost:8080/opt/out/FORMBREGINFO/103 (1.8.2) 

а затем удалить: 

curl –X DELETE http://localhost:8080/opt/out/WayBill/102 (1.8.3) 

curl –X DELETE http://localhost:8080/opt/out/FORMBREGINFO/103 

По содержанию входящая ТТН совпадает с файлом вида (1.7.1), который отправил 
отправитель этой ТТН. Уведомление о регистрации движения, полученное 
грузополучателем, также не отличается от аналогичного документа, пришедшего 
отправителю ТТН. 

По входящей ТТН требуется сформировать и отправить акт расхождений.

.......

1.9. Отправка акта 

Организация-получатель ТТН (1.7.1) должна сформировать и отправить в ЕГАИС подтверждение этой ТТН, если сведения в этой ТТН совпадают с фактом. Сформируйте подтверждающий акт в виде: 

.....
 <wa:ACTNUMBER>1-1</wa:ACTNUMBER> 

 <wa:ActDate>2015-02-16</wa:ActDate> 

 <wa:WBRegId>0000002167</wa:WBRegId> 

 <wa:Note>Приниаем продукцию</wa:Note> 

....
Элемент wa:WBRegId в (1.9.1) содержит идентификатор подтверждаемой ТТН. Этот же идентификатор содержится в элементе wbr:WBRegId документа (1.7.8).
2. Изучаю ответ сервера ЕГАИС - входящие запросы:

Код:
<?xml version="1.0" encoding="UTF-8"?>

-<A>

<url></url>

<url></url>

<url></url>

<url></url>

<url>2</url>

<url></url>

<url></url>

<url></url>

<url replyId="a40c0c76-a453-467b-8cc6-8eef963cda87">http://localhost:8080/opt/out/ReplyAP/94</url>

<url></url>

<url replyId="01bf1cf8-6bcb-4637-a3dc-d5d880c4bf7b">http://localhost:8080/opt/out/Ticket/52</url>

<url></url>

<url></url>

<url></url>

<url replyId="ec8cf067-2013-4e6d-b342-9868c845d89f">http://localhost:8080/opt/out/ReplyAP/95</url>

<url replyId="96f38408-66ac-4394-9a76-442218e5cda9">http://localhost:8080/opt/out/ReplyAP/96</url>

<ver>1</ver>

</A>
3. Кто в лес, кто по дрова... ничто WAYBILL и ни с чем FORMBREGINFO не связано. Начинаю изучать пришедшие файлы такого типа - нумерация запросов никак не связана между собой... Посличал ХМЛ документы, почитат раздел "разработчиков" ФСРАР - нашел взаимосвязь:

В FORMBREGINFO есть строки - они уникальные:
Код:
<wbr:Identity>350191000004148476</wbr:Identity>

<wbr:WBRegId>0000025764</wbr:WBRegId>

<wbr:WBNUMBER>[SL11115115071] SL11115115071</wbr:WBNUMBER>
<wbr:WBDate>2015-09-17</wbr:WBDate>
Также есть связующая информация в WAYBILL
Код:
<wb:Identity xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:wb="http://fsrar.ru/WEGAIS/TTNSingle">350191000004148476</wb:Identity>

ИЛИ по рекомендации ФСРАР

<wb:NUMBER>[SL11115115071] SL11115115071</wb:NUMBER>
<wb:Date>2015-09-17</wb:Date>
4. Осознаю алгоритм в моём случае:

1. Прочитать накладную в WAYBILL и извлечь из неё wb:Identity
2. Пропарсить ВСЕ ХМЛ файлы по запросу с FORMBREGINFO с поиском узла <wbr:Identity> и если найду, то извлечь содержимое узла wbr:WBRegId
3. При нахождении соответствия могу
- посылать акты с "кодами регистрации" ТТН
- удалять попарные запросы по "накладным" и "фактам регистрации" (разделам Б)
07.10.2015 13:36
MWWRuza
 
Если не жалко - то нужно.

PS А то, сегодна на ИнфоСтарте появилась внешняя обработка под 1С7.7, как в описании написано - "для любой конфигурации", за стартмани... Пополнил счет, скачал... Дай, думаю попробую запустить. По привычке, конфигуратором сначала. А там - фиг, пароль! Ну, думаю, ладно, все пароли от честных людей... Подобрал, за пару секунд. А дальше, внутри, все форматирование поломано, все в одну строку, для того, что-бы сделать текст программы нечитаемым(для этого есть видимо какая-то утилита, уже не первый раз такое встречаю)... Тут уже за 2 секунды не получилось, пришлось руками вставлять переводы строки и форматировать...
Вот после этого и подумаешь - а зачем люди выкладывают такое? Я понимаю, был-бы тиражный, доведенный до ума продукт, продающийся за деньги... А тут, по сути - заготовка для изучения всего этого... Ну, хочешь подельться - делись, или если жалко трудов - продавай за деньги... А так-то зачем? 1С изначально открытая система, и тем более такая экзотическая вещь, работать без "допиливания" не сможет по определению, тем более, на данном этапе внедрения всего этого безобразия...
Часовой пояс GMT +3, время: 02:53.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.