Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

WEB сервис - Не могу получить хранилище значений

WEB сервис - Не могу получить хранилище значений
Я
   aptomilov
 
22.03.21 - 17:04
Не хочет отдавать хранилище значений
в тоже время строку отдает спокойно
Есть спецы ?
   Бычье сердце
 
1 - 22.03.21 - 17:09
Что находится в хранилище значений?
   aptomilov
 
2 - 22.03.21 - 17:10
таблица значений
   aptomilov
 
3 - 22.03.21 - 17:10
даже строку пытался завернуть
   Бычье сердце
 
4 - 22.03.21 - 17:11
Сериализация ТЗ и возврат результат
   Chameleon1980
 
5 - 22.03.21 - 17:15
покажи как положил тз в хз
   Terl
 
6 - 22.03.21 - 17:36
Тип возвращаемого значения должен быть: ValueStorage (http://v8.1c.ru/8.1/data/core)
Тип принимаемого значения тоже самое.

Результат = Запрос.Выполнить().Выгрузить();
ХранЗн = Новый ХранилищеЗначений(Результат);

Возврат ХранЗн;

//--------------------------------------

//   На стороне приемника:
//--------------------------------------


ТЗ = ХранЗн.Получить();
   aptomilov
 
7 - 23.03.21 - 07:50
(6) так не работает если в тз есть что то отличное от строки
   Галахад
 
8 - 23.03.21 - 08:23
(7) А должно работать?
   minsk1s
 
9 - 23.03.21 - 10:21
// *** 1.Пример (Таблица значений):

    ЗначенияТЗ = Новый ТаблицаЗначений();// Создание значения "ТЗ"


    // Вставка в хранилище значений

    Хранилище_Зн = Новый ХранилищеЗначения(ЗначенияТЗ, Новый СжатиеДанных(9))// "9" - макс.степень сжатия


Потом достаем:

&НаСервере
Процедура ВосстановлениеИзХранилищеЗначений();

    ИмяФайла = "D:\import\Война_и_мир.txt";

    // Двоичные данные можно восстановить из хранилища значения методом Получить и записать в файл методом Записать()

    Если ТипЗнч(РеквизитХранилище) = Тип("ДвоичныеДанные") Тогда

        // Хранилище.Получить()<>Неопределено Тогда // Процедура извлекает данные из хранилища (требует времени)

        // Для больших объемов данных рекомендуется использовать доп.реквизит (Например: Булево) Содержит данные - Истина

        ДанныеХранилища = РеквизитХранилище.Получить();
        Если ДанныеХранилища = Неопределено Тогда
            Сообщить("Ошибка получения данных из хранилища значений 1С");
        КонецЕсли;
        ДанныеХранилища.Записать(ИмяФайла);// Записываем восстановленые данные в файл


        // Восстановление Табличного документа

        ЭлементыФормы.ПолеТабличногоДокумента1.Вывести(ДанныеХранилища);

        // Восстановление и запуск Отчета/обработки 1С

        ИмяФайла_Epf = "D:\import\Otchet_realizacija_2020.epf";
        ДвоичныеДанные = РеквизитХранилище.Получить();
        ДвоичныеДанные.Записать(ИмяФайла_Epf);
        Epf = ВнешниеОбработки.Создать(ИмяФайла_Epf);
        Epf.ПолучитьФорму().Открыть();

    Иначе
        ДанныеХранилища = РеквизитХранилище;
    КонецЕсли;

    // Файлы зарегистрированного типа (doc, xls, pdf, jpg, txt, exe...)

    ЗапуститьПриложение(ИмяФайла);

КонецПроцедуры

Потом чистим:

&НаКлиенте
Процедура ОчисткаРеквизитаХранилищеЗначений();

    РеквизитХранилище = Неопределено;

КонецПроцедуры

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.