1с обмен с атол

Обновлено: 05.07.2024

Вокруг онлайн касс в последнее время дикий ажиотаж, 1 июля 2019 заканчивается последняя отсрочка, поэтому и мне пришлось заняться этим вопросом. Тем, у кого 1С или другая система особо можно не напрягаться, но если у вас собственная самописная система, то на ваши плечи ложится еще и интеграция с онлайн-кассами.

Мой опыт пригодится для интеграции с кассами Атол в режиме обмена данными по сети, ваша программа может отправлять данные на web-сервер Атол как на локалхост, так и по локальной сети, можно хоть из браузера AJAX отправлять, хоть с сервера через CURL, поэтому, неважно на каком языке написан ваш корпоративный софт, всё кроссплатформенно.

Мне на опыты попалась касса Атол 30ф — это такая простая печатная машинка с черным ящиком (ФН), так раз подходит, когда вся логика по составлению заказов лежит на внешнем софте, а не на софте, встроенном в кассу. К тому же, аппараты такого типа относительно недорогие, по сравнению с андроидными аналогами.

Отдельно хочу заметить, что «специалисты» некоторых компаний, занимающиеся поддержкой вообще не в курсе, что у Атол с 10й версии есть встроенный веб-сервер в драйвере, который принимает JSON-задания, более того, этот драйвер можно установить и на linux, судя по количеству готовых решений на малинках, могу предположить что там тоже можно установить, в дистрибутиве 10й версии драйвера установщик для arm присутствует.

Планируемая схема примерно такая — есть CRM, которая крутится на сервере в локальной сети, ее открывают из браузеров, с серверной стороны на PHP через curl будут отправляться чеки и печататься на кассе. А сама касса подключена к любому компу на Windows в этой же сети.

Говорят что если не активировать кассу, то она может работать в режиме принтера и печатать что чек недействительный, но мне это проверить не удалось, пришлось делать копеечные операции продажи и возврата.

Драйвер десятой версии скачиваем вот тут.

Перед установкой нужно установить Java той же разрядности, что и драйвер, иначе галочка web-сервер не будет доступна, если устанавливаете 64 битный драйвер ККТ, то и Java x64.

Вроде бы по логике нужно на 64 битную систему ставить 64 битный драйвер, но некоторый софт 32 битный не сможет с ним работать (вроде и к 1С такое относится, если она 32 битная).


В конце установки есть галочка — конфигурировать веб-сервер, если ее не поставили, то надо зайти в браузере на 127.0.0.1:16732/settings, поставить галочку «активировать сервер» и сохранить.



После этого нужно перезагрузить сервер через ПУСК->АТОЛ->перезапустить…

Еще сразу хочу предупредить, если запустить веб-сервер, то локальные приложения не смогут получить доступ к ККТ, я долго маялся, установил драйвер, запустил тест драйвера ккт, а он мне говорит что порт занят и всё, звонил в техподдержку местного продавца, там сказали не знаем что делать, потом десять раз перегружал комп, переустанавливал драйвер, ничего не помогает.

В общем, после того, как вы активировали и перезапустили сервер, а перед этим выключили сервер и проверили через поставляемую утилиту печать простого текста или просто проверили связь — можно приступать.

Этот веб-сервис не имеет никакой защиты по паролю, поэтому нужно сразу настроить брандмауэр Windows или другой софт, чтобы по порту 16732 могли обращаться только нужные компы, в моей ситуации это сервер на котором крутится CRM.

Общение с веб-сервисом вообще отдельная тема, очень интересная.

  1. Генерируем уникальный uuid для задания
  2. Отправляем задание методом POST
  3. Долбимся на веб-сервис, ожидая результата задания с нашим UUID, может быть так, что несколько секунд у нашего задания будет висеть статус wait, а может возникнуть error, если в запросе что-то не так сформировали.
код на php для примера работы с api (использовать только в учебных целях)

Тут есть такие недоработки, которые я еще поправлю

  1. Округление дробей при подсчете сумм, нужно округлять до копеек, иначе можно получить 1.000000001 или 0.999999999
  2. При правильном написании остальной логики программы такое обычно не возникает, но в ходе тестов я поймал себя на том, что задание вернуло результат error, а я ждал ready

В целом можно и с сайта в будущем собирать эквайринги, если в них не будет онлайн-чеков, пока не определились какой эквайринг привинтить. Но решение такое, больше наверно как идея для решения, время покажет как приживется эта касса.

Все ближе новогодние праздники и с ними переход на НДС20% и ФФД1.05. Почти все производители уже подготовились к нему и отчитались о порядке перехода на новый режим работы. Но не все пользователи до конца понимаю что им делать. Для работы в новом режиме понадобится обновить ККТ, драйвера и вашу конфигурацию. Кстати, обновления для конфигураций с поддержкой НДС20% 1С уже выпустила, поэтому самое время начать обновляться, если вы еще этого не сделали.

Для работы нового режима на ККТ потребуется последние версии драйвера ККТ. Работу с НДС 20% поддерживают все версии начиная с 8.16.1 или 10.4.1, которые вышли еще в ноябре. Последнюю версию можно скачать в свободном доступе с центра загрузки АТОЛ.

В настройке нет ничего сложного, просто выполняем все шаги по порядку:


1. Установка драйверов

Для работы ККТ потребуется последние версии АТОЛ Драйвер ККТ версии 10.4.2. Работу с НДС 20% поддерживают все версии начиная с 10.4.1.
Качаем его с dpkg -i fptr10-test-util_10.4.2_i386.deb dpkg -i libfptr10_10.4.2_i386.deb dpkg -i libfptr10-gui_10.4.2_i386.deb

После этого заново запускаем установку пакетов. Обратите внимание что ставить нужно драйвер той же битности что и платформа 1С. Если у вас 32-битная 1С работает на 64-битной системе, то ставим 32-битный драйвер. Иначе 1С не найдет подходящих драйверов. Это же относится и к работе в LINUX.



2. Подключаем и настраиваем ККТ


2.1. Настройка работы через USB

Большинство ККТ Атол (Кроме 30Ф и 11Ф) настроены для работы через COM. Для переключения на USB делаем:

  • Выключить ККТ
  • Зажать кнопку промотки чека
  • Не отпуская кнопку включаем ККТ
  • Дождаться пятого звукового сигнала
  • ККТ распечатает на чеке пункты сервисного режима.
  • Нажать два раза кнопку прокрутки чека (должно быть два звуковых сигнала).
  • Распечатается чек с параметрами канала связи.
  • Три раза нажать кнопку прокрутки чека (три звуковых сигнала).
  • Распечатается "USB включен" и вернется в сервисный режим.
  • Нажать один раз кнопку прокрутки чека, ККТ перейдет в рабочий режим.

Для передачи данных в ФФД необходимо настроить утилиту EOU.
При подключении по USB в системе появятся два COM-порта. Один используется для работы с ККТ, второй для утилиты EOU. В тесте драй вера проверяем на каком потру висит ККТ, другой прописываем в настройках EOU.

Если ККТ подключена через USB, то для передачи чеков в ОФД необходимо настроить службу EOU. Если у вас на компьютере установлена 8 версия драйверов, то там есть замечательная утилита "Управление драйверами", через которую очень легко настраивается служба EOU.


2.2 Настройка ККТ в режиме TCP/IP (Работа по сети, С терминального сервера RDP)

Проще всего выполнять настройку через утилиту "Тест драйвера ККТ". Открываем утилиту тест драйвера и заходим в свойства ККТ.


Указываем номер порта на котором работает ККТ (для его определения можно воспользоваться Поиском) и нажимаем кнопку "Параметры ККТ":


Здесь выполняется настройка режимов работы ККТ. Нам потребуются только два раздела: "2. Канал связи" и "15. ОФД".

Во разделе "2 Канал связи" настраивается интерфейс, на котором будет работать ККТ.


В нем прописываем IP-адрес ККТ и параметры Вашей сети.

  • Канал обмена: Ethernet
  • IP-адрес (Ethernet): ххх.ххх.ххх.ххх - Здесь прописываем свободный IP из вашей подсети, например 192.168.1.17
  • маска подсети: 255.255.255.0
  • Шлюз по умолчанию: ххх.ххх.ххх.ххх - Адрес шлюза вашей сети (основного роутера), например 192.168.1.1

В разделе "15 ОФД" настраивается канал обмена с ОФД. Если ККТ работает по сети, то необходимо переключить канал обмена на Ethernet, если по USB, то USB (EoU).


Если ККТ новая, то не забываем менять настройки в разделе 9 Клише.

После изменения всех настроек нажимаем кнопку применить и выключаем кассу. Теперь можно отключить кабель USB и подключить ККТ с помощью Ethernet кабеля к вашей локальной сети.

Настройка окончена, включаем ККТ. При загрузке она будет печатать два чека, один что ККТ готова к работе, второй состояние сети, на котором выводиться текущий IP-адрес ККТ.

Теперь можно проверить связь с помощью утилиты "Тест драйвера". Указываем порт TCP/IP и IP-адрес ККТ и нажимаем кнопку "Проверка связи". В ответ она должна сообщить свою модель, номер и версию ПО.


При работе ККТ по сети она будет самостоятельно передавать данные в ОФД. Настраивать службу EOU уже не надо!


3. Настройка в 1С.

Рассмотрим настройку ККТ на примере демонстрационной базы "Управление производственным предприятием". В типовых конфигурациях на обычных формах вся настройка выполняется в форме "Подключение и настройка торгового оборудования".


Переходим на вкладку "ККТ с передачей данных" и добавляем новое оборудование.


Обработку обслуживания с необходимой Native-компонентой можно скачать во вложении.


В обработке выбираем нужный способ подключения и порт для связи с ККТ. Для проверки корректности настроек можно нажать на кнопку "Тест устрйоства"


Указанная обработка использует стандартные процедуры из общих модулей: ПодключаемоеОборудованиеУниверсальныйДрайверКлиент и МенеджерОборудованияКлиентСервер.

При работе в LINUX/Windows настраивается одинаково. Если в обработке пишет что не установлен драйвер, то скорее всего установлены драйвера не той "битности". Готово, если вы уже обновили ККТ, то она готова к работе с Новыми ставками НДС.

4. Служебные операции

В процессе работы иногда требуется проверить передачу данных к ОФД или закрыть смену на ККТ. Эти операции можно выполнить через утилиту "Тест драйвера". Но удобнее использовать эти функции из обработки обслуживания. Для этого откройте форму "Подключение и настройка торгового оборудования", выберите нужную ККТ в списке и нажмите кнопку "Параметры фискализации".


В открывшемся окне есть меню "Ручное управление" через которое можно выполнить:

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

Чтобы понять, что такое платформа 5.0 и для чего она нужна сделаем краткий экскурс в историю. ККТ старого образца использовали платформу 2.0, предназначенную для работы с ЭКЛЗ, в выходом 54ФЗ и появлением онлайн-касс платформа 2.0 была доработана под новые требования и стала называться платформа 2.5. Именно ее продолжали и продолжают использовать большинство ККТ АТОЛ.

Но устаревшая платформа несет много ограничений и не позволяет эффективно реализовывать новые требования, поэтому разработчики решили разработать полностью новое ПО только под современные требования. Так появилась платформа 5.0, за счет отказа от поддержки устаревших стандартов и принципиально новой архитектуре она быстрее работает и эффективнее справляется со своими задачами, облегчая жизнь как пользователям, так и разработчикам кассового ПО.

Многие функции, которые раньше обеспечивались средствами прикладного или дополнительного ПО перешли в саму кассу, например, разбор марки, теперь этим занимается сама ККТ, что значительно упрощает задачу разработчикам и пользователям, которые станут меньше зависеть от реализации поддержки нововведений в их программах.

В настоящий момент разработка платформы 2.5 прекращена, а с 2021 года прекратится ее поддержка. В настоящий момент все актуальные ККТ поставляются с платформой 5.0.

Как узнать платформу ККТ?

Узнать версию текущего ПО ККТ можно разными способами, самый простой - распечатать чек информации: Отчеты - 5 - Печать информации о ККТ.

ATOL-5.0-EoT-009.jpg

Если вам требуется получить данную информацию удаленно, можно выполнить запрос JSON, для этого перейдите в Работа с json и в поле Задание введите:

Результатом будет набор информации о ККТ включающий в себя номер прошивки:

ATOL-5.0-EoT-010.jpg

Настройка EoT (EthernetOverTransport)

Серьезное изменение коснулось передачи данных в ОФД для касс без прямого сетевого подключения. Платформа 2.5 использовала для этой цели технологию EoU (EthernetOverUSB), которая подразумевала использование стороннего ПО для взаимодействия с кассой и отправке данных из нее в ОФД.

Несмотря на то, что EoU показала себя достаточно надежной технологией, лишнее ПО в системе - это лишняя точка отказа, да и с точки зрения кроссплатформенности, к которой стремится АТОЛ, это выглядело не самым лучшим решением. Поэтому была реализована новая технология передачи данных EoT(EthernetOverTransport), которая может использовать любое подключение к хосту и не требует дополнительного ПО. Теперь ККТ сама передает данные в ОФД, единственное условие - кассовое ПО должно сохранять постоянное подключение к ККТ. Все настройки подключения к ОФД также выполняются в самой кассе. Это удобно, не нужно никакого дополнительного ПО, достаточно просто установить драйвер ККТ и подключить устройство.

Отличительной чертой устройств на платформе 5.0 при подключении их к ОС Windows является только один виртуальный COM-порт, который используется для взаимодействия с кассовым ПО, работа с EoU на прошивках 5.7.0 не поддерживается. На Linux ККТ по-прежнему подключается через USB, но работа с EoU также невозможна.

ATOL-5.0-EoT-001.jpg

Это можно заметить в выпадающем списке выбора канала обмена, теперь там доступны только сетевые способы и EoT.

ATOL-5.0-EoT-002.jpg

Сама же настройка EoT достаточно проста, вам потребуется указать в пункте 15 параметров ККТ адрес и порт используемого вами ОФД.

ATOL-5.0-EoT-003.jpg

Будьте внимательны, отмечены случаи, когда порт ОФД сохранялся не с первого раза, поэтому рекомендуем тщательно проверять настройки перед началом эксплуатации кассы. Также можете пробить пробный чек, либо открыть или закрыть смену (проще говоря создать любой фискальный документ), а затем проверить состояние отправки документов в ФН - 1 -Статус информационного обмена. Количество непереданных документов должно быть равно нулю (на скриншоте отчет тестовой кассы с МГМ которая не осуществляет передачу данных).

ATOL-5.0-EoT-004.jpg

Для проверки связи с ОФД можете выполнить Отчеты - 6 - Тест связи с ОФД, результат диагностики будет распечатан на кассовой ленте.

ATOL-5.0-EoT-005.jpg

В ряде случаев может быть полезно ознакомиться с логом службы, который находится в:

Со стороны кассового ПО, в нашем случае это 1С, требуется поддержка постоянного соединения с кассой, это уже реализовано в последних версиях компоненты, остается убедиться, что вы используете версию не ниже 10.6.2.0. Однако здесь тоже может быть не все так просто, рекомендуем внимательно ознакомиться с нашей статьей: 1С:Предприятие 8. Исправляем ошибку "Некорректный код защиты / лицензия или номер" для ККТ АТОЛ.

EoU возвращается?

Как мы уже говорили, для работы EoT требуется поддержка со стороны кассового ПО, а именно поддержание постоянного соединения с ККТ. Но как показала практика не все разработчики смогли вовремя выпустить обновления и у многих возникли трудности с применением касс на платформе 5.0. Поэтому в прошивке 5.7.10 работа с EoU была возвращена, также обязательным условием является использование драйвера 10.8.0.0.

ATOL-5.0-EoT-006.jpg

В диспетчере задач ККТ с данной прошивкой снова определяются двумя виртуальными COM-портами:

ATOL-5.0-EoT-007.jpg

Но говорит ли это о том, что АТОЛ возвращает EoU и отказывается от EoT? Нет, в описании изменений прошивки 5.7.10 прямо указано:

Список изменений v. 5.7.10
Добавлен интерфейс EoU для завершения миграции;

Возвращение EoU временное, для того чтобы пользователи спокойно могли завершить миграцию на платформу 5.0, а у разработчиков было время спокойно выпустить обновления с полноценной поддержкой платформы 5.0.

Поэтому если ваше кассовое ПО позволяет использовать EoT уже сейчас, то следует использовать именно его, так как переходить на него все равно придется и лучше это сделать спокойно сейчас, чем пытаться все сделать в самый последний момент.

Для платформы ККТ Атол 5 версии и настройки передачи данных с помощью Ethernet over Transport процесс подключения к 1С максимально упрощён. Не надо смотреть никакие порты, а просто настраивать подключение, как описано в этой статье. Аппарат использует только один порт и через него осуществляет связь с ОФД и компьютером.

Для платформы Атол 2.5


Смотрим номера портов в диспетчере устройств

В моём случае COM4 занят для передачи данных между кассой и компьютер, а COM5 соответственно для передачи данных к оператору фискальных данных.

Чтобы посмотреть какая версия платформы у ККТ Атол, надо зайти в программу Тест драйвер ККТ, перейти в левом меню в «Отчёты» и выбрать пункт «Печать информация о ККТ». Если распечатался подобный чек:

Печать информация о ККТ

А также присутствуют строки, подсвеченные красным цветом, то у вашего фискального регистратора пятая версия платформы, которая является последней на данный момент.

Также, характерным признаком пятой платформы — один занимаемый порт кассой, в отличие от двух портов на платформе 2.5. Когда вы подключали кассу к компьютеру, то смотрели занимаемые порты и знаете, где это.

Подключение кассового аппарата Атол к 1С

Открываем 1С и заходим в раздел Администрирование -> Подключаемое оборудование. Ставим в этом окне галочку «Использовать подключаемое оборудование».

Далее переходим в раздел «Подключаемое оборудование» и в выпадающем меню «Тип оборудования» выбираем ККТ с передачей данных:

Подключение кассы Атол в 1С

Создаём новое подключение с такими настройками:


Драйвер оборудования — это установленный в 1С обработчик, который будет работать с установленной версией драйвера ККТ на компьютере.

Серийный номер — заводской номер ККТ. Можно посмотреть на обратной стороне вашей кассы, либо в информационном чеке.

Настройки в 1С

После записи экземпляра подключаемого оборудования, появится кнопка «Настроить». Заходим по ней в настройки и выбираем модель кассового аппарата, USB порт (COM порт для платформы 2.5) для подключения. В моём случае вот такие настройки:


Для пятой версии платформы Атола, все настройки ставятся автоматически и ничего в этом окне прописывать не надо. Просто проверьте на всякий случай корректность настроек с моим скриншотом, представленным выше.

Важный момент!
Обязательно проследите наличие галочки у «Не отключаться от ККТ».

В силу особенностей работы Ethernet over Transport, если с 1С запущен одновременно тест драйвера, то в 1С касса не будет видна и не выполнит тест подключения.

Надо отключить кассу в свойствах драйвера и тогда пройдёт подключение в 1С и аппарат начнёт нормально работать и передавать данные в ОФД. Также справедливо и в обратную сторону, пока запущена 1С, вы не сможете включить фискальник в тесте драйвера.

Этот комментарий важен для 10-ой версии ДТО Атола и платформы 5-ой версии.

Добавление новой кассы в раздел кассы ККМ

Найти этот раздел можно через поиск, либо перейти в НСИ -> кассы ККМ. Просто добавляем новую и выбираем то оборудование, которое добавляли ранее.

Так выглядит это у нас:


Настройка 1С и подключение кассы Атол закончена. Теперь можно открыть смену и попробовать выбить чек. После чего зайдите в ОФД и проверьте отправку чеков. Если ОФД видит пробитые чеки, то всё работает корректно.

Читайте также: