Как убрать фокус с поля табличной части на форме в РМК Розницы?

1. AlexeyPapanov 466 12.04.18 20:10 Сейчас в теме
Всем привет!
Озадачили вот чем: есть Розница 2.2 и подключенный сканер ШК беспроводной. Клиент хочет при открытии чека ККМ в форме РМК ходить со сканером по магазину и сканировать этикетки с нужных товаров. Подойдя к кассе, он получает набранный чек.
НО: при сканировании ШК добавляется товар и активируется поле ввода в колонке "Количество". И если еще раз пробить штрихкод, то в колонку "Количество" попадает считанный штрихкод. А надо, чтобы после сканирования Розница не "фокусировалась" на количестве, чтобы можно было считывать следующий ШК.

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

Если закомментировать последнюю строку, то фокус становится на поле Номенклатура. В противном случае - фокус на поле Количество.
А как убрать фокус, чтобы можно было добавить следующую позицию?
Вознаграждение за ответ
Показать полностью
Найденные решения
12. Dream_kz 129 12.04.18 21:14 Сейчас в теме +5 $m
(7) В общем, там где-то используется метод
Элементы.Товары.ИзменитьСтроку()

под рукой нет 2.2, но есть 2.0 и там есть клиентская процедура
Подключаемый_ИзменитьСтроку()

Оно и заставляет входить в режим редактирования, и активирует фокус на первом поле, либо на том, что указано в свойстве ТекущийЭлемент
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 129 12.04.18 20:25 Сейчас в теме
(1)
Элементы.Товары.ТекущийЭлемент = "" 
//или так
 Элементы.Товары.ТекущийЭлемент = Неопределено

Типа такого
3. AlexeyPapanov 466 12.04.18 20:33 Сейчас в теме
(2) Если бы так просто было) Такое я пробовал.
5. Dream_kz 129 12.04.18 20:39 Сейчас в теме
(3) Сканер как подключен? в разрыв клавиатуры, или эмулятор com-порта?
4. spacecraft 12.04.18 20:35 Сейчас в теме
(1) а если фокус на поле Номенклатура, то следующее сканирование не срабатывает?
7. AlexeyPapanov 466 12.04.18 20:49 Сейчас в теме
(4) Если фокус на номенклатуре, то ALT+F7 (ввод штрихкода) надо нажимать два раза.
У меня под рукой нет сканера, поэтому я в РМК просто жму с клавиатуры.Не думаю, что это принципиально.
Сканер же что делает - имитирует нажатие ALT+F7, потом ввод ШК, потом нажатие Enter. А я руками эти вещи делаю последовательно.
8. spacecraft 12.04.18 20:52 Сейчас в теме
(7) может настроить сканер на "нормальную" работу?
Через Alt+F7 уже давно через сканер не работают. Тем более сканер беспроводной.
10. AlexeyPapanov 466 12.04.18 20:55 Сейчас в теме
(8) мне не кажется, что дело в этом. Я уверен, что фокус на количестве устанавливается программно вне зависимости от типа сканера и прочего.
11. spacecraft 12.04.18 20:57 Сейчас в теме
(10) сам смысл работы сканера подключенного по технологии внешних компонент:
Это не просто ввод символов. Это перехват штрихкода событием ВнешнееСобытие. И обработка дальше в нем. Никаких вводов в поле количество просто не будет.
baracuda; +1 Ответить
12. Dream_kz 129 12.04.18 21:14 Сейчас в теме +5 $m
(7) В общем, там где-то используется метод
Элементы.Товары.ИзменитьСтроку()

под рукой нет 2.2, но есть 2.0 и там есть клиентская процедура
Подключаемый_ИзменитьСтроку()

Оно и заставляет входить в режим редактирования, и активирует фокус на первом поле, либо на том, что указано в свойстве ТекущийЭлемент
14. AlexeyPapanov 466 13.04.18 08:51 Сейчас в теме
(12) Арман, спасибо Вам! Все получилось.
Действительно, стоило закомментировать строку, и теперь можно строки вводить по очереди без ввода количества.

&НаКлиенте
Процедура Подключаемый_ИзменитьСтроку()

	//Элементы.Товары.ИзменитьСтроку();
	
КонецПроцедуры


Дело оказалось не в фокусе на поле таблицы формы, а в последующем интерактивном действии, которое надо было отключить.
ТаблицаФормы.ИзменитьСтроку (FormTable.ChangeRow)
ТаблицаФормы (FormTable)
ИзменитьСтроку (ChangeRow)
Синтаксис:

ИзменитьСтроку()
Описание:

Начинает интерактивное изменение данных текущей строки, аналогично выполнению команды "Изменить".
6. lefthander 12.04.18 20:43 Сейчас в теме
(1)Дальше идут такие строки

ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Если ТекущаяСтрока <> Неопределено Тогда


Может ТекущаяСтрока = Неопределено?

ЗЫ вообще то сканер обрабатывается не этой процедурой.а
Процедура ВнешнееСобытие(Источник, Событие, Данные)
9. AlexeyPapanov 466 12.04.18 20:52 Сейчас в теме
(6)
Нет. Это же проверка на то, найдена ли позиция товара. Конечно же я ввожу штрихкод товара, который у меня есть. И он добавляется.
15. _Farsh_ 12 13.04.18 08:52 Сейчас в теме
(1) Вообще то что ты хочешь, работает стандартными методами.
Что необходимо сделать:
1. Добавить в оборудование сканер ШК. (можно в разрезе клавиатуры через стандартный драйвер 1С).
2. На сканере и в драйвере 1С настроить суффикс CR13 (клавиша Enter) обычно он по умолчанию.
3. Взять сканер и бегать по магазину. При сканировании одного товара в табличную часть будет добавлять один товар с количеством 1шт.
4. В настройках РМК включить галочку объединять одинаковые позиции. Чтобы при сканировании одной позиции два раза количество вставала 2 а не добавлялась еще одна строчка с этим товаром.
p.s. не надо изобретать костыли!
lenochka-semicova; baracuda; +2 Ответить
16. AlexeyPapanov 466 13.04.18 09:00 Сейчас в теме
(15) Вот это как раз и есть костыль!
Решение этого вопроса установкой суффикса некорректно. В чеке будет все работать. А в остальных случаях ведь тоже будет срабатывать этот суффикс, а это не везде надо.

(13) Я согласен лишь в той части, что событие ввода ШК сканером и просто нажатия кнопки формы отрабатывают разные процедуры. Но логика установки фокуса и дальнейшего редактирования поля - одинакова. Поэтому надо было понять как это делается. Вот мне в сообщении (12) и подсказали.
17. _Farsh_ 12 13.04.18 09:09 Сейчас в теме
(16) То есть использование типового механизма тебя не устраивает и ты решаешь что на сканере суффикс должен совпадать с клавишей на форме документ (F7-ввод штрихкода), ну и соответственно включаем в конфе редактирование, изменяем форму, что-бы при обновлении тратить на 20 мин. больше чем обычно.
И да так как вы изменили только одну форму, сканер и будет работать только на этой форме. А как же остальные документы? (Возврат товаров, и т.д. если у кассиров есть такой доступ).

А в остальных случаях ведь тоже будет срабатывать этот суффикс, а это не везде надо.


А в каких случаях если не секрет?
22. lenochka-semicova 13.04.18 17:36 Сейчас в теме
(16) "21 век на дворе", а автор темы до сих пор не научился настраивать подключаемое оборудование в конфигурациях 1С.

В (15) описан совершенно типовой сценарий для розницы 2 по подключению клавиатурного сканера штрихкодов и его использованию во ВСЕХ документах, где есть подключение этого сканера (а оно есть почти везде и даже там, где нет кнопочки с F7). Мало того, алкоголики, например, в рознице не могли бы продавать никакой алкоголь, если бы это не работало, потому что в типовой форме считывания марки нет поля для ручного ввода.

По поводу суффикса - этот суффикс обычно идет по умолчанию. И судя по тому, как Вы используете F7, у Вас в сканере он уже задан. Точно определяется это в форме настроек оборудования в кнопочке "Тест". Ну т.е. там нужно выполнить минимум элементарных настроек и ничего не программировать.

P.S. И эти люди автоматизируют страну.
leks88; baracuda; +2 Ответить
13. AndreykO 8 13.04.18 04:11 Сейчас в теме
Для решения подобных задач и правда необходимо подключать сканер через внешнюю компоненту, а не как клавиатуру, т.к. в таком случае появляется возможность программно обрабатывать событие считывания штрих-кода и уж в программной-то логике можно научить программу не то, что фокусироваться на нужном реквизите, но и варить кофе или чай в зависимости от штрих-кода :)
18. AlexeyPapanov 466 13.04.18 09:17 Сейчас в теме
А реально ли сохранить обработку РМКУправляемыйРежим в файл и работать с внешней, чтобы не снимать с поддержки конфигурацию?
Там еще расширениями такие вещи делаются...
19. _Farsh_ 12 13.04.18 09:57 Сейчас в теме
(18) Если используется РИБ то расширение не будет мигрировать в подчиненную базу.
20. AlexeyPapanov 466 13.04.18 13:18 Сейчас в теме
(19) Спасибо! Сделал расширением. Все работает как надо.

(17)
А в каких случаях если не секрет?

Допустим, находясь в форме списка справочника, кассир захочет найти товар. Пробьет сканером товар. Зачем в этом случае нажимать Enter? Никакого обновления конфигурации не надо.
21. _Farsh_ 12 13.04.18 13:42 Сейчас в теме
(20) Если мы говорим про форму списка товара, то при сканировании ШК будет найден и выделен нужный товар.
Если мы говорим про форму подбора или выбора, то да товар будет добавлен в корзину или также выделен.

Зачем в этом случае нажимать Enter?

Суффикс нужен для того чтобы программа понимала что данные были переданы со сканера а не введены с клавиатуры пользователем и необходимо выполнить определенные стандартные действия (В форме списка или выбора найти товар, в форме документа - добавление товара в табличную часть, в форме списка документов - найти документ по ШК и т.д.).
А вы делаете костыль, где он будет работать только на одной форме и программа понимает что данные прилетели не со сканера а как будд-то пользователь нажал F7 и потом ввел ШК товара (если я правильно понял что вы сделали), и сколько времени вы потратили на программирование сканера ШК и решения вопроса с изменением кода и т.д.
23. AlexeyPapanov 466 14.04.18 14:48 Сейчас в теме
(21) Владимир, Вы быть может не понимаете, что мне было надо. Я не хочу с Вами спорить, теряя время и доказывая Вам и другим что-либо. Моя задача была убрать активизацию редактирования поля Количество в форме обработки РМК. Задача решена несколькими строками кода. Все. Зачем мне долбиться с какими-то суффиксами я не понимаю.


(22 Ну а Вы, уважаемая леди, откуда взялись такая прогрессивная? Из 21 века, поди? Я в курсе того, что можно задавать префиксы, суффиксы у сканеров. В моей задаче это не требовалось. Вы свою желчь оставьте для других. Сначала надо вникнуть в вопрос, а потом отвечать. Я Вам ничего плохого не сделал, а Вы мне нахамили. Я надеюсь, что Вы спасете автоматизацию нашей страны.

Уважаемые модераторы, закройте тему. А то меня Леночка депортирует из страны за плохую автоматизацию.
24. leks88 26 14.04.18 21:07 Сейчас в теме
(23) А почему собственно ваш сканер подключен в режим клавиатуры? В режиме эмуляции ком у меня настроен 1452g и прекрасно добавляет номенклатуру в рмк при сканировании, никаких активаций поля "количество" не происходит.
25. AlexeyPapanov 466 15.04.18 10:11 Сейчас в теме
(24) Я буду иметь ввиду. Проверить на рабочей базе не могу сейчас. Как был подключен, так и работает. Работает - не трогай. Золотое правило.
Оставьте свое сообщение

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