Кассовый аппарат с блошиного рынка1
В общем, я любитель прогуляться по блошиным рынкам и купить там что-то интересное. Некоторое время назад я увидел на удельной среди всякого барахла лежал интересный и красивый кассовый аппарат. Вот такой:
Это уже после моих манипуляций
Причем он был в родной коробке, с паспортом, блоком питания и родным micro usb кабелем. Также там была коробочка от модуля фискального накопителя (ФН) и на самом аппарате не была повреждена заводская пломба. А я как раз сдал программу (писал на заказ для бильярдного клуба и мне там надо было печатать чеки на примерно такие же аппараты). Этот аппарат назывался "Атол-90ф". В общем я решил попробовать подключить его к компу, настроить драйвер и отлаживать программу дома, печатать x,z отчеты, чеки, возвраты и т.д. ничем не рискуя и не ездя на объект. Ах, как я был наивен в тот момент. Аппарат мне продали аж за 400 рублей, что в общем-то вообще копейки.
Дальше началось все интересное. Придя домой, я включил аппарат и он включился! Ого, значит есть шансы! Подключил к компу, он определился как 2 сом порта (один для связи с компьютером, второй для передачи данных в ОФД (оператору фискальных данных)). Драйвер 10ой версии я установил и касса даже сняла X отчет! Я обрадовался, но рано. Больше ничего с ней я с компа сделать не смог. ФН был просрочен и никаких чеков и отчетов я сделать не мог. Тут надо было что-то решать.
Еще давно я слышал (когда ЭКЛЗ были везде (электронная контрольная лента защищенная)) что есть в природе эмулятор ЭКЛЗ типа для отладки взаимодействия с кассой. И оказалось что и эмулятор ФН тоже существует. Но только стоит он около 12000 руб. Это конечно дороговато. Но путем поисков на авито я нашел в СПб контору, которая его продает всего лишь за 6000 руб. В общем, поехал купил. Эмулятор штука полезная. Он как настоящий, только его можно сбросить в начальное состояние и регистрировать сколько хочешь раз.
В общем немного помучавшись я подключил этот эмулятор и даже смог провести регистрацию кассы (сначала ее обнулив полностью) на новое юр. лицо. Но дальше все пошло хреново: X отчет снимался как и раньше, а чеки не пробивались (с компьютера). Драйвер писал что не хватает какой-то там лицензии. Вот зараза! Я стал вникать. И вычитал, что эта касса она же кнопки имеет, и по умолчанию работает как касса, т.е. пробивает чеки с кнопок. Нашел руководство как пробивать попробовал, не пробивает, чтоб ей пусто было! Нет загруженных в память кассы товаров. Я нашел утилиту, которая загружает товары, но она не работала, не видела кассу. Оказалось, что у касс этих именно атол 90ф бывает тьма прошивок, и разные версии утилит под разные прошивки, скачал штук 5 разных загружалок, но не работала ни одна. Потом меня осенило - я же ставил 64битную версию драйвера! Поставил еще такую же но 32 битную и все загружалки заработали. Я залил тестовую базу товаров и наконец-то касса пробила мне первый чек. Т.е. в принципе она чек может, а через комп не хватает лицензии. Начал читать дальше, форумы, руководства, блоги всякие и выяснил что у этого аппарата есть так называемые "Коды защиты" (КЗ) и они под разными номерами. И среди них есть КЗ1 т.е. с номером 1, это код, который разрешает кассе работать в режиме фискального регистратора (ФР), т.е. от компа через кабель. А в моей кассе был только КЗ4, который тоже там что-то делал. Сами КЗ берутся из паспорта аппарата, а в моем паспорте только это КЗ4 и был. Первого не было :-(. Я загрустил.
Потом погрустив начал расследование дальше, написал в поддержку Атола, и надо же!!! Мне ответили, типа плати 3000 руб и дадим тебе КЗ1. А что от меня надо? Только деньги и заводской номер (ЗН) кассы. Но мне 3000 было жалко. Я решил умереть но получить его бесплатно.
На одном из форумов ЦТОшников (центр технического обслуживания, т.е. кассовые механики) я увидел как люди налево и направо раздают эти самые КЗ1. Типа один говорит дайте мне к кассе с таким-то ЗН, и ему пишут КЗ1 и КЗ4. И таких постов было много. Я зарегистрировался на форуме и тоже также спросил. Но был послан подальше. Я же не ЦТО! Я - так, просто сам по себе. В общем они надо мной там немного поглумились, что такой я лохопед и кассу мою надо на помойку выбросить и из меня только деньги и надо вытягивать. А я, тем временем, создал табличку в екселе и внес в нее все ЗН касс и соответствующие им КЗ. Это все я нашел в этом форуме. И сначала решил немного подумать как мне самому создать КЗ1 из моего ЗН.
Я отсортировал по возрастанию ЗН, потом переписал в 16ичной системе все номера, потом в двоичной, долго ломал голову, но алгоритм мне было не понять. Скорее всего там есть какой-то полином типа a1*x^n + a2*x^(n-1).... + ak и в этот полином подставляют ЗН кассы а на выходе получается КЗ. Но такую задачу так просто не решишь.
Тогда я решил действовать другим путем: Если я знаю коды защиты от какого-то другого ЗН почему бы мне не поменять мой ЗН на этот и тогда к нему прекрасно подойдут коды защиты с форума. Вопрос был лишь в том, как поменять ЗН и вообще, можно ли это сделать хоть как-то. Почитал в инете, оказалось, да можно, но не так-то просто. Чтобы его поменять надо в кассу прошить специальную инженерную прошивку, потом там дать команду низкого уровня для сброса ЗН и касса сама заверещит: "нету у меня ЗН, давайте его быстренько введем"! Я нашел на форуме архив со всякими прошивками. А эти прошивки, это ужас просто. Во-первых, их дофига. Одна может то, другая это. Во-вторых, их нельзя шить как попало. Только ту на эту а вот ту на эту или эту. В-третьих, прошивка шьется путем перевода работы кассы в режим прошивки и управляет прошивкой загрузчик. А их тоже полно версий и непонятно кто там с кем совместим или нет. В общем один неверный шаг и касса превращается в кирпич. Начал я пытаться что-то там прошить, сначала касса окирпичилась. Но мне все-таки удалось ее восстановить. Потом залив очередную прошивку касса напечатала на бумаге там что-то и намертво зависла. А выключается то она с клавиатуры, и внутри аккумулятор, причем живой. Т.е. или ждать пока он сядет или нарушать пломбу и разбирать аппарат. В общем, я его разобрал, добрался до аккумулятора и отключил его. Так что процесс был довольно сложный. Но в конце концов я нашел подходящую инженерную прошивку и сбросил ЗН! И сразу же из этой прошивки попытался поставить другой ЗН с сайта ЦТОшников. И он не подошел!!! Касса написала что номер не подходит! И вообще ни один не подходил. А мой старый подходил. Я подумал что это хитрожопые драйвера при попытки записи нового ЗН лезут куда-то в интернет и ищут свободен ли этот ЗН или занят. И на время отключил интернет, но номер не выгорел. Подумав еще немного я понял что старый номер мог быть у меня записан в эмулятор ФН и при сравнении номеров выскакивала ошибка. На время я отключил ФН и хопа!! Чужой номер нормально прописался в кассу. Теперь надо было пытаться вводить коды защиты. И снова облом! 4ый (т.е. который и так был) вводится а первый (ради которого вся эта эпопея) не вводится! Я начал уже почти волосы на себе рвать от чудовищного геморроя данной процедуры, стал думать и единственная версия была в том что на данной инженерной прошивке КЗ1 вообще не работали. Я тогда залил снова нормальную прошивку и наконец-то!!!! КЗ1 ввелся. Но теперь у меня были разные ЗН в кассе и в ФН. Касса на это конечно ругалась. Но ФН-то у меня не настоящий! Я подключил его к USB порту через переходник, поставил драйвера и спец программой сбросил эмулятор в начальное состояние. Потом снова вставил в кассу, снова ее зарегистрировал и вот теперь! Она стала нормально работать от компа в режиме фискального регистратора. Отладил печать чеков, возвратов, вывод ФИО кассира, сделал операции внесения и изъятия наличных. В общем труд оказался не напрасным, надеюсь кому-то поможет кто окажется в моей ситуации.