Fix matching delivery after marking code scan in StikerovkaMP.
Correct marketplace lookup for WB/FB/YA and persist marking codes to the Codes tab. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
88098aa86f
commit
2879dae761
@ -90,33 +90,38 @@
|
||||
//#КонецЕсли
|
||||
//Сообщить("Не нашли товар в базе");
|
||||
конецесли;
|
||||
ИначеЕсли Событие="Штрихкод" И НЕ СтрДлина(Данные)=13 И ЕстьТовар Тогда
|
||||
ИначеЕсли Событие="Штрихкод" И ЕстьТовар И Не ЭтоШтрихкодТовараПодбор(Данные) Тогда
|
||||
структураПоиска=Новый структура();
|
||||
ПараметрыТов = Новый Структура();
|
||||
если Маркет="OZ" Тогда
|
||||
postingNumber = "";
|
||||
если Маркет="YA" Тогда
|
||||
postingNumber=ПривестиСтрокуВПорядок(Данные, "-");
|
||||
структураПоиска.Вставить("КодМП", postingNumber);
|
||||
ИначеЕсли Маркет="OZ" Тогда
|
||||
ДанныеОтвета=СинхронизацияУТ.ЗапросДанныеДляМаркетов(ДокументОснование, Данные);
|
||||
postingNumber=ДанныеОтвета.result.posting_number;
|
||||
структураПоиска.Вставить("КодМП", postingNumber);
|
||||
конецесли;
|
||||
если Маркет="WB" ИЛИ Маркет="FB" Тогда
|
||||
ИначеЕсли Маркет="WB" ИЛИ Маркет="FB" Тогда
|
||||
postingNumber=Данные;
|
||||
структураПоиска.Вставить("ШтрихкодПоставки", postingNumber);
|
||||
Иначе
|
||||
postingNumber=Данные;
|
||||
структураПоиска.Вставить("КодМП", postingNumber);
|
||||
конецесли;
|
||||
структураПоиска.Вставить("КарточкаМП", ном);
|
||||
// Если у нас несколько товаров в одинаковым ШК, то смысла в ном нет
|
||||
// Значит найдем товар по ШК поставки
|
||||
ном = НайтиНомПоШКПоставки(postingNumber);
|
||||
Если ЗначениеЗаполнено(ном) Тогда
|
||||
структураПоиска.КарточкаМП = ном;
|
||||
// Если у нас несколько товаров с одинаковым ШК, уточним карточку по поставке
|
||||
НайденнаяКарточка = НайтиНомПоШКПоставки(postingNumber);
|
||||
Если ЗначениеЗаполнено(НайденнаяКарточка) Тогда
|
||||
структураПоиска.КарточкаМП = НайденнаяКарточка;
|
||||
ном = НайденнаяКарточка;
|
||||
КонецЕсли;
|
||||
РезПоиска=НайтиТоварВДокеПоШК(структураПоиска);
|
||||
//если рез=истина тогда
|
||||
Если РезПоиска=истина Тогда
|
||||
если НЕ Маркет="WB" ИЛИ НЕ Маркет="FB" Тогда
|
||||
ПараметрыТов.Вставить("КодМП", postingNumber);
|
||||
иначе
|
||||
Если Маркет="WB" ИЛИ Маркет="FB" Тогда
|
||||
ПараметрыТов.Вставить("ШтрихкодПоставки", postingNumber);
|
||||
конецесли;
|
||||
Иначе
|
||||
ПараметрыТов.Вставить("КодМП", postingNumber);
|
||||
КонецЕсли;
|
||||
ПараметрыТов.Вставить("Номенклатура", ном);
|
||||
Если ЗначениеЗаполнено(КодМаркировки) Тогда
|
||||
ПараметрыТов.Вставить("КодМаркировки", КодМаркировки);
|
||||
@ -146,7 +151,7 @@
|
||||
| ПоставкаМПТовары.Ссылка В (&СписокЗначений)";
|
||||
Запрос.УстановитьПараметр("СписокЗначений", СсылкиПоставкиМП);
|
||||
ТоварыНом = Запрос.Выполнить().Выгрузить();
|
||||
если НЕ Маркет="WB" Тогда
|
||||
если НЕ (Маркет="WB" ИЛИ Маркет="FB") Тогда
|
||||
тов=ТоварыНом.НайтиСтроки(Новый Структура("КодМП", НомерПоставки));
|
||||
Иначе
|
||||
тов=ТоварыНом.НайтиСтроки(Новый Структура("ШтрихкодПоставки", НомерПоставки));
|
||||
@ -156,6 +161,11 @@
|
||||
конецесли;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ЭтоШтрихкодТовараПодбор(Данные)
|
||||
Возврат СтрДлина(Данные) = 13 И СтрНайти(Данные, "-") = 0;
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция ЭтоКодМаркировкиПодбор(Знач ДанныеСкана)
|
||||
|
||||
@ -258,10 +268,9 @@
|
||||
ТоварыНом = Запрос.Выполнить().Выгрузить();
|
||||
тов=ТоварыНом.НайтиСтроки(стрПоиска);
|
||||
если тов <> неопределено И тов.Количество() > 0 Тогда
|
||||
возврат истина;
|
||||
иначе
|
||||
возврат ложь;
|
||||
Возврат Истина;
|
||||
конецесли;
|
||||
Возврат Ложь;
|
||||
КонецФункции
|
||||
|
||||
Функция ПривестиСтрокуВПорядок(Строка, СтрокаПоиска)
|
||||
|
||||
@ -247,29 +247,33 @@
|
||||
если ИмяСобытия="НашлиТоварВПоставке" Тогда
|
||||
НеВызыватьВС=истина;
|
||||
структураПоиска=Новый структура();
|
||||
если Параметр.Свойство("КодМП") Тогда
|
||||
если Параметр.Свойство("КодМП") И ЗначениеЗаполнено(Параметр.КодМП)
|
||||
И Параметр.КодМП <> "Не определен" Тогда
|
||||
структураПоиска.Вставить("КодМП", Параметр.КодМП);
|
||||
КонецЕсли;
|
||||
если Параметр.Свойство("ШтрихкодПоставки") Тогда
|
||||
если Параметр.Свойство("ШтрихкодПоставки") И ЗначениеЗаполнено(Параметр.ШтрихкодПоставки) Тогда
|
||||
структураПоиска.Вставить("ШтрихкодПоставки", Параметр.ШтрихкодПоставки);
|
||||
КонецЕсли;
|
||||
структураПоиска.Вставить("КарточкаМП", Параметр.Номенклатура);
|
||||
тов=ТоварыВирт.НайтиСтроки(структураПоиска);
|
||||
Если тов <> неопределено И тов.Количество() > 0 Тогда
|
||||
Для каждого элемент из тов цикл
|
||||
если элемент.Отсканировано = элемент.количество Тогда Продолжить; КонецЕсли;
|
||||
тов[0].Отсканировано= тов[0].Отсканировано + 1;
|
||||
если элемент.Отсканировано >= элемент.Количество Тогда Продолжить; КонецЕсли;
|
||||
элемент.Отсканировано = элемент.Отсканировано + 1;
|
||||
если Параметр.Свойство("КодМаркировки") И ЗначениеЗаполнено(Параметр.КодМаркировки)
|
||||
И Параметр.КодМаркировки <> "-" Тогда
|
||||
тов[0].МаркаСтрока = Параметр.КодМаркировки;
|
||||
тов[0].МаркаПредставление = ПредставлениеКодаМаркировки(Параметр.КодМаркировки);
|
||||
элемент.МаркаСтрока = Параметр.КодМаркировки;
|
||||
элемент.МаркаПредставление = ПредставлениеКодаМаркировки(Параметр.КодМаркировки);
|
||||
КонецЕсли;
|
||||
Элементы.ТоварыВиртНаФорме.ТекущаяСтрока = тов[0].ПолучитьИдентификатор();
|
||||
Элементы.ТоварыВиртНаФорме.ТекущаяСтрока = элемент.ПолучитьИдентификатор();
|
||||
ФайлЗвука = ПолучитьАдресФайла("ок");
|
||||
#Если МобильноеПриложениеКлиент Тогда
|
||||
СредстваМультимедиа.ВоспроизвестиАудио(ФайлЗвука);
|
||||
#КонецЕсли
|
||||
Прервать;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
Сообщить("Не удалось обновить строку товара в документе");
|
||||
КонецЕсли;
|
||||
ИначеЕсли ИмяСобытия="НЕнашлиТоварВПоставке" Тогда
|
||||
Сообщить("Нет соотвествия товара и поставки в данном документе!");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user