1с 7 создание xml файла
Предположим, что нам надо записать xml файл с описанием нескольких сайтов. Для этих сайтов нам надо записать оценку сайта и его краткое содержание. И соответственно потом нам надо будет этот файл прочитать.
Напомню, что xml файл может состоять из элементов и атрибутов. Соответственно элемент может содержать какой-то текст, атрибуту также можно присвоить строковое значение. Также напоминаю, что у xml файла может быть только один корневой элемент в который вложены все остальные.
ЗаписьXML
Итак начнем шаг за шагом создавать наш файл. Для начала создадим объект ЗаписьXML, создадим заголовок xml файла, и запишем файл.
В результате выполнения этого кода получаем xml файл следующего содержания:
Собственно кроме объявления xml здесь ничего и нет.
Теперь добавим корневой элемент внутрь которого потом сложим все остальные элементы. Назовем этот элемент Сайты
Теперь в промежутке между процедурами ЗаписатьНачалоЭлемента(«Сайты») и ЗаписатьКонецЭлемента() допишем формирование остальных элементов и атрибутов.
Здесь стоит отметить, что атрибуты должны записываться после начала записи элемента и перед записью текста элемента.
И как можно заметить атрибут можно записать двумя способами. Вот итоговый вариант сформированного xml файла:
С записью разобрались. Теперь будем читать, созданный нами файл.
ЧтениеXML
С помощью объекта ЧтениеXML выполняется последовательное чтение узлов xml файла. Каждый прочитанный узел приходиться анализировать, т.к. не все узлы нам нужны (в частности корневой элемент). Также необходимо анализировать тип узла. Это может быть НачалоЭлемента, КонецЭлемента, Атрибут и т.д. Плюс еще атрибутов в отличие от нашего примера может быть несколько. В общем чтение xml процесс немного более запутанный чем его запись. Итак вернемся к нашему примеру. Не буду разбирать его построчно. Привожу сразу весь код целиком:
Возникала необходимость чтения обработки XML файлов неизвестной структуры, вот написал процедуры, которые преобразуют XML файл любой в дерево значений, а также считывают и преобразуют данные в переменную типа структура причем типы переменных преобразуются в соответствии с требованиями, Дата, Булево, Число, Строка
Возможно, что кому нибудь эти данные будут интересны
Тестировалась на платформе 1С:Предприятие 8.3 (8.3.15).
Конфигурация 1С не имеет значения.
Специальные предложения
Дерево значений это хорошо, но у меня основная цель стояла создать переменную структуры а не дерево значений, а так спасибо!
модуль ИнтеграцияВЕТИС, 1С:ERP Управление предприятием 2 (2.4.9.82)
// Преобразует объект XDTO в структуру
//
// Параметры:
// ОбъектXDTO - ОбъектXDTO - Объект XDTO.
//
// Возвращаемое значение:
// Структура - Структура объекта.
//
Функция ОбъектXDTOВСтруктуру(ОбъектXDTO, ПараметрыПреобразования = Неопределено) Экспорт
Структура = Новый Структура;
ТипОбъектаXDTO = ОбъектXDTO.Тип();
Для Каждого Свойство Из ОбъектXDTO.Свойства() Цикл
ИмяСвойства = Свойство.Имя;
ЗначениеСвойства = ОбъектXDTO[ИмяСвойства];
Если ТипЗнч(ЗначениеСвойства) = Тип("ОбъектXDTO") Тогда
Структура.Вставить(ИмяСвойства, ОбъектXDTOВСтруктуру(ЗначениеСвойства, ПараметрыПреобразования));
ИначеЕсли ТипЗнч(ЗначениеСвойства) = Тип("СписокXDTO") Тогда
Структура.Вставить(ИмяСвойства, Новый Массив);
Для Индекс = 0 По ЗначениеСвойства.Количество() - 1 Цикл
ЭлементСписка = ЗначениеСвойства.Получить(Индекс);
Если ТипЗнч(ЭлементСписка) = Тип("ОбъектXDTO") Тогда
Структура[ИмяСвойства].Добавить(ОбъектXDTOВСтруктуру(ЭлементСписка, ПараметрыПреобразования));
Иначе
Структура[ИмяСвойства].Добавить(ЭлементСписка);
КонецЕсли;
Если ПараметрыПреобразования <> Неопределено
И ПараметрыПреобразования.НайтиИдентификаторы
И Свойство.Тип = ПараметрыПреобразования.ТипUUID Тогда
РезультатПоиска = ПараметрыПреобразования.ТипыИдентификаторов[ТипОбъектаXDTO];
Если РезультатПоиска <> Неопределено
И РезультатПоиска.ИмяПоля = ИмяСвойства Тогда
ПараметрыПреобразования.Идентификаторы[РезультатПоиска.ИмяТаблицы].Вставить(ЗначениеСвойства, РезультатПоиска.ПустоеЗначение);
КонецЕсли;
В основе работы с XML-файлами лежит технология доступа SAX, которая осуществляет считывание по одному тегу. Для этого существует два типа данных – ЗаписьXML и ЧтениеXML.
Запись данных справочника в XML-файл:
Код 1C v 8.х
Чтение данных из XML-файла в справочник:
Код 1C v 8.х
Создадим обработку в типовой конфигурации для экспорта плана счетов. Структура xml-файла должна быть такой. Корневой элемент xml-документа соответствует плану счетов в целом. В нем располагаются подчиненные элементы с именем Счет, содержащие информацию о счетах. В качестве содержимого элементов указывается наименование счета. Остальные данные записываются в качестве атрибутов (код, признаки валютного, количественного учета и пр.). В качестве подчиненных элементов для элемента Счет задаются элементы, обозначающие его субсчета с теми же атрибутами. Приведем код процедуры экспорта плана счетов.
Код 1C v 7.x
В результате будет получен файл, вот его фрагмент:
Код
А теперь приведем код для импорта плана счетов из xml-файла в новую конфигурацию. Код модуля соответствующей обработки должен содержать процедуру Выполнить(), которая имеет такой вид.
Похожие FAQ
Еще в этой же категории
Выгрузка / Загрузка данных посредством текстовых (TXT) файлов 5
Для работы с текстовыми документами существуют три типа данных – ТекстовыйДокумент, ЗаписьТекста и ЧтениеТекста . Разница двух подходов состоит в способе загрузки документа: ТекстовыйДокумент загружает файл целиком и далее построчно обрабатывает е Загрузка данных из DBF файла в Таблицу Значений 2
Процедура ПоказатьДБФ(дбф, имяФайла) далее Процедура Сформировать() перем дбф, флаг, папка; тЗнач.Очистить(); флаг=ФС.ВыбратьФайл(0, имяФайла, папка," Выберете DBF файл" ," |*.DBF" ); Если флаг=0 Тогда возврат; КонецЕсли; дбф=СоздатьОбъект Выгрузка / Загрузка данных посредством DBF файлов? 2
DBF-файл – это файл, в котором данные хранятся в виде таблицы (Database format). Работа с этими файлами происходит по принципу курсора, т.е. по одной строке. Для работы с DBF-файлами существует тип данных XBase. Несмотря на то, что формат DBF считае Пример переноса данных из 1С 7.7 в 8.1 посредством XML файла 2
xmldoc = CreateObject(" Msxml2.DOMDocument" ); xmlDoc.loadXML(" root/ " ); nodeRoot = xmlDoc.documentElement; расходы = xmlDoc.createElement(" СправочникРасходы" ); Спр = Создатьобъект(" Справочник.Расходы" ); Спр.ВыбратьЭлементы(); Пока С Поиск в DBF файле по индексу 0
ДБФ=СоздатьОбъект(" XBase" ); ДБФ.ДобавитьПоле(" DATE" ," D" ,0,0); Дбф.ДобавитьИндекс(" INDEX" ," DTOS(DATE)" ,0,0," " ); //Дбф.ДобавитьИндекс(" INDEX" ," DTOS(DATE)" ,0,0," Пустая строка" ); //DTOS . // где DTOC() - " ММ/ДД/ГГ" или DTOS Посмотреть все в категории XML, DBF, TXT, CSV
Создание XML-файла с помощью компоненты v7plus.dll.
XML, как известно, один из языков разметки. Подробно о нем можно прочитать в книге и в Инете. С его помощью легко реализовать древовидную структуру хранения данных , а также задать жесткие правила построения дерева, что уменьшит ошибки, связанные с доступом к данным.
Применительно к 1С с его помощью можно реализовать множество задач, в частности по документообороту внутри компании и с внешними корреспондентами, всевозможные переносы справочников и документов между конфигурациями, обмен данными с другими приложениями, поддерживающими формат XML.
XML-документ вкратце можно представить следующим образом. Верхним в иерархии является корневой элемент. Все остальные элементы (кроме сведений о формате файла) являются вложенными по отношению к нему (подчиненными), назовем их ветви. Каждый элемент, в т.ч. и корневой поименован. Каждый элемент имеет атрибуты, может содержать данные, а также может иметь множество других вложенных в него элементов. В качестве примера разберем задачу по переносу приходно-кассовых ордеров и банковских выписок, формируемых оперативным отделом с помощью ТиС в бухгалтерию. Данный пример показывает простые приемы работы со структурой XML-документа. Код с пояснениями:
//Сначала проинициализируем компоненту v7plus, предоставляющую объекты для работы с XML:
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll" ) <> 1 Тогда
Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "v7plus.dll" ) <> 1 Тогда
Предупреждение( "Компонента v7plus.dll не найдена!" );
КонецЕсли;
КонецЕсли; Анализатор = СоздатьОбъект( "AddIn.XMLParser" );
//Теперь начнем строить дерево документа. Заодно занесем служебную информацию о файле выгрузки в атрибуты корневого элемента
Корень = Анализатор . СоздатьДокумент ();
Данные = Корень.СоздатьПодчиненныйЭлемент ( "Данные" ); Данные . УстановитьАтрибут ( "ИБ" ,КаталогИБ());
Данные . УстановитьАтрибут ( "Дата" ,Строка(РабочаяДата()));
Данные . УстановитьАтрибут ( "Оператор" ,ИмяПользователя());
//И создади две основные ветви Справочники и Документы
Справочники = Данные . СоздатьПодчиненныйЭлемент ( "Справочники" );
Документы = Данные . СоздатьПодчиненныйЭлемент ( "Документы" );
// в общей ветке Справочники создадим ветку для справочника Контрагентов
Клиенты = Справочники . СоздатьПодчиненныйЭлемент ( "Клиенты" );
//А вот так заполняются элементы для справочников. Каждый реквизит справочника выносится в отдельный элемент дерева. Т.к. в данном задании выбрана схема синхронизации справочника Контрагентов по ИНН, то в значение элемента записываем ИНН, а для наглядности в атрибут элемента заносим наименование клиента
К = СписокКлиентов . ПолучитьЗначение ( х );
Состояние( "Выгружаются сведения по: " + К . Наименование );
Клиент = Клиенты . СоздатьПодчиненныйЭлемент ( "Клиент" );
Клиент . УстановитьАтрибут ( "Наименование" , К . Наименование );
Клиент . Значение = К . ИНН ;
// выгружаем все нужные реквизиты контрагента
ПН = Клиент . СоздатьПодчиненныйЭлемент ( "ПолнНаименование" );
ПН . Значение = К . ПолнНаименование ;
ВК = Клиент . СоздатьПодчиненныйЭлемент ( "ВидКонтрагента" );
ВК . Значение = К . ВидКонтрагента . Идентификатор ();
// и так далее по всем необходимым реквизитам, аналогично заполняется информация о документах в соответствии с разработанной схемой обмена с бухгалтерией.
// Завершающие шаги и сохранение файла
ИмяФайла = СтрЗаменить(Строка( ДатаВыгрузки )+Строка( ДатаВыгрузки1 ), "." , "" ) + ".xml" ;
ПапкаФайла = "C:\1C\Change\Sweet\" ;
Корень . Записать ( ПапкаФайла + ИмяФайла );
Чтение данных.
В первой части статьи были рассмотрены простейшие приемы работы по созданию XML-документа. В этой части будут описаны способы получения данных. Основным моментом, на который я хотел бы обратить Ваше внимание, является следующее правило: сперва с помощью методов .ВыбратьУзел() или .ВыбратьУзлы() производится выборка узла/элемента, а затем с помощью методов соответственно .ПолучитьПодчиненныйПоНомеру() и .ПолучитьУзел() обеспечивается непосредственный доступ к узлам/элементам документа. Впрочем, здесь можно провести аналогию работы со справочниками и документами в 1С: сначала делаем выборку с помощью .ВыбратьЭлементы() или .ВыбратьДокументы(), а затем получаем сами объекты .ПолучитьЭлемент() или ПолучитьДокумент(). Оба приема используются в данном примере. Код с пояснениями:
Инициализацию компоненты опустим. Для чтения она ничем не отличается.
//создадим объект для доступа к xml-файлу, загрузим в него файл и получим ссылку на корневой элемент xml-документа. Напомню, что у нас он назван "Данные"
ФайлДанных = Анализатор . СоздатьДокумент ();
ФайлДанных . Загрузить ( ФайлЭксп );
ВсеУзлы = ФайлДанных . ВыбратьУзлы ( "Данные" );
// получаем доступ к корневому узлу/элементу и читаем его атрибуты Данные = ВсеУзлы . ПолучитьУзел ( 0 );
Сообщить( "Идет загрузка данных из базы: " + Данные . ПолучитьАтрибут ( "ИБ" ));
Сообщить( "Выгрузка производилась: " + Данные . ПолучитьАтрибут ( "Дата" ));
Сообщить( "Выгрузку произвел/произвела: " + Данные . ПолучитьАтрибут ( "Оператор" ));
// следующими операторами мы получаем доступ к двум основным ветвям: ветки Справочники и ветке Клиенты
Справочники = Данные . ВыбратьУзел ( "Справочники" );
Документы = Данные . ВыбратьУзел ( "Документы" );
// "спускаемся" по иерархии глубже и получаем доступ к элементу Клиенты, Выписки и Приходники
Клиенты = Справочники . ВыбратьУзел ( "Клиенты" );
Выписки = Документы . ВыбратьУзел ( "Выписки" );
Приходники = Документы . ВыбратьУзел ( "Приходники" );
//если очень интересно сколько прийдется загружать Контрагентов, то можно воспользоваться следующей конструкцией
Сообщить( "Количество клиентов: " + Строка( Клиенты . КоличествоПодчиненных ()));
// организация перебора всех элементов узла Клиенты
Для х = 1 По Клиенты . КоличествоПодчиненных () Цикл
Клиент = Клиенты . ПолучитьПодчиненныйПоНомеру ( х );
ИНН = Клиент . Значение ;
Если ПустоеЗначение( ИНН ) = 1 Тогда
Сообщить( "Ошибка. В файле выгрузки не задан ИНН клиента " + Клиент . ПолучитьАтрибут ( "Наименование" ), "!!" );
Продолжить;
КонецЕсли;
КонецЦикла;
Экспорт/импорт данных с помощью файлов формата XML.
Расширяемый язык разметки XML (eXtensible Markup Language) представляет собой современное средство для хранения и конвертирования данных. В документе XML данные образуют древовидную структуру, что для большинства пользователей является наиболее понятным способом организации данных. Для начала приведем краткое описание самых простых правил языка XML.
Весь текст xml-документа можно грубо разделить на две категории - символьные данные и тэги. Тэг представляет собой команду, которая начинается с символа "". В отличие от фиксированного набора тэгов языка HTML имена и структуру тэгов XML разработчик xml-документа задает сам. Символьные данные - это те структурированные данные, которые хранятся в документе.
Xml-документ начинается со строки, самый простой вариант, которой имеет следующий вид:
Эта строка называется определением xml.За ним следуют элементы, которые представляют собой узлы древовидной структуры xml-документа. В силу древовидности структуры xml-документ должен иметь единственный корневой элемент, являющийся контейнером для всех остальных. Любой элемент состоит из открывающего и закрывающего тэгов, например,
book - это тип элемента, а строка "О.В.Бартеньев. 1С:Предприятие. Опыты программирования." - его содержимое. Элемент, лишенный содержимого, называется пустым элементом. Открывающий и закрывающий тэги пустого элемента можно объединить в один тэг, поместив в его конец косую черту . В принципе, допускается запись пустого элемента с помощью открывающего и закрывающего тэгов без содержимого ( ). Фактически оба способа имеют свое применение, поскольку могут быть элементы, которые случайно оказываются пустыми с точки зрения хранения пустого содержимого, а могут существовать элементы, которые не имеют содержимого по определению.
У элементов могут быть атрибуты. Атрибут - это пара имя-значение, расположенная в открывающем тэге элемента. Значения атрибутов должны быть заключены в одинарные или двойные кавычки. Фактически в виде атрибутов часто хранятся значения некоторых свойств. Например, предыдущий пример с элементом, хранящим информацию о книге, можно переформулировать так:
Для работы с документами xml требуется наличие так называемого парсера - специальной программы-анализатора, которая отслеживает выполнение синтаксических правил языка. Браузер MS Internet Explorer имеет встроенный парсер языка XML. Для работы с xml-документами в среде 1С:Предприятие используется внешняя компонента v7plus.dll. Таким образом, первый шаг при работе с xml-документами в системе 1С:Предприятие состоит в том, что требуется загрузить эту внешнюю компоненту. Следующий фрагмент кода позволяет осуществить эту загрузку внешней компоненты, если она находится в каталоге информационной базы для конфигурации
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ()+"v7plus.dll") <> 1 Тогда
Предупреждение("Компонента v7plus.dll не найдена!");
Возврат; //прервать выполнение процедуры
Далее можно заняться собственно работой с xml-документом. Создадим объект, который представляет собой анализатор xml-документа.
Анализатор = СоздатьОбъект("AddIn.XMLParser");
Разберем процесс работы по созданию нового xml-документа. С помощью объекта-анализатора создадим пустой xml-документ.
xml=Анализатор.СоздатьДокумент();
Далее создаются все элементы документа с помощью функции СоздатьПодчиненныйЭлемент(ИмяПодчиненногоЭлемента), примененной к объекту родительского элемента для вновь создаваемого. В результате работы будет возвращена ссылка на созданный элемент данных. Например, создаем корневой элемент и подчиненный к нему.
Корень=xml.СоздатьПодчиненныйЭлемент("КорневойЭлемент");
Подчинен=Корень.СоздатьПодчиненныйЭлемент("ПодчиненныйЭлемент");
В результате в xml-документ будут построены два элемента КорневойЭлемент и ПодчиненныйЭлемент, причем второй будет подчинен первому.
Если элемент имеет атрибут, то его значение можно установить с помощью процедуры УстановитьАтрибут(НазваниеАтрибута, ЗначениеАтрибута). Эту процедуру нужно вызвать для объекта, хранящего ссылку на конкретный элемент xml-документа, указав в качестве первого параметра символьную строку с названием атрибута и в качестве второго параметра - его значение. Например, установим подчиненному элементу атрибут имя со значением Подчиненный.
Подчинен.УстановитьАтрибут("имя","Подчиненный");
Установить содержимое элемента можно напрямую с помощью атрибута Значение объекта, соответствующего этому элементу.
Подчинен.Значение="Это текст внутри подчиненного элемента";
В результате будет создан xml-документ такого вида:
Это текст внутри подчиненного элемента
Как и при работе с любыми другими форматами данных, сделанные изменения требуется зафиксировать, т.е. записать в файл. Это делает процедура Записать(ПутьКФайлу), которая вызывается для объекта Анализатор, отвечающего за весь документ.
Теперь посмотрим, как производить чтение данных из xml-файла. Загрузка внешней компоненты и создание объекта-парсера, естественно, обязательно провести и здесь. Далее также создается ссылка на xml-документ с помощью функции СоздатьДокумент. Далее следует связать его с конкретным файлом с помощью метода Загрузить(ИмяФайла). Доступ к отдельным узлам xml-документа осуществляется с помощью функции ВыбратьУзел(НазваниеУзла). Функция вернет ссылку на требуемый узел xml-документа, если он один. Например,
ФайлДанных=Анализатор.СоздатьДокумент();
ФайлДанных.Загрузить(Файл);
Корень=ФайлДанных.ВыбратьУзел("КорневойУзел");
Эта же функция применяется и к любому другому элементу xml-документа для получения доступа к его подчиненным элементам. Если подчиненных элементов несколько, узнать их количество можно с помощью функции КоличествоПодчиненных(), примененной к объекту родительского элемента. Далее каждый из подчиненных элементов можно получить с помощью функции ПолучитьПодчиненныйПоНомеру(НомерЭлемента). Для каждого элемента можно получить его атрибуты с помощью функции ПолучитьАтрибут(НазваниеАтрибута), а также содержимое элемента с помощью атрибута Значение объекта, содержащего ссылку на элемент.
Экспорт/импорт данных с помощью файлов формата XML.
Разберем тот же пример, что и при использовании файла формата DBF для экспорта и импорта данных. Создадим обработку в типовой конфигурации для экспорта плана счетов. Структура xml-файла должна быть такой. Корневой элемент xml-документа соответствует плану счетов в целом. В нем располагаются подчиненные элементы с именем Счет, содержащие информацию о счетах. В качестве содержимого элементов указывается наименование счета. Остальные данные записываются в качестве атрибутов (код, признаки валютного, количественного учета и пр.). В качестве подчиненных элементов для элемента Счет задаются элементы, обозначающие его субсчета с теми же атрибутами. Приведем код процедуры экспорта плана счетов.
Процедура Выполнить()
Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"v7plus.dll")<>1 Тогда
Предупреждение("Компонента не обнаружена");
Анализатор=СоздатьОбъект("AddIn.XMLParser");
Корень=Анализатор.СоздатьДокумент();
План=Корень.СоздатьПодчиненныйЭлемент("ПланСчетов");
Счет=СоздатьОбъект("Счет.Основной");
Родитель=СоздатьОбъект("Счет.Основной");
Счет.ВыбратьСчета();
Пока Счет.ПолучитьСчет()=1 Цикл
// если это счет, а не субсчет
Если Счет.Уровень()=1 Тогда
Родитель.НайтиПоКоду(Счет.Код);
СчетXML=План.СоздатьПодчиненныйЭлемент("Счет");
СчетXML.УстановитьАтрибут("Код", Счет.Код);
СчетXML.УстановитьАтрибут("Валютный", Счет.Валютный);
СчетXML.УстановитьАтрибут("Количественный", Счет.Количественный);
СчетXML.УстановитьАтрибут("Забалансовый", Счет.Забалансовый);
Если Счет.Активный=1 Тогда
СчетXML.УстановитьАтрибут("вид","активный");
ИначеЕсли Счет.Активный=2 Тогда
СчетXML.УстановитьАтрибут("вид","пассивный");
СчетXML.УстановитьАтрибут("вид","активно-пассивный");
СчетXML.Значение=Счет.Наименование;
Если Счет.ПринадлежитГруппе(Родитель)=1 Тогда
СубсчетXML=СчетXML.СоздатьПодчиненныйЭлемент("Субсчет");
СубсчетXML.УстановитьАтрибут("Код", Счет.Код);
// аналогично устанавливаем все атрибуты на элемент СубсчетXML
СубсчетXML.Значение=Счет.Наименование;
Корень.Записать(КаталогПрограммы()+"plan.xml");
КонецПроцедуры
В результате будет получен файл, фрагмент которого представлен на следующем рисунке.
А теперь приведем код для импорта плана счетов из xml-файла в новую конфигурацию. Код модуля соответствующей обработки должен содержать процедуру Выполнить(), которая имеет такой вид.
Процедура Выполнить()
Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"v7plus.dll")<>1 Тогда
Предупреждение("Внешняя компонента не найдена");
Анализатор=СоздатьОбъект("AddIn.XMLParser");
Файл=Анализатор.СоздатьДокумент();
Файл.Загрузить(КаталогПрограммы()+"plan.xml");
План=Файл.ВыбратьУзел("ПланСчетов");
кол=План.КоличествоПодчиненных();
Счет=СоздатьОбъект("Счет.Основной");
Для инд=1 по кол Цикл
СчетXML=План.ПолучитьПодчиненныйПоНомеру(инд);
КолСубсчетов=СчетXML.КоличествоПодчиненных();
// подчиненным элементом является и содержимое элемента
Если КолСубсчетов>1 Тогда
Счет.Код=СчетXML.ПолучитьАтрибут("Код");
Счет.Наименование=СчетXML.Значение;
Счет.Валютный=СчетXML.ПолучитьАтрибут("Валютный");
Счет.Количественный=СчетXML.ПолучитьАтрибут("Количественный");
Счет.Забалансовый=СчетXML.ПолучитьАтрибут("Забалансовый");
Если СчетXML.ПолучитьАтрибут("вид")="активный" Тогда
Счет.Активный=1;
ИначеЕсли СчетXML.ПолучитьАтрибут("вид")="пассивный" Тогда
Счет.Активный=2;
Счет.Активный=3;
Счет.Записать();
Если КолСубсчетов>1 Тогда
Счет1=СоздатьОбъект("Счет.Основной");
Для инд1=2 По кол_субсчетов Цикл
Субсчет=СчетXML.ПолучитьПодчиненныйПоНомеру(инд1);
Счет1.Новый(0);
Счет1.Код=Субсчет.ПолучитьАтрибут("Код");
// аналогично устанавливаются все атрибуты создаваемого субсчета
Читайте также: