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

03.03.20

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
Обработка печати фискального регистратора MG N707TS по http (TCP/IP) протоколу JSON, +фильтры. Обычные формы:
.epf 28,46Kb
0
0
2 SM
Скачать Купить за 2 150 руб.

Пришлось подключать данный регистратор к точке с довольно интенсивным клиентопотоком. В стандартных обработках обнаружен ряд моментов, через которые регистратор мог отказать в печати чека, проигнорировать строку или просто зависнуть.
В создании данной обработки благодарен ребятам из поста 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 торговое оборудование фискальный регистратор

См. также

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

2816

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

174

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

171

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

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

4800 руб.

31.07.2017    168350    577    605    

199

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

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

5880 руб.

12.04.2023    8587    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    11371    28    4    

26
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 Сейчас в теме
Ок я увидел сообщение перезвоню
Оставьте свое сообщение