Здравствуйте! Тупой конечно вопрос, но у меня тут проблема с XDTO причем наверное самая банальная. хочу просто для теста сохранить готовый xml-запрос на локальном диске и споткнулся об заполнения XDTO.
Поле объекта недоступно для записи (bc).
Да уж кажись понял в чем собственно проблема, это то что на пакете стоит только чтение. Извиняюсь за это тогда другой вопрос каким образом я могу заполнить этот пакет и сохранить?
---
Пошел по такому пути не знаю насколько это правильно, но вроде работает

```1c
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | Шапка.Код КАК ИдентификаторФСРАР,
    | Шапка.ФорматОбмена КАК ФорматОбмена
    |ИЗ
    | Справочник.КлассификаторОрганизацийЕГАИС КАК Шапка
    |ГДЕ
    | Шапка.Код = &Ссылка");

    Запрос.УстановитьПараметр("Ссылка", Организация());
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    ФорматОбмена = ИнтеграцияЕГАИСКлиентСервер.ФорматОбмена(Шапка.ФорматОбмена);
    Операция = Перечисления.ВидыДокументовЕГАИС.ЗапросПроверкиАкцизныхМарокНаОстаткахОрганизации;
    ПространствоИмен = Перечисления.ВидыДокументовЕГАИС.ПространствоИмен(Операция, ФорматОбмена);
    ЗапросXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "QueryFilter");
    АкцизнаяМарка="236200053897321018001V3QKZFRNKSPNE2RP3F2QYMLQ­ME2EGSPJZIOHD4TEHHQ2HHIHZAATSEPNKTMEZ2OMCREVUA4YP7OYN74WJJEK­DK5RHK2HGBOZXMPZKPGR55OXF7YVJTUDVS4Y6KK2LZPMI";
    ЗапросXDTO.bc.Добавить(АкцизнаяМарка);
    Текст = ИнтеграцияЕГАИС.ОбъектXDTOВXML(ЗапросXDTO,Организация(),ПространствоИмен,"QueryFilter");
    ПараметрыЗаписи = Новый ПараметрыЗаписиXML("UTF-8",,,Истина);
    Тест = Новый ЗаписьТекста("G:\1.xml", КодировкаТекста.UTF8);
    Тест.Записать(Текст);
    Тест.Закрыть();
```
---
Пакет в конфигураторе? Если да, то правой кнопкой - экспорт XML схемы - чем не подходит?
---
Добрый день, насколько я понимаю если таким образом сделать то и в коде я потом должен указать путь то выгруженной схемы, что не совсем мне подходит, так как внешняя обработка будет использоваться на других компах.
---
Нашел как сам 1с заполняет документ и что-то не совсем понимаю в чем отличия от того что я изначально писал в коде.
---
Отличия в том, что bc это список значений XDTO, и в него надо добавлять значения.
Вы же присваиваете строковое значение.
---
Так хорошо этот момент понял, сейчас переписал следующим образом. Я же могу теперь эту часть записать в файл XML и сохранить на локальном диске?
---
Да, записывайте, сохраняйте.

```1c
    ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("UTF-8",,, Истина);
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.ОткрытьФайл(ИмяФайла, ПараметрыЗаписиXML);
    ЗаписьXML.ЗаписатьОбъявлениеXML();

    ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, Запрос1);

    ЗаписьXML.Закрыть();
```
---
Записать получилось. Теперь столкнулся с другой проблемой в xml файле должен быть указан код организации.

```1c
    <?xml version="1.0" encoding="UTF-8"?>
    <ns:Documents xmlns="http://fsrar.ru/WEGAIS/QueryFilter"
    xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ns:Owner>
    <ns:FSRAR_ID>030000266400</ns:FSRAR_ID>
    </ns:Owner>
    <ns:Document>
    <ns:QueryFilter>
    <bc>239300009178301018001XG5UNFTMJSFI3OZYW37KLEM3IYF5KDOSAIB­QRZWKWRWZ5EWWEAYS2KX6BLZG4BUHT4GBV2KC42TBAMW73AOJJNOMM4QIGCK­AVBGHCBQG6W3VBIHK5XIALWNHDQYUIKG6Y</bc>
    <bc>239300009178601018001UT7YIGOOVCK32EKLSGQ2FKMVTEV6WBJCCSU­CTH6U4LRKSYWKU4FT7QEEXFX5EZ43P77QPW3QEIYYE5JSRXU7NH3XLPSEAP5­QQJ2X5SZPHQOZ5U2DOGLEE3FZI3PAAD52Q</bc>
    <bc>2393000091790310180017GQWTWBJC3T5SDGQTMWE2IHOBU5PNWZWC3I­ACDLEWJDDEO3N4Q44FVGEUJABYTGS2RDHP2D3E4DYWVKV5POPDGANA3OISY4­Y6I4Q7KLDJUQ5D2CQV4GEAYWOEWTT5NRPA</bc>
    <bc>188402713618900222001EAOELS3K623GIJY4IQMTKQQAXQIL42WE2MD­HY6SXS7XERK6HZADRPKTZKRHMATUW33XIFYYN6IE5EMUDVTCM6V5HGJ243YJ­PYR6L2YOYAXNAUOJMA224VK476R2FKPDQA</bc>
    </ns:QueryFilter>
    </ns:Document>
    </ns:Documents>
```

