ХранилищеЗначений в файл и обртно в хранилище...

1. user824565 13.10.24 20:40 Сейчас в теме
&НаКлиенте
Процедура СохранитьТЗ(Команда)
ФайлТЗ = Новый ТекстовыйДокумент;
ФайлТЗ.УстановитьТекст(ПолучитьДанныеТЗ());
ФайлТЗ.Записать("C:\Users\User\Documents\obmen.1ct");

Сообщить("Файл создан (obmen.1ct)");
КонецПроцедуры

&НаСервере //ЗДЕСЬ СОХРАНЯЮ ! <=<=<=<=<=<=
Функция ПолучитьДанныеТЗ()
ДанныеТЗ = Новый ХранилищеЗначения(Объект.ТЗ.Выгрузить());//ТЗ у Объекта с типом ТаблицаЗнач
Возврат XMLСтрока(ДанныеТЗ);
КонецФункции

&НаКлиенте ////ЗДЕСЬ ПЫТАЮСЬ ПРОЧЕСТЬ ! <=<=<=<=<=<=
Процедура ЗаписатьФизЛиц(Команда)
Объект.ТЗ.Очистить();
ЗагрузитьДанныеТЗ();
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьДанныеТЗ()
ПутьКФайлу = "C:\Users\User\Documents\obmen.1ct";
ДанныеТЗ = XMLЗначение(Тип("ХранилищеЗначения"), ПутьКФайлу).Получить();
Если ТипЗнч(ДанныеТЗ) = Тип("ТаблицаЗначений") Тогда
Объект.ТЗ.Загрузить(ДанныеТЗ);
КонецЕсли;
ЗначениеВДанныеФормы(ДанныеТЗ, ЭтаФорма.ТЗ1);
КонецПроцедуры // ЗагрузитьДанныеТЗ()
///////////////////////////////
Ошибка : Ошибка преобразования данных XML
Найденные решения
2. spacecraft 13.10.24 21:54 Сейчас в теме
(1)
ПутьКФайлу = "C:\Users\User\Documents\obmen.1ct";
...
XMLЗначение(Тип("ХранилищеЗначения"), ПутьКФайлу)

"C:\Users\User\Documents\obmen.1ct" это не строка XML.
Сначала нужно получить текст из файла, если в файл сохраняли.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 13.10.24 21:54 Сейчас в теме
(1)
ПутьКФайлу = "C:\Users\User\Documents\obmen.1ct";
...
XMLЗначение(Тип("ХранилищеЗначения"), ПутьКФайлу)

"C:\Users\User\Documents\obmen.1ct" это не строка XML.
Сначала нужно получить текст из файла, если в файл сохраняли.
4. user824565 14.10.24 06:58 Сейчас в теме
(2)
получить текст из файла,

Понял..
3. Oldsad 14.10.24 03:44 Сейчас в теме
Не совсем понимаю, что именно вы хотите сделать
Вот рабочий код помещения файла во временное хранилище и последующая его обработка на сервере, надеюсь вам поможет:
&НаКлиенте
Процедура ЗагрузитьИзЭксель(Команда)
	
	Диалог = Новый ДиалогВыбораФайла( РежимДиалогаВыбораФайла.Открытие);
	Диалог.Заголовок = "Выберите файл";
	Диалог.Фильтр = "Excel|*.xls;*.xlsx";
	Диалог.Показать( Новый ОписаниеОповещения("ПослеВыбораФайла", ЭтаФорма));
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПослеЗагрузкиФайлаВХранилище( Результат, ДопПараметры) Экспорт
	
	Если Результат.ПомещениеФайлаОтменено = Истина Тогда
		Возврат;
	КонецЕсли;
	
	ЗагрузитьИзЭксельНаСервере( Результат.Адрес, ДопПараметры);
	
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьИзЭксельНаСервере( Адрес, Расширение)
	
	ФайлВременногоХранилища = ПолучитьИзВременногоХранилища( Адрес);
	ИмяФайла = ПолучитьИмяВременногоФайла( Расширение);
	ФайлВременногоХранилища.Записать( ИмяФайла);
	УдалитьИзВременногоХранилища( Адрес);
	
	ТабИзЭксель = Новый ТабличныйДокумент;
	ТабИзЭксель.Прочитать( ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
	УдалитьФайлы( ИмяФайла);
	
	Объект.МатериалыИзЭксель.Очистить();
	Для Поз = 1 По ТабИзЭксель.ВысотаТаблицы Цикл
		НоваяСтрока = Объект.МатериалыИзЭксель.Добавить();
		//обработка файла
	КонецЦикла;
	
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот