|
Страница 1 из 1
|
[ Сообщений: 4 ] |
|
Автор |
Сообщение |
Lena
|
Как работать с двумя ФР
К 1С подключены 2 ФР Штрих-ФР-К. Как должна выглядеть последлвательность команд, переключающих регистраторы? У меня все печатается на одном ФР, а нужно часть чеков на одном, а часть - на втором.
|
Пт мар 18, 2005 6:54 pm |
|
|
Timofey Gontar
Постоянный участник
Зарегистрирован: Чт мар 10, 2005 6:41 pm Сообщения: 9908 Откуда: ЗАО "ШТРИХ-М", г. Москва
|
Для организации работы с двумя фискальными регистраторе необходимо в коде использовать методы работы с логическими устройствами. В данном случае можно использовать метод SetActiveLD (УстановитьАктивноеЛУ). Этот метод устанавливает параметры логического устройства с номером из свойства LDNumber (НомерЛогическогоУстройства) как текущие параметры драйвера, т.е. делает активным данное логическое устройство. Одновременно можно использовать только одно логическое устройство. Следовательно, Вы можете организовать работу сначала с одним ФР, а потом с другим.
_________________ С уважением, Гонтарь Тимофей Владимирович Инженер технической поддержки ЗАО "Штрих-М" mailto: support@shtrih-m.ru тел. (495) 787-60-96 ВНИМАНИЕ: Работает Официальный Интернет-Магазин от компании Штрих-М www.shels-m.ru
|
Пт мар 18, 2005 7:51 pm |
|
|
Lena
|
Завожу 2 логических устройства через тестовую утилиту. Пишу в теле процедуры:
ЗагрузитьВнешнююКомпоненту("DrvFR.dll");
FR = СоздатьОбъект("AddIn.DrvFR");
FR.LDNumber=1;
FR.SetActiveLD();
FR.Quantity=1;
FR.Price=100;
FR.Department=1;
FR.StringForPrinting="товар";
FR.Sale();
ОтветДрайвера();
Если Result<>0 Тогда
Сообщить(Result);
Сообщить(ОшибкаПараметра);
КонецЕсли;
FR.Summ1=100;
FR.Summ2=0;
FR.Summ3=0;
FR.Summ4=0;
FR.StringForPrinting="";
FR.CloseCheck();
ОтветДрайвера();
Если Result<>0 Тогда
Сообщить(Result);
Сообщить(ОшибкаПараметра);
КонецЕсли;
FR.LDNumber=2;
FR.SetActiveLD();
FR.Quantity=1;
FR.Price=100;
FR.Department=1;
FR.StringForPrinting="товар";
FR.Sale();
ОтветДрайвера();
Если Result<>0 Тогда
Сообщить(Result);
Сообщить(ОшибкаПараметра);
КонецЕсли;
FR.Summ1=100;
FR.Summ2=0;
FR.Summ3=0;
FR.Summ4=0;
FR.StringForPrinting="";
FR.CloseCheck();
ОтветДрайвера();
Если Result<>0 Тогда
Сообщить(Result);
Сообщить(ОшибкаПараметра);
КонецЕсли;
На первом ФР печатается чек, а потом выходит ошибка 80 (идет печать предыдущей команды), т.е. второй чек пытается печататься тоже на первом ФР. Что в процедуре не так?
|
Пн мар 21, 2005 4:04 pm |
|
|
Cosmos
Новичок
Зарегистрирован: Чт мар 10, 2005 6:35 pm Сообщения: 824 Откуда: ЗАО "ШТРИХ-М", г. Москва
|
Какая у Вас версия драйвера ФР?
Вы завели два логических устройства с номерами 1 и 2?
При проверки через Тест драйвера ФР, при переключении между логическими устройствами, связь устанавливается с каждым из них? Т. е. проверьте параметры логических устройств: скорость и номер COM порта.
Также метод SetActiveLD() необходимо обработать на ошибки, возможно в процессе его выполнения возникает ошибка.
_________________ С уважением, Козлов Денис Сергеевич,
инженер технической поддержки ЗАО "ШТРИХ-М",
e-mail: support@shtrih-m.ru,
тел. (495) 787-60-96.
|
Пн мар 21, 2005 5:26 pm |
|
|
|
Страница 1 из 1
|
[ Сообщений: 4 ] |
|
Кто сейчас на конференции |
Сейчас этот форум просматривают: Google [Bot] и гости: 1 |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения
|
|