Как указать с какой схемой работать при выгрузке данных в XML
Что такое "выгрузка данных в XML"?
Для регистрации налоговых накладных налоговая инспекция убедительно просит отправлять их в формате xml при этом требует использовать схему J1201005.xsd
Примерное решение
Процедура КнопкаВыполнитьНажатие(Кнопка)
ИмяСхемы="D:\Отчеты\Схемы\pharmacy";
ИмяФайла="D:\Rez\test.xml";
//-----------------------------Попітка создать парсер
Попытка
ДокЭкспорт=Новый COMОбъект("Msxml2.DOMDocument.4.0");
Сообщить("Парсер подключен");
Исключение
Сообщить("Парсер не установлен");
КонецПопытки;
pi =ДокЭкспорт.createProcessingInstruction("xml", "version=""1.0"" encoding=""windows-1251""");
ДокЭкспорт.insertBefore(pi, ДокЭкспорт.childNodes.item(0));
элДокумента = ДокЭкспорт.createElement("Apteki");
ДокЭкспорт.appendChild(элДокумента);
элДокумента.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema");
элДокумента.setAttribute("xsi:noNamespaceSchemaLocation",ИмяСхемы+".xsd");
//------Создоем Элемент тела
Тело=ДокЭкспорт.createElement("Apteka");
//------Заполняем елемент тела
элДокумента.appendChild(Тело);
ТТочеи=Справочники.ТорговыеТочки.Выбрать();
Пока ТТочеи.Следующий() Цикл
//------Создаем поле ID/Adres
Если ТТочеи.ЭтоГруппа Тогда продолжить КонецЕсли;
ИД=ДокЭкспорт.createElement("ID");
Адрес=ДокЭкспорт.createElement("Adres");
//------Добавляем в тело XML документа строки для полей ИЛ и Адрес
Тело.appendChild(ИД);
Тело.appendChild(Адрес);
//------Заполняем строки значениями
ИД.text = ТТочеи.Код;
Адрес.text = СокрЛП(ТТочеи.Адрес);
КонецЦикла;
ДокЭкспорт.Save(ИмяФайла);
Попытка
фОшибка = 0;
ДокЭкспорт.validateOnParse = Истина;
ДокЭкспорт.async = Ложь;
ДокЭкспорт.Load(ИмяФайла);
Error = ДокЭкспорт.parseError;
Если Error.errorCode<>0 Тогда
// есть ошибка
фОшибка = 1;
Сообщить(НСтр("ru = 'Ошибка:'; uk = 'Помилка:'"));
Сообщить(Error.reason);
КонецЕсли;
Исключение
фОшибка = 1;
Сообщить(ОписаниеОшибки());
КонецПопытки;
Сообщить(НСтр("ru='-- Проверка завершена!';uk='-- Перевірка завершена!'"), ?(фОшибка = 1,СтатусСообщения.Важное, СтатусСообщения.Обычное));
КонецПроцедуры
Это все хорошо и красиво, а что делать если у меня нет COMОбъект("Msxml2.DOMDocument.4.0")? Первый же вопрос, который будет мне задан "как это нет?" или что-то в этом роде, отвечу заранее - LINUX. Вот как то же самое реализовать именно на Linux?
http://pro1c.org.ua/redirect.php?http://alah-my.blogspot.com/2010/12/1-77-wine-ubuntu-1004.html
От дальнейшего офтопа (учитывая что есть тема http://pro1c.org.ua/index.php?showtopic=20498&hl=) эту тему закрываю.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua