Имя: Пароль:
1C
1С v8
можно ли вывести пользователю состояние проиходящего в процедуре на сервере?
,
0 VenikUltra Green
 
03.11.22
09:25
Добрый день. Есть процедура, которая выполняется &НаСервере. Там в цикле обходит 100500 строк с обработкой. Вопрос: есть ли хоть какой-то вариантик пользователю видеть статус, а то больно скучно сидеть и думать, а работает оно или висит? В прошлом  выводили в Состояние или Индикатор. А вот если это НаСервере, то вооще ни каких вариантов нет или кто-то что-то знает?
1 Kassern
 
03.11.22
09:29
(0) Делайте цикл на клиенте, а тушку цикла выполняйте на сервере.
И вообще берите пример с 1с, прикрутите котика анимированного, или, на худой конец, колесико)
2 Timon1405
 
03.11.22
09:30
БСП
ДлительныеОперации.ПрочитатьПрогрессИСообщения
3 Ryzeman
 
03.11.22
09:31
(1) 100500 дёрганий сервера? Фу быть таким
4 Ryzeman
 
03.11.22
09:32
(3) + а прикинь он это на веб-клиенте будет делать?)
5 Kassern
 
03.11.22
09:32
(3) Да ладно вам, мне не жалко) Хочет ведь юзвер каждый этап цикла отслеживать)
6 Ryzeman
 
03.11.22
09:33
(5) Ну, если логика позволяет, то самое качественное решение - выполнить в фоне с отслеживанием состояния как (2) предлагает
7 Kassern
 
03.11.22
09:34
(6) Ага, примерно так все типовые на управляемых формах и работают
8 VenikUltra Green
 
03.11.22
09:35
(1) прикрутить котика или колёсико - это тема отдельной ветки.
9 Мультук
 
гуру
03.11.22
09:35
(7)

Так значит, можно посмотреть в типовой, а не лезть на форум ?
10 Kassern
 
03.11.22
09:36
(9) в большинстве случаев, это самый простой способ решить задачу)
11 Garykom
 
гуру
03.11.22
09:36
(0) Если подобные вопросы задаются на форуме (вместо изучения в первоисточниках) то ответ НЕЛЬЗЯ.
Ибо накосячите.
12 Garykom
 
гуру
03.11.22
09:37
(11)+ Потом выяснится что это внешняя обработка, что доступа с сервера туда где она лежит нет и т.д. ))
13 Мультук
 
гуру
03.11.22
09:40
(0)

Я бы посмотрел в типовой "удаление помеченных". Там вроде всегда был адекватный код.

P.S

Я погуглил на инфострарте, а там всё идеологически верное, но старое, для старых БСП.
Так что топикпастеру придется самому читать, думать и самому писать.
А потом написать новую статью на инфостарт :-)
14 ДНН
 
03.11.22
09:44
(0) еще можно через внешнюю компоненту
https://1clancer.ru/catalog/4336
15 Kassern
 
03.11.22
09:57
(14) Интересно, как влияет на производительность вызов внешнего события для 100500 строк?
16 ДНН
 
03.11.22
10:01
(15) плохо. Только не понятно зачем передавать 100500 строк. Передавать нужно процент обработанных данных (числом) с сервера на клиент.
17 Фрэнки
 
03.11.22
10:11
А может кто подтолкнет в правильном направлении, чтоб отдельную ветку не создавать.
Сейчас опишу. Похоже на топик, но лучше сформулировать.
18 Фрэнки
 
03.11.22
10:19
В базах на типовой конфиге с актуальной БСП. Т.е. метод будет вероятно схожим и для БП и для ЗУП и для УТ

Есть документы, в которых изменяются статусы или значения в дополнительных сведениях. Т.е. можно даже запросом прочитать текущий статус документа.
А по прочтении запроса вывести в Оповещение, что документ такой-то статус такой-то. Оповещение в уголочке отобразится типовым способом и будет висеть в Оповещениях, пока Пользователь его не очистит.

Вопрос. Как сделать, организовать это в виде повторяющегося запуска процедуры?
Куда-то надо фоновый процесс... А как он вернется в текущий сеанс, чтоб оповещение там возникло... Это в типовом вроде должно быть где-то в получении новостей, наверное?
19 Kassern
 
03.11.22
10:25
(18) Можно наверное через Задачи это реализовать, мол меняем определенные реквизиты и пишем задачу конкретным юзверам, что они изменились. Типовая конфа сама эти задачи им выведет.
20 Фрэнки
 
03.11.22
10:57
(19) Про задачи я тоже думал. Но вроде не хочется в них лезть.

Или генерить в фоновом задании новую задачу, чтоб наверняка инфа для Пользователя была оформленой, а не такой, что кнопку очистить нажал не глядя и все пропало?
21 Kassern
 
03.11.22
11:07
(20) Да прост юзверы не приучены ими пользоваться, а так удобная штука. Я в свое время реализовал ее на УТ10.3. В принципе, результатом доволен, менеджеры видят всплывашки, что появились новые заказы, или то что другой отдел отложил по какой-то причине заказ, или с сайта какая-то новая инфа пришла. Задачи могут повторяться пока там не нажмут "Завершить", это на случай если случайно закрыли.
22 Kassern
 
03.11.22
11:14
Сейчас наверное модно делать через систему взаимодействия с блек джеком и чатиками)
23 Фрэнки
 
03.11.22
11:33
(22) не, не модно. Сервера взаимодействия - откуда их брать... Не встречал ни у кого
24 Kassern
 
03.11.22
12:20
(23) "откуда их брать" - башлять 1с, или воспользоваться бесплатным инструментом 1С:Диалог, если в ограничения вписываетесь.
25 b_ru
 
03.11.22
12:59
(3) Если количество итераций известно заранее и задание четко делится на них, то нет проблем. Делим задание на 100 частей и на клиенте дергаем сервер 100 раз. После каждого дерганья обновляем прогрессбар. Просто, дешево, не надо колбэков.
26 Ryzeman
 
03.11.22
13:03
(25) Я могу согласиться с этим, если не подразумевается перенос какого нибудь тяжёлого контекста или иных данных. И то это приведёт к лишней, хоть и не очень затратной работы по вычислению порций. Опрос сверера о состоянии, особенно платформерное куда легче и лучше.
27 Garykom
 
гуру
03.11.22
13:51
Кстати когда уже до лиц принимающих решения по платформе 1С дойдет что достаточно встроить в платформу на клиенте http-сервер и большая часть проблем уйдет?
Сейчас это реализуемо через ВК

Если так не хотят делать чтобы с сервера можно было дергать клиента и попадать в ОбработкаВнешнегоСобытия
28 Kassern
 
03.11.22
13:54
(27) 1с сделало для этого систему взаимодействия - пользуйтесь, хоть задергайте клиента с сервера
29 ДедМорроз
 
03.11.22
18:55
Задача решается фоновым заданием,из которого отправляются сообщения пользователю,а с клиента можно периодически заходить на сервер и их забирать.
Можно,конечно,через систему взаимодействия,то это очень нелегкий путь.
Ошибка? Это не ошибка, это системная функция.