Не сканирует сканер штрихкода во внешней обработке

1. Natali_77 09.10.14 13:11 Сейчас в теме
Здравствуйте! Такая у меня проблема. Есть внешняя обработка по проверке перемещений. По кнопке F7 всё работает прекрасно, то есть ищется товар по штрихкоду, а просто при сканировании ничего не происходит.
Вот текст обработки. Просто я в 7-ке понимаю всю процедуру и сделала уже такую обработку, а в 8-ке никак не пойму. Вроде сделала по-аналогии с работой сканера в реализации, а ничего не происходит. Такое ощущение, что просто никакого поиска нет.

Процедура СШКОшибка(Ошибка, Штрихкод, ТипШК, СШК) Экспорт

    Текст = ПолучитьСерверТО().ПолучитьТекстОшибкиСШКТО(Ошибка, Штрихкод, ТипШК);
    Предупреждение(Текст);

КонецПроцедуры // СШКОшибка() 
    
//============================================     

Функция ПоддерживаетсяВидТО(Вид) Экспорт

    Результат = Ложь;

    Если Вид = Перечисления.ВидыТорговогоОборудования.СканерШтрихКода Тогда
        Результат = Истина;
    КонецЕсли;

    Возврат Результат;

КонецФункции // ПоддерживаетсяВидТО() 
Функция СШКНеизвестныйКод(Штрихкод, ТипКода, СШК) Экспорт

    Возврат Ложь;

КонецФункции // СШКНеизвестныйКод() 


Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Если Не ВводДоступен() Тогда
        Возврат;
    КонецЕсли;

    ПолучитьСерверТО().ОбработатьВнешнееСобытие(Событие, Данные, ЭтаФорма);
КонецПроцедуры

Процедура ОбработкаПодбора(ТабличнаяЧасть, ЗначениеВыбора) Экспорт

			Товар=ЗначениеВыбора.получитьОбъект();
			НайденнаяСтрока=ТаблицаТоваров.Найти(Товар.Ссылка);
			Если  НайденнаяСтрока = Неопределено  тогда
				ТекстПр="Товар "+Товар.Наименование+"  не найден в документе!";
				Предупреждение(ТекстПр,0);
			иначе
				  НайденнаяСтрока.Количество=НайденнаяСтрока.Количество+1;
			КонецЕсли;
											  
												  
КонецПроцедуры // ОбработкаПодбора()

Функция СШКНоменклатура(Номенклатура, Характеристика, Серия, Качество,
                        Единица, Количество, СШК) Экспорт
// Функция осуществляет обработку считывания штрихкода номенклатуры
//
// Параметры:
//  Номенклатура   - <СправочникСсылка.Номенклатура>
//                 - Номенклатура, штрихкод которой был отсканирован.
//
//  Характеристика – <СправочникСсылка.ХарактеристикиНоменклатуры>
//                 - Характеристика отсканированной номенклатуры.
//
//  Серия          - <СправочникСсылка.СерииНоменклатуры>
//                 - Серия отсканированной номенклатуры.
//
//  Качество       - <СправочникСсылка.Качество>
//                 - Качество отсканированной номенклатуры.
//
//  Единица        - <СправочникСсылка.ЕдиницыИзмерения>
//                 - Единица измерения отсканированной номенклатуры.
//
//  Количество     - <Число>
//                 - Количество отсканированной номенклатуры.
//
//  СШК            - <Строка>
//                 - Идентификатор сканера штрихкода, с которым связано данное
//                   событие.
//
// Возвращаемое значение:
//  <Булево>       - Данная ситуация обработана.


	Результат        = Истина;
	СтруктураПодбора = РаботаСТорговымОборудованием.СформироватьСтруктуруПодбора(ТекущаяДата(), Номенклатура, ,
	                                                , , ,
	                                                1, Константы.ВалютаУправленческогоУчета,
	                                                Неопределено, ,
	                                                );

	ОбработкаПодбора(ТаблицаТоваров, Номенклатура);
	Возврат Результат;

КонецФункции // СШКНоменклатура()

Процедура Кнопка1Нажатие(Элемент) //Это обработка для ввода штрихкода вручную
	
	ШК = РаботаСТорговымОборудованием.ВвестиШтрихкод();

	Если Не ПустаяСтрока(ШК) Тогда
		ПолучитьСерверТО().ОбработатьВведенныйШтрихкод(ШК, ЭтаФорма);
	КонецЕсли;
	// первый штрих
	Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	РегШК.Владелец КАК Владелец,
	|	РегШК.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	|	РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
	|	РегШК.СерияНоменклатуры КАК СерияНоменклатуры,
	|	РегШК.Качество КАК Качество
	|ИЗ
	|	РегистрСведений.Штрихкоды КАК РегШК
	|ГДЕ
	|	РегШК.Штрихкод = &Штрихкод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ ПЕРВЫЕ 1
	|	РегШК.Владелец,
	|	РегШК.ЕдиницаИзмерения,
	|	РегШК.ХарактеристикаНоменклатуры,
	|	РегШК.СерияНоменклатуры,
	|	РегШК.Качество
	|ИЗ
	|	РегистрСведений.Штрихкоды КАК РегШК
	|ГДЕ
	|	РегШК.Штрихкод2 = &Штрихкод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ ПЕРВЫЕ 1
	|	РегШК.Владелец,
	|	РегШК.ЕдиницаИзмерения,
	|	РегШК.ХарактеристикаНоменклатуры,
	|	РегШК.СерияНоменклатуры,
	|	РегШК.Качество
	|ИЗ
	|	РегистрСведений.Штрихкоды КАК РегШК
	|ГДЕ
	|	РегШК.Штрихкод3 = &Штрихкод");
	Запрос.УстановитьПараметр("Штрихкод", ШК);
	РезультатЗапроса = Запрос.Выполнить();
	Если Не РезультатЗапроса.Пустой() Тогда
		РезультатЗапроса = РезультатЗапроса.Выбрать();
		РезультатЗапроса.Следующий();
		Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("ДокументСсылка.ПеремещениеТоваров") Тогда
			ДокументПеремещения=РезультатЗапроса.Владелец;
			Док=РезультатЗапроса.Владелец.получитьОбъект();
			ТаблицаТоваров.Очистить(); 
			Для Каждого ТекущаяСтрока из Док.Товары Цикл
				  //НоваяСтрока=
				  СтрокаТаблицыЗначений = ТаблицаТоваров.Добавить();
				  СтрокаТаблицыЗначений.Код=ТекущаяСтрока.Номенклатура.Код;
				  СтрокаТаблицыЗначений.Артикул=ТекущаяСтрока.Номенклатура.Артикул;
				  СтрокаТаблицыЗначений.Номенклатура=ТекущаяСтрока.Номенклатура;
				  СтрокаТаблицыЗначений.КолДок=ТекущаяСтрока.Количество;
				  СтрокаТаблицыЗначений.Количество=ТекущаяСтрока.КоличествоПрием;
			КонецЦикла;
			
		ИначеЕсли ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.Номенклатура") тогда
			Товар=РезультатЗапроса.Владелец.получитьОбъект();
			НайденнаяСтрока=ТаблицаТоваров.Найти(Товар.Ссылка);
			Если  НайденнаяСтрока = Неопределено  тогда
				ТекстПр="Товар "+Товар.Наименование+"  не найден в документе!";
				Предупреждение(ТекстПр,0);
			иначе
				  НайденнаяСтрока.Количество=НайденнаяСтрока.Количество+1;
			КонецЕсли;
			
		КонецЕсли;
	КонецЕсли;
	
КонецПроцедуры

Процедура ПриОткрытии()
	ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);
КонецПроцедуры


Процедура ЗаписатьДокументНажатие(Элемент)
	// Вставить содержимое обработчика.
	Док=ДокументПеремещения.ПолучитьОбъект();
	Для Каждого ТекСтрока из Док.Товары цикл
			НайденнаяСтрока=ТаблицаТоваров.Найти(ТекСтрока.Номенклатура);
			Если  НайденнаяСтрока = Неопределено  тогда
			иначе
				  ТекСтрока.КоличествоПрием=НайденнаяСтрока.Количество;
			КонецЕсли;
		КонецЦикла;
		Док.Записать(РежимЗаписиДокумента.Проведение);
		ТекстД="Записан документ "+Док;
		Предупреждение(ТекстД,0);
КонецПроцедуры

Процедура ПриЗакрытии()
	// Вставить содержимое обработчика.
	ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма);
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ritchie 09.10.14 16:07 Сейчас в теме
Свойство Формы ВнешнееСобытие процедура указана и в модуле есть?
3. Natali_77 09.10.14 16:27 Сейчас в теме
(2) ritchie, есть. Я из формы и заводила эту процедуру.
Оставьте свое сообщение

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