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

Ужасы зазеркалья ЕГАИС при приёмке и продаже : ЕГАИС в опте и рознице

25.11.2024 10:03


19.12.2016 15:23
Цитата:
FinSoft Кстати, Андрей, ты разбирался с печатными формами для возвратов и перемещений между магазинами? Я так понимаю, там нужны стандартные Торг12, ТТН и справка формы Б?
См: https://olegon.ru/showpost.php?p=213927&postcount=69
21.12.2016 01:51
Сегодня какой-то глюк, похоже, в Егаис проявился.
Делаем перемещение продукции между своими магазинами. Подтверждаем. Все нормально, позиции списались с остатков одного магазина, появились на остатках второго.
Затем во втором магазине шлем запрос на отмену накладной. В первом подтверждаем. В обоих магазинах получаем тикеты, что накладная распроведена. Запрашиваю остатки на 1 регистре. Во втором магазине продукция с остатков ушла. А в первом не появилась... Шлю повторный запрос остатков, Егаис говорит приходите через час. Хорошо, что пробная накладная с 2 позициями. Если на остатках в первом магазине продукция не появится, что тогда делать...
21.12.2016 02:30
Сорри, разобрался. Отмена накладной приводит систему в состояние на момент подтверждения приема. То есть надо подтвердить/отказать/послать акт расхождений. Все нормально отработало...
12.01.2017 17:26
господа, подскажите, как возврат поставщику сделать? очень важно!
18.07.2017 10:35
Новая, но очень старая напасть объявилась в ЕГАИСе...

Всё это подробно обсуждалось в 2015 году - алиасы пространства имен, но вот с введением второй версии некоторых "свежих" программистов для ЕГАИС прорвало на извращения. Примеры таких чудиков:

Очень умные программисты Хейникен:

<ns1:Documents xmlns:ns1="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:ns2="http://fsrar.ru/WEGAIS/TTNSingle_v2" xmlns:ns3="http://fsrar.ru/WEGAIS/ClientRef_v2" xmlns:ns4="http://fsrar.ru/WEGAIS/ProductRef_v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="1.0">
<ns1:Owner>
<ns1:FSRAR_ID>030000000029</ns1:FSRAR_ID>
</ns1:Owner>
<ns1:Document>
<ns1:WayBill_v2>
<ns2:Identity>RUBG-2017-07-04-16-07-20-395</ns2:Identity>
<ns2:Header>
<ns2:Type>WBInvoiceFromMe</ns2:Type>
<ns2:NUMBER>0137418034</ns2:NUMBER>
<ns2:Date>2017-07-04</ns2:Date>
<ns2:ShippingDate>2017-07-04</ns2:ShippingDate>
<ns2:Transport>
<ns2:TRAN_TYPE>412</ns2:TRAN_TYPE>
<ns2:TRAN_COMPANY>OOO "Трансгео"</ns2:TRAN_COMPANY>
<ns2:TRAN_CAR>ИВТ Вагон 50т. 58027699</ns2:TRAN_CAR>
<ns2:TRAN_CUSTOMER>ООО "ОПХ"</ns2:TRAN_CUSTOMER>
<ns2:TRAN_LOADPOINT>664528 Иркутская область, Микрорайон Марковский Иркутский район, квартал 1</ns2:TRAN_LOADPOINT>
<ns2:TRAN_UNLOADPOINT>РОССИЯ,677014,САХА /ЯКУТИЯ/ РЕСП,,Якутск г,,Можайского ул,29,к. 1,литер Б1, первый этаж, помещение № 2</ns2:TRAN_UNLOADPOINT>
</ns2:Transport>
<ns2:Shipper>
<ns3:UL>
<ns3:ClientRegId>030000000029</ns3:ClientRegId>
<ns3:FullName>ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "ОБЪЕДИНЕННЫЕ ПИВОВАРНИ ХЕЙНЕКЕН"</ns3:FullName>
<ns3:ShortName>ООО "ОПХ"</ns3:ShortName>
<ns3:INN>7802118578</ns3:INN>
<ns3:KPP>382703001</ns3:KPP>
<ns3:address>
<ns3:Country>643</ns3:Country>


Извращенцы из Метро:

Пример с форума ФСРАР "интересного" ХМЛ версии 2 от Метро Ростов на дону ТТН Waybil_V2, как УТМ это пропускает???!!!...

Проверил: Саратовское Метро аналогично ... хорошо что пока у них не покупаете ничего...

<?xml version="1.0" encoding="UTF-8"?>
<ns43:Documents Version="1.0" xmlns:ns9="http://fsrar.ru/WEGAIS/ActInventorySingle" xmlns:ns8="http://fsrar.ru/WEGAIS/TTNInformBReg" xmlns:ns7="http://fsrar.ru/WEGAIS/ConfirmTicket" xmlns:ns63="http://fsrar.ru/WEGAIS/RequestRepealAWO" xmlns:ns62="http://fsrar.ru/WEGAIS/RequestRepealACO" xmlns:ns61="http://fsrar.ru/WEGAIS/ConfirmRepealWB" xmlns:ns60= -skip->
<ns43:Owner> <ns43:FSRAR_ID>010000006096</ns43:FSRAR_ID>
</ns43:Owner>
<ns43:Document>
<ns43:WayBill_v2>
<ns39:Identity>20170710025927820000</ns39:Identity>
<ns39:Header>
<ns39:Type>WBInvoiceFromMe</ns39:Type>
<ns39:NUMBER>1053060191010</ns39:NUMBER>
<ns39:Date>2017-07-10</ns39:Date>
<ns39:Transport></ns39:Transport>
-<ns39:Shipper>
-<ns17:UL>
<ns17:ClientRegId>010000006096</ns17:ClientRegId>
<ns17:FullName>Общество с ограниченной ответственностью "МЕТРО Кэш энд Керри"</ns17:FullName>
<ns17:ShortName>ООО "МЕТРО Кэш энд Керри"</ns17:ShortName>
<ns17:INN>7704218694</ns17:INN>
<ns17:KPP>616732001</ns17:KPP>
<ns17:description>РОССИЯ,344111,РОСТОВСКАЯ ОБЛ,,Ростов-на-Дону г,Пролетарский р-н,40-летия Победы пр-кт,д. 340,, | литер А, 1 этаж,комн. № 109а (S=65,8 кв.м), № 20 (ЕГАИС) | литер А,А1,А2</ns17:description>
</ns17:address>
</ns17:UL>
</ns39:Shipper>

<ns39:Consignee>
<ns17:UL>
<ns17:ClientRegId>020000616195</ns17:ClientRegId>
<ns17:FullName>Общество с ограниченной ответственностью Пилигрим</ns17:FullName>


Ссылка из письма была от Саратовского программиста:

Который так же извратился, но мы перестали брать у них товар... Руководство его трамбует, а он меня - типа всё очень легко мне переделать в программе... Пример его изврата:
<oref2:address>
<oref2:Country>643</oref2:Country>
<oref2:RegionCode>64</oref2:RegionCode>
<oref2:description>Саратовская обл, , Саратов г, , Вольская ул, 57,,</oref2:description>
</oref2:address>
</oref2:UL>
</wb2:Consignee>
<wb2:Transport/>
</wb2:Header>
<wb2:Content xmlns:wb2="http://fsrar.ru/WEGAIS/TTNSingle_v2">
<wb2:Position>
<wb2:Identity>01_6713</wb2:Identity>
<wb2:Quantity>2</wb2:Quantity>
<wb2:Price>819.52</wb2:Price>
<wb2:InformF1>
<pref2:RegId xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">FA-000000036172128</pref2:RegId>
</wb2:InformF1>
<wb2:InformF2>
<pref2:InformF2Item xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">
<pref2:F2RegId>FB-000000942827123</pref2:F2RegId>
</pref2:InformF2Item>
</wb2:InformF2>
<wb2:Product>
<pref2:AlcCode xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">0350397000001378839</pref2:AlcCode>
<pref2:ProductVCode xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">229</pref2:ProductVCode>
<pref2:FullName xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">Армянский коньяк пятилетний "АрАрАт *****"</pref2:FullName>
<pref2:Capacity xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">0.5</pref2:Capacity>
<pref2:AlcVolume xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">40</pref2:AlcVolume>
<pref2:Type xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">АП</pref2:Type>
<pref2:UnitType xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">Packed</pref2:UnitType>
<pref2:Producer xmlns:pref2="http://fsrar.ru/WEGAIS/ProductRef_v2">
<oref2:TS xmlns:oref2="http://fsrar.ru/WEGAIS/ClientRef_v2">
<oref2:ClientRegId>050000030065</oref2:ClientRegId>
<oref2:FullName>ЗАО "Ереванский Коньячный Завод"</oref2:FullName>
<oref2:ShortName>ЗАО "Е.К.З"</oref2:ShortName>
<oref2:address>
<oref2:Country>051</oref2:Country>
<oref2:description>Армения, 0082, г. Ереван, проспект Адмирала Исакова, 2</oref2:description>
</oref2:address>
</oref2:TS>
</pref2:Producer>
</wb2:Product>



До кучи пример накладной на которую спотыкается любая прога на платформе 1С:

<pref:AlcVolume>4.7</pref:AlcVolume>
-<pref:Producer> -<oref:UL>
<oref:ClientRegId>030000000019</oref:ClientRegId>
<oref:FullName>ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "ПИВОВАРЕННАЯ КОМПАНИЯ "БАЛТИКА"</oref:FullName> <oref:ShortName>ООО "ПИВОВАРЕННАЯ КОМПАНИЯ "БАЛТИКА"</oref:ShortName>
<oref:INN>7802849641</oref:INN>
<oref:KPP>710443001</oref:KPP>
-<oref:address>
<oref:Country>643</oref:Country>
<oref:RegionCode>71</oref:RegionCode>
<oref:description>300036, РОССИЯ, , , Г ТУЛА, , Ш ОДОЕВСКОЕ, 85, ,</oref:description> </oref:address> </oref:UL> </pref:Producer> <pref:ProductVCode>500</pref:ProductVCode>
</wb:Product>
<wb:Quantity>3</wb:Quantity>
<wb:alcPercent>4.7</wb:alcPercent>
<wb:Price>881.9</wb:Price>
<wb:Identity>2</wb:Identity>
-<wb:InformF1>
<pref:RegId>FA-000000038326672</pref:RegId>
</wb:InformF1>
-<wb:InformF2>
-<pref:InformF2Item>
<pref:F2RegId>FB-000000949335711</pref:F2RegId>
</pref:InformF2Item>
</wb:InformF2>
</wb:Position> -<wb:Position>

Здесь используют новые необязательные тэги, которые не могут пропустить многие программы.

Так же обнаружилась чудная особенность "1С:Розница"

Версия документооборота задаётся в справочнике контрагентов и если от поставщика "болтаются" накладные по v1 и v2, то (решение) ставим ему v1 - подтверждаем эти ТТН, проверяя прохождение, затем изменяем на v2 и подтверждаем другие ТТН... а накладные в разных версиях, учитывая просторы России будут ходить ещё долго

Сразу отмечу, что "УС Лэнд:ЕГАИС" не понимает и не видит данные чудные документы. Ответы спецов на форумах стандартные:
Цитата:
Технически, пространство имен в xml-файле может быть любое.
Что делать?
18.07.2017 11:09
Привет, Андрей.
Помнишь, я тебя предупреждал...
Что делать - переделать разбор xml с учетом пространства имен. Это не так сложно, всего 3 оператора вместо других, используемых для разбора по стандартным тэгам. Мне, правда, тоже лениво. По стандартным тегам все хорошо работает, а тут надо все перепроверять заново. За все время был один случай с извратом от поставщика, его просто вежливо попросили переделать на стандартные тэги, что тот и сделал...
18.07.2017 11:49
Привет Вячеслав! Конечно твоё письмо с вариантом решения сохранено.

Цитата:
FinSoft Что делать - переделать разбор xml с учетом пространства имен. Это не так сложно, всего 3 оператора вместо других, используемых для разбора по стандартным тэгам.
У меня в инструменте таких возможностей нет, а лишь для каждого "извращенца" делать таблицу соответствий имен и заниматься преобразованием исходного файла... или прогонять файл предварительно через "твой" сценарий.

Цитата:
FinSoft Мне, правда, тоже лениво. По стандартным тегам все хорошо работает, а тут надо все перепроверять заново. За все время был один случай с извратом от поставщика, его просто вежливо попросили переделать на стандартные тэги, что тот и сделал...
Не лениво! Просто не вижу необходимости подстраиваться под каждого программиста, который хочет показать своё величие. Так и с поставщиком... Заказали у других, а эти пусть считают убытки от ЧСВ своего программера

Что по вопросу... Глупая привычка спрашивать, когда сам нашел решение. Для "УСЕга" нужна накладная со всеми "потрохами", в том числе для разрешения проблем, описанных выше, а так же контроля цен, движения АП в разрезе справок, остатков на любой момент времени, подготовки отчетов для деклараций... Посему "преклоняться" перед маргиналами пока не можем

Однако не у всех так и некоторым "только подтверждающим ТТН" или сильно зависимым от поставщика... возможно и у нас такой "нарисуется" реализовал сервисный режим для любой программы работы с ЕГАИС:



В котором реализуется обычный совет: в блокноте наберите текст и отправьте курлом

Самое простое код ТТН и её версию узнать у поставщика, а можно в режиме "чистки запросов" посмотреть FORM2REGINFO для 2 версии или FORMBREGINFO для первой и там в тэге wbr:WBRegId есть код накладной.

Прога формирует и отправляет обычный ХМЛ файл:

Код:
<?xml version="1.0" encoding="UTF-8"?>
<ns:Documents Version="1.0" xmlns:ainp="http://fsrar.ru/WEGAIS/ActChargeOn_v2" xmlns:awr="http://fsrar.ru/WEGAIS/ActWriteOff_v2" xmlns:c="http://fsrar.ru/WEGAIS/Common" xmlns:ce="http://fsrar.ru/WEGAIS/CommonEnum" xmlns:iab="http://fsrar.ru/WEGAIS/ActInventoryF1F2Info" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef_v2" xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef_v2" xmlns:qf="http://fsrar.ru/WEGAIS/QueryFormF1F2" xmlns:qp="http://fsrar.ru/WEGAIS/QueryParameters" xmlns:wa="http://fsrar.ru/WEGAIS/ActTTNSingle_v2" xmlns:wb="http://fsrar.ru/WEGAIS/TTNSingle_v2" xmlns:wt="http://fsrar.ru/WEGAIS/ConfirmTicket" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <ns:Owner>
      <ns:FSRAR_ID>030000113645</ns:FSRAR_ID>
   </ns:Owner>
   <ns:Document>
      <ns:WayBillAct_v2>
         <wa:Header>
            <wa:IsAccept>Rejected</wa:IsAccept>
            <wa:ACTNUMBER>20170718105424</wa:ACTNUMBER>
            <wa:ActDate>2017-07-18</wa:ActDate>
            <wa:WBRegId>TEST-TTN-0007542044</wa:WBRegId>
            <wa:Note>Пересортица всей продукции по накладной: TEST-TTN-0007542044</wa:Note>
         </wa:Header>
      </ns:WayBillAct_v2>
   </ns:Document>
</ns:Documents>


Кому интересно - исходный код процедуры:

Код:
   
* ---------------------------------------------------------------------------------------------------
*   Сервис по подтверждению или отказу на кривую приходную ТТН по её версии и коду в ЕГАИС. Актуально
*   для ТТН с кривым алиасами пространства имен, когда в режиме чистки запросов видим ТТН, но не 
*   можем обрабатывать, т.к. ориентация на стандартное пространство. Можно использовать, если не 
*   производится приёмка накладных или ТТН по пиву. Отличились Хайникен, Риф, Метро
/*  XML Структура акта подтверждения или отказа. Описание для двух версий
	<?xml version="1.0" encoding="UTF-8"?>
	<ns:Documents Version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns= "http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef" xmlns:wa= "http://fsrar.ru/WEGAIS/ActTTNSingle">
        или для второй версии
    <ns:Documents Version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns= "http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef" xmlns:wa= "http://fsrar.ru/WEGAIS/ActTTNSingle_v2" 
        <ns:Owner> <ns:FSRAR_ID>00072841</ns:FSRAR_ID> </ns:Owner>
        <ns:Document>
            <ns:WayBillAct>  или <ns:WayBillAct_v2>
                <wa:Header>
        			<wa:IsAccept>Rejected-отказ или >Accepted</wa:IsAccept>
                    <wa:ACTNUMBER>1-1</wa:ACTNUMBER>
                    <wa:ActDate>2014-12-17</wa:ActDate>
                    <wa:WBRegId>0000002167</wa:WBRegId>
                    <wa:Note> Пересортица всей продукции ИЛИ Приниаем продукцию</wa:Note>
                </wa:Header>
                <wa:Content> </wa:Content>
            </ns:WayBillAct> или </ns:WayBillAct_v2> 
        </ns:Document>
	</ns:Documents>
*/
PROC pRepTTNAct()
    LOCA cOldCol:=SetColor(), GetList:={}, cRegTTN:=Spac(20), nAction:=1, nVer:=2
	LOCA cNumbAct:=Dtos(Date())+StrTran(Time(),":"), dDatAct:=Date(), lRash:=FALSE
    LOCA cTag:="", cNode:="", cOut:="", cXml:=""
    LOCA cIdZap:="", cZap:="", cZapOut:="", cZ:="", aBody:={}
  	LOCA oMain, oDoc := TXmlDocument():new( _XMLUTF8 )

    //  Читаем код регистрации ТТН - можно из режима чистки запросов, форму реакцию (прием/отказ) и версию по которой отправлять акт
    fSwopen(19,3,4,75,cColor,2)
    @ 1,1 SAY "Пожалуйста введите id ТТН поставщика (TTN-0000000000)"                       GET cRegTTN PICT "@!"   VALI lValid({||!Empty(cRegTTN)},"Запрешено пустой код регистрации! Для отказа нажмите Esc!")
    @ 2,1 SAY "Какой вид акта отправляем? 1-Полного приёма, 2-Полного отказа от АП ТТН "    GET nAction PICT "9"
    @ 3,1 SAY "По какой версии 1/2 делать акт на накладную (WayBill_v2-ТТН v2,иначе v1)"    GET nVer    PICT "9"
    READ
    fDeact(cOldCol)
    IF LastKey() == K_ESC THEN RETU

    //***   Отсылка акта на накладную - просто отправляю без контроля его прохождения через ЕГАИС... Можно увидеть по тикетам
    cRegTTN     := Alltrim(cRegTTN)
    cNode       :=IF(nAction=1,'Принимаем продукцию','Пересортица всей продукции')+' по накладной: '+cRegTTN
    IF nVer = 1     //  v1
        cTag    := "ns:WayBillAct"
        cXml    := "TTNAct_v1.xml"
        cOut    := "WayBillAct"
    ELSE            //  v2
        cTag    := "ns:WayBillAct_v2"
        cXml    := "TTNAct_v2.xml"
        cOut    := "WayBillAct_v2"
    ENDI
    
    //  Создаём главный - первый XML узел (node). Добавляем в корень дерева
	oMain		:= IF(nVer=1,_DOCUMENTS,_DOCUMENTS2)
	oDoc:oRoot:addBelow( oMain )

	//  Создаю тело запроса используя универсальный блок из enewfunc
    aBody   := {{"wa:IsAccept",     IF(nAction = 1,"Accepted","Rejected")},;    //  Подтверждение или отказ
                {"wa:ACTNUMBER",    cNumbAct},;                                 //  Уникальный фиктивный номер
                {"wa:ActDate",      cdEGAIS(dDatAct)},;                         //  Дата в формате ЕГАИС
                {"wa:WBRegId",      cRegTTN},;                                  //  Код ТТН, по которой отсылаем акт
                {"wa:Note",         cNode}}                                     //  Произвольный текст в акте
    pCrBodyReg( oMain,cTag,"wa:Header",aBody )

    //  Создаю XML файл запроса через универсальный блок из enewfunc
    pCrFileReq( oDoc, cXml)

	//  Отправляю исходящий запрос используя вызов внешней команды и универсальный блок из enewfunc
    IF !lSndToEgais(cXml,cOut,@cIdZap,@cZap) THEN RETU
    ErrMess("Отправлено "+IF(nAction=1,"подтверждение","отказ")+" на ТТН поставщика с кодом "+cRegTTN,cHelpc)
    RETU


З.Ы. В принципе вариантов проблемных ТТН может быть огромное множество, пропускаемых по формальным признаком ЕГАИС, по этому данный подход видится более универсальным
18.07.2017 12:02
кстати прикольно )))
18.07.2017 13:08
Андрей, я из своих программ генерю скрипт на vbscript и разбираю xml им. Вывод результата в обычный текстовый файл. Его и забираю. Поскольку оформлено через класс, в программе всего несколько строчек. Главное, дать имена в принимающей структуре, соответствующие тэгам. В принципе, мне переделать на произвольные префиксы не проблема. В программе практически ничего не меняется. Ты тоже можешь задействовать такой подход. Создавать и загружать простые текстовые файлы можно из любого инструмента. Я для локальных целей использую генерацию vbscript, для всяких онлайн задач дергаю библиотеку на php на своем сайте. Получается малой кровью расширить функциональность инструмента. А примеров решения разных задач на vbscript и php много. И ничего специально не надо устанавливать...
18.08.2017 09:08
Вчера "вручили подарок", сегодня посмотрел секретный раздел форума ФСРАР и не знаю - смеяться или плакать?

Скрин раздела на сейчас, но просмотрел конечно сообщения и выделил только относящиеся к данному посту:



Многие из воспрошающих (точно знаю) слышали о чудо программе "УС Лэнд:ЕГАИС" и даже о давнем режиме: https://olegon.ru/showpost.php?p=280770&postcount=143

Но знать "религия не позволяет" запустить её тестовый режим для диагностики проблем - гораздо "конструктивнее" воспрошать на форумах в попытках услышать очевидный ответ

Ну а подарок за что? Так же человек, работающий с "УСЕга", как с утилитой для "1С:Розница" попросил взглянуть... что то "1С" выдаёт ошибки, а программист 1С утверждает, что прога "1С:Розница" работает без проблем...

Запустили сервис "УСЕга" и он показал постоянные проблемы работы УТМ... Влезли на форумы ФСРАР и ЦИ, где это подтвердилось... то есть ни их программист, ни одноэска не виноваты!
Часовой пояс GMT +3, время: 10:03.

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