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

Недавно в популярной и достаточно простой программе Розница от 1С я столкнулся с подходом, от которого я был несказанно удивлен, как вообще такие архитектурные решения могут выходить в тиражных решениях.

«1С:Розница» — недорогая программа от 1С для розничной торговли, на которой работает очень большой процент розничных магазинов России. Стоит она 4.000₽, если дорабатывать нельзя и 17.600₽ с возможностью доработки.

Я, как программист 1С, постоянно работаю с этой программой и был свидетелем перехода в этой конфигурации от простого пробития чеков на подключенный фискальный регистратор к очереди чеков. Задумка была в том, чтобы на один фискальный регистратор можно было пробивать с нескольких касс, в том числе и с интернет-касс. Задача понятная, решение логичное.

Но, наверное, конфигурации 1С пишут студенты, потому что в этой простой задаче «наломали дров».

Проблема оказалась в том, что для управления очередью 1С решила использовать систему взаимодействия, т.е. обмен онлайн-сообщениями с сервисом «1С:Диалог».

Причем, механизм работы без очереди сообщений был оставлен:

Но включить его можно только вмешавшись в код простеньким патчем модуля РаспределеннаяФискализация:

Ситуация воспроизводилась на релизе 2.3.18.17, говорят на последующих все же сделали возможность включать режим без очереди в настройках.

Интересно, а какой сценарий пробития чеков планировался для точек, где нет онлайн? Там вообще «1С:Розница» не работает?

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

Когда ресурсы 1С начали подвергаться DDos-атакам, система взаимодействия «легла», а вместе с ней легла и Розница.

На скриншоте видно, что проблемы в пробитии наблюдаются именно когда система взаимодействия (Обсуждения) не доступна:

Да, можно развернуть собственный локальный сервер взаимодействия от 1С за 50.000₽, но он чрезмерен для такой задачи.

Вот хочется понять, это случайный косяк или системная ошибка 1С. Ведь никто за нее не понес наказания (хотя бы рублем), может быть разработчики даже премию получили. И, конечно же, никаких извинений перед пользователями 1С не понесла.