Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 апр 2024, 01:34

Обработка штрихкодов. Нужна помощь.

Автор Varlant1n, 17 фев 2021, 17:09

0 Пользователей и 1 гость просматривают эту тему.

Varlant1n

Здравствуйте. Есть форма обработки. На форме появляются товары из заказа клиента. Мне нужно щас сделать обработку штрихкодов, чтобы при наведении на штрихкод товара. В таблице на форме обработки в колонке КоличествоРеализации добавлялось по одному. При этом если у товара Реквизит, если реквизит Отгружено = Истина (это проверяется через запрос к ЗаказыКлиентовОстатки), тогда должно быть что-то по типу предупреждения о том, что данный товар уже отгружен. На форме строка отгруженного товара через условное оформление вычеркивается. Я смог добиться того, что я могу через сканер найти строку и начать добавлять при сканировании, но как только количество в заказе и количество в реализации равны друг другу, мне выдает ошибку, хотя должно быть предупреждение о том, что данного товара уже достаточно. Вот код, который я смог написать, не ругайтесь только. Я знаю вы умеете. Спасибо заранее за помощь)


&НаКлиенте
Процедура ОбработатьШтрихкоды(ДанныеШтрихкода)
    Если ЗначениеЗаполнено(Объект.Товары) Тогда
        Номенклатура = ПолучитьНоменклатуруПоШтрихкоду(ДанныеШтрихкода);
        Если Номенклатура <> Неопределено Тогда
            Активизировать();
            ТекущиеДанные = Объект.Товары.НайтиПоИдентификатору(НайтиТовар(Номенклатура));
            Если ТекущиеДанные.КоличествоРеализации = ТекущиеДанные.КоличествоВЗаказе И
                ТекущиеДанные.ПолностьюПоставлен Тогда
                Предупреждение("Данного товара уже достаточно! Верните товар на полку!");               
            КонецЕсли;
            Элементы.Товары.ТекущаяСтрока = ТекущиеДанные.НомерСтроки - 1;
        КонецЕсли;       
    Иначе
        Предупреждение("Номенклатура со штрихкодом %1 не найдена");
    КонецЕсли;       
КонецПроцедуры


&НаСервере
Функция НайтиТовар(Позиция)   
    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Номенклатура", Позиция);
    ПараметрыОтбора.Вставить("Отгружено", Ложь);
    НайденныеСтроки = Объект.Товары.НайтиСтроки(ПараметрыОтбора);   
    Если НайденныеСтроки.Количество() <> 0 Тогда
        НайденнаяСтрока = НайденныеСтроки[0];
       
        Если НайденнаяСтрока.КоличествоРеализации < НайденнаяСтрока.КоличествоВЗаказе И НЕ НайденнаяСтрока.ПолностьюПоставлен Тогда
            НайденнаяСтрока.КоличествоРеализации = НайденнаяСтрока.КоличествоРеализации + 1;
        ИначеЕсли НайденнаяСтрока.КоличествоРеализации = НайденнаяСтрока.КоличествоВЗаказе Тогда
            НайденнаяСтрока.ПолностьюПоставлен = Истина;
        КонецЕсли;
    КонецЕсли;
Возврат НайденнаяСтрока.ПолучитьИдентификатор();
КонецФункции

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск