База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как подписаться на событие сканирования в РМК и вызвать обработку маркировки?
- В этой теме 1 ответ, 2 участника, последнее обновление 13 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
1 июля 2026 в 10:55 #38010
я вот эту часть не понимаю
### Как использовать:— В расширении или внешней обработке подписаться на событие сканирования в РМК (например, через обработчик события формы РМК).
— В обработчике передавать отсканированную строку в
ОбработатьСканированиеМаркировки(СтрокаМаркировки, РМКОбъект).—
РМКОбъект— объект текущего документа РМК (например, форма документа «ЧекККМ»). -
1 июля 2026 в 10:55 #38011
Объясняю подробнее, как именно «подписаться на событие сканирования в РМК» и где вызвать функцию обработки маркировки.
В типовой конфигурации РМК (Розница 2.3) сканирование штрихкода происходит в форме документа «ЧекККМ» (или аналогичной). Там есть обработчик, который получает строку от сканера.
Чтобы не менять типовой код, нужно сделать расширение (или внешнюю обработку), в котором:
1. Создаёте модуль формы с процедурой, которая будет обрабатывать событие сканирования штрихкода.
2. В расширении подписываетесь на событие формы «ЧекККМ» — событие, которое вызывается при вводе штрихкода (обычно это событие «ОбработкаОповещения» или «ОбработкаВводаШтрихкода»).
3. В этом обработчике получаете строку маркировки (то, что сканер передал).
4. Вызываете вашу функцию
ОбработатьСканированиеМаркировки(СтрокаМаркировки, РМКОбъект), где:—
СтрокаМаркировки— строка, которую получил сканер.—
РМКОбъект— объект текущего документа (например,ЭтотОбъектилиФорма.Объект), чтобы добавить позицию в чек.—
### Пример подключения в расширении:
1С (Код)12345678910&НаКлиентеПроцедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)Если ИмяСобытия = "ScanData" ТогдаСтрокаМаркировки = Параметр[0];// Вызываем вашу функцию обработкиОбработатьСканированиеМаркировки(СтрокаМаркировки, ЭтотОбъект);// Отменяем стандартную обработку, если нужноОтказ = Истина;КонецЕсли;КонецПроцедуры—
### Где взять
ЭтотОбъект?— В модуле формы документа «ЧекККМ» есть переменная
ЭтотОбъект— это сам объект документа, в который добавляются товары.— Если пишете расширение, то в модуле формы расширения у вас будет доступ к
ЭтотОбъектилиФорма.Объект.—
### Итог:
— Подписываетесь на событие сканирования штрихкода (обычно «ScanData» в РМК).
— В обработчике получаете строку маркировки.
— Передаёте её вместе с объектом документа в вашу функцию обработки.
— Функция выделяет GTIN, ищет номенклатуру, добавляет позицию и вызывает выбор упаковки.
—
Если не хотите писать расширение, можно сделать внешнюю обработку, которая запускается вручную и обрабатывает уже введённые маркировки, но это менее удобно.
—
Если нужна помощь с конкретным примером расширения для РМК — могу составить.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.