Имя: Пароль:
1C
1С v8
Сканер ШК не сканирует повторно
0 Tarlich
 
27.08.12
18:45
Конфа своя все процедуры брал из УТ 10,3
Спр.Номенклатура Форма списка

Первый раз сканирую - все ок - находится товар , открывает
повторно ставлю Точку Остановки - на ВнешнемСобытии - не срабатывает
Где рыть?
1 Tarlich
 
27.08.12
18:48
в Тисе было
СканерШтрихКода.ПосылкаДанных = 1;
может я что то такое же пропустил?
2 Rie
 
27.08.12
18:50
(0) Почисти сканер программно.
3 Tarlich
 
27.08.12
18:51
(2) чем? как? -)
4 icipher
 
27.08.12
18:53
книжка со штрихкодами в комплекте. самый первый recall default или что то подобное :)
5 Rie
 
27.08.12
18:53
(3) У тебя какая ВК?
6 Rie
 
27.08.12
18:54
(4) У него другая проблема, судя по всему - сканер считал код и не сбрасывается.
7 Tarlich
 
27.08.12
18:54
(4) что по ходу я пропустил в коде т.к стоит УТ там все ок  
смотрю то и процедур не так много
8 Tarlich
 
27.08.12
18:58
код кину


Функция ПоддерживаетсяВидТО(Вид) Экспорт
   Результат = Ложь;
   Если Вид = Перечисления.ВидыТорговогоОборудования.СканерШтрихКода Тогда
       Результат = Истина;
   КонецЕсли;
   Возврат Результат;
КонецФункции // ПоддерживаетсяВидТО()

Функция СШКНоменклатура(Номенклатура,СерияНоменклатуры) Экспорт

   ОткрытьЗначение(Номенклатура);
   Возврат Истина;

КонецФункции // СШКНоменклатура()


Функция СШКНеизвестныйКод(Штрихкод, ТипКода, СШК) Экспорт

   Возврат Ложь;

КонецФункции // СШКНеизвестныйКод()

Процедура СШКОшибка(Ошибка, Штрихкод, ТипШК, СШК) Экспорт

   Текст = ПолучитьСерверТО().ПолучитьТекстОшибкиСШКТО(Ошибка, Штрихкод, ТипШК);
   Предупреждение(Текст);

КонецПроцедуры // СШКОшибка()



Процедура ВнешнееСобытие(Источник, Событие, Данные)
   
   Если Не ВводДоступен() Тогда
       Возврат;
   КонецЕсли;

   ПолучитьСерверТО().ОбработатьВнешнееСобытие(Источник, Событие, Данные, ЭтаФорма);

КонецПроцедуры
9 Tarlich
 
27.08.12
18:59
Процедура ПриОткрытии()    
   ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);
Процедура ПриЗакрытии()
       ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма);
10 Tarlich
 
27.08.12
19:03
Ну и функции ТОСервер


Функция ОбработатьВнешнееСобытие(Источник, Событие, Данные, Клиент) Экспорт

   Результат = мНетОшибки;

   Клиенты = ПолучитьПараметрСервераТО("Клиенты", "Соответствие");
   События = Клиенты[Клиент];
   Если События <> Неопределено Тогда
       Для Каждого ТекСобытие Из События Цикл
           Если ТекСобытие.Источник   = Источник
              И ТекСобытие.ИмяСобытия = Событие Тогда
               Оборудование = ПолучитьПараметрСервераТО("Оборудование",    "ТаблицаЗначений");
               ТО           = Оборудование.Найти(ТекСобытие.Идентификатор, "Идентификатор");
               ВидТО        = ТО.Вид;
               Обработка    = ТО.Обработка;
               Объект       = ТО.Объект;
               Результат = ОбработатьВнешнееСобытиеВнутр(ВидТО, Обработка, Объект,
                                                         Клиент, Событие, Данные,
                                                         ТекСобытие.Идентификатор);
           КонецЕсли;
       КонецЦикла;
   КонецЕсли;

   Возврат Результат;

КонецФункции

Функция ОбработатьВнешнееСобытиеВнутр(Вид, Обработка, Объект, Клиент, Событие, Данные, Идентификатор)

   Результат = мНетОшибки;

   Если Вид = мДисплейПокупателя Тогда
   ИначеЕсли Вид = мККМOffLine Тогда
   ИначеЕсли Вид = мККМOnLine Тогда
       Результат = ОбработатьСобытиеOnline(Обработка, Объект, Клиент, Событие, Данные, Идентификатор);
   ИначеЕсли Вид = мСчитывательМагнитныхКарт Тогда
       Результат = ОбработатьСобытиеСМК(Обработка, Объект, Клиент, Событие, Данные, Идентификатор);
   ИначеЕсли Вид = мСканерШтрихКода Тогда
       Результат = ОбработатьСобытиеСШК(Обработка, Объект, Клиент, Событие, Данные, Идентификатор);
   ИначеЕсли Вид = мТерминалСбораДанных Тогда
   ИначеЕсли Вид = мФискальныйРегистратор Тогда
   ИначеЕсли Вид = мЭлектронныеВесы Тогда
   ИначеЕсли Вид = мСчитывателиRFIDМеток Тогда
       Результат = ОбработатьСобытиеОтRFID(Обработка, Объект, Клиент, Событие, Данные, Идентификатор);
   ИначеЕсли Вид = мЭквайринговыеСистемы Тогда
   ИначеЕсли Вид = мВесыСПечатьюЭтикеток Тогда
   КонецЕсли;

   мВнешнееСобытиеОбработано = (Результат = мНетОшибки);

   Возврат Результат;

КонецФункции // ОбработатьВнешнееСобытиеВнутр()

// Функция осуществляет обработку внешнего события от сканеров штрихкода.
//
// Параметры:
//  Обработка                      - <ВнешняяОбработкаОбъект.*>
//                                 - Обработка обслуживания торгового оборудования.
//
//  Объект                         - <*>
//                                 - Объект, идентифицирующий драйвер торгового оборудования.
//
//  Клиент                         - <*>
//                                 - Клиент, для которого осуществляется обработка события.
//
//  Событие                        - <Строка>
//                                 - Имя события.
//
//  Данные                         - <Строка>
//                                 - Данные события.
//
//  СШК                            - Идентификатор устройства.
//
// Возвращаемое значение:
//  <ПеречислениеСсылка.ТООшибки*> - Результат работы функции.
//
Функция ОбработатьСобытиеСШК(Обработка, Объект, Клиент, Событие, Данные, СШК)

   Результат = мНетОшибки;

   ШК        = Неопределено;
   ТипШК     = Неопределено;
   Результат = Обработка.ОбработатьСобытиеСШК(Объект,
                                              Событие,
                                              Данные,
                                              ШК,
                                              ТипШК);
   Если ЗначениеЗаполнено(Результат) Тогда
       Возврат Результат;
   КонецЕсли;

   Если ПустаяСтрока(ШК) Тогда
       Возврат Результат;
   КонецЕсли;

   Если НЕ ЗначениеЗаполнено(ТипШК) Тогда
       Если      РаботаСТорговымОборудованием.ТипШтрихкодаEAN8ТО(ШК) Тогда
           ТипШК = мEAN8;
       ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаEAN13ТО(ШК) Тогда
           ТипШК = мEAN13;
       ИначеЕсли РаботаСТорговымОборудованием.ТипШтрихкодаCODE39ТО(ШК) Тогда
           ТипШК = мCODE39;
       КонецЕсли;
   КонецЕсли;
   
   Запрос = Новый Запрос(
   "ВЫБРАТЬ ПЕРВЫЕ 1
   |    РегШК.Владелец                   КАК Владелец,
   |    РегШК.СерииНоменклатуры          КАК СерияНоменклатуры
   |ИЗ
   |    РегистрСведений.Штрихкоды        КАК РегШК
   |ГДЕ
   |    РегШК.Штрихкод = &Штрихкод");
   Запрос.УстановитьПараметр("Штрихкод", ШК);
   РезультатЗапроса = Запрос.Выполнить();
   Если Не РезультатЗапроса.Пустой() Тогда
       РезультатЗапроса = РезультатЗапроса.Выбрать();
       РезультатЗапроса.Следующий();
       Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.ИнформационныеКарты") Тогда
           Ответ = Клиент.СШКИнформационнаяКарта(РезультатЗапроса.Владелец, СШК);
           Если Ответ Тогда
               Возврат Результат;
           КонецЕсли;
       Иначе // Если ТипЗнч(РезультатЗапроса.Владелец) = Тип("СправочникСсылка.Номенклатура")
           Ответ = Клиент.СШКНоменклатура(РезультатЗапроса.Владелец,РезультатЗапроса.СерияНоменклатуры);
           Если Ответ Тогда
               Возврат Результат;
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;

   Ответ = Клиент.СШКНеизвестныйКод(ШК, ТипШК, СШК);
   Если Ответ Тогда
       Возврат Результат;
   КонецЕсли;

   Результат = мОшибкаНеизвестныйШтрихкод;
   Клиент.СШКОшибка(Результат, ШК, ТипШК, СШК);

   Возврат Результат;

КонецФункции // ОбработатьСобытиеСШК()
11 SherifSP
 
27.08.12
19:07
(10)Марка сканера?
12 SherifSP
 
27.08.12
19:07
случайно не Zebex ?
13 SherifSP
 
27.08.12
19:09
Сканер в режиме ком порта работает?
14 SherifSP
 
27.08.12
19:09
Дрова атоловские?
15 Tarlich
 
27.08.12
19:11
Сканер обычныйметролоджик , клавиатура , префикс есть атол старый  Да в УТ 10,3  все  ок - не могу понять все теже 7 процедур а результат НЕТ!
16 SherifSP
 
27.08.12
19:12
(15)В дровах загвоздка ищи новые бесплатные
17 SherifSP
 
27.08.12
19:13
(15)У меня тоже самое было только с другим сканером задержка между сканами была примерно 10 секунд, пока новые дрова не поставил
18 Tarlich
 
27.08.12
19:14
Думал обработка обслуживания старая - нет - только что проверил
19 SherifSP
 
27.08.12
19:16
(18) Кинул атоловскую дллку в папку 1С, зарегестрировал в системе?
20 GreyK
 
27.08.12
19:17
(15) префикс есть, суффикса нет :)
21 Tarlich
 
27.08.12
19:20
(20) Суфикс #13 префикса нет
22 Tarlich
 
27.08.12
19:21
(19) вообще бы ни как бы не работало бы
23 GreyK
 
27.08.12
19:26
(21) Кончай пользоваться недоработками типа 8ки от 1С, это как Виста. Вот уволят китайцев из 1С, тогда и в новых 1Сках появится нормальные обработки обслуживания для ТО.
В ивоём случае воспользуйся обработкой от Атола, там в поиске оборудования увидишь полный суффикс!
8ка мастдай!
24 Tarlich
 
27.08.12
19:31
(23) спасибо за совет
25 Tarlich
 
27.08.12
20:33
не стал мучатся сделал как тут http://www.allexx.info/1c_buhgalteria_8_skaner_shtrih_koda
26 Tarlich
 
27.08.12
20:54
но почему то надо всегда при включении включать в параметрах сканер , может кто что посоветует?
27 Tarlich
 
27.08.12
21:04
Что бы сканер включался автоматически надо дописать Scaner.УстройствоВключено = 1;
Закон Брукера: Даже маленькая практика стоит большой теории.