Имя: Пароль:
1C
1С v8
запись файле xml через СериализаторXDTO
0 04347
 
16.06.16
17:11
Внешняя обработка, выгружает данные XML в безопасном режиме. В модуле объекта не могу правильно использовать СериализаторXDTO, в файле xml получаются лишние строки. Как правильно записать7

(отрывок кода)
ЗаписьXML.ЗаписатьНачалоЭлемента("customer");  //Краткое наименование отправителя
        ЗаписьXML.ЗаписатьТекст(Строка(ВыборкаДетальныеЗаписиТТН.Организация));
        ЗаписьXML.ЗаписатьКонецЭлемента();
        ЗаписьXML.ЗаписатьНачалоЭлемента("loadpoint"); //Адрес пункта погрузки
        ЗаписьXML.ЗаписатьТекст(СведенияООрганизации.ЮридическийАдрес);
        ЗаписьXML.ЗаписатьКонецЭлемента();
        ЗаписьXML.ЗаписатьНачалоЭлемента("unloadpoint"); //Адрес пункта разгрузки
        ЗаписьXML.ЗаписатьТекст(ВыборкаДетальныеЗаписиТТН.АдресДоставки);
        ЗаписьXML.ЗаписатьКонецЭлемента();
        
        ЗаписьXML.ЗаписатьНачалоЭлемента("forwarder"); //ФИО водителя-экспедитора.
        ЗаписьXML.ЗаписатьТекст(Строка(ВыборкаДетальныеЗаписиТТН.Водитель));
        ЗаписьXML.ЗаписатьКонецЭлемента();
        
        ЗаписьXML.ЗаписатьКонецЭлемента();
        //конец transport                          
        
        //заполняем табличную часть
        ЗаполнитьТабличнуюЧастьТовары(ВыборкаДетальныеЗаписиТТН.Ссылка, ЗаписьXML, ДатаДокумента);
        
        ЗаписьXML.ЗаписатьКонецЭлемента();
        КоличествоДокументов = КоличествоДокументов + 1;
        
        
        //СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Неопределено);  // !проблема, при записи появляются лишние строки
        СериализаторXDTO.ЗаписатьXML(ЗаписьXML, );     // !проблема, при записи появляются лишние строки
1 ovrfox
 
16.06.16
17:15
Какие лишние строки? Можно пример?
2 04347
 
16.06.16
17:34
(1)
вот эта строка
<Undefined xsi:nil="true" xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns=""/>

у меня выгружаются в цикле данные по 11 документам и 11 раз выходит эта строка
3 ovrfox
 
16.06.16
17:58
Честно говоря не знаю, но скорее всего зависит от параметров.
Но зачем вообще писать через сериализатор?
У тебя нет объектов 1С, которые нужно сериализовать
Используй метод "ОткрытьФайл" объекта ЗаписьXML и метод "Закрыть" того же объекта (или только закрыть, если просто нужна строка XML)
4 Fragster
 
гуру
16.06.16
17:59
СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Неопределено); - это и есть твои "лишние строки"

СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ЭтотОбъект);
5 ovrfox
 
16.06.16
18:03
(4) Нет, сериализация выполняется в некотором простарнстве имен. Его нужно указать или будет использовано умолчание.
Возможно проблема в том что в один файл несколько раз сериализовуют? ТОгда каждая сериализация записывает свой заголовок.
6 Fragster
 
гуру
16.06.16
18:03
(5) пробовал сделать СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ДокументОбъект) когда-нибудь?
7 ovrfox
 
16.06.16
18:06
Нет и я вообще не вижу параметра "ДокументОбъект" в примере кода. Может это параметр "ЭтотОбъект"?
8 04347
 
16.06.16
18:22
(4) вы правы, убрала СериализаторXDTO и все правильно записалось
9 04347
 
16.06.16
18:30
у меня нет ДокументОбъект , использовать  "ОткрытьФайл" я не могу, в безопасном режиме не пропускает
10 Карупян
 
16.06.16
18:31
только не понятно причем здесь сериализатор, когда мы руками хмл формируем?
11 Fragster
 
гуру
16.06.16
19:06
(7) я про "абстрактный" объект типа ДокументОбъект.хххх, например
12 ovrfox
 
17.06.16
09:17
Проблема решена?
Или остался вопрос как в безопасном режиме записать файл?
Ответ - никак
13 Fragster
 
гуру
17.06.16
11:45
(12) для этого предназначены общие модули "ДополнительныеОтчетыИОбработкиВБезопасномРежиме*"
14 Fragster
 
гуру
17.06.16
11:47
15 ovrfox
 
17.06.16
12:17
Можно еще раз как для обработки, которая загружена в качестве дополнительной и для которой установлен безопасный режим (потому как понятно, что если режим не безопасный , то ограничений нет) сохранить что либо в файл?
16 Fragster
 
гуру
17.06.16
12:19
(15)

"В демонстрационной базе БСП возможность расширения безопасного режима представлена в обработке Демо: Загрузка номенклатуры из прайс-листа (сценарное выполнение) в справочнике Дополнительные отчеты и обработки. Эта обработка является аналогом обработки Демо: Загрузка номенклатуры из прайс-листа (профили безопасности) и адаптирована к выполнению в безопасном режиме."
17 ovrfox
 
17.06.16
12:25
Я правильно понимаю, что в БСП реализованы функции, которые фактически выполняются при отключенном безопасном режиме, но их вызов можно осуществлять из безопасного режима?

Т.е. фактически ответ никак - правильный?
18 Fragster
 
гуру
17.06.16
12:44
(17) рассматривая сферический безопасный режим в вакууме - мы видим, что если в конфигурации реализован интерфейс для реализации функций, запрещенных безопасным режимом, то эти функции выполнить можно.
В конфигурациях на основе БСП такие функции есть. Значит, из безопасного режима в конфигурациях на основе БСП можно выполнять функции типа сохранения файлов, если выполнить правильную настройку подключаемой внешней обработки.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан