Имя: Пароль:
1C
1С v8
Не могу записать карту rfid
0 babiy
 
18.06.12
18:06
Здраствуйте. Использую для записи "Нетленку".  Нужно карточку записать массив данных (имя, фамилию и т. д.). ВОт пример кода записи:

Процедура ОтправитьНажатие(Элемент)
   МассивКодовСимволов=Новый Массив; //Простой массив
   //МассивКодовСимволов.Добавить(СтрДлина(МойТекст)); // в конец массива записываем его длину (максимум 65535 символов, ибо смотрим ниже )
   Для i=1 По СтрДлина(Команда) Цикл //По всем символам массива
       МассивКодовСимволов.Добавить(КодСимвола(Команда,i));    //Получаем код символа (это Unicode16, но команда будет даваться в латинице, поэтому 1 байт на символ!!!!) и записываем его в массив
   КонецЦикла;
   Если МассивКодовСимволов.Количество()>0 Тогда
   МассивКодовСимволов.Добавить(13);    
   МассивКодовСимволов.Добавить(10);
   БезопасныйМассив=Новый COMSafeArray(МассивКодовСимволов,"VT_UI1"); //А ниже мы создаем безопасный вектор (одномерный массив), каждый элемент которого - 1 байт, а конкретней беззнаковое целое. Вообще массив может содержать только беззнаковые целые 1,2,4,8 байт
   Объект.ОтправитьДанные(БезопасныйМассив); //Отправляем массив на запись
   
   КонецЕсли;
КонецПроцедуры

И значения Объект.ОтправитьДанные(БезопасныйМассив) возвращает 0. Я так понимаю это означает что запись  = ложь. В чем может быть проблема? Исходников к библиотеки нету(
1 DitriX
 
18.06.12
20:02
ну для начала указать ту самую библиотеку :) ну и принтер, с которого идет запись
2 babiy
 
19.06.12
11:50
Библиотеку подключил

Процедура ПриНачалеРаботыСистемы()
   Попытка                                  
   ЗагрузитьВнешнююКомпоненту("V8ADD.dll");
   Сообщить ("Компонента загружена");
          Исключение
   Сообщить ("Компонента не загружена");
       КонецПопытки;
КонецПроцедуры

Объект=Новый ("Addin.ComPort");


Чтения с картки есть. Может проблема с командой? вот список команд из документации:

5. Список команд для каждого режима.

Mode1.
C_WriteObjectName         0x8A     // write object name (card prepare)
C_ReadObjectName          0x96      // read object name
C_WriteDiscount               0xA4     // write discount value
C_ReadDiscount                0xA6     // read discount value

Mode2.
C_WriteSurname               0x80      // write user surname
C_WriteName                    0x82      // write user name
C_WritePatronymic           0x84      // write user patronymic
C_WriteDataArrival          0x86      // write data of arrival
C_WriteDayValue             0x88      // write number of visit days
C_IncrementDayValue      0xA2     // increment of visit days

C_ReadObjectName          0x96      // read object name
C_ReadSurname                0x8C      // read user surname
C_ReadName                     0x8E      // read user name
C_ReadPatronymic            0x90      // read user patronymic
C_ReadDataArrival           0x92      // read data of arrival
C_ReadDayValue              0x94      // read number of visit day
C_ReadDiscount                0xA6     // read discount value

C_ReadAbsActCounter       0x98     // read absolute counter of activations
C_ReadAbsDayCounter      0x9A    // read absolute counter of visit days
C_ReadSeasonActCounter  0x9C     // read season counter of activations
C_ReadSeasonDayCounter 0x9E     // read season counter of visit days
C_ClearSeasonCounters      0xA0    // clear season counters

Mode3.
C_ReadObjectName            0x96     // read object name
C_ReadSurname                  0x8C    // read user surname
C_ReadName                       0x8E    // read user name
C_ReadPatronymic              0x90     // read user patronymic
C_ReadDataArrival             0x92     // read data of arrival
C_ReadDayValue                0x94     // read number of visit day
C_ReadDiscount                  0xA6    // read discount value

Как отправлять команду на оборудования и в какой кодировки (ascii, unicode )?
3 Базис
 
naïve
19.06.12
11:53
А оборудование-то какое? А карта? Они бывает только для чтения, дешёвые варианты именно такие. В этом случае читают ид карты и хранят у себя соответствие этого ид всему тому, что вы хотите знать про эту карту. А ещё ид карты можно подменить...
4 Базис
 
naïve
19.06.12
11:57
Юникод в ШК, 417, rfid etc не использовался и не будет. Память дорогая, чайников к обоудованию стараются не пускать, поэтому 1Кб хватит для всего :)
5 babiy
 
19.06.12
12:03
Оборудованния от МАІТЕК и Мегамолл... На картку можна записать.
Карта хранит следующую информацию:
-    наименование объекта, где используются считыватели, 16 байт;
-    ФИО гостя, по 16 байт на фамилию, имя и отчество, 48 байт;
-    дата приезда в формате число,  месяц, год, часы, минуты, чч мм гг чч мм,
10 байт;
-    количество дней пребывания, 4 байт;
-    наличие скидок, 48 категорий, на каждую категорию скидка значением 0..255, 48 байт;

На делфи написали прогу для записи, а мне нужно на 1С. Но я незнаю сам принцып записи. Нужно отправлять команду на оборудовання или просто строку на ком порт?
6 babiy
 
19.06.12
12:04
Может есть у кавото быблыотеку и обработка для записи?
7 babiy
 
19.06.12
12:14
или как дать команду на оборудования?
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший