Работа с драйвером "Атол 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
74
74 Скачать (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С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

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

6000 руб.

27.02.2017    796335    4903    9546    

2858

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

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

4500 руб.

27.08.2018    122184    1025    584    

864

SALE! 25%

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

5880 4410 руб.

25.05.2015    335549    1956    3058    

1031

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

Обмен между 1С:Розница и Frontol 6 при торговле от нескольких организаций, а также ряд других полезных функций. Данный модуль синхронизации незаменим для тех, кто ведёт учет по нескольким организациям в 1С:Розница, а на РМК (рабочем месте кассира) установлен Frontol или планируется его установка. Подходит для 1С:Розница 2.3 / 3.0, 1С:УНФ 3.0

1800 руб.

22.03.2019    84027    509    478    

182

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

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

3000 руб.

02.09.2016    136453    152    193    

181

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

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

5880 руб.

12.04.2023    9335    44    3    

36

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

Обработки осуществляют обслуживание фискальных регистраторов, поддерживаемых драйвером "АТОЛ: Драйвер ККМ v.10.10", "ШТРИХ-М: Драйвер ККМ v 5.16", "ВИКИ: Драйвер CSI v 1.6", для конфигураций БП, УТ, КА, УПП, "Розница 3.0", соответствующих требованиям закона ФЗ-54 о применении контрольно-кассовой техники.Поддержка НДС 20%. Поддержка маркировки 488-ФЗ. Марки. Акциз. Честный знак. Разрешительный режим.

5040 руб.

02.02.2017    276494    557    2375    

558

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

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

4800 руб.

31.07.2017    170852    589    605    

204
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 4273 01.05.21 15:43 Сейчас в теме
Спасибо, очень помогло, когда переводил нетиповую с ДТО8 на ДТО10.
4. silverr 13 18.05.21 17:50 Сейчас в теме
Доброго времени суток!
Как определяется (задается) номер порта при подключении по USB? Какой вариант подключения производительней - очень много чеков?
5. Vil1983 21 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 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 13 19.05.21 11:57 Сейчас в теме
Доброго времени суток!
Не подскажете синтаксис команды установки ставки НДС на позицию (не на чек). В старом 8-шном варианте выглядело так:

Если СписокТоваров.НДС = 20 Тогда
Объект.Department = 3;
Объект.TaxTypeNumber = 3;
10. silverr 13 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 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 21 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 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 1747 09.11.23 09:02 Сейчас в теме
(0) Добрый день!
Можно ли тестировать Атоловский драйвер ККМ без самого ККМ?
Есть ли какой тестовый режим у драйвера?
Аппарата нет, а запрограммировать функционал надо.
28. Vil1983 21 09.11.23 09:45 Сейчас в теме
(27) Добрый, я работал с аппаратом, попробуйте найти какой то эмулятор устройства, может есть где...
29. RustIG 1747 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
драйвер сообщает что некорректный код маркировки.

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