Невозможно обновить xml файл быстрых ссылок на данные

Обновлено: 07.07.2024

Все мучаюсь с загрузкой/выгрузкой данных в XML. Написал 2 процедурки:

Процедура ОсновныеДействияФормыДействие(Кнопка)
Режим = РежимДиалогаВыбораФайла.Сохранение;
ДиалогСохранения = Новый ДиалогВыбораФайла(Режим);
ДиалогСохранения.Фильтр= "XML|*.xml";
ДиалогСохранения.МножественныйВыбор=Ложь;
Если ДиалогСохранения.Выбрать() тогда
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.ОткрытьФайл(ДиалогСохранения.ПолноеИмяФайла);
ЗаписьXML.ЗаписатьНачалоЭлемента("ROOT");
Выборка=Документы.ВыполнениеНаучноТехническихПрограмм.Выбрать();
Пока выборка.Следующий() цикл
ВыгружаемыйОбъект=ВЫборка.ПолучитьОбъект();
ЗаписатьXML(ЗаписьXML,ВыгружаемыйОбъект);
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
КонецЕсли;
КонецПроцедуры

При выгрузке вроде файл создается нормально, без каких-либо ошибок, система ни на что не ругается, все необходимые данные попадают в файл. Когда же я пытаюсь загрузить из этого файла информацию, то все доходит до функции "ВозможностьЧтенияXML(ЧтениеXML)", которая выдает мне "Ложь" и соответственно ничего не происходит. Если эту функцию убрать, то при "ЗагружаемыйОбъект = ПрочитатьXML(ЧтениеXML)" происходит ошибка чтения данных. ПОЧЕМУ.

Колосально. По моему вы просто слишком высокого мнения об XML в нем нет встроенного интелекта:), вопользуйтесь лучше КД.
Да дело в том, что я этот механиз взял из учебника, лишь слегка подправив. И там написано .что мол все работает.
А что такое КД.
(3) Конвертация данных.
А кто тебе сказал что Докумен.Объект это сериализуемое значение? Оттуда и ошибка, так просто документы выгрузить не получиться, а ведь с ними еще и справочники надо грузить.

(4) Не, справочники там не нужны. предполагается перенос значений из аналогичных баз данных. т.е. справочники и регистры там буду одинаковые!

Через конвертацию данных там сложно получается. да и это целая конфигурация. хотелось бы иметь возможность делать выгрузки в своей конфе!

Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.

В этой статье

Пометки, разметка и теги

Чтобы понять XML, полезно понимать идею пометки данных. Люди создавали документы на протяжении многих лет и на протяжении всего времени они их помечали. Например, преподаватели могут постоянно пометить документы учащихся. Учащиеся могут перемещать абзацы, уточнять предложения, исправлять опечатки и так далее. Пометка документа определяет структуру, смысл и внешний вид сведений в документе. Если вы когда-либо использовали функцию "Отслеживание изменений" в Microsoft Office Word, то использовали компьютеризированную форму пометки.

В мире информационных технологий термин "пометка" превратился в термин "разметка". При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.

Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например <p> и <h2> . В HTML- и XML-документах теги легко распознать, поскольку они заключены в угловые скобки. В исходном тексте этой статьи теги HTML выполняют множество функций, например определяют начало и конец каждого абзаца ( <p> . </p> ) и местоположение рисунков.

Отличительные черты XML

Документы в форматах HTML и XML содержат данные, заключенные в теги, но на этом сходство между двумя языками заканчивается. В формате HTML теги определяют оформление данных — расположение заголовков, начало абзаца и т. д. В формате XML теги определяют структуру и смысл данных — то, чем они являются.

При описании структуры и смысла данных становится возможным их повторное использование несколькими способами. Например, если у вас есть блок данных о продажах, каждый элемент в котором четко определен, то можно загрузить в отчет о продажах только необходимые элементы, а другие данные передать в бухгалтерскую базу данных. Иначе говоря, можно использовать одну систему для генерации данных и пометки их тегами в формате XML, а затем обрабатывать эти данные в любых других системах вне зависимости от клиентской платформы или операционной системы. Благодаря такой совместимости XML является основой одной из самых популярных технологий обмена данными.

Учитывайте при работе следующее:

HTML нельзя использовать вместо XML. Однако XML-данные можно заключать в HTML-теги и отображать на веб-страницах.

Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.

Правила XML разрешают создавать любые теги, требуемые для описания данных и их структуры. Допустим, что вам необходимо хранить и совместно использовать сведения о домашних животных. Для этого можно создать следующий XML-код:

Как видно, по тегам XML понятно, какие данные вы просматриваете. Например, ясно, что это данные о коте, и можно легко определить его имя, возраст и т. д. Благодаря возможности создавать теги, определяющие почти любую структуру данных, язык XML является расширяемым.

Но не путайте теги в данном примере с тегами в HTML-файле. Например, если приведенный выше текст в формате XML вставить в HTML-файл и открыть его в браузере, то результаты будут выглядеть следующим образом:

Izzy Siamese 6 yes no Izz138bod Colin Wilcox

Веб-браузер проигнорирует теги XML и отобразит только данные.

Правильно сформированные данные

Правила создания правильно сформированного XML-файла знать необязательно (хотя понять их нетрудно), но следует помнить, что использовать в других приложениях и системах можно лишь правильно сформированные XML-данные. Если XML-файл не открывается, то он, вероятно, неправильно сформирован.

XML не зависит от платформы, и это значит, что любая программа, созданная для использования XML, может читать и обрабатывать XML-данные независимо от оборудования или операционной системы. Например, при применении правильных тегов XML можно использовать программу на настольном компьютере для открытия и обработки данных, полученных с мейнфрейма. И, независимо от того, кто создал XML-данные, с ними данными можно работать в различных приложениях Office. Благодаря своей совместимости XML стал одной из самых популярных технологий обмена данными между базами данных и пользовательскими компьютерами.

В дополнение к правильно сформированным данным с тегами XML-системы обычно используют два дополнительных компонента: схемы и преобразования. В следующих разделах описывается, как они работают.

Схемы

Не пугайтесь термина "схема". Схема — это просто XML-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.

Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов <CAT> . </CAT>:

Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:

Строковые элементы в приведенном примере схемы называются объявлениями. Если бы требовались дополнительные сведения о животном, например его цвет или особые признаки, то специалисты отдела ИТ добавили бы к схеме соответствующие объявления. Систему XML можно изменять по мере развития потребностей бизнеса.

Объявления являются мощным средством управления структурой данных. Например, объявление <xsd:sequence> означает, что теги, такие как <NAME> и <BREED> , должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.

Если данные в XML-файле соответствуют правилам схемы, то такие данные называют допустимыми. Процесс контроля соответствия XML-файла данных правилам схемы называют (достаточно логично) проверкой. Большим преимуществом использования схем является возможность предотвратить с их помощью повреждение данных. Схемы также облегчают поиск поврежденных данных, поскольку при возникновении такой проблемы обработка XML-файла останавливается.

Преобразования

Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).

Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.

Сочетание файла данных, схемы и преобразования образует базовую систему XML. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.

В следующем примере кода показан один из способов написания преобразования. Она загружает данные <CAT> в таблицу на веб-странице. В этом примере суть не в том, чтобы показать, как написать преобразование, а в том, чтобы показать одну форму, которую может принять преобразование.

В этом примере показано, как может выглядеть текст одного из типов преобразования, но помните, что вы можете ограничиться четким описанием того, что вам нужно от данных, и это описание может быть сделано на вашем родном языке. Например, вы можете пойти в отдел ИТ и сказать, что необходимо напечатать данные о продажах для конкретных регионов за последние два года, и что эти сведения должны выглядеть так-то и так-то. После этого специалисты отдела могут написать (или изменить) преобразование, чтобы выполнить вашу просьбу.

Корпорация Майкрософт и растущее число других компаний создают преобразования для различных задач, что делает использование XML еще более удобным. В будущем, скорее всего, можно будет скачать преобразование, отвечающее вашим потребностям без дополнительной настройки или с небольшими изменениями. Это означает, что со временем использование XML будет требовать все меньше и меньше затрат.

XML в системе Microsoft Office

Профессиональные выпуски Office обеспечивают всестороннюю поддержку XML. Начиная с Microsoft Office 2007, в Microsoft Office используются форматы файлов на основе XML, например DOCX, XLSX и PPTX. Поскольку XML-данные хранятся в текстовом формате вместо запатентованного двоичного формата, ваши клиенты могут определять собственные схемы и использовать ваши данные разными способами без лицензионных отчислений. Дополнительные сведения о новых форматах см. в сведениях о форматах Open XML и расширениях имен файлов. К другим преимуществам относятся:

Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.

Более простое восстановление данных и большая безопасность. Формат XML может быть легко прочитан пользователем, поэтому если файл поврежден, его можно открыть в Блокноте или другой программе для просмотра текста и восстановить хотя бы часть данных. Кроме того, новые файлы более безопасны, потому что они не могут содержать код Visual Basic для приложений (VBA). Если новый формат используется для создания шаблонов, то элементы ActiveX и макросы VBA находятся в отдельном, более безопасном разделе файла. Кроме того, можно удалять личные данные из документов с помощью таких средств, как инспектор документов. Дополнительные сведения об использовании инспектора документов см. в статье Удаление скрытых и персональных данных при проверке документов.

Пока все хорошо, но что делать, если у вас есть данные XML без схемы? У Office программ, которые поддерживают XML, есть свои подходы к работе с данными. Например, Excel выдаст схему, если вы откроете XML-файл, который еще не имеет такой схемы. Excel затем вы можете загрузить эти данные в XML-таблицу. Для сортировки, фильтрации или добавления вычислений в данные можно использовать XML-списки и таблицы.

Включение средств XML в Office

По умолчанию вкладка "Разработчик" не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.

В Office 2016, Office 2013 или Office 2010: Отображение вкладки "Разработчик".

Для начала, давайте рассмотрим варианты причин, которые могли привести к данной проблеме:

  1. Наш любимый кеш, хоть в данном случае редко он виновник, но с него стоит начать в решении проблемы;
  2. Не совпадающие метаданные (Например центральная база была обновлена, а изменения не доехали и/или узел считает что он уже обновлен, тут как раз часто помогает очистка кеша и повторный обмен);
  3. И наконец проблема, которой и посвящена данная публикация - повреждение значений реквизитов, у которых тип "Хранилище значения". Данная проблема чаще всего возникает при резком отключении компьютера во время записи объектов и прочих случаях (предположительно, хранилище значения, хранится отдельно и записывается в базу, после записи основного объекта, в основном, эти проблемы возникают в файловых базах).

Как же решить проблему в пункте №3?

Варианты решения три (от худшего к лучшему):

Как работает обработка?

А как проверить, что значение, хранилища значения, повреждено?

С этим есть некоторые сложности, так как что при получении значения из поврежденного хранилища значений мы получаем "Неопределено", ровно тоже самое, если в хранилище значения, было помещено "Неопределено". В некоторых случаях, при получении значения возникают исключение, но не всегда. В итоге получилась такая проверка:

Получилась (почти) универсальная обработка, по поиску и исправлению поврежденных данных хранилища значения. В настоящий момент, обработка поддерживает следующие типы объектов:

  • Справочники (реквизиты, табличные части)
  • Документы (реквизиты, табличные части)
  • Регистры сведений (ресурсы, реквизиты)*
  • Регистры накопления (ресурсы, реквизиты)*
  • Планы видов характеристик (реквизиты, табличные части)

* - В измерениях регистра, не может быть реквизитов типа "ХранилищеЗначения"

Обратите внимание, обработка записывает в поврежденное хранилище значения, значение "Неопределено", некоторые объекты не ожидают такого рода данных и могут выдавать ошибки при открытии и пр. При желании, вы можете сами доработать обработку, чтобы в зависимости от объекта, у вас вставлялась ожидаемая объектом структура и пр. Так же обработка предоставляется "AS IS", так что делайте бэкапы, перед выполнением. Обработка может иметь ошибки, в случае нахождения оных - пишите.
Обработка разрабатывалась и тестировалась на платформе 8.3.10.2505 с конфигурацией 1С:Розница 2.2.5. Но обработка должна быть совместима с любыми конфигурациями на управляемых формах.

При обновлении через XML-файл Яндекс загружает данные автоматически. Создать XML-файл и настроить выгрузку данных нужно один раз. После этого в файл нужно вносить только изменения о филиалах. Подробнее см. в разделе Обновление данных через XML-файл.

Через файл также можно передавать информацию о дополнительных параметрах вашей сети или филиала, а также фотографии.\n

Если вы подключились к партнерской программе, информация о филиалах будет автоматически обновляться сразу во всех сервисах и мобильных приложениях Яндекса (Карты, Навигатор, Поиск). Кроме того, наши специалисты смогут консультировать вас по вопросам обновления данных.

Подробное описание, график работы и список услуг расширяют круг запросов, по которым вас смогут найти ваши клиенты.

Сколько стоит обновление через XML-файл?

Обновление через XML-файл бесплатно.

Что будет с данными, которые уже есть в Бизнесе, если я пришлю XML-файл?

На основе информации из вашего файла, в базе Бизнеса будут обновлены данные о существующих филиалах. Новые филиалы будут добавлены в базу и будут отображаться на сервисах с указанными параметрами. Филиалы, сведения о которых не добавлены в XML-файл, будут удалены.\n

Отзывы, фотографии и дополнительные сведения филиалов, которые уже есть в Бизнесе, не пропадут и будут по-прежнему отображаться на сервисах Яндекса.

Можно ли включать ежедневное обновление, если у нас редко обновляются данные?

Да, в этом случае тоже можно включать ежедневное обновление. Вы будете передавать нам тот же список филиалов со свежей датой актуализации. Так мы поймем, что данные об организации актуальны.

Нужно ли подписывать договор с Яндексом, чтобы передавать данные?

Данные передаются Яндексу по договору-оферте. Передача данных означает, что вы принимаете условия оферты. Договор-оферту вам подписывать не нужно.

Что делать, если филиалы организации представлены в нескольких странах?

Вы можете передавать данные о сетях, расположенных в различных странах . Данные о филиалах в каждой стране необходимо передавать через отдельный XML-файл.

Что делать, если мне не подходят рубрики Яндекс.Бизнеса?

Если вам не подходят рубрики Бизнеса, вы можете указать их в собственном рубрикаторе.

Передайте рубрикатор вместе с готовым XML-файлом через форму или разместите его по отдельной ссылке (при передаче XML-файла по ссылке).

Данные о государственных учреждениях

О каких государственных учреждениях можно передавать данные?

Вы можете передавать данные обо всех государственных организациях.

В каком формате можно передавать данные о государственных организациях?

Требования к формату передачи данных см. в разделе Обновление данных через XML-файл.

Как оформлять названия организаций для Бизнеса?

Название организации должно легко читаться на Яндекс.Картах.

Не рекомендуется использовать полные, распространенные названия — например, «Физкультурно-оздоровительный комплекс „Ромашка“, Государственное бюджетное учреждение города Киева, Центр физической культуры и спорта Соломенского района города Киева, Департамента образования и науки, молодежи и спорта города Киева» .\n

Подходящим вариантом является краткое, узнаваемое название: «Физкультурно-оздоровительный комплекс „Ромашка“» .

Читайте также: