Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Раздел для обсуждения программного обеспечения КБ по ККМ Меркурий.
Аватара пользователя
Dima
Сообщения: 10
Зарегистрирован: 18 сен 2012, 15:54

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение Dima »

slan писал(а):в ближайшем будущем добавлю методы ЗакрытьЧекПрограммируемойОплатой(CloseCheckProgramPay)
При разработке этого метода прошу учесть что бы была возможность смешанного платежа с наличными..... т.е. наличные + один из программируемых видов оплат..... Ну и соответственно также только программируемый вид оплат.... (хотя это решается при наличных =0 )...

Теги:
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение slan »

Dima писал(а):
slan писал(а):в ближайшем будущем добавлю методы ЗакрытьЧекПрограммируемойОплатой(CloseCheckProgramPay)
При разработке этого метода прошу учесть что бы была возможность смешанного платежа с наличными..... т.е. наличные + один из программируемых видов оплат..... Ну и соответственно также только программируемый вид оплат.... (хотя это решается при наличных =0 )...
Не получится учесть, т.к. фискальник не позволяет. Выдержка из руководства по программированию Гепарда:

Код: Выделить всё

Для реквизита "Уплаченная сумма":
Вид оплаты
0000B - Наличные
0001B - В кредит
0010B - Платёжная карта
0011B - Комбинированная  оплата          (наличные и в кредит)
0100B - Комбинированная  оплата          (наличные и платёжной картой)
0101 - Программируемый вид оплаты 1.
0110 – Программируемый вид оплаты 2.
0111 – Программируемый вид оплаты 3.
Аватара пользователя
Shtirlic
Сообщения: 377
Зарегистрирован: 18 фев 2011, 11:21

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение Shtirlic »

alfa
Можно ли метод CloseCheck дополнить неким параметром IsFiscal
это Вы избавитесь только от части проблем, дело в том, что CloseCheck функция не атомарная и вполне может может возникнуть такая ситуация при которой во время отработки этой функции будет разрыв и соответственно в ФП запишется чек, а результат в ответ уже не получиться передать и опять получится неопределенность, я эту проблему решал в АРМ кассира и мне приходилось самому это разруливать, причем надо учитывать, что кроме разрыва бывают и отключения питания и тут уже Ваша программа может не успеть или дождаться ответа или не успеть записать ответ о закрытии. У меня перед закрытием чека запоминаются и последний не закрытый и последний в ФР и уже потом происходят некоторые последовательные манипуляции с целью обеспечения целостности для непредвиденных случаев и есть механизмы восстановления при старте программы.
Да и еще скорей всего у Вас возникнет подобная проблема и с закрытием смены, там тоже сохраняю все нужные номера.
Прорабатывали с slan возможность защиты в драйвере, но нашли безопасное решение не атомарных операций только на прикладном уровне.
Аватара пользователя
Dima
Сообщения: 10
Зарегистрирован: 18 сен 2012, 15:54

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение Dima »

Не получится учесть, т.к. фискальник не позволяет.
Все таки для белорусской версии позволяет.... и я надеюсь у Вас все получится....
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение slan »

Позволяет, да. Значит сделаю
Аватара пользователя
alfa
Сообщения: 45
Зарегистрирован: 14 апр 2012, 18:46

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение alfa »

Shtirlic писал(а):alfa
Можно ли метод CloseCheck дополнить неким параметром IsFiscal
это Вы избавитесь только от части проблем, дело в том, что CloseCheck функция не атомарная и вполне может может возникнуть такая ситуация при которой во время отработки этой функции будет разрыв и соответственно в ФП запишется чек, а результат в ответ уже не получиться передать и опять получится неопределенность, я эту проблему решал в АРМ кассира и мне приходилось самому это разруливать, причем надо учитывать, что кроме разрыва бывают и отключения питания и тут уже Ваша программа может не успеть или дождаться ответа или не успеть записать ответ о закрытии. У меня перед закрытием чека запоминаются и последний не закрытый и последний в ФР и уже потом происходят некоторые последовательные манипуляции с целью обеспечения целостности для непредвиденных случаев и есть механизмы восстановления при старте программы.
Да и еще скорей всего у Вас возникнет подобная проблема и с закрытием смены, там тоже сохраняю все нужные номера.
Прорабатывали с slan возможность защиты в драйвере, но нашли безопасное решение не атомарных операций только на прикладном уровне.
Спасибо за развернутый ответ
Понятно что на 100 процентов на уровне драйвера проблему не решить , но если что то можно сделать хотя бы частично , то это нужно делать.
Мы также подключаем Фр других производителей -штрихи , феликсы - там разработчики как то смогли решить эту проблему или снизить ее вероятность, а вот с меркуриями у нас постоянно вылазят косяки с проведением чека в ФП .
Я не знаю внутренней механики рабрты драйвера с ФР при выполнений команды ЗакрытьЧек, но как объяснил slan , сначала идеть запись в ФП , а потом собственно печать текста на ленте. Вопрос такой - извещает ли ФР драйвер о завершении проведения чека в ФП , перед началом собственно печати текста? И если извещает , то можно ли сохранить эту информацию где нибудь во внутренней переменной драйвера, и потом вернуть через какой нибудь метод ? Тогда если с ФР возникнут проблемы именно во время печати (отключение, обрыв связи , кеабеля), то это позволит обработать данную ситуацию корректно.
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение slan »

alfa, фискальник сам по себе ни о чем не оповещает, пока не дашь ему какую-нибудь команду, а он эту команду выполняет и выдает ответ (то есть даст ответ после полной успешной печати чека - сначала сохранит в фискалку, потом напечатает, потом выдаст ответ) Соответственно, если во время выполнения команды питание пропадет, то ответа от него никакого не будет.
Эту ситуацию должно обрабатывать ПО верхнего уровня, а не драйвер. Shtirlic Вам указал направление, он эту проблему полностью решил, запрашивая номер последнего зарегистрированного документа перед закрытием чека и после
Аватара пользователя
alfa
Сообщения: 45
Зарегистрирован: 14 апр 2012, 18:46

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение alfa »

slan писал(а):alfa, фискальник сам по себе ни о чем не оповещает, пока не дашь ему какую-нибудь команду, а он эту команду выполняет и выдает ответ (то есть даст ответ после полной успешной печати чека - сначала сохранит в фискалку, потом напечатает, потом выдаст ответ) Соответственно, если во время выполнения команды питание пропадет, то ответа от него никакого не будет.
Эту ситуацию должно обрабатывать ПО верхнего уровня, а не драйвер.
Спасибо за развернутый ответ
Раз нельзя , значит нельзя - буду решать эту проблему на уровне прикладного ПО
slan писал(а): Shtirlic Вам указал направление, он эту проблему полностью решил, запрашивая номер последнего зарегистрированного документа перед закрытием чека и после
У меня есть конфигурации , в которых несколько касс работают с одним ФР , для которых данный метод не совсем коректен.
Надеюсь все же вы подумаете в перспективе ,как можно снизить риск возникновения подобных ситуаций .
Например можно изменить логику выполнения команды закрытия чека - запись в ФП проводить не до , а после печати текста чека (или основной текст чека до записи в ФП , а последнюю строку после ) Или ввести некую настройку , которая будет регламентировать эту логику (как сделано в драйвере Штрих-М)
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение slan »

alfa писал(а): Надеюсь все же вы подумаете в перспективе ,как можно снизить риск возникновения подобных ситуаций .
Например можно изменить логику выполнения команды закрытия чека - запись в ФП проводить не до , а после печати текста чека (или основной текст чека до записи в ФП , а последнюю строку после ) Или ввести некую настройку , которая будет регламентировать эту логику (как сделано в драйвере Штрих-М)
Мы бы подумали :) Однако, ПО под ФР (прошивку) пишем не мы (не Курское КБ) и как-то повлиять на этот процесс не можем
Аватара пользователя
alfa
Сообщения: 45
Зарегистрирован: 14 апр 2012, 18:46

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение alfa »

slan писал(а):
Мы бы подумали :) Однако, ПО под ФР (прошивку) пишем не мы (не Курское КБ) и как-то повлиять на этот процесс не можем
Где я могу пообщаться с разработчиками прошивок ? (форум или емайл)
Аватара пользователя
alfa
Сообщения: 45
Зарегистрирован: 14 апр 2012, 18:46

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение alfa »

Можно добавить метод , который вернет версию прошивки ФР ?

Можно в документацию драйвера добавить дерево навигатор по методам , как на приведенном ниже примере ?

Изображение
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение slan »

alfa писал(а):Можно добавить метод , который вернет версию прошивки ФР ?
Добавлю
alfa писал(а): Можно в документацию драйвера добавить дерево навигатор по методам , как на приведенном ниже примере ?

Изображение
Наверное как-то можно. Как появится свободное время попробую.
Аватара пользователя
Will
Сообщения: 1
Зарегистрирован: 27 окт 2012, 23:54

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение Will »

Здравствуйте! Помогите подключить Меркурий-MS к Розница 2.0.4.! В Розница 2.0.3. все работало, после обновления не видит драйвер
Аватара пользователя
iskminsk
Сообщения: 1
Зарегистрирован: 11 дек 2012, 10:03

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение iskminsk »

Приветствую всех в этой ветке.
Интересует реализация кода для 1с7, для Беларуси.
Всё, что у меня получилось выяснить: 1с-ка седьмая не поддерживает типы данных, которые используются в dll-ке.
Пробовал подключить в VB - всё гуд проходит, потому, что там явно типы данных объявляются для переменных.

Под 1c7 попробовал сделать с помощью VBScript. Не получается.
Код на 1с7:
Попытка
ЧекПринтер = СоздатьОбъект("MercuryCom.FPDrv1C2"); // Создание объекта внешней компоненты
Исключение
Сообщить("Объект MercuryCom.FPDrv1C2 не создан!!!");
Сообщить("ККМ не подключен!");
ЧекПринтерЗагружен=0;
Возврат;
КонецПопытки;

Если ЧекПринтерЗагружен=1 тогда

Если ЗагрузитьВнешнююКомпоненту("OLEExSup.dll") = 0 Тогда
Предупреждение("Ошибка при подключении OLEExSup.dll !!");
ЧекПринтерЗагружен = 0;
Иначе
Сообщить(ЧекПринтер);

/////////////////////////////////////////////////////////////////////////////////////
//Создание скрипта и получение объекта
ScrCtrl = СоздатьОбъект("ScriptControl");
ScrCtrl.Language="VBScript";
ScrCtrl.AddCode("
|Function Method1()
|ReDim pArray(5)
|pArray(0) = CLng(1)
|pArray(1) = CLng(19200)
|pArray(2) = CStr(""0000"")
|pArray(3) = CLng(1)
|pArray(4) = CBool(3=2)
|pArray(5) = CLng(11)
|Method1 = pArray
|End Function
|
|Function Method2(Arr)
| For Each Item In Arr
| MsgBox Item
| Next
|End Function
|");
CodeObject = ScrCtrl.Modules("Global").CodeObject;
//Вызов метода объекта
OLEExSup = СоздатьОбъект("OLEExSup");
Массив = OLEExSup.InvokeOLEMethod(CodeObject, "Method1");
//Для Инд = Массив.GetLBound() По Массив.GetUBound() Цикл

//читаем/выводим массив
OLEExSup.InvokeOLEMethod(CodeObject, "Method2", Массив);
/////////////////////////////////////////////////////////////////////////////////////

Дев = "";
ЧекПринтер.Open(Массив,Дев);
КонецЕсли;
Вот тут всё отрабатывает:
//читаем/выводим массив
OLEExSup.InvokeOLEMethod(CodeObject, "Method2", Массив);
Но, на строке:
ЧекПринтер.Open(Массив,Дев);
Получаем:
ЧекПринтер.Open(Массив,Дев);
{Глобальный модуль(710)}: Плохой тип переменной
Версия ПО - 2.0 BY В8.1
Используемая dll.
Огромная просьба связаться тут или на kravcov@iskamed.by.

Время решения проблемы ограничено днем или двумя максимум.
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение slan »

Данный драйвер разрабатывался в соответствии с требованиями 1с 8.2, т.к. задача стояла разработать драйвер именно под неё. А дополнительные методы уже добавлялись в связи с пожеланиями пользователей драйвера из своих программ. Переделываться типы параметров специально для 7.7 не будут
Аватара пользователя
Umk
Сообщения: 3
Зарегистрирован: 07 дек 2012, 14:13

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение Umk »

Скажите пожалуйста , как подключить ФР Меркурий МС-к к рознице 2.0.5.7? что для этого необходимо?
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение slan »

Umk писал(а):Скажите пожалуйста , как подключить ФР Меркурий МС-к к рознице 2.0.5.7? что для этого необходимо?
Вы ошиблись темой. Здесь обсуждается сам драйвер, его возможности, ошибки
p.s. ранее Вы писали в правильную тему, если ответ и будет, то скорее там чем здесь
Аватара пользователя
thalt
Сообщения: 8
Зарегистрирован: 14 дек 2012, 12:03

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение thalt »

Вероятно не в ту тему пишу. Если ошибся - поправьте, pls.
Для версии 1.0.X Курского драйвера есть обработки обслуживания для 1С (версии обработок - 2.16 и 2.27). Будут ли эти обработки работать с версией 2.X драйвера? Если нет, то существуют ли обработки для работы с версией 2.X?
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение slan »

thalt писал(а):Вероятно не в ту тему пишу. Если ошибся - поправьте, pls.
Для версии 1.0.X Курского драйвера есть обработки обслуживания для 1С (версии обработок - 2.16 и 2.27). Будут ли эти обработки работать с версией 2.X драйвера? Если нет, то существуют ли обработки для работы с версией 2.X?
Нет, обработки от 1.0.х с драйвером 2.х работать не будут. По поводу обработок для 2.х точно не знаю, вроде как их собирались писать, но пока нету
Аватара пользователя
German
Сообщения: 6
Зарегистрирован: 06 май 2013, 06:30

Re: Драйвер (ВЕРСИИ 2.X Курск) для ФР/ЧПМ Меркурий MS-K, Меркурий-119, Меркурий-114.1 [Обсуждение]

Сообщение German »

Здравствуйте!
Функция GetCashAmount позволяет только получить сумму наличных в ФР, каким образом можно получить сумму оплат по карте или сумму по кредиту?
Ответить