Можно ли фирму «1С» сравнить с лепреконом?
Или почему пауза в платформе - это классический пример лепреконской магии
Представьте: вы загадываете простое желание - «Хочу обычную функцию Sleep(), чтобы код мог спокойно подождать пару секунд». Подходит весёлый зелёный человечек в цилиндре, улыбается до ушей и говорит: -Конечно, милок. Только…
Именно так фирма «1С» десятилетиями относилась к одной из самых базовых потребностей программистов - нормальной паузе.
Самописные паузы
Долгое время штатной функции ожидания в платформе просто не существовало.
Разработчики изобретали костыли, каждый из которых нёс в себе классическую лепреконскую подлянку:
Пустой цикл со сравнением времени
«Пусть код крутится, пока не пройдёт 5 секунд».
Расплата: процессор сервера мгновенно уходит в 100 %, система начинает дышать на ладан, а пользователи недоумевают, почему всё тормозит.
Ping через командную строку
«Запустим скрытое окно и пинганём сами себя».
Расплата: зависимость от Windows, куча скрытых процессов и мгновенный отказ работать на Linux-серверах.
Предупреждение с таймаутом
«Покажем окошко, которое само закроется через 5 секунд».
Расплата: на клиенте постоянно что-то мигает, а в фоновых заданиях (где окон нет) - красивое исключение и падение сеанса.
Фоновые задания БСП
Самый «официальный» костыль в ERP и подобных конфигурациях: запускаем отдельное фоновое задание, которое падает с таймаутом, а основной код его ждёт.
Расплата: огромные накладные расходы ради одной секунды ожидания.
«Исполнение желания» в 8.3.25
Спустя годы мольбы были услышаны. В платформе 8.3.25 появился нативный метод:
ВызватьПаузу(<Интервал>);
Казалось бы - счастье. Но лепреконы не были бы лепреконами, если бы не добавили свои условия:
Назвали не как у людей.
Не Пауза(), не Уснуть(), не Sleep(). А именно ВызватьПаузу. Чтобы случайно не пересечься со старыми самописными функциями партнёров.
Только на сервере.
Метод доступен исключительно в серверном контексте.
Ловушка для невнимательных.
Если случайно вызвать его в клиент-серверном контексте (например, прямо из формы) - платформа не просто проигнорирует, а выбросит жёсткое исключение и аварийно прервёт выполнение. Причина формально благая (защита интерфейса от зависания), но реализация - чистый лепреконский стиль.
Выводы:
Сходство стопроцентное.
Фирма «1С» даёт вам ровно то, что вы просили… но строго по своим правилам. И если вы не прочитали мелкий шрифт в синтакс-помощнике - ваше приложение легко превращается в тыкву.
Так что да. Сравнение с лепреконом - не просто удачная метафора.
Это практически документальное описание философии платформы.
