|
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...) ЗапуститьПриложение(ИмяФайла); КонецПроцедуры Потом чистим: &НаКлиенте Процедура ОчисткаРеквизитаХранилищеЗначений(); РеквизитХранилище = Неопределено; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |