|   |   | 
| 
 | Не подскажите как грамотнее написать обработку | ☑ | ||
|---|---|---|---|---|
| 0
    
        Klesk666 21.04.16✎ 21:52 | 
        Знаю что частый вызов сервера, написал порционную обработку, но как то коряво вышло, не подскажите как правильно:
 &НаСервере Процедура ОбработатьНаСервере(НачальноеЗначение,КонечноеЗначение) СтруктураПоиска=Новый Структура; СтруктураПоиска.Вставить("Выбран",Истина); ВыбранныеДляДействия=Объект.ТаблицаАдресов.НайтиСтроки(СтруктураПоиска); Для Сч=НачальноеЗначение по КонечноеЗначение Цикл ВыбранныеДляДействия[Сч-1].ТипСправочника="Обработано"; ВыбранныеДляДействия[Сч-1].Ссылка.ПолучитьОбъект(); КонецЦикла КонецПроцедуры &НаКлиенте Процедура Обработать(Команда) СтруктураПоиска=Новый Структура; СтруктураПоиска.Вставить("Выбран",Истина); ВыбранныеДляДействия=Объект.ТаблицаАдресов.НайтиСтроки(СтруктураПоиска); ОбщееКоличество=ВыбранныеДляДействия.Количество(); Если ОбщееКоличество=0 Тогда Возврат; КонецЕсли; Деление=100/ВыбранныеДляДействия.Количество(); РазмерПорции=Объект.РазмерПорции; НачальноеЗначение=1; КонечноеЗначение=МИН(РазмерПорции,ОбщееКоличество); ВремяНачала=ТекущаяДата(); Пока НачальноеЗначение<=ОбщееКоличество Цикл ОбработатьНаСервере(НачальноеЗначение,КонечноеЗначение); Состояние("Обработка...",НачальноеЗначение*Деление); НачальноеЗначение=КонечноеЗначение+1; КонечноеЗначение=МИН(КонечноеЗначение+РазмерПорции,ОбщееКоличество); КонецЦикла; Сообщение=Новый СообщениеПользователю; Сообщение.Текст="Время выполнения: "+Строка(ТекущаяДата()-ВремяНачала)+" сек."; Сообщение.Сообщить(); КонецПроцедуры | |||
| 1
    
        Cyberhawk 21.04.16✎ 22:04 | 
        Фоновое задание + писать прогресс в РС + с клиента периодически читать и отображать этот прогресс     | |||
| 2
    
        CepeLLlka 21.04.16✎ 22:06 | 
        А чё там? Обработка длится 2 часа что-ли?     | |||
| 3
    
        CepeLLlka 21.04.16✎ 22:06 | 
        Или соединение с сервером на низкой скорости?     | |||
| 4
    
        CepeLLlka 21.04.16✎ 22:08 | 
        (1)Хорошая идея кстати. Как-нибудь попробую использовать такое, если вдруг нужно будет кодить чё-нить такое громосткое     | |||
| 5
    
        Klesk666 21.04.16✎ 22:09 | 
        (2) перепроведение документов,  и надо следить за процессом     | |||
| 6
    
        Shrek_yar 21.04.16✎ 22:10 | 
        (5) зачем тебе прогресс то, будешь его гипнотезировать?     | |||
| 7
    
        Shrek_yar 21.04.16✎ 22:10 | 
        (0)   Пока НачальноеЗначение<=ОбщееКоличество ЦиклЗАменить на цикл сч= По | |||
| 8
    
        CepeLLlka 21.04.16✎ 22:10 | 
        (5)Ну тогда попробуй, то что в (1).. Мне кажется интересно такое реализовать.. 
 (6)Мдее.. Прогресс бар нужная вещь так-то.. Висит, не висит.. сколько ещё осталось и т.д.. | |||
| 9
    
        HEKPOH 21.04.16✎ 22:10 | 
        (6) оч увлекательное занятие и нужное     | |||
| 10
    
        Klesk666 21.04.16✎ 22:10 | 
        (6) может оно висит там уже     | |||
| 11
    
        Shrek_yar 21.04.16✎ 22:11 | 
        (8) ага, если 50 тыщ единиц, и ты так смотреть будешь.     | |||
| 12
    
        Shrek_yar 21.04.16✎ 22:13 | 
        Сервер тогда уже вызывай без контекста     | |||
| 13
    
        Drac0 21.04.16✎ 22:31 | 
        (8) (1) БСП на вас нет. Открыть последнюю не судьба? Там даже пример есть для фоновой обработки с прогрессом и получением сообщений пользователю. 
 (12) Фу, таким быть. | |||
| 14
    
        Shrek_yar 21.04.16✎ 22:36 | 
        (12)?? что вам не нравиться в СерверБезКонтекста     | |||
| 15
    
        CepeLLlka 21.04.16✎ 22:40 | 
        (13)Можно написать совсем по другому..
 "Ребят, в БСП отлично решение есть, поглядите! Мне кажется это именно то, что вам нужно" | |||
| 16
    
        Zamestas 21.04.16✎ 22:48 | 
        (0) А запросом на сервере точно не собрать?     | |||
| 17
    
        Shrek_yar 21.04.16✎ 22:50 | 
        (15) )))))) Я когда обработывал справоник номенклатуры запускал 10 фоновых заданий, за неделю обработал     | |||
| 18
    
        mingw 21.04.16✎ 23:03 | 
        Если в конфе нет нужного функционала. И менять конфу нельзя. Только внешней обработкой удобно никак.
 http://xn----1-bedvffifm4g.xn--p1ai/articles/как-ускорить-1с-многопоточность/ http://forum.infostart.ru/forum86/topic118582/ http://forum-1c.ru/index.php?topic=15951.0 Можно использовать ВК. Для передачи данных с сервера на клиент. Если клиент доступен с сервера. | |||
| 19
    
        Drac0 21.04.16✎ 23:06 | 
        (14) Если есть хотя бы гипотетическая вероятность, что кто-то запустит эту обработку под Веб-клиентом, то это будет граблями, т.к. большинстов браузеров просто начнут отваливать по тайм-ауту. И если Хром хотя бы предлагает подождать, то Сафари просто предложить грохнуть соединение. (15) Ути-пути, какие мы нежные :)     | |||
| 20
    
        Klesk666 22.04.16✎ 01:08 | 
        а чем объяснить что в файлов режиме, тоже прирост в скорости если порции больше?     | |||
| 21
    
        Fram 22.04.16✎ 01:26 | 
        (19) а в случае с контекстом как себя ведут браузеры?     | |||
| 22
    
        hhhh 22.04.16✎ 02:04 | 
        (20) количество порций тогда меньше, что непонятно?     | |||
| 23
    
        Klesk666 22.04.16✎ 02:41 | 
        (22) сервера то нет, все на одной машине     | |||
| 24
    
        hhhh 22.04.16✎ 03:26 | 
        (23) есть там сервер. Куда он по вашему делся? И насчет машины нет разницы, в клиент-серверном варианте тоже можно всё на одной машине запустить.     | |||
| 25
    
        Drac0 22.04.16✎ 09:16 | 
        (21) Аналогично. В Веб-приложении нельзя делать серверные вызовы дольше нескольких секунд.     | |||
| 26
    
        Cyberhawk 22.04.16✎ 09:26 | 
        (13) В какой типовой и в каком виде пример? Или на ИТС в документации? Подсистемы название хотя бы скажи ("Длительные операции"?).
 P.S. А падение сеанса фонового задания логируется в базе? | |||
| 27
    
        Drac0 22.04.16✎ 11:50 | 
        (26) саму БСП смотри. Есть демо обработка в составе, где показываются для примера все возможности подсистемы ДлительныеОперации.     | |||
| 28
    
        Cyberhawk 22.04.16✎ 16:08 | 
        (27) Ага, посмотрел. Отличие в том, что прогресс хранится во временном хранилище, а не в базе, и только на время, пока это нужно на клиенте. 
 Для написания примочек к конфигурациям на базе БСП, а особенно к тем, что на замке, вариант оптимальный, ибо все удобства уже встроены и сделаны. Но если прогресс (и сопутствующие метаданные) нужно иметь возможность получить в других сеансах, то без своих метаданных и хранении результата в базе не обойтись (кажется). | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |