Печать чеков на Меркурии 119Ф USB по сети

06.06.19

Интеграция - ККМ

Стандартный драйвер Меркурия 119Ф usb не позволяет осуществлять печать на фискальный регистратор с другого компьютера, поэтому был сделан простейший http сервер, который транслирует post запросы в вызовы методов com-объекта.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Сервер для Меркурия 119Ф USB для печати по сети
.zip 635,95Kb ver:1.1
3
3 Скачать (1 SM) Купить за 1 850 руб.

Для печати чеков с терминального сервера или произвольного компьютера в сети пришлось написать обертку над фирменным драйвером.

 

Установка

 

Подключаем Меркурий-119Ф к компьютеру.

Устанавливаем драйвер usb https://www.incotexkkm.ru/attachments/54-fz/119f/Mercury_119F_USB.zip.

Устанавливаем драйвер "Инкотекс: ККТ Меркурий с передачей данных в ОФД (54-ФЗ)" (М119Ф, МФ) https://forum.incotexkkm.ru/viewtopic.php?f=19&t=2066 файл MercuryOfdFPDrv.exe.

Берем исходники и собираем проект https://github.com/philippovomsk/MercuryServer, например, в визуал-студии комьюнити 2017. Или качаем собранный проект отсюда и распаковываем архив куда-нибудь.

Вешаем в автозагрузку MercuryServer.exe.

 

Настройка

В папке с MercuryServer.exe есть файл конфигурации MercuryServer.exe.config, в котором нужно настроить ip-адрес и порт ОФД. По умолчанию в качестве ОФД настроен Петер-сервис.

<add key="ofdIP" value="94.143.160.11"/> 
<add key="ofdPort" value="4000"/>

Так же может понадобиться изменить порт http сервера Меркурия.

<add key="httpServerPort" value="8090" />

 

Проверка работоспособности

Запускаем MercuryServer.exe, в панели уведомлений появляется иконка сервера.

Левый клик по иконке отображает окно сервера, в котором показывается текущее состояние Меркурия 119Ф.

 

Правый клик по иконке позволяет закрыть сервер. Перед повторным запуском стоит выждать до 30 секунд, потому что драйвер меркурия может отправлять данные в ОФД и не успеть закрыться.

В браузере в строке адреса набираем localhost:8090 нажимаем ентер, смотрим на страницу ошибки сервера Меркурия.

При настройке печати по сети аналогично в браузере компьютера, с которого будут печататься чеки, набираем айпи-адрес-серверамеркурия:8090 и смотрим страницу ошибки. Если страницы ошибки нет, то проверяем настройки брендмауэра.

 

Использование

В папке драйвера Меркурия есть документация C:\Program Files (x86)\incotex\MercuryOfdFPDriver\MercuryComOFDFPDriver Manual.pdf Параметры методов драйвера оборачиваются в json и передаются как тело POST-запроса.

Сервер умеет обрабатывать следующие запросы:

  1. /openshift открытие смены

  2. /closeshift закрытие смены

  3. /status состояние фискального регистратора

  4. /printxreport печать х-отчета

  5. /printcheck печать чека

При печати чека проверяется состояние смены и если нужно открыть смену, то она открывается. Если нужно закрыть смену, то смена закрывается, открывается и печатается чек.

Результат возвращается в виде json, согласно документации. Если при выполнении запроса происходит ошибка, то в json возвращается поле "error" со строковым описанием ошибки.

 

openshift

Вызывается метод драйвера OpenShift2.

Тело запроса

{
   "CashierName": "имя кассира",
   "CashierVATIN": "инн кассир"
}

Тело ответа

{
    "SessionNumber": номер текущей смены,
    "DocumentNumber": номер отчета об открытии смены,
    "UrgentReplacementFN":  Признак необходимости срочной замены ФН,
    "MemoryOverflowFN":  Признак переполнения памяти ФН,
    "ResourcesExhaustionFN": Признак исчерпания ресурса ФН,
    "OFDtimeout": Признак того, что подтверждение оператора для переданного фискального документа отсутствует более двух дней. Для ФД с версией ФФД 1.0 более 5 дней
}

 

closeshift

Вызывается метод драйвера CloseShift2.

Тело запроса

{
   "CashierName": "имя кассира",
   "CashierVATIN": "инн кассир"
}

Тело ответа

{
    "SessionNumber": номер текущей смены,
    "DocumentNumber": номер отчета о закрытии смены,
    "NumberOfChecks": Количество кассовых чеков за смену,
    "NumberOfDocuments": Количество общее ФД за смену,
    "BacklogDocumentsCounter": Количество непереданных документов,
    "BacklogDocumentFirstNumber"  Номер первого непереданного документа,
    "BacklogDocumentFirstDateTime" Дата и время первого из непереданных документов,
    "UrgentReplacementFN":  Признак необходимости срочной замены ФН,
    "MemoryOverflowFN":  Признак переполнения памяти ФН,
    "ResourcesExhaustionFN": Признак исчерпания ресурса ФН,
    "OFDtimeout": Признак того, что подтверждение оператора для переданного фискального документа отсутствует более двух дней. Для ФД с версией ФФД 1.0 более 5 дней
}

 

status

Вызывается метод драйвера GetCurrentStatus.

Тело запроса

Пустое.

Тело ответа

{
    "CheckNumber": Номер последнего пробитого фискального документа из ФН,
    "SessionNumber": Номер смены,
    "SessionState":  Статус смены: 1-Закрыта, 2-Открыта,
    "BacklogDocumentsCounter": Количество непереданных документов,
    "BacklogDocumentFirstNumber"  Номер первого непереданного документа,
    "BacklogDocumentFirstDateTime" Дата и время первого из непереданных документов
}

 

printxreport

Вызывается метод драйвера PrintXReport.

Тело запроса

Пустое.

Тело ответа

Пустое.

 

printcheck

Вызывается метод драйвера ProcessCheck.

{
   "CashierName": "имя кассира",
   "CheckPackage": "xml с чеком"
}

Тело ответа

{
    "CheckNumber": Номер фискального чека, возвращаемый ФН,
    "SessionNumber": Номер открытой смены,
    "FiscalSign":  Фискальный признак,
    "AddressSiteInspections": Адрес сайта проверки
}

 

Лог сервера

В папке сервера формируется подробный лог запросов и ответов. Файл mercury.log. Настройки лога log4net.config.

 

Пример печати чека из 1С:Предприятия 8.3

Кусок кода, который печатает чек на сервере меркурия. Таймаут http соединения нужно ставить достаточно большим, потому что печать большого чека может занимать продолжительное время.

ДокЧек = "<?xml version=""1.0"" encoding=""UTF-8""?>
|<CheckPackage>
|<Parameters PaymentType=""1"" TaxVariant=""#Налогообложение#"" #ИННКассира#/>
|<Positions> 
|#Строки# 
|</Positions> 
|<Payments Cash=""#СуммаЧека#""/> 
|</CheckPackage>";

ДокЧек = СтрЗаменить(ДокЧек, "#Налогообложение#", 2); // 0-общая, 1-усн-доход, 2 - усн-расход, 3-енвд
ДокЧек = СтрЗаменить(ДокЧек, "#ИННКассира#", "CashierVATIN=""123456789012""");

ШаблонСтроки = "<FiscalString Name=""#Товар#"" Quantity=""#Количество#"" Price=""#Цена#"" Tax=""#СтавкаНДС#"" Amount=""#Сумма#""/>";

Строки = "";
Сумма = 0;
Для Каждого СтрТоваров Из СтрокиДокумента Цикл 
	
	ТекСтрока = ШаблонСтроки;
	ТекСтрока = СтрЗаменить(ТекСтрока, "#Товар#", ЭкранироватьСимволы(СокрЛП(СтрТоваров.Номенклатура))); 
	ТекСтрока = СтрЗаменить(ТекСтрока, "#Количество#", Формат(СтрТоваров.Количество, "ЧРД=.; ЧГ=0")); 
	ТекСтрока = СтрЗаменить(ТекСтрока, "#Цена#", Формат(СтрТоваров.Цена, "ЧРД=.; ЧГ=0")); 
	ТекСтрока = СтрЗаменить(ТекСтрока, "#СтавкаНДС#", "none"); //СтавкаНДСМеркурий(СтрТоваров.СтавкаНДС, ПлательщикНДС)); 
	ТекСтрока = СтрЗаменить(ТекСтрока, "#Сумма#", Формат(СтрТоваров.Сумма, "ЧРД=.; ЧГ=0")); 
	
	Строки = Строки + ТекСтрока;
	Сумма = Сумма + СтрТоваров.Сумма;
КонецЦикла;
ДокЧек = СтрЗаменить(ДокЧек, "#Строки#", Строки);
ДокЧек = СтрЗаменить(ДокЧек, "#СуммаЧека#", Формат(Сумма, "ЧРД=.; ЧГ=0"));

ПараметрыЗапроса = Новый Структура();
ПараметрыЗапроса.Вставить("CashierName", "Иванов И.И.");
ПараметрыЗапроса.Вставить("CheckPackage", ДокЧек);

ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, ПараметрыЗапроса);
ТелоЗапроса = ЗаписьJSON.Закрыть();

Запрос = Новый HTTPЗапрос("/printcheck");
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);

Соединение = Новый HTTPСоединение("айпи сервера меркурия", 8090,,,,60);
Попытка
	Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Исключение
	ПоказатьПредупреждение(,"Не удалось пробить чек! Нет соединения с сервером чеков!");
	Возврат;
КонецПопытки;

Если Ответ.КодСостояния <> 200 Тогда
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());

	Результат = ПрочитатьJSON(ЧтениеJSON, Ложь);
	ПоказатьПредупреждение(,"Не удалось пробить чек! " + ?(Результат.Свойство("error"), Результат.error, ""));
	Возврат;
КонецЕсли;

 

Подключение через стандартную подсистему торгового оборудования 1С:Предприятия 8.3

Мне было не нужно, но вполне можно написать обработку, которая будет взаимодействовать с сервером. За основу можно смело брать стандартную обработку от Инкотекс.

Фискальный_регистратор Меркурий_119Ф Инкотекс 54-ФЗ

См. также

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1, ФФД 1.2). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим и маркировку. Поддерживает локальный модуль честного знака для офлайн проверки. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows

6000 руб.

27.02.2017    811888    5185    9770    

2939

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих, Вики Принт и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

7900 руб.

25.05.2015    341562    2025    3120    

1063

ККМ Кассовые операции Розничная торговля Программист Бухгалтер Пользователь Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение для типовых конфигураций для Управляемых форм позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

9500 руб.

27.08.2018    125383    666    603    

897

ККМ Кассовые операции Розничная торговля Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Платные (руб)

«Сервер ККМ» позволяет приложениям работать с фискальными регистраторами по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест с поддержкой очереди печати. Поддерживаются ВСЕ ревизии требований фирмы 1С к разработке драйверов ККТ от 2.2 до 4.4. В поставке есть драйверы для операционных систем Linux, Android, MacOs и Windows. Поддержка драйверов Атол, Штрих и 1С-совместимых драйверов для ККТ ревизии 4.4. Поддержка 54-ФЗ и разрешительного режима, ФФД 1.05,1.1,1.2. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ 1.6/3, 1С:Розница 1/2/3, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП. Ускоряет печать из терминального сеанса Windows. Работает с разрешительным режимом даже из старых конфигураций. Предоставляет REST API для печати через веб-сервис. Поддерживаются новые ставки НДС 5% и 7%.

5000 руб.

02.09.2016    139534    180    194    

196

ККМ Розничная торговля Системный администратор Программист Платформа 1С v8.3 Оперативный учет 1С:Розница 2 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен между 1С:Розница и Frontol 6 при торговле от нескольких организаций, а также ряд других полезных функций. Данный модуль синхронизации незаменим для тех, кто ведёт учет по нескольким организациям в 1С:Розница, а на РМК (рабочем месте кассира) установлен Frontol или планируется его установка. Подходит для 1С:Розница 2.3 / 3.0, 1С:УНФ 3.0

7900 руб.

22.03.2019    86682    559    479    

194

Кассовые операции ККМ Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Платные (руб)

Расширение для 1С:Управление торговлей 11.5, которое позволяет пробивать чеки ККМ и списывать товар с разных складов. Склад списание товара можно указывать в табличной части рабочего места кассира (РМК).

5880 руб.

12.04.2023    10741    59    3    

48

ККМ Кассовые операции Розничная торговля Ценообразование, анализ цен Системный администратор Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Можно ли в 1С:Розница подключить несколько касс на одно рабочее место? Теперь это возможно! Решение позволяет подключать неограниченное количество касс к одному рабочему месту и выбирать, на какой кассе пробивать чек в зависимости от необходимости. Публикация состоит из двух файлов: одно из них — расширение конфигурации для ПРОФ-версии, второе — внешняя обработка РМК для базовой версии.

4560 руб.

07.08.2018    77875    509    357    

367

Кассовые операции ККМ Системный администратор Программист Бухгалтер Платформа 1С v7.7 Платформа 1С v8.3 1C:Бухгалтерия 1C77 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Программа для управления ККМ Атол и Штрих нового поколения (он-лайн ККТ под 54-ФЗ) с помощью текстового файла (ini файла) с изменениями включена 1 лицензия Для любых программ, которые умеют работать с текстовыми файлами. Внутри комплекта есть готовые к использованию обработки

6000 руб.

31.07.2017    174116    600    609    

209
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. muskul 10.06.19 01:57 Сейчас в теме
Сколько клиент за это заплатил и не проще было купить фискальник который может работать в тех режимах в которых хочет клиент
2. philya 78 10.06.19 11:27 Сейчас в теме
"Клиент" заплатил зарплату. Было не проще - мы меняем наши 12 Атолов на Меркурии, которых у нас под 400 штук.

Меркурий дешевле, умеет широкую и узкую ленту, есть отрезчик чека, перепрошивается своими силами бесплатно. Чтобы перепрошить Атол в Тевризе Омской области мне нужно проехать 1400 километров и заплатить за перепрошивку, т.е. одна перепрошивка Атола займет больше моего рабочего времени, чем написание этого сервера )
3. aspirator23 340 26.07.19 16:28 Сейчас в теме
(2) Насколько надежны меркурии? Рынок захватил Атол и Штрих, поэтому интересно как у других фискальных регистраторов. Насколько просто сложно обслуживать меркурии в сравнении с атолом. Есть ли проблемы при их работе в сравнении с атолами?
5. philya 78 28.07.19 16:47 Сейчас в теме
(3) ответ ниже - промазал кнопкой.
4. philya 78 28.07.19 16:44 Сейчас в теме
(3) Надежны. У нас штук 400. У части был заводской брак - не включались, отремонтировали по гарантии. Те которые включились работают пока в киоск молния не ударит, а там как повезет. )

Мне нравятся больше Атолов тем, что перепрошиваются бесплатно и своими силами. В итоге специально обученный человек с ноутбуком ездит по киоскам, меняет ФН и заливает прошивку с поддержкой маркированной табачной продукции. В поддержке Меркурия на телефоне сидят не девочки, которые говорят "обратитесь в цто", а нормальные люди, которые могут даже подключить разработчиков ПО. Лента закидывается, есть автоотрезчик, скорость печати нормальная, честный юсб, стоят дешевле.

Есть ровно одна проблема: на самой дешевой тонкой кассовой ленте в конце катушки начинает делать гормошку из чека - при использовании нормальной бумаги проблем нет.
6. aspirator23 340 28.07.19 20:51 Сейчас в теме
(4) Спасибо. "..Нормальные люди.." - это действительно проблема. :)
7. user1871052 15.12.22 11:27 Сейчас в теме
Здравствуйте. Как с вами можно связаться (автор статьи (philya)?
Нам очень нужно решить точно такую же проблему. Мы хотели бы обратиться к вам за помощью. Как с вами можно связаться?
8. philya 78 21.12.22 23:41 Сейчас в теме
(7) я отошел от кассовых аппаратов и 1с. Вряд ли я смогу вам помочь.
Оставьте свое сообщение