| 
    
            
         
         | 
    
  | 
Глюк платформы - временное хранилище (Обычные формы) | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Air777    
     03.07.18 
            ✎
    15:51 
 | 
         
        Если в фоновом задании передать значение через временное хранилище то 1й раз система всегда возвращает Неопределено. 2й и далее ок.
 
        Проблема воспроизводится на 8.3.8 и 8.3.10 ТОЛЬКО в клиент серверном варианте. В файловом работает как надо! https://cloud.mail.ru/public/JXzu/xEQ4oszkg По ссылке контрольная БД демонстрирующая проблему. Загрузить и запустить в режиме предприятия. В открывшейся обработке нажать "Выполнить". Получите сообщение "Результат=" (Неопределено) Если нажать еще раз будет: "Результат=1" В файловой сразу как надо. Также замечено что при активном использовании данного механизма результат также может иногда выпадать. 100 раз норм потом разово неопределено и дальше снова 100 раз норм. Условные 100раз конечно. Но 1й раз у меня всегда стабильно воспроизводится Пожалуйста проверьте воспроизводится ли у вас и желательно на более старших платформах. Заранее спасибо  | 
|||
| 
    1
    
        Air777    
     03.07.18 
            ✎
    16:27 
 | 
         
        Для тех кому лениво качать ниже текст кода из конфигурации:
 
        ////////////////////////////модуль обработки Перем Ключ,АдресРезультата; Процедура КнопкаВыполнитьНажатие(Кнопка) Ключ=Новый УникальныйИдентификатор; АдресРезультата=ПоместитьВоВременноеХранилище(Неопределено,Новый УникальныйИдентификатор); Параметры=Новый Массив; Параметры.Добавить(АдресРезультата); ФоновыеЗадания.Выполнить("Сервер.Сформировать",Параметры, Ключ, "Задание"); ПодключитьОбработчикОжидания("ПроверкаГотовности",0.3,Истина); КонецПроцедуры Процедура ПроверкаГотовности() Экспорт ФильтрОтбора = Новый Структура("Наименование,Ключ,Состояние", "Задание", Ключ, СостояниеФоновогоЗадания.Завершено); МассивЗаданий = ФоновыеЗадания.ПолучитьФоновыеЗадания(ФильтрОтбора); Если МассивЗаданий.Количество() > 0 Тогда //И НЕ МассивЗаданий[0].ИнформацияОбОшибке.Описание = "" Тогда Значение=ПолучитьИзВременногоХранилища(АдресРезультата); Сообщить("Результат="+СокрЛП(Значение)); Иначе ПодключитьОбработчикОжидания("ПроверкаГотовности",0.4,Истина); КонецЕсли; КонецПроцедуры /////////////////модуль Сервер Процедура Сформировать(АдресРезульта) Экспорт Результат=1; ПоместитьВоВременноеХранилище(Результат,АдресРезульта); КонецПроцедуры  | 
|||
| 
    2
    
        sechs    
     03.07.18 
            ✎
    16:40 
 | 
         
        (0) Это не глюк, а давно известное поведение, юный падаван.
 
        На клиент-сервере результат выполнения фонового задания копируется во временное хранилище после завершения его выполнения. В файловой - в силу реализиации механизма выполнения фоновых, оно доступно всегда. Так что ожидай завершения фонового по его состоянию и читай книжки...  | 
|||
| 
    3
    
        Wingless    
     03.07.18 
            ✎
    16:49 
 | 
         
        (0) Единственный работающий вариант передачи данных через временное хранилище между сеансом и фоновым заданием, работающий одинаково в файловом и клиент-серверном варианте - это помещение результата В фоновом задании, а не наоборот.     
         | 
|||
| 
    4
    
        Wingless    
     03.07.18 
            ✎
    16:50 
 | 
||||
| 
    5
    
        Air777    
     04.07.18 
            ✎
    00:20 
 | 
         
        (2) задание завершается вполне успешно. Это достигается фильтром СостояниеФоновогоЗадания.Завершено.
 
        Ткните меня носом в книжку где этот нюанс описан. (4) спасибо. Оно должно или не должно работать таким образом ? Если это НЕ баг то почему оно работает со 2й попытки?! В ветке я не нашел ответа или решения (3) Буду благодарен за рабочий пример  | 
|||
| 
    6
    
        sechs    
     04.07.18 
            ✎
    04:38 
 | 
         
        (5) Задание надо искать по его уникальному, единственному и неповторимому идентификатору. А не ковыряться в куче уже завершенных ранее фоновых.     
         | 
|||
| 
    7
    
        Air777    
     04.07.18 
            ✎
    10:21 
 | 
         
        (6) ну как бы да это всё есть в коде в (1) это же очевидные вещи     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |