Мне понадобилось перенести работающий код выгрузки данных в xml из 1С 8.2 в 7.7. Чтобы минимизировать исправления - написал класс-эмулятор класса ЗаписьXML из 8.2. Теперь при переносе кода из количество необходимых изменений - минимально.
В идеальном случае нужно заменить
ЗаписьXML = Новый ЗаписьXML;
на
ЗаписьXML = СоздатьОбъект("ЗаписьXML");
В результате код выгрузки с использованием класса выглядит так же, как в 8.х:
ИмяВременногоФайла = "C:\test.xml");
ЗаписьXML = СоздатьОбъект("ЗаписьXML");
ЗаписьXML.ОткрытьФайл(ИмяВременногоФайла);
ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("yml_catalog");
ЗаписьXML.ЗаписатьАтрибут("date", "" + ТекущаяДата());
//Валюты
ЗаписьXML.ЗаписатьНачалоЭлемента("currencies");
ЗаписьXML.ЗаписатьНачалоЭлемента("currency");
ЗаписьXML.ЗаписатьАтрибут("ID", "UAH");
ЗаписьXML.ЗаписатьАтрибут("rate", "1");
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.ЗаписатьКонецЭлемента();
//
ЗаписьXML.ЗаписатьКонецЭлемента();//yml_catalog
ЗаписьXML.Закрыть();
Для работы также требуется класс "Стек" (включен в файл примера).
Кроме методов, присутствующих в классе ЗаписьXML, добавил дополнительные, позволяющие делать выгрузку более лаконично:
- ЗаписатьЗначениеЭлемента(Имя, Значение) - добавляет в файл строку вида:
<currencyId>USD</currencyId> - ЗаписатьПараметр(Имя, Значение) - добавляет в файл строку вида:
<param name="Максимальный формат">А4</param>
Содержимое: МД файл с классом ЗаписьXML и Стек (в обработках), с примером выгрузки (в отчетах)