Имя: Пароль:
1C
1С v8
Штрих-М поменять значение поля 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
(2) Пожалуйста.

На сайте Штриха:
ftp://ftp.shtrih-m.ru/download/FR/Doc/ProtocolFR_1.12.pdf
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn