IE2017

Подключение фискального регистратора MG-T808TL (на базе Toshiba) и MG-P800TL (на базе POSNET)

Оборудование - Фискальный регистратор

На сегодня существует большое множество фискальной техники. И для удобства как пользователей, так и программистов 1С выкладываю свои наработки по еще одному фискальному аппарату, собранному на базе Toshiba модель MG808TL. Добавлена возможность работы с еще одним аппаратом MG-P800TL (подробнее о аппарате: http://gera-service.com.ua/products/9/663/ ) По MG N707TS задаем свои вопросы не связанные с RS232 соединением тут: http://infostart.ru/public/376254/ Добавил обработку обслуживания для подключения торгового оборудования

Решил поделиться с миром наработкой в 1С для фискального принтера (РРО) (ЭККА).
Не судите строго, выполнено в виде консоли для подключения и демонстрации работы с 1С.

Добавил обработку  для подключения торгового оборудования через ДОБАВИТЬ драйвер в разделе торговое оборудовние.

Интерфейс собрал в себя все необходимые функции для повседневной работы с фискальным аппаратом и рекомендуется для более быстрого и удачного согласования с 1С 8.2 (8.3) или 7.7 в Ваших проектах или на базе существующего.

Для регистрации драйвера в системе необходимо скопировать исполняющий exe файл в любое удобное место на компьютере, где ожидается запуск 1С. После чего он доступен для вызова под именем MGT808TL.FiscalPrinter


Кроме всего прочего позволяет печатать:

- штрих код чека EAN-128,

- штрих-код в чеке EAN-13,

- произвольный штрихкод в чеке EAN-13,

штрихкод товара в чеке EAN-13,

- загружать в аппарат логотип (только Ч/Б монохромный .BMP)

Добавили возможность запрашивать время до блокировки аппарата. (см. скрин)

Как известно аппарат должен работать без передачи данных в налоговую не более 72 часов, иначе должен заблокироваться! 

Для этого необходимо обновить и драйвер MGT808TL Driver for 1C !

С 9.02.2016 добавлен новый версии 1.0.0.5 - если у Вас стрый OLE  - обновите до 1.0.0.5 !

Перерегистрация драйвера :
1) Запустить MGT808TL.exe c праметром -u и правами администратора

2) Запустить MGT808TL.exe с правами администратора

Все с Обновленным OLE можно работать.

Добавил обработку обслуживания для подключения торгового оборудования.

Огромное спасибо ВСЕМ КТО ПОМОГ , участвовал в создании этой обработки. (Перечислять ВСЕХ не буду , но Ивано-Франковск - реально классный город).

Пример инициализации на VBS:

Set fp = CreateObject("MGT808TL.FiscalPrinter")

Всем удачи...

Если появятся вопросы и пожелания по доработке, милости просим - пишите.

Появилась возможность работы с MG-P800TL (на базе POSNET) задаем вопросы по его работе...

По MG N707TS задаем свои вопросы, не связанные с RS232 соединением, тут: //infostart.ru/public/376254/

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

Наименование Файл Версия Размер
MGT808TL Driver for 1C
.exe 128,00Kb
14.04.17
3
.exe 1.0.0.5 128,00Kb 3 Скачать
Обработка подключения торгового оборудования 1C 8.x.x MG707, MG777, MG787, MG800, MG808
.epf 22,65Kb
14.04.17
1
.epf 22,65Kb 1 Скачать
1c-v8.2 - BlockTime
.epf 39,43Kb
14.04.17
9
.epf 1.10 39,43Kb 9 Скачать
1c-7.7
.ert 283,50Kb
14.04.17
10
.ert 1.0.01 283,50Kb 10 Скачать
Описание методов OLE объекта
.pdf 115,94Kb
14.04.17
3
.pdf ReadME.pdf 115,94Kb 3 Скачать

См. также

Комментарии
1. Evgeny K (mar_a) 17 08.06.15 10:58 Сейчас в теме
Буду благодарен за найденные ошибки, неточности и разумеется пожелания по улучшению.
2. Дмитрий Елисеев (w-divin) 10.06.15 14:59 Сейчас в теме
а умеет работать с сетевым MG N707TS? весь найденный мною софт для 707 (и на оф. сайте и у дилеров) ссылается на 808...
3. Evgeny K (mar_a) 17 10.06.15 17:00 Сейчас в теме
Да умеет , если будут проблемы (а они будут). то обращайтесь

Протокол обмена у этих Аппаратов один и тот-же.

То обратите внимание , на то что Длинна строки товаров разная !
Второе кол-во строк на индикаторе 16 , а не 20 как 808 !
По разномуу называются ТИПЫ оплат.

Если эти и еще некоторые нюансы учесть то получим одновременную работу на 2х аппаратах и 707 и 808.
4. Evgeny K (mar_a) 17 10.06.15 17:02 Сейчас в теме
Сейчас напишем демонстрацию работы с 1С через HTTP (JSON).
Если будут вопросы и рекомендации пишите пока состряпаем бету версию.
Заранее спасибо.
5. Evgeny K (mar_a) 17 10.06.15 18:12 Сейчас в теме
(2) w-divin, Да умеет , если будут проблемы (а они будут). то обращайтесь
6. Андрей Выставной (andrvyst) 12.06.15 16:48 Сейчас в теме
Огромное спасибо за обработку. Вместе с описанием OLE сервера позволила легко написать обработку обслуживания для розницы.

Но есть ситуация с округлением в скидке. Подскажите пожалуйста.
Например, 1с насчитывает скидку в 0,46 копеек. Аппарат считает скидку в 0,47 коп.
Сумма чека в 1с = 27,09. Аппарат, соответственно, оплачивает сумму в 27,08., готивкой = 27,09 и сдача 0,01
Скидка в %
Использую Объект.Драйвер.GiveDiscount(Скидка,0,0,"Знижка:");

Может подскажите по каким правилам округляет аппарат? Потому как в документации о правилах округления ни слова.
Или может я чего делаю не так.

7. Evgeny K (mar_a) 17 15.06.15 12:37 Сейчас в теме
(6) andrvyst,
0,46 копеек = 1копейка ? Передается число ЦЕЛЫХ копеек.
Будьте так любезны округлить ЛЮБЫМ известным ВАМ методом, с отбрасыванием или математическим округлением до целого числа копеек.
И все будет ОБИ-ОК.

Теперь перефразирую ВОПРОС , т.к. он был неправильно задан:
(Поправте если что не так)
Был товар на сумму 27.55 грн (27грн 55коп)
Хочу Выполнить абсолютную скидку в 46копеек (0,46грн)
Теперь ответ:
Создал - в своей конфигурации и пробиваю одну позицию на 27.55 грн со скидкой в 46копеек
В результате Сумма 27,09 грн
Закрываю ее подрасчет и Готiвкою 27.09грн
Сдача =0.00

Ошибок нет , проверил на своем тестовом аппарате.
Если появляется ошибка прошу привести код посылки.
Ради теста выводим через Сообщить все параметры передваемые в аппарат , суммы, скидки и т.д.
Я думаю что-то банальное...
8. Strawberry (Strawberry) 18.06.15 08:31 Сейчас в теме
1C 7.7
ЭККР=СоздатьОбъект("MGT808TL.FiscalPrinter");
ЭККР.Connect(Порт,Скорость);
ЭККР.GetXReport();

GetXReport: Ошибка протокола обмена.
Получаем ошибку метод не существует.
Вопросы:
1. При каких условиях работает GetXReport ??
2. Как можно получить номера а) последжнего чека продаж ; б) последнего чека возврата; в) последнего Z отчета
9. Evgeny K (mar_a) 17 18.06.15 10:55 Сейчас в теме
(8) Strawberry,
Причин может быть несколько:
-Нет бумаги,
-неправильно подключен (не тот порт или скорость).
-Время работы превышает 24 часа - это для любой команды пока не снимете Z отчет.
-Данный объект работает только в режиме чтения - следовательно что-то записать невозможно.

Судя по коду ...
как идет обращение к этой функции , мне интуитивно непонятно , а что ожидаете от этой комманды?
Например первое встреченное мною это получение количества чеков ЭККР.GetXReport().ChecksCount
Где в моем коде Вы такое( ЭККР.GetXReport(); ) встретили? Я исправлю...
-------------------------------------------
Количество чеков продаж соответствует ЭККР.GetXReport().ChecksCount т.е. последний распечатанный чек на сегодня.
Количество чеков возвратов соответствует ЭККР.GetXReport().RefundChecksCount
Количество Z отчетов в ЭККР.GetXReport() - несуществует!

Да добавил файл с ОПИСАНИЕ методов OLE объекта.
Увы незнаю как съделать его бесплатным.
10. Strawberry (Strawberry) 18.06.15 13:50 Сейчас в теме
(9) mar_a,
по Z отчету не количество а номер последнего как можно получить ??

киньте в личку описание и ert файлик


по поводу кода

//25 Получение информации о чеках продаж и выплат///////////////////////////////////////
Процедура ЧекИнфо()  
 Перем ПоследнийЧекПродажи,
 	   ПоследнийЧекВозврата;  
 	   
 	   ///Вся информация получается из GetXReport 
 	
         Xreport= ЭККР.GetXReport();
		  
 	//25.1 Получение последнего номера чека продажи///////////////////////////
	ПоследнийЧекПродажи = Число(Xreport.ChecksCount);
    Если (Результат() <> 0) Тогда
	 Сообщить ("--------------------------------------------------");	
	 Сообщить (СообщениеОбОшибке(),"!");
	 Сообщить ("Байт статуса    - "+ Строка(СтатусРегистратора()) + РазделительСтрок +
	 		   "Байт результата - "+ Строка(Результат()),"!");
	 Возврат;		   
	КонецЕсли;     	

  //25.2 Получение сумм продаж по всем чекам текущей смены///////////////////
     SumPayt=Xreport.SumByPayType;
	 
    СуммаПродажОпл1=Число(SumPayt.ByCard);
	СуммаПродажОпл2=Число(SumPayt.ByCredit); 
	СуммаПродажОпл3=Число(SumPayt.ByCheck);
	СуммаПродажОпл4=Число(SumPayt.ByCash); 
	
	SumTaxt=Xreport.SumByPayType;
	
	 СуммаПродажА=Число(SumTaxt.TaxTypeA);
	 СуммаПродажБ=Число(SumTaxt.TaxTypeB);
	 СуммаПродажВ=Число(SumTaxt.TaxTypeV);
	 СуммаПродажГ=Число(SumTaxt.TaxTypeG);
	 СуммаПродажД=Число(SumTaxt.TaxTypeD);
	 СуммаПродажЕ=Число(SumTaxt.TaxTypeE);
	
	СуммаПродажОпл = СуммаПродажОпл1+СуммаПродажОпл2+СуммаПродажОпл3+СуммаПродажО­пл4; 
	СуммаПродаж =  СуммаПродажА+СуммаПродажБ+СуммаПродажВ+СуммаПродажГ+СуммаПро­дажД+СуммаПродажЕ;  
	
	Если (СуммаПродаж<СуммаПродажОпл) Тогда СуммаПродаж=СуммаПродажОпл; КонецЕсли; 
	
    Если (Результат() <> 0) Тогда
	 Сообщить ("--------------------------------------------------");	
	
	 Возврат;		   
	КонецЕсли;     	

	//25.3 Получение последнего номера чека выплаты////////////////////////////
	ПоследнийЧекВозврата =  Число(Xreport.RefundChecksCount);
    Если (Результат() <> 0) Тогда
	
	 Возврат;		   
	КонецЕсли;     	

    //25.4 Получение сумм выплат по всем чекам текущей смены/////////////////// 
	
	 RefSumPayt=Xreport.RefundSumByPayType;
	 СуммаВозврА=Число(RefSumPayt.TaxTypeA);
	 СуммаВозврБ=Число(RefSumPayt.TaxTypeB);
	 СуммаВозврВ=Число(RefSumPayt.TaxTypeV);
	 СуммаВозврГ=Число(RefSumPayt.TaxTypeG);
	 СуммаВозврД=Число(RefSumPayt.TaxTypeD);
	 СуммаВозврЕ=Число(RefSumPayt.TaxTypeE);
	
	
	СуммаВыплат = СуммаВозврА+СуммаВозврБ+СуммаВозврВ+СуммаВозврГ+СуммаВозврД+­СуммаВозврЕ;
	
    Если (Результат() <> 0) Тогда
	 Сообщить ("--------------------------------------------------");	
	
	 Возврат;		   
    КонецЕсли;
	
	Предупреждение ("Номер последнего чека продажи: " + Число(ПоследнийЧекПродажи) + РазделительСтрок +
 	                "Сумма продаж составляет: " + СокрЛ(Формат(СуммаПродаж/100,"Ч12.2")) + " Грн." + РазделительСтрок +
 					"Номер последнего чека выплаты: " + Число(ПоследнийЧекВозврата) +РазделительСтрок +
 					"Сумма выплат составляет: " + СокрЛ(Формат(СуммаВыплат/100,"Ч12.2")) + " Грн.");	                                                     
КонецПроцедуры  
...Показать Скрыть
11. Evgeny K (mar_a) 17 18.06.15 14:20 Сейчас в теме
(10) Strawberry,
И я о том-же , временно поместил ЭККР.GetXReport(); в переменную Xreport, и никто к этой переменной не обращается на прямую.
Обращение ведется (смотрите ниже) например SumPayt=Xreport.SumByPayType; и в переменную SumPayt записано значение.Xreport.SumByPayType; но никак не ЭККР.GetXReport() (или Xreport.ChecksCount - которая интересует ВАС)
Странно но в моей 1С 7.7. конструкция вида ЭККР.GetXReport().SumByPayType неработала.
Поэтому пришлось прибегнуть к временной переменной (по сути объекту) Xreport.

Ошибок тут нет, я просто заострил на этом внимание.
Ну а если вытаскивать непосредственно ЭККР.GetXReport(); - то ничего не выйдет - объекта такого действительно не существует.
Существует Xreport.RefundChecksCount, Xreport.ChecksCount и т.д.


по Z отчету не количество а номер последнего как можно получить ??
Никак... нет такого в свойствах данного аппарата (косвенно только) или посмотреть в кассовой книге РРО.
Для чего ВАМ этот номер?
12. Strawberry (Strawberry) 18.06.15 15:56 Сейчас в теме
(11) mar_a,
Номер Z отчета храню в в доке 1С для проверки. Хм и так исторически сложилось что номер дока в РРО дублируется в 1С

Ок, вечером попробую переменную Xreport
13. Evgeny K (mar_a) 17 18.06.15 16:43 Сейчас в теме
(12) Strawberry, Увы - разработчики посчитали это ненужным.
Но есть например косвенные методы:
При снятии скажем Z отчета - можно вести сквозную нумерацию внутри 1С, (снял Z отчета - увеличил значение переменной на 1 и сохранил в каком-то поле БД). При следующем снятии опять добавил к существующему числу 1 и сохранил в БД.

Чаще людей интересует номер пакета в КЛЭФ который доступен в момент снятия Z отчета
NumberKLEF=ЭККР.PrintZReport(ОтчетыПароль);
Этот номер будет полезен в при печати скажем копии ленты от NumberKLEF_start до NumberKLEF_End
В функции PrintReportById
Сам-же номер Zотчета нигде в протоколе в явном виде более не фигурирует.
Чаще это действительно Номер КЛЭФ (NumberKLEF)
14. Strawberry (Strawberry) 18.06.15 17:00 Сейчас в теме
(13) mar_a,

В самом протоколе то оно есть, его нет в ОЛЕ сервере

вот документация

GetDayReport прочитать данные дневного отчета
Код: 42.
Параметры Размер Формат
таг нужных данных 1 бин
Данные Размер Формат
Нет параметров
счетчик чеков продаж 2 бин
счетчики продаж по налоговым группам и формам оплат 4*(6+10) бин
дневная наценка по продажам 4 бин
дневная скидка по продажам 4 бин
дневная сумма служебного вноса 4 бин
счетчик чеков выплат 2 бин
11
счетчики выплат по налоговым группам и формам оплат 4*(6+10) бин
дневная наценка по выплатам 4 бин
дневная скидка по выплатам 4 бин
дневная сумма служебной выдачи 4 бин
Таг 0
текущий номер Z-отчета 2 бин
счетчик чеков продаж 2 бин
счетчик чеков выплат 2 бин
дата конца смены в формате ДДММГГ 3 BCD
время конца смены в формате ЧЧММ 2 BCD
дата последнего дневного отчета в формате ДДММГГ 3 BCD
счетчик артикулов 2 бин
Таг 1
суммы налогов по налоговым группам для наложенного НДС 4*(6+6) бин
Таг 2
количество аннулированных чеков продаж 2 бин
количество аннулированных чеков выплат 2 бин
сумма аннулированных чеков продаж 4 бин
сумма аннулированных чеков выплат 4 бин
количество отказов продаж 2 бин
количество отказов выплат 2 бин
сумма отказов продаж 4 бин
сумма отказов выплат 4 бин


тег 0 содержит данные о текущем Z отчете
15. Evgeny K (mar_a) 17 18.06.15 17:07 Сейчас в теме
(14) Strawberry,
Я передам пожелание на доработку , думаю в понедельник обновить.
16. Strawberry (Strawberry) 18.06.15 18:53 Сейчас в теме
(15) mar_a,

Это лог
18:46:15.390 Connect - COM1 9600bps
18:46:15.390 -> (7) 10 02 00 00 00 10 03
18:46:15.578 <- (126) 10 02 00 00 00 00 20 20 45 49 43 33 30 38 30 30 31 34 39 20 32 34 2D 30 35 2D 31 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 90 85 F2 91 92 90 80 92 8E 90 20 4D 47 20 4E 37 30 37 54 53 0C 93 8A 90 80 F4 8D 80 20 32 30 31 34 18
18:46:15.578 data (116) 20 45 49 43 33 30 38 30 30 31 34 39 20 32 34 2D 30 35 2D 31 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 90 85 F2 91 92 90 80 92 8E 90 20 4D 47 20 4E 37 30 37 54 53 0C 93 8A 90 80 F4 8D 80 20 32 30 31 34 18 2A 2A 2A 2A 2A 2A
18:46:15.578 -> (7) 10 02 01 00 FF 10 03
18:46:15.765 <- (126) 10 02 01 00 00 00 20 20 45 49 43 33 30 38 30 30 31 34 39 20 32 34 2D 30 35 2D 31 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 90 85 F2 91 92 90 80 92 8E 90 20 4D 47 20 4E 37 30 37 54 53 0C 93 8A 90 80 F4 8D 80 20 32 30 31 34 18
18:46:15.765 data (116) 20 45 49 43 33 30 38 30 30 31 34 39 20 32 34 2D 30 35 2D 31 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 90 85 F2 91 92 90 80 92 8E 90 20 4D 47 20 4E 37 30 37 54 53 0C 93 8A 90 80 F4 8D 80 20 32 30 31 34 18 2A 2A 2A 2A 2A 2A
18:46:15.765 Connect - Ok
18:46:26.640 -> (7) 10 02 02 2A D4 10 03
18:46:26.843 <- (144) 10 02 02 2A 00 00 20 03 00 B8 C9 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B8 C9 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 30 D4
18:46:26.843 data (134) 03 00 B8 C9 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B8 C9 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 30 D4 05 00 00 00 00 00
18:46:26.843 GetXReport - Ошибка протокола обмена.


это то что хотелось
ЭККР=СоздатьОбъект("MGT808TL.FiscalPrinter");
ЭККР.Connect(Порт, СкоростьПорта );
Xreport= ЭККР.GetXReport();
ПоследнийЧекПродажи = Число(Xreport.ChecksCount);

1с отписала
Xreport= ЭККР.GetXReport();
{ХХХХХХХХХХХХХХХХХХХХХХХХ}: GetXReport: Ошибка протокола обмена.

пробовал под 8.2 метод тоже возвращает ошибку
18. Evgeny K (mar_a) 17 19.06.15 14:59 Сейчас в теме
(17) Strawberry, результат стабильный: не работает/
Неработает что?
И с каким аппартом?
С 808 - сам проверял - все в конфигурации работает для 1С 8.2 версия аппарата MG-08
И кстати драйвер я не видел что-б у меня вообще кто-то скачивал.
19. Strawberry (Strawberry) 19.06.15 16:15 Сейчас в теме
(18) mar_a,
аппарат MG N707TS
подключенный через сом порт
под Windows XP 1с 27 релиз
драйвер скачан с сайта производителя

неработает команда
Xreport= ЭККР.GetXReport();
{ХХХХХХХХХХХХХХХХХХХХХХХХ}: GetXReport: Ошибка протокола обмена.

см. посты выше там приведен лог оле сервера
20. Evgeny K (mar_a) 17 19.06.15 16:31 Сейчас в теме
(19) Strawberry,
Вы УВАЖАЕМЫЙ внимательнее прочтите 2 пункта.
1) Название темы (а именно MG808TL)
2) (3) Если эти и еще некоторые нюансы учесть то получим одновременную работу на 2х аппаратах и 707 и 808.

Во всех Ваших сообщениях небыло указано , что идет работа с 707!!!
3) Только пишем (4) под сетевое обращение к 707 , не под RS232 !!!

Действительно эта опция GetXReport() не работает в 707 аппарате.
Теперь стало все на свои места... (понятно зачем сбросили ЛОГ). Я в курсе про эти вещи!!!
21. Strawberry (Strawberry) 19.06.15 17:03 Сейчас в теме
(20) mar_a,
а будет ли решение для 707 для опции GetXReport() ??
22. Evgeny K (mar_a) 17 19.06.15 17:12 Сейчас в теме
(21) Strawberry, Давайте дождемся пока он (707) в серию выйдет.
Разработчик пока еще обкатывает пробную партию.
Надо будет исправить , конено-же. Пока такой инфы нет.
23. Евгений Сосна (pumbaE) 544 20.06.15 10:22 Сейчас в теме
(4) mar_a, а зачем пишите? Или вы официальный подрядчик?
24. Evgeny K (mar_a) 17 22.06.15 09:37 Сейчас в теме
(23) pumbaE, Зачем пишу ответы?
Мне задают вопросы - я отвечаю.

Почему 707 совместим только на 80% с 808 (Нюансы я уже писал, и дал намек что это(3) еще не все нюансы).
Совместимость пока на 80-90% , иначе я бы дал заглавие и 707 и 808.
Но над этим повторюсь люди работают.

Основной упор в 707 будет дан на сетевую (Ethernet) коммуникацию. Поэтому режим совместимости у этих двух аппаратов только по RS232 (СОМ-порту).
25. Евгений Сосна (pumbaE) 544 22.06.15 10:07 Сейчас в теме
(24) mar_a, я знаю про их совместимость. Меня в основном интересует вопрос "вы официальный подрядчик" по интеграции с 1с или нет. Я просто видел, заготовки кода для взаимодействия 1с и 707 по json с digest авторизацией и у меня возникли вопросы и пожелания разработчикам по этой обработке.
Хотелось бы донести им прям в уши.
26. Evgeny K (mar_a) 17 22.06.15 10:35 Сейчас в теме
(25) pumbaE, Хотите написать к разработчику железа?
Хотите высказатья - прошу в личку, я передам ВАШИ пожелания в уши разработчику железа.
27. Анатолий Далека (An79) 05.07.15 15:10 Сейчас в теме
День добрый!

Может кто здесь поможет...

Для аппарата MG808TL команды PrintXReport и PrintZReport с параметром пароля - 0 проходят на ура. А вот для аппарата MG N707TS выдает "Ошибка ЭККР 12: Неправильный пароль".

Пароль писал и "0", "0000", 0.

При том что остальные очеты (по артикулам и т.д.) с этим же паролем (0) печатаются нормально.

В чем может быть проблема, кто сталкивался?

Спасибо!
28. Владимир Тютюн (tyutyun) 27 05.07.15 19:38 Сейчас в теме
Поделитесь, пожалуйста готовой обработкой для работы этого РРО в "УТ для Украины".
29. Evgeny K (mar_a) 17 06.07.15 10:02 Сейчас в теме
(27) An79, Ну 100% OLE объект у меня не скачивали... (как предположение MGT808TL Driver for 1C). Заметьте именно OLE объект.
30. Evgeny K (mar_a) 17 06.07.15 10:08 Сейчас в теме
(28) tyutyun, А этого примера недостаточно, чтобы даже скопировать функции и вставить в нужное место?
Или есть подводные камни именно с УТ ?
31. Евгений Сосна (pumbaE) 544 06.07.15 11:55 Сейчас в теме
32. Evgeny K (mar_a) 17 07.07.15 14:12 Сейчас в теме
(31) pumbaE, Спасибо и от меня лично. Полезно ознакомится, т.к. никогда не писал под УТ, да и вообще наверное надо было делать обработку под универсальную конфигурацию?
Или неимеет смысла ? (поскольку их очень много и не факт, что вообще нужна будет под каждую стандартую обработку)
33. Евгений Сосна (pumbaE) 544 07.07.15 14:38 Сейчас в теме
(32) mar_a, имеет, по факту сейчас есть два стандарта для уф и не уф конфигураций. Данная обработка подойдет для УТП, УПП 1.3, Бухгалтерия, УТ 2.3 без всяких передолок, т.е. 80% конфигураций покрываете, для уф УТ 3.0 и УНФ немного по другому надо делать.
34. Strawberry (Strawberry) 09.07.15 14:18 Сейчас в теме
(27) An79, OLE брали с сайта разработчика. Там в архиве лежит два EXE файла один глюкавый - непечатает отчеты, второй нормальный. Стал на эти грабли у заказчика.
35. Evgeny K (mar_a) 17 09.07.15 14:42 Сейчас в теме
(34)Где архив ? Я сегодня только выложил exe файл, без архива... Версия должна быть 1.0.0.3
Последняя версия более стабильно работает на различных СОМ портах (вне зависимости родной СОМ порт материнки или внешний расширитель портов или RS 2 USB переходник).
36. Станислав Романенко (stas_roman) 25.07.15 12:55 Сейчас в теме
Я извиняюсь, но как тут скачать?
37. Tiger77 (Tiger77) 66 10.11.15 14:17 Сейчас в теме
Подскажите печатаем чек на MG N707TS через COM-порт.

На некоторые товары в SetArticle получаем ошибку "Неправильное описание артикула". Попробовали ограничить длину артикула до 35 символов, ошибка стала появляться намного реже, но все равно есть. В названии каких-то спецсимволов не обнаружено.

С чем это может быть связано, что смотреть ?

38. Evgeny K (mar_a) 17 11.11.15 12:57 Сейчас в теме
(37) Tiger77,
На некоторые товары ? Какие именно?
Чем больше информации тем мне проще понять!
-----------------------------
Читаю мысли удаленно (такой опции нет).
-----------------------------
Неправильное описание артикула - это ответ СТАРОГО OLE драйвера ... не говорит о том , что ошибка именно в описании товара.

Попробовали ограничить длину артикула до 35 символов

Я свободно пробивал товары и в 50 символов !!! Ошибка явно не там.

С чем это может быть связано, что смотреть ?

Так хочется ответить в рифму...
Но я сегодня в хорошем настроении поэтому отвечу так:
Необходим ЛОГ если это было через мой драйвер (а его скачал только 1 чел и это УВЫ не Вы).
Что посылалось , с какими налоговыми ставками, был ли на этом месте ранее другой товар , сколько чеков было (тонкий намек что стопор происходит на 7...8 чеках), переключили ли аппарат в RS-232 протокол (пунк по середине , а не верхний!!!) и т.п.

Кстати не писал о этом, но версия драйвера давно обновлена с 1.0.0.3 до 1.0.0.4

Слишком мало информации для рекомендации...
39. Андрей Выставной (andrvyst) 18.11.15 18:54 Сейчас в теме
mar_a,
Подскажите пожалуйста как бороться со следующей ситуацией.
Использую драйвер 1.0.0.4 На некоторые товары (например, Активіа Біфідойогурт питний 1,5% пет 290г полун-су ) регистратор выдает ошибку "Ошибка ЭККР 28: ошибка в описании артикула.". Следующие чеки не пробиваются - помогает только закрытие смены. После закрытия, этот же чек, который не пробивался, пробивается без ошибок.
__
В принципе вопрос решен. Ошибка возникает если в течении смены менялось наименование(например, Хаеб на Хлеб). Нельзя ли в следующей версии Ole-драйвера пофиксить это?
Спасибо.
40. Evgeny K (mar_a) 17 23.11.15 12:40 Сейчас в теме
(39) andrvyst, Это не трабл - это требование налоговой.
Привидите пример в каком аппарате такое сработает?
Первая продажа - записывает товар с кодом в аппарат под кодом с которым он продавался (считайте индентификатор - это и есть код товара).
Изменение названия , цены, налога - приводит к изменению артикульной таблицы !!!
Собственно для этого необходимо использовать другой код товара - их в аппарате предостаточно.
На основании этих артикулов - можно выполнить отчет по проданным товаров из аппарата.

Хотя отвечу на вопрос ВАШИМИ дословно словами
Ошибка возникает если в течении смены менялось наименование(например, Хаеб на Хлеб). Нельзя
в течении открытой смены.
После снятия отчетов (закрытия смены) таблица артикулов разблокируется и работает в режиме динамического программирования.
41. Андрей Выставной (andrvyst) 23.11.15 15:06 Сейчас в теме
(40) mar_a,
На аппарате Datecs FP-3530T(работаем на них 5 лет) у нас таких траблов не возникает( таблица артикулов аппарата хранится на компьютере к которому подключен аппарат в dbf файле)
Я понимаю, что так задумано и что требования налоговой такие. К сожалению, наименования номенклатуры у нас меняются(требования налоговой опять таки, подбивается наименование к наименованию поставщика).

Буду благодарен за найденные ошибки, неточности и разумеется пожелания по улучшению.


SetTime - строка в формате HH:MM:SS. В Вашей консоли, если переводить время до 10:00:00, время будет в формате H:MM:SS

В любом случае, спасибо Вам за ответ.
42. Evgeny K (mar_a) 17 23.11.15 16:17 Сейчас в теме
(41) andrvyst,
На аппарате Datecs FP-3530T(работаем на них 5 лет) у нас таких траблов не возникает( таблица артикулов аппарата хранится на компьютере к которому подключен аппарат в dbf файле)

Никто не запрещал с первого раза пробивать товар с ПРАВИЛЬНЫМ названием...
Может таблица соответствий ?
Тогда это не только у Датексов , и у Марий (Резонанс) и др. производителей. Но все-таки правильнее не давать под одним и тем-же номером пробивать два разных товара.
Иначе этот аппарат не мог пройти серификацию ЧЕСТНО. Исходя из вышесказанного товар под кодом 1 можно пробить Водка а потом исправить на Мороженное (акцизный и неакцизный товар) под тем-же кодом - то аппарат абсолютно адекватно выдаст чек в обоих случаях (без снятия Z отчета)?
Ситуация номер 2: Комп подвис и надо выполнить отчет по товарам за текущую смену, но поскольку у ВАС таблица артикулов лежит на компе (а комп просто висит или умер) то снять этот отчет не представляется возможным (что нарушает правила налоговой)?

SetTime - строка в формате HH:MM:SS. В Вашей консоли, если переводить время до 10:00:00, время будет в формате H:MM:SS

Время передается для 808 как и в 707 в формате 09:12:00 (09 часов утра 12 минут 00 сек.) - это если смотреть напрямую через порт.
В OLE объект с помощью обработки передается действительно 9:12:00 причем в самом поле форме даже если указать 09:12:00 тут-же после нажатия кнопки передается 9:12:00 (проверил путем вывода переменной непосредственно) замечу что формат ставил ДФЛ=T .
Это связанно скорее всего с тем что я не профи в 1С и работы с типами переменных в 1С.
Через VBS время передается в правильном формате , если посылать именно 09:12:00
Поэтому честно БЛАГОДАРЮ - мой глюк.(за мое незнание).
Как поставить формат принудительно HH:MM:SS именно в 1С ?
43. Андрей Выставной (andrvyst) 23.11.15 17:10 Сейчас в теме
(42) mar_a,
Исходя из вышесказанного товар под кодом 1 можно пробить Водка а потом исправить на Мороженное (акцизный и неакцизный товар) под тем-же кодом - то аппарат абсолютно адекватно выдаст чек в обоих случаях (без снятия Z отчета)?

Без снятия Z-отчета не выйдет. В общем ладно, буду выкручиваться по-другому)

Как поставить формат принудительно HH:MM:SS именно в 1С ?

Я сделал конкатенацией
	
        Время 	        = Формат('00010101100000', "ДФ=HHmmss");    //10:00:00
	ТекВремя  	= Формат(ТекущаяДата(), "ДФ=HHmmss");
	
	Если ТекВремя < Время Тогда
		ТекВремя = "0"+Час(ТекущаяДата())+":"+Минута(ТекущаяДата())+":"+Секунда(ТекущаяДата());
	КонецЕсли; 

	ЭККР.SetTime(ТекВремя); 
...Показать Скрыть
44. Evgeny K (mar_a) 17 23.11.15 17:48 Сейчас в теме
(43) andrvyst,
Без снятия Z-отчета не выйдет. В общем ладно, буду выкручиваться по-другому)

По другому только кодТовара + 1 где кодТовара это обычный счетчик который постоянно в рамках ОТКРЫТОЙ рабочей смены будет прибавляться до 8000
Ну уж 8000 товаров за 1 смену точно не успеете пробить ;)
Потом Z отчет ну и новый день опять считаем от 1 до 8000.

По поводу конкатенации - это на костыль похоже, а не на стандартный метод.
Но спасибо , я б тоже так подтавил опору...
45. Андрей Выставной (andrvyst) 23.11.15 17:59 Сейчас в теме
По другому только кодТовара + 1 где кодТовара это обычный счетчик который постоянно в рамках ОТКРЫТОЙ рабочей смены будет прибавляться до 8000

Спасибо огромное за идею!

По поводу конкатенации - это на костыль похоже, а не на стандартный метод.

Конечно костыль. В 4 утра только костыли и получаются
Спасибо Вам
46. Evgeny K (mar_a) 17 23.11.15 18:15 Сейчас в теме
(45) andrvyst, Я вобщето так не рекомендую делать но если ВЫ ничего более путного не можете придумать, то ...
47. Tiger77 (Tiger77) 66 23.11.15 20:13 Сейчас в теме
(38) Проблема оказалась не в 1С и не в драйвере. Проблема в прошивке кассового аппарата - он выдавал ошибку на 8-м по счету артикуле с начала дня.
48. Evgeny K (mar_a) 17 24.11.15 10:23 Сейчас в теме
(47) Tiger77, И это даже не прошивка...
Сам с таким столкнулся, аппарат был подготовлен для работы по HTTP протоколу, а там другая разметка артикульной таблицы.
Я ВАМ намекал на это
сколько чеков было (тонкий намек что стопор происходит на 7...8 чеках), переключили ли аппарат в RS-232 протокол

Но Вы упорно не хотели давать полную информацию о ошибке...
Да проще переразметить область памяти, ну при перепрошивке это происходит автоматически. (Кстати убирается большее количество глюков).
49. Andrey Rusyn (nems) 27.11.15 19:11 Сейчас в теме
(6) andrvyst,
та же проблема, подскажите как установить скидку на товар метод Объект.Драйвер.GiveDiscount(Скидка,0,0,"Знижка:") не срабатывает,
может это быть связано с тем что регистратор не фискализирован.
вот лог работы:

2015-11-27 18:02:07,986 INFO Driver - >> Size = 7 $ 10 02 01 00 ff 10 03
2015-11-27 18:02:08,154 INFO Driver - << Size = 128 $ 06 10 02 01 00 00 00 60 62 05 49 43 33 30 38 30 30 36 35 36 20 30 31 2d 30 37 2d 31 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 14 90 85 f2 91 92 90 80 92 8e 90 20 4d 47 20 4e 37 30 37 54 53 0c 93 8a 90 80 f4 8d 80 20 32 30 31 34 18 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0f 8f 8d 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 4d 47 2d 30 37 f3 10 03
2015-11-27 18:02:08,288 INFO Driver - >> Size = 11 $ 10 02 02 32 00 00 00 00 cc 10 03
2015-11-27 18:02:08,332 INFO Driver - << Size = 21 $ 06 10 02 02 32 00 00 60 08 83 8e 92 49 82 8a 8e 9e 40 10 03
2015-11-27 18:02:08,490 INFO Driver - >> Size = 11 $ 10 02 03 32 00 00 01 00 ca 10 03
2015-11-27 18:02:08,527 INFO Driver - << Size = 18 $ 06 10 02 03 32 00 00 60 05 97 85 8a 8e 8c a6 10 03
2015-11-27 18:02:08,692 INFO Driver - >> Size = 11 $ 10 02 04 32 00 00 02 00 c8 10 03
2015-11-27 18:02:08,730 INFO Driver - << Size = 19 $ 06 10 02 04 32 00 00 60 06 8a 90 85 84 88 92 27 10 03
2015-11-27 18:02:08,894 INFO Driver - >> Size = 11 $ 10 02 05 32 00 00 03 00 c6 10 03
2015-11-27 18:02:08,933 INFO Driver - << Size = 20 $ 06 10 02 05 32 00 00 60 07 8a 80 90 92 8a 8e 9e 80 10 03
2015-11-27 18:02:09,094 INFO Driver - >> Size = 11 $ 10 02 06 32 00 00 04 00 c4 10 03
2015-11-27 18:02:09,139 INFO Driver - << Size = 25 $ 06 10 02 06 32 00 00 60 0c 8d 85 20 82 88 87 8d 80 97 85 8d 8e 55 10 03
2015-11-27 18:02:09,295 INFO Driver - >> Size = 11 $ 10 02 07 32 00 00 05 00 c2 10 03
2015-11-27 18:02:09,343 INFO Driver - << Size = 25 $ 06 10 02 07 32 00 00 60 0c 8d 85 20 82 88 87 8d 80 97 85 8d 8e 54 10 03
2015-11-27 18:02:09,497 INFO Driver - >> Size = 11 $ 10 02 08 32 00 00 06 00 c0 10 03
2015-11-27 18:02:09,545 INFO Driver - << Size = 25 $ 06 10 02 08 32 00 00 60 0c 8d 85 20 82 88 87 8d 80 97 85 8d 8e 53 10 03
2015-11-27 18:02:09,699 INFO Driver - >> Size = 11 $ 10 02 09 32 00 00 07 00 be 10 03
2015-11-27 18:02:09,746 INFO Driver - << Size = 25 $ 06 10 02 09 32 00 00 60 0c 8d 85 20 82 88 87 8d 80 97 85 8d 8e 52 10 03
2015-11-27 18:02:09,901 INFO Driver - >> Size = 11 $ 10 02 0a 32 00 00 08 00 bc 10 03
2015-11-27 18:02:09,948 INFO Driver - << Size = 25 $ 06 10 02 0a 32 00 00 60 0c 8d 85 20 82 88 87 8d 80 97 85 8d 8e 51 10 03
2015-11-27 18:02:10,102 INFO Driver - >> Size = 11 $ 10 02 0b 32 00 00 09 00 ba 10 03
2015-11-27 18:02:10,143 INFO Driver - << Size = 25 $ 06 10 02 0b 32 00 00 60 0c 8d 85 20 82 88 87 8d 80 97 85 8d 8e 50 10 03
2015-11-27 18:02:14,108 INFO Driver - >> Size = 7 $ 10 02 0c 0f e5 10 03
2015-11-27 18:02:14,179 INFO Driver - << Size = 12 $ 06 10 02 0c 0f 00 00 20 c5 10 03
50. Evgeny K (mar_a) 17 30.11.15 11:50 Сейчас в теме
(49) nems, Скидка ставиться 100 раз проверено.
Пошагово как передаем цену на товар , как передем скидку , абсолютную или относительную?
То что ВЫ выслали (лог) пока не нужен, т.к. с работой и скидками ошибок нет.
Ошибка в том что ВЫ посылаете.
Напишите пошагам и ВАМ сразу станет ясно где ошибка.
1) Передаем SAle Название товара , код и т.д.
2) Скидка - ее значение
и .т.д.
51. Andrey Rusyn (nems) 01.12.15 13:57 Сейчас в теме
Ра(50) mar_a, разобрался со скидкой, возникла проблема с печатью из терминальной сессии - очень долго идет проведение и иногда чек не пробивается (остается открытым)
52. Evgeny K (mar_a) 17 27.01.16 14:47 Сейчас в теме
(51) nems, Это чудно что разобрались. А по поводу терминальной сессии - согласитесь это не из-за аппарата.
И кстати выпустили для таких нужд сетевой Фискальный регистратор MG707 ( http://infostart.ru/public/376254/ ) который работает по TCP|IP.
53. Сергей Суриков (Sergey_S) 25.02.16 17:49 Сейчас в теме
Здравствуйте!
Поставили задачу обеспечить печать чеков на регистраторе, но столкнулся с проблемой, может по неопытности, потому попрошу сильно ногами не бить.
Регистратор MG N707TS
RS232
драйвер версии 1.0.0.4
среда разработки VS2010
-----------
Фрагмент кода:
'1. Создаю объект
Dim TotalSumma As Long
Dim fp As New MGT808TL.FiscalPrinter
'2. Подключаюсь
fp.Connect("COM3", 9600)
'3. Регистрируем продажу стоимость 1700,00 грн
TotalSumma = fp.SaleArticle("101", 1, 170000, FPTaxType.fpttD, "Товар № 1")
...Показать Скрыть

--------
Значение переменной TotalSumma при просмотре = 170
В документации написано, что должна возвращаться рассчитанная стоимость в копейках, а тут значение в 1000 раз меньше. Подскажите в чём может быть причина
Спасибо.

54. Evgeny K (mar_a) 17 02.03.16 14:29 Сейчас в теме
(53) Sergey_S, Количество 0,001шт ? Это нормально ?
Или я не вижу что-бы передавался разряд степени кол-ва. (См. документацию по команде SaleArticle )
на скорую руку слепил скрипт на VBS для демонстрации .

com_port = InputBox("Введите Номер порта:",,com)
com_port ="COM"&com_port
' устанавливаю связь к объекту
	Set fp = CreateObject("MGT808TL.FiscalPrinter") 
	fp.Connect com_port, 9600


'Строка продажи товара
code = 142
'Кол-во 1 кг !
count = 1000
'Цена в копейках !!!
price = 1733
Name= "Товар Цена"
'Налог А
fpttA=&h80    
TotalSum = fp.SaleArticle ( code, count, price, fpttA, Name )

MsgBox ("TotalSum = "&CStr(TotalSum))

fp.CommentCheck ""&code&" "&count&" "&price&" "&Name&" "&fpttA

'Оплата подрасчет
fp.PayCheck
...Показать Скрыть


Все работает отдает в моем случае 1733.
С Вашими данными (кстати хоть Д налог активный? Невижу что там за параметр!)
55. Сергей Суриков (Sergey_S) 02.03.16 20:41 Сейчас в теме
(54) mar_a, Вчера я заподозрил, что дело в количестве (у меня не весовой товар, а услуги) потому добавил параметр разрядности количества CountFormat=128 (0-знаков после запятой) и получил правильное значение:
TotalSumma = fp.SaleArticle(101, 1, 170000, FPTaxType.fpttD, "Товар № 1", 128)


Спасибо за ответ!

56. vadim ttv ttv (vahate) 25.05.16 18:24 Сейчас в теме
очень надо сделать 1С Розница 2.2 (Россия) + IKC_C651T MZ11 (http://ics-market.com.ua/ru/oborudovanie/fiskalnoe-oborudovanie/fiskalnye-registratory/321-fiskalnie-registratori/1940-fiskalnyj-registrator-ikc-c651t#dopolnitelno). Это я к автору публикации, не нашёл имейл личных данных.
57. Evgeny K (mar_a) 17 26.05.16 15:30 Сейчас в теме
(56) vahate, ПЕРВОЕ - Вы темой ошиблись...
Ну а ВТОРОЕ - там есть обработка у них на сайте. Правда не под Росссию , а
ТРЕТЬЕ данные кассовые аппараты не под Россиию!!!
И тот что на сайте тоже...


И так у ВАС 3 -нет прощайте.
Оставьте свое сообщение