|
Штрих-М поменять значение поля 49 в первом ряду первой таблицы | ☑ | ||
---|---|---|---|---|
0
IKSparrow
27.07.15
✎
14:09
|
В наличии ШТРИХ-М-ФРК. Мне надо поменять значение поля 49 в первом ряду первой таблицы. Сделать нужно из под 1С. Версия драйвера последняя - 4.12.0.357
Сначала делал так (до подключения DrvFR1C.DLL, в данном блоке используется DrvFR.DLL !): ФР = Новый COMОбъект("AddIn.DrvFR"); ФР.GetECRStatus(); ФР.Password = 30; ФР.InitTable(); ФР.Password = 30; ФР.TableNumber = 1; ФР.FieldNumber = 1; ФР.GetFieldStruct(); ФР.TableNumber = 1; ФР.FieldNumber = 1; ФР.RowNumber = 49; ФР.ValueOfFieldInteger = 0; ФР.GetFieldStruct(); ФР.WriteTable(); ФР = null; Пофигу, не меняется значение и все тут. Потом достал слушатель порта, посмотрел, что туда пишется, если делать такую же операцию из программы "Тест драйвера" и сделал вот так: РезультатКоманды = ""; КомандаКВыполнению = "05 02 01 fc fd 06 05 02 01 fc fd 06 05 02 05 11"+ "1e 00 00 00 0a 06 05 02 05 88 1e 00 00 00 93 06"+ "05 02 05 13 1e 00 00 00 08 06 05 02 05 11 1e 00"+ "00 00 0a 06 05 02 07 2e 1e 00 00 00 01 08 3e 06"+ "05 02 09 1f 1e 00 00 00 01 01 00 08 00 06 05 02"+ "07 2e 1e 00 00 00 01 08 3e 06 05 02 0a 1e 1e 00"+ "00 00 01 01 00 08 00 02 06 05 02 07 2e 1e 00 00"+ "00 01 07 31 06 05 02 09 1f 1e 00 00 00 01 01 00"+ "07 0f 06 05 02 07 2e 1e 00 00 00 01 07 31 06 05"+ "02 0a 1e 1e 00 00 00 01 01 00 07 00 0d 06 05 02"+ "01 fc fd 06 05 02 05 ad 1e 00 00 00 b6 06 05 02"+ "0a ff 00 fe 00 16 00 00 00 00 00 1d 06 05 02 07"+ "2e 1e 00 00 00 01 31 07 06 05 02 09 1f 1e 00 00"+ "00 01 01 00 31 39 06 05 02 07 2e 1e 00 00 00 01"+ "30 06 06 05 02 09 1f 1e 00 00 00 01 01 00 30 38"+ "06 05 02 06 1a 1e 00 00 00 fd ff 06 05 02 06 1b"+ "1e 00 00 00 fd fe 06 05 02 06 1a 1e 00 00 00 fe"+ "fc 06 05 02 07 2e 1e 00 00 00 01 31 07 06 05 02"+ "0a 1e 1e 00 00 00 01 01 00 31 00 3b 06"; РезультатВыполнения = ОбъектДрайвера.DeviceControlHEX(ПараметрыПодключения.ИДУстройства, КомандаКВыполнению, РезультатКоманды); В этом блоке уже используется DrvFR1C.DLL. После запуска, команда выполняется (РезультатВыполнения = Истина) но значение поля по прежнему не меняется. Уже задолбался. Как правильно из под 1С изменить значение поля в таблице ШТРИХ-М-ФРК? |
|||
1
Галахад
гуру
27.07.15
✎
14:12
|
Рабочая функция.
Функция DeviceControlHEX_ЗаписьТаблицы(Объект, РезультатКоманды, НомерТаблицы, НомерРяда, НомерПоля, ЗначениеПоля) Экспорт //Запись таблицы //Команда: 1EH. Длина сообщения: (9+X) байт. //Пароль системного администратора(4 байта) //Таблица(1 байт) //Ряд(2 байта) //Поле(1 байт) //Значение(X байт) до40 байт //Ответ: 1EH. Длина сообщения: 2 байта. //Код ошибки(1 байт) НомерПоляФР = ЧислоВФорматеФР(НомерПоля); НомерРядаФР = ЧислоВФорматеФР(НомерРяда); НомерТаблицыФР = ЧислоВФорматеФР(НомерТаблицы); ЗначениеПоляФР = ЧислоВФорматеФР(ЗначениеПоля); КомандаКВыполнению = "1E" + " 1E 00 00 00" + НомерТаблицыФР + НомерРядаФР + " 00" + НомерПоляФР + ЗначениеПоляФР; РезультатКоманды = ""; КомандаВыполнена = Объект.Драйвер.DeviceControlHEX(Объект.ИДУстройства, КомандаКВыполнению, РезультатКоманды); Возврат КомандаВыполнена; КонецФункции |
|||
2
IKSparrow
27.07.15
✎
14:25
|
(1) Спасибо! Сработало! Подскажи пожалуйста, где такое низкоуровневое руководство по программированию найти? Или ты так же через слушатель портов выявляешь все такие команды? Скачал пару руководств по программированию Штриха, а там описывается исключительно штатный программный интерфейс (пример, как в первом блоке моего кода через DrvFR.DLL) и никаких тебе низкоуровневых команд :(
|
|||
3
Галахад
гуру
27.07.15
✎
14:33
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |