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

24.04.2023      39529

Фирма «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С».


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


См. также

Новость Зазеркалье Мобильные приложения

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

вчера в 14:46    145    ЕленаЧерепнева    0       

1

Новость Платформа 1С v8.3 Зазеркалье

Улучшенная система взаимодействия, развитие средств аутентификации и новый механизм уведомления пользователей – рассказываем о главных нововведениях, вошедших в очередной релиз технологической платформы 8.3.26.

29.11.2024    9180    ЕленаЧерепнева    1       

2

Новость Зазеркалье

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

26.11.2024    532    ЕленаЧерепнева    0       

3

Новость ИТ-Новость

China Hi-Tech Fair – одно из самых значимых мероприятий в сфере информационных технологий в Восточной Азии. Рассказываем, какие компании и какие технологии были представлены российской делегацией в этом году.

25.11.2024    519    ЕленаЧерепнева    1       

4

Новость УСН ИТ-Новость Налоги ФНС

В октябре был опубликован федеральный закон, который разрешает применять автоматизированную упрощенную систему налогообложения во всех регионах РФ. Кто, когда и как может перейти на новый режим налогообложения?

22.11.2024    564    user1915669    0       

2

Новость Зазеркалье

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

20.11.2024    516    ЕленаЧерепнева    0       

4

Новость Зазеркалье

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

12.11.2024    762    ЕленаЧерепнева    0       

2

Новость Зазеркалье

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

06.11.2024    915    ЕленаЧерепнева    0       

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

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

Собственно пауза получится с погрешность. То что вы описали можно как http сервис выставить.
16. Darklight 33 26.04.23 12:19 Сейчас в теме
(7)В фоновых задания я и сейчас могут поставить паузу через функцию "ОжидатьЗавершения(<Таймаут>)". И не только в фоновых заданиях, но и на сервере (если запустить отдельное фоновое задание и ждать так его завершения)
6. ImHunter 328 24.04.23 17:27 Сейчас в теме
(5) Собственно, почему нельзя п1 ? Мне кажется, как-то пофиг. Тормознется ведь поток пользователя, пусть и на сервере.
И еще мне кажется (уже про п3), ну не будут заморачиваться с анализом стека вызовов. Ведь большой риск где-то как-то накосячить в реализации условий, забыть потом учесть условия при изменении кода платформы.
8. artbear 1563 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 97 26.04.23 09:55 Сейчас в теме
Почему не в 8.3.30?
17. ImHunter 328 26.04.23 12:35 Сейчас в теме
(15) Да я так, больше поржать;) Ну действительно, как-то уже научились жить и без штатной паузы.
18. dsdred 3639 26.04.23 12:40 Сейчас в теме
(16) из анонса мало что понятно, анонсы и документация это то чем фирма 1с не славится. Подождём посмотрим, что это будет.
19. Darklight 33 26.04.23 14:10 Сейчас в теме
Датой анонса они часом не опоздали на 23 дня?
23. N1ce 24.05.23 20:11 Сейчас в теме
14.03.2023 GPT 4 от OpenAI, 24.04.2023 анонс ВызватьПаузу от 1С. Что дальше? Я думаю в 2025 будет контекстная подсказка в редакторе текста запроса и выражений
Оставьте свое сообщение