Проблема появления пустой строки в табличной части документа (особенно часто это проявляется в документе Пересчет товаров) — это классическая ситуация при внедрении или обновлении 1С:Управление торговлей 11.4. Она связана с рассогласованием настроек аппаратной части сканера и программных настроек драйвера в 1С. В этой статье мы подробно разберем, почему программа «двоит» ввод, как проверить работу сканера и какие шаги предпринять для окончательного решения проблемы.
Когда вы используете сканер в режиме эмуляции клавиатуры, 1С воспринимает каждое считывание как быстрый ввод символов с последующим нажатием управляющей клавиши. Чаще всего в качестве такой клавиши выступает Enter (код ASCII #13, он же CR — Carriage Return).
Разберем ситуацию подробнее: если в настройках самого сканера установлен суффикс «CR+LF» (код #13 и код #10), а в 1С указан только суффикс #13, происходит следующее:
Enter пользователем. Поскольку после добавления товара фокус ввода остается в табличной части, этот «лишний» ввод создает новую пустую строку или переводит курсор в режим редактирования следующей строки.Проанализируем работу оборудования вне среды 1С. Для этого откроем обычный блокнот (Notepad) и считаем любой штрихкод. Нам нужно обратить внимание на поведение курсора:
Важно: Для корректной работы в 1С в режиме клавиатуры нам нужно добиться перехода ровно на одну строку вниз.
Посмотрим на настройки в самой программе. Перейдем в раздел Администрирование — Подключаемое оборудование. Откроем настройки вашего сканера штрихкода.
Проанализируем параметр Суффикс. Обычно там должно стоять значение 13. Если ваш сканер в блокноте делает двойной отступ, попробуйте изменить значение в 1С на 13 10. Однако это лишь программная «заплатка». Правильнее будет настроить сам сканер.
Для моделей Honeywell (1450g, 1250g) и многих других процедура настройки выглядит так:
Clear All Suffixes (очистить все суффиксы).Add CR Suffix (добавить суффикс возврата каретки).Standard Product Default Settings для полного сброса устройства к заводским настройкам.Это самый надежный способ, который рекомендуют опытные специалисты. Режим эмуляции клавиатуры очень зависим от текущей раскладки (RU/EN) и нажатых клавиш Caps Lock или Shift. Кроме того, драйвер клавиатуры в 1С часто работает через перехват событий, что и приводит к фантомным строкам.
Проанализируем процесс перехода на COM-порт по шагам:
USB Serial Emulation или Enable Uni-Directional USB Serial Emulation и считайте его сканером. Устройство «переподключится» в системе.Virtual COM Port Driver.Honeywell Virtual COM Port (COM5).Иногда пользователи УТ 11.4 сталкиваются с тем, что вместо нормального кода считывается абракадабра. Это происходит из-за того, что драйвер 1С (NativeApi) в режиме клавиатуры пытается преобразовать нажатия клавиш в символы. Если у вас включена русская раскладка, драйвер может ошибочно инвертировать символы.
Рассмотрим, как это выглядит в логике обработки (условный пример):
// Упрощенная логика обработки события сканирования
Процедура ПриВнешнемСобытии(Источник, Событие, Данные)
Если Событие = "Barcode" Тогда
// Если данные пришли через буфер клавиатуры с неправильной раскладкой,
// 1С может получить искаженную строку
Штрихкод = ОбработатьПрефиксыИСуффиксы(Данные);
ДобавитьТоварВТабличнуюЧасть(Штрихкод);
КонецЕсли;
КонецПроцедуры
Чтобы избежать этого, обязательно переводите сканеры в режим COM-порта. Это полностью исключает влияние раскладки Windows на передаваемые данные.
Документ Пересчет товаров в современных версиях УТ 11 использует логику динамического обновления строк. При каждом сканировании система инициирует серверный вызов для поиска товара и обновления остатков. Если в этот момент сканер посылает лишний управляющий символ (тот самый #10), система может воспринять его как команду «Создать новую строку» в уже обновленной форме.
Выясним еще одну причину: Таймаут. В настройках драйвера в 1С есть параметр «Чувствительность» или «Таймаут». Если он установлен слишком маленьким (например, менее 30 мс), 1С может разорвать один штрихкод на два события. Первое событие добавит товар, а второе (содержащее суффикс) — создаст пустую строку. Попробуйте экспериментально увеличить таймаут до 60–100 мс.
Для стабильной работы сканирования в 1С:Управление торговлей 11.4 выполните следующие действия:
13.Clear All Data Formats.Применяя эти шаги последовательно, вы добьетесь четкой работы оборудования и исключите ошибки при проведении инвентаризации и пересчета товаров.