#0
by DexterMorgan
Есть дополнительный отчет на бсп, у которого есть команда и эта команда выполняется в фоновом задании. Нужно во время выполнения фонового задания получать данные из него какие-то данные. Подключен обработчик ожидания в форме отчета и т.д. Из СП: "Данные, помещенные во временное хранилище в фоновом задании, не будут доступны из родительского сеанса до момента завершения фонового задания.", те временное хранилище не подходит. Как лучше?
#1
by DexterMorgan
Вообще мне кажется очень удобным получать данные через хранилище настроек, но оно явно для этого не предназначено
#5
by su_mai
Примечание: Временное хранилище, сформированное в одном сеансе, недоступно из другого сеанса. Исключением является возможность передачи данных из фонового задания в сеанс, инициировавший фоновое задание, с помощью временного хранилища. Для такой передачи следует в родительском сеансе поместить во временное хранилище пустое значение, передав идентификатор формы. Затем полученный адрес передать в фоновое задание через параметры фонового задания. Далее, если этот адрес использовать в параметре <Адрес>, то результат будет скопирован в сеанс, из которого было запущено фоновое задание. Данные, помещенные во временное хранилище в фоновом задании, не будут доступны из родительского сеанса до момента завершения фонового задания.
#7
by DexterMorgan
Что временное хранилище? вы читаете, что постите? "Данные, помещенные во временное хранилище в фоновом задании, не будут доступны из родительского сеанса до момента завершения фонового задания." НЕ БУДУТ ДОСТУПНЫ ДО МОМЕНТА ЗАВЕРШЕНИЯ по-моему черным по белому написано: пока фоновое задание не завершится, данные не доступны. А нужно ВО ВРЕМЯ ВЫПОЛНЕНИЯ.
#8
by DexterMorgan
Проще говоря, если бы ты дочитал до конца, то развидел бы, что этот текст из СП я читал и сам часть процитировал.
#12
by DexterMorgan
решения как минимум два, они описаны в . Это запись во время выполнения фонового задания в хранилище общих настроек и сообщение пользователю (у фонового задания есть метод ПолучитьСообщенияПользователю)
#13
by DexterMorgan
Не универсально, допустим нельзя вносить изменения в конфигурацию и по сути от хранилища общих настроек не отличается.
#19
by DexterMorgan
Наверное это так, лучше не писать в бд, если это "временные данные", но не всегда это удобно. Сообщение придется разбирать как строку, а тут структуру удобно создать и записать в хранилище.
#20
by DexterMorgan
Хотя нет, возвращается массив объектов СообщениеПользователю и используя "Поле" например можно по типу стркутуры замутить, ладно для моего случая это точно лучше
#25
by su_mai
Да уж прогрлядел :) На самом деле проблема древняя уже, хорошо не решается. А какой ты хотел прогресс, прямо тик-тик-тик или обновление состояния через интервалы?
#26
by DexterMorgan
Ну в общем обрабатываются документы, по-мимо самого прогресс бара выводить еще информацию что за текущий документ обрабатывается, сколько обработано, сколько не обработано и т.д.
#27
by DexterMorgan
ну главное решается, но через сообщения как то неудобно, пока не понял как лучше получить идентификатор этого задания, чтобы потом получить его сообщения. Это доп отчет, в фоне можно запустить используя "ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьКомандуВФоне", и дальше оно запускается без ключа. По наименованию что ли искать?
#33
by Garykom
речь не про сеанс и получение данных а про взаимоблокировку в смысле не понимаю зачем нужно в фоне именно запускать? что хочется далее продолжать работать или как? при этом посматривая на % выполнения
#34
by DexterMorgan
блокировки - это другой вопрос, у меня это в обработке заказов предусмотрено. Речь действительно про "продолжение работы" и отслеживании состояния выполнения.
#35
by DexterMorgan
Действительно, если бы можно было запустить выполнение в фоне и указать ключ, то получать данные можно было бы и из сообщений пользователю. Но тут получается у меня есть только наименование задания, которое будет таким же, как если его запустить из другого сеанса. Конечно дальше можно перебрать массив заданий и проверить еще и его параметры, но муторно это пипец.
#37
by su_mai
А может запустить отдельный сеанс 1С ки? Переключаясь между окнами отслеживать? Это так навскидку...
#38
by DexterMorgan
не понял. два разных пользователя, допустим запустят. Есть два разных фоновых задания, но кому какое принадлежит как узнать?
#39
by Garykom
можно сделать через веб сервис )) только его поднимать должен клиент (или вообще нечто сторонее), а фоновое туда данные будет отсылать
#41
by su_mai
Или выполнять в фоновом задании обработку "пачек" документов, между обработками выводить процент выполнения. В я имел ввиду вообще без фоновых заданий. Можно письмо на почту отсылать :)
#43
by su_mai
Проще забить на это до лучших времен... Пока 1С не реализует это средствами платформы.
#45
by su_mai
А как ты хотел что бы из ФЗ на клиенте отображалось? Те же родимые серверные вызовы :)
#48
by DexterMorgan
Да, но есть большая разница. По твоему это сильно увеличит время выполнения обработки, а в фоновом - нет. Пока фоновое спокойно крутится на сервере, клиент тоже истерично дергает сервер, но только во время выполнения фонового.
#49
by DexterMorgan
А че неудобно? Помещать во временное хранилище удобно, а в хранилище настроек нет?
#50
by su_mai
В 1С постоянно кто то пишет что: "Комплект отчетности грузится долго, мы думаем что он завис, сделайте прогресс бар" Когда нибудь сделают. Хорошо изначально запускай много фоновых заданий с "пачками" документов, по их выполнению изменяй процент
#51
by DexterMorgan
Они сделали. Через сообщения пользователю =) Тут просто конкретная ситуация, что не могу его использовать не меняя конфы
#52
by su_mai
Все асинхронно, все в транзакциях, прогресс движется, пользователь рад. Единственно если ты хотел все в одной бооольшой транзакции сделать чтоб потом отменить все если что тогда конечно :(
#53
by DexterMorgan
"Хорошо изначально запускай много фоновых заданий с "пачками" документов, по их выполнению изменяй процент" ну слушай, чета это тебя понесло=) 1000 документов это сколько фоновых заданий нужно? Да и вообще они же параллельно выполнятся или мне по очереди их вызывать? так это тоже самое, что и обычный серверный вызов будет
#54
by su_mai
Разбей на пачки, размер опытным путем выбирай. То что параллельно обрабатываются, возможно, это не важно, если документы не связаны.
#55
by su_mai
Тик-Тик-Тик не будет конечно, но Тааак-Тааак-ТаааК можно получить. Это же лучще чем просто смотреть на "крутилку" :)
#57
by Лефмихалыч
единственный вариант - хранить в базе. А уж где именно - не так важно. Можно напилить что-то для этого, а можно и через хренилище настроек - на вкус и цвет фломастеры разные у всех
#60
by DexterMorgan
просто как то это не "в ходу" что ли. Тема скорее очистить совесть, я вот честно пытался через сообщения сделать.
#61
by su_mai
Возможно, просто я бы в базу не писал и в хренилище настроек потому что это для другого. Прикинь а вдруг загубятся настройки вредной кассирши ...
#62
by DexterMorgan
тихо-тихо, я же с ключом пишу. ключ - идентификатор формы, никому ниче я не сломаю.
#63
by Лефмихалыч
да в ходу еще как. Просто все стыдятся признаться. Удостоверься только, что: 1. разные сеансы не смогут прочитать данные друг друга и попутать трататульки. Один пользователь может же два сеанса запустить и отчет этот может быть в обоих. 2. не оставишь мусора после себя
#64
by Лефмихалыч
да и камнем их, настройки эти. Если важно - достанет из бэкапа. Главное, чтобы отчет у двух разных кассирш эти данные не перепутывал. И одной и той же в двух сеансах.
#65
by Лефмихалыч
да и в одном сеансе-то моно два раза отчет запустить одновременно и заставить это фоновое параллельно два раза выполняться ведь. В общем - следи за собой и будь осторожен
#66
by ИсчадиеADO
смотря что за данные. Я за сообщения, в сообщение можно строку внутр записать или еще чего.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Получение обновления
- Получение почты
- 8-ка, получение значения из списка значений, по Строковому представлению
- получение из одного материала двух видов продукции 1С
- Получение почты: получение только непрочитанных сообщений?
- Регламентные задания (фоновые задания) права
- Количество фактических параметров фонового задания не совпадает...
- недостаточно фактических параметров для метода фонового задания
- Конфликт блокировок при выполнении фонового задания
- Ошибка фонового задания обновления 1С ДО Корп
В этой группе 1С
- hardware monitor в секции voltage на +12v показывает 6.2v
- Как указать в СКД специфичный параметр во вкладке Параметры?
- Помогите с подключением сканера к 1С:Учет в УК ЖКХ (ВДГБ)
- Считыватель магнитных карт
- Обмен РИБ Ошибка при попытке выборки логической страницы
- Обновление до УТ 11.2. Проблема при проведении счет-фактур.
- Ошибка в процессе тестирования и исправления.
- Как выгрузить COM dll ?
- Немодально открыть окно/вкладку в веб-клиенте
- ПодключитьВнешнююКомпоненту(): на сервере подключается, но не создаётся...
- Не отображается вычисляемое поле в отчете СКД
- Самые бессмысленные задачи от пользователей
- 8.3.7 частичная загрузка из файлов /LoadConfigFromFiles
- УТ 10 и универсальный отчёт...
- Как в 8.3 выгрузить таблицу значений в табличный документ
- УНФ 1.4 как правильно создать комиссию банка при создании документа поступление
- Список баз: Настройки / флажок Отображение в виде дерева
- Сравнение БП Проф (или Корп) с БГУ
- Соединение с SMTP сервером, через объект ИнтернетПочта
- Миграция профилей Windows server 2008 R2