Работа с кассами онлайн (54 ФЗ) на примере нетиповых конфигураций на платформе 8.1 и 8.2


Решил поделиться своим опытом внедрения новых ККТ (по 54ФЗ) на примере нетиповых конфигураций на платформе 8.1 и 8.2. Во вложениях можно найти архивы по данным разработкам.

Доброго времени суток. Сейчас очень актуально внедрение новых касс, поэтому не буду отставать от тенденций и расскажу, как я внедрял кассы в нетиповую конфигурацию на платформе 8.1. Итак, начнем)

Данная разработка была сделана для нетиповой базы, но все модули могут работать и с типовыми конфигурациями, требуется лишь небольшая корректировка; все модули открыты и содержат комментарии, что упрощает доработку. Проверялась на кассах Штрих-М и Ритейл. 

Само внедрение состояло из 4 этапов:

-анализ конфигурации и доработка метаданных;

-разработка внешней обработки работы с ККТ;

-разработка механизма рассылки оповещений (смс и емайл чеков покупателям);

-тестирование и исправление;

Первый этап заключается в следующем: 

В Конфигурацию добавлены следующие объекты:

Регистры сведений:

ОчередьСообщениийРассылкиЧеков, непериодический, независимый, измерения ТипРассылки (ПеречислениеСсылка.ТипыРассылкиЭлектронныхЧеков), Адрес – строка (120), Чек ( документы ссылка – любые документы, которые планируется печатать), Ресурсы – Отправлен (тип булево), ДанныеПакета (тип ХранилищеЗначения), ОшибкаПередачи – сюда пишем логи отправки.

Перечисления:

ТипыРасчетаДенежнымиСредствами значения: ПриходДенежныхСредств, ВозвратДенежныхСредств, РасходДенежныхСредств, ВозвратРасходаДенежныхСредств

ТипыРассылкиЭлектронныхЧеков  значения: СообщениеSMS, ЭлектронноеПисьмо

Документы:

Документ ОперацияСКассой, реквизиты ВидОперации (справочник ВидыОпераций), Организация (справочник Организации), Подразделение (справочник Подразделения), Касса (справочник Кассы), Автор, НомерСмены, НомерПоследнегоЧека, ОбъектОснование, Сумма, Комментарий, ИДВнешний (для обменов с разными базами, когда нужно синхронизировать по гуид, а гуид разный), Служебный (текстовое поле для служебных целей)

Далее второй этап:для разработки обработки под  8.1 за основу был взят БПО и Розница 2.2, так как разработку начинал еще когда не было модулей от 1с под предыдущие версии, пришлось переделать механизм с оповещений на процедурный. Основной функционал обработки описан в инструкции к обработке. 

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

3. Рассылка оповещений:

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

При печати чека проверяем неоходимость отправки смс или емайл сообщения. При наличии такой необходимости формируется сообщение, упаковывается в хранилищеЗначений и записывается в регистр сведений ОчередьСообщениийРассылкиЧеков с признаком отправки Ложь. Далее отдельное автозадание производит чтение из данного регистра, анализ типа сообщения, распаковку из хранилища значений и отправку. В случае положительного результата в регистре у сообщения ставится флаг удачной отправки, в случае ошибок в поле ОшибкаПередачи пишем логи ошибок. Также отправка емайл реализована с учетом последних тенденций перехода почтовых хостов на ssl сертификат. На платформе 8.1 по умолчанию конструктор почты не предусматривает такую возможность, поэтому отправка сделана с использованием Com-объекта (в архиве две версии обработки: для 8.1 и 8.2) В качестве оператора смс-рассылок используется сервис https://web.szk-info.ru

Более подробно о нем можете узнать перейдя по ссылке. 

В архиве обработка с модулями работы с ККТ (для версий 8.1 и 8.2), обработка рассылки емайл и смс оповещений (основывается на доработке конфигурации, описанной выше, а именно добавлении регистра сведений ОчередьСообщениийРассылкиЧеков), инструкция по обработке работы с ККТ. (версии для 8.1 и 8.2 аналогичные).

4. Тестирование

По 4 пункту могу сказать, что сейчас уже данную разработку запустили более чем на 10 базах (базы работают в режиме РИБ).

В процессе подключения ККТ и настройки наталкивались на следующие грабли:

-Неизвестная ошибка   — (проблема была в подключении – необходимо корректно указывать порт, тип соединения (COM или TCP/IP) и адрес. Проверьте, не заблокированы ли у Вас порты, используемые ккт;

— Команда не поддерживается в данной реализации фискальной памяти – долго мучались с этой проблемой, в итоге после очередного обновления драйверов и перепрошивки ККТ вопрос был решен

— 69 Cумма всех типов оплаты меньше итога чека – в нашей системе цены были с разрядностью до 3 знаков после запятой, ккт же распознает только 2 знака, при пересчете сумм получалась итоговая сумма построчно меньше чем итоговая сумма, передаваемая в сумме оплаты из документа, что вызывало ошибку.

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

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

5 Comments

  1. Sova123

    Вот такие ошибки выдаются, как их победить?

    попытка подключения

    -100:

    -100:

    Невозможно получить регистрационные данные ККТ

    -100:

    Reply
  2. maks_20

    (1)

    Невозможно получить регистрационные данные ККТ

    Касса зарегистрирована в ОФД. Какая модель ккт? У меня такая проблема была только когда касса была не зарегистрирована, после регистрации проблема ушла.

    Reply
  3. seva1405

    Автор подскажи что за библиотека используется ProgID = «AddIn.SMDrvFR1C20»;?

    Где ее взять и можно ли через нее подключить атол 11ф к примеру? Или это для касс Viki?

    Reply
  4. seva1405

    а понял, это штрих (

    Reply
  5. maks_20

    (4) Да, это штриховская библиотека. Устанавливается она при установке драйвера. Подключения и функции сделаны с использованием универсальных функций, на атоле не тестировал, т.к. нет его под рукой. В статье написано, что тестил только на штрихе и ритейле ( ритейл тоже под штриховским драйвером работает).

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *