1. Формируем код для объекта, с помощью ЗначениеВСтрокуВнутр
2. Делаем расшифровку с помощью ЗначениеИзСтрокиВнутр
3. В процедуру ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Добавляем проверку-расшифровку кода и, в зависимости от полученного объекта, делаем с ним что хотим.
Например, я использовал для Документов.
1)
Функция глОбъект_СформироватьШтрихКод(Объект) Экспорт
сПредставлениеОбъекта = СтрЗаменить(ЗначениеВСтрокуВнутр(Объект),"""","");
сПредставлениеОбъекта = СтрЗаменить(сПредставлениеОбъекта,"{","");
сПредставлениеОбъекта = СтрЗаменить(сПредставлениеОбъекта,"}","");
сПредставлениеОбъекта = СтрЗаменить(сПредставлениеОбъекта,",",РазделительСтрок);
сТипОбъекта = СокрЛП(СтрПолучитьСтроку(сПредставлениеОбъекта,1));
сИДТаблицы = СокрЛП(СтрПолучитьСтроку(сПредставлениеОбъекта,4));
сИДОбъекта = СокрЛ(СтрПолучитьСтроку(сПредставлениеОбъекта,7));
сИДОбъекта = СтрЗаменить(сИДОбъекта," ","_");
Возврат Шаблон("[сТипОбъекта]#[сИДОбъекта]@[сИДТаблицы]");
КонецФункции // глОбъект_СформироватьШтрихКод
2)
Функция глОбъект_НайтиПоШтрихкоду(сШтрихКод) Экспорт
Если 0 = глСтрока_ЯвляетсяШтрихКодомОбъектаБД(сШтрихКод) Тогда
Возврат "";//пустое значение
КонецЕсли;
мнсСтрока = СтрЗаменить(сШтрихКод, "#", РазделительСтрок);
мнсСтрока = СтрЗаменить(мнсСтрока, "@", РазделительСтрок);
мнсСтрока = СокрЛП(мнсСтрока);
сТип = СтрПолучитьСтроку(мнсСтрока,1);
сИДОбъекта = СтрПолучитьСтроку(мнсСтрока,2);
сИДТаблицы = СтрПолучитьСтроку(мнсСтрока,3);
сИДОбъекта = СтрЗаменить(сИДОбъекта, "_", " ");
сВнутреннееПредставление = "{""";
сВнутреннееПредставление = сВнутреннееПредставление + сТип + """,""0"",""0"",""";
сВнутреннееПредставление = сВнутреннееПредставление + сИДТаблицы+""",""0"",""0"",""";
сВнутреннееПредставление = сВнутреннееПредставление + Прав(" "+сИДОбъекта, 13) + """}"; // если база не распределенная, то надо делать так:
// сВнутреннееПредставление = сВнутреннееПредставление +Прав(" "+сИДОбъекта+" ", 13));
// Сообщить(сВнутреннееПредставление);
Объект = ЗначениеИзСтрокиВнутр(сВнутреннееПредставление);
Возврат Объект;
КонецФункции // глОбъект_НайтиПоШтрихкоду
Функция глСтрока_ЯвляетсяШтрихКодомОбъектаБД(сСтрока) Экспорт
мнсСтрока = СтрЗаменить(сСтрока, "#", РазделительСтрок);
мнсСтрока = СтрЗаменить(мнсСтрока, "@", РазделительСтрок);
мнсСтрока = СокрЛП(мнсСтрока);
Если СтрКоличествоСтрок(мнсСтрока) <> 3 Тогда
Возврат 0;
КонецЕсли;
сТип = СтрПолучитьСтроку(мнсСтрока,1);
Если СтрДлина(сТип) <> 1 Тогда
Возврат 0;
КонецЕсли;
сИДОбъекта = СтрПолучитьСтроку(мнсСтрока,2);
сИДТаблицы = СтрПолучитьСтроку(мнсСтрока,3);
Возврат 1;
КонецФункции // глСтрока_ЯвляетсяШтрихКодомОбъектаБД
3)
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
Если Событие = "BarCodeValue" Тогда
Если глСканерВключен() = 1 Тогда
глСканерПосылкаДанных(1);
КонецЕсли;
Объект = глОбъект_НайтиПоШтрихкодуК(Данные);
Если ТипЗначенияСтр(Объект) = "Документ" Тогда
// ищем, открываем форму, в общем, что нам нужно, то и делаем
ОткрытьФорму(Объект);
КонецЕсли;
Иначе
глОбработкаВнешнегоСобытия(Источник, Событие, Данные);
КонецЕсли;
КонецПроцедуры // ОбработкаВнешнегоСобытия()
4)
Далее вставляем ШК в табличную часть дока, к примеру, (EAN128), пишем там, глОбъект_СформироватьШтрихКод(Объект), и все работает.