Работа с драйвером "Атол 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
82 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Проверял на 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    843951    5309    9844    

2982

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

1106

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

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

9500 руб.

27.08.2018    128179    703    603    

913

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

208

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

«Сервер ККМ» позволяет приложениям работать с фискальными регистраторами по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест с поддержкой очереди печати. Поддерживаются ВСЕ ревизии требований фирмы 1С к разработке драйверов ККТ от 2.2 до 4.4.

5000 руб.

02.09.2016    142960    139    196    

207

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

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

7080 руб.

12.04.2023    11859    70    8    

58

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

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

7080 руб.

22.08.2022    12345    38    17    

38

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

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

6000 руб.

31.07.2017    178019    611    609    

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

Какой вариант подключения производительней - Не сравнивал, но предполагаю что USB будет производительней.
6. silverr 15 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 15 19.05.21 11:57 Сейчас в теме
Доброго времени суток!
Не подскажете синтаксис команды установки ставки НДС на позицию (не на чек). В старом 8-шном варианте выглядело так:

Если СписокТоваров.НДС = 20 Тогда
Объект.Department = 3;
Объект.TaxTypeNumber = 3;
10. silverr 15 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 4 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 4 30.09.21 03:26 Сейчас в теме
(17) Конечно, верно согласен. Параметр Налог - это просто переменная.

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

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

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

.....

КонецЦикла;

И вот так можно в одном чеке разные ставки налога на каждую позицию товаров регистрировать. Надо сказать что 10 драйвер Атол в этом плане лучше - в 6 или 8 драйверах нужно было использовать ECR.TaxTypeNumber = 6 - что означало выбрать из таблицы ККМ налогов нужный, беда в том что я встречал ККМ где эти таблицы прошиты по разному. И выходит, что на одной ККМ нужно выбирать 6 позицию, а на стоящей рядом 0. Это просто беда.
18. guglion 4 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 1885 09.11.23 09:02 Сейчас в теме
(0) Добрый день!
Можно ли тестировать Атоловский драйвер ККМ без самого ККМ?
Есть ли какой тестовый режим у драйвера?
Аппарата нет, а запрограммировать функционал надо.
28. Vil1983 25 09.11.23 09:45 Сейчас в теме
(27) Добрый, я работал с аппаратом, попробуйте найти какой то эмулятор устройства, может есть где...
29. RustIG 1885 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
драйвер сообщает что некорректный код маркировки.

или надо как то по другому проверять ?
31. Burdilo 15.07.25 10:04 Сейчас в теме
Добрый день.

Через раз, при попытке fptr.open() выдает порт занят. Как это происходит. Пробиваешь несколько чеков нормально. Потом рмк в режиме ожидания стоит. И через час, например, снова пытаешься пробить чек - пишет порт занят. Код ошибки 3.
Перезапускаешь 1с - снова можешь пробить чек. Пробовал и подключение по usb и по com. Одинаково.

При этом если, снимать x отчет стандартными методами 1с (через объект драйвера) - то не ругается на занятый порт, а вот через com объект - не может.

Никто не знает как с этим побороться? можно как то принудительно освободить порт перед пробитием чека?
32. Vil1983 25 15.07.25 10:57 Сейчас в теме
(31)
ить порт перед проби

Добрый, может у вас не срабатывает закрытие соединения?
fptr.close();
В целом можно его и перед новым чеком и новым соединением выполнять.

А еще возможно у вас одновременно сам драйвер занимает порт, вы параллельно с 1с других программ не открываете?
33. Burdilo 15.07.25 22:09 Сейчас в теме
(32)
close() точно отрабатывала. Потому что если сразу пробить несколько чеков подряд, один за одним - то всё хорошо. Потом 1с постоит в режиме ожидания - и всё. Порт занят.

Но вроде разобрался, после недели проб и ошибок.

Мне помогло следующее, я у Оборудования ККТ в 1с поставил галочку - Отключаться от ККТ, даже если канал до ОФД - EthernetOverTransport.
Оставьте свое сообщение