В качестве рабочей программы в небольшой, но очень гордой сети аптек используется ЖП 7.7 с непонятно откуда взявшейся самописной конфигурацией. Конфигурацию допиливал человек, любивший делать всё тяп-ляп и на отцепись, поэтому она кишит ошибками, и расхождения кассы и базы по сумме в конце дня уже никого не удивляют.
Решили беду побороть. Наняли одинэсников, сунули им десяток билетов в Хабаровск и сказали «фас».
В числе прочего переработке был подвергнут интерфейс кассира. Раньше для оплаты банковской картой надо было вводить сумму покупки с минусом — отрицательную сумму программа определяла как безналичную. Это вызывало сбои с непонятными причинами, поэтому такую опцию убрали и поставили кнопку «Нал — Безнал». По умолчанию кнопка стоит в режиме «Нал», после нажатия переключается в «Безнал» на один чек. При пробитии наличного чека программа спрашивает внесённую покупателем сумму, рассчитывая сдачу, а при пробитии безнального ждёт подтверждения, действительно ли юзер хочет пробить чек безналом.
Внутреннее тестирование система с блеском прошла — пустили в бой. Спустя неделю в конце смены звонит кассир: у неё денег в кассе на 200 рублей больше, чем в сменном отчёте, а в отчёте на эту же сумму больше безнала, хотя она по картам ничего сегодня не пробивала. Думаю, что ошиблась — мало ли. Делаю возврат безнала по кассе без чека продажи (довольно серьёзное нарушение) и пробиваю ту же сумму налом.
Проходят несколько дней. Тот же кассир, та же проблема. Напрягаю одинэсников. Ребята три раза перечитывают код и удивлённо разводят руками, убеждая меня, что кассир виноват. Кассир клянётся, что не её косяк.
Следующий день. Кассир уже чуть ли не плачет, а бухгалтерия собирается меня расчленить заживо и съесть без соли. Ещё раз напрягаю одинэсников. Ничего.
В следующую смену прошу тётку попытаться понять, при каких условиях происходит ошибка. Звонит и говорит, что пришла на работу, открыла программу, а она «сама» переключила на безнал. Тётя заметила и переключила обратно на нал.
Звоню одинэсникам. Пытаюсь говорить спокойно. Они предлагают мне открыть код. Своими глазами вижу, что стоит явное присваивание при открытии окна. Смущает, что косяк только у одного кассира. Иду к тётке. Целый день стою и смотрю, как она работает, периодически снимая отчёты. Ничего. Хочется закурить, хотя уже почти год как бросил.
Спас случай. Моргнул на полсекунды свет. Кассы с сервером спасли бесперебойники, а свитч ребутнулся, и народ повышибало из базы. Все испуганными глазами смотрят на меня. Говорю заходить обратно в базу. Кассирша оборачивается ко мне:
— Вот! Смотри! Она опять сама переключилась!
Отгоняю тётку от компа, закрываю 1С, пробую сам. Всё нормально. Снова тётка. Снова ошибка. Как?! Краем глаза замечаю кое-что, пробую сам. Эврика!
При открытии базы окно 1С разворачивалось на весь экран, а вот вложенное окно модуля кассы — нет. Тётка распахивала внутреннее окно на весь экран двумя щелчками по кнопке. Первый действительно разворачивал окно, а второй доставался кнопке «Нал — Безнал».
После инструктажа по основам компьютерной грамотности ошибки прекратились, работа снова стала скучной, а я теперь тестирую обновления не только внутри IT-отдела, но и на тех людях, которым с этим потом работать.