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 = "";
|
postingNumber = "";
|
||||||
если Маркет="YA" Тогда
|
если Маркет="YA" Тогда
|
||||||
postingNumber=ПривестиСтрокуВПорядок(Данные, "-");
|
postingNumber=ПривестиСтрокуВПорядок(Данные, "-");
|
||||||
@ -117,17 +126,8 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
РезПоиска=НайтиТоварВДокеПоШК(структураПоиска);
|
РезПоиска=НайтиТоварВДокеПоШК(структураПоиска);
|
||||||
Если РезПоиска=истина Тогда
|
Если РезПоиска=истина Тогда
|
||||||
Если Маркет="WB" ИЛИ Маркет="FB" Тогда
|
ПараметрыТов = СформироватьПараметрыНайденногоТовара(структураПоиска, ном);
|
||||||
ПараметрыТов.Вставить("ШтрихкодПоставки", postingNumber);
|
ОповеститьОНайденномТоваре(ПараметрыТов);
|
||||||
Иначе
|
|
||||||
ПараметрыТов.Вставить("КодМП", postingNumber);
|
|
||||||
КонецЕсли;
|
|
||||||
ПараметрыТов.Вставить("Номенклатура", ном);
|
|
||||||
Если ЗначениеЗаполнено(КодМаркировки) Тогда
|
|
||||||
ПараметрыТов.Вставить("КодМаркировки", КодМаркировки);
|
|
||||||
КонецЕсли;
|
|
||||||
Оповестить("НашлиТоварВПоставке", ПараметрыТов, ЭтаФорма);
|
|
||||||
ЭтаФорма.Закрыть();
|
|
||||||
иначе
|
иначе
|
||||||
Оповестить("НЕнашлиТоварВПоставке", , ЭтаФорма);
|
Оповестить("НЕнашлиТоварВПоставке", , ЭтаФорма);
|
||||||
ЭтаФорма.Закрыть();
|
ЭтаФорма.Закрыть();
|
||||||
@ -135,6 +135,33 @@
|
|||||||
конецесли;
|
конецесли;
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Процедура ОповеститьОНайденномТоваре(ПараметрыТов)
|
||||||
|
Если ИдентСтрокиТовара <> 0 Тогда
|
||||||
|
ПараметрыТов.Вставить("ИдентСтрокиТовара", ИдентСтрокиТовара);
|
||||||
|
КонецЕсли;
|
||||||
|
Оповестить("НашлиТоварВПоставке", ПараметрыТов, ЭтаФорма);
|
||||||
|
ЭтаФорма.Закрыть();
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
&НаКлиенте
|
||||||
|
Функция СформироватьПараметрыНайденногоТовара(структураПоиска, КарточкаМП)
|
||||||
|
|
||||||
|
ПараметрыТов = Новый Структура();
|
||||||
|
ПараметрыТов.Вставить("Номенклатура", КарточкаМП);
|
||||||
|
Если структураПоиска.Свойство("КодМП") И ЗначениеЗаполнено(структураПоиска.КодМП) Тогда
|
||||||
|
ПараметрыТов.Вставить("КодМП", структураПоиска.КодМП);
|
||||||
|
КонецЕсли;
|
||||||
|
Если структураПоиска.Свойство("ШтрихкодПоставки") И ЗначениеЗаполнено(структураПоиска.ШтрихкодПоставки) Тогда
|
||||||
|
ПараметрыТов.Вставить("ШтрихкодПоставки", структураПоиска.ШтрихкодПоставки);
|
||||||
|
КонецЕсли;
|
||||||
|
Если ЗначениеЗаполнено(КодМаркировки) Тогда
|
||||||
|
ПараметрыТов.Вставить("КодМаркировки", КодМаркировки);
|
||||||
|
КонецЕсли;
|
||||||
|
Возврат ПараметрыТов;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Функция НайтиНомПоШКПоставки(НомерПоставки)
|
Функция НайтиНомПоШКПоставки(НомерПоставки)
|
||||||
СсылкиПоставкиМП = ДокументОснование.ПоставкиМП.Выгрузить().ВыгрузитьКолонку("ПоставкаМП");
|
СсылкиПоставкиМП = ДокументОснование.ПоставкиМП.Выгрузить().ВыгрузитьКолонку("ПоставкаМП");
|
||||||
Запрос = Новый Запрос;
|
Запрос = Новый Запрос;
|
||||||
|
|||||||
@ -26,10 +26,17 @@
|
|||||||
Запрос.УстановитьПараметр("СписокЗначений", СсылкиПоставкиМП);
|
Запрос.УстановитьПараметр("СписокЗначений", СсылкиПоставкиМП);
|
||||||
ТоварыВирт.Загрузить(Запрос.Выполнить().Выгрузить());
|
ТоварыВирт.Загрузить(Запрос.Выполнить().Выгрузить());
|
||||||
Для Каждого строка Из ТоварыВирт Цикл
|
Для Каждого строка Из ТоварыВирт Цикл
|
||||||
|
строка.Отсканировано = 0;
|
||||||
|
строка.МаркаСтрока = "";
|
||||||
|
строка.МаркаПредставление = "";
|
||||||
СтруктураПоиска = Новый Структура();
|
СтруктураПоиска = Новый Структура();
|
||||||
СтруктураПоиска.Вставить("КарточкаМП", строка.КарточкаМП);
|
СтруктураПоиска.Вставить("КарточкаМП", строка.КарточкаМП);
|
||||||
СтруктураПоиска.Вставить("КодМП", строка.КодМП);
|
СтруктураПоиска.Вставить("КодМП", строка.КодМП);
|
||||||
ТовКол=Объект.ТоварыТолькоКоличество.НайтиСтроки(СтруктураПоиска);
|
ТовКол=Объект.ТоварыТолькоКоличество.НайтиСтроки(СтруктураПоиска);
|
||||||
|
Если (ТовКол = Неопределено Или ТовКол.Количество() = 0) И ЗначениеЗаполнено(строка.ШтрихкодПоставки) Тогда
|
||||||
|
СтруктураПоиска = Новый Структура("КарточкаМП, ШтрихкодПоставки", строка.КарточкаМП, строка.ШтрихкодПоставки);
|
||||||
|
ТовКол = Объект.ТоварыТолькоКоличество.НайтиСтроки(СтруктураПоиска);
|
||||||
|
КонецЕсли;
|
||||||
Если ТовКол <> Неопределено И ТовКол.Количество() > 0 Тогда
|
Если ТовКол <> Неопределено И ТовКол.Количество() > 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