Обработка печати фискального регистратора MG N707TS по http (TCP/IP) протоколу JSON, +фильтры. Обычные формы

03.03.20

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

Пришлось подключать данный регистратор к точке с довольно интенсивным клиентопотоком. В стандартных обработках обнаружен ряд моментов, через которые регистратор мог отказать в печати чека, проигнорировать строку или просто зависнуть. Доработано: - Удаление перед отправкой по http всех неподдерживаемых символов протоколом JSON - Обязательная проверка результата успешной/неуспешной печати от РРО - Возможность печати Z Отчет По Товарам - Правильная печать чеков возврата - Код товара в памяти РРО соответсвует коду товара в 1С (избегаем ошибку продажи одного товара а печати другого)

Скачать файлы

Наименование Файл Версия Размер
Обработка печати фискального регистратора MG N707TS по http (TCP/IP) протоколу JSON, +фильтры. Обычные формы:
.epf 28,46Kb
0
.epf 28,46Kb Скачать

Пришлось подключать данный регистратор к точке с довольно интенсивным клиентопотоком. В стандартных обработках обнаружен ряд моментов, через которые регистратор мог отказать в печати чека, проигнорировать строку или просто зависнуть.
В создании данной обработки благодарен ребятам из поста 376254

Работает на платформе 1С не ниже 8.3.7

Конфигурации: Розница 1.0, Управление торговлей для Украины 2.0 (обычные формы)

Основной функционал:

  • - Удаление перед отправкой по http всех неподдерживаемых символов протоколом JSON

  • - Обязательная проверка результата успешной/неуспешной печати от РРО

  • - Возможность печати Z Отчет По Товарам

  • - Правильная печать чеков возврата

  • - Код товара в памяти РРО соответсвует коду товара в 1С (избегаем ошибку продажи одного товара а печати другого)

  • - Через структуру "СтруктураДопРеквизитов" в параметр "ЭтоПодакцизныйТовар" можем передавать признак акцизного товара и соответсвенно печатать акцизную ставку налога.

  • -Закомментирована функция "Вывод" в процедуре "ПечататьСтроку", существенно ускоряет процесс печати чека, выводит на экран только итоговую информацию о чеке без построчного вывода.

Особенности установки:

Для того, чтобы передать в обработку параметры Кода товара, признак акциза необходимо доработать обработку конфигурации "ТОСервер".

Процедура "ПечатьЧека". У меня имеет следующий вид:

Функция ПечатьЧека(Идентификатор, НомерЧека, НомерСмены,
                   ОписаниеЧека, СуммаНал, СуммаБезнал, ПризнакВозврата) Экспорт

	Обработка = Неопределено;
	Объект    = Неопределено;
	Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект);
	
	/// +
	СтруктураДопРеквизитов = Новый Структура("ЭтоПодакцизныйТовар, Код");
	/// -
	
	// Проверим использование кода
	фИспользоватьКод = Объект.Параметры.Свойство("ИспользоватьКод");

	Если НЕ ЗначениеЗаполнено(Результат) Тогда
		Результат = Обработка.ОткрытьЧек(Объект, "", ПризнакВозврата, НомерЧека, НомерСмены, Истина);
		Если НЕ ЗначениеЗаполнено(Результат) Тогда
			Позиция = Неопределено;
			Для Каждого Позиция Из ОписаниеЧека Цикл
				ЗначениеСкидки = Позиция.Количество * Позиция.Цена * Позиция.Скидка * 0.01;
				СуммаСоСкидкой1С = Окр(Позиция.Количество * Позиция.Цена - ЗначениеСкидки, 2);
				СуммаСоСкидкойФР = Окр(Позиция.Количество * Позиция.Цена - Окр(ЗначениеСкидки, 2), 2);

				Объект.Параметры.Вставить("Весовой", Позиция.Весовой);
				/// +
				Объект.Параметры.Вставить("Код", Позиция.Код);
				СтруктураДопРеквизитов.ЭтоПодакцизныйТовар = Позиция.ЭтоПодакцизныйТовар;
				/// -
				
				СтруктураДопРеквизитов.СтавкаНДССтрокой = Позиция.СтавкаНДССтрокой;
					СтруктураДопРеквизитов.ЭтоПодакцизныйТовар = Позиция.ЭтоПодакцизныйТовар;
					СтруктураДопРеквизитов.Код = Позиция.Код;
				
				Если СуммаСоСкидкой1С = СуммаСоСкидкойФР Тогда
					 текКоличество = Позиция.Количество;
					 текЦена = Позиция.Цена;
					 текСкидка = Позиция.Скидка;
				Иначе
					 текКоличество = 1;
					 текЦена = СуммаСоСкидкой1С;
					 текСкидка = 0;
				КонецЕсли;

				Если фИспользоватьКод Тогда
					Результат = Обработка.ПечататьСтроку(Объект,
													 Позиция.Наименование,
													 текКоличество,
													 текЦена,
													 текСкидка,
													 Позиция.НомерСекции,
													 Позиция.СтавкаНДС, 
													 Позиция.Код);
				Иначе
					Результат = Обработка.ПечататьСтроку(Объект,
													 Позиция.Наименование,
													 Позиция.Количество,
													 Позиция.Цена,
													 Позиция.Скидка,
													 Позиция.НомерСекции,
													 Позиция.СтавкаНДС);
				КонецЕсли; 
				
				Если ЗначениеЗаполнено(Результат) Тогда
					Прервать;
				КонецЕсли;
			КонецЦикла;

			Если НЕ ЗначениеЗаполнено(Результат) Тогда
				Результат = Обработка.ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал);
			КонецЕсли;
		КонецЕсли;
		
		мОписаниеОшибки = Объект.ОписаниеОшибки;
	Иначе
		мОписаниеОшибки = ПолучитьТекстОшибкиПодключенияТО("ФР");
	КонецЕсли;

	Возврат Результат;

КонецФункции // ПечатьЧека()

Передаете в обработку или в виде Объект.Параметры, или СтруктураДопРеквизитов код товара. Код товара должен содержать только цифры, без буквенных значений. Данный код будет записываться в качестве кода товара в память РРО.

С помощью параметра ЭтоПодакцизныйТовар, можно управлять формированием отдельной налоговой ставки для подакцизных товаров. Для этого сделайте X-отчет на РРО, проверьте на какой ставке Центр сервисного обслуживания установил налоговые ставки для подакцизных товаров и пропишите их в процедуре "ПечататьСтроку" самой обработки.

	// Расчет акциза
	Если СтруктураДопРеквизитов <> Неопределено Тогда
		Попытка
			Если СтруктураДопРеквизитов.ЭтоПодакцизныйТовар = Истина Тогда
			НалоговаяГруппа = 2; // ставка Б		
			КонецЕсли;	
		Исключение
		КонецПопытки;
	КонецЕсли;

 

MG N707TS торговое оборудование фискальный регистратор

См. также

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 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

4800 руб.

27.02.2017    763313    4673    9495    

2781

Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, Розница 2.х, УНФ, ERP 2.х, БП 3, БГУ2

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Бухгалтерский учет Оперативный учет Управляемые формы 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    116013    980    564    

827

54-ФЗ. Очередь печати для ККМ. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 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    316674    1844    3008    

994

Обработка 1С для печати чеков на кассе ККТ АТОЛ.ОНЛАЙН

ККМ Платформа 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С РеализацияТоваров (РасходнаяНакладная), КорректировкаРеализации, СчетНаОплату, ЗаказКлиента, ЧекККМ, ПоступлениеНаРС. Соответствует требованиям 54-ФЗ. Одна облачная касса может использоваться всеми подразделениями организации, без привязки к рабочим местам. Электронные чеки отправляются на email клиента и всегда доступны в 1С, по требованию можно распечатать. Легкая настройка: после регистрации кассы на сайте АТОЛ.ОНЛАЙН, в обработке необходимо указать логин, пароль и идентификатор группы ККТ (берутся в личном кабинете АТОЛ.ОНЛАЙН). Одну кассу можно использовать с 1С при расчетах с физ. и юр. лицами и для интернет-магазина. HTTPS протокол интеграции API v4 / ФФД 1.05 или API v5 / ФФД 1.2.

21600 руб.

23.08.2022    10555    27    4    

22

Обмен между 1С:Розница и Frontol 6 по организациям (Розница - Фронтол)

ККМ Розничная торговля Платформа 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    78258    389    475    

161

UTM Proxy для УТМ ЕГАИС (или как не пропустить дубль алкогольной марки и недостачу на кассе + Контроль МРЦ)

Розничная торговля ККМ Обмен с ГосИС Розничная и сетевая торговля (FMCG) Россия Акцизы Платные (руб)

Что такое УТМ прокси? УТМ прокси - это универсальное программное обеспечение для борьбы с дублями марок алкогольной продукции при розничной продажи. Данное программное обеспечение - это своего рода "прокладка" между кассовым ПО и УТМ ЕГАИС. UTM Proxy работает с любыми кассами, вот некоторые из них: miniPOS, рабочие места кассиров в конфигурациях 1С (в том числе и базовые версии), Фронтол и другие...

2400 руб.

16.11.2016    49304    472    60    

24

Пробитие чека ККМ с разных складов через РМК в УТ 11

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

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

5880 руб.

12.04.2023    7892    26    2    

23

Разбитие чека ККМ по группам товаров и пробитие их на разных кассах, подключенных к одному рабочему месту. Расширение для УТ 11.5, УТ 11.4, КА 2.5

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

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

5880 руб.

22.08.2022    10053    13    15    

17
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 02.06.18 06:16
Сообщение было скрыто модератором.
...
2. пользователь 02.06.18 17:32
Сообщение было скрыто модератором.
...
3. пользователь 02.06.18 17:59
Сообщение было скрыто модератором.
...
4. hadjieff 21.01.20 16:31 Сейчас в теме
5. vovkpro 29.02.20 22:23 Сейчас в теме
Добрый день. У меня на счету нет 2 стартмани. Мне нужна эта обработка, потому что по стандартной чек на возврат (при возврате с оплатой банк картой (эквайринг)) не выходит из ФР и в Х отчете нет возврата хотя в 1С он проводится и при открытии есть сообщение: Чек пробит. Как я могу получить эту обработку? Спасибо. 1С УТП для Украины.
6. otanais 02.03.20 13:05 Сейчас в теме
Добрый день! Аналогично предыдущему комментарию. Стартмани нет, а обработка нужна. Со стандартной обработкой (MG-http-v2.epf) другая проблема - при печати чека по какой-то причине некоторые цены пересчитываются и в чеке появляется скидка/наценка. В логах видно, что передается цена, отличная от переданной. Как я могу получить эту обработку? Спасибо. 1С УТП для Украины
7. vovkpro 02.03.20 17:35 Сейчас в теме
Добрый день. Кто нибудь тестировал данную обработку на Управление торговым предприятием для Украины?
8. vovkpro 02.03.20 18:28 Сейчас в теме
В Управление торговым предприятием для Украины при пробытии чека появляется ошибка в Функции Печататьстроку(.....) в строке Код = Объект.Параметры.НоменклатураСсылка.Код По причине нет реквизита (или параметра) НоменклатураСсылка. При проведении возврата при оплате банк картой(эквайринг) (не знаю как при других видах оплаты) ошибка возможны расхождения .... чек не выходит
9. michael2006 1 03.03.20 10:56 Сейчас в теме
(8) Сейчас уточню про ошибку в обработке. Возможно для контроля кодировки товаров в Сервере ТО доделан функционал передачи в обработку ссылки на Номенклатуру. Я ставил много таких РРО, Код товара желательно задавать из 1С в память РРО не не давать РРО самостоятельно нумеровать товары в рамках открытой смены. Иначе может возникнуть ситуация когда вы продаете один товар а в чеке печатается совершенно другой.
10. michael2006 1 03.03.20 13:00 Сейчас в теме
(8) Добавил коментарий в пост. Необходимо доработать ТОСервер для передачи в обработку печати кода товара. РРО должен получить код товара для записи в память.
11. vovkpro 03.03.20 16:09 Сейчас в теме
Вот Процедура ПечатьЧека из моей 1с УТП для Украины 1.2.56.2
как я понял мне надо добавить строки с комментариями /// + ..... /// -
Прикрепляю обработку СерверТО
надежда только на Вас.
Три дня как поставили ФР
Пробовал другие обработки.
Из Последних ошибок При пробытии чека с типом оплаты Эквайринг Ошибка точно не помню примерно Невозможно дать сдачу.... Хотя до этого 15 таких чеков пробилось без проблем...
Спасибо.

Функция ПечатьЧека(Идентификатор, Пароль, НомерЧека, НомерСмены,
                ОписаниеЧека, СуммаНал, СуммаБезнал, ПризнакВозврата) Экспорт

	Обработка = Неопределено;
	Объект    = Неопределено;
	СтруктураДопРеквизитов = Новый Структура("СтавкаНДССтрокой, ЭтоПодакцизныйТовар");
	Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект);
	
	Если Результат = мОшибкаНеизвестно Тогда
		Возврат Результат;
	КонецЕсли;	

	// Проверим использование кода
	фИспользоватьКод = Объект.Параметры.Свойство("ИспользоватьКод");
	
	Если НЕ ЗначениеЗаполнено(Результат) Тогда
		Результат = Обработка.ОткрытьЧек(Объект, Пароль, ПризнакВозврата, НомерЧека, НомерСмены, Истина);
		ЭтоНоваяВерсия = (ПолучитьВерсиюAPIОбработкиОбслуживания(Обработка) >= 2.9);
		Если НЕ ЗначениеЗаполнено(Результат) Тогда
			Позиция = Неопределено;
			Для Каждого Позиция Из ОписаниеЧека Цикл
				
				Если ЭтоНоваяВерсия Тогда
					
					СтруктураДопРеквизитов.СтавкаНДССтрокой = Позиция.СтавкаНДССтрокой;
					СтруктураДопРеквизитов.ЭтоПодакцизныйТовар = Позиция.ЭтоПодакцизныйТовар;
					
					Результат = Обработка.ПечататьСтроку(Объект,
													 Позиция.Наименование,
													 Позиция.Количество,
													 Позиция.Цена,
													 Позиция.Скидка,
													 Позиция.НомерСекции,
													 Позиция.СтавкаНДС,
													 СтруктураДопРеквизитов);
					
				Иначе
					ЗначениеСкидки = Позиция.Количество * Позиция.Цена * Позиция.Скидка * 0.01;
					СуммаСоСкидкой1С = Окр(Позиция.Количество * Позиция.Цена - ЗначениеСкидки, 2);
					СуммаСоСкидкойФР = Окр(Позиция.Количество * Позиция.Цена - Окр(ЗначениеСкидки, 2), 2);

					Если СуммаСоСкидкой1С = СуммаСоСкидкойФР Тогда
						Если фИспользоватьКод Тогда
							Результат = Обработка.ПечататьСтроку(Объект,
														 Позиция.Наименование,
														 Позиция.Количество,
														 Позиция.Цена,
														 Позиция.Скидка,
														 Позиция.НомерСекции,
														 Позиция.СтавкаНДС,
														 Позиция.Код);
						Иначе
							Результат = Обработка.ПечататьСтроку(Объект,
														 Позиция.Наименование,
														 Позиция.Количество,
														 Позиция.Цена,
														 Позиция.Скидка,
														 Позиция.НомерСекции,
														 Позиция.СтавкаНДС);
						КонецЕсли;
					Иначе
						Если фИспользоватьКод Тогда
							Результат = Обработка.ПечататьСтроку(Объект,
													   Позиция.Наименование,
													   1,
													   СуммаСоСкидкой1С,
													   0,
													   Позиция.НомерСекции,
													   Позиция.СтавкаНДС,
													   Позиция.Код);

						Иначе
							Результат = Обработка.ПечататьСтроку(Объект,
													   Позиция.Наименование,
													   1,
													   СуммаСоСкидкой1С,
													   0,
													   Позиция.НомерСекции,
													   Позиция.СтавкаНДС);
						КонецЕсли;
					КонецЕсли;
				
				КонецЕсли;

				Если ЗначениеЗаполнено(Результат) Тогда
					Прервать;
				КонецЕсли;
			КонецЦикла;

			Если НЕ ЗначениеЗаполнено(Результат) Тогда
				Результат = Обработка.ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал);
			КонецЕсли;
		КонецЕсли;

		мОписаниеОшибки = Объект.ОписаниеОшибки;
	Иначе
		мОписаниеОшибки = ПолучитьТекстОшибкиПодключенияТО("ФР");
	КонецЕсли;

	Возврат Результат;

КонецФункции // ПечатьЧека()
Показать
Прикрепленные файлы:
ТОСервер.epf
12. michael2006 1 03.03.20 18:10 Сейчас в теме
(11)
ошибок

Разберемся, поможем. смотрю обработку вашу.
13. vovkpro 04.03.20 11:21 Сейчас в теме
У меня к этой 1с подключен еще 1 ФР Мини ФП 6. С ним проблем нет. Если исправим обработку ТОСервер на его работе это не скажется? Спасибо.
14. michael2006 1 04.03.20 14:56 Сейчас в теме
(13) Добрый день. Не скажется. Дописано так, что добавляются только доп параметры. У нас также к одной конфигурации подключен зоопарк разных РРО.
15. vovkpro 04.03.20 15:05 Сейчас в теме
Извините я не совсем понял. Что мне надо сейчас сделать чтобы ФР нормально заработал?
16. vovkpro 04.03.20 15:51 Сейчас в теме
Мне надо в своей конфигурации в обработке ТОСервер заменить функцию ПечатьЧека(....) на ту что выше в публикации? И на ФР поставить отправленную мне на почту обработку?
17. michael2006 1 04.03.20 17:13 Сейчас в теме
(16) Верно. Вам надо только добавить пару строчек в функцию сервера ТО. Те, которые обрамлены ///+ и ///-
18. vovkpro 04.03.20 18:22 Сейчас в теме
Наверное придется мне снимать конфигурацию с обслуживания.... Но я готов на это только чтобы нормально работал ФР. Функция ПечатьЧека, которую Вы выложили выше, где обрамили знаками ///+ и ///- нужные мне изменения существенно отличается от функции ПечатьЧека из обработки ТОСервер моей конфигурации . Свою функцию я тоже выложил выше. Я хотел попросить Вас чтобы Вы показали на моей функции ПечатьЧека куда мне вставить нужные строки. Спасибо. Извините.
19. vovkpro 04.03.20 18:28 Сейчас в теме
Ок я увидел сообщение перезвоню
Оставьте свое сообщение