По действительно многочисленным просьбам: пауза в 1С:Предприятие 8.3.25

24.04.2023      40071

Фирма «1С» сообщила о планах добавить во встроенный язык новый метод глобального контекста ВызватьПаузу (CallSleep). Хорошая новость здесь в том, что пауза будет, а не очень хорошая в том, что ожидать ее в платформе 1С можно только с версии 8.3.25.


Метод «ВызватьПаузу» в 1С:Предприятие: дождались

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

Фирма «1С» учла пожелания профессионального сообщества, и анонсировала реализацию нового метода глобального контекста ВызватьПаузу (CallSleep) в платформе 1С:Предприятие 8.3.25.

Метод будет останавливать выполнение потока сеанса на заданное время.

При этом использовать новую фичу следует все-таки с осторожностью: «Мы уверены, что многие разработчики, использующие платформу 1С:Предприятие, смогут с пользой применить новую функциональность в своих сценариях. Но мы рекомендуем внимательно подумать – нужно ли использовать ВызватьПаузу в каждом конкретном случае. Также мы не рекомендуем делать бесконечный цикл (пусть и с вызовом ВызватьПаузу), то есть количество ожиданий (вызовов ВызватьПаузу) должно быть небольшим», – говорится в заметке.

 

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

 

Синтаксис нового метода: ВызватьПаузу(<Интервал>)

где параметр Интервал – интервал в миллисекундах.

Одна из наиболее важных особенностей нового метода «ВызватьПаузу» состоит в том, что он будет доступен только на сервере и может быть вызван только из серверных обработчиков и серверных модулей, например, из фоновых заданий, веб-сервисов, http-сервисов, ботов и т.п.

А при вызове с клиента серверного метода, содержащего ВызватьПаузу, будет сгенерировано исключение «Нельзя вызвать метод ВызватьПаузу в клиент-серверном вызове».

«Мы сделали это осознанно: метод ВызватьПаузу блокирует выполнение кода и, будучи вызван из клиентского кода, заблокирует пользовательский интерфейс. Мы же хотим, чтобы наш пользовательский интерфейс был максимально отзывчивым. Для реализации функциональности паузы в клиентском коде есть другие способы – например, можно воспользоваться механизмом фоновых заданий», – объясняют свое решение разработчики платформы.

Возникает вопрос, на который пока нет ответа: будет ли контролироваться вложенный вызов нового метода «ВызватьПаузу» в иерархии нескольких вызовов – клиент-сервер-сервер-сервер и т.д.?

 

 

Комментарий эксперта

Артур Аюханов, ИТ-директор компании «Инфостарт», так прокомментировал особенности реализации нового метода:

Новый метод ВызватьПаузу, исходя из анонса, имеет значительные ограничения. Запрет его вызова внутри клиент-серверного вызова и исключение его вызова на клиенте ставит крест на многих сценариях его использования.

Зато есть отличный повод реализовать новое правило статического анализа кода для BSL LS или для плагина v8-code-style к EDT

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

Мое мнение – новый метод будет использоваться намного реже уже существующих методов Пауза из различных конфигураций, как собственных от 1С, так и партнерских! Фактически, все старые методы Пауза придется оставить в конфигурации и глобальной замены их использования на новый метод не произойдет.

Проблемы нейминга: предложения сообщества

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

Фирма «1С» объяснила свое решение обозначить метод «ВызватьПаузу» тем, что во многих партнерских решениях уже есть метод «Пауза», реализующий подобную функциональность. Именно поэтому было выбрано название «ВызватьПаузу», чтобы избежать массовых изменений кода в уже существующих решениях.

Артур Аюханов также прокомментировал выбор названия для нового метода:

У меня возник вопрос – почему выбрано именно такое наименование метода, как «ВызватьПаузу»? В анонсе обозначено, почему не выбран вариант с максимально частотным названием «Пауза».

Я рад, что коллеги из 1С продумали вопрос совместимости с прикладными конфигурациями 1С и исключили возможность срабатывания мины при переходе на новую платформу. Но считаю, что не стоит добавлять часто употребляемые глаголы в начале имен методов. Например, «Получить», «Вызвать», «Выполнить» и т.п.

Мне нравится вариант «Приостановить». Это наименование максимально подходит к описанию метода из анонса «останавливающий выполнение потока сеанса на заданное время».

В конце концов, я видел и другие интересные варианты в комментариях к сообщениям «1С» о новом методе. Например, «ВызватьПазузу», а также «Зависнуть», «Покурить» и т.п.

А вообще я жду «Ждать ПаузаАсинх» или «Ждать ПриостановитьАсинх»!

В данном случае «Пазузу» – не описка, а креатив сообщества разработчиков 1С. Это имя повелителя демона ветров в ассирийской и вавилонской мифологии, который изображался с поднятой правой рукой и опущенной левой, что символизировало жизнь и смерть. Это по смыслу вполне соответствует содержанию нового метода.

В любом случае, уже скоро одна из наиболее ожидаемых возможностей технологической платформы будет реализована, и теперь фирма «1С» сообщила об этом официально.

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

Полный текст публикации о новом методе «ВызватьПаузу» в официальном блоге фирмы «1С».


Автор:
Обозреватель


См. также

Новость ИТ и 1С

Обновленные сборники задач для подготовки к экзаменам 1С:Специалист и 1С:Специалист-консультант по 1С:УТ 11.5 уже поступили в продажу. Фирма «1С» рекомендует использовать для подготовки к сертификации обновленные методички.

14.02.2025    183    ЕленаЧерепнева    0       

1

Новость ИТ и 1С

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

13.02.2025    297    ЕленаЧерепнева    0       

4

Новость Зазеркалье ИТ и 1С

Фирма «1С» сообщила о планах по обновлению BI-системы 1С:Аналитика. В очередной релиз будут добавлены новые цветовые схемы, планируется улучшить внешний вид диаграмм, повысить удобство работы с источниками и выполнить некоторые оптимизации.

11.02.2025    427    ЕленаЧерепнева    1       

2

Новость Единый налоговый платеж (ЕНП) ИТ и 1С ФНС

Федеральная налоговая служба России утвердила новую форму справки о сальдо единого налогового счета, которая вступит в силу 10 февраля 2025 года. В ней появилось 4 новых приложения, в числе которых расчет пеней и детализация отрицательного сальдо.

07.02.2025    456    eeldldl    0       

3

Новость ИТ и 1С Кадры Минтруд

Министерство труда России утвердило новую форму справки о среднем заработке, исчисленном работодателем. Приказ вступил в силу с 1 января 2025 года. Оформлять справки по-новому кадровые специалисты должны начать с 11 февраля 2025 года.

05.02.2025    456    Alisa_Brineva    0       

4

Новость ИТ и 1С

Фирма «1С» сообщила, что готова отказаться от бумажной версии регистрационной анкеты как обязательного элемента регистрации своих программных продуктов, и перевести эту процедуру в электронный формат даже для неэлектронных вариантов поставки.

05.02.2025    573    ЕленаЧерепнева    0       

3

Новость 1С:ERP Управление предприятием 2 1С:Управление производственным предприятием ИТ и 1С

В 2026 году фирма «1С» снимет с поддержки 1С:УПП. Переход на новую систему – процесс трудозатратный и требует тщательной подготовки. Рассказываем, сколько времени занимает переход с 1С:УПП, какие есть варианты и о плюсах и минусах каждого из них.

31.01.2025    1369    AnastasiaKl    1       

17

Новость Зазеркалье ИТ и 1С

Разработчики платформы пообещали реализовать для хранилища двоичных данных автоматическое распределение данных по серверам на основании частоты обращения к ним. Изменения позволят оптимизировать производительность систем на платформе 1С.

29.01.2025    4737    ЕленаЧерепнева    0       

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ImHunter 332 24.04.23 15:27 Сейчас в теме
Веселится и ликует весь народ!
Кричали женщины Ура и в воздух чепчики бросали.
(с) Классики
Merkalov; DrAku1a; Innuil; jirtrest; sandr13; Sword; AnKonAlm; +7 Ответить
15. Darklight 34 26.04.23 12:13 Сейчас в теме
(1)куда ликуете ведь "доступен только на сервере и может быть вызван только из серверных обработчиков и серверных модулей, например, из фоновых заданий, веб-сервисов, http-сервисов, ботов и т.п." и это очень жёсткое ограничение - ставящие не решающее проблемы интеграции с клиентского контекста! Хотя на сервере это тоже востребовано - но как раз в бесконечных циклах - которые указаны как нежелательное применение!

Эх....запоздало это всё.... протухло (ибо для паузы уже давно найдено несколько вполне рабочих обходных альтернатив) - лучше бы асинхронность развивали и параллельность - в т.ч. в клиентском контексте - тогда паузу лучше делать как-то так "await Task.Delay(Timeout)" в рамках текущего контекста выполнения (на клиенте это может быть форма, или скоуп связанных форм, или отдельный фоновый поток - коли будут такие доступны а-ля "Task.Run(func_or_lymbda)"), и без общих фризов всего интерфейса (хотя попой зафризить и его целиком тоже может быть полезно - но это уже другая тема)
2. Torin 840 24.04.23 15:36 Сейчас в теме
ИМХО - мы так долго ждали этот метод , что научились жить без него.
rpgshnik; sevushka; feel_deep; Brawler; Darklight; Innuil; Merkalov; Tarlich; Jeka44; Sword; siamagic; AnKonAlm; +12 Ответить
3. frkbvfnjh 809 24.04.23 15:47 Сейчас в теме
Будет забавно, если метод будет грузить процессор на 100%, а корп версия не одно ядро, а все )))
erplab; Darklight; Innuil; jirtrest; Merkalov; sandr13; Sword; +7 Ответить
4. frkbvfnjh 809 24.04.23 16:04 Сейчас в теме
Это получается с клиента вызывать можно так будет?
&НаСервереБезКонтекста
Процедура ПриостановитьНаСервере(Интервал)
     ВызватьПаузу(Интервал);
КонецПроцедуры
5. artbear 1566 24.04.23 17:17 Сейчас в теме
(4) как раз и не очень понятно, можно или нет.
1 если этот метод вызывается с клиента, точно нельзя
2 если этот код вызывается из серверного метода-обработчика события формы, то можно
3 как в статье указано, непонятно, что будет при вложенном вызове - клиентский метод - другой серверный метод - текущий серверный метод, будет исключение или нет?
20. Brawler 460 26.04.23 14:58 Сейчас в теме
(5) скорее всего типом сеанса будет регулироваться
7. dsdred 3785 24.04.23 17:38 Сейчас в теме
(4судя по анонсу, нет.
Можно только через фоновые задания, http сервиса и как то ещё.

Собственно пауза получится с погрешность. То что вы описали можно как http сервис выставить.
16. Darklight 34 26.04.23 12:19 Сейчас в теме
(7)В фоновых задания я и сейчас могут поставить паузу через функцию "ОжидатьЗавершения(<Таймаут>)". И не только в фоновых заданиях, но и на сервере (если запустить отдельное фоновое задание и ждать так его завершения)
6. ImHunter 332 24.04.23 17:27 Сейчас в теме
(5) Собственно, почему нельзя п1 ? Мне кажется, как-то пофиг. Тормознется ведь поток пользователя, пусть и на сервере.
И еще мне кажется (уже про п3), ну не будут заморачиваться с анализом стека вызовов. Ведь большой риск где-то как-то накосячить в реализации условий, забыть потом учесть условия при изменении кода платформы.
8. artbear 1566 24.04.23 18:18 Сейчас в теме
(6)
Собственно, почему нельзя п1 ? Мне кажется, как-то пофиг. Тормознется ведь поток пользователя, пусть и на сервере.
И еще мне кажется (уже про п3), ну не будут заморачиваться с анализом стека вызовов. Ведь большой риск где-то как-то накосячить в реализации условий, забыть потом учесть условия при изменении кода платформы.


п1 (вызов с клиента) нельзя, т.к. 1С явно об этом написала!

по п3 (вложенные вызовы) - не зная особенностей реализации вызовов 1С, нельзя точно сказать.
вдруг для КАЖДОГО серверного вызова есть признак, что он вызывается из клиентского метода? )
и тогда указанная проверка тривиальна

ну и я также надеюсь, что не будут делать сложности с контролем всего стека )
9. 7OH 70 25.04.23 09:10 Сейчас в теме
"Заставь дурака богу молиться..." = "Попроси 1С сделать что-то простое"
Боюсь представить, как они "могут" реализовать АПИ.
jirtrest; MadB111; sandr13; +3 Ответить
21. siamagic 27.04.23 07:12 Сейчас в теме
(9) OData?
22. 7OH 70 27.04.23 14:12 Сейчас в теме
(21) Снегопат )
10. ubnkfl 25.04.23 10:02 Сейчас в теме
Это когда тебя о чем-то просят и ты делаешь через Ж, чтобы больше не обращались.
Merkalov; TeMochkiN; Darklight; jirtrest; MadB111; semagin@gmail.com; Sword; +7 Ответить
11. Sword 42 25.04.23 10:18 Сейчас в теме
Сделали типа на: отстаньте?

А почему на клиенте то нельзя?
Опять скриптами делать?
MadB111; sandr13; ubnkfl; +3 Ответить
12. Feelthis 38 25.04.23 20:58 Сейчас в теме
В то время, как Илон Маск продумывает организацию первого поселения на Марсе в 1С планируют сделать... тадаам. А если серьезно это прямо топовая актуальная задача в платформе? Или с программистами и в 1С все плохо?
Какие могут быть кейсы использования паузы кроме дергания внешнего api с лимитами на request?
13. intehof 26.04.23 01:22 Сейчас в теме
Для клиента норм работает "ПодключитьОбработчикОжидания()"
Brawler; triviumfan; +2 Ответить
14. triviumfan 98 26.04.23 09:55 Сейчас в теме
Почему не в 8.3.30?
17. ImHunter 332 26.04.23 12:35 Сейчас в теме
(15) Да я так, больше поржать;) Ну действительно, как-то уже научились жить и без штатной паузы.
18. dsdred 3785 26.04.23 12:40 Сейчас в теме
(16) из анонса мало что понятно, анонсы и документация это то чем фирма 1с не славится. Подождём посмотрим, что это будет.
19. Darklight 34 26.04.23 14:10 Сейчас в теме
Датой анонса они часом не опоздали на 23 дня?
23. N1ce 24.05.23 20:11 Сейчас в теме
14.03.2023 GPT 4 от OpenAI, 24.04.2023 анонс ВызватьПаузу от 1С. Что дальше? Я думаю в 2025 будет контекстная подсказка в редакторе текста запроса и выражений
Оставьте свое сообщение