|   |   | 
| 
 | WEB сервис - Не могу получить хранилище значений | ☑ | ||
|---|---|---|---|---|
| 0
    
        aptomilov 22.03.21✎ 17:04 | 
        Не хочет отдавать хранилище значений 
 в тоже время строку отдает спокойно Есть спецы ? | |||
| 1
    
        Бычье сердце 22.03.21✎ 17:09 | 
        Что находится в хранилище значений?     | |||
| 2
    
        aptomilov 22.03.21✎ 17:10 | 
        таблица значений     | |||
| 3
    
        aptomilov 22.03.21✎ 17:10 | 
        даже строку пытался завернуть     | |||
| 4
    
        Бычье сердце 22.03.21✎ 17:11 | 
        Сериализация ТЗ и возврат результат     | |||
| 5
    
        Chameleon1980 22.03.21✎ 17:15 | 
        покажи как положил тз в хз     | |||
| 6
    
        Terl 22.03.21✎ 17:36 | 
        Тип возвращаемого значения должен быть: ValueStorage (http://v8.1c.ru/8.1/data/core)
 Тип принимаемого значения тоже самое. Результат = Запрос.Выполнить().Выгрузить(); ХранЗн = Новый ХранилищеЗначений(Результат); Возврат ХранЗн; //-------------------------------------- // На стороне приемника: //-------------------------------------- ТЗ = ХранЗн.Получить(); | |||
| 7
    
        aptomilov 23.03.21✎ 07:50 | 
        (6) так не работает если в тз есть что то отличное от строки     | |||
| 8
    
        Галахад гуру 23.03.21✎ 08:23 | 
        (7) А должно работать?     | |||
| 9
    
        minsk1s 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...) ЗапуститьПриложение(ИмяФайла); КонецПроцедуры Потом чистим: &НаКлиенте Процедура ОчисткаРеквизитаХранилищеЗначений(); РеквизитХранилище = Неопределено; КонецПроцедуры | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |