Сохраняются данные штрихкода в кэше

1. vi4uxa 04.07.24 11:18 Сейчас в теме
УТ 11.5

У общей формы ПоискНоменклатурыПоШтрихкоду исправила процедуру при открытии, чтобы когда штрихкод не найден на формах Чека ККм, РТУ и Помошника продаж - данная форма не открывалась.
И как бы все работает, но:
1. Когда добавляется некорректный штрихкод - выдает ошибку, все хорошо
2. Сразу после этого добавляю уже зарегистрированный штрихкод - снова выдает ошибку, хотя не должен.
3. Если закрыть форму в которой это вызываешь, открыть по новой и ввести корректный штрихкод - ошибку не выдает, попадает в тч.

Как это можно исправить?

&НаКлиенте
Процедура цл_ПриОткрытииПеред(Отказ)
	
	ИмяВладельцаФормы = ЭтаФорма.ВладелецФормы.ИмяФормы;
	
	МассивИменФормОграниченийДоступа = Новый Массив();
	МассивИменФормОграниченийДоступа.Добавить("Документ.ЧекККМ.Форма.ФормаДокументаРМК");
	МассивИменФормОграниченийДоступа.Добавить("Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента");
	МассивИменФормОграниченийДоступа.Добавить("Обработка.ПомощникПродаж.Форма.Форма");
	
	Если Не МассивИменФормОграниченийДоступа.Найти(ИмяВладельцаФормы) = Неопределено Тогда 
		
		ПроверятьТЧПередЗакрытием = Истина;
		ЗавершениеРаботы = Истина;
		ОкончательноеЗакрытие = Истина;
		Предупреждение("Отсканированный ШК не найден в системе! Отсканируйте другой ШК на упаковке данного товара.");
		Закрыть();
		
	КонецЕсли;
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1706813 04.07.24 12:39 Сейчас в теме
Может как так попробовать?

&НаКлиенте
Процедура цл_ПриОткрытииПеред(Отказ)

    ИмяВладельцаФормы = ЭтаФорма.ВладелецФормы.ИмяФормы;

    МассивИменФормОграниченийДоступа = Новый Массив();
    МассивИменФормОграниченийДоступа.Добавить("Документ.ЧекККМ.Форма.ФормаДокументаРМК");
    МассивИменФормОграниченийДоступа.Добавить("Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента");
    МассивИменФормОграниченийДоступа.Добавить("Обработка.ПомощникПродаж.Форма.Форма");

    // Очищаем состояние перед проверкой
    Если ЭтаФорма.Свойство("ПоследнийШтрихкод") Тогда
        ЭтаФорма.ПоследнийШтрихкод = Неопределено;
    КонецЕсли;

    Если Не МассивИменФормОграниченийДоступа.Найти(ИмяВладельцаФормы) = Неопределено Тогда

        // Добавляем проверку штрихкода
        Если Не ПроверитьШтрихкод(Штрихкод) Тогда
            ПроверятьТЧПередЗакрытием = Истина;
            ЗавершениеРаботы = Истина;
            ОкончательноеЗакрытие = Истина;
            Предупреждение("Отсканированный ШК не найден в системе! Отсканируйте другой ШК на упаковке данного товара.");
            Закрыть();
        Иначе
            // Штрихкод найден, сохраняем его для последующей обработки
            ЭтаФорма.ПоследнийШтрихкод = Штрихкод;
        КонецЕсли;

    КонецЕсли;

КонецПроцедуры

Функция ПроверитьШтрихкод(Штрихкод)
    // Здесь должна быть логика проверки штрихкода, возвращающая Истина или Ложь
    Возврат Ложь; // Для примера всегда возвращаем Ложь
КонецФункции
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот