Спасибо за доклад, 1С как всегда позади планеты всей, нет повести печальнее на свете чем повесть об асинхе в одинэсе.
@xrollup4 ай бұрын
Это не то слово просто. Была надежда на 1С 9, нынче это Элемент, но нет.
@vladvladislav59494 ай бұрын
@@xrollup 1С Элемент - это очередная попытка 1С сделать свой велосипед и объять необъятное, подменив своими поделиями весь инструментарий, часто абсолютно бесплатно доступный в других стеках.
@sergframer Жыл бұрын
Есть еще фишка из незадокументированных при работе с асинх. Нельзя делать асинхронными обработчики событий в модулях формы, у которых есть управление стандратной обработкой, т.к. при повторном вызове ее стандартная обработка уже не отключена. (это в копилку)
@Softonit Жыл бұрын
Спасибо, важное замечание, ведь если этого не знать, потом найти это проблему в сложной форме будет достаточно проблематично.
@dmitriyobidin604911 ай бұрын
Все таки было бы интересно разобрать способы обработки ошибок в промисах. Насколько смог быстро нагуглить, то сейчас просто вызов асинхронной функции заворачивается в try/catch, при этом же не понятно, а как быть если у меня идет вызов 2/3/4 асинхронных функций подряд - кажду в отдельный блок try заворачивать? Если нет, то как в catch разобрать какой именно метод выкинул исключение? И если условно у меня вызывается 10 методов, не может ли быть такого что 1 промис успеет "вывалить" исключение до того как код дойдет до 10 промиса? Что будет в таком случае? Или все таки асинки висят в какой-то другой очереди выполнения(аналогично eventloop в том же js)
@spidermen3152 ай бұрын
Вы сказали что в 1С многопоточности как таковой нет. что все потоки встают в очередь и падают на 1ядро. при этом вы говорите о файловой базе. А как же тогда дела обстоят в клиент-серверной? такой же результат или все таки там уже потоки падают на разные ядра и процесс выполнения ускоряется?
@Softonit2 ай бұрын
Да. Эксперимент проводили на файловой базе. На серверной все работает параллельно.
@Softonit2 ай бұрын
@@Softonit дополнение: в клиент-серверной архитектуре, сам клиент, т.е. платформа 1С с которой клиент подключается к серверу выполняется в одном потоке, также клиентский поток блокируется и ждет пока выполнится операция "&НаСервере", на сервере выполняется в разных потоках это факт, но при этом клиент всеравно ждет и блокирует интерфейс... В этом случае помогут и действительно оптимизируют фоновые задания.
@Липин_Максим Жыл бұрын
Не сказано две особенности/недостатка асинхронных методов: процедуру придётся делать асинхронной и отсюда вытекает, что ее параметры будут передаваться по значению и весь стек вызовов придётся сделать асинхронным. То есть если процедура обрабатывала параметры по ссылке, то ее придётся переделывать в функцию и возвращать параметром.
@Softonit Жыл бұрын
Спасибо, полезное замечание!
@xrollup4 ай бұрын
Я асинхронку интуитивно использовал только для диалогов. Вот нутром чуял что 1С не затащит нормальную реализацию. Не ошибся.
@skpavlenko Жыл бұрын
Ух, ребята, ну вы красавчики, конечно. Разобрали методику работы JavaScript. Нет там никакого 1С, тупо Js под капотом. 1С - это синтаксический сахар, ха-ха
@Softonit Жыл бұрын
Спасибо за отзыв. Нам удалось встроить React-приложение и организовать двухстороннюю связь 1С и React, так что все что в докладе, все проверено. Мы сделали интеграцию с ChatGPT в приложении React и встроили это в 1С. Можно посмотреть как это выглядит в нашей базе знаний softonit.ru/FAQ/courses/?COURSE_ID=1&LESSON_ID=933 Другой вопрос, что не совсем верное словосочетание про "1С - это синтаксический сахар". Мы говорили про работу с Асинх. Что это упрощение старого подхода. Вы не верно поняли.
@skpavlenko Жыл бұрын
@@Softonit ну просто все что вы описываете - это нативное поведение JS. 1C просто сделали обёртку над async/await и Promise То что говорите, что это работает только с запросами к внешнему ресурсу, вроде ChatGPT, ну так в JS все является внешним ресурсом, и любая информация извлекается по HTTP REST API. А здесь это просто все так странно реализовано, что непонятно где использовать асинхронность. Внутри однопоточного приложения она правда не имеет смысла. А в JS API calls, обращения к базе, они все асинхронные же.
@Das.Kleine.Krokodil9 ай бұрын
@@skpavlenkoпочему именно JavaScript?
@skpavlenko9 ай бұрын
@@Das.Kleine.Krokodilпотому что все что они обсуждают - это синтаксический сахар над функционалом JS, еще и такой, недоделанный. Они методами 1С дергают функции JS, на самом деле.
@Das.Kleine.Krokodil9 ай бұрын
@@skpavlenkoсчитаешь, что не стоит освещать эти возможности в 1с?
@tsv856011 ай бұрын
По мне совершенно бесполезный функционал. Для меня описание оповещения сильно проще выглядит и привычнее чем какие-то асинхи и ждать. По поводу запросов в веб, так я их делаю через фоновые задания на сервере (хотя мб если они нужны на клиенте тут как-то иначе должно быть).
@sergeisolomakho868Ай бұрын
в голове у оратора каша какая-то
@SoftonitАй бұрын
В чем смысл оставлять такие комментарии? Не нравится не смотрите, а еще лучше запишите контент по этой теме, с удовольствием послушаем