А я было думал, что больше никогда не увижу ком-9 нуль-модем
В час ночи по Москве во Владивостоке отказали кассы. Не только у нас, а по всему городу. Похоже, все модели Штрих-М, которые стоят много у кого в сетевой рознице. В два часа ночи по Москве бага перепрыгнула в соседний часовой пояс. В три часа ночи — в следующий. К утру накрыло и Москву.
Штрих-М стоят, например, по данным РБК, в Пятёрочках, в Магнитах, в Магнолии, на заправках Газпрома и Роснефти. И у нас.
Работать без кассы нельзя. Это нарушение закона. Та же Магнолия около нашего офиса вообще сегодня, как мы увидели, закрылась. Некоторые небольшие сети по всей стране тоже не открывали магазины.
Что произошло?
Штрих-М поймали ошибку, про которую производитель, похоже, знал заранее, либо выпустил очень-очень оперативиный хотфикс. По крайней мере, в 9 утра по Москве, прошивка уже была доступна с инструкцией на их форуме.
Вот ветка с обсуждением.
На РБК в новости есть комментарий, что если на кассе было включено автообноовление, то сбоя не было. Автообновление по умолчанию выключено на уровне заводского конфига.
Состояние «после активного отсутствия бумаги», касса постоянно уходит в ребут при попытке распечатать любой документ, при попытке сбросить состояние и еще после некоторых команд.
По инструкции с форума Штриха (который, кстати, довольно быстро упал) можно было либо очень просто и оперативно поправить ошибку, если смена ещё не была открыта — либо же долго и мучительно, если смену успели открыть.
Мы успели открыть все смены кроме одной — на тестовой кассе в офисе.
Что всё это значит?
Для того, чтобы выдать покупателю чек, надо три компонента:
- Интерфейс для создания этого чека (например, можно ввести позиции вручную или получить их из какой-нибудь софтины типа 1С с компьютера).
- Печатающий модуль (он отдаст сам чек)
- И регистратор (раньше это была ЭКЛЗ, а теперь онлайн-отправлялка — штука, которая записывает все пробитые чеки для налоговой).
Второй и третий компоненты обычно совмещены в модуль, который называется «касса» и подключены к компьютеру, где и стоит интерфейс для набивания товаров в чек. Этот интерфейс обычно сопряжён с учётом товара, но это не очень важно для нашей истории.
Важно то, что чеки нельзя выдать, потому что прошивка кассы дала сбой.
Покупатели приходят, а мы не можем выдать чек.
Невыдача одного чека — это штраф несколько десятков тысяч рублей. Самый страшный залёт, который только бывает в рознице после отравленных продуктов питания.
Это значило, что можно было смело закрывать магазины до устранения проблемы. Именно поэтому этот день П получил такое поэтичное название.
Для нас 20 декабря по продажам — как неделя в июне. Для многих тоже.
Что делать?
Закрываться. Затем перепрошивать кассы.
У Штрихов есть возможность прошиться онлайн — на части касс мы подключались к рабочим местам кассиров удалённо, клали файлы новой прошивки в их софт, и касса это хавала. Перезагружалась и запускалась с новой сменой, можно было работать.
К сожалению, работало это только на тех интерфейсах, где кабель для сервисного доступа был COM 9pin — COM 9pin. На всех остальных кассах подключения к компьютерам просто не было. Потому что довольно тяжело найти компьютер с COM 25pin, например. У меня в Астрахани лежит, это мой первый 386SX с тактовой частотой 12-20 Мегагерц. На нём идёт «Golden Axe» на двоих, и ещё там можно печатать в Лексиконе и передавать данные по нуль-модему через USB-конвертер (чья вычислительная мощность больше процессора, собственно, компьютера, похоже) на ноутбук.
У нас такой роскоши не было.
Альтернатива — взять флешку с прошивкой и вставить её внутрь кассы. Мы сделали следующее:
- Наши инженеры поехали в самые горячие магазины (где больше всего оборот) и стали поднимать кассы там. Например, наши точки на Таганской и Курской (лучшая парковка и магазин в здании метро) поднялись через 40 минут после выявления бага. Мега Белая Дача — через полтора часа и так далее.
- Старшие точек повезли часть касс в офис — чтобы мы прошили их прямо на месте.
В это время Федеральная налоговая служба сделала невероятно адекватную вещь. Вообще, государство меня в последние годы жутко удивляет своей чёткостью решения вопросов (вот другой пример, не имеющий отношения к нашей истории). Так вот, ФНС сказала, что можно выдавать товар без чека, но на следующий день на всё проданное надо будет пробить чеки коррекции.
Вот ссылка. Вот цитата:
«С 01:00 20 декабря 2017 года в работе контрольно-кассовой техники производителей АО «ШТРИХ-М», ООО «РР-Электро», ООО «Тринити» и ООО «НТЦ «Измеритель» произошел массовый технический сбой. В связи с этим ФНС России напоминает, что в соответствии с пунктом 4 статьи 4.3 Федерального закона от 22.05.2003 № 54-ФЗ при корректировке более ранних расчетов формируется кассовый чек коррекции (бланк строгой отчетности коррекции).
Таким образом, в случае технического сбоя после восстановления работы кассы пользователи обязаны сформировать кассовый чек коррекции с общей суммой неотраженной выручки.
ФНС России обращает внимание, что в таких обстоятельствах пользователи ККТ не привлекаются к административной ответственности, так как в соответствии частями 1 и 4 статьи 1.5 КоАП РФ вины пользователей за неприменение контрольно-кассовой техники, в том числе при реализации алкоголя, нет.»
Чеки коррекции — это такие штуки, которые позволяют проапдейтить уже выданные чеки с некоторым бухгалтерским геморроем, но зато хоть как-то. То есть не тонна бумажек и объяснительных на каждый чек, а сравнительно серийная процедура.
И — главное, можно продавать товар.
Некоторые кассы вообще не имеют слота для флешки. Например, Элвес РР Ф, который сегодня, похоже, не прошёл тестовое внедрение в нашей сети. Только искать ком-разъём на компьютере.
Вот так это выглядит. Касса:
Срываем с неё всё лишнее:
Дорываемся до платы:
Вот сюда ставим флешку:
Может пригодиться вот такой разветвитель — потому что слоты разные:
Выжимка:
Решение проблемы — обновиться на прошивку, что выпустили сегодня. Прошивка от 20.12.2017
Прошивку можно скачать на официальном сайте. При удаленном обновлении:
1. Подключить кассу через COM-шнур
2. Подключиться удалённо к рабочему месту кассира
3. Установить ПО Tera Term и скормить ей прошику.
4. Next-next-читай инструкцию-done и немного типовых настроек.
На месте: сделать SD-карту с новой прошивкой, приехать, разобрать кассу, вытащить SD-карту, вставить новую такую же со включённым флагом автообноления, подключить кассу к рабочему месту кассира (чтобы она увидела аплинк до большой сети), обновиться, сделать технологическое обнуление, облегчённо выматериться, поехать в следующий магазин. Флешка уезжает с вами, в кассу в процессе возвращается старая.
Следующая проблема — если касса не работает, то терминалы карт не будут работать тоже. В том случае, если они интегрированы. Это четвёртый компонент кассы. Карина, руководитель розницы и бывшая глава нашего ИТ-департамента, параноик. Она подозревала, что рано или поздно каждая розница сталкивается с отказом касс. Поэтому на всех точках кроме двух было по одному неинтегрированному терминалу в запасе. Следствие — мы могли принимать карты.
Вечер
40% касс мы прошили дистанционно. К вечеру мы восстановили большинство магазинов. Одну из касс, например, старший точки отвёз домой к своей машине, там подключился к кассе шнурком, дал нашей поддержке доступ по RDP до своей машины — и прошился на месте. Одну из касс везли через пробки 2 часа 40 минут только до офиса от магазина за пределами метро.
Думаю, сегодня, 20 декабря 2017 года, точно войдёт в историю розницы в России. Потому что когда нужно будет обосновать какое-то решение по disaster recovery, будут вспоминать день, когда накрылись кассы.
Комментарии (255)
Meklon
20.12.2017 19:53Ох. Ты там спал вообще? Эпичный факап((
Milfgard Автор
20.12.2017 19:55День начался с того, что я попросил поддержку поправить одну минорную багу, и впервые за 9 лет увидел автоответчик на почте, мол, мы сегодня немного заняты, поэтому будем отвечать с опозданиями. Вот конкретные инженеры — они сегодня герои.
KonstantinSoloviov
20.12.2017 21:06Героизм — обратная сторона разпиздяйства.
Milfgard Автор
20.12.2017 21:07Неподготовленности.
Да, мы были неготовы к тому, что все кассы могут взять и отказать. Потому что подготовка — она явно дороже возможного простоя. Но ИТ-отдел решил всё быстро, и это хорошо. Рядом другая сеть нашего сегмента ещё не открылась вообще, к примеру.KonstantinSoloviov
20.12.2017 21:14Ого!
Ты там спал вообще?
А ты не робот? Или… на всякий случай: Cколько пальцев у меня за спиной?
:)
Спать… вышло-то удачно… или нет?
Dreyk
20.12.2017 20:00В час ночи по Москве во Владивостоке отказали кассы
в 9 утра по Москве, прошивка уже была доступна с инструкцией на их форуме
наши точки… поднялись через 40 минут после выявления бага.вы пофиксили багу до выхода прошивки, или я чет не понял просто?
Milfgard Автор
20.12.2017 20:04+1Мы поймали багу на всех кассах кроме офисной тестовой. Узнали, что хотфикс в виде новой прошивки релизом от сегодня уже есть. Дальше надо было закрыть магазины и поставить его на все кассы, но чуть позже пришло разъяснение от ФНС.
suslayer
20.12.2017 21:40Предположим разъяснения бы не поступило, что бы изменилост? как иначе выплывали бы из ситуации?
willyd
21.12.2017 07:41А обновления никак не настраиваются? Отключить нельзя, изменить репозиторий с обновлениями?
Просто как-то странно, что у всех стоял автоапдейт на кассах! в рознице!
В крупных компаниях и на windows то без тестирования не накатывают, даже после тестирования апдейты не прилетают всем сразу, у нас обычно первыми апдейты ловили мы в IT департаменте, причем по очереди. А розница и склады у нас вообще были последними по апдейтам.Hokum
21.12.2017 09:10Если бы было включено...
На РБК в новости есть комментарий, что если на кассе было включено автообноовление, то сбоя не было. Автообновление по умолчанию выключено на уровне заводского конфига.
Но идея с другим репозиторием — хорошая. Можно включить автообновления, настроить на свой репозиторой, в который включать только проверенные обновления. Вот только не знаю можно ли так.
willyd
21.12.2017 10:16Нельзя. IP жестко прописаны в коде. Мне не совсем понятно вот это сообщение:
Прошивка обновляется с нашего сервера, т.е. IP адреса зашиты в прошивке, поднять свой FTP, выкладывать туда прошивки и обновляться оттуда не получится. forum.shtrih-m-partners.ru/index.php?PHPSESSID=rurrk0gm1uejmone31dkesra44&topic=32987.msg144443#msg144443
Черт с ним, ну не хотят они работать с энтерпрайсом как все. Пусть будет хардкод. Это конечно глупо звучит и не совсем правильно, но я бы жестко сроутил их IP на свой сервер и раздавал бы прошивки с него, если конечно там простой FTP, TFTP, HTTP без проверки сертификатов.
Ну или в крайнем случае подключил бы к касам MOXA nPort и обновлял бы через COM после нормального теста, но это добавит лишние 50-100(не знаю сколько сейчас они стоят) долларов к стоимости места кассира.splav_asv
21.12.2017 10:55А кто мешает фаерволом подменять ip?
willyd
21.12.2017 11:12Я смутно вас понял. Можете пояснить?
Я не сетевик, хоть и связист. В моем представлении проще прописать жесткие маршруты на 30ые подсети поднятые во внутренней сети.
На самом свежем оборудованиb думаю еще проще сделать можно было бы.DaemonGloom
21.12.2017 11:47Есть два варианта.
1) Ваш — поставить свой сервер, заставить его откликаться на зашитый адрес и добавить маршрутизацию на него. При этом придётся поднять туннели до локальной сети, в которой живёт этот сервер — ведь провайдеры о том, что пакеты нужно пересылать в вашу сеть, а не на оригинальный сервер не знают.
2) splav_asv предлагает вмешаться в трафик, подменив адрес (чем-нибудь типа snat) на фаерволле/граничном роутере. При этом на самом сервере ничего не требуется делать, да и маршрутизация у провайдера в таком случае вас уже не волнует.willyd
21.12.2017 11:57Именно для меня было туманно.
Я как бы подразумеваю, что есть локальная сеть. Оба варианта сводятся к вопросу «а как выходим в интернет?». Поскольку в обоих случаях нам придется либо настраивать все на ядре, либо на каждой торговой точке.
Но splav_asv все-таки более правильный, с точки зрения сети, вариант предложил. Негоже такой костыль (жесткий роут белого адреса) в своей сети выстраивать.
mayorovp
21.12.2017 11:57Если точка одна — то никакого туннеля не нужно. Если точек несколько — то туннель нужен в любом случае.
Получается — оба решения сводятся к одному и тому же и какое из них выбрать — вопрос вкуса.
Repich
21.12.2017 18:30Нам Штрих обещал в октябре сделать прошивку с возможностью обновления с наших серверов, но сказали, что сделают в низком приоритете. Так что можно, если сильно захотеть.
KorDen32
21.12.2017 10:27Баг был в прошивках, вышедших с июня (или мая?) по декабрь. Мартовские прошивки работали.
Проблема в том, что в то время было много багов и глюков в прошивках, и поэтому большинство обновлялось.willyd
21.12.2017 10:39Я привык, что оборудование начиная с SOHO сегмента позволяет, как минимум поднять свой сервер обновлений, чтобы избегать ситуаций с установкой непроверенных апдейтов с сайта производителя. По этой причине многие крупные сети и не активируют автообновление.
А насколько было бы проще, активировали автообновление на свой сервер и на него выкладывать апдейты проверенные у вас на стендах и тестовых магазинах.
Даже в этой ситуации, у вас был активирован автоапдейт и все, что нужно было для исправления ситуации — это положить исправленную прошивку на сервер и передернуть кассы.
ЗЫ. Задним умом крепки все…
daggert
20.12.2017 20:06+2т.к. моя халтура это в том числе установка и обслуживание касс — сегодня утром я чуть не повесился. На данный момент у меня лежит 22 кассы снятые с точек и кучу упущенной прибыли у клиентов.
Хорошо что хоть не в пятницу… перед новым годом.
Спасибо за пост. Пойду чинить.Milfgard Автор
20.12.2017 20:11Ну, в нашем случае — спасибо, что не тридцатого. 30 и 31 декабря у нас очереди в три петли в зале и с хвостами на улицу на некоторых точках.
YaMishar
20.12.2017 20:43+1ТТТ, не кажи гоп! :)
Удачи 30 и 31. Если не привезут мне из UGear подарок для ребёнка, пойжу к вам стоять в очередь в три петли.Milfgard Автор
20.12.2017 20:46+1Мы лет пять назад научились правильно всё делать — например, больше касс ставить и выводить огромные смены продавцов, иногда сразу по 8-10 человек на зал 40 квадратных метров. Поэтому такой момент с очередью сейчас относительно короткий, обычно 30-го в 18:00-18:30 и на точках прямо у метро. Плюс ещё мы обычно оставляем один магазин 31-го допоздна работать, для тех, кто совсем не успел.
Зато утром первого января приходят совершенно очаровательные люди. Продавцы в магазинах по ним гадали в том году — было важно, какую игру купят в магазине первой за год.anprs
21.12.2017 06:26Плюс ещё мы обычно оставляем один магазин 31-го допоздна работать, для тех, кто совсем не успел.
Вот за это отдельное спасибо ;)
wolfus
20.12.2017 22:08Значит у вас банально не хватает касс, экономите ФОТ.
Milfgard Автор
20.12.2017 22:12Площадь торгового зала не позволяет поставить 10 касс.
areht
23.12.2017 11:50Помнится в макдаках год назад бегали девочки с терминалами и «что изволите?». Вряд ли именно количество Штрихов узкое место?
Т.е. «интерфейс» — на мобиле, оплата картой — mPOS какой-нибудь, и сервер со штрихом и ФНС выдает чек на выходе.
suslayer
20.12.2017 21:36+1Дада, цто не нужно, я сделаю все сам. Торговый объект #1 после перепрошивки и в путь. Завтра постараюсь расписать как это видели большинство цто по стране, после работы "самоделкиных".
Tippy-Tip
20.12.2017 23:10+2Это «самоделкины» регулярно фаршировали багами прошивки «Штрихов» с апреля по октябрь?
suslayer
21.12.2017 09:51Нет, и что? Речь шла про "мою халтуру" и то что на момент написания комментария "у меня лежит 22 кассы снятые с точек", вместо быстрого решения проблемы на месте.
daggert
21.12.2017 10:13Кхм. Все ЦТО нашего города приняли кассы к себе на ремонт и поставили в очередь. Вы думаете что там боги работают? Точно такие-же люди как и мы. Кстати человек с которым я халтурой данной и занимаюсь — оттуда и уволился, после 10 лет работы. Ремонт в сервисе будет от 2 до 5 дней.
С утра повалились поломки и банально почитать интернет было некогда, с самого утра информации о быстром ремонте не было.suslayer
21.12.2017 10:35Да считаю. Информация была. Уже на 05:20 МСК была доступна прошивка исправляющая проблему.
daggert
21.12.2017 10:44У вас есть право считать их богами, у меня есть право считать иначе, оглядываясь на два заваленных центра обслуживания кассового оборудования. У меня все уже отдано, у них — от двух до пяти дней.
iborzenkov
20.12.2017 20:24+1Хех, судя по комментам на форуме предположу что у подрядчиков обидели программистов.
А вообще за такие законы о торговле и требование использовать их зарытую хрень нужно ФНС руки оторвать.suslayer
20.12.2017 21:59Дело не в закрытой хрени.
iborzenkov
20.12.2017 22:42В данном случае в закрытом протоколе и одной программе — поэтому легли все сразу.
yosemity
20.12.2017 22:44Легли все сразу у одного вендора. Как открытый протокол может гарантированно уберечь от такого рода проблем?
iborzenkov
20.12.2017 22:50никак, просто проблема была бы гораздо менее маштабной
yosemity
20.12.2017 22:59Хм. Вы точно понимаете о чем идет речь? Косяк допустил только один производитель. Допустил в своем оборудовании. Есть еще производители, есть другое оборудование. Масштаб проблемы говорит только об охвате Штрихом рынка касс в России.
При хоть сколько открытом протоколе, это никак бы не помогло не сотворить ошибку в коде.iborzenkov
20.12.2017 23:24Да, я понимаю, но из-за искусственно созданной олигополии получился достаточно широкий охват. Такая-же ситуация получится с 1С или с ошибками в windows, фигово вобщем, ладно, забейте.
Regis
21.12.2017 08:10Ну был бы протокол открытый. Ну накосячил бы разработчик какой-то базовой используемой всеми либы (открытой!) для реализации этого протокола — точно так же могли бы лечь все. Открытость сама по себе не спасает от ошибок. Тот же OpenSSL (Heartbleed) вспомните.
cjava
20.12.2017 20:51Да, утро было веселым. А разве вскрытие ККМ не означает лишение гарантии/снятие с учета? Интересно, у Атол устроили внеплановое codereview на всякий случай? :-)
Milfgard Автор
20.12.2017 20:53Новые кассы (которые вот с этой приблудой с онлайн-отправкой вместо ЭКЛЗ) можно открывать, но они слетают с гарантии. В нашем случае слетело несколько касс, но это мелочи в сравнении с простоем.
ARD8S
20.12.2017 21:25А разве снятие с гарантии в таких случаях законно? Пусть заново опечатывает СЦ производителя за счёт погромистов, выпустивших лажовую прошивку.
yosemity
20.12.2017 21:32Законно. Можно же было обратиться к фирме-продавцу и они бы решили вопрос по гарантии. Вот только, я уверен, что у тех ребят сейчас даже в туалете стоят кассы, ждущие прошивку.
ARD8S
20.12.2017 21:36Дефект же вызван производителем или уполномоченными им лицами. Почему ответственность должен нести пользователь? Они же не просто так туда полезли. Форс-мажорные обстоятельства.
yosemity
20.12.2017 21:37Так гарантийные обязательства и подразумевают устранение неполадок в случае дефекта.
ARD8S
20.12.2017 21:45Это я к тому, что если тех.спецы пользователя перезалили только прошивку на официальную же и работает дальше, то весь остальной аппарат не должен сниматься с гарантии. Ведь действия пользователя не привели к повреждению оборудования.
yosemity
20.12.2017 21:49Это не важно. Есть определенные условия при которых устройство снимается с гарантии. Если нарушение гарантийных пломб, следы вскрытия и собственноручная перезаливка прошивки не противоречит законодательству, то снятие с гарантии законно.
ARD8S
20.12.2017 21:54Это зависит от гарантийной политики производителя. По идее, в этом конкретном случае, производитель должен пойти на встречу (их вина) и с гарантии не снимать. Прийти, проверить, опломбировать заново. Если снимут- ну не в честь им. Жаль, что покупка этого оборудорвания всё равно принудительная.
yosemity
20.12.2017 22:17+1Это всё понятно, и, думаю, Штрих пойдет на это, т.к. репутация подмочена капитально и это коснулось очень многих. Я имею ввиду, что пострадали не только продавцы, но и потребители. Если у какого-то ОпСоСа в регионе N упала связность, то это проблема одного оператора в одном регионе и абсолютное большинство жителей страны узнает об этом из новостей. А тут узнала вся страна. Я сам, хоть и не в рознице и не на Штрихе, до машины с утра не успел дойти как в телеге коллеги уже обсуждали как розница волосы рвет у себя и поддержки.
Ну а ваш вопрос был про законность снятия с гарантии.
a1ien_n3t
21.12.2017 11:04Запомните пожалуйста. Производитель не может лешить/снять с гарантии. Это может сделать только суд. И производитель будет обязан доказать, что поломка была вызвана действиями пользователя. Почитайте как нибудь ЗОЗПП
Ugrum
21.12.2017 11:44Почитайте как нибудь ЗОЗПП
Какое отношение он имеет к договорным взаимоотношениям между коммерческими организациями? Он на защиту физиков заточен.
yosemity
20.12.2017 21:10+1К сожалению, работало это только на тех интерфейсах, где кабель был COM 9pin — COM 9pin. На всех остальных кассах подключения к компьютерам просто не было. Потому что довольно тяжело найти компьютер с COM 25pin, например.
Не понял, в смысле Штрихи идут с 25pin? Ну это повод оборудовать рабочие места переходниками 25 на 9. А на материнках COM-порты существуют повсеместно, вот только не выведены обычно. Или у вас используются не стандартные системники, а неттопы и прочее?Milfgard Автор
20.12.2017 21:17У нас моноблоки или такие мелкие системники, которые типа интел-нуков, только не нуки. В любом случае, даже обычный тауэр продавец не разберёт сам. Для выездных касс ноутбуки.
sasa_mi
20.12.2017 21:20Так кассы у вас к этим ноутбукам не подключены, вы хотите сказать? Или подключены по USB, а по нему обновление прошивки недоступно? А через usb-com переходник, о котором вы, кстати что-то писали?
Milfgard Автор
20.12.2017 21:25COM-шнур нужен для сервисного доступа. Через обычный USB для стандартного аплинка не перепрошивается, через переходник фокус тоже не канал.
sasa_mi
20.12.2017 21:31+2А должен был "канать". Я бы вам рекомендовал поискать переходники, которые будут работать с этой задачей (в основном проблема с драйверами там, и на каком уровне эмулируется COM порт), и запастись на будущее, чем черт не шутит :)
Adverte
20.12.2017 22:12или такой вариант при наличии порта
yosemity
20.12.2017 22:20Выше Сергей написал, что у них или моноблоки или а-ля неттопы. Куда им это ставить?..
ARD8S
20.12.2017 22:24Чисто предположение: Даже если там нет PCI-Ex1 слота на МП, а если попробовать такую штуку воткнуть в PCI-E-usb3.0, как майнеры используют?
yosemity
20.12.2017 22:26+1Дело тут не в скорости, а в совместимости и принципиальной возможности шить кассу через USB->COM конвертер. Но я согласен, что скорее всего не было времени подобрать рабочий, юзали что было под рукой.
sumanai
20.12.2017 22:27А разве там не специальный usb3.0, который другим концом нужно втыкать в плату PCI-E? Просто сомневаюсь, что прокинуть эту низкоуровневую шину через обычный usb так просто, по стандарту это возможно только в 3.1 в альтернативном режиме.
beerchaser
21.12.2017 00:15Moxa n5110 спасет отца русской демократии… Тот же rs-232 теперь ещё и по езеру. Цена ~ 5 тыр. У нас пока кассы не стали с езером по дефолту- все так работали.
Krypt
21.12.2017 12:34В качестве безумной идеи: а что с виртуальными машинами? Если прокинуть com-порт в них (даже не помню, возможно ли это) — как они работают с физическим портом?
ashumkin
21.12.2017 13:39Если прокинуть com-порт в них (даже не помню, возможно ли это)
возможно ) прокидывал в VirtualBox 5.1.26, хост — Linux Fedora 25, виртуалка — Windows 7
beerchaser
21.12.2017 13:46На VmWare — проблем нет при условии наличия физики RS-232 у сервера-хоста. На прочих — преобразователи интерфейса Moxa n5110 или аналоги. Моху привожу в качестве решения, т.к. имею опыт эксплуатации. Проблем не было. Единственно, кассы подключенные к RS-232 через моху после появления штатного езера (с подключением к ОФД) стали странно тормозить. Как следствие — перешли на езер.
Krypt
21.12.2017 15:20Я имел ввиду, заработает ли это с драйверами китайского «COM-шнура», который не работал у Milfgard'а. Возможно виртуалки транслируют вызовы в более современный формат.
mayorovp
21.12.2017 09:50Только если «шьющая» программа работает через драйвер а не через порт 3F8, как до сих пор советуют делать некоторые туториалы.
Alexeyslav
22.12.2017 09:41В последний раз напрямую обращаться с портами позволяла лишь Win98, в более старших операционках такое уже не прокатывает. А у USB-переходников другая принципиальная проблема связанная с физической работой USB-шины которая иногда может стать боком если протокол обмена жестко завязан на тайминги.
mayorovp
22.12.2017 09:45Прокатывает, есть специальный драйвер (или даже несколько) который позволяет программам работающим от админа обращаться к портам.
Alexeyslav
22.12.2017 10:52Этот драйвер… это такая ДЫРИЩА в системе, что говорить о нём даже не хочется. Это костыль, причем такой костылище… темболее что он в 8-ке и 10-ке уже не работает. окончательно похоронили.
mayorovp
22.12.2017 11:41То, что он не работает в восьмерке и десятке — это, в понимании тех кто им пользуется, лишь причина оставаться на более старых ОС где «не поломали обратную совместимость».
По-настоящему его похоронили производители материнских плат которые перестали предусматривать на них COM- и LPT-порты. Как пришлось выбирать между поиском раритетных карт расширения для PCI и покупкой куда более распространенных переходников USB-COM/USB-LPT — так даже динозавры поняли что и правда пора учить правильные способы работы :-)Alexeyslav
22.12.2017 14:23Не знаю, комп 3-х летней давности, память DDR3 а порты COM и LPT аппаратные в наличии.
Tippy-Tip
22.12.2017 21:55Да и на современных материнских платах площадка под COM присутствует. Только планку со шлейфом и розеткой (разъемом) нужно отдельно приобретать.
Iceg
20.12.2017 22:08+1На DSUB9 может быть не только com aka rs232, но и rs485, например. Они принципиально различаются. Либо попался китайский ширпотреб. Если будете думать как уберечься от повторения полярной лисички, попробуйте конвертеры производства MOXA, это серьезное промышленное оборудование, ещё не встречал, чтобы они не подходили куда-либо.
geoficus
21.12.2017 00:15+1Milfgard Штрихи можно прошивать через usb, используя режим dfu с помощью dfu-utils. Правда, загрузчик в Штрихе должен быть от 131 версии и выше
Milfgard Автор
21.12.2017 00:16Спасибо, но боюсь, если есть выбор в такой ситуации между «пытаться понять, почему нет» и «взять ком-шнур и вперёд», второе как-то практичнее. Но мне до безумия интересна история аптечных сетей и Магнита, где касс на порядок больше.
geoficus
21.12.2017 07:54Вот описание этого магического ритуала, может кому-то пригодится forum.shtrih-m-partners.ru/index.php?topic=32414.0
Compiller
21.12.2017 11:29Вот когда надо было спихивать кабеля COM 9pin-9pin-25pin от старых диалап модемов.
sumanai
20.12.2017 21:29+1Вот не ожидал увидеть объяснение простоя аптеки с буфетом у меня на работе на Хабре!
stifff
20.12.2017 21:30А технических подробностей бага нет?
suslayer
20.12.2017 21:33+1Есть, привет unixtime.
yosemity
20.12.2017 21:36+1А что не так с unixtime? Не 2038 год же.
suslayer
21.12.2017 10:05Почитайте как хранится тег 1012 в ФН. ККТ пыталась прочитать время последнего документа после открытия смены и спотыкалась на преобразовании в календарное время того что хранится в ФН, все это подвисало, срабатывал сторожевой таймер и циклический ребут....
KorDen32
21.12.2017 10:52А что за волшебное значение вызывало такое поведение? Там ведь никакие не единицы вроде и не переполнения, если именно unixtime. Или там хранится не совсем unixtime?
suslayer
21.12.2017 11:47Значение совершенно обычные. Проблема в конкретной реализации time.h и как пример в time_t mktime(struct tm *p), то что приехало на вход, на выходе получилось не таким как ожидалось...
mayorovp
21.12.2017 12:06Ну так а что за проблема-то там в реализации была?
suslayer
21.12.2017 12:22Вы можете самостоятельно поинтересоваться у компетентных сотрудников производителя, или вы хотите ревёрсинг прошивки в комментариях?
mayorovp
21.12.2017 12:29Вы здесь написали уже кучу комментариев в ответ на вопрос о подробностях, но никаких подробностей так и не раскрыли. Означает ли это, что вы на самом деле ничего не знаете?
Если нет, то что мешает вам рассказать наконец-то что там было?suslayer
21.12.2017 12:51Непосредственно для вас, да.
Krypt
21.12.2017 13:49+1Знаете, это неуважение к посетителям сайта. Ок, посмотрел я что там в 1012м поле: дата. Спасибо Кэп. Что такое надо сделать с датой, чтобы её максимальное значение истекло 20 декабря 2017, а не в январе 2038?
suslayer
21.12.2017 14:31Ок, как по вашему должен выглядеть ответ на данный вопрос? Кусок кода закрытой и защищенной производителем прошивки? Нет, этого не будет, можете расходится и не ждать. Если вас интересует "что такое надо сделать с датой", могу оставить ссылку на вопрос StackOverflow в котором проблема имеет такие же корни.
Krypt
21.12.2017 15:11+1> Опять таки, хабр такой хабр…
Ваши комментарии выглядят так, как будто бы вы знаете реальную причину. Комментарии автора так не выглядят.
Да и в общем-то даже со стороны понятно, что это что-то вязанное с датой, если сбои пошли по часовым поясам.
> Кусок кода закрытой и защищенной производителем прошивки?
Как правило, 10 строк погоды не делают. На худой конец можно дать словесное описание того, что произошло.
Единственная проблема — признание факта присутствия бага… Но этот факт подтверждён предпринимателями по всей России.
Но всё это имеет смысл только если вы имеете доступ к исходникам либо вы делали декомпиляцию кода. Ваши комментарии намекают именно на это.
> могу оставить ссылку на вопрос
Ок, спасибо. Это проясняет ситуацию хоть как-то.
suslayer
21.12.2017 14:48Опять таки, хабр такой хабр… Автору поста в связи с его "высоким статусом" можно верить на слово, здесь же нам разжуйте и положите в рот, печально это.
Shultc
21.12.2017 15:08+1Мы хотим понять, о чём вы говорите.
А что такое проблема-2000 мы и так знаем.
sav6622
20.12.2017 21:37Вкатали бы производителю иск. Желательно на все 10 млрд рублей потерь. Научились бы работать.
yosemity
20.12.2017 21:39Факапы бывают у всех. Уверен, что в EULA прописано, что производитель не несет ответственности за упущенную прибыль.
sav6622
20.12.2017 21:47Ну да, и у производителей ответственного оборудования тоже — к примеру, систем вентиляции легких.
yosemity
20.12.2017 21:52Факапы бывают у всех
И да, в том числе в сверхкритичных областях, где уровень тестирования и ответственности несоизмеримо выше. Я не защищаю косячников, но засудить Штрих вряд ли удастся, только если этим будет заниматься на сама ФСН. Уверен, вот перед налоговой обязательства как раз есть.sav6622
20.12.2017 22:18Если в этом преценденте никто иск не вкатает, то остальные и сам производитель будут тестировать еще хуже — ведь ничем не рискуют...
philya
20.12.2017 22:26Начинать судить нужно с самой ФСН — она внесла продукцию Штриха в реестр. )
Tippy-Tip
20.12.2017 23:20ФНС тут не причем. Чтобы ФНС внесла продукцию в реестр, она должна получить результаты экспертизы. Так что судить надо «экспертов», давших положительное заключение по штриховской продукции, а не ФНС.
philya
21.12.2017 02:26Экспертов назначает/выбирает/держит в штате ФНС.
https://www.nalog.ru/rn77/related_activities/registries/kkt/
Tippy-Tip
21.12.2017 23:58
xenon
20.12.2017 22:43Тогда ужасная ситуация получается, когда предпринимателей (которые по определению несут риск в своей деятельности) обязывают вести бизнес с учетом какого-то компонента, который риск повышает, и никто этот риск не принимает на себя.
Более справедливо (и полезно для бизнеса, наверное) было бы не просто создать приятный сегмент рынка для производителей этих касс (неплохо так им рынок на миллиарды создали), но и обязать их, если уж занимаются — компенсировать это. А то с одной стороны у нас свободы и либерализм (имеют право производить без гарантии, не надо кошмарить бизнес), а с другой — принуждение (попробуй-ка не купить эту кассу-сюрприз. захочет — будет чеки выбивать, захочет — будет играть веселые мелодии).
yosemity
20.12.2017 23:08Всегда будет «какой-то компонент, который повышает риск». Удобство и безопасность (в данном случае вероятность отказа, т.к. сложность системы растет) на разных чашах, не устану это повторять. Можно ведь и при свечах работать и на счетах считать, выписывая товарники от руки. Но вряд ли это будет конкурентноспособно.
Karpion
20.12.2017 23:18Ну так пусть сам предприниматель и решает, как ему работать — при свечах или ещё как. Потому что если государство обязывает предпринимателя использовать техническую хрень — то пусть то же государство обязывает производителя этой хрени гарантировать качество путём принудительной подписки на страхование предпринимателя (страховать можно самостоятельно у себя или у сторонней страховой фирмы).
ARD8S
20.12.2017 23:29Ну так оно может и будет, только за счёт предпринимателя, а он заморочится оформлением бумажек может и сам, но переложит свои расходы на потребителей. Производитель оборудования также включит эти расходы в стоимость оборудования и технического сопровождения. И снова за всё заплатят потребители. Т.е. все мы. Хотите аналог ОСАГО на всех предпринимателей? В выгоде будут только страховщики, которые ещё заплатят часть прибыли в бюджет. Я думаю законодателям понравится ваша инициатива.
xenon
21.12.2017 02:19Ну, хорошую идею сделать в особо циничной и извращенной форме, у нас любят, да.
Но, кмк, при правильном подходе, мне кажется, после такого инцидента, стоимость страховки для этого вендора взлетела бы до небес, так как известно, что контроль качества ПО он не осуществляет, фактически это было бы равно закрытию бизнеса. После этого все прочие вендоры свои сорцы бы наизусть перечитывали, потому что в случае фейла, было бы не «ужас как неловко», а настоящий финансовый ущерб.
У меня в юношестве было странное ощущение (мне тема безопасности всегда была интересна), что, мол, это там где я работаю — бардак в плане надежности и безопасности, все «на скотче» как-то. Но, думал, в финансовых компаниях — все иначе совсем. А когда соприкоснулся по работе с финансовыми… Да нет, так же у них, такой же бардак. Только люди гораздо более безответственные. Потому что я считал, что бардак терпим только в нашей некритичной сфере, а в финансах он недопустим, а они считают, что и в финансовой сфере можно. Ничего страшного. Ну встала целая сфера розничной торговли по всей стране. Ну не могут автомобили заправиться. Ну… неловко. Извиниться нужно и все.
Karpion
21.12.2017 03:14Для начала — все эти затраты будут вычтены из налогооблагаемой базы.
Но принудительная страховка хотя бы затормозит скатывание экономики в копрономику (я надеюсь, Вы в курсе, что это такое и как оно возникает).
yosemity
20.12.2017 23:36Как раз у предпринимателя есть возможность не использовать как кассы, так и свечи.
пусть то же государство обязывает производителя этой хрени гарантировать качество путём принудительной подписки на страхование предпринимателя (страховать можно самостоятельно у себя или у сторонней страховой фирмы).
Да это же шикарная идея! )) Срочно в стартап! Сколько, интересно, будет стоить страховка при внедрении касс для ритейла, вроде этой же Мосигры? На сколько вырастет цена на дженгу? Чего далеко ходить, давайте тогда и эндюзеров винды страховать от блюскринов.
UPD. ARD8S опередил.
electronus
21.12.2017 20:43+1Я думаю идеальным вариантом была бы ответственность производителя в размере цены оборудования. На западе с товаром ненадлежащего качества поступают просто — приходят и возвращают в магазин, получив потраченные средства назад. Вот такой один факап и вуаля, от твоих касс отказались. Имеет смысл
xenon
21.12.2017 21:15В конце лета дядя Коля обходил дома поселка и просил у хозяев по пятерке, обещая всю зиму сторожить от покражи. За такую цену никто не отказывал, и дядя Коля с карманами, полными пятерок, направлялся к магазину. Если же зимой какой-то дом все-таки взламывали (шпана из райцентра набегала), то дядя Коля шел к
хозяевам каяться: «Виноват! Оплошал, не уберег добро, родные мои! Вертаю
средства, совесть не позволяет, раз оплошал!» — и благородно возвращал
деньги. Поскольку за зиму обычно обкрадывали только две-три дачи, то дядя
Коля не оставался внакладе.
Mendel
21.12.2017 21:40Да что вы к ним прицепились.
Они свое уже и так заплатили без всяких штрафов.
Они потеряют заметную (не очень большую, но заметную) часть рынка просто потому что люди будут помнить о двадцатом декабря и слагать легенды.
Оно может и не факт что объективно, но многие эмоционально будут принимать решения против их предложений. Ну и часть да, начнет разводить зоопарк покупая часть касс конкурентов просто для разнообразия.
Всё.
Этого достаточно чтобы их наказать.
А большие наказания их могут просто убить.
Может и черт с ними, убьют и ладно.
Я не знаю специфику этого рынка. Может они и плохие игроки и их не жалко.
Не знаю.
Но ведь другим страшно будет.
Лезть будут или отмороженные, или те у кого крыша не протекает или те кто заметно взвинтит цену. Будут больше опасаться и все такое. После каждой ошибки будут вылетать из игры, так и не набрав опыта. Кому это выгодно?Shaltay
22.12.2017 17:07Я не знаю специфику этого рынка. Может они и плохие игроки и их не жалко.
У них нет поддержки Linux, в отличие от Атол. Так что да, игроки они скверные.
ClusterM
20.12.2017 21:41Так интереснее всего — в чём причина бага? Есть какой официальный ответ от Штрих-М? Очень похоже на умышленную диверсию. Не вижу другой причины, почему ещё это всё началось именно в этот день.
Milfgard Автор
20.12.2017 21:42Помните проблему-2000?
ClusterM
20.12.2017 21:47Ту, которой не было?
yosemity
20.12.2017 21:55Вообще-то проблема была. То, что подавляющее большинство к ней подготовились не говорит о том, что это был фейк.
khim
20.12.2017 23:26То что вас «не задело» не означает, что проблемы не было. Хорошо помню и 19100й год на форумах и спирометрию, датированную 1900м годом (снять показания эта сволочь могла в 2000м, а передать в компьютер — уже нет, так что пришлось лабораборию 1900й год отправить).
Это то, с чем лично сталкивался. Наверняка и другие косяки были. И это после того, как в предотвращение проблемы вбухали просто-таки космические деньги!
encore-show
21.12.2017 10:38Речь о проблема Y2K? Ситуация похожая вышла? А так молодцы, что оперативно разработали волнообразный накат. Как-то давно работал в рознице, а там любая проблема с кассой всегда стоила нерв. т.к. не объяснишь руководству причину, они то, деньги теряют.
yosemity
20.12.2017 21:43Чью диверсию? Атола? )) Да ну, просто в 00:00:00 20.12.2017 что-то багануло в фирмвари.
ClusterM
20.12.2017 21:47И чего особенного в этой дате?
yosemity
20.12.2017 21:53sumanai
20.12.2017 22:002017 != 2038.
В UNIX TIME дата факапа выглядит как 1513728000, в двоичном виде это 1011010001110011010100000000000. Я не вижу в этих числах ничего особенного.yosemity
20.12.2017 22:22Прошу прощения, меня перемкнуло, я посчитал, что ClusterM отвечал на этот мой комментарий
Almaaa
21.12.2017 08:05Судя по описанию проблемы y2k на той же вики, стало понятно что тут как раз дело в этой unixtime. Скорее всего есть какая то зависимая дата от даты чека, например дата окончания хранения записи или что нибудь в это духе, которая при подсчете может переполнится.
brzsmg
21.12.2017 16:19По слухам — закладка.
Типа такой:
if(now >= '2017-12-20'){reboot;}
Но раз говорят что в налоговую приходил 2012 год. То скорее он, что то с форматом придумал/перепутал. Вместо DDMMYYYY использовал YYYYMMDD.
Инсайд подтвердил, что ошибку искусственно заложил увольняющийся программист.
Источник.
mva
20.12.2017 21:58+3Карина, руководитель розницы и бывшая глава нашего ИТ-департамента, параноик.
Передайте Карине привет, мешок респекта и лучи уважения :)
// потому что параноиков никто никогда не слушает, но они всегда оказываются правы :)
xenon
20.12.2017 22:50причем самое обидное, что Карина оказалась права один раз, а «оптимисты» каждый день. «ну ведь сегодня же запасное колесо и ремни безопасности не пригодились! Уже год зря возим».
DS28
Такое решение где-нибудь было применено или вы всё же самые крутые ребята и успели всё быстро починить?
Milfgard Автор
Покупатель уйдёт без чека. Но сегодня это можно, потому что есть разъяснение ФНС. Магазины не нарушают закон, поскольку признан технический сбой. Когда речь про сбой, можно не бить чеки (только в обычных условиях это сложно доказать).
Но при восстановлении кассы все чеки нужно выбить. Правильно выбивать чеки, используя механизм «чек коррекции».
DS28
Меня бы смутило, как покупателя, что мне чек не выдают… (мало ли какие бумажки ФНС)
Milfgard Автор
Для возврата и гарантии чек вообще-то не нужен. По закону. Ну и не забывайте, что те, кто на ЕНВД в регионах, вообще могут не выдавать чек — он даётся по желанию покупателя.
DS28
Век живи, век учись…
Очень круто, что так оперативно отработали и ещё пост запилили в тот же день))
Milfgard Автор
Мы ещё не до конца отработали, сейчас осталось две кассы в Москве. Думаю, основные участники событий тоже подтянутся попозже, все с отвёртками в полях.
kaatula
После такой эмоциональной статьи, слово "полях" прочитал сначала неправильно....
Carburn
Для возврата товара надлежащего качества чек нужен.
sumanai
Можно использовать другие доказательства совершения покупки в этом магазине:
wolfus
Товарный чек никто не отменял, а его пробить могут в любом нормальном магазине. Я ради прикола сегодня взял товарник в Магните — вопросов не было, всё сделали.
yosemity
Товарник, вроде, вообще любой продаван обязан выписать, хоть от руки, главное с подписью и печатью.