Асинх/Ждать или Как устроены асинхронные процедуры в 1С

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

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

  • @DimaVort
    @DimaVort 3 ปีที่แล้ว +33

    Спасибо за видео. Наконец, спустя много лет, мне стало понятно, о чем поет Земфира: "Меньше всего нужны мне твои callback-и")))

    • @barilkovetal
      @barilkovetal 3 ปีที่แล้ว

      По-моему там было come back)))

    • @filaretbusoni3135
      @filaretbusoni3135 3 ปีที่แล้ว +3

      я думал, там конфетки

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 3 ปีที่แล้ว

      Земфира пела про адъ

    • @dac8289
      @dac8289 10 หลายเดือนก่อน

      Эффект манделлы)

  • @somebody-c3b
    @somebody-c3b 3 ปีที่แล้ว +22

    Крутой ты мужик, Овсянкин. Спасибо за видео!

  • @ЛёликБолик-в7р
    @ЛёликБолик-в7р 5 หลายเดือนก่อน

    Единственный кто нормально объяснил. Эх мне бы такого учителя. Со всей благодарностью!

  • @invertriver
    @invertriver 2 ปีที่แล้ว +3

    Спасибо Андрей, 1С как обычно, делает что-то "не имеющее аналогов в мире" ))))

  • @ДГоу
    @ДГоу 3 ปีที่แล้ว +7

    В середине видео "Так, я нахер устал" Ору!

  • @MrTorfable
    @MrTorfable ปีที่แล้ว +1

    Блин так-то нормально тему разжевал, все доступно, без за умных слов и воды

  • @vivettanors
    @vivettanors 3 ปีที่แล้ว +3

    Какая же милота, спасибо

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

    Автор молодец, «я нахер устал». Правильно. Нехер особо заморачиваться. Хорошая подача контента 😂

  • @alexeibelousov3279
    @alexeibelousov3279 3 ปีที่แล้ว +4

    Спасибо за такое нужное видео! Да, в модуле работы с торговым оборудованием там действительно ад вызовов.. если посмотреть на процедуру печати чеков, то там можно утонуть в этих обработчиках оповещения.. Наконец 1С сделало эти асинх\ждать, лучше поздно чем никогда. Теперь похоже начнется работа по выпиливанию обработчиков оповещений из конфигураций. Мне вот интересно, когда 1С догадается что нужны ссылки на процедуры\функции? Тот же метод вызова диалога выбора мог бы иметь вид ДиалогВыбора.Показать(ссылка ОбработчикВыбораФайла);
    Кстати по моей практики конфы где реально используется веб-клиент и нужны заморочки с асинхронностью это ну 5-10% максимум.. да и то там используется не вся конфа в веб клиенте, а только небольшая часть (какая нибудь форма работы удаленного менеджера или торговой точки) и получается что нет никакого смысла переводить всю конфу на асинхронные вызовы, поэтому пишу все на синхронных.
    Для меня большая польза от асинх как раз в том что по сути можно запустить теперь несколько потоков из одной синхронной процедуры (если мне не нужно дожидаться callback), по сути аналог фоновых заданий получается, только гораздо более удобный.

    • @СергейБурыка-б8м
      @СергейБурыка-б8м 3 ปีที่แล้ว

      Коллега, Ваш комментарий - золото! Поддерживаю полностью.

  • @Андрей-ф3ы7б
    @Андрей-ф3ы7б 3 ปีที่แล้ว +1

    Шикарное видео, очень понятно, доходчиво и полезно

  • @МаксимКозловський-е5л
    @МаксимКозловський-е5л 3 ปีที่แล้ว +4

    ЯсноПонятноОк. Спасибо за проделанную работу. Вы молодцы, вас интересно смотреть. А можно почаще видео?)))

  • @dac8289
    @dac8289 10 หลายเดือนก่อน

    Спасибо за объяснение!!!

  • @evgeniimelhoff9197
    @evgeniimelhoff9197 3 ปีที่แล้ว

    Андрей спасибо!

  • @tumenit
    @tumenit 3 ปีที่แล้ว +1

    Спасибо, познавательно.

  • @UADaimonUA
    @UADaimonUA 3 ปีที่แล้ว +4

    Спасибо! Подписался ))

  • @rakhmatovkhondamir284
    @rakhmatovkhondamir284 3 ปีที่แล้ว

    Очень классно! Спасибо!

  • @Pavlyukoff
    @Pavlyukoff 3 ปีที่แล้ว +1

    Спасибо, разбор подкапотной части наконец разложил некоторые вещи по полочкам. Остался вопрос - есть ли сакральный смысл вызова АСИНХ функций БЕЗ ждать ? (типа зачем эту возможность оставили?)

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว

      На данный момент смысла нет, но впоследствит может и появятся возможности вида Task.WaitAll

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว

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

    • @Pavlyukoff
      @Pavlyukoff 3 ปีที่แล้ว

      @@Веселый1С я пока не придумал такого кейса.
      Если я процедуру объявил асинх и вызываю асинх аналог - то не ждать его... Надо видимо дождаться когда оно всплывёт в работе.

  • @konstantinprutskih4109
    @konstantinprutskih4109 3 ปีที่แล้ว +1

    Улучшение конечно хорошее. Вопрос когда в типовых решениях будут использовать сами, и я молчу сколько будут этому еще обучать на курсах.

    • @AnonAristotel
      @AnonAristotel 3 ปีที่แล้ว

      Думаю зависит от текущего режима совместимости БСП. Нужен 8.3.18

  • @LosashExote
    @LosashExote 3 ปีที่แล้ว

    Callback hell можно смягчить более вдумчивым оформлением кода, его структурированием. После просмотра осталось ощущение, что упрощение возникает в простых случаях, а вот в более сложных логиках, где требуется все сложным образом контролировать и порой явно вызывать метод ВыполнитьОбработкуОповещения, эти нововведения не применить.

  • @alexflanker25
    @alexflanker25 3 ปีที่แล้ว

    Спасибо, Андрей!

  • @shootnicktm9445
    @shootnicktm9445 3 ปีที่แล้ว

    и ни одного дизлайка =) сохраним чистоту рядов ! )

  • @Дремлин
    @Дремлин 3 ปีที่แล้ว

    Спасибо. Очень грамотный язык - приятно слушать. А асинх вариант ОткрытьФормуМодально() 1С добавили?

    • @Pavlyukoff
      @Pavlyukoff 3 ปีที่แล้ว

      Походу заб[Ы/И]ли.

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 3 ปีที่แล้ว

    Да, это был ад. Мне приходилось пилить.
    Потом обходил стороной, т.к. понимал что это не нормально. Видно, что не ошибся.

  • @Strafering
    @Strafering 3 ปีที่แล้ว

    Скрины примеров кода из ЕДТ или визуал студио код? Просто интересно как включить подписи к процедурам и функциям о когнитивной и цикломатической сложности?

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว

      из vscode. возможно, если сильно попросить Олега Тымко или написать самому, то эта функциональность появится в уже имеющимся коннекторе bsl ls к edt (тот, который по честному протоколу работает)

  • @ІмяПрізвище-н4ю
    @ІмяПрізвище-н4ю 3 ปีที่แล้ว

    спасибо за: практичность и ненудность! эко мну пыронуло - даже готоффф донатить!

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว

      Ну так не сдерживайте себя! :)

  • @onecdev
    @onecdev 3 ปีที่แล้ว

    А когда на типовых 8.3.18 завезут (зуп под рукой всё ещё 8.3.14 например) ?

  • @НажорМажоров
    @НажорМажоров 3 ปีที่แล้ว

    Ну, теперь заживем. Суровые годы ухооодят

    • @evgeniy4953
      @evgeniy4953 3 ปีที่แล้ว +1

      За ними другие прихооодят
      Они будут тоооже трудны

  • @asoneas
    @asoneas 3 ปีที่แล้ว

    А можно задать вопрос асинхронно?
    А где установить флажок чтобы старая функция ПоместитьФайл стала работать так как ПоместитьФайлНаСерверАсинх без дополнительных заклинаний АСИНХ и Ждать? Спасибо ;)

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว +1

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

  • @ИванЛопухов-ь5д
    @ИванЛопухов-ь5д 3 ปีที่แล้ว

    Если результат функции хранится в стеке, то что будет с памятью при большом вызове асинхов?

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว

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

    • @ИванЛопухов-ь5д
      @ИванЛопухов-ь5д 3 ปีที่แล้ว

      Да, прошу прощения, не так назвал. Спасибо

  • @СергейВасилевич-т4ы
    @СергейВасилевич-т4ы 3 ปีที่แล้ว

    Спасибо

  • @Psyonic000
    @Psyonic000 2 ปีที่แล้ว

    Как собрать обработку ассемблера? Это просто жесть, почему нельзя выложить epf????

    • @Веселый1С
      @Веселый1С  2 ปีที่แล้ว

      По ссылке проект для EDT на github. В 21 веке принято выкладывать исходники, а не собраные бинарники.

  • @werwolfwaffen3657
    @werwolfwaffen3657 2 ปีที่แล้ว

    То есть моя мечта о том что можно собирать в МВТ "одновременно" собирать кучку ВТ разрозненных данных разбилась о гору моих ожиданий?

    • @Веселый1С
      @Веселый1С  2 ปีที่แล้ว

      Ну не совсем. Смотря что вы хотите сделать и зачем хотите собирать кучку ВТ в одну. Не факт, что даже наличие реальной параллельности вам тут поможет. Что за задачу вы хотите решить таким образом?

    • @werwolfwaffen3657
      @werwolfwaffen3657 2 ปีที่แล้ว

      @@Веселый1С задачка была вида : собрать асинхронно в менеджер временных таблиц три разных таблицы данных. А уже дождавшись их "крутить" как хочется, или асинхронно собрать какие-то данные которые буду связывать позже (есть насколько взаимодействий с веб-сервисами вражеского по)

    • @werwolfwaffen3657
      @werwolfwaffen3657 2 ปีที่แล้ว

      @Андрей Овсянкин конечно не поможет. Пусть юзер сидит и ждёт пока у него загрузиться и обработается последовательно 20 разных объектов в форму. Проблема например с вражеским апи очень очень неилюзорна. Когда я получаю от это апи список из идентификаторов на обекты, мне их показывать? Нет. Хочу асинхронно собрать и заполнить строку.

  • @vladyan01
    @vladyan01 2 ปีที่แล้ว

    Почему у 1С такая странная реализация программирования, не как в других языках?

    • @Веселый1С
      @Веселый1С  2 ปีที่แล้ว

      Что такое "реализация программирования"? В чем странность по сравнению с другими языками?

    • @vladyan01
      @vladyan01 2 ปีที่แล้ว

      @@Веселый1С ну да, странно выразился получается. Я имею ввиду например функция и процедура раздельно, нигде такого не встречал, но если с процедуры пустой возврат делать, то работает. Нету свитча. Перечисления это дрлжно по сути число выраженное через слова, но если сравнить первый элемент с нулем или единицей, то выходит ложь. Хотя суть перечисления сравнивать числа вместо слов, но под видом слов. Конечно это всё мелочи и работе не сильно мешает, но интересно почему так разрабы платформы реализовали. Или например сразу не сделали язык с поддержкой ООП, ведь платформа на c++ с ООП написана, они должны были знать про его существование)))

    • @Веселый1С
      @Веселый1С  2 ปีที่แล้ว

      @@vladyan01 Ну тут можно много о чем поспорить. Например, функция и процедура раздельно - в Visual Basic и язык 1С во многом на него похож, т.к. должен быть простым.
      Далее, тезис "Перечисления это дрлжно по сути число выраженное через слова" ложный. Никто не говорит, что перечисление это обязательно число. Так сделано в Си, возможно еще где-то но обычно это все равно деталь реализации. Перечисление это перечисление, числа не при чем. Про ООП в 1С - это старый холивар. Оно, во-первых, есть, хоть и не такое как в других языках, а во-вторых - еще никто не привел хорошего примера - зачем ООП в 1С.

    • @vladyan01
      @vladyan01 2 ปีที่แล้ว

      @@Веселый1С да я не спорю, так по сути ООП в 1С мб и не нужно) Можно сказать без него проще новичку будет) Да и русский язык только по началу напрягает, потом даже нравится становится, и думать так проще на родном языке по идее, и не надо в Гугл лезть переводить слова для названия переменной))) Вообще мне кажется разрабы когда делали 1С, наверно хотели чтобы бухгалтера понимали язык и сами что-то делали там, хотя это странно и маловероятно, но это объясняет русский язык и отсутствие сложных абстракций))

    • @vladyan01
      @vladyan01 2 ปีที่แล้ว

      @@Веселый1С а на счёт перечисления, я просто один раз воткнулся с этим. Делал функцию на проверку цвета и передавал в параметры цифру и пытался сравнить с WebЦвета. и ничего не работало хД ) Перечисление когда изучал объясняли это типа цифры сравнивать компу быстрее, чем строки, а человеку со словами удобнее работать и вот такая штука была изобретена, думал так везде сделано для ускорения)

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

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

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

      @user-zr4uw5ng3r ну я вот прям сейчас сижу за компьютером. У меня висит диалог выбора файла с оповещением. И я не могу никуда переключиться пока не закрою диалог. как называется состояние если: пока я не закрою диалог я не смогу переключиться в другую форма?! . Это блокировка интерфейса видимо, поток кода выполняется дальше, это я проверил отладчиком, только какой смысл всей этой псевдо-асинхронности если Мышкой ты все равно в программе работать не можешь…

  • @roxanapokutnaya7700
    @roxanapokutnaya7700 3 ปีที่แล้ว

    Зачем было делать пометку Асинх. Достаточно было добавить оператор ждать и все. Нет добавили костыль с Асинх. Ппц

  • @NikitaJe_
    @NikitaJe_ 3 ปีที่แล้ว

    Ждать и Асинх только для работу с браузером?

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว

      Нет, в тонком клиенте тоже работает

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

    Заметил гитару, играешь? Я тоже играю

  • @chekmarevyv9395
    @chekmarevyv9395 3 ปีที่แล้ว

    20:58 ))))

  • @chistovpavel
    @chistovpavel 3 ปีที่แล้ว +5

    Эй, ты чего мою работу разбираешь????

    • @chistovpavel
      @chistovpavel 3 ปีที่แล้ว

      @Андрей Овсянкин Допиленный ассемблер пришлешь? :) Но я вангую он у меня на маке не особо взлетит...

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว

      Не взлетит

    • @parennasubaru
      @parennasubaru 3 ปีที่แล้ว

      @Андрей Овсянкин асинх говори о том, какой версии код 18+ или старый, для формирования байт кода.

  • @parennasubaru
    @parennasubaru 3 ปีที่แล้ว

    Когда уже 1с научится отправлять эти вещи в отдельные потоки. Задолбал тупящий интерфейс на фоновых заданиях. Это хорошо сделано в QT , почему 1с не может от туда содрать? Про боль на мобильном клиенте вообще промолчу, жить на одном потоке это огромный позор .

  • @ДмитрийМакаревич-г9й
    @ДмитрийМакаревич-г9й 3 ปีที่แล้ว

    Непонятные капризы)

  • @ПетрПетров-щ7ц
    @ПетрПетров-щ7ц 3 ปีที่แล้ว

    Не понятно почему ты бомбишь. Вполне логично все. Можешь сделать лучше, предлагай 1Су

    • @Веселый1С
      @Веселый1С  3 ปีที่แล้ว

      Могу, конечно ) И иногда даже делаю. Но вообще, они молодцы. Я бомблю только с того, что сделали слишком поздно.

  • @ИльяСахарюк
    @ИльяСахарюк 2 ปีที่แล้ว

    Спасибо