#0
by tuxik07
Пытаюсь организовать обмен сообщениями между фоновым заданием и общей формой. Смысл передавать в форму прогресс выполнения длительного задания. Использую временное хранилище. в хелпе к методу ПоместитьВоВременноеХранилище пишут, что "Также позволяет поместить данные из фонового задания в родительский сеанс. Для этого следует в родительском сеансе поместить во временное хранилище пустое значение, передав идентификатор формы. Затем полученный адрес передать в фоновое задание через параметры фонового задания. Далее, если этот адрес использовать в параметре <Адрес>, то результат будет скопирован в сеанс, из которого было запущено фоновое задание" У формы есть реквизит АдресХранилища - строка в обработчике команды пишу Вот модуль ФоновыеЗаданияСервер и тут косяк в строке: Счетчик = ПолучитьИзВременногоХранилища(Адрес); Получает значение из хранилища Неопределено. в обработчике ожидания на форме пытаюсь обратиться к хранилищу по адресу Счетчик = ПолучитьИзВременногоХранилища(Адрес) - всё срабатывает
#6
by Defender aka LINN
"Также позволяет поместить данные из фонового задания в родительский сеанс" - где тут написано, что ты что-то можешь передать в фоновое задние таким способом?
#12
by tuxik07
{}: Получение элемента по индексу для значения не определено МенеджерФоновыхЗаданий (BackgroundJobsManager) Выполнить (Execute) Синтаксис: Выполнить(<ИмяМетода>, <Параметры>, <Ключ>, <Наименование>) Параметры: Тип: Строка. Имя экспортируемой процедуры или функции неглобального общего модуля, который может быть выполнен на сервере, в форме ИмяМодуля.ИмяМетода. Тип: Массив. Массив параметров, передаваемых в метод. Количество и типы параметров должны соответствовать параметрам метода.
#16
by xzorkiix
а если подменить на судя по тому как в справке написано. На клиенте создается пустое хранилище (т.е. главное получить адрес), а уже сервер выполняя фоновое задание будет пополнять хранилище, значение это будет доступно только сеансу вызвавшему все это добро. фоновые задания в файловой версии не взлетели. а под 8.2 пока в планах не было на sql базу выделять. так что попытки подумать как система.
#18
by xzorkiix
специфика фоновх заданий. можно передать массив значений, порядок заполнения которого соответсвует параметрам вызываемой процедуры т.е. для функции ЧтоТо(Имя, Возраст, ЧленПартииСР) нужно передать массив {"Алеша", 35, Истина}
#19
by tuxik07
17 а никто и не говорит, что фоновое задание как то должно быть связано с формой, просто в документации написано что родительский процесс может получить данные из хранилища. Хранилище нужно проинициализировать соответсвующим образом 16 заменил строку Счетчик = ПолучитьИзВременногоХранилища(Адрес); результат тот же: в отладчике в контексте фонового задания не получается получить значение из хранилища. даже после выполнения: притом у Счетчика значение всегда числового типа, и адрес тоже строка т.е. после выполнения ПоместитьВоВременноеХранилище(Счетчик, Адрес); ПолучитьИзВременногоХранилища возвращает Неопределено 18 а кто-бы сомневался. Нормально параметры передаются в процедуру и той получаются.
#20
by xzorkiix
в для справки. ну я умываю руки. ну очень не хочется в пятницу вечером базы новые разворачивать. "не хочешь работать в субботу - не работай после обеда пятницы" и наоборот) наша народная мудрость в отделе
#23
by xzorkiix
умный. научи В механизме работы с временным хранилищем есть возможность передать данные из фонового задания в сеанс, инициировавший фоновое задание. Для этого в родительском сеансе нужно поместить пустое значение во временное хранилище с помощью метода ПоместитьВоВременноеХранилище. Полученный в результате адрес нужно передать через параметры фонового задания в процедуру. Если в фоновом задании методу ПоместитьВоВременноеХранилище передать полученный адрес, то значение будет скопировано в родительский сеанс с этим же адресом. как я понимаю должно быть так:
#25
by xzorkiix
хз. Метод ПоместитьВоВременноеХранилище схож с предыдущим, за исключением того, что данные для записи во временное хранилище представляются не в виде пути в файловой системе, а в виде значения. Точно так же, если не указан существующий адрес во временном хранилище, создается новый адрес. Адрес возвращается как результат функции. Также как и для файлов, размещенные данные обязательно принадлежат какой-либо форме и автоматически удаляются после ее удаления. А если без привязки на уникальный индификатор формы?
#26
by tuxik07
бесполезно, пробовал. Пробовал в реквизит формы сгенерить свой уникальный идентификатор и передать его. Не работает...
#38
by tuxik07
короче проблема вот в чем. Данные по адресу становятся доступными только ПОСЛЕ выполнения фонового задания, чего как бы я не увидел в документации
#41
by tuxik07
а ведь всё-таки это бага, 1с вчера вписало эту ошибку в список проблемных ситуаций и ошибок
#43
by tuxik07
неа, в багрепорт вчера внесли багу что из фонового задания нельзя получитьизхранилища, хотя в принципе ни в какой справке про такую возможность даже не писали, мож и поместитьвхраилище заодно исправят. Ведь, как я думал, что написано в справке и не работает в действительности - это бага. А в багрепорте они описали фичу! :-) Мож и багу поправят
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
В этой группе 1С
- Lotus notes
- Вопросы по Перечислениям и их представлениям
- Бухгалтерия 8.1. Переход с версии 1.6 на версию 2.0.
- Автоматизация 1С Франчайзи
- Разграничение прав доступа
- УТ Базовая. Настройка прав кассира.
- Заполнение формы 0503127 р.3 строка 800
- Дополнительные реквизиты документов и справочников, как с ними работать? (БП 2, КА)
- УТ 10.3. Зачем отдельный регистр ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов?
- Макет счет-фактуры
- 8.2 Как исключить из полнотекстового поиска поиск помеченных на удаление объектов?
- Как сделать чтобы спрашивал пароль при авторизации windows
- УПП. Расчет себестоимости выпуска и "зацикливание" затрат
- XML-сериализация на основе XDTO
- Как в 1с: "Бухгалтерия" установить контрагенту постоянную скидку?
- Как отсортировать записи в регистре сведений с период. = сек. в одной секунде?
- ЗУП 2.5.24.4 Во всех начислениях отпускных пропали суммы
- Сетевое окружение не видит компы в сети
- СКД проблема с параметрами в шапке и подвале
- v8: Как скрыть элемент и чтобы таблица растянулась?