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

10.07.20

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Внешняя обработка для работы с драйвером «Атол v.10» через COM Объект для 1с 8.3:
.epf 7,38Kb ver:1.0
76
76 Скачать (1 SM) Купить за 1 850 руб.

Проверял на 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 пример пробить чек

См. также

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

2937

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

7900 руб.

25.05.2015    341221    2020    3120    

1062

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

Расширение для типовых конфигураций для Управляемых форм позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

9500 руб.

27.08.2018    125280    665    603    

898

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

196

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

194

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

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

5880 руб.

12.04.2023    10701    58    3    

47

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

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

4560 руб.

07.08.2018    77805    506    355    

367

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

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

6000 руб.

31.07.2017    174033    600    609    

209
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Akuji 22 15.07.20 11:03 Сейчас в теме
Работа с маркировкой там есть?
2. Vil1983 25 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 4279 01.05.21 15:43 Сейчас в теме
Спасибо, очень помогло, когда переводил нетиповую с ДТО8 на ДТО10.
4. silverr 13 18.05.21 17:50 Сейчас в теме
Доброго времени суток!
Как определяется (задается) номер порта при подключении по USB? Какой вариант подключения производительней - очень много чеков?
5. Vil1983 25 18.05.21 20:12 Сейчас в теме
(4) при подключении по USB, если касса одна то автоматом... если несколько то надо думать.

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

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

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

ДлинаНаименования = Объект.ДлинаСтрокиСимволов;
11. Vil1983 25 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 25 11.01.22 10:14 Сейчас в теме
(20) я не занимался разработкой взаимодействия 1с с 8ым драйвером, так что не знаю.
14. k770888 14.08.21 06:26 Сейчас в теме
Василий день добрый. А вы не сталкивались с чеками коррекции прихода в атоле 10.
Есть задача сделать обработку. из реестра в экселе взять данные и через драйвер или напрямую на ккт создавать чеки коррекции и отправлять на ккт, с последующей распечаткой. Вы не могли бы помочь с решением такой задачи.
15. Vil1983 25 16.08.21 09:26 Сейчас в теме
(14) Ну не вижу особо проблем, чек коррекции аналогичен обычным чекам, только с другими параметрами. Помочь могу, но в чем мой профит?)
16. guglion 3 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 25 29.09.21 14:42 Сейчас в теме
(16) НДС у разных позиций может отличаться. Например у молока НДС 10%, а у пива 20%. Определять налог заранее имеет смысл только если известно что ставка не измена для всех позиций в организации.
19. guglion 3 30.09.21 03:26 Сейчас в теме
(17) Конечно, верно согласен. Параметр Налог - это просто переменная.

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

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

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

.....

КонецЦикла;

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

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

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

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

                       .....

КонецЦикла;


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

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