При проведении инвентаризации в конфигурации «1С:Управление торговлей» пользователи нередко сталкиваются с ситуацией: при вызове команды «Найти товары по штрихкоду» (или нажатии клавиши F7) курсор переходит на строку с товаром, но одновременно значение в колонке «Количество (факт)» увеличивается на единицу. Рассмотрим, почему программа ведет себя именно так и какими способами можно просто найти нужную позицию в табличной части без изменения учетных данных.
Документ ПересчетТоваров предназначен для фиксации фактического наличия номенклатуры на складе. В типовых конфигурациях на платформе «1С:Предприятие 8» (УТ 11, КА, ERP) обработчик штрихкодов в складских документах спроектирован под непрерывный процесс сканирования:
КоличествоФакт на 1 (или на коэффициент единицы измерения/упаковки).Таким образом, кнопка «Поиск по штрихкоду» и внешнее событие сканера в табличной части пересчета являются инструментом учета и регистрации факта, а не просто визуальной навигацией по списку строк.
Текст в справочной информации о том, что программа должна «только выделить товар и установить курсор», описывает универсальный алгоритм поиска в списках. Однако в прикладной логике документов пересчета и инвентаризации этот механизм переопределен в пользу автоматизации подсчета, чтобы исключить необходимость ручного ввода количества при поштучном пересчете.
Если требуется найти позицию в документе исключительно для просмотра данных, без изменения фактического количества, разберем доступные альтернативы:
Ctrl + F и введем штрихкод, код или артикул номенклатуры (в зависимости от видимых колонок). Если сканер настроен в режиме эмуляции клавиатуры (HID), штрихкод можно отсканировать прямо в поле ввода поиска платформы. При этом строка будет найдена и выделена курсором без выполнения программных алгоритмов пересчета количества.Если бизнес-процесс склада требует разделения режимов «Подсчет (+1)» и «Только навигация по таблице», задачу можно решить через расширение конфигурации.
Проанализируем пример перехвата обработки штрихкода в форме документа пересчета товаров. В расширении можно добавить переключатель режима сканирования на форму и изменить поведение обработчика:
&НаКлиенте
Процедура Расш_ОбработкаШтрихкода(Штрихкод, РежимТолькоПоиск)
Если РежимТолькоПоиск Тогда
// Выполняем только поиск и позиционирование на строке
ПараметрыОтбора = Новый Структура("Номенклатура, Характеристика");
// Получаем параметры товара по штрихкоду через вызов серверного метода
ЗаполнитьПараметрыТовараПоШтрихкоду(Штрихкод, ПараметрыОтбора);
НайденныеСтроки = Объект.Товары.НайтиСтроки(ПараметрыОтбора);
Если НайденныеСтроки.Количество() > 0 Тогда
Элементы.Товары.ТекущаяСтрока = НайденныеСтроки[0].ПолучитьИдентификатор();
КонецЕсли;
Иначе
// Вызываем стандартную типовую логику инкремента фактического количества
ПродолжитьВызов(Штрихкод);
КонецЕсли;
КонецПроцедуры
Такой подход позволяет сохранить типовой механизм инвентаризации и одновременно предоставить кладовщикам гибкий инструмент для выборочной проверки позиций.