fixin (fixin) wrote,
fixin
fixin

Categories:

Шарада про распределенную софт-железную транзакцию



Есть кассовый софт - фронт кассира и подключенный к нему фискальный регистратор.


На каком софте написан фронт кассира, принципиального значения не имеет, допустим это 1С.


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


1. В софте в базе данных фиксируется сумма и состав чека и осуществляется списание товара и приход денег по учету.


2. Чек пробивается на фискальном регистраторе.


3. Софт получает от фискального регистратора подтверждение, что чек пробит и фиксирует пробитие чека в базе данных, например, меняет статус чека на "Пробит".


Практика показывает, что транзакция может прерваться на шаге 2 или 3.


Если прерывание произойдет на шаге 2, то в базе будет лишнее списание товара и поступление денег.


Если прерывание произойдет на шаге 3, то все нормально как бы - товар списан и деньги поступлены. Но чек не будет отмечен как пробитый и его могут ошибочно попытаться пробить еще раз.


По закону больших чисел постоянно возникают эти проблемы.


Я долго думал, как их решить и нашел решение.


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


Но бог вам в помощь, я составил зашифрованное послание в будущее на 6 января 2014 года, чтобы никто не обвинил меня, что я устроил мозговой штурм, не зная решения. Там изложено не только самое дешевое и оптимальное по соотношению цена-качество решение, но и другие способы:



Думайте, черепа! Гуру-тест!



 

Tags: гуру-тест 1с
Subscribe
promo fixin december 31, 2037 16:57 1417
Buy for 30 tokens
UPD: Друзья, в августе 2019 года блог переехал на http://fixinchik.ru. Welcome! Добро пожаловать в журнал Осипова Сергея Александровича, известного также как Fixin и Гений 1С. Рекомендую ознакомиться с Часто Задаваемыми Вопросами обо мне. Что я хочу в подарок - список. Мой проект "…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 53 comments