Работа с драйвером "Атол v.10" через COM Объект для 1С: 8.3

10.07.20

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

Компания АТОЛ стала выпускать кассы с платформой 5.0. Залить старую платформу невозможно. Новая платформа работает с драйвером 10-й версии и выше. Для нетиповой конфигурации пришлось переписывать работу с ККТ, т.к. ранее работали на 8-м драйвере.

Скачать исходный код

Наименование Файл Версия Размер
Внешняя обработка для работы с драйвером «Атол v.10» через COM Объект для 1с 8.3:
.epf 7,38Kb
69
.epf 1.0 7,38Kb 69 Скачать

Проверял на 32х разрядных системах. Платформа 8.3.15.1830

1) сносим старый драйвер

2) устанавливаем драйвер 10й версии https://www.atol.ru/company/service-support/dkkt10-platforma5/ . Все библиотеки должны прописаться в системе самостоятельно.

3) пробуем подключиться и снять Х-отчет.

Создаем COM Объект:

                fptr = Новый COMобъект("AddIn.Fptr10");

Передаем параметр и подключаемся к кассе:
Либо как подключение по USB:

                fptr.setSingleSetting(fptr.LIBFPTR_SETTING_PORT, Строка(fptr.LIBFPTR_PORT_USB));

                fptr.applySingleSettings();

Либо как подключение по COM:

                fptr.setSingleSetting(fptr.LIBFPTR_SETTING_MODEL, Строка(fptr.LIBFPTR_MODEL_ATOL_AUTO));

                fptr.setSingleSetting(fptr.LIBFPTR_SETTING_PORT, Строка(fptr.LIBFPTR_PORT_COM));

                fptr.setSingleSetting(fptr.LIBFPTR_SETTING_COM_FILE, "COM16");

                fptr.setSingleSetting(fptr.LIBFPTR_SETTING_BAUDRATE, Строка(fptr.LIBFPTR_PORT_BR_115200));

                fptr.applySingleSettings();

Далее открываем соединение с кассой:

              fptr.open();

Делаем нужные запросы (подробно о всех методах http://integration.atol.ru/api/) :

                fptr.setParam(fptr.LIBFPTR_PARAM_REPORT_TYPE, fptr.LIBFPTR_RT_X);

                Ответ=fptr.report();

Закрываем соединение:

                 fptr.close();

Пример обработки с Х-отчетом, Z-Отчетом, пробитием чека прихода и возвратом прихода во вложении.

Подключение АТОЛ драйвер 10 пример пробить чек

См. также

ККТ-ОНЛАЙН 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

6000 руб.

27.02.2017    770424    4697    9504    

2795

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    320473    1853    3014    

998

Обмен между 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    79358    405    476    

169

Обработка 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    10781    27    4    

24

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

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

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

5880 руб.

12.04.2023    8077    30    2    

25

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

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

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

5880 руб.

22.08.2022    10157    15    15    

19

Сервер ККМ (54-ФЗ, быстрая печать чеков из терминального сеанса, печать с нескольких ПК)

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Платные (руб)

"Сервер ККМ" позволяет приложениям работать с фискальными регистраторами из терминального сеанса Windows по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест. Поддержка драйверов Атол, Штрих и VikiPrint. Поддержка 54-ФЗ. Поддержка ФФД 1.2. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ, 1С:Розница 1/2, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП

3000 руб.

02.09.2016    132949    126    191    

166

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

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

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

4800 руб.

31.07.2017    165844    565    604    

197
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Akuji 22 15.07.20 11:03 Сейчас в теме
Работа с маркировкой там есть?
2. Vil1983 21 15.07.20 15:20 Сейчас в теме
(1) Нет, но можно добавить. Методы все описаны:

Для разбора кода маркировки, полученного от сканера, необходимо вызвать метод parseMarkingCode() и указать в параметре LIBFPTR_PARAM_MARKING_CODE значение штрихкода. Если передаётся марки ЕГАИС 2.0 или ЕГАИС 3.0, это нужно указать в параметре LIBFPTR_PARAM_MARKING_CODE_TYPE. Он принимает следующие значения:

LIBFPTR_MCT_EGAIS_20 - ЕГАИС 2.0
LIBFPTR_MCT_EGAIS_30 - ЕГАИС 3.0
LIBFPTR_MCT_OTHER - другая марка, кроме перечисленных выше
Сформированное значение реквизита 1162 будет записано в параметр 1162.
24. pqt 30.07.22 09:51 Сейчас в теме
3. fixin 4253 01.05.21 15:43 Сейчас в теме
Спасибо, очень помогло, когда переводил нетиповую с ДТО8 на ДТО10.
4. silverr 14 18.05.21 17:50 Сейчас в теме
Доброго времени суток!
Как определяется (задается) номер порта при подключении по USB? Какой вариант подключения производительней - очень много чеков?
5. Vil1983 21 18.05.21 20:12 Сейчас в теме
(4) при подключении по USB, если касса одна то автоматом... если несколько то надо думать.

Какой вариант подключения производительней - Не сравнивал, но предполагаю что USB будет производительней.
6. silverr 14 18.05.21 21:55 Сейчас в теме
7. Karollo 19.05.21 10:57 Сейчас в теме
Для УТ 10.3.47.3 сделал обработку с выбором типа подключения, по USB или по COM(порт выбрать можно).
Печать копии чека из Чек ККМ, Приходный кассовый ордер, Оплата платёжной картой.
Но к сожалению работает только под обычными интерфейсами. Под интерфейсом кассира не печатает ничего, не могу понять, где получить подключение драйвера. В РМК соединение держит постоянно сама конфигурация.
Прикрепленные файлы:
8. Vil1983 21 19.05.21 11:47 Сейчас в теме
(7)
лучить подключение драйв

Если честно не понимаю чем отличается "обычный интерфейс" от "интерфейса кассира" может в вашей обработке важно какой клиент работает? тонкий или толстый? (хотя вряд ли в этом дело) Скорей, наверное, проблема в правах... Но это не точно)
12. Karollo 19.05.21 20:40 Сейчас в теме
(8) В УТ 10.3 есть интерфейс Интерфейс кассира. Из него недоступны основные документы, справочники, отчёты. Он только для торговли, продажа, возврат. И когда с этим интерфейсом входит пользователь, то срабатывает процедура которая держит соединение с драйвером ККТ.
В интерфейсе, к примеру Полный, там не держит соединение, так как нет обращения к драйверу ККТ. Поэтому тут обработка срабатывает, потому что она создаёт объект драйвера, и выполняет команды самого драйвера.
Права тут не причём.
13. Vil1983 21 20.05.21 09:43 Сейчас в теме
(12) ну яб предложил переписать ту часть кода которая держит соединение... А так, не знаю, надо что то придумывать глядя на код.
9. silverr 14 19.05.21 11:57 Сейчас в теме
Доброго времени суток!
Не подскажете синтаксис команды установки ставки НДС на позицию (не на чек). В старом 8-шном варианте выглядело так:

Если СписокТоваров.НДС = 20 Тогда
Объект.Department = 3;
Объект.TaxTypeNumber = 3;
10. silverr 14 19.05.21 12:19 Сейчас в теме
(9)И еще, как получить длину наименования данного аппарата? В старом варианте было:

ДлинаНаименования = Объект.ДлинаСтрокиСимволов;
11. Vil1983 21 19.05.21 14:10 Сейчас в теме
(9)
Я думаю на все вопросы вы найдете ответ в документации http://integration.atol.ru/api
Например по налогу поищите LIBFPTR_PARAM_TAX_TYPE в "операции с чеками" Все остальные возможности там перечислены.
20. alexlug95 11.01.22 08:58 Сейчас в теме
Чеки коррекции были реализованы на 8 драйвере?
21. Vil1983 21 11.01.22 10:14 Сейчас в теме
(20) я не занимался разработкой взаимодействия 1с с 8ым драйвером, так что не знаю.
14. k770888 14.08.21 06:26 Сейчас в теме
Василий день добрый. А вы не сталкивались с чеками коррекции прихода в атоле 10.
Есть задача сделать обработку. из реестра в экселе взять данные и через драйвер или напрямую на ккт создавать чеки коррекции и отправлять на ккт, с последующей распечаткой. Вы не могли бы помочь с решением такой задачи.
15. Vil1983 21 16.08.21 09:26 Сейчас в теме
(14) Ну не вижу особо проблем, чек коррекции аналогичен обычным чекам, только с другими параметрами. Помочь могу, но в чем мой профит?)
16. guglion 1 29.09.21 12:16 Сейчас в теме
(9) Чек продаж содержит цикл перебора списка товаров, в конце исполняется регистрация покупки. Можно прямо перед регистрацией покупки вставить код, где переменная ECR - это объект драйвера ККМ:

Если Налог = "Без НДС" Тогда
ECR.setParam(ECR.LIBFPTR_PARAM_TAX_TYPE, ECR.LIBFPTR_TAX_NO);
КонецЕсли;
Если Налог = "НДС 18%" Тогда
ECR.setParam(ECR.LIBFPTR_PARAM_TAX_TYPE, ECR.LIBFPTR_TAX_VAT18);
КонецЕсли;
Если Налог = "НДС 10%" Тогда
ECR.setParam(ECR.LIBFPTR_PARAM_TAX_TYPE, ECR.LIBFPTR_TAX_VAT10);
КонецЕсли;
Если Налог = "НДС расчитанный 18/118" Тогда
ECR.setParam(ECR.LIBFPTR_PARAM_TAX_TYPE, ECR.LIBFPTR_TAX_VAT118)
КонецЕсли;
Если Налог = "НДС расчитанный 10/110" Тогда
ECR.setParam(ECR.LIBFPTR_PARAM_TAX_TYPE, ECR.LIBFPTR_TAX_VAT110) ;
КонецЕсли;
Если Налог = "НДС 0%" Тогда
ECR.setParam(ECR.LIBFPTR_PARAM_TAX_TYPE, ECR.LIBFPTR_TAX_VAT0) ;
КонецЕсли;
Если Налог = "НДС 20%" Тогда
ECR.setParam(ECR.LIBFPTR_PARAM_TAX_TYPE, ECR.LIBFPTR_TAX_VAT20);
КонецЕсли;
Если Налог = "НДС расчитанный 20/120" Тогда
ECR.setParam(ECR.LIBFPTR_PARAM_TAX_TYPE, ECR.LIBFPTR_TAX_VAT120);
КонецЕсли;

Лесенку из Если и КонецЕсли, которую я условно написал, можно потом красивее сделать - мне просто кажется так понятнее

И уж после вставки строки налога, строку можно зарегистрировать:

ECR.registration();
Если Результат <> 0 Тогда
ОшибкаККМ=Истина;
сообщить("Ошибка ККМ : " + ECR.errorCode() + " " + ECR.errorDescription(), СтатусСообщения.Важное);
КонецЕсли;
17. Vil1983 21 29.09.21 14:42 Сейчас в теме
(16) НДС у разных позиций может отличаться. Например у молока НДС 10%, а у пива 20%. Определять налог заранее имеет смысл только если известно что ставка не измена для всех позиций в организации.
19. guglion 1 30.09.21 03:26 Сейчас в теме
(17) Конечно, верно согласен. Параметр Налог - это просто переменная.

Например Список - это список товаров Документа ЧекПродаж

Для Каждого ТекСтрокаСписок Из Список Цикл

Налог = ТекСтрокаСписок.Товар.СтавкаНДС.Наименование;

.....

КонецЦикла;

И вот так можно в одном чеке разные ставки налога на каждую позицию товаров регистрировать. Надо сказать что 10 драйвер Атол в этом плане лучше - в 6 или 8 драйверах нужно было использовать ECR.TaxTypeNumber = 6 - что означало выбрать из таблицы ККМ налогов нужный, беда в том что я встречал ККМ где эти таблицы прошиты по разному. И выходит, что на одной ККМ нужно выбирать 6 позицию, а на стоящей рядом 0. Это просто беда.
18. guglion 1 30.09.21 03:22 Сейчас в теме
Конечно, верно согласен. Параметр Налог - это просто переменная.

Например Список - это список товаров Документа ЧекПродаж

Для Каждого ТекСтрокаСписок Из Список Цикл

                       Налог = ТекСтрокаСписок.Товар.СтавкаНДС.Наименование;

                       .....

КонецЦикла;


И вот так можно в одном чеке разные ставки налога на каждую позицию товаров регистрировать. Надо сказать что 10 драйвер Атол в этом плане лучше - в 6 или 8 драйверах нужно было использовать ECR.TaxTypeNumber = 6 - что означало выбрать из таблицы ККМ налогов нужный, беда в том что я встречал ККМ где эти таблицы прошиты по разному. И выходит, что на одной ККМ нужно выбирать 6 позицию, а на стоящей рядом 0. Это просто беда.
22. jurgal1C 29.01.22 14:28 Сейчас в теме
есть несколько магазинов с кассами, работают через rdp, к кассам подключение через IP по впн (через com порт по RDP все мега медленно). Один из этих магазинов подключен через Yota, и периодически связь пропадает. Когда 1с с сервера пытается подключиться к кассе этого магазина в момент потери связи, все зависает на Драйвер.open(); (в вашем варианте fptr.open();) . У других тоже все блокируется, т.к. этот сеанс блокирует драйвер.
Вопрос: есть ли какой-нибудь параметр , который надо передать в драйвер перед open() , чтобы ограничить время попытки выполнения open(), т.е. например передал Limit=5, значит если не получилось в течении 5 секунд подключиться, то освобождаем драйвер и выдаем исключение?
23. Vil1983 21 29.01.22 15:03 Сейчас в теме
(22) Ссылка на документацию есть в посте. Там описаны все методы. В вашем случае яб попробовал перед открытием соединения, сперва закрывать старое (неважно есть оно или нет). Думаю это решило бы проблему.
25. srt2020 10.03.23 09:03 Сейчас в теме
А как узнать процесс регистрации чека прошел успешно, или была какая-то ошибка (например чек бумажный не отпечатался)?
26. Vil1983 21 10.03.23 10:14 Сейчас в теме
(25) Все методы и ответы от оборудования описаны тут: http://integration.atol.ru/api/
Если касса что то возвращает, то можно это обработать. Если не возвращает ничего, то обрабатывать нечего. Но конкретно с чеками, обратная связь была описана в мануале АТОЛа
27. RustIG 1619 09.11.23 09:02 Сейчас в теме
(0) Добрый день!
Можно ли тестировать Атоловский драйвер ККМ без самого ККМ?
Есть ли какой тестовый режим у драйвера?
Аппарата нет, а запрограммировать функционал надо.
28. Vil1983 21 09.11.23 09:45 Сейчас в теме
(27) Добрый, я работал с аппаратом, попробуйте найти какой то эмулятор устройства, может есть где...
29. RustIG 1619 11.11.23 21:09 Сейчас в теме
(28) спасибо за идею, пока отложу вопрос
30. slava_d2000 20.04.24 13:56 Сейчас в теме
Добрый день.
а есть кто ни будь кто разливное пиво проверял ?

FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_TYPE, FR.LIBFPTR_MCT12_AUTO);
FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE, "0104607053473544215EYZU1" + Символ(29) + "93ywXU");
FR.setParam(FR.LIBFPTR_PARAM_MARKING_CODE_STATUS, FR.LIBFPTR_MES_DRY_FOR_SALE);
FR.setParam(FR.LIBFPTR_PARAM_MEASUREMENT_UNIT, FR.LIBFPTR_IU_LITER);
FR.setParam(FR.LIBFPTR_PARAM_MARKING_PROCESSING_MODE, 0);
FR.setParam(FR.LIBFPTR_PARAM_MARKING_FRACTIONAL_QUANTITY, "500/20000");
//FR.setParam(FR.LIBFPTR_PARAM_MARKING_NOT_SEND_TO_SERVER, true);
FR.setParam(FR.LIBFPTR_PARAM_QUANTITY, 1.000);

как только указываю FR.LIBFPTR_IU_LITER
драйвер сообщает что некорректный код маркировки.

или надо как то по другому проверять ?
Оставьте свое сообщение