Здравствуйте уважаемые!
Сделал в 1с выгрузку в документ xml (декларация по алкоголю). Есть xsd файл для проверки. Подскажите как в 1с теперь проверить эту выгрузку с помощью xsd файла? И вообще возможно ли это?
Щас та проверка, которую я намудрил просто проходит не выдавая ничего, хотя специально делал ошибку в названии раздела:
если нужна только проверка - то смотри функцию в модуле
ВалидацияХМЛпоСхеме
вот мой немного поправленный вариант (когда много однотипных ошибок - задумывается надолго на проверке, поэтому параметром КолвоВыводимыхОшибок ограничил количество показываемых ошибок):
//======================================================================
Функция ВалидацияХМЛпоСхеме(ИмяФайла,ИмяСхемы,КолвоВыводимыхОшибок=1)
Попытка
Схема=СоздатьОбъект("MSXML2.XMLSchemaCache.6.0");
Исключение
Сообщить("Не удалось создать объект XMLSchemaCache","!");
Возврат 0;
КонецПопытки;
Попытка
Схема.add("",ИмяСхемы);
Исключение
Сообщить("Не удалось подключить схему: "+ИмяСхемы,"!");
Возврат 0;
КонецПопытки;
Попытка
ДОМ=СоздатьОбъект("MSXML2.DOMDocument.6.0");
Исключение
Сообщить("Не удалось создать объект DOMDocument","!");
Возврат 0;
КонецПопытки;
ДОМ.schemas=Схема;
ДОМ.async=0;
ДОМ.validateOnParse=-1;
ДОМ.resolveExternals=-1;
Если (КолвоВыводимыхОшибок>1) Тогда
ДОМ.SetProperty("MultipleErrorMessages",-1);
КонецЕсли;
ДОМ.load(ИмяФайла);
Если (ДОМ.parseError.errorCode<>0) Тогда
// ошибки при проверке правильности
ВывестиСообщение("При проверке по схеме файла "+ИмяФайла+" выявлены ошибки!",1);
Если (КолвоВыводимыхОшибок>1) Тогда
Для НомОш=0 По ДОМ.parseError.allErrors.length-1 Цикл
parseError=ДОМ.parseError.allErrors.item(НомОш);
ВывестиОшибкуРазбораХМЛ(parseError);
Если НомОш>=КолвоВыводимыхОшибок Тогда
ВывестиСообщение("...и еще "+(ДОМ.parseError.allErrors.length-1-НомОш)+" ошибок",1);
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
ВывестиОшибкуРазбораХМЛ(ДОМ.parseError);
КонецЕсли;
Возврат 0;
КонецЕсли;
ДОМ="";
Возврат 1;
КонецФункции
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший