IE 2016

Класс "ЗаписьXML" для 1С++, аналог одноименного класса из 8.x.

Опубликовал curdate в раздел Программирование - Практика программирования

Мне понадобилось перенести работающий код выгрузки данных в xml из 1С 8.2 в 7.7. Чтобы минимизировать исправления - написал класс-эмулятор класса ЗаписьXML из 8.2. Теперь при переносе кода из 1С8.2 в 7.7 количество необходимых изменений - минимально.

Мне понадобилось перенести работающий код выгрузки данных в 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 и Стек (в обработках), с примером выгрузки (в отчетах)

Файлы

Наименование Файл Версия Размер Кол. Скачив.
Конфигурация - пример
.rar 12,33Kb
02.11.12
14
.rar 12,33Kb 14 Скачать

См. также

Комментарии

1. Ёпрст 29.10.2012 16:58
Лень смотреть, на основе чего класс слеплен ?
Домдокумент ?
обычный текст ?
в7плюс ?
Ответили: (3)
# Ответить
2. curdate 29.10.2012 17:01
Обычный текст
# Ответить
3. Dolly_EV (файл скачал) 31.10.2012 08:01
(1) О! Тебе же лень было через fso переписать декларацию - вот оно, готовое ))))
(0) Автору - плюс!
еще бы кто бы написал класс "1С:Предприятие8_для_77" )))
# Ответить
4. OrsoBear 01.11.2012 09:03
Для стартапа маловато информации.
Пока сам от начала до конца не написал загрузку-выгрузку, только тогда понял, как это дело все работает.
Хотя, можно сослаться на то, что обрабтка для знающих людей.
Но здесь чаще простые обыватели подходящие под себя обработки ищет :)

В любом случае спасибо :) Пригодилось.
# Ответить
5. ksnik (файл скачал) 14.03.2013 15:33
В обработке КлсЗаписьXML
Процедура ЗаписатьОбъявлениеXML() Экспорт
	Текст.ДобавитьСтроку("<?xml version=""1.0"" encoding=""windows-1251""?>");
КонецПроцедуры	// ЗаписатьОбъявлениеXML

тег с ошибочной кодировкой " encoding="win1251"?> вместо "windows-1251".
Кодировки "win1251" не существует. Есть "windows-1251".
# Ответить
6. igo1 20.11.2014 13:11
Чтобы получить заголовок файла <?xml version="1.0" encoding="windows-1251"?> пишем код.

Запись = Новый ЗаписьXML;
Запись.УстановитьСтроку("windows-1251");
Запись.ЗаписатьОбъявлениеXML();
........
...Показать Скрыть
# Ответить
7. programma 18.02.2015 19:06
Нужная вещица...
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016