Вход | Регистрация
 
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...)

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

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.