Доброго времени суток. Сейчас очень актуально внедрение новых касс, поэтому не буду отставать от тенденций и расскажу, как я внедрял кассы в нетиповую конфигурацию на платформе 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 Не хватает денег в секции – в ККТ был включен режим автоматической инкассации при закрытии смены, из-за чего при попытке инкассации на следующий день возникала ошибка – в кассе не было денег по данным, хотя реально деньги там были. В драйвере отключили этот режим, инкассацию делаем вручную.
Данные обработки можно использовать для изменения под свои нужны. Повторюсь, что в обработке работы с ккт есть функционал, который был заточен именно под наши нужны, но основные функции типовые и могут использоваться для разработки и допиливания под свои нужды!