Compare commits
1 Commits
main
...
feature/do
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0d5f17004 |
@ -21,6 +21,17 @@
|
||||
конецесли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Перем ИдентСтрокиТовара;
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
ИдентСтрокиТовара = 0;
|
||||
Если Параметры.Свойство("ИдентСтрокиТовара") Тогда
|
||||
ИдентСтрокиТовара = Параметры.ИдентСтрокиТовара;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВнешнееСобытие(Источник, Событие, Данные)
|
||||
// Если ЭтаФорма.вводдоступен() Тогда
|
||||
@ -75,8 +86,7 @@
|
||||
Если ЗначениеЗаполнено(КодМаркировки) Тогда
|
||||
ПараметрыТов.Вставить("КодМаркировки", КодМаркировки);
|
||||
КонецЕсли;
|
||||
Оповестить("НашлиТоварВПоставке", ПараметрыТов, ЭтаФорма);
|
||||
ЭтаФорма.Закрыть();
|
||||
ОповеститьОНайденномТоваре(ПараметрыТов);
|
||||
//иначе
|
||||
// Оповестить("НЕнашлиТоварВПоставке", , ЭтаФорма);
|
||||
// ЭтаФорма.Закрыть();
|
||||
@ -92,7 +102,6 @@
|
||||
конецесли;
|
||||
ИначеЕсли Событие="Штрихкод" И ЕстьТовар И Не ЭтоШтрихкодТовараПодбор(Данные) Тогда
|
||||
структураПоиска=Новый структура();
|
||||
ПараметрыТов = Новый Структура();
|
||||
postingNumber = "";
|
||||
если Маркет="YA" Тогда
|
||||
postingNumber=ПривестиСтрокуВПорядок(Данные, "-");
|
||||
@ -117,17 +126,8 @@
|
||||
КонецЕсли;
|
||||
РезПоиска=НайтиТоварВДокеПоШК(структураПоиска);
|
||||
Если РезПоиска=истина Тогда
|
||||
Если Маркет="WB" ИЛИ Маркет="FB" Тогда
|
||||
ПараметрыТов.Вставить("ШтрихкодПоставки", postingNumber);
|
||||
Иначе
|
||||
ПараметрыТов.Вставить("КодМП", postingNumber);
|
||||
КонецЕсли;
|
||||
ПараметрыТов.Вставить("Номенклатура", ном);
|
||||
Если ЗначениеЗаполнено(КодМаркировки) Тогда
|
||||
ПараметрыТов.Вставить("КодМаркировки", КодМаркировки);
|
||||
КонецЕсли;
|
||||
Оповестить("НашлиТоварВПоставке", ПараметрыТов, ЭтаФорма);
|
||||
ЭтаФорма.Закрыть();
|
||||
ПараметрыТов = СформироватьПараметрыНайденногоТовара(структураПоиска, ном);
|
||||
ОповеститьОНайденномТоваре(ПараметрыТов);
|
||||
иначе
|
||||
Оповестить("НЕнашлиТоварВПоставке", , ЭтаФорма);
|
||||
ЭтаФорма.Закрыть();
|
||||
@ -135,6 +135,33 @@
|
||||
конецесли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОповеститьОНайденномТоваре(ПараметрыТов)
|
||||
Если ИдентСтрокиТовара <> 0 Тогда
|
||||
ПараметрыТов.Вставить("ИдентСтрокиТовара", ИдентСтрокиТовара);
|
||||
КонецЕсли;
|
||||
Оповестить("НашлиТоварВПоставке", ПараметрыТов, ЭтаФорма);
|
||||
ЭтаФорма.Закрыть();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция СформироватьПараметрыНайденногоТовара(структураПоиска, КарточкаМП)
|
||||
|
||||
ПараметрыТов = Новый Структура();
|
||||
ПараметрыТов.Вставить("Номенклатура", КарточкаМП);
|
||||
Если структураПоиска.Свойство("КодМП") И ЗначениеЗаполнено(структураПоиска.КодМП) Тогда
|
||||
ПараметрыТов.Вставить("КодМП", структураПоиска.КодМП);
|
||||
КонецЕсли;
|
||||
Если структураПоиска.Свойство("ШтрихкодПоставки") И ЗначениеЗаполнено(структураПоиска.ШтрихкодПоставки) Тогда
|
||||
ПараметрыТов.Вставить("ШтрихкодПоставки", структураПоиска.ШтрихкодПоставки);
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(КодМаркировки) Тогда
|
||||
ПараметрыТов.Вставить("КодМаркировки", КодМаркировки);
|
||||
КонецЕсли;
|
||||
Возврат ПараметрыТов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НайтиНомПоШКПоставки(НомерПоставки)
|
||||
СсылкиПоставкиМП = ДокументОснование.ПоставкиМП.Выгрузить().ВыгрузитьКолонку("ПоставкаМП");
|
||||
Запрос = Новый Запрос;
|
||||
|
||||
@ -26,10 +26,17 @@
|
||||
Запрос.УстановитьПараметр("СписокЗначений", СсылкиПоставкиМП);
|
||||
ТоварыВирт.Загрузить(Запрос.Выполнить().Выгрузить());
|
||||
Для Каждого строка Из ТоварыВирт Цикл
|
||||
строка.Отсканировано = 0;
|
||||
строка.МаркаСтрока = "";
|
||||
строка.МаркаПредставление = "";
|
||||
СтруктураПоиска = Новый Структура();
|
||||
СтруктураПоиска.Вставить("КарточкаМП", строка.КарточкаМП);
|
||||
СтруктураПоиска.Вставить("КодМП", строка.КодМП);
|
||||
ТовКол=Объект.ТоварыТолькоКоличество.НайтиСтроки(СтруктураПоиска);
|
||||
Если (ТовКол = Неопределено Или ТовКол.Количество() = 0) И ЗначениеЗаполнено(строка.ШтрихкодПоставки) Тогда
|
||||
СтруктураПоиска = Новый Структура("КарточкаМП, ШтрихкодПоставки", строка.КарточкаМП, строка.ШтрихкодПоставки);
|
||||
ТовКол = Объект.ТоварыТолькоКоличество.НайтиСтроки(СтруктураПоиска);
|
||||
КонецЕсли;
|
||||
Если ТовКол <> Неопределено И ТовКол.Количество() > 0 Тогда
|
||||
строка.Отсканировано = ТовКол[0].Отсканировано;
|
||||
строка.МаркаСтрока = ТовКол[0].МаркаСтрока;
|
||||
@ -152,6 +159,7 @@
|
||||
ПараметрыОткрытия.Вставить("ЕстьТовар", Истина);
|
||||
ПараметрыОткрытия.Вставить("Маркет", МаркетПлейс);
|
||||
ПараметрыОткрытия.Вставить("ЕстьПоставка", ложь);
|
||||
ПараметрыОткрытия.Вставить("ИдентСтрокиТовара", тов.ПолучитьИдентификатор());
|
||||
Если МаркаТовара <> Неопределено Тогда
|
||||
ПараметрыОткрытия.Вставить("КодМаркировки",МаркаТовара);
|
||||
КонецЕсли;
|
||||
@ -246,45 +254,136 @@
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
если ИмяСобытия="НашлиТоварВПоставке" Тогда
|
||||
НеВызыватьВС=истина;
|
||||
структураПоиска=Новый структура();
|
||||
если Параметр.Свойство("КодМП") И ЗначениеЗаполнено(Параметр.КодМП)
|
||||
И Параметр.КодМП <> "Не определен" Тогда
|
||||
структураПоиска.Вставить("КодМП", Параметр.КодМП);
|
||||
КонецЕсли;
|
||||
если Параметр.Свойство("ШтрихкодПоставки") И ЗначениеЗаполнено(Параметр.ШтрихкодПоставки) Тогда
|
||||
структураПоиска.Вставить("ШтрихкодПоставки", Параметр.ШтрихкодПоставки);
|
||||
КонецЕсли;
|
||||
структураПоиска.Вставить("КарточкаМП", Параметр.Номенклатура);
|
||||
тов=ТоварыВирт.НайтиСтроки(структураПоиска);
|
||||
Если тов <> неопределено И тов.Количество() > 0 Тогда
|
||||
Для каждого элемент из тов цикл
|
||||
если элемент.Отсканировано >= элемент.Количество Тогда Продолжить; КонецЕсли;
|
||||
элемент.Отсканировано = элемент.Отсканировано + 1;
|
||||
если Параметр.Свойство("КодМаркировки") И ЗначениеЗаполнено(Параметр.КодМаркировки)
|
||||
И Параметр.КодМаркировки <> "-" Тогда
|
||||
элемент.МаркаСтрока = Параметр.КодМаркировки;
|
||||
элемент.МаркаПредставление = ПредставлениеКодаМаркировки(Параметр.КодМаркировки);
|
||||
КонецЕсли;
|
||||
Элементы.ТоварыВиртНаФорме.ТекущаяСтрока = элемент.ПолучитьИдентификатор();
|
||||
ФайлЗвука = ПолучитьАдресФайла("ок");
|
||||
#Если МобильноеПриложениеКлиент Тогда
|
||||
СредстваМультимедиа.ВоспроизвестиАудио(ФайлЗвука);
|
||||
#КонецЕсли
|
||||
Прервать;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
Если Не ОбновитьСтрокуТовараВирт(Параметр) Тогда
|
||||
Сообщить("Не удалось обновить строку товара в документе");
|
||||
ВоспроизвестиЗвукСканирования("еррор");
|
||||
КонецЕсли;
|
||||
ИначеЕсли ИмяСобытия="НЕнашлиТоварВПоставке" Тогда
|
||||
Сообщить("Нет соотвествия товара и поставки в данном документе!");
|
||||
НеВызыватьВС=истина;
|
||||
ФайлЗвука = ПолучитьАдресФайла("еррор");
|
||||
#Если МобильноеПриложениеКлиент Тогда
|
||||
СредстваМультимедиа.ВоспроизвестиАудио(ФайлЗвука);
|
||||
#КонецЕсли
|
||||
ВоспроизвестиЗвукСканирования("еррор");
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ОбновитьСтрокуТовараВирт(Параметр)
|
||||
|
||||
элемент = Неопределено;
|
||||
Если Параметр.Свойство("ИдентСтрокиТовара") И Параметр.ИдентСтрокиТовара <> 0 Тогда
|
||||
элемент = ТоварыВирт.НайтиПоИдентификатору(Параметр.ИдентСтрокиТовара);
|
||||
Если элемент <> Неопределено И Не СтрокаСоответствуетПоставке(элемент, Параметр) Тогда
|
||||
элемент = Неопределено;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если элемент = Неопределено Тогда
|
||||
НайденныеСтроки = НайтиСтрокиТовараВирт(Параметр);
|
||||
Для Каждого СтрокаТов Из НайденныеСтроки Цикл
|
||||
Если СтрокаТов.Отсканировано < СтрокаТов.Количество Тогда
|
||||
элемент = СтрокаТов;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если элемент = Неопределено Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если элемент.Отсканировано >= элемент.Количество Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
элемент.Отсканировано = элемент.Отсканировано + 1;
|
||||
Если Параметр.Свойство("КодМаркировки") И ЗначениеЗаполнено(Параметр.КодМаркировки)
|
||||
И Параметр.КодМаркировки <> "-" Тогда
|
||||
элемент.МаркаСтрока = Параметр.КодМаркировки;
|
||||
элемент.МаркаПредставление = ПредставлениеКодаМаркировки(Параметр.КодМаркировки);
|
||||
КонецЕсли;
|
||||
Элементы.ТоварыВиртНаФорме.ТекущаяСтрока = элемент.ПолучитьИдентификатор();
|
||||
ВоспроизвестиЗвукСканирования("ок");
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция НайтиСтрокиТовараВирт(Параметр)
|
||||
|
||||
Результат = Новый Массив;
|
||||
Если Не Параметр.Свойство("Номенклатура") Или Не ЗначениеЗаполнено(Параметр.Номенклатура) Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
структураПоиска = Новый Структура("КарточкаМП", Параметр.Номенклатура);
|
||||
Если Параметр.Свойство("КодМП") И ЗначениеЗаполнено(Параметр.КодМП)
|
||||
И Параметр.КодМП <> "Не определен" Тогда
|
||||
структураПоиска.Вставить("КодМП", Параметр.КодМП);
|
||||
КонецЕсли;
|
||||
Если Параметр.Свойство("ШтрихкодПоставки") И ЗначениеЗаполнено(Параметр.ШтрихкодПоставки) Тогда
|
||||
структураПоиска.Вставить("ШтрихкодПоставки", Параметр.ШтрихкодПоставки);
|
||||
КонецЕсли;
|
||||
|
||||
тов = ТоварыВирт.НайтиСтроки(структураПоиска);
|
||||
Если тов <> Неопределено И тов.Количество() > 0 Тогда
|
||||
Для Каждого СтрокаТов Из тов Цикл
|
||||
Результат.Добавить(СтрокаТов);
|
||||
КонецЦикла;
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КодПоставки = "";
|
||||
Если Параметр.Свойство("КодМП") И ЗначениеЗаполнено(Параметр.КодМП)
|
||||
И Параметр.КодМП <> "Не определен" Тогда
|
||||
КодПоставки = СокрЛП(Параметр.КодМП);
|
||||
ИначеЕсли Параметр.Свойство("ШтрихкодПоставки") И ЗначениеЗаполнено(Параметр.ШтрихкодПоставки) Тогда
|
||||
КодПоставки = СокрЛП(Параметр.ШтрихкодПоставки);
|
||||
КонецЕсли;
|
||||
|
||||
тов = ТоварыВирт.НайтиСтроки(Новый Структура("КарточкаМП", Параметр.Номенклатура));
|
||||
Если тов = Неопределено Тогда
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СтрокаТов Из тов Цикл
|
||||
Если ЗначениеЗаполнено(КодПоставки)
|
||||
И (СокрЛП(Строка(СтрокаТов.КодМП)) = КодПоставки
|
||||
Или СокрЛП(Строка(СтрокаТов.ШтрихкодПоставки)) = КодПоставки) Тогда
|
||||
Результат.Добавить(СтрокаТов);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Функция СтрокаСоответствуетПоставке(СтрокаТов, Параметр)
|
||||
|
||||
КодПоставки = "";
|
||||
Если Параметр.Свойство("КодМП") И ЗначениеЗаполнено(Параметр.КодМП)
|
||||
И Параметр.КодМП <> "Не определен" Тогда
|
||||
КодПоставки = СокрЛП(Параметр.КодМП);
|
||||
ИначеЕсли Параметр.Свойство("ШтрихкодПоставки") И ЗначениеЗаполнено(Параметр.ШтрихкодПоставки) Тогда
|
||||
КодПоставки = СокрЛП(Параметр.ШтрихкодПоставки);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(КодПоставки) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СокрЛП(Строка(СтрокаТов.КодМП)) = КодПоставки
|
||||
Или СокрЛП(Строка(СтрокаТов.ШтрихкодПоставки)) = КодПоставки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВоспроизвестиЗвукСканирования(ТипМакета)
|
||||
ФайлЗвука = ПолучитьАдресФайла(ТипМакета);
|
||||
#Если МобильноеПриложениеКлиент Тогда
|
||||
СредстваМультимедиа.ВоспроизвестиАудио(ФайлЗвука);
|
||||
#КонецЕсли
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ЭтоКодМаркировки(Знач ДанныеСкана)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user