0
Varlant1n
17.02.21
✎
17:11
|
Здравствуйте. Есть форма обработки. На форме появляются товары из заказа клиента. Мне нужно щас сделать обработку штрихкодов, чтобы при наведении на штрихкод товара. В таблице на форме обработки в колонке КоличествоРеализации добавлялось по одному. При этом если у товара Реквизит, если реквизит Отгружено = Истина (это проверяется через запрос к ЗаказыКлиентовОстатки), тогда должно быть что-то по типу предупреждения о том, что данный товар уже отгружен. На форме строка отгруженного товара через условное оформление вычеркивается. Я смог добиться того, что я могу через сканер найти строку и начать добавлять при сканировании, но как только количество в заказе и количество в реализации равны друг другу, мне выдает ошибку, хотя должно быть предупреждение о том, что данного товара уже достаточно. Вот код, который я смог написать, не ругайтесь только. Я знаю вы умеете. Спасибо заранее за помощь)
&НаКлиенте
Процедура ОбработатьШтрихкоды(ДанныеШтрихкода)
Если ЗначениеЗаполнено(Объект.Товары) Тогда
Номенклатура = ПолучитьНоменклатуруПоШтрихкоду(ДанныеШтрихкода);
Если Номенклатура <> Неопределено Тогда
Активизировать();
ТекущиеДанные = Объект.Товары.НайтиПоИдентификатору(НайтиТовар(Номенклатура));
Если ТекущиеДанные.КоличествоРеализации = ТекущиеДанные.КоличествоВЗаказе И
ТекущиеДанные.ПолностьюПоставлен Тогда
Предупреждение("Данного товара уже достаточно! Верните товар на полку!");
КонецЕсли;
Элементы.Товары.ТекущаяСтрока = ТекущиеДанные.НомерСтроки - 1;
КонецЕсли;
Иначе
Предупреждение("Номенклатура со штрихкодом %1 не найдена");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция НайтиТовар(Позиция)
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Номенклатура", Позиция);
ПараметрыОтбора.Вставить("Отгружено", Ложь);
НайденныеСтроки = Объект.Товары.НайтиСтроки(ПараметрыОтбора);
Если НайденныеСтроки.Количество() <> 0 Тогда
НайденнаяСтрока = НайденныеСтроки[0];
Если НайденнаяСтрока.КоличествоРеализации < НайденнаяСтрока.КоличествоВЗаказе И НЕ НайденнаяСтрока.ПолностьюПоставлен Тогда
НайденнаяСтрока.КоличествоРеализации = НайденнаяСтрока.КоличествоРеализации + 1;
ИначеЕсли НайденнаяСтрока.КоличествоРеализации = НайденнаяСтрока.КоличествоВЗаказе Тогда
НайденнаяСтрока.ПолностьюПоставлен = Истина;
КонецЕсли;
КонецЕсли;
Возврат НайденнаяСтрока.ПолучитьИдентификатор();
КонецФункции
|
|