Ошибка MERC02023 в строке _21 : В запросе для номенклатуры продукции указан идентификатор устаревшей версии записи реестра РСХН - 1Cv7 ВСД в ГИС Меркурий - КБ99 Redmine

Проект

Общее

Профиль

Ошибка 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 лет назад

Буденновск Чуенко Виктор писал(а):

т.е. получается производитель деактивировал продукцию?
а нам теперь что с этим делать?

Если ваш производитель удалил ( деактивировал ) продукцию - скорее всего производитель добавил новую продукцию с другим 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>

&lt;merc:delivery&gt;
&lt;vd:deliveryDate&gt;2019-09-16T00:00:00&lt;/vd:deliveryDate&gt;
&lt;vd:consignor&gt;
&lt;dt:businessEntity&gt;
&lt;bs:guid&gt;c1dd0438-b62f-4260-8366-8c1af494d4c0&lt;/bs:guid&gt;
&lt;/dt:businessEntity&gt;
&lt;dt:enterprise&gt;
&lt;bs:guid&gt;1285d794-3be2-42f7-b69f-cc25c915bae1&lt;/bs:guid&gt;
&lt;/dt:enterprise&gt;
&lt;/vd:consignor&gt;
&lt;vd:consignee&gt;
&lt;dt:businessEntity&gt;
&lt;bs:guid&gt;06a365d8-bc09-4e87-b857-3aead1ca6b0f&lt;/bs:guid&gt;
&lt;/dt:businessEntity&gt;
&lt;dt:enterprise&gt;
&lt;bs:guid&gt;ce6740d5-86b3-4be0-a785-02d32c8b27bf&lt;/bs:guid&gt;
&lt;/dt:enterprise&gt;
&lt;/vd:consignee&gt;
Здесь начинается строковая часть документа
&lt;vd:consignment id='_1'&gt;
Тут ГУИД и наименование элементапродукции
&lt;vd:productItem&gt; &lt;bs:guid&gt;78421511-5780-4b43-916f-6e9ba17ff094&lt;/bs:guid&gt; &lt;dt:name&gt;Колбаса сырокопченая Швейцарская&lt;/dt:name&gt;
&lt;/vd:productItem&gt;
вес и ГУИД ед.изм.
&lt;vd:volume&gt;0.85&lt;/vd:volume&gt;
&lt;vd:unit&gt;
&lt;bs:guid&gt;21ed96c9-337b-4a27-8761-c6e6ad3c9f5b&lt;/bs:guid&gt;
&lt;/vd:unit&gt;
тут пошли два уровня упаковок
&lt;vd:packageList&gt;
&lt;dt:package&gt;
&lt;dt:level&gt;2&lt;/dt:level&gt;
&lt;dt:packingType&gt;
&lt;bs:guid&gt;6090531d-d038-4f6c-a8df-77ba92267ec4&lt;/bs:guid&gt;
&lt;/dt:packingType&gt;
&lt;dt:quantity&gt;5&lt;/dt:quantity&gt;
&lt;dt:productMarks class='EAN13'&gt;4607091388404&lt;/dt:productMarks&gt;
&lt;dt:productMarks class='UNDEFINED'&gt;АГРОСИЛА.Челны-МПК&lt;/dt:productMarks&gt;
&lt;/dt:package&gt;
&lt;dt:package&gt;
&lt;dt:level&gt;4&lt;/dt:level&gt;
&lt;dt:packingType&gt;
&lt;bs:guid&gt;fedf4328-053c-11e1-99b4-d8d385fbc9e8&lt;/bs:guid&gt;
&lt;/dt:packingType&gt;
&lt;dt:quantity&gt;1&lt;/dt:quantity&gt;
&lt;dt:productMarks class='UNDEFINED'&gt;АГРОСИЛА.Челны-МПК&lt;/dt:productMarks&gt;
&lt;dt:productMarks class='UNDEFINED'&gt;14607091388401&lt;/dt:productMarks&gt;
&lt;/dt:package&gt;
&lt;/vd:packageList&gt;
здесь ГУИД партии
&lt;vd:sourceStockEntry&gt;
&lt;bs:guid&gt;d2b89459-a8ad-404a-a0a9-d563f451d4db&lt;/bs:guid&gt;
&lt;/vd:sourceStockEntry&gt;
&lt;/vd:consignment&gt;
&lt;vd:transportInfo&gt;
&lt;vd:transportType&gt;1&lt;/vd:transportType&gt;
&lt;vd:transportNumber&gt;
&lt;vd:vehicleNumber&gt;В469ОХ26&lt;/vd:vehicleNumber&gt;
&lt;/vd:transportNumber&gt;
&lt;/vd:transportInfo&gt;
&lt;vd:transportStorageType&gt;CHILLED&lt;/vd:transportStorageType&gt;
&lt;vd:shipmentRoute&gt;

</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>

&lt;/vd:authentication&gt;
&lt;/vd:vetCertificate&gt;
&lt;/vd:accompanyingForms&gt;
&lt;/merc:delivery&gt;
&lt;/merc:prepareOutgoingConsignmentRequest&gt;
&lt;/apl:data&gt;
&lt;/apl:application&gt;
&lt;/apldef:submitApplicationRequest&gt;
&lt;/SOAP-ENV:Body&gt;
&lt;/SOAP-ENV:Envelope&gt;

собственно и все, накладная свежая, в ней одна проблемная продукция, ошибка та же.
я так понимаю, что при отправке не передается информация по справочнику ВСД_Продукция и ВСД_ВидПродукции
а только гуид по справочнику ВСД_Продукция_Элемент.
Если бы наш производитель добавил новую продукцию с другим ГУИД, то в свежей приходной ВСД данная продукция пришла бы с новым продукция_элемент,
но нет пришла сегодня новая партия с ссылкой на тот же гуид продукция_элемент.
Я не знаю что делать. Мы не производители, своей продукцией у нас никогда не было. Списать партию я то могу, а вот оприходовать, я никогда не пробовал, не уверен, что получиться.
Да и зачем, если в ручную на сайте с поиском конкретной партии и у меня получается оформить ВСД, а через обработку нет?

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>","");
КонецЕсли;

Логика этого обхода мне непонятна, но и фиг с ним, это вопрос к разработчикам Меркурия.
Нашим же разработчикам респект и уважуха, за то что тянут этот проект.
Всем добра!

    (1-13/13)