Форумы » Вопросы и ответы по интеграции »
Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН
Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
Доброго времени суток.
При отправке ВСД2 транзакция на некоторые строки документа дает такую ошибку.
Что делать?
Ответы (13)
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Pentyukhov Sergey около 5 лет назад
Открываете карточку ПродукциЭлемент, далее кнопка помоему Обновить из меркурия. Производитель видно изменил чтото в ранее отправленной продукции.
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
"Открываете карточку ПродукциЭлемент, далее кнопка помоему Обновить из меркурия"
сделал
элемент пометился на удаление
Дальше куда двигаться?
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
Продолжение
Посмотрел в отладчике и разобрался почему помечает на удаление:
Функция ПолучитьРезультат_Список_Продукции(ФайлОтвета,продукцияЭлемент="") Экспорт
.....
active = productItem.selectSingleNode("bs:active").text;
last = productItem.selectSingleNode("bs:last").text;
результат
last = "true"
active = "false"
Далее
Если ((last="true") и (active="false")) Тогда
//Если СпрОбъект.Выбран()=1 Тогда
СпрОбъект.Удалить(0);
//КонецЕсли;
КонецЕсли;
т.е. получается производитель деактивировал продукцию?
а нам теперь что с этим делать?
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
Продолжение
Перезагрузил партии.
Посмотрел загрузку.
Проблемная партия ссылается на тот же продукцияЭлемент
Заремил СпрОбъект.Удалить(0);
Получается этот ПродукцияЭлемент обновился.
Но в итоге при отправке ВСД2 та же ошибка.
Помогите!!!
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
Ну и в дополнение
Попробовал сделать ВСД вручную - все получилось,
Потом перезагрузил партии, соответственно остаток по партии (как и положено) обновился корректно.
Более того у нас пока не погашенный приход, так вот в нем есть та же самая продукция. Приход приходит корректно, ссылка на на тот же продукцияЭлемент.
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) кб99 Синявский Филипп около 5 лет назад
Виктор, для загрузки актуальных партий, воспользуйтесь пожалуйста инструкцией
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) кб99 Синявский Филипп около 5 лет назад
Буденновск Чуенко Виктор писал(а):
т.е. получается производитель деактивировал продукцию?
а нам теперь что с этим делать?
Если ваш производитель удалил ( деактивировал ) продукцию - скорее всего производитель добавил новую продукцию с другим GUID,
в этом случае можно сделать инвентаризацию - списать старую партию и оприходовать новую продукцию.
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
Ошибка осталась.
Давайте разбираться.
Извините не умею вставлять цитаты.
Актуальные партии я перегружал. Проблемная партия актуальна. Я выписывал ВСД вручную через сайт https://mercury.vetrf.ru там все проходит.
После загрузки партий количество соответственно меняется правильно. Значит GUID партии правильный, так как обмен ведется по нему.
Давайте разберем запрос на отправку ВСД:
xmlns:dt='http://api.vetrf.ru/schema/cdm/dictionary/v2'
xmlns:bs='http://api.vetrf.ru/schema/cdm/base'
xmlns:merc='http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2'
xmlns:apldef='http://api.vetrf.ru/schema/cdm/application/ws-definitions'
xmlns:apl='http://api.vetrf.ru/schema/cdm/application'
xmlns:vd='http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2'
xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<apldef:submitApplicationRequest>
<apldef:apiKey>MWU3OTU2NmQtNzU2Zi00ZDJjLWI0NzQtY2M4MWU2N2I3MjYyYzFkZDA0MzgtYjYyZi00MjYwLTgzNjYtOGMxYWY0OTRkNGMw</apldef:apiKey>
<apl:application>
<apl:serviceId>mercury-g2b.service:2.0</apl:serviceId>
<apl:issuerId>c1dd0438-b62f-4260-8366-8c1af494d4c0</apl:issuerId>
<apl:issueDate>2019-09-16T00:00:00</apl:issueDate>
<apl:data>
<merc:prepareOutgoingConsignmentRequest>
<merc:localTransactionId>4364</merc:localTransactionId>
<merc:initiator>
<vd:login>nichik_ve_171127</vd:login>
</merc:initiator>
<merc:delivery>
<vd:deliveryDate>2019-09-16T00:00:00</vd:deliveryDate>
<vd:consignor>
<dt:businessEntity>
<bs:guid>c1dd0438-b62f-4260-8366-8c1af494d4c0</bs:guid>
</dt:businessEntity>
<dt:enterprise>
<bs:guid>1285d794-3be2-42f7-b69f-cc25c915bae1</bs:guid>
</dt:enterprise>
</vd:consignor>
<vd:consignee>
<dt:businessEntity>
<bs:guid>06a365d8-bc09-4e87-b857-3aead1ca6b0f</bs:guid>
</dt:businessEntity>
<dt:enterprise>
<bs:guid>ce6740d5-86b3-4be0-a785-02d32c8b27bf</bs:guid>
</dt:enterprise>
</vd:consignee>
Здесь начинается строковая часть документа
<vd:consignment id='_1'>
Тут ГУИД и наименование элементапродукции
<vd:productItem> <bs:guid>78421511-5780-4b43-916f-6e9ba17ff094</bs:guid> <dt:name>Колбаса сырокопченая Швейцарская</dt:name>
</vd:productItem>
вес и ГУИД ед.изм.
<vd:volume>0.85</vd:volume>
<vd:unit>
<bs:guid>21ed96c9-337b-4a27-8761-c6e6ad3c9f5b</bs:guid>
</vd:unit>
тут пошли два уровня упаковок
<vd:packageList>
<dt:package>
<dt:level>2</dt:level>
<dt:packingType>
<bs:guid>6090531d-d038-4f6c-a8df-77ba92267ec4</bs:guid>
</dt:packingType>
<dt:quantity>5</dt:quantity>
<dt:productMarks class='EAN13'>4607091388404</dt:productMarks>
<dt:productMarks class='UNDEFINED'>АГРОСИЛА.Челны-МПК</dt:productMarks>
</dt:package>
<dt:package>
<dt:level>4</dt:level>
<dt:packingType>
<bs:guid>fedf4328-053c-11e1-99b4-d8d385fbc9e8</bs:guid>
</dt:packingType>
<dt:quantity>1</dt:quantity>
<dt:productMarks class='UNDEFINED'>АГРОСИЛА.Челны-МПК</dt:productMarks>
<dt:productMarks class='UNDEFINED'>14607091388401</dt:productMarks>
</dt:package>
</vd:packageList>
здесь ГУИД партии
<vd:sourceStockEntry>
<bs:guid>d2b89459-a8ad-404a-a0a9-d563f451d4db</bs:guid>
</vd:sourceStockEntry>
</vd:consignment>
<vd:transportInfo>
<vd:transportType>1</vd:transportType>
<vd:transportNumber>
<vd:vehicleNumber>В469ОХ26</vd:vehicleNumber>
</vd:transportNumber>
</vd:transportInfo>
<vd:transportStorageType>CHILLED</vd:transportStorageType>
<vd:shipmentRoute>
</vd:shipmentRoute>
<vd:accompanyingForms>
<vd:waybill>
<vd:issueSeries></vd:issueSeries>
<vd:issueNumber>0000057938</vd:issueNumber>
<vd:issueDate>2019-09-16</vd:issueDate>
<vd:type>1</vd:type>
</vd:waybill>
<vd:vetCertificate for='_1'>
тут цели и условия перевозки, оно обычно одинаковое для всех позиций в накладной, значит не проблема
<vd:authentication>
<vd:purpose>
<bs:guid>0778b8cb-f49d-4ed9-88b9-5f70af00a211</bs:guid>
</vd:purpose>
<vd:cargoInspected>true</vd:cargoInspected>
<vd:cargoExpertized>VSERAW</vd:cargoExpertized>
<vd:locationProsperity>местность благополучная по остро инфекционным заболеваниям с\х животных и птиц</vd:locationProsperity>
</vd:authentication>
</vd:vetCertificate>
</vd:accompanyingForms>
</merc:delivery>
</merc:prepareOutgoingConsignmentRequest>
</apl:data>
</apl:application>
</apldef:submitApplicationRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
собственно и все, накладная свежая, в ней одна проблемная продукция, ошибка та же.
я так понимаю, что при отправке не передается информация по справочнику ВСД_Продукция и ВСД_ВидПродукции
а только гуид по справочнику ВСД_Продукция_Элемент.
Если бы наш производитель добавил новую продукцию с другим ГУИД, то в свежей приходной ВСД данная продукция пришла бы с новым продукция_элемент,
но нет пришла сегодня новая партия с ссылкой на тот же гуид продукция_элемент.
Я не знаю что делать. Мы не производители, своей продукцией у нас никогда не было. Списать партию я то могу, а вот оприходовать, я никогда не пробовал, не уверен, что получиться.
Да и зачем, если в ручную на сайте с поиском конкретной партии и у меня получается оформить ВСД, а через обработку нет?
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
Вот что мне ответила служба поддержки
[Поддержка Ветис.API - Поддержка #350281]
Добрый день.
Данная ошибка возвращается, в случае если вид продукции в записи журнала и отличается от указываемого в productItem .
Способы устранения указанной ошибки :
1. Не указывать торговое наименование (данное поле не является обязательным)
2. Поменять вид продукции в номенклатуре на тот, который совпадает с видом продукции в записи журнала (изменить в справочнике)
3. Изменить вид продукции в записи журнала (инвентаризацией).
С уважением,
Служба технической поддержки ВетИС.API
но причем тут вид продукции если мы его не отправляем, или отправляем, а я этого не вижу?
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Михайлов Михаил около 5 лет назад
Здрасте.
Я бы для уверенности ещё инициализацию провел.
Смысла конечно, я не вижу, но уж слишком часто решались мои проблемы от этого.
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
Я то же смысла не вижу. Как только я убираю проблемную продукцию из документа или документ не содержит эту продукцию - все работает как надо.
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) Буденновск Чуенко Виктор около 5 лет назад
Все, разобрался
Эта ошибка та же что и Ошибка MERC02009 в строке _1 = В запросе для записи складского журнала продукции указан идентификатор устаревшей версии записи реестра РСХН.
Лечится отправкой продукции с пустым GUID Продукция_элемент
для тех кто во время обновляется тут уже все реализовано:
Если Док.Продукция_Элемент.ВидПродукции <> Док.Партия.ВидПродукции Тогда
// При изменении Вида продукции у ProductItem ошибка при списании ранее полученной партии
// Указанное наименование продукции относится к другому виду продукции.
Сообщить("изменен Вида продукции ВСД_Продукция_Элемент, ВСД_Продукция_Элемент относится к другому виду продукции => отправляем с пустым GUID","!");
ИначеЕсли ( Док.Продукция_Элемент.ПометкаУдаления() = 1 ) Тогда
//удаленные ProductItem отправляем без GUID
Сообщить("в строке №"+ Док.НомерСтроки " ВСД_Продукция_Элемент [" СокрЛП(Док.Продукция_Элемент.Наименование) "] удален => отправляем с пустым GUID","!");
Иначе
consignment = consignment?(ПустоеЗначение(док.Продукция_Элемент.GUID)= 0, " <bs:guid>"+ СокрЛП(док.Продукция_Элемент.GUID) +"</bs:guid>","");
КонецЕсли;
Логика этого обхода мне непонятна, но и фиг с ним, это вопрос к разработчикам Меркурия.
Нашим же разработчикам респект и уважуха, за то что тянут этот проект.
Всем добра!
RE: Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - Добавил(а) кб99 Синявский Филипп около 5 лет назад
Спасибо, стараемся... )))