Долго искал как подключить Атол 30Ф к 7.7 через драйвер версии 10. Все, что находил, было платно либо не понять, как использовать. В итоге решил сделать бесплатный шаблон.
1. Качаем драйвер Атола с их сайта и устанавливаем.
2. В папке с установленным драйвером находим addin_fptr10_x86.dll и регистрируем его через regsvr32
3. Берем и встраиваем в Вашу программу шаблон.
Драйвер успешно работает на WindowsXP Home SP3.
Перем FR
Процедура ОтветДрайвера(КомандаККМ)
Result=FR.errorCode();
ОшибкаПараметра=FR.errorDescription();
Сообщить("Ответ "+Result+" Ошибка "+ОшибкаПараметра);
КонецПроцедуры
Процедура ПодключениеККМ()
FR = СоздатьОбъект("AddIn.Fptr10");
//LIBFPTR_MODEL_ATOL_AUTO
FR.setSingleSetting(FR.LIBFPTR_SETTING_MODEL, строка(FR.LIBFPTR_MODEL_ATOL_30F));
FR.setSingleSetting(FR.LIBFPTR_SETTING_PORT, строка(FR.LIBFPTR_PORT_COM));
FR.setSingleSetting(FR.LIBFPTR_SETTING_COM_FILE, 1); //"COM"
FR.applySingleSettings();
Если FR.open()<>0 тогда //Соединение с ККТ
ОтветДрайвера("Подключение ККМ");
СтатусВозврата(0);
возврат;
КонецЕсли;
//Запрос параметров
FR.setParam(FR.LIBFPTR_PARAM_DATA_TYPE, FR.LIBFPTR_DT_STATUS);
FR.queryData();
НомерКассира = FR.getParamInt(FR.LIBFPTR_PARAM_OPERATOR_ID);
состояниеСмены = FR.getParamInt(FR.LIBFPTR_PARAM_SHIFT_STATE);
ДатаВремя = FR.getParamInt(FR.LIBFPTR_PARAM_DATE_TIME);
РежимККТ = FR.getParamInt(FR.LIBFPTR_PARAM_MODE);
ПодрежимККТ = FR.getParamInt(FR.LIBFPTR_PARAM_SUBMODE);
НомерЧека = FR.getParamInt(FR.LIBFPTR_PARAM_RECEIPT_NUMBER);
НомерДокумента = FR.getParamInt(FR.LIBFPTR_PARAM_DOCUMENT_NUMBER);
FR.setParam(1021, СокрЛП(Пользователь));
FR.operatorLogin();
FR.openShift(); //Открыть смену
FR.checkDocumentClosed();
ОтветДрайвера("Подключение ККМ");
КонецПроцедуры
Процедура РаботаККМ()
//Открыть чек
FR.setParam(1021, СокрЛП(Пользователь));
FR.operatorLogin();
Если ВозвратныйЧек=1 Тогда
FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_TYPE, FR.LIBFPTR_RT_SELL_RETURN);
Иначе
FR.setParam(FR.LIBFPTR_PARAM_RECEIPT_TYPE, FR.LIBFPTR_RT_SELL);
КонецЕсли;
FR.openReceipt();
//Продажа
FR.setParam(FR.LIBFPTR_PARAM_COMMODITY_NAME, ЛЕв(Имя,20));
FR.setParam(FR.LIBFPTR_PARAM_PRICE, ЦенаПродажи);
FR.setParam(FR.LIBFPTR_PARAM_QUANTITY, Колич);
FR.setParam(FR.LIBFPTR_PARAM_TAX_TYPE, FR.LIBFPTR_TAX_NO );
Если ПустоеЗначение(Маркировка)=0 Тогда
FR.setParam(1162, СокрЛП(Маркировка));
КонецЕсли;
Если FR.registration() <> 0 тогда
ОтветДрайвера("Продажа");
Возврат;
КонецЕсли;
//Закрыть чек
Если ВозвратныйЧек=0 Тогда
//Оплата
FR.setParam(FR.LIBFPTR_PARAM_PAYMENT_TYPE, FR.LIBFPTR_PT_CASH);
FR.setParam(FR.LIBFPTR_PARAM_PAYMENT_SUM, СуммаВКассу);
FR.payment();
КонецЕсли;
FR.closeReceipt();
//Z-отчет
FR.setParam(1021, СокрЛП(Пользователь));
//fptr.setParam(1203, '123456789047');
FR.operatorLogin();
FR.setParam(FR.LIBFPTR_PARAM_REPORT_TYPE, FR.LIBFPTR_RT_CLOSE_SHIFT);
FR.report();
FR.checkDocumentClosed();
//X-отчет
FR.setParam(1021, СокрЛП(Пользователь));
//fptr.setParam(1203, '123456789047');
FR.operatorLogin();
FR.setParam(FR.LIBFPTR_PARAM_REPORT_TYPE, FR.LIBFPTR_RT_X);
FR.report();
//открыть ящик
FR.openDrawer();
КонецПроцедуры
Все подробности о методах можно прочитать в документации к драйверу, примеры нужно смотреть для "делфи" с поправкой на синтаксис 1С 7.7
Во вложенном файле то же самое, это для тех, кто хочет отблагодарить.
Как же вовремя статья. Как раз накануне искал как 10-й драйвер Атола подключить. Однозначно плюс
Есть инфа 100%, что 10й драйвер не нужен, точнее нужен не всегда. Я могу кое-что не так сейчас написать, т.к. не автор драйверов, и это все гипотеза.
Сам поддерживаю 1С7.7 ТиС, который давно не обновлябелен. Цель мероприятия по установке 10ого драйвера в том, чтобы данные в ОФД приходили в новом формате, который не реализован в 8ом драйвере.
Драйвер Атол состоит из 2ух частей: драйвер и служба обмена с ОФД. Драйвер шлет команды в ККМ, а служба шлет данные в ОФД.
Драйвер позволяет работаьь в двух режимах: отправлять в XML формате целиком готовый документ в ККМ или последовательно посылать команды (открыть чек, продать товар 1, продать товар 2, установить скидку, закрыть чек, закрыть смену и т.д.)
В каждой версии драйверов своя dll`ка, для работы через объектную модель и объектная модель собственно разная. Т.е. не просто от версии к версии добавляются новые реквизиты и методы, а они в корне меняются. Обратной совместимости нет. Поэтому автор статьи изучил новую систему команд и реализовал её в 1Сном коде.
После обновления прошивки в ККМ (её делали те, кто обслуживают ККМ) на новый формат, служба EoU стала писать нонстопом ошибку. Видимо, из-за нового формата. Делать нечего, решил что надо ставить 10й драйвер и что-то кодить самому.
Я начал читать документацию по новой системе команд, новой компоненты. Но очень быстро, лень победила и я начал думать. И вот что придумал:
1. Я установил обе версии драйверов
2. Служба EoF запущено от 10й версии
3. COM объект юзаю старый от 8й
4. Обработка торгового оборудования осталась прежней
что нельзя:
нельзя выбить на ККМ новые операции т.к. в 8ом драйвере нет нужных свойств и методов. Всяки авансы, оплаты по банку от физ.лиц…
но в моем случае это и не надо
мне надо:
открыл смену
выбил чек наличными Nраз
закрыл смену
все работает, в офд уходит
При работе на 8й версии АТОЛ работает и отправляет, но неверно отправляет ставку НДС, они сменили порядок ставок.
Хорошо быстро обнаружили
Добрый день! Подскажите пожалуйста по связке 7.7 ТИС и АТОЛ 10?
В Вашем варианте какую dll указывать в настройках торгового оборудования?
(2) Вы не правы, ДТО8 поддерживает все новые теги, не хуже чем ДТО10.
http://infostart.ru/public/603118/
Готовое решение по ссылке
Вариант работает с новыми тегами, которые становятся обязательными с 1 июля?
Прошу подсказать :
Тис 9.2 передает в ПечатьЧЕк() списокТоваров (ТаблицаЗначенй)
Данный код работает — все ок!!!
но мне надо добавить цикл что бы печатать товары ,
подскажите как ?
сделал :
Печатаеться один товар только …..
Установил версию 10.5.0.0 ДТО
запускаю на win 7
Показать
получаю ошибку:
Ошибка при создании объекта из компоненты C:1C estaddin_fptr10_x86.dll (отсутствует интерфейс IInitDone)
можете выложить вашу версию драйвера addin_fptr10_x86.dll ?
( 8) Добрый день, подскажите — удалось ли подключить ФР? отсутствует интерфейс IInitDone Именно такую ошибку получаю
В настройках указывайте старую длл: FprnM1C.dll. В AddIn — Fptr10
(7) в цикл добавить регистрацию строки Объект.registration();
(11)
Вот весь мой код :
Показать
(12)
Показать
(8) (9) получилось подключить?
FprnM1C.dll — указывал и AddIn — Fptr10
ошибка все равно одна и та же — «Служба Frontol не запущена.»…
Готовое решение с поддержкой ДТО8 и ДТО10 по ссылкеhttp://expert.chistov.pro/public/603118/
1с 7.7 торговля, драйвер 10.5.0, касса по усб. С локального компа на скульной базе печатает влёт. Через РДП касса подключается, видна через параметры и проверку связи, но на печать не выдает ничего: на команду .open() — возвращает «-1» и ошибку «Порт недоступен». В чем может быть затык?.. дрова одинаковые возвращает .version() = 10.5.0.0 в обоих случаях. длл-ки лежат в in, зарегены.. делаю без установки параметров .applySingleSettings()..
(17) а если указать какой порт подключать, то печатает и с сервера… Вопрос: как программно получить настройку в 7ке порта ККМ из параметров?
еще ситуация: ГТД и код страны передан в ККТ, в ОФД данные по чеку появились, а на самом чеке этих данных нет.. Лог кассы без ошибок. Это Атол 25Ф. При этом 22птк в тестовых режимах печатал всё.
(19) вопрос снят
(8)(9)(14)
Долго маялся с «addin_fptr10_x86.dll (отсутствует интерфейс IInitDone)»
Потом дошло, ее не надо пытаться подключить как ВК, достаточно зарегистрировать через regsvr32,
и обращаться к объекту «FR = СоздатьОбъект(«AddIn.Fptr10»); «
) о том и речь была
(5) О прекращении поддержки драйверов «АТОЛ: Драйвер ККТ с передачей данных в ОФД (54-ФЗ), 8.x» и «АТОЛ: Драйвер ККТ с передачей данных в ОФД (54-ФЗ), 9.x»
http://1c.ru/news/info.jsp?id=25026
О переходе на ДККТ 10 и прекращении развития и поддержки ДККТ 8 и 9
https://www.atol.ru/company/news/o-perekhode-na-dkkt-10-i-prekrashchenii-razvitiya-i-podderzhki-dkkt-8-i-9-/
Стандартные драйвера подружить не удалось, пришлось делать COM обертку…https://infostart.ru/public/1102431/