Кружок 1С #6 Асинхронность и многопоточность. О чем умалчивает ИТС

แชร์
ฝัง
  • เผยแพร่เมื่อ 28 ก.ค. 2024
  • В этот раз мы решили разобраться что такое Асинхронность в 1С , и как этим пользоваться.
    00:00 Вступление
    00:14 Синхронность и многопоточность
    02:13 Пример с квадратами
    03:45 Однопоточность и многопоточность сравнение 1С и Java
    06:56 Работа с задачами в 1C
    09:31 Многопоточность в браузере WebKit
    14:05 Советы по выбору компьютера для работы в 1С
    15:27 Синхронные и асинхронные методы
    17:10 Примеры асинхронных методов
    21:46 Асинхронные методы для веб-браузере
    26:26 Описание оповещений и когнитивная сложность
    30:00 Использование асинхронных методов для оптимизации кода
    35:32 Синхронные методы и обещания
    46:13 Использование синхронных методов и обещаний
    48:10 Заключение
    Подробнее в статье на сайте: softonit.ru/blog/articles/1c/...
    Наш продукт: "Управление IT-отделом 8"
    Что такое Управление IT-отделом 8? softonit.ru/catalog/products/it/
    #УправлениеIT-отделом8 #Асинхронность #1С #async #Программирование
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 30

  • @vladvladislav5949
    @vladvladislav5949 19 วันที่ผ่านมา +3

    Спасибо за доклад, 1С как всегда позади планеты всей, нет повести печальнее на свете чем повесть об асинхе в одинэсе.

    • @xrollup
      @xrollup 11 วันที่ผ่านมา

      Это не то слово просто. Была надежда на 1С 9, нынче это Элемент, но нет.

    • @vladvladislav5949
      @vladvladislav5949 11 วันที่ผ่านมา

      @@xrollup 1С Элемент - это очередная попытка 1С сделать свой велосипед и объять необъятное, подменив своими поделиями весь инструментарий, часто абсолютно бесплатно доступный в других стеках.

  • @xrollup
    @xrollup 11 วันที่ผ่านมา +1

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

  • @sergframer
    @sergframer 9 หลายเดือนก่อน +3

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

    • @Softonit
      @Softonit  9 หลายเดือนก่อน +2

      Спасибо, важное замечание, ведь если этого не знать, потом найти это проблему в сложной форме будет достаточно проблематично.

  • @dmitriyobidin6049
    @dmitriyobidin6049 7 หลายเดือนก่อน

    Все таки было бы интересно разобрать способы обработки ошибок в промисах. Насколько смог быстро нагуглить, то сейчас просто вызов асинхронной функции заворачивается в try/catch, при этом же не понятно, а как быть если у меня идет вызов 2/3/4 асинхронных функций подряд - кажду в отдельный блок try заворачивать? Если нет, то как в catch разобрать какой именно метод выкинул исключение? И если условно у меня вызывается 10 методов, не может ли быть такого что 1 промис успеет "вывалить" исключение до того как код дойдет до 10 промиса? Что будет в таком случае?
    Или все таки асинки висят в какой-то другой очереди выполнения(аналогично eventloop в том же js)

  • @user-kq9zl3ct7q
    @user-kq9zl3ct7q 9 หลายเดือนก่อน +1

    Не сказано две особенности/недостатка асинхронных методов: процедуру придётся делать асинхронной и отсюда вытекает, что ее параметры будут передаваться по значению и весь стек вызовов придётся сделать асинхронным. То есть если процедура обрабатывала параметры по ссылке, то ее придётся переделывать в функцию и возвращать параметром.

    • @Softonit
      @Softonit  9 หลายเดือนก่อน +1

      Спасибо, полезное замечание!

  • @skpavlenko
    @skpavlenko 9 หลายเดือนก่อน +1

    Ух, ребята, ну вы красавчики, конечно.
    Разобрали методику работы JavaScript.
    Нет там никакого 1С, тупо Js под капотом.
    1С - это синтаксический сахар, ха-ха

    • @Softonit
      @Softonit  9 หลายเดือนก่อน

      Спасибо за отзыв. Нам удалось встроить React-приложение и организовать двухстороннюю связь 1С и React, так что все что в докладе, все проверено. Мы сделали интеграцию с ChatGPT в приложении React и встроили это в 1С. Можно посмотреть как это выглядит в нашей базе знаний softonit.ru/FAQ/courses/?COURSE_ID=1&LESSON_ID=933
      Другой вопрос, что не совсем верное словосочетание про "1С - это синтаксический сахар". Мы говорили про работу с Асинх. Что это упрощение старого подхода. Вы не верно поняли.

    • @skpavlenko
      @skpavlenko 9 หลายเดือนก่อน

      @@Softonit ну просто все что вы описываете - это нативное поведение JS. 1C просто сделали обёртку над async/await и Promise
      То что говорите, что это работает только с запросами к внешнему ресурсу, вроде ChatGPT, ну так в JS все является внешним ресурсом, и любая информация извлекается по HTTP REST API.
      А здесь это просто все так странно реализовано, что непонятно где использовать асинхронность.
      Внутри однопоточного приложения она правда не имеет смысла.
      А в JS API calls, обращения к базе, они все асинхронные же.

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 5 หลายเดือนก่อน

      @@skpavlenkoпочему именно JavaScript?

    • @skpavlenko
      @skpavlenko 5 หลายเดือนก่อน

      @@Das.Kleine.Krokodilпотому что все что они обсуждают - это синтаксический сахар над функционалом JS, еще и такой, недоделанный. Они методами 1С дергают функции JS, на самом деле.

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 5 หลายเดือนก่อน

      @@skpavlenkoсчитаешь, что не стоит освещать эти возможности в 1с?

  • @tsv8560
    @tsv8560 7 หลายเดือนก่อน

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