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