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

03.03.20

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Обработка печати фискального регистратора 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С:Бухгалтерия автономного учреждения Россия Платные (руб)

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

6000 руб.

27.02.2017    809962    5149    9752    

2931

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

4000 руб.

25.05.2015    340759    2000    3115    

1060

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

194

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

193

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

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

5880 руб.

12.04.2023    10596    62    3    

47

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

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

6000 руб.

31.07.2017    173790    600    609    

208

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

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

4560 руб.

07.08.2018    77563    504    355    

365

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

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

5880 руб.

22.08.2022    11689    31    17    

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