TGViewer
Дмитрий Сидоренко: Мысли вслух Дмитрий Сидоренко: Мысли вслух @dsdred_thinkings · 668 subscribers
Post #455 136
#Вопрос

Можно ли фирму «1С» сравнить с лепреконом?

Или почему пауза в платформе - это классический пример лепреконской магии

Представьте: вы загадываете простое желание - «Хочу обычную функцию Sleep(), чтобы код мог спокойно подождать пару секунд». Подходит весёлый зелёный человечек в цилиндре, улыбается до ушей и говорит: -Конечно, милок. Только…

Именно так фирма «1С» десятилетиями относилась к одной из самых базовых потребностей программистов - нормальной паузе.

Самописные паузы
Долгое время штатной функции ожидания в платформе просто не существовало.

Разработчики изобретали костыли, каждый из которых нёс в себе классическую лепреконскую подлянку:

Пустой цикл со сравнением времени
«Пусть код крутится, пока не пройдёт 5 секунд».
Расплата: процессор сервера мгновенно уходит в 100 %, система начинает дышать на ладан, а пользователи недоумевают, почему всё тормозит.


Ping через командную строку
«Запустим скрытое окно и пинганём сами себя».
Расплата: зависимость от Windows, куча скрытых процессов и мгновенный отказ работать на Linux-серверах.


Предупреждение с таймаутом
«Покажем окошко, которое само закроется через 5 секунд».
Расплата: на клиенте постоянно что-то мигает, а в фоновых заданиях (где окон нет) - красивое исключение и падение сеанса.


Фоновые задания БСП
Самый «официальный» костыль в ERP и подобных конфигурациях: запускаем отдельное фоновое задание, которое падает с таймаутом, а основной код его ждёт.
Расплата: огромные накладные расходы ради одной секунды ожидания.

«Исполнение желания» в 8.3.25
Спустя годы мольбы были услышаны. В платформе 8.3.25 появился нативный метод:
ВызватьПаузу(<Интервал>);


Казалось бы - счастье. Но лепреконы не были бы лепреконами, если бы не добавили свои условия:

Назвали не как у людей.
Не Пауза(), не Уснуть(), не Sleep(). А именно ВызватьПаузу. Чтобы случайно не пересечься со старыми самописными функциями партнёров.

Только на сервере.
Метод доступен исключительно в серверном контексте.


Ловушка для невнимательных.
Если случайно вызвать его в клиент-серверном контексте (например, прямо из формы) - платформа не просто проигнорирует, а выбросит жёсткое исключение и аварийно прервёт выполнение. Причина формально благая (защита интерфейса от зависания), но реализация - чистый лепреконский стиль.

Выводы:
Сходство стопроцентное.

Фирма «1С» даёт вам ровно то, что вы просили… но строго по своим правилам. И если вы не прочитали мелкий шрифт в синтакс-помощнике - ваше приложение легко превращается в тыкву.
Так что да. Сравнение с лепреконом - не просто удачная метафора.

Это практически документальное описание философии платформы.
  • 👍 7
  • 🗿 2
More from @dsdred_thinkings
  1. Sep 30, 2026#Новости Друзья, всего несколько дней назад писал, почему EDT устарела минимум три раза… И…
  2. Sep 25, 2026#Статья #Видео Добрый день, друзья. Я немного приболел и совсем упустил, что уже опубликов…
  3. Sep 24, 2026#История Добрый день, друзья! Хочу рассказать одну историю, которая произошла на прошлой н…
  4. Sep 21, 2026#Статья Добрый день, друзья! Сам не заметил, как за мной закрепилась репутация ярого проти…
  5. Sep 20, 2026#Новости Добрый день, друзья! У меня горячая новость. Вчера под ночь мне пришло письмо от…
  6. Sep 17, 2026#Новости #Анонс Добрый день, друзья! Вы знаете, я всегда говорил и говорю: я за то, чтобы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →