Почему 1С не сделает многопоточного клиента, если он уже есть? #743343


#0 by H A D G E H O G s
Ночи доброй. Собственно, сабж. Я конечно понимаю, что на запись данных этого делать не стоит, либо на вывод в интерфейс; но вот например, на грязное чтение из базу в файл - почему бы и нет?
#1 by PR
Что такое многопоточный клиент? И зачем? И что значит уже есть?
#2 by GROOVY
Многопоточный - это как и зачем? Чтоб бухи одной рукой выписку вносили, а другой баланс формировали?
#3 by H A D G E H O G s
Кстати, говоря про то, что он уже есть - я не лукавлю :-) Клиент реально многопоточен, я не использую никаких хаков, я использую типовой функционал :-) Вот мы пишем 4 файла в разных потоках. Загрузка ЦП: Кусок кода: Результат: Либо мы делаем вычисления: Загрузка ЦП: Кусок кода: При этом все работает - оболочка откликается, справочники открываются.
#4 by H A D G E H O G s
Да, есть ньюансы. Когда идут вычисления в 4 потока - оболочка подтормаживает, при 3 потоках - все норм. В потоках нельзя выводить что-то в интерфейс - разработчики не предусмотрели синхронизацию похоже. При записи справочников в потоках - писать будет только 1 поток.
#5 by GROOVY
"Запись данных " и "Чтение" - это как бы не клиент делает.
#6 by klis
Пока какой-нибудь мега отчет формируется 10-20 минут, можно параллельно заниматься другими делами. Сейчас того же самого можно добиться, запустив два параллельных клиента, например.
#7 by GROOVY
Есть же фоновые задания, которые специально для распараллеливания и делали. Но клиент тут ни при чем.
#8 by H A D G E H O G s
Это как бы понятно, клиент раздает задания и ждет результата от сервера.
#9 by PR
Проснись и пой, уже дано отчеты формируются в фоне. Можно даже один и тот же отчет запустить еще раз, пока он первый раз формируется. Так сказать, наложить себе же за шиворот в прыжке.
#10 by GROOVY
Тогда я не понимаю о чем топик.
#11 by H A D G E H O G s
Их аналог WaitForMultipleObjects нереально медленный :-)
#12 by PR
Так а чего же ты ждешь от 1С тогда? Все сделано. Пользуйся.
#13 by GROOVY
Ну да, скдшные по дефолту в фоне формируются.
#14 by GROOVY
Это что такое?
#15 by klis
Ок. А если не отчет, а обработка? Или там проведение документа?
#16 by H A D G E H O G s
Это ОжидатьЗавершения в 1С.
#17 by GROOVY
В фоновое задание его передай.
#18 by PR
Ознакомься на досуге
#19 by GROOVY
Ну с этим есть небольшие хотелки... Все через... Не очень очевидные методы реализовано.
#20 by H A D G E H O G s
Вот. Фоновые задания :-) Для файловой версии надо запускать отдельное приложение - обработчик, вроде да?
#21 by PR
+ И с механизмом фоновых заданий
#22 by PR
Дима, е мое :))
#23 by PR
+ Файловая версия вообще кал. Не будем про нее :))
#24 by H A D G E H O G s
Ну слава яйцам!
#25 by GROOVY
Ты меня прям напугал.
#26 by H A D G E H O G s
Сервер 1С скоро упрется в то, что ему будет не хватать и 32 процессорных ядер. И фоновые задания выполни, и XDTO сериализацией позанимайся, И УФ отстрой. Хочется озадачивать клиента.
#27 by PR
Вот для рест интерфейса сделать к гету и посту апдейт запрос вот это да, мне как раз кстати оказалось :))
#28 by H A D G E H O G s
Чё?
#29 by PR
+ Сделать = сделали
#30 by PR
Я говорю, в написано про PATCH-запрос. А сделали его не так давно, в какой-то 8.3.6. А у меня без него пришлось бы на серьезном проекте обмен по-другому рисовать.
#31 by Asmody
пока в языке не будет лямбд, замыканий и функций первого класса, будет через то место
#32 by Asmody
и нормальной рефлексии
#33 by PR
, Что это? На мой взгляд не хватает возможности подписываться на события на сервере вместо постоянного опроса сервера путем получения с него данных и сравнения с уже полученными.
#34 by Garykom
Мда...когда 1С 7.7 уже лет 5 как вовсю вышла и победно шагала и уже на горизонте появилась 8.0 ... еще тогда были "программисты" которые дальше "констант" и "справочников" систему "не поняли" и не использовали в своих самописках-нетленках больше ничего... ЗЫ а Вы им "лямбд, замыканий и функций первого класса"...
#35 by Garykom
+ да стоит только добавить объектность реальную и все ... 3/4 "программистов 1С" того... сухари-сушить профу менять
#36 by Garykom
1- Уже сейчас а как это на СКД сделать? 2- Не можешь на СКД делай вручную! 1- Э вручную это как? 2- мля...
#37 by GROOVY
Так кластер можно сделать. Конечно не все сервисы разнести получится.
#38 by H A D G E H O G s
Кластер... Вот еще вопрос - почему 1С не использует что-нибудь пошустрее TCP/IP, например, именованные каналы :-)
#39 by H A D G E H O G s
Ладно, я спать.
#40 by Aleksey
В том и  проблема что клиент не ждет результат Или уже 1С формирует событие на клиенте по завершению фонового задания?
#41 by Asmody
До футур 1Су как отсюда до Антарктиды.
#42 by Американец
На быстрой сети разницы практически не будет. На медленной - TCP/IP будет шустрее.
#43 by oleg_km
А почему именованные каналы быстрее TCP/IP? Они же поверх последних реализованы.
#44 by Американец
Есть локальные пайпы, а есть сетевые. Если клиент и сервер запущены на одной машине, то пайпы будут быстрее потому, что локальные. А сетевые пайпы по факту это TCP сокеты.
#45 by oleg_km
Ну так и TCP/IP для работы с localhost совсем не нужно беспокоить сетевую карточку. Некоторые сниферы даже не видят этот трафик.
#46 by Живой Ископаемый
2 Код как параметр, вообще, возможность манипуляции кодом как данными, переменными
#47 by Бубка Гоп
нахрена на localhost tcp если есть shared memory?
#48 by Бубка Гоп
а оно надо? имхо, сфера разработки у 1с не та, которой могут потребоваться те же замыкания
#49 by Бубка Гоп
+ когда код надо сделать в какой то степени вариативным, можно воспользоваться тем же Выполнить, и этого хватает за глаза. правда, сам я не сторонник такого подхода
#50 by Гёдза
Как не та? В асинхронных вызовах очень не хватает замыканий
#51 by Fragster
Хочу так: нажал "провести и закрыть", окно документа залочилось, а мы дальше можем шарится по программе. когда док провелся - выскакивает оповещение (оно и сейчас выскакивает) и окошко закрывается.
#52 by Fragster
и чтобы любой вызов (в т.ч. на сервере, при пакетной олбработке) можно было бы асинхронным сделать.
#53 by Живой Ископаемый
2 У 1С есть мобильное приложение, в котором например реализованы в том числе и фоновые задания (если верить зазеркалью), и для мобильных приложений, например характерно асинхронное заполнение UITableView, когда сами ячейки заполнены, текстовая информация размещена, а картинки подгружаются асинхронно.
#54 by Fragster
а не то угребище, которое сейчас - из-за того, что разработчикам надо было затыкать дырку в веб клиенте в хроме, сделали то, что не однопоточно по поведению, причем достаточно просто подобная "псевдо немодальная асинхронность", как сейчас могла быть реализована и без изменения кода конфигурации.
#55 by Живой Ископаемый
+1
#56 by Гёдза
Не нужно путать асинхронность и многопоточность
#57 by Бубка Гоп
пришлось бы долго ковырять платформу. а так - х*як х*як и в продакшен (с) #1cStyle
#58 by Fragster
по факту одно другому не мешает.
#59 by Fragster
в "не однопоточно" следует читать как "однопоточно" или даже как "неасинхронно"
#60 by Гёдза
Не мешает, но это независимые понятия
#61 by DmitrO
потому что 1С считает что достаточно многопоточного сервера согласен, вот мне тоже так кажется.. но почему-то они пошли на серьезное неудобство при разработке конфигураций на пустом месте, может мы чего-то не знаем.
#62 by Fragster
ну вот нодежс - он типа "асинхронный", но по факту асинхронные вызовы улетают в другие "обслуживающие" потоки, от которых потом приходят сообщения. А во многих случаях  - обмен сообщениями еще и двусторонний. При этом собственно программный поток один.
#63 by Живой Ископаемый
Для этого 1Сникам нужно мыслить делегированием и КВО-радиостанциями. Наверное 1С считает что это для них сложно.
#64 by DmitrO
1С даже считает, что для 1Сников сложно преобразование числа в строку и ссылки в GID в запросе :)
#65 by DmitrO
*GUID
#66 by SUA
замыкания в 1с есть - по сути это директива &насервере, как бы это ни смешно выглядело (всю форму гоним в контекст сервера) Выполнить а мультипоточность хочу... причем как раз для записи и тяжелого кода в основном, а то бесит когда даже в типовом ЖР ставишь отбор и сразу запускаешь 2ю сессию, не говоря уже про обработки обслуживания с тяжелыми запросами (запустили - ждем полчаса - потом делаем 2 минуты) синхронное или асинхронное поведение тут совсем неважно, и фоновыми заданиями не отделаться - если задача попарсить большой excel файл с клиента
#67 by Лефмихалыч
нынче можно одновременно формировать грузовой отчет и колбасить документы, пока он формируется, в одном и том же сеансе. Чем это не многопоточность?
#68 by Лефмихалыч
фоновыми заданиями попарсить большой фал с клиента нет проблем. Для этого всего лишь надо файл либо на сервер передать, либо туда, куда у сервера доступ есть.
#69 by Dен
Приложи, пожалуйста, обработку из , на которой проверялась многопоточность. По показанным кускам кода не понятно, как все это запускается.
#70 by H A D G E H O G s
Я про локальную машину и про вот эти замеры производительности.
#71 by H A D G E H O G s
Нет, я спец. не показал код запуска. Это все таки не документированная возможность.
#72 by mehfk
Неужто в ВК создается n потоков, из которых генерируется внешнее событие?
#73 by H A D G E H O G s
Нет. Поток должна создать (и реагировать на него) сама 1С. Если ты создаешь поток сам и этот поток что-то делает с 1С (запускает код 1С) - все идет по звезде.
#74 by SUA
да, - перегнать файл - установить эксель или прочие приблуды для его разбора на сервер, порадоваться в очередной раз забытым граблям запуска экселя от системной учетки - перегнать результат обратно мелочь какая... особенно для тонких клиентов (там где они реально нужны в связи с узким каналом связи например)
#75 by SUA
а клиентский комп с гигабайтами оперативы и i5 пускай подождет
#76 by Гёдза
переходи на xslx. его можно без екселя парсить
#77 by Волшебник
Восьмёрка ещё сыровата, конечно...
#78 by Бубка Гоп
и обычный xls тоже
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С