Сообщения без ответов | Активные темы Текущее время: Ср дек 11, 2019 4:33 pm



Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4  След.
Как из DrvFR1C получить DrvFR? 
Автор Сообщение
Новичок

Зарегистрирован: Пн мар 01, 2010 11:07 am
Сообщения: 39
Сообщение Re: Как из DrvFR1C получить DrvFR?
У меня работает.
вы только запускайте в чистой 1С, а не из РМК.


Пт янв 27, 2012 2:35 pm
Профиль
Новичок

Зарегистрирован: Пт янв 27, 2012 1:11 pm
Сообщения: 3
Сообщение Re: Как из DrvFR1C получить DrvFR?
Да действительно повтор документа пошел только клиент не подключается пишет что ком порт занят другим приложением, помогите пожалуйста с подключением клиента

Процедура ОсновныеДействияФормыПовтор(Кнопка)Экспорт
ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма);
ПодключитьВнешнююКомпоненту("Addin.DrvFR");
FR=Новый("Addin.DrvFR");
FR.Password=30;
FR.RepeatDocument();
ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);

КонецПроцедуры


Пн янв 30, 2012 10:35 am
Профиль
Новичок

Зарегистрирован: Пн мар 01, 2010 11:07 am
Сообщения: 39
Сообщение Re: Как из DrvFR1C получить DrvFR?
Вот тут я без понятия, жаль что Штрих-М не дает из драйвера 1С перейти в драйвер FR


Пн янв 30, 2012 10:45 am
Профиль
Постоянный участник
Аватара пользователя

Зарегистрирован: Пт май 19, 2006 6:26 pm
Сообщения: 10424
Откуда: Штрих-М
Сообщение Re: Как из DrvFR1C получить DrvFR?
Вы можете отключиться от ФР, создать объект драйвера ФР и вызыать нужные Вам методы.

Также в последней DrvFr1C.dll есть методы посылки любой команды в порт:

DeviceControl (DeviceID, TxData, RxData): WordBool
УправлениеУстройством (ИДУстройства, ВхДанные, ВыхДанные)
Передает низкоуровневую команду устройству
Параметры:
DeviceID: WideString [IN]
ИДУстройства [ВХ]
Идентификатор устройства
TxData: WideString [IN]
ВхДанные [ВХ]
Последовательность байт команды, передаваемой в ФР. (см. описание протокола).
Например, для команды «гудок» последовательность будет такая (в шестнадцатеричном
виде): «13 1E 00 00 00». То есть, последовательность начинается с кода команды (в
данном случае «13»), за ним следуют параметры команды (в данном случае – пароль
оператора: «1E 00 00 00»).
RxData: Integer [OUT]
ВыхДанные [ВЫХ]
Последовательность байт ответа ФР.

Напишите нам запрос на почту, Вышлю Вам последнее описание DrvFr1C.dll.

_________________
С уважением, Селихов Дмитрий Юрьевич
Инженер технической поддержки ЗАО "Штрих-М"
mailto: support@shtrih-m.ru
тел. (495) 787-60-96
ВНИМАНИЕ:
Работает Официальный Интернет-Магазин от компании Штрих-М
Shels-m.ru


Пн янв 30, 2012 11:40 am
Профиль
Новичок

Зарегистрирован: Пн мар 01, 2010 11:07 am
Сообщения: 39
Сообщение Re: Как из DrvFR1C получить DrvFR?
Запрос на почту выслал.


Пн янв 30, 2012 11:48 am
Профиль
Новичок

Зарегистрирован: Пт янв 27, 2012 1:11 pm
Сообщения: 3
Сообщение Re: Как из DrvFR1C получить DrvFR?
Все, получилось, если кому надо сделать повтор документа работает вот такая процедура
Процедура ОсновныеДействияФормыПовтор(Кнопка)Экспорт
ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма);
ПодключитьВнешнююКомпоненту("Addin.DrvFR");
FR=Новый("Addin.DrvFR");
FR.Password=30;
FR.RepeatDocument();
FR.Disconnect();
ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);

КонецПроцедуры


Пн янв 30, 2012 1:20 pm
Профиль
Постоянный участник
Аватара пользователя

Зарегистрирован: Пт май 19, 2006 6:26 pm
Сообщения: 10424
Откуда: Штрих-М
Сообщение Re: Как из DrvFR1C получить DrvFR?
По запросу на почту ответил.

_________________
С уважением, Селихов Дмитрий Юрьевич
Инженер технической поддержки ЗАО "Штрих-М"
mailto: support@shtrih-m.ru
тел. (495) 787-60-96
ВНИМАНИЕ:
Работает Официальный Интернет-Магазин от компании Штрих-М
Shels-m.ru


Пн янв 30, 2012 3:00 pm
Профиль
Новичок

Зарегистрирован: Сб май 05, 2012 4:00 pm
Сообщения: 5
Сообщение Re: Как из DrvFR1C получить DrvFR?
Здравствуйте. Не стал создавать новую тему.
Есть проблема с методом DeviceControl для DrvFR1C.
DeviceControl (DeviceID, TxData, RxData).
Непонятно какую цифру нужно передавать в качестве TxData, чтобы метод сработал.
Например: хочу узнать содержимое денежного регистра.
в протоколе написано нужно передать 1A 1E 00 00 00 C1 (для регистра номер 193).
Если пользоваться методом DeviceControlHEX, то программа отрабатывает всё нормально, вот только ответ
не знаю как перевести (средствами 1С) в тип число (ответ 1A 00 1E 7E 54 00 00 00 00, а это число 216.30).
Поэтому просьба, напишите как преобразовать ответ в тип число (средствами 1С).

Если же метод DeviceControl возвращает нужную цифру (в примере 216.30), то подскажите, что нужно передать
вместо TxData (т.е. аналог 1A 1E 00 00 00 C1 для метода DeviceControlHEX).


Сб май 05, 2012 4:51 pm
Профиль
Постоянный участник
Аватара пользователя

Зарегистрирован: Пт май 19, 2006 6:26 pm
Сообщения: 10424
Откуда: Штрих-М
Сообщение Re: Как из DrvFR1C получить DrvFR?
Цитата:
какую цифру нужно передавать в качестве TxData

Номер регистра в hex, т.е. C1h = 193d.
Цитата:
не знаю как перевести (средствами 1С) в тип число (ответ 1A 00 1E 7E 54 00 00 00 00, а это число 216.30).

Из описания протокола:
Цитата:
Запрос денежного регистра
Команда: 1AH. Длина сообщения: 6 байт.
Пароль оператора (4 байта)
Номер регистра (1 байт) 0… 255
Ответ: 1AH. Длина сообщения: 9 байт.
Код ошибки (1 байт)
Порядковый номер оператора (1 байт) 1…30
Содержимое регистра (6 байт)

Ответ надо читать по байтам справа налево, внутри байта слева направо, т.е. для вашего примера ответ будет:
00000000547Eh = 547Eh = 21630d или 216.30р.

_________________
С уважением, Селихов Дмитрий Юрьевич
Инженер технической поддержки ЗАО "Штрих-М"
mailto: support@shtrih-m.ru
тел. (495) 787-60-96
ВНИМАНИЕ:
Работает Официальный Интернет-Магазин от компании Штрих-М
Shels-m.ru


Чт май 10, 2012 10:50 am
Профиль
Новичок

Зарегистрирован: Сб май 05, 2012 4:00 pm
Сообщения: 5
Сообщение Re: Как из DrvFR1C получить DrvFR?
Спасибо за расшифровку результата.

Есть запрос для процедуры DeviceControlHex TxData=1A 1E 00 00 00 C1 (запрос денежного регистра номер 193),
можете написать какие входные данные (TxData) нужны процедуры DeviceControl что бы сделать аналогичную операцию.
И самое главное ответ процедуры DeviceControl будет в каком формате (шестнадцатеричный или десятичный)?


Чт май 10, 2012 11:12 am
Профиль
Постоянный участник
Аватара пользователя

Зарегистрирован: Пт май 19, 2006 6:26 pm
Сообщения: 10424
Откуда: Штрих-М
Сообщение Re: Как из DrvFR1C получить DrvFR?
Разбираемся, ответим чуть позже.

_________________
С уважением, Селихов Дмитрий Юрьевич
Инженер технической поддержки ЗАО "Штрих-М"
mailto: support@shtrih-m.ru
тел. (495) 787-60-96
ВНИМАНИЕ:
Работает Официальный Интернет-Магазин от компании Штрих-М
Shels-m.ru


Чт май 10, 2012 5:24 pm
Профиль
Новичок

Зарегистрирован: Пт апр 24, 2009 12:28 pm
Сообщения: 98
Откуда: Штрих-М
Сообщение Re: Как из DrvFR1C получить DrvFR?
megatron_v писал(а):
Спасибо за расшифровку результата.

Есть запрос для процедуры DeviceControlHex TxData=1A 1E 00 00 00 C1 (запрос денежного регистра номер 193),
можете написать какие входные данные (TxData) нужны процедуры DeviceControl что бы сделать --=это спам=-- операцию.
И самое главное ответ процедуры DeviceControl будет в каком формате (шестнадцатеричный или десятичный)?


Если в случае DeviceControlHex данные передаются и возвращаются в виде текстовой строки с последовательностью символов, то в случае DeviceControl TxData должно содержать непосредственно последовательность байт команды (не текст). Ответ будет точно такой же - последовательность байт. (т.е. первый байт TxData = 1A, второй = 1E и т.д.)


Пт май 11, 2012 4:29 pm
Профиль
Новичок

Зарегистрирован: Сб май 05, 2012 4:00 pm
Сообщения: 5
Сообщение Re: Как из DrvFR1C получить DrvFR?
Спасибо за ответ.
Как я понимаю из 1С лучше пользоваться вариантом DeviceControlHex.


Пт май 11, 2012 4:32 pm
Профиль
Новичок

Зарегистрирован: Пн мар 01, 2010 11:07 am
Сообщения: 39
Сообщение Вот и я попробовал
Вот и я попробовал получить наличность в кассе (денежный регистру 241).
Получилось, правда долго не мог понять, что не работает, пока не использовал DeviceControlHex вместо DeviceControl.
Но результат мне не понятен.
Наличность в кассе по снятому тут же X-отчету 132943.86, а я получил ответ: 1A 00 1E 32 DB CA 00 00 00
Сколько байт слева нужно пропускать, один или два?
И что-то этот ответ не похож на сумму наличности в кассе... 132943d = 02074Fh а 86d = 56h

Код ниже (хорош тем, что его можно сразу из консоли кода вызывать):

Код:
КассаККМ = Неопределено;
СсылкаПредчека = Неопределено;

ф = Документы.ЧекКкм.СоздатьДокумент().ПОлучитьФорму();
РезультатПодключенияТО = ПолучитьСерверТО().ПодключитьКлиента(Ф);
   
Если ЗначениеЗаполнено(РезультатПодключенияТО) Тогда
   
   ТекстОшибки = "Ошибка подключения оборудования"
   + Символы.ПС + "Одно или несколько устройств не были подключены к компьютеру!"
   + Символы.ПС + "Обратитесь к системному администратору для разрешения проблемы."
   + Символы.ПС + "Продолжение работы не гарантирует корректной обработки чеков.";
      
   Сообщить(ТекстОшибки);
      
КонецЕсли;



Если КассаККМ = Неопределено тогда
   Если НЕ ПланыОбмена.ГлавныйУзел() = Неопределено Тогда //только на точках
          Магазины = ПланыОбмена.ПоМагазину.ЭтотУзел().Магазины;
         Если Магазины.Количество() = 1 Тогда
            КассаККМ = Магазины[0].Магазин.ОсновнаяКасса;
         КонецЕсли;
   КонецЕсли;
КонецЕсли;

Если КассаККМ = Неопределено тогда
   Результат = "Пречек не распечатан, т.к. не удалось получить КассуККМ!";
      //Возврат Результат;
КонецЕсли;


   
МассивФР      = ПолучитьСерверТО().ПолучитьСписокУстройств(
Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор,
КассаККМ);
   
КоличествоФР = МассивФР.Количество();
   
Если КоличествоФР = 0 Тогда
   Результат = "Пречек не распечатан, т.к. не подключен фискальный регистратор!";
   //Возврат Результат;
ИначеЕсли КоличествоФР = 1 Тогда
   ФР = МассивФР[0];
Иначе
   СписокФР = РаботаСТорговымОборудованием.ПолучитьСписокУстройствТОДляВыбора(МассивФР);
      
   ФР = СписокФР.ВыбратьЭлемент("Необходимо выбрать фискальный регистратор");
   Если ФР = Неопределено Тогда
      Результат = "Операция отменена пользователем.";
      //Возврат Результат;
   Иначе
      ФР = ФР.Значение;
   КонецЕсли;
КонецЕсли;

Обработка = Неопределено;
Объект    = Неопределено;

ТО =  ПолучитьСерверТО();
Результат = ТО.ПолучитьОбъектДрайвера(ФР, Обработка, Объект);
         
         
TxData =
"1A" //Чтение денежного регистра
+ " 1E 00 00 00"  //Пароль 30 задом наперед
+ " F1"; //регистр 241 - наличность в кассе
RxData = "";

Объект.Драйвер.DeviceControlHex(Объект.ИДУстройства, TxData, RxData);


Сообщить(TxData );
Сообщить(RxData );


//http://forum.shtrih-m.ru/posting.php?mode=reply&f=1&t=25835
 



Пн июн 04, 2012 5:52 pm
Профиль
Постоянный участник
Аватара пользователя

Зарегистрирован: Чт мар 10, 2005 6:41 pm
Сообщения: 9908
Откуда: ЗАО "ШТРИХ-М", г. Москва
Сообщение Re: Как из DrvFR1C получить DrvFR?
Цитата:
Сколько байт слева нужно пропускать, один или два?

Ответ на данный вопрос можно получить из протокола ФР, а именно данная последовательность "1A 00 1E 32 DB CA 00 00 00" раскладывается следующим образом:
1А - код команды;
00 - код ошибки;
1Е - пароль оператора;
32 DB CA 00 00 00 - содержимое регистра.
В Вашем случае получается число : 00 00 00 CA DB 32h = 13294386d = 132943 руб. 86 коп.

_________________
С уважением, Гонтарь Тимофей Владимирович
Инженер технической поддержки ЗАО "Штрих-М"
mailto: support@shtrih-m.ru
тел. (495) 787-60-96
ВНИМАНИЕ: Работает Официальный Интернет-Магазин от компании Штрих-М www.shels-m.ru


Вт июн 05, 2012 8:52 am
Профиль WWW
Показать сообщения за:  Поле сортировки  
Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.   [ Сообщений: 46 ]  На страницу Пред.  1, 2, 3, 4  След.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.
Русская поддержка phpBB