1с 8.2 створення xml виходячи з xsd. Типізований об'єкт DataSet. Читання та запис XML-документів
Анотація: XML-схеми даних (XSD) Створення XSD-схеми у середовищі Visual Studio.NET. Створення типізованого об'єкту DataSet. Отримання інформації про структуру об'єкту DataSet. Завантаження XML-документів та XSD-схем у типізований та звичайний об'єкти DataSet. Методи ReadXml та ReadXmlSchema. Запис вмісту та структури типізованого та звичайного об'єкта DataSet. Методи WriteXml та WriteXmlSchema
Типізований об'єкт DataSet. Читання та запис XML-документів
XML-схеми даних (XSD)
Схеми даних 1 Точний переклад XML Schema Document -< схема документа XML>, проте ми будемо використовувати термін "схема даних XML". XSD (XML Schema Document, XSD) є альтернативний спосібправил побудови XML-документів У порівнянні з DTD, схеми мають більш потужні засоби для визначення складних структур даних, забезпечують більш зрозумілий спосіб опису граматики мови, здатні легко модернізуватися і розширюватися. Схема XSD може містити таку інформацію:
- подання зв'язків між елементами даних, аналогічне зв'язків зовнішніх ключів між таблицями в реляційній базі даних;
- представлення унікальних ідентифікаторів, подібних до первинного ключа;
- специфікацію типівданих кожного індивідуального елемента та атрибуту у XML-документі.
Для створення схеми даних Visual Studio .NET в головному меню переходимо File \ New \ File і вибираємо зі списку шаблонів (див. рис. 11.3) XML Schema . З'являється вікно з написом "Щоб розпочати, перетягніть об'єкти з вікна Server Explorer або Toolbox на робочу область (область дизайну) або клацніть правою кнопкою" (рис. 11.1):
Мал. 11.1.
Справа в тому, що ми перебуваємо в режимі дизайну. Переключаємося в режим коду, для чого натискаємо кнопку (XML):
Перший рядок - це вже знайома вказівка на те, що схема є XML-документом з кореневим елементом xs:schema . Префікс xs : випереджає всі елементи схеми, вказуючи на свій простір імен. У другому рядку знаходиться довгий, докладний і часто зовсім непотрібний опис схеми (порівняйте з аналогічним кодом для HTML-сторінок). Для коректної роботи цілком достатньо обмежитися наступним уявленням:
Утім, вбудовані засоби візуалізації студії передбачають наявність цієї "шапки", тому її не слід видаляти. Створення схеми, що описує заданий XML-документ у Visual Studio .NET - досить просте завдання. Створимо наступний документ XMLEasy.xml:
Перемикаємось на вкладку (Data) і бачимо лише один запис (рис. 11.2).
Мал. 11.2.
Створити схему, що описує цей документ, можна декількома способами: у головному меню вибрати пункт "XML \ Create Schema" (рис. 11.3, А), в режимі XML контекстному менювибрати цей пункт (рис. 11.3, Б), у режимі Data у контекстному меню вибрати цей пункт (рис. 11.3, У), і, нарешті, у режимі Data натиснути кнопку панелі інструментів XML (рис. 11.3, Р).
Мал. 11.3.
У будь-якому випадку з'являється схема документа як таблиці (рис. 11.4). Залишимо поки режим Schema і перейдемо в режим (XML).
Мал. 11.4.
Середовище згенерувало XML-код, який описує структуру документа:
Сюди входить також опис, необхідний подальшого маніпулювання схемою з допомогою об'єктів ADO .NET. У вихідному документі XMLEasy.xml з'явилося посилання на схему даних:
Документ XMLEasy.xsd був автоматично створений у тій же директорії, де знаходиться XMLEasy.xml.
Щоб навчитися розуміти схеми XSD, спочатку слід попрацювати з описом даних у чистому вигляді, без додаткових елементів. У таблиці 11.1 наводиться кілька найпростіших XML-документів та його схем, сформованих без прив'язки до об'єктів ADO .NET.
Вміст XML-документа | Вміст XSD-схеми |
---|---|
|
|
Опис | |
У документі XMLEasy.xml елемент TOUR – кореневий елемент, що містить дочірній елемент IDTOUR. Загальна схемадля кореневого елемента має такий вигляд: |
|
Вміст XML-документа | Вміст XSD-схеми |
|
|
Опис | |
Кореневий елемент TABLE містить елемент TOUR , що складається, своєю чергою, із групи дочірніх елементів. Елемент choice визначає вибір інших елементів, причому значення unbounded (необмежено) атрибуту maxOccurs вказує на можливість необмеженої наявності груп TOUR . |
|
Вміст XML-документа | Вміст XSD-схеми |
|
Мал. 11.5. |
Опис | |
Для елемента IDTOUR було встановлено тип даних int , для елемента CLOSED - тип boolean , інших - за умовчанням тип string . Змінювати тип даних можна безпосередньо в режимі XML-схеми даних, але зручніше - в режимі Schema (в даному випадку режим буде називатися DataSet) вибирати тип даних зі списку, що випадає (рис. 11.5): |
У програмне забезпеченнядо курсу ви знайдете всі файли цієї таблиці в папці XSD (CodeGlava5XSD).
Завдання типу даних у XML-документі (останній приклад – табл. 11.1) – один із способів обмеження вмісту. Для обмеження значення заданого типу використовуються додаткові атрибути. У наступному фрагменті схеми значення елемента PRICE має бути в межах від 50 до 100:
Для обмеження документа XML деякими фіксованими значеннями використовується наступна конструкція:
Тут елемент NAME може набувати лише одного фіксованого значення з п'яти назв країн.
Розробка XSD-схеми є досить копіткою роботою. Візуальні засоби середовища Visual Studio .NET значно полегшують це завдання. Для освоєння основних концепцій бажано вивчити кілька схем документів XML, створених автоматично. У таблицях 11.2-11.4 наводиться опис основних елементів та атрибутів, які при цьому можна зустріти.
Елемент | Опис |
---|---|
all | Вкладені елементи можуть визначатися у довільному порядку |
Annotation | Батьківський елемент елементів-коментарів |
any | Будь-які вкладені елементи |
anyAttribute | Будь-які атрибути |
appInfo | Елемент-коментар. Задає титул схеми |
attribute | Атрибут |
attributeGroup | Група атрибутів |
choice | Вибір інших елементів. Аналог оператора "|" у DTD |
complexContent | Обмеження або розширення моделівмісту складного типу |
complexType | Елемент складного типу |
documentation | Елемент-коментар. Надає інформацію про схему |
element | Елемент |
extension | Розширення елемента |
field | Оголошення поля. Застосовується всередині елемента |
group | Група елементів |
import | Імпорт декларації типів з іншої схеми |
include | Включення іншої схеми до існуючого простору імен |
key | Завдання елемента або атрибута з ключем, який вказує на інший елемент |
keyref | Завдання елемента або атрибута, на який вказує ключ |
list | Елемент, який може містити перелік значень |
redefine | Перевизначення вже оголошених елементів |
restriction | Обмеження елемента |
schema | Кореневий елемент схеми |
selector | Селектор для відбору XML-елементів |
sequence | Послідовність інших елементів. Аналог оператора "," у DTD |
simpleContent | Модель, вміст якої представляє лише символьні дані |
simpleType | Елемент простого типу |
union | Елемент або атрибут, який може мати множину |
unique | Елемент чи атрибут, який повинен мати унікальне значення |
Атрибут | Опис |
---|---|
enumeration Список значень | |
length | Довжина |
maxLength | Максимальна довжина |
minLength | Мінімальна довжина |
maxExclusive | Максимальне значення |
maxInclusive | Максимальне значення включно |
minExclusive | Мінімальне значення |
minInclusive | Мінімальне значення включно |
fractionDigits | Кількість знаків після коми у дробових числах |
totalDigits | Кількість цифр |
pattern | Зразок (патерн) вмісту елементів |
default | Значення елемента або атрибута за замовчуванням |
elementFormDefault | Завдання властивостей локального елемента як глобально визначеного |
fixed | Фіксоване значення елемента чи атрибута |
form | Локально оголошені елементи визначаються у конкретних примірниках документів |
itemType | Тип пунктів списку |
memberTypes | Тип членів, використаних у об'єднанні (union) |
maxOccurs | Максимальна кількість входжень елемента |
minOccurs | Мінімальна кількість входжень елемента |
mixed | Завдання елемента, що має змішаний тип |
name | Назва елемента чи атрибута |
namespace | Простір імен |
noNamespace | Завдання розташування документа-схеми, |
SchemaLocation | не має результуючих просторів імен |
nillable | Визначення того, що елемент може мати пусте значення NULL(nil) |
ref | Завдання посилання на глобально визначений елемент |
schemaLocation | Визначення розташування схеми |
substitutionGroup | Визначення заміни елементів на інші елементи |
targetNamespace | Результуючий простір імен схеми |
type | Тип елемента |
use | Чи є елемент обов'язковим чи ні |
value | Значення елемента схеми |
xsi:nil | Завдання реального змісту порожнього (NULL) елемента XML-документа |
xsi:schemaLocation | Реальне розташування елемента в XML-документі |
xsi:type | Реальний тип елемента у XML-документі |
Платформи: 1С: Підприємство 8.3, 1С: Підприємство 8.2, 1С: Підприємство 8.1
Зміни: Усі конфігурації
2012-11-25
34938
XDTO - це механізм, який необхідний під час створення та роботи web-сервісів. За допомогою пакетів XDTO здійснюється опис структури необхідного файлу XML, необхідного для зміни даних з XML та XML.
XML - це метод дозволяє у звичайному текстовому файлі описати складну структуру даних. У ньому описуються як безпосередньо дані, а й поля, де вони зберігаються.
Ось базовий приклад XML файлу:
XML for dummies
Імена (теги), використані в даному файлі- root, list, name, el – можуть бути абсолютно довільними. Основні правила освіти XML файлу видно відразу за його структурою:
- можливе вкладення елементів;
Початок елемента<Имя>, закінчення - те саме ім'я, але з приєднанням символу «/».
Перебувати всередині елемента можуть:
- вкладені елементи;
- текст.
У кожного елемента можлива наявність властивостей (атрибутів), у них вказується значення та ім'я. У XML забороняється використовувати будь-які символи, тому що кілька з них зайняті безпосередньо для XML, приклад «<» и «>». Спосіб опису XML дуже зручний для використання при обміні з іншими сторонніми програмамиі використовується він у 1С механізмі обміну даними.
Простір імен
Файл XML починається з заголовка, що описує версію XML, кодування тощо… Заголовок в XML не зовсім обов'язковий і часто його просто не застосовують. У заголовку також можливе визначення - простору імен.
XML файли передаються через інтернет і сприймаються багатьма різними програмами. Сприймаються - це означає, що в їхньому коді є захист - якщо зустрінеш у файлі XML певне ім'я елемента, то необхідно сприймати його саме так і робити саме ось це. Тому при використанні нами тега IBM, існує досить високий шанс того, що інша програма подумає, що це IBM, відомий їй, в той час як ми мали на увазі щось своє.
Для запобігання подібному і для того, щоб явно вказувати на відмінність нашого IBM від усіх інших, у файлі можливе завдання найменування простору імен - префікс, що використовується перед назвою елементів.
Визначити простір імен (namespace) можна наступним чином xmlns:Префікс (Ім'яПростору) = “URL”, приклад:
xmlns:store = "http://site.ru"
Навіщо ж необхідний URL? Хто вже подумав і дивиться далі - звісно простір імен, нами придуманий, може бути не унікально, тобто. хтось інший також може використовувати його. Саме тому вказується особливий унікальний ідентифікатор, Який визначає заодно і виконавця простору імен.
Природно мається на увазі той факт, що людина, яка вказала простір імен, є виключно чесною. Він вказує на свій сайт та не застосовує з одним сайтом кілька різних просторів імен. Як правило, вказують як URL сайту, так і URL певної папки на сайті, для того, щоб була можливість створення іншого простору імен в будь-якій папці на даному сайті, для його застосування в будь-якій ситуації.
DOM
Об'єктом називається конкретна структура даних, що є самодостатньою і містить у собі всі свої дані.
У зв'язку з тим, що в XML файлі відбувається опис структурованих даних, тобто даних у вигляді структури, яка має свої властивості та інше, відповідно на них можна дивитися як на об'єкти. У розглянутому прикладі може використовуватися об'єкт LIST з властивостями та вкладеним елементом.
DOM є способом розгляду XML файлу не як тексту в конкретному форматі, а як набор об'єктів з полями, властивостями та інше.
До мінусів даного способуроботи відноситься високі вимоги до продуктивності ПК, т.к. DOM обробляє (формує структуру як об'єктів) одночасно весь XML файл, незалежно від його розміру, і файли великого розміру(Більше 4Гб) він просто не зможе "переварити".
Для аналізу великих файлів, використовується SAX, цей метод аналізу файлу заснований на послідовному читанні файлу, а не на побудові відразу всієї його структури .
Опис файлу XML
Якщо ми застосовуємо файл конкретної структури постійно здійснення обміну між 2-ма програмами, ми ймовірно хотіли таке:
Щоб використані були конкретні назви;
- щоб використовувалися лише ті елементи, які ми очікуємо (які «мають існувати для застосування в обміні»);
- Щоб в атрибутах вказувалися лише ті типи, очікувані нами (число, рядок та інше).
Для опису XML структури бувають такі формати файлів (які зберігаються також у простому текстовому файлі):
Розширення DTD – це Document Type Definition;
- Розширення XSD - це XML Shema.
Ці формати описують яким має бути документ. Процедуру перевірки відповідності XML, що описується у подібному файлі стандарту, називають верифікацією.
XDTO
XDTO - це об'єкт 1С, що дозволяє додати конфігурацію опис файлу XML. Точніше описується не сам файл, а певні структури XML.
Для вказівки типів, можливих до використання – застосовується список, бібліотека типів – званий фабрикою XDTO. У даній фабриці вказуються не тільки прості типи (дата, рядок, число), які використовуються в інших програмах, мовах та інше, але також і типи 1С, що використовуються в 1С і в певній конфігурації.
Фабрика XDTO включає кілька пакетів. Початкові типи описуються у пакеті з назвою www.w3.orgТипи даних конфігурації описуються в пакеті http://v8.1c.ru/8.1/data/enterprise/current-config
Ці типи називаються відповідно до назв у конфігураторі з додаванням англомовного вигляду (CatalogRef, DocumentObject, CatalogObject, DocumentRef), наприклад:
CatalogObject.Контрагенти
Додавання пакету XDTO
Ми дійшли до теми XSLT - способу перетворення файлів XML на щось інше, наприклад в файли HTML. Тема XML вкрай велика і написана по ній не одна книга.
Нашим завданням є зрозуміти, що XDTO дозволяє описати елементи, які повинні знаходитися у XML пакету, який потрібно рахувати або сформувати. XDTO пакети знаходяться в конфігурації 1С та у гілці Загальні – XDTO-пакети.
Додати XDTO пакет у 1С можливо вручну, але найкраще дістати відповідний файл XSD з готовим докладним описомсхеми. Опис схеми об'єктів XSD будь-якої конфігурації можна отримати шляхом натискання на гілку Загальні - XDTO-пакети та вибравши в меню пункт " Експорт XMLсхеми даних конфігурації".
Цей текстовий файл, Ви можете відредагувати в блокноті Windows, при цьому прибравши зайві об'єкти (непотрібні Вам). Додати готову схему XSD в 1С можливо шляхом натискання правою кнопкою миші на гілку Загальні - XDTO-пакети та вибравши в меню пункт "Імпорт XML-схеми".
Роботою з XDTO в 1С називається перетворення значень з XML і XML. Це робиться за допомогою об'єктів 1С мови Читання XML/XMLЗапис.
При роботі з XDTO треба вказати пакет, з яким безпосередньо працюєте. Їм може бути типовий пакет (див. в обговоренні вище, XDTO), так і пакет, доданий в конфігурацію.
Ідентифікація пакета здійснюється за URL-адресою, яка вказана в пакеті. Є два способи роботи, які є основними – це:
Серіалізація - автоматична зміназначень із XML в 1С і навпаки;
Заповнення полів об'єкта, його створення та запис у XML (а також відповідно читання з XML та надалі читання його полів).
Наведемо приклад серіалізації значення:
Серіалізатор = Новий XDTO Серіалізатор (XDTO Фабрика);
XML Файл = Новий XML Запис();
XMLФайл.ВідкритиФайл(«Ім'яФайлу»);
Серіалізатор.ЗаписатиXML(XMLФайл, 1С Значення);
Зворотня функція – Серіалізатор. XMLЧитання (), використовується з об'єктів 1С мови ЧитанняXML.
Приклад запису/читання об'єкта:
Довідник XDTOОб'єкт = ФабрикаXDTO.Створити(XDTOФабрика. Тип("http://v8.1c.ru/8.1/data/enterprise/current-config", "CatalogObject.Контрагенти"));
ЗаповнитиЗначенняВластивостей(ДовідникXDTOОб'єкт, Довідник.Контрагенти.ЗнайтиПоРеквізиту("Ім'я", "Іванів).Посилання);
Потім можна зробити запис створеного об'єкта в XML так само, як і серіалізація. Під час читання XML у такий самий спосіб, що розглядався вище, може повернутися не XDTO значення, а саме такий об'єкт.
Під час створення XDTO об'єкта створюється структура, яка аналогічна структурі об'єкта конфігурації (якщо, звичайно, Ви створюєте об'єкт конфігурації з пакета, який вказаний у прикладі вище). Типові поля (найменування, код тощо) є англомовними, а об'єкт створюється порожнім, тому його необхідно заповнювати, окремо кожне поле або з використанням функції ЗаповнитиЗначенняВластивостей
Формат XML користується великою популярністю при обміні різними текстовими документамиміж інформаційними системами. Можливість створення унікальної структури документів дозволяє її використовувати в багатьох галузях – електронні бібліотеки, WEB, імпорт/експорт, а також багатьох інших. Без можливості зручної роботиз цим форматом системи 1С не змогли б набути такої популярності. Оскільки 1С активно використовує WEB-технології, кожен розробник має вміти читати XML та записувати у них інформацію.
Подання файлу XML та його читання
Однією з ключових переваг мови розмітки XML є досить зручна та інтуїтивно зрозуміла структура та синтаксис. При його створенні автори ставили за мету створити мову розмітки, яка була б зручною для читання і людиною, і ЕОМ. На сьогоднішній день XML набув широкого розвитку в інші формати, але залишається популярним і широко використовується. Структура XML файлу будується за такою схемою:
Для розгляду прикладу імпорту даних у 1С достатньо буде представленого вище файлу. Щоб написана процедура змогла прочитати файл XML, достатньо в неї передати шлях до самого файлу. Це можна зробити через інтерфейс, дозволивши користувачам самостійно вказувати файл, або жорстко прописавши текст обробки.
Одним із популярних способів роботи з XML розміром до 100 МБ у 1С вважається використання об'єктної моделі документа (DOM). Його зміст полягає в почерговій обробці всіх вузлів документа, які представлені в XML. Вбудованою мовою 1С цей алгоритм виглядає так:
- Оголошення механізмів, за допомогою яких відбувається читання XMLфайлу; Цикл для обходу вузлів;
- Зчитування даних та атрибутів у вузлі;
- Виведення інформації. Якщо є необхідність, на цьому етапі може відбуватися запис у змінні або одразу в потрібні таблиці;
- Завершення роботи механізму.
Як результат ми виводимо користувачеві повідомлення з імпортованими даними. Також ви можете помістити всі дані в потрібну структурута на її підставі запрограмувати створення документа чи записів у довіднику. Швидкість роботи 1С з XML досить велика, тому все частіше саме цей формат використовується при обміні даними з іншими джерелами.
Для вивантаження інформації нам також знадобиться взаємодія з файлами формату XML. Розглянемо приклад запису з допомогою об'єкта платформи 1С ЗаписьXML і вивантажимо дані номенклатурі. Головними його перевагами є простота коду та швидкість обробки даних. Серверний алгоритм запису файлу XML можна представити у вигляді кількох послідовних кроків:
- Підключаємось до файлу xml;
- Створюємо головні елементи і записуємо дані. Якщо ви хочете вивантажити в XML файл великий обсяг інформації, то на цьому етапі у вас будуть використовуватись цикли. Будьте обережні і не забувайте, що запит даних потрібно робити до циклу, а не в ньому;
- Закриваємо файл.
Механізм XDTO в 1С
Розробники компанії 1С обмінюватись інформацією через XML створили власний механізм – XDTO (XML Data Transfer Objects). Починаючи з версії 8.1, у платформі з'являється можливість обмінюватися даними з іншими системами, не вникаючи питання формування файлу XML. Більшість технічних питаньбере на себе 1С, а нам залишається лише вказувати дані, необхідні для формування XML. Щоправда, для цього розробнику необхідно заздалегідь зробити деякі маніпуляції.
Щоб завантажити файл XML, використовуючи XDTO, ми повинні повідомити структуру файлу 1С. Вона передається через набір схем, які можна створити в текстовому редакторі або скористатися спеціалізованою програмою. В результаті повинен вийти файл, що описує загальну структуру та типи даних, які використовуються у файлі XML. Перед тим як зчитувати або записувати новий XML, розробник повинен завантажити його схему в конфігурацію до розділу «Пакети XDTO».
У разі створимо руками простий пакет, щоб 1С розуміла структуру нашого файлу для прикладу. Щоб формування файлу закінчилося успішно, нам потрібно відобразити у схемі, що у нас присутній головний елемент та вкладення з атрибутами. Створену схему потрібно експортувати у файл формату xsd і передати разом із xml, щоб іншій стороні не знадобилося розбиратися зі структурою і знову створювати пакет xdto.
Зберегти новий XML на жорсткий дискдопоможе серверний алгоритм, схожий на попередній. Відмінність полягає лише в необхідності додавання даних по 1 товару у фабрику XDTO – спеціальний механізм платформи 8.3 1С. Якщо є необхідність робити більше рівнів вкладеності, доведеться описувати кожен головний елемент.
//Відкриваємо файл XML ЗаписВФайл = Новий ЗаписXML; ЗаписВФайл.ВідкритиФайл("D:\Nomenclatura.xml", "UTF-8"); //Вказуємо 1C, який тип даних слід створити - головний елемент ВсеТовари = ФабрикаXDTO.Створити(ФабрикаXDTO.Тип("http://wiseadviceXML.org","Товари")); //вибираємо дані для вивантаження ВибіркаДовідника = Довідники.Номенклатура.Вибрати(); //Додаємо окремі товари в головний елемент Поки ВибіркаДовідника.Наступний() цикл Товар = ФабрикаXDTO.Створити(ФабрикаXDTO.Тип("http://wiseadviceXML.org","Товар")); Товар.Найменування = ВибіркаДовідника.Найменування; Товар.ПочатковаЦіна = Рядок(ВибіркаЗДовідника.ПочатковаЦіна); ВсіТовари.Додати(Товар); КінецьЦикл; //записуємо дані та закриваємо файл ФабрикаXDTO.ЗаписатиXML(ЗаписВФайл, ВсеТовари); ЗаписВФайл.Закрити();Розглянуті механізми є досить універсальними і при правильному налаштуванніможуть вирішити більшість завдань. Однак у взаємодії 1С та XML досить багато нюансів. Вивчати їх набагато ефективніше в реальних умовах, а не на тестових завданнях, в яких обробка файлу XML вирішує досить вузькі завдання.
Помилка, що повідомляє про те, що файл не відповідає XSD-схемі, є спільною для випадків, коли система не може вважати дані зі звіту. Загалом такі помилки у людей виникають нерідко, а впоратися з ними досить нескладно.
Для початку потрібно розібратися в тому, що означає XSD-схема, щоб зрозуміти, чому ваш файл не відповідає.
Отже, XSD – це мова програмування, з його допомогою описується структура звіту. До структури входять, наприклад, параметри змісту звіту, тип, вид, синтаксис даних, розділи, які містять інформацію.
Виходить, що XSD-схема-це опис структури вашого звіту, виконане однією з мов програмування. Якщо до звіту буде внесено неправильну інформацію, то для схеми вона буде просто нечитана, саме тому система видає помилку про те, що файл не відповідає XSD-схемі.
Це говорить про те, що інформація, яку ви запровадили, не може бути прочитана мовою програмування, отже, програма визнає її неправильною.
Варто зазначити, що дана проблема може виникнути як через невірно введених даних(наприклад, ви помилилися, коли вводили ІПН організації), так і через неправильний формат введення даних (наприклад, ви вказали зайві прогалини або дефіси).
Однак це не єдина причина, яка спричиняє невідповідність файлу XSD-схемі. Ця помилкатакож може виникати через те, що на Вашому пристрої встановлено застаріла версіяпрограми, в якій ви робите звіт, а також, якщо у самому податковому органі не інстальовано оновлення програми.
Для того, щоб вирішити помилку в XSD-схемі, вам необхідно буде перевірити правильність усіх даних,які ви ввели, а також уточнити, чи не виходило оновлення програми, в якій ви працюєте. Однак, перш ніж перевіряти файл, уважно подивіться на текст помилки, яку видає.
Справа в тому, що в деяких ситуаціях після тексту про те, що файл не відповідає схемі, стоїть двокрапка і далі вказується причина цієї проблеми. Якщо причина в самій помилці не вказана, оновіть програму до останньої версії.
Завершивши оновлення, спробуйте знову надіслати звіт. Якщо після оновлення файл знову видає помилку, то необхідно шукати проблему у ньому.Якщо ви працюєте в програмі 1С, ви можете перевірити файл за допомогою спеціальної кнопки, яка називається «перевірити в інтернеті».
Якщо два попередні пункти не допомогли виявити вам проблему, перевірте, чи всі обов'язкові поля ви заповнили, чи правильно ви ввели всі дані, адже багато з них необхідно заповнювати цифрами, в такому випадку дуже легко допустити друкарську помилку.
Крім цього, вам необхідно перевірити всі поля на відсутність зайвих прогалин, дефісів та інших знаків. Якщо ви перевірили весь файл і не можете знайти помилку або якщо помилку знайти вдалося, але виправити її ви ніяк не можете, вам обов'язково варто звернутися до служби технічної підтримкипрограми, за допомогою якої ви робите звіт або до її розробників.
Для того, щоб вирішити цю проблему за допомогою розробників програми, вам буде потрібно відправити деякі документи, такі як сам файл, в якому знаходиться звіт, протокол сповіщення, який вам видає комп'ютер.
Крім цього, розробники можуть запросити у вас деяку інформацію про вашу організацію, а також інші відомості, які їм видадуться потрібними, їх ви обов'язково повинні надати, інакше вирішити проблему не вдасться.
Отже, якщо ви намагаєтеся надіслати звіт до податкового органу, але файл видає помилку про те, що він не відповідає XSD-схемі, це означає, що ваш звіт не може бути відправлений,оскільки програма не може прочитати дані, які ви запровадили.
Але піддаватися паніці не варто, адже здебільшого ця проблема вирішується досить простота швидко. До того ж, якщо звіт ви надіслали вчасно, але він не був прийнятий через невірний формат, то податкова не має права штрафуватиза не вчасно наданий звіт. Насамперед, зверніть увагу на сам текст помилки, можливо, там уже вказано причину її виникнення.
По суті, причин може бути лише дві. Або у вас на пристрої встановлено стара версіяпрограми, за допомогою якої ви робите звіт, у такому випадку вирішити проблему легко, потрібно просто завантажити саме останнє оновленнязазвичай його можна знайти на сайті програми, яку ви використовуєте. Другою причиною може бути те, що ви неправильно заповнили якісь дані, або взагалі не заповнили якесь поле.
У такому разі вам необхідно перевіряти ваш файл, при цьому потрібно пам'ятати про те, що програма може вважати помилкою навіть зайва прогалина. Якщо ви ніяк не можете знайти причину помилки, то ви можете звернутися до технічну підтримкупрограми, там фахівці обов'язково допоможуть вирішити вашу проблему.