8.х Восстановление из хранилища значения

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Мариночка, 27 мар 2017.

  1. TopicStarter Overlay
    Мариночка
    Offline

    Мариночка

    Регистрация:
    24 фев 2014
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Прошу помочь новичку))) Ситуация следующая : есть обработка тестирования сотрудников, в которой они отвечают на тест. После завершения тестирования формируется отчет (печатная форма - табдок) с результатом тестирования. Вот я хочу этот табдок засунуть через хранилище в регистр и потом по нажатию на кнопку на форме регистра его формировать.
    Добавляю в регистр( в модуля обработки) Результат - строка:

    Код:
    НаборЗаписей = РегистрыСведений.Результат.СоздатьНаборЗаписей();
    МЗ = НаборЗаписей.Добавить();      
    МЗ.ОбъектТестирования = ОбъектТестирования;
    МЗ.ФИО = ПараметрыСеанса.ТекущийПользователь;
    МЗ.ПравильныхОтветов = ЧислоПравильныхОтветов;
    МЗ.ПройденноВопросов = Область.Параметры.ВсегоВопросов;
    МЗ.РезультатТестирования = Окр(ЧислоПравильныхОтветов/Область.Параметры.ВсегоВопросов, 2, РежимОкругления.Окр15как20)*100;
    МЗ.ДатаТестирования = ТекущаяДата();
    
    Если МЗ.РезультатТестирования >= 70 Тогда
    Сообщить ("Тест сдан!",СтатусСообщения.Важное);
       
    МЗ.СданНесдан = "Тест сдан!"
       
    Иначе
    Сообщить ("Тест не сдан!",СтатусСообщения.Информация);
    МЗ.СданНесдан = "Тест не сдан!"
       
    КонецЕсли;
    
    МЗ.Результат = Новый ХранилищеЗначения (ТабДокумент);
    
       
    НаборЗаписей.Записать(ложь);
    
    Далее в модуле формы регистра пытаюсь его получить:
    Код:
    &НаКлиенте
    Процедура Команда1(Команда)
    
    ИмяВремФайла = ПолучитьИмяВременногоФайла();
    ДвоичныеДанныеОтчета = Запись.Результат.Получить();
    Если ДвоичныеДанныеОтчета <>  неопределено Тогда
      ДвоичныеДанныеОтчета.Записать(ИмяВремФайла);
      ТабДок = Новый ТабличныйДокумент;
      ТабДок.Показать(ИмяВремФайла);
    КонецЕсли;
    КонецПроцедуры
    
    Но он тут ругается на метод Получить(). Пробовала по-другому: создала ресурс в регистре с типом хранилище, но модуль формы не видит этот реквизит. Крутила по-разному - все не то.....Подскажите как правильно?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.128
    Симпатии:
    953
    Баллы:
    204
    В хранилище значений хранится то, что в него положили. Если в него положили табдок, то двоичными данными этот табдок при получении не станет.

    Получать из хранилища нужно на сервере.
  3. TopicStarter Overlay
    Мариночка
    Offline

    Мариночка

    Регистрация:
    24 фев 2014
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Я что то не понимаю, что я делаю не так....
    Пытаюсь получить так, но он ругается на "поле объекта не обнаружено ХранениеОтветов" а это ресурс в РС с типом Хранилище
    Код:
    &НаСервере
    Процедура Команда1НаСервере()
    
       
    ТД = Запись.ХранениеОтветов.Получить();
      ТабДок = Новый ТабличныйДокумент;
      ТабДок.Показать(ТД);
    
    КонецПроцедуры
    
    &НаКлиенте
    Процедура Команда1(Команда)
        Команда1НаСервере();
    КонецПроцедуры
    
    Пробовала через измерение Результат с типом строка, но тогда он ругается на метод Получить()

    Вложения:

  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.128
    Симпатии:
    953
    Баллы:
    204
    Какой тип значения у Запись?
    Кому на сервере вы собираетесь показывать ТабДок?
    Прочитайте в синтаксис-помощнике про метод Показать().

Поделиться этой страницей