|
Ошибка XMLСтрока(ТипЗнч(ПВХ)) | ☑ | ||
|---|---|---|---|---|
|
0
Garykom
гуру
05.08.26
✎
16:57
|
Для цели отладки запросов через стандартную консоль надо выгружать в формат xml
И там засада &НаСервере Процедура Команда1НаСервере() Значение = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ПартииПроизводства; Тип = ТипЗнч(Значение); СтрокаXML = XMLСтрока(Тип); Сообщить(СтрокаXML); КонецПроцедуры Как лучше такое обойти? |
|||
|
1
Garykom
гуру
05.08.26
✎
17:01
|
1. Как определить что будет засада?
2. Как лучше такое выгрузить (сохранить в XML) и потом восстановить из XML? |
|||
|
2
Fragster
гуру
05.08.26
✎
17:08
|
сериализаторXDTO же
|
|||
|
3
Fragster
гуру
05.08.26
✎
17:09
|
с назначением типа "явное"
|
|||
|
4
Fragster
гуру
05.08.26
✎
17:09
|
Функция ДесериализоватьДанные(Знач Данные) Экспорт
Чтение = Новый ЧтениеXML; Чтение.УстановитьСтроку(Данные); Возврат СериализаторXDTO.ПрочитатьXML(Чтение); КонецФункции Функция СериализоватьДанные(Знач Данные) Экспорт Запись = Новый ЗаписьXML; Запись.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(Запись, Данные, НазначениеТипаXML.Явное); Возврат Запись.Закрыть() КонецФункции |
|||
|
5
Fragster
гуру
05.08.26
✎
17:10
|
у меня такие вот парные функции лежат
|
|||
|
6
denk32
05.08.26
✎
17:15
|
(0) Может так?
Значение = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии; Тип = ТипЗнч(Значение); ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(Тип); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO); Результат = ЗаписьXML.Закрыть(); Сообщить(Результат); |
|||
|
7
Garykom
гуру
05.08.26
✎
17:17
|
(2)(4) Предлагаешь не проверять а все прогонять через СериализаторXDTO ?
|
|||
|
8
Fragster
гуру
05.08.26
✎
17:18
|
(7) ну хочешь, проверяй на типы, указанные в СП
|
|||
|
9
Garykom
гуру
05.08.26
✎
17:30
|
Хотелось чтобы типовая консоль запросов с ИТС понимала
Править ее придется :(
|
|||
|
10
Garykom
гуру
05.08.26
✎
17:38
|
Просто очень удобно мелкое расширение юзать или в конфу встроить
Взял https://infostart.ru/1c/articles/1054984/ Только допилил слегка, чтобы не обязательно на диск сохранял но и выводил содержимое в строку при отладке Копируешь, вставляешь в файл .q1c Типовой консолью с ИТС открываешь https://its.1c.ru/db/metod8dev/content/4500/hdoc И не надо монструозных ИР с толстым, чисто УФ |
|||
|
11
Fragster
гуру
05.08.26
✎
17:53
|
(9) собственно, вся процедура заменяется на СериализаторXDTO.ЗаписатьXML(Запись, Данные, НазначениеТипаXML.Явное);
|
|||
|
12
Fragster
гуру
05.08.26
✎
17:53
|
вернее на ПрочитатьXML
|
|||
|
13
Fragster
гуру
05.08.26
✎
17:54
|
туды же не только примитивные типы можно пихать, а прям вот таблицу значений целиком, соответствия всякие и прочие структуры
|
|||
|
14
Nedomolkov_
Ivan 05.08.26
✎
18:14
|
(1) По первому вопросу: XMLСтрока умеет только значения простых XML-типов, а Тип к ним не относится — отсюда и падение, причём заранее видно по синтакс-помощнику, у каких типов есть XML-представление.
Сам тип сериализуется отдельной парой глобальных функций, без прогона значения через сериализатор: ТипXML = XMLТип(ТипЗнч(Значение)); // ИмяТипа + URIПространстваИмен Тип = ТипЗначенияXML(ТипXML); В файл ложатся две строки, на чтении тип собирается обратно. А для самих данных — да, СериализаторXDTO с явным назначением типа, как в (4). |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |