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

06.06.19

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Сервер для Меркурия 119Ф USB для печати по сети
.zip 635,95Kb
2
2
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С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

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

6000 руб.

27.02.2017    788208    4755    9507    

2817

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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 или интернет. Поддержка маркировки и разрешительного режима.

5400 руб.

25.05.2015    330537    1898    3031    

1013

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

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

1500 руб.

22.03.2019    81720    451    478    

175

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

Расширение конфигурации для УТ 11.4, 11.5, КА 2.4, 2.5, Розница 3.0, 2.3 и 2.2, УНФ 1.6, УНФ 3x, ERP 2.4, 2.5, БП 3, БГУ2 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4000 руб.

27.08.2018    119205    1016    571    

845

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

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

3000 руб.

02.09.2016    134510    130    192    

171

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

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

4800 руб.

31.07.2017    168461    577    605    

199

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

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

5880 руб.

12.04.2023    8613    36    2    

31

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

Создание электронных чеков по документам 1С РеализацияТоваров (РасходнаяНакладная), КорректировкаРеализации, СчетНаОплату, ЗаказКлиента, ЧекККМ. Соответствует требованиям 54-ФЗ. Одна облачная касса может использоваться всеми подразделениями организации, без привязки к рабочим местам. Электронные чеки отправляются на email клиента и всегда доступны в 1С, по требованию можно распечатать. Легкая настройка: после регистрации кассы на сайте АТОЛ.ОНЛАЙН, в обработке необходимо указать логин, пароль и идентификатор группы ККТ (берутся в личном кабинете АТОЛ.ОНЛАЙН). Одну кассу можно использовать с 1С при расчетах с физ. и юр. лицами и для интернет-магазина. Эквайринг позволяет делать ссылки на форму оплаты по документам 1С и проверять состояние оплаты.

21600 руб.

23.08.2022    11425    28    4    

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

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

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

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