— У нас лишний зритель, — сказала кассирша Лариса Петровна.
— Человек?
— Если бы человек. Билет.
Я тогда помогал в маленьком кинотеатре «Ракета», где мой дядя Саша отвечает за проектор и звук. У нас один зал, сто двадцать кресел и касса у входа, которая печатает билеты на узкой термобумаге. Бумага темнеет от нагрева, поэтому чернил в принтере нет.
Лариса Петровна положила передо мной два билета.
Оба были на шестой ряд, место двенадцать. Оба на один и тот же сеанс. Оба с одинаковым временем продажи.
— Значит, принтер напечатал два раза.
— Я тоже так подумала, — сказала она. — Но в компьютере продажа одна. Если бы просто выползла копия, ничего страшного. А теперь смотри.
Она достала ещё пару.
Ряд девятый, место пять. Опять два одинаковых билета.
— Два лишних зрителя, — сказал я.
— Уже четыре. Утром было то же самое на детском сеансе.
— Тогда шесть.
— Не радуйся арифметике. Через сорок минут полный зал.
Дядя Саша присел у принтера.
— Бумага идёт рывком?
— Нет.
— Кнопку «Печать» кто-нибудь нажимает второй раз?
Лариса Петровна посмотрела на него так, что вопрос сам отменился.
Мы сделали пробную продажу свободного места, потом сразу отменили её. Принтер выдал один билет.
— Исправился, — сказал я.
— Техника особенно любит исправляться, когда на неё смотрят, — ответил дядя.
Следующая покупательница попросила два места. Принтер честно выдал два разных билета.
Потом пришёл мужчина за одним билетом. Принтер выдал один.
Мы уже почти решили, что сбой был утренним и закончился, когда из щели медленно выполз ещё один билет на то же место.
Лариса Петровна подняла его двумя пальцами.
— Вот наш невидимый киноман.
Дядя Саша отключил принтер от кассы.
— Теперь он ничего получить от компьютера не может.
Через несколько секунд принтер снова зажужжал и выплюнул полоску бумаги.
На ней было написано: «Ряд 4. Место 7».
— Он помнит старые задания, — сказал я.
— Похоже, — ответил дядя. — В принтере есть буфер. Небольшая память, куда попадает задание, пока устройство его печатает.
— И там застряли билеты?
— Если бы просто застряли, они бы вышли подряд. А эти появляются по одному.
Лариса Петровна посмотрела на часы.
— У вас тридцать пять минут на научную деятельность.
Дядя снова подключил принтер и открыл служебное окно на кассовом компьютере. Там шёл журнал: продажа, печать, успешное завершение. Для лишних билетов второй команды не было.
— Значит, компьютер их не посылает, — сказал я.
— Пока так выглядит.
— А принтер сам решает, кому сходить в кино?
— Для этого у него слишком узкий кругозор.
Мы поменяли рулон бумаги. Ничего.
Протёрли датчик под крышкой. Он определял, есть ли бумага в тракте. Ничего.
Перезагрузили принтер. Минуту он молчал.
— Победа, — сказала Лариса Петровна.
Принтер зажужжал.
— Рано, — сказал я.
Вышел ещё один старый билет.
Дядя нахмурился.
— После полного выключения память должна была очиститься. Значит, источник не там.
— Но компьютер не отправляет команду.
— Этот компьютер — не единственное устройство в сети.
Я посмотрел под стойку. Там стоял маленький сетевой коммутатор — коробка, в которую сходились кабели от кассы, принтера и компьютера администратора.
— Кто ещё умеет печатать билеты?
— Администратор. Иногда из кабинета печатают бронь для групп.
Мы пошли к администратору Марине. У неё был открыт план зала, почта и огромная таблица с расписанием.
— Я ничего не печатаю, — сказала она. — И вообще мой принтер тут.
Она показала на обычный офисный аппарат.
— А билетный?
— В системе есть. Но я им почти не пользуюсь.
Дядя открыл очередь печати на её компьютере.
Пусто.
— Отлично, — сказал я. — Значит, у нас призрак.
— Призрак с драйвером принтера, — сказал дядя.
Марина вдруг перестала улыбаться.
— Подождите. У меня вчера зависла программа бронирования. Я нажимала «Печать» несколько раз, но ничего не выходило.
— Когда?
— Вечером.
— Какие места?
Она открыла вчерашнюю групповую бронь. Шестой ряд, место двенадцать. Девятый ряд, место пять. Четвёртый ряд, место семь.
Лариса Петровна, которая пришла следом, скрестила руки.
— Нашли кинообщество невидимых зрителей.
Но оставался вопрос: почему вчерашние задания стали печататься сегодня и почему их не было в обычной очереди.
Дядя Саша открыл настройки программы бронирования. Там оказался отдельный модуль печати со своей папкой заданий. Когда связь с билетным принтером вечером пропала, программа не выбросила команды. Она складывала их в очередь и ждала, пока снова увидит устройство.
— А сегодня связь появилась, — сказал я.
— Да.
— И программа начала отдавать всё, что накопила.
Марина нашла семь старых заданий.
— Семь?
— Шесть уже вышло, — сказала Лариса Петровна.
Все посмотрели на принтер.
Он зажужжал.
Седьмой билет появился с таким спокойствием, будто только его и ждали.
— Всё, — сказала Марина. — Больше нет.
Мы очистили служебную очередь и отключили автоматический повтор печати старых заданий. Потом дядя попросил меня провести проверку.
Я сделал новую тестовую бронь. Один билет.
Отключили сетевой кабель.
Сделал вторую. Программа показала ошибку и предложила либо повторить позже, либо отменить задание. Никакой скрытой очереди уже не возникло.
Подключили кабель. Старый билет сам не вышел.
— Теперь нормально, — сказал дядя.
— Теперь мне нужен другой ответ, — сказала Лариса Петровна. — Что делать с семью лишними билетами? Люди могут прийти с ними.
Марина покачала головой.
— Не могут. Это вчерашние тестовые брони, их никому не выдавали.
— Тогда прекрасно.
Лариса Петровна взяла ножницы и отрезала от каждого билета кусок со штрихкодом, чтобы его случайно не приняли на входе.
Через десять минут открылись двери зала. Пришли школьники, родители, две бабушки с огромным пакетом попкорна и мужчина, который трижды уточнил, точно ли у него крайнее место.
Я стоял рядом с контролёром и смотрел на билеты.
Все были разные.
Когда свет в фойе приглушили, Лариса Петровна принесла мне узкую полоску термобумаги.
— Сувенир.
На ней было напечатано: «Ряд 4. Место 7».
— Это же лишний.
— Уже недействительный. Штрихкод я отрезала. Можешь хранить как доказательство.
— Чего?
— Что иногда лишний зритель — это не человек, а вчерашняя команда, которая очень долго добиралась до кассы.
Дядя Саша услышал и сказал:
— Только не начинайте теперь продавать билеты во вчера.
— Поздно, — ответил я. — Один у меня уже есть.