Имя: Пароль:
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) рассматривая сферический безопасный режим в вакууме - мы видим, что если в конфигурации реализован интерфейс для реализации функций, запрещенных безопасным режимом, то эти функции выполнить можно.
В конфигурациях на основе БСП такие функции есть. Значит, из безопасного режима в конфигурациях на основе БСП можно выполнять функции типа сохранения файлов, если выполнить правильную настройку подключаемой внешней обработки.