Як показати процес виконання чогось, що відбувається на сервері


Про1С-ник


Група: Команда
Повідомлень: 8756
З: Харків
Подякували: 2332 раз
Рейтинг: 1416.3

Навіщо переходити кудись? Прогрес-бар непользую, але Стан () дуже навіть використовую, зрозуміло, що це якось через ж, але і користувачеві треба щось відображати, і порційна обробка великих обсягів проходить трохи швидше, і не покладе процес однозначно.
Суть роботи така: на клієнті створюється структура-індикатор, яка містить кількість оброблюваної інформації (наприклад кількість циклів обробки), і далі на клієнті, поки умова індикатора дотримується - викликається серверна процедура яка обробляє шматок інформації згідно з поточними параметрами індикатора, плюс в разі успішного виконання серверної процедури - в ній же міняємо індикатор на наступний цикл.

Vofka

Як показати процес виконання чогось, що відбувається на сервері

Знайти усі повідомлення даного користувача


У нас тут своя атмосфера.

Група: Засновник
Повідомлень: 12303
З: Київ
Подякували: 3633 раз
Рейтинг: 2769.1

Цитата (Zaval # 064; 21.01.13, 21 # 58; 12)

По-моєму, з точки зору клієнт-серверної технології прогрессбар серверної процедури - безумовне зло


В контексті керованих форм 1С це так, але, блін, потрібна ж штука. Думав, що може є все-таки якесь нормальне рішення, тому що повторюся річ ніби як не зовсім марна.

Цитата (Zaval # 064; 21.01.13, 21 # 58; 12)

Переходимо від "бантиків" до спартанського стилю: "Триває обробка" / "Завершено".


Так воно і буде скоріше за все, тому що в даному випадку це разова обробка, тому морочитися сенсу немає. Питання виникло для розширення кругозору, так би мовити.

logist. я розглядав такий варіант, але думав, що якось простіше цю справу можна зробити. І потім, з об'єктами де код числовий можна поділити на порції і вибирати і обробляти частинами (ДЕ Код> = X І Код

ЗИ. Керовані форми такі керовані.

Послуги 1С програміста

Цитата (Vofka # 064; 22.01.13, 9 # 58; 20)

В контексті керованих форм 1С це так, але, блін, потрібна ж штука. Думав, що може є все-таки якесь нормальне рішення, тому що повторюся річ ніби як не зовсім марна.


я б на сервері отримав кількість записів і його передав би прогрес-бару. І приблизно вже можна з похибкою знати коли приблизно обробка завершиться. Точність показань не особливо важлива.

Цитата (alex040269 # 064; 22.01.13, 17 # 58; 41)

Якщо розглядати УФ як спеціалізований оглядач, скажімо інтернет, (а так воно по суті і є). Те все сторінки, що відкриваються оглядачем, періодично бігають на сервер і запитують, а як там мій процес? який я не давно завантажив (щодо тривалих процесів, завантаження файлу на сервер або поновлення цін). Такої можливості у УФ поки немає.


ця технологія називається ajax. Так, динаміки в 1С немає. Думаю з часом здеруть.

Vofka

Як показати процес виконання чогось, що відбувається на сервері

Знайти усі повідомлення даного користувача


У нас тут своя атмосфера.

Група: Засновник
Повідомлень: 12303
З: Київ
Подякували: 3633 раз
Рейтинг: 2769.1

Цитата (Acid # 064; 28.01.13, 10 # 58; 35)

я б на сервері отримав кількість записів і його передав би прогрес-бару. І приблизно вже можна з похибкою знати коли приблизно обробка завершиться. Точність показань не особливо важлива.


У такому випадку потрібно стрибати з клієнта на сервер постійно (для того, щоб статус прогрес-бару міняти). Не варіант. Я ж кажу, це вже питання академічного характеру. Питання, який спонукав до створення цієї теми вже давно вирішене. Цікавило як таке взагалі зробити елегантно можна.

Послуги 1С програміста

Acid

Як показати процес виконання чогось, що відбувається на сервері

Знайти усі повідомлення даного користувача

Цитата (Vofka # 064; 28.01.13, 10 # 58; 42)

У такому випадку потрібно стрибати з клієнта на сервер постійно (для того, щоб статус прогрес-бару міняти)


я цей варіант пропоную навпаки, щоб не стрибати. 1 раз тільки видати кількість записів перед обробкою.


Документуйте Код # 33; матір вашу.

Vofka

Як показати процес виконання чогось, що відбувається на сервері

Знайти усі повідомлення даного користувача


У нас тут своя атмосфера.

Група: Засновник
Повідомлень: 12303
З: Київ
Подякували: 3633 раз
Рейтинг: 2769.1

Цитата (Acid # 064; 28.01.13, 12 # 58; 59)

я цей варіант пропоную навпаки, щоб не стрибати. 1 раз тільки видати кількість записів перед обробкою.


Так і що він дасть? По-перше треба буде хоч раз стрибнути з сервера на клієнт, щоб показати кількість, а по-друге, ця ж цифра нічого користувачеві не скаже. Наприклад, напише, мовляв треба обробити 100000 записів, користувач відразу запанікує, хоча по факту це може зайняти 30 хвилин

Послуги 1С програміста

Acid

Як показати процес виконання чогось, що відбувається на сервері

Знайти усі повідомлення даного користувача

Ви мене не зрозуміли.
Ну і ще один варіант - створити серверну функцію, кіт. відстежує скільки записів вже відпрацьовано. І з клієнта звертатися до неї (з обробкою очікування скажімо 10сек), щоб отримати актуальний стан.

Повідомлення відредагував Acid - 28.01.13, 14:03