Нам потребуется:
1. Бухгалтерия 3.0 (3.0.25.7)
2. Управление торговлей ред. 11 (11.1.2.9)
3. Установленный драйвер сканера.
Будем вносить изменения таким образом, чтобы работали все 3 типа сканеров, которые есть в УТ.
Можно конечно обойтись простым подключением через создание COM-объекта, но мы лёгких путей не ищем и будем делать всё как и принято в 1С, т.е. через жопу с задействованием внутренних универсальных механизмов.
Итак, чтобы подключить сканер нужно:
1. В общем модуле МенеджерОборудованияКлиентСерверПереопределяемый поправить функцию ПолучитьДоступныеТипыОборудования():
Функция ПолучитьДоступныеТипыОборудования() Экспорт
СписокОборудования = Новый Массив;
// Фискальные регистраторы
СписокОборудования.Добавить(ПредопределенноеЗначение("Перечисление.ТипыПодключаемогоОборудования.ФискальныйРегистратор"));
// Конец Фискальные регистраторы
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VladC# 01.10.2013
СписокОборудования.Добавить(ПредопределенноеЗначение("Перечисление.ТипыПодключаемогоОборудования.СканерШтрихкода"));
Возврат СписокОборудования;
КонецФункции
2. В том же модуле поправить функциюПолучитьОбработчикаДрайвера, т.е. нужно добавить строки относящиеся к санеру:
Функция ПолучитьОбработчикаДрайвера(ОбработчикДрайвера) Экспорт
Результат = Неопределено;
// Вызов метода выполнения команды у обработчика
Если ОбработчикДрайвера <> Неопределено Тогда
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VladC# 29.09.2013
// Сканеры штрихкода
Если ОбработчикДрайвера = ПредопределенноеЗначение("Перечисление.ОбработчикиДрайверовПодключаемогоОборудования.Обработчик1ССканерыШтрихкода") Тогда
Результат = ПодключаемоеОборудование1ССканерыШтрихкодаКлиент;
ИначеЕсли ОбработчикДрайвера = ПредопределенноеЗначение("Перечисление.ОбработчикиДрайверовПодключаемогоОборудования.ОбработчикСканкодСканерыШтрихкода") Тогда
Результат = ПодключаемоеОборудованиеСканкодСканерыШтрихкодаКлиент;
ИначеЕсли ОбработчикДрайвера = ПредопределенноеЗначение("Перечисление.ОбработчикиДрайверовПодключаемогоОборудования.ОбработчикАтолСканерыШтрихкода") Тогда
Результат = ПодключаемоеОборудованиеАтолСканерыШтрихкодаКлиент;
КонецЕсли;
...
3. Из конфигурации УТ ред. 11 скопировать три общих модуля прямо из дерева конфигурации:
- ПодключаемоеОборудованиеАтолСканерыШтрихкодаКлиент
- ПодключаемоеОборудование1ССканерыШтрихкодаКлиент
- ПодключаемоеОборудованиеСканкодСканерыШтрихкодаКлиент
4. Из конфигурации УТ ред. 11 скопировать три общих формы настроек, тоже прямо из дерева конфигурации:
- ФормаНастройкиАтолСканерыШтрихкода
- ФормаНастройки1ССканерыШтрихкода
- ФормаНастройкиСканкодСканерыШтрихкода
5. Из конфигурации УТ ред. 11 скопировать иконку для отображения на форме настроек торгового оборудования (находится в общих картинках):
- ПодключаемоеОборудованиеСканерШтрихкода32
6. Создадим общий модуль, я назвал влОбщийМодуль (использование только на клиенте управляемого приложения), рекомендую сделать имя пока именно такое, потом сможете изменить.
В этом общем модуле нужно добавить процедуру:
Процедура ПодключитьСканер() Экспорт
Массив=МенеджерОборудованияСервер.ПолучитьСписокОборудования(,,МенеджерОборудованияСервер.ПолучитьРабочееМестоКлиента());
Для Каждого Стр из Массив Цикл
Если Стр.ТипОборудования=ПредопределенноеЗначение("Перечисление.ТипыПодключаемогоОборудования.СканерШтрихкода") Тогда
Идентификатор = Стр.Ссылка;
ПараметрыУстройства = МенеджерОборудованияКлиентПовтИсп.ПолучитьПараметрыУстройства(Идентификатор);
МенеджерОборудованияКлиент.ВыполнитьДополнительнуюКоманду("ПолучитьВерсиюДрайвера",,,Идентификатор,ПараметрыУстройства);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
7. В модуле управляемого приложения, в процедуре ПриНачалеРаботыСистемы() добавить вызов ранее созданной процедуры:
Процедура ПриНачалеРаботыСистемы()
// СтандартныеПодсистемы
СтандартныеПодсистемыКлиент.ДействияПриНачалеРаботыСистемы();
// Конец СтандартныеПодсистемы
//РаботаСВнешнимОборудованием
МенеджерОборудованияКлиент.ПриНачалеРаботыСистемы();
//Конец РаботаСВнешнимОборудованием
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VladC# 02.10.2013
влОбщийМодуль.ПодключитьСканер();
КонецПроцедуры
8. Все новые объекты конфигурации добавить в подсистему ПодключаемоеОборудование.
9. Для проверки, в справочнике номенклатуры например, создайте обработчик события формы элемента ВнешнееСобытие:
&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Источник="BarCodeScaner" и Событие="BarCodeValue" Тогда
Сообщить(Данные);
КонецЕсли;
КонецПроцедуры
10. Сохраняемся, запускаем Бухгалтерию в пользовательском режиме. Идём в Администрирование -> Подключаемое оборудование.
11. Если рабочее место не выбрано, то выберите, затем слева щёлкните Сканеры штрихкода.
12. Добавьте сканер "АТОЛ: Сканеры штрихкода" (я отлаживал именно этот тип сканеров, можете выбрать свой) и установите в
нём галочку "Устройство используется".
13. Нажмите "Записать и закрыть", а потом нажмите "Настроить" и введите там необходимые настройки, порт, суффикс и т.д.,
настройки у всех разные, поэтому свои здесь приводить не буду, дабы не вводить в заблуждение.
14. Перейдите в справочник Номенклатуры, откройте форму элемента и сосканируйте любой штрихкод, должно появиться сообщение с
этим штрихкодом.
Ну вроде всё, ничего не забыл, надеюсь кому-нибудь поможет.