А получаю документ следующего вида

```1c
    <?xml version="1.0" encoding="UTF-8"?>
    <QueryFilter xmlns="http://fsrar.ru/WEGAIS/QueryFilter"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <bc>236200053897321018001V3QKZFRNKSPNE2RP3F2QYMLQME2EGSPJZIO­HD4TEHHQ2HHIHZAATSEPNKTMEZ2OMCREVUA4YP7OYN74WJJEKDK5RHK2HGBO­ZXMPZKPGR55OXF7YVJTUDVS4Y6KK2LZPMI</bc>
    </QueryFilter>
```
---
Сейчас просмотрел код конфигурации, походу дела заполнение идет отсюда

```1c
    Функция ОбъектXDTOВXML(ОбъектXDTO, ИдентификаторФСРАР, ПространствоИмен, ИмяТипа) Экспорт

    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку("UTF-8");

    ЗаписьXML.ЗаписатьНачалоЭлемента("Documents", КорневоеПространствоИмен());

    ЗаписьXML.ЗаписатьСоответствиеПространстваИмен(
    Перечисления.ВидыДокументовЕГАИС.ПрефиксПространстваИмен(КорневоеПространствоИмен()),
    КорневоеПространствоИмен());

    Зависимости = Новый Массив;
    Зависимости.Добавить("http://www.w3.org/2001/XMLSchema-instance");
    Зависимости.Добавить("http://www.w3.org/2001/XMLSchema");

    ИнтеграцияИС.ЗависимыеПространстваИмен(ФабрикаXDTO.Пакеты.Получить(ПространствоИмен).Зависимости, Зависимости);

    Если Зависимости.Найти(ПространствоИмен) = Неопределено Тогда
    Зависимости.Добавить(ПространствоИмен);
    КонецЕсли;

    Для Каждого ЗависимоеПространство Из Зависимости Цикл
    Префикс = Перечисления.ВидыДокументовЕГАИС.ПрефиксПространстваИмен(ЗависимоеПространство);
    Если НЕ ПустаяСтрока(Префикс) Тогда
    ЗаписьXML.ЗаписатьСоответствиеПространстваИмен(Префикс, ЗависимоеПространство);
    КонецЕсли;
    КонецЦикла;

    СодержимоеXDTO = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(КорневоеПространствоИмен(), "DocBody"));
    СодержимоеXDTO[ИмяТипа] = ОбъектXDTO;

    ОтправительXDTO = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(КорневоеПространствоИмен(), "SenderInfo"));
    ЗаполнитьСвойствоXDTO(ОтправительXDTO, "FSRAR_ID", ИдентификаторФСРАР);

    ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОтправительXDTO, "Owner", КорневоеПространствоИмен());
    ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, СодержимоеXDTO, "Document", КорневоеПространствоИмен());

    ЗаписьXML.ЗаписатьКонецЭлемента();

    ТекстXML = ЗаписьXML.Закрыть();
    ТекстXML = СтрЗаменить(ТекстXML, "unqualified_element:", ");
    ТекстXML = СтрЗаменить(ТекстXML, "remove:", ");
    ТекстXML = СтрЗаменить(ТекстXML, "xmlns:remove", "xmlns");

    Возврат ТекстXML;

    КонецФункции
```
---
Понятное дело что не все строчки мне нужны, какие я должен оставить?
---
Все нужны.
Передавайте в эту функцию ваш объект XDTO - Запрос1, идентификатор организации и остальные параметры, получите текст в нужном виде.
Имя типа = "QueryFilter"
Пространство имен ="http://fsrar.ru/WEGAIS/QueryFilter"
---
Извините, а можете пояснить для чего вот эти строчки
 Код   ТекстXML = СтрЗаменить(ТекстXML, "unqualified_element:", "");
    ТекстXML = СтрЗаменить(ТекстXML, "remove:", "");
    ТекстXML = СтрЗаменить(ТекстXML, "xmlns:remove", "xmlns");
Показать полностью
   Для Каждого ЗависимоеПространство Из Зависимости Цикл
        Префикс = Перечисления.ВидыДокументовЕГАИС.ПрефиксПространстваИмен(ЗависимоеПространство);
        Если НЕ ПустаяСтрока(Префикс) Тогда
            ЗаписьXML.ЗаписатьСоответствиеПространстваИмен(Префикс, ЗависимоеПространство);
        КонецЕсли;
    КонецЦикла;
И вот это пожалуйста
---
Блок со СтрЗаменить - заменяет пространство имен в файле. Зачем - я хз.
Цикл - добавляет нужные пространства имен в корень xml.
---
Все получилось большое спасибо за помощь. Очень конечно тяжко копаться в этой горе кода конфигурации.
---
Так я походу чет совсем запутался. Вот я передаю в функцию все данные, возвращается уже готовый текст XML, а как теперь собственно этот текст сохранить на локальном диске, чет запутался.

```1c
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | Шапка.Код КАК ИдентификаторФСРАР,
    | Шапка.ФорматОбмена КАК ФорматОбмена
    |ИЗ
    | Справочник.КлассификаторОрганизацийЕГАИС КАК Шапка
    |ГДЕ
    | Шапка.Код = &Ссылка");

    Запрос.УстановитьПараметр("Ссылка", Организация());
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    ФорматОбмена = ИнтеграцияЕГАИСКлиентСервер.ФорматОбмена(Шапка.ФорматОбмена);
    Операция = Перечисления.ВидыДокументовЕГАИС.ЗапросПроверкиАкцизныхМарокНаОстаткахОрганизации;
    ПространствоИмен = Перечисления.ВидыДокументовЕГАИС.ПространствоИмен(Операция, ФорматОбмена);
    ЗапросXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "QueryFilter");
    АкцизнаяМарка="236200053897321018001V3QKZFRNKSPNE2RP3F2QYMLQ­ME2EGSPJZIOHD4TEHHQ2HHIHZAATSEPNKTMEZ2OMCREVUA4YP7OYN74WJJEK­DK5RHK2HGBOZXMPZKPGR55OXF7YVJTUDVS4Y6KK2LZPMI";
    ЗапросXDTO.bc.Добавить(АкцизнаяМарка);
    Текст = ИнтеграцияЕГАИС.ОбъектXDTOВXML(ЗапросXDTO,Организация(),ПространствоИмен,"QueryFilter");
    ПараметрыЗаписи = Новый ПараметрыЗаписиXML("UTF-8",,,Истина);
    Запись = Новый ЗаписьXML;
    Запись.ОткрытьФайл("G:\1.xml", ПараметрыЗаписи);
    Запись.ЗаписатьОбъявлениеXML();

    Запись.Закрыть();
```
---
Пошел по такому пути не знаю насколько это правильно, но вроде работает

```1c
    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | Шапка.Код КАК ИдентификаторФСРАР,
    | Шапка.ФорматОбмена КАК ФорматОбмена
    |ИЗ
    | Справочник.КлассификаторОрганизацийЕГАИС КАК Шапка
    |ГДЕ
    | Шапка.Код = &Ссылка");

    Запрос.УстановитьПараметр("Ссылка", Организация());
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
    ФорматОбмена = ИнтеграцияЕГАИСКлиентСервер.ФорматОбмена(Шапка.ФорматОбмена);
    Операция = Перечисления.ВидыДокументовЕГАИС.ЗапросПроверкиАкцизныхМарокНаОстаткахОрганизации;
    ПространствоИмен = Перечисления.ВидыДокументовЕГАИС.ПространствоИмен(Операция, ФорматОбмена);
    ЗапросXDTO = ИнтеграцияЕГАИС.ОбъектXDTO(ПространствоИмен, "QueryFilter");
    АкцизнаяМарка="236200053897321018001V3QKZFRNKSPNE2RP3F2QYMLQ­ME2EGSPJZIOHD4TEHHQ2HHIHZAATSEPNKTMEZ2OMCREVUA4YP7OYN74WJJEK­DK5RHK2HGBOZXMPZKPGR55OXF7YVJTUDVS4Y6KK2LZPMI";
    ЗапросXDTO.bc.Добавить(АкцизнаяМарка);
    Текст = ИнтеграцияЕГАИС.ОбъектXDTOВXML(ЗапросXDTO,Организация(),ПространствоИмен,"QueryFilter");
    ПараметрыЗаписи = Новый ПараметрыЗаписиXML("UTF-8",,,Истина);
    Тест = Новый ЗаписьТекста("G:\1.xml", КодировкаТекста.UTF8);
    Тест.Записать(Текст);
    Тест.Закрыть();
```