1с проверить xml на валидность
XSD — это язык описания структуры XML документа. Его также называют XML Schema. При использовании XML Schema XML-парсер может проверить не только правильность синтаксиса XML документа, но также его структуру, модель содержания и типы данных. Многие так или иначе сталкивались с процедурой полной валидации, обеспечивающей соответствие документа заданной схеме или сообщающей о возможных ошибках. В данной статье речь пойдет о частичной валидации, кроме вышеописанного, позволяющей конструировать валидные документы «на лету». Мы разберемся, какие возможности может предоставить такой подход и способы его реализации.
Основная цель
Зачем вообще может понадобиться конструировать документ, обладающий заданными свойствами, и какими свойствами мы можем управлять? На первый вопрос ответ практически очевиден; большинство документов не являются просто текстом, а наделены некоторой семантикой. XML решает вопрос синтаксического представления, а схема – частично решает вопрос семантического значения. Благодаря соответствию документа схеме, можно выполнять над ним набор предопределенных действий, допустимых для целого класса валидных документов, будь то представление в другом формате, экспорт значимой части информации для конкретной задачи, импорт новой информации с учетом глобальных ограничений. Наиболее часто применяемый механизм в таком случае – это XSLT преобразование, смысл которого можно проиллюстрировать следующей диаграммой:
- Строго контролировать типизацию данных узлов и атрибутов;
- Определять порядок следования узлов, следить за наличием обязательных узлов и атрибутов;
- Требовать уникальность элементов в заданном контексте;
- Создавать вариантные узлы, требующие наличия одних атрибутов или других, в зависимости от контекста;
- Требовать выполнения определенного предиката на группе узлов или атрибутов.
Часто возникает желание модифицировать документ, уже отвечающий выбранной схеме, таким образом, чтобы он не потерял валидность. Здесь речь идет и о автоматических модификациях, например добавление веб-агентами (агрегаторами) информации в документ или модифицирующие запросы в XML-базу данных, так и о ручной модификации, скажем, в визуальном XML-редакторе. Операция полной валидации для больших документов может занимать существенное время, десятки секунд и более, что в целом препятствует использованию подхода «атомарное изменение – проверка – отказ/разрешение». А для визуальных редакторов хотелось бы еще больше – иметь возможность не только проверить атомарное действие, а предложить все допустимые по схеме варианты модификации конкретного узла. Однако, хорошие XML-редакторы умеют это делать, и мы попробуем разобраться каким образом у них это получается.
Необходимая информация о XML схеме
- Шаблоны (any, anyType, anyAttribute), позволяющие использовать любой элемент, соответствующий заданному пространству имен;
- Группы подстановки, определяющие набор типов, который может быть использован вместо конкретного описания типа;
- Количество повторений, определяющее для каждого элемента минимальное и максимально допустимое количество его вхождений в тип (обобщение операторов Клини: "*", "+").
Правило Unique Particle Attribution (однозначность определения частиц) требует, чтобы каждый элемент документа однозначно соответствовал ровно одной частице xsd:element или xsd:any в модели содержимого родительского элемента [2].
Вообще говоря, правило Unique Particle Attribution (UPA) не является жестким требованием к структуре XML схем, а только крайне желательной рекомендацией и часть используемых схем ему не соответствует. Рассмотрим простейший пример, иллюстрирующий нарушение правила однозначности определения частиц.
Определим схему следующим образом:
Тогда XML документ, состоящий из одного элемента , доказывает нарушение правила однозначности; элемент может быть сопоставлен и ветке xsd:elment и xsd:any одновременно.
К счастью, большая часть готовых схем следуют правилу UPA. Дальнейшие рассуждения будут верны только в случае соответствия схемы правилу UPA, но в целом небольшими модификациями рассуждения можно добиться корректности и на не совместимых с UPA-схемах, за счет потери скорости.
Построение валидатора
- ADD: создание подэлемента с типом x на позиции n;
- REMOVE: удаление подэлемента, стоящего на позиции n;
- MOVE: перенос элемента с позиции n на позицию m (хоть перенос и сводится к выполнению удаления и добавления элементов, но промежуточное состояние может нарушать валидность документа).
- Частица:
• MinOccurs – минимальное число повторений терма (если 0, то терм становится опциональным);
• MaxOccurs – максимальное число повторений терма (допустима бесконечность – inf).
• Терм: описание элемента, шаблон, последовательность или выбор; - Описание элемента (typedef):
• Локальное имя;
• Имя пространства имен (может быть опущено, тогда элемент считается допустимым в любом пространстве имен);
• Группа подстановки – множество всех элементов, принимаемых в выражениях содержащих typedef; - Шаблон (any):
• Имя пространства имен, допустимого для элемента подстановки (может отсутствовать); - Последовательность (sequence):
• Последовательное перечисление допустимых частиц; - Выбор (choice):
• Множество допустимых частиц.
1. Построение недетерминированного конечного автомата (NFA) с заданным конечным состоянием S по заданной частице:
a. Установим начальное состояние n на S;
b. Если MaxOccurs частицы равен бесконечности (inf):
• Добавим новое промежуточное состояние t; получаемое из преобразования терма в NFA (случай 2); добавим эпсилон-ребра из t в n и из n в S:
c. Если MaxOccurs частицы – число m:
• Строим цепочку из (MaxOccurs-MinOccurs) преобразований терма, начиная из конечного состояния S, добавляя эпсилон-ребро из промежуточного состояния на каждом шаге в конечное состояние S;
Например, для MaxOccurs=4 и MinOccurs=2 получаем следующий автомат:
d. Достраиваем minOccurs копий преобразования терма от нового начального состояния n, до начального состояния, полученного на предыдущих шагах.
2. Построение недетерминированного конечного автомата с заданным принимающим состоянием S по заданному терму:
a. Если терм – шаблон (any):
• Создаем новое состояние b, и соединяем его с S ребром, помеченным типом терма, возвращаем b;
b. Если терм – описание элемента:
• Создаем новое состояние b, затем для каждого элемента группы подстановки создаем ребро из b в S, помеченное типом элемента и возвращаем b;
c. Если терм – выбор (choice):
• Создаем новое состояние b, для каждого элемента выбора создаем автомат (случай 1) и соединяем его эпсилон-ребрами с состоянием b и состоянием S. Возвращаем b;
d. Если терм – последовательность (sequence):
• Для каждого элемента выбора создаем автомат (случай 1) и соединяем полученные автоматы в обратном порядке, начиная с состояния S, и возвращаем первое состояние в цепочке;
Затем применим алгоритм Томпсона к полученным NFA [3], для построения детерминированных автоматов. Алгоритм Томпсона можно применить в тех же случаях, что и алгоритм построения детерминированного автомата Ахо и Ульмана, основанный на сворачивании одинаково помеченных не-эпсилон ребер [4]. Однако в ряде случаев по исходному автомату (созданному на шагах 1–2) алгоритм Ахо и Ульмана не сможет построить детерминированный автомат.
- Их метки являются описаниями типов с одинаковыми локальными именами и названиями пространства имен;
- Их метки – это названия шаблонов, с перекрывающимся областями;
- Метка одного ребра – шаблон, другого – описание типа, оба лежат в одном пространстве имен, и описание типа входит в область шаблона.
Применим предложенный алгоритм к каждому типу схемы и получим соответствие тип -> автомат, который умеет проверять потомков элемента этого типа.
Осталось решить последнюю задачу – выбор нужного конечного автомата при валидации операции над заданным элементом дерева. С этим нам поможет структура привязки типов валидации (PSVI, Post-Schema-Validation Infoset), порождаемая почти любым (например, MSXML или libxml) полным валидатором. Для любого элемента дерева она указывает на соответствующий ему тип в описании схемы – в точности тот, по которому мы порождали нужный автомат.
В нашем случае реализация структуры PSVI представляется ссылкой на тип схемы для каждого элемента дерева.
Операции MOVE и REMOVE не меняют тип операнда (поэтому не требуют изменения структуры PSVI), а операция ADD вместе с добавлением элемента x, потребует добавления в структуру PSVI типа x. Таким образом, вместе с изменением структуры мы меняем и информационное множество привязки типов валидации, решая задачу частичной валидации и поддерживая дерево PSVI без вызова внешнего валидатора.
Системные требования: необходимо наличие служб MSXML 6.0. Во всех современных версиях Windows (начиная с Vista и позже) они присутствуют после установки. Если же версии Windows старые (XP/2003), тогда может понадобиться их установка (взять можно здесь), но, скорее всего, даже на этих версиях Windows они уже установлены, если система периодически обновляется. Так что рекомендую сначала попробовать обработку, и только в случае неудачи устанавливать службы MSXML 6.0.
Специальные предложения
Абсолютно бесполезная вещь.
Открою страшный секрет: валидность с точки зрения утилит msxml и с точки зрения 1С - совершенно разные вещи. Будьте готовы к тому, что файл, признанный валидным, не сработает, вызовет вылетание платформы, просто никак не прочитается и прочая. Аналогично, валидность xsd-схемы как таковой для большинства нормальных приложений и для 1С - разная. Многие схемы просто не грузятся, причём 1С ничего вообще не сообщает - тихо игнорит и всё. Фабрика может не скушать xsd, xml может "не подойти", хоть его 100% подгоняй, и прочее.
Например, полезнейшая штука построения xsd по имеющемуся файлу xml выдаёт схему, которую легко читают и понимают все, кроме 1С.
Это я к чему - имея дело с xml-механикой 1С, не полагайтесь на НЕ-1Сные фичи.
(1) Yashazz, собственно, я и не позиционировал обработку как проверялку для закачки файлов парсером 1С.
обработка делает ровно то, что и заявлено - проверяет файл на соответствие стандарту XML и приложенной схеме XSD.
лично я очень часто использую этот функционал при:
1. написании и отладки кода по формированию/выгрузке xml-файлов для сторонних приложений/сервисов, когда структура оговорена схемой
2. после отладки - внедряю в код для выгрузки автоматическую проверку выгруженного файла по схеме. позволяет сэкономить время, укорачивая цепочку - многие ошибки сразу показываются при выгрузке, а не после закачки на какой-нибудь портал.
P.S. открою секрет - абсолютно бесполезных вещей не бывает! бывают бесполезные для кого-то
(2),(3) А, ну "тады да". Тогда вопросов больше не имею. Если 1С-ные грабли известны, и сторонний функционал взят нарочно, то, может, это и правда best practice.
а сторонний функционал (msxml) был выбран именно потому, что я довольно пообщался с функционалом 1С касательно xml/xsd, чтобы опасаться его использовать в этом вопросе
(6) При желании можно найти и бесплатный аналог, и лекарство от жадности. А вообще нормальный программист найдет денег для того, чтобы купить себе хороший инструмент.
- Зачем изобретать велосипед?
- Будет ли потраченное время стоить тех денег, которые придется заплатить за уже существующий инструмент?
(9) CagoBHuK, я оценил, и решил, что быстрее и дешевле написать самому обработочку, юзающую msxml, и пользоваться. тем более, что больше от альтовы мне ничего не надо (кроме валидации). и даже решил поделиться с общественностью
раз в винде заложен данный функционал - почему бы им не воспользоваться? ну, а у кого есть лишние деньги - пусть покупают хоть альтову, хоть другое ПО - я ж не против.
только не пойму, какой смысл агитировать за покупку коммерческого ПО в камментах к бесплатному продукту
(10) Я никого ни к чему не агитирую. Я специально сделал приписку, что при желании можно найти бесплатный продукт.
(12) Ёпрст, лично у меня не получилось это сделать со штатным функционалом. если есть реально рабочий пример - милости просим
Да чего-то Microsoft Validator это конечно лучше, чем от 1С но тоже есть непонятки. Altova тоже советую.
Спасибо, огромное, искал аж с ног сбился - декларант-алко не запускается, а файлы перед отправкой проверить хочется.
+1
Пытался проверить файл по схеме ЕГАИС:
(17) и что именно непонятно? написано же, что не смог подключить схему. значит, нужно проверить наличие файла схемы, а также его корректность
"Обнаружена ошибка:
Смещение = 612, строка = 8, позиция = 17, код ошибки: -1072898035
Описание ошибки: Элемент ''< http://fsrar.ru/WEGAIS/TTNSingle_v2 >Identity'' используется, но не был объявлен в DTD и схеме."
В самой схеме "TTNSingle_v2" объявление "Identity" есть. Подскажите, в чем может быть проблема?
У меня тоже выдала ошибку
28.11.2016 16:39:42: Начата проверка по схеме файла: D:\val\v8_D76D_7b.xml
Не удалось подключить схему: D:\val\TTNSingle_v2.XSD
28.11.2016 16:39:43: Проверка завершена
работающий вариант: кусок кода процедуры Проверка по схеме клиент
однако выводимая ошибка не очень информативна
Обнаружена ошибка:
Смещение = 215, строка = 2, позиция = 193, код ошибки: -1072897676
Описание ошибки: Значение не может быть пустым
понятно что какой то элемент не заполнен, а вот какой не говорит, собака
Добрый день, andrewks
Помогите пжл. разобраться в такой проблеме.
Скачал последнюю вашу обработку с рабочим кодом, файл проверяется по схеме, но при этом всегда сообщается, что "Файл успешно прошёл проверку по схеме!", хотя я файл специально "ломаю", чтобы получить ошибку при проверке.
Т.е.в коде система почему то не проваливается в условие
Получается, что "ДОМ.parseError.errorCode" всегда равно 0, хотя ошибки есть 100%
Во вложении сама обработка, файл, который нужно проверить и схема (для наглядности)
18.10.2018 17:43:17: Начата проверка по схеме файла: D:\debug\R2_3019021828_098_18102018_7b85db23-df15-494d-b8b2-819f1e829034.xml
Не удалось подключить схему: D:\12-o.xsd
Описание ошибки: : Ошибка при вызове метода контекста (add): Типы не совпадают (1)
18.10.2018 17:43:19: Проверка завершена
Схема.add("",ИмяФайлаСхемы); решило эту проблему.
Просмотры 37628
Загрузки 199
Рейтинг 16
Создание 03.10.13 09:18
Обновление 03.10.13 09:18
№ Публикации 202643
Конфигурация Не имеет значения
Операционная система Windows
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Не указано
См. также
Групповая корректировка записей регистров (Управляемое приложение) v 2.2 Промо
Обработка предназначена для групповой корректировки записей регистров Накопления, Сведений и Бухгалтерии. Разработана специально для Управляемого приложения.
2 стартмани
06.09.2013 72943 382 kser87 69
Предпросмотр PDF, JPG, PNG, TIFF, Word, Excel
Предварительный просмотр присоединенных файлов PDF, JPG, PNG, TIFF, Word, Excel через расширение. Позволяет изменять масштаб, поворачивать и листать. Не требует подключения к интернету и внешних компонент.
2 стартмани
01.11.2021 4512 50 TyurinArt 23
Управление платформенными обработками (расширение для типовых) [update 8.3.20]
Расширение использует недокументированную возможность для управления платформенными обработками. Например, чтобы подменить "Активные пользователи" или доработать "Конструктор запросов".
1 стартмани
07.10.2021 6021 10 SeiOkami 24
Универсальная обработка переноса данных из основной конфигурации в расширение
Обработка предназначена для разработчиков, для тех случаев, когда ранее дописанный функционал, перенесен в расширение и появляется необходимость перенести данные из объектов основной конфигурации в объекты расширения. Перенос осуществляется настройкой соответствия объектов основной конфигурации объектам расширения.
5 стартмани
05.10.2020 13343 81 biz-intel 71
Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ) Промо
Простой перенос через JSON данных между двумя базами 1С (документов, справочников, ПВХ, ПВР, счетов). Аналогична произвольной выгрузке в типовой "Выгрузка/загрузка XML", но может использоваться для отличающихся конфигураций. Подходит для любых пар баз с любым интерфейсом (управляемый + обычный). Без настроек. Не требует идентичности конфигураций и платформ. При переносе типы данных сопоставляются по наименованиям метаданных, объекты и ссылки по UID.
1 стартмани
22.10.2014 230915 4478 ekaruk 189
Улучшенная обработка универсального обмена данными в формате XML (УФ)
Улучшенная обработка "Универсальный обмен данными" с полноценными возможностями СКД для выборки данных (не только для отборов).
1 стартмани
23.06.2020 16082 170 Lem0n 1
Панель команд текущего объекта (документа, справочника и т.д.) со следующим возможностями: Редактор реквизитов, таблиц и движений текущего объекта, Анализ прав доступа к текущему объекту, Поиск ссылок на объект с отборами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Реализована всплывающей панелью в форме объекта. Подключается как расширение конфигурации (*.cfe) либо отдельными обработками.
2 стартмани
01.05.2020 17767 118 sapervodichka 3
Яндекс сервисы [Расширение]
Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)
1 стартмани
24.10.2019 17971 11 noprogrammer 12
Обработка "Распознавание штрихкода с помощью утилиты Zbar" для Документооборот ред. 2 Промо
В связи с тем, что стандартный функционал программы «Документооборот» ред. 2.1 дает возможность распознавания штрихкодов только форма EAN-13, данная обработка - альтернативный способ для распознавания штрихкода в программе 1С: Документооборот ред. 2 с помощью утилиты Zbar, которая распознает в том числе и в формате Code 128 (один из стандартных штрихкодов кодирования документов, например, «Управление торговлей» ред. 11), а также с возможностью поэтапно проследить все действия от распознавания до прикрепления к документу или простой загрузки в каталоги файлов в базе 1С.
5 стартмани
05.09.2016 30459 187 SEOAngels 11
Работа с файлами (обычная и управляемая форма)
Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать!
1 стартмани
10.06.2019 48335 261 Xershi 78
Электронная таблица средствами 1С (Версия 2.0)
Функционал электронной таблицы для программ на платформе 1С реализован на основе табличных документов. Функционал реализован в виде обработки. Большую часть формы обработки занимают листы (закладки) с табличными документами, которые выполняет роль электронной таблицы. Листы могут быть добавлены, удалены или переименованы. Ограничение по количеству листов определяется возможностью платформы. В формулах электронной таблицы можно использовать любые языковые конструкции, процедуры и функции 1С, ссылки на другие ячейки электронной таблицы расположенные в том числе и на других листах. Допустимо обращаться к ячейкам электронной таблицы по имени именованной области. В случае использования в формулах электронной таблицы данных из самой таблицы пересчет зависимых ячеек с формулами производится автоматически. Электронную таблицу можно сохранить в файл.
Системные требования: необходимо наличие служб MSXML 6.0. Во всех современных версиях Windows (начиная с Vista и позже) они присутствуют после установки. Если же версии Windows старые (XP/2003), тогда может понадобиться их установка (взять можно здесь), но, скорее всего, даже на этих версиях Windows они уже установлены, если система периодически обновляется. Так что рекомендую сначала попробовать обработку, и только в случае неудачи устанавливать службы MSXML 6.0.
Специальные предложения
Абсолютно бесполезная вещь.
Открою страшный секрет: валидность с точки зрения утилит msxml и с точки зрения 1С - совершенно разные вещи. Будьте готовы к тому, что файл, признанный валидным, не сработает, вызовет вылетание платформы, просто никак не прочитается и прочая. Аналогично, валидность xsd-схемы как таковой для большинства нормальных приложений и для 1С - разная. Многие схемы просто не грузятся, причём 1С ничего вообще не сообщает - тихо игнорит и всё. Фабрика может не скушать xsd, xml может "не подойти", хоть его 100% подгоняй, и прочее.
Например, полезнейшая штука построения xsd по имеющемуся файлу xml выдаёт схему, которую легко читают и понимают все, кроме 1С.
Это я к чему - имея дело с xml-механикой 1С, не полагайтесь на НЕ-1Сные фичи.
(1) Yashazz, собственно, я и не позиционировал обработку как проверялку для закачки файлов парсером 1С.
обработка делает ровно то, что и заявлено - проверяет файл на соответствие стандарту XML и приложенной схеме XSD.
лично я очень часто использую этот функционал при:
1. написании и отладки кода по формированию/выгрузке xml-файлов для сторонних приложений/сервисов, когда структура оговорена схемой
2. после отладки - внедряю в код для выгрузки автоматическую проверку выгруженного файла по схеме. позволяет сэкономить время, укорачивая цепочку - многие ошибки сразу показываются при выгрузке, а не после закачки на какой-нибудь портал.
P.S. открою секрет - абсолютно бесполезных вещей не бывает! бывают бесполезные для кого-то
(2),(3) А, ну "тады да". Тогда вопросов больше не имею. Если 1С-ные грабли известны, и сторонний функционал взят нарочно, то, может, это и правда best practice.
а сторонний функционал (msxml) был выбран именно потому, что я довольно пообщался с функционалом 1С касательно xml/xsd, чтобы опасаться его использовать в этом вопросе
(6) При желании можно найти и бесплатный аналог, и лекарство от жадности. А вообще нормальный программист найдет денег для того, чтобы купить себе хороший инструмент.
- Зачем изобретать велосипед?
- Будет ли потраченное время стоить тех денег, которые придется заплатить за уже существующий инструмент?
(9) CagoBHuK, я оценил, и решил, что быстрее и дешевле написать самому обработочку, юзающую msxml, и пользоваться. тем более, что больше от альтовы мне ничего не надо (кроме валидации). и даже решил поделиться с общественностью
раз в винде заложен данный функционал - почему бы им не воспользоваться? ну, а у кого есть лишние деньги - пусть покупают хоть альтову, хоть другое ПО - я ж не против.
только не пойму, какой смысл агитировать за покупку коммерческого ПО в камментах к бесплатному продукту
(10) Я никого ни к чему не агитирую. Я специально сделал приписку, что при желании можно найти бесплатный продукт.
(12) Ёпрст, лично у меня не получилось это сделать со штатным функционалом. если есть реально рабочий пример - милости просим
Да чего-то Microsoft Validator это конечно лучше, чем от 1С но тоже есть непонятки. Altova тоже советую.
Спасибо, огромное, искал аж с ног сбился - декларант-алко не запускается, а файлы перед отправкой проверить хочется.
+1
Пытался проверить файл по схеме ЕГАИС:
(17) и что именно непонятно? написано же, что не смог подключить схему. значит, нужно проверить наличие файла схемы, а также его корректность
"Обнаружена ошибка:
Смещение = 612, строка = 8, позиция = 17, код ошибки: -1072898035
Описание ошибки: Элемент ''< http://fsrar.ru/WEGAIS/TTNSingle_v2 >Identity'' используется, но не был объявлен в DTD и схеме."
В самой схеме "TTNSingle_v2" объявление "Identity" есть. Подскажите, в чем может быть проблема?
У меня тоже выдала ошибку
28.11.2016 16:39:42: Начата проверка по схеме файла: D:\val\v8_D76D_7b.xml
Не удалось подключить схему: D:\val\TTNSingle_v2.XSD
28.11.2016 16:39:43: Проверка завершена
работающий вариант: кусок кода процедуры Проверка по схеме клиент
однако выводимая ошибка не очень информативна
Обнаружена ошибка:
Смещение = 215, строка = 2, позиция = 193, код ошибки: -1072897676
Описание ошибки: Значение не может быть пустым
понятно что какой то элемент не заполнен, а вот какой не говорит, собака
Добрый день, andrewks
Помогите пжл. разобраться в такой проблеме.
Скачал последнюю вашу обработку с рабочим кодом, файл проверяется по схеме, но при этом всегда сообщается, что "Файл успешно прошёл проверку по схеме!", хотя я файл специально "ломаю", чтобы получить ошибку при проверке.
Т.е.в коде система почему то не проваливается в условие
Получается, что "ДОМ.parseError.errorCode" всегда равно 0, хотя ошибки есть 100%
Во вложении сама обработка, файл, который нужно проверить и схема (для наглядности)
18.10.2018 17:43:17: Начата проверка по схеме файла: D:\debug\R2_3019021828_098_18102018_7b85db23-df15-494d-b8b2-819f1e829034.xml
Не удалось подключить схему: D:\12-o.xsd
Описание ошибки: : Ошибка при вызове метода контекста (add): Типы не совпадают (1)
18.10.2018 17:43:19: Проверка завершена
Схема.add("",ИмяФайлаСхемы); решило эту проблему.
Просмотры 37628
Загрузки 199
Рейтинг 16
Создание 03.10.13 09:18
Обновление 03.10.13 09:18
№ Публикации 202643
Конфигурация Не имеет значения
Операционная система Windows
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Не указано
Курс представляет собой отработанные и проверенные личным опытом основателей Школы инструменты решения вопросов с подчиненными, коллегами, заказчиком и руководством.
См. также
Групповая корректировка записей регистров (Управляемое приложение) v 2.2 Промо
Обработка предназначена для групповой корректировки записей регистров Накопления, Сведений и Бухгалтерии. Разработана специально для Управляемого приложения.
2 стартмани
06.09.2013 72943 382 kser87 69
Предпросмотр PDF, JPG, PNG, TIFF, Word, Excel
Предварительный просмотр присоединенных файлов PDF, JPG, PNG, TIFF, Word, Excel через расширение. Позволяет изменять масштаб, поворачивать и листать. Не требует подключения к интернету и внешних компонент.
2 стартмани
01.11.2021 4512 50 TyurinArt 23
Управление платформенными обработками (расширение для типовых) [update 8.3.20]
Расширение использует недокументированную возможность для управления платформенными обработками. Например, чтобы подменить "Активные пользователи" или доработать "Конструктор запросов".
1 стартмани
07.10.2021 6021 10 SeiOkami 24
Универсальная обработка переноса данных из основной конфигурации в расширение
Обработка предназначена для разработчиков, для тех случаев, когда ранее дописанный функционал, перенесен в расширение и появляется необходимость перенести данные из объектов основной конфигурации в объекты расширения. Перенос осуществляется настройкой соответствия объектов основной конфигурации объектам расширения.
5 стартмани
05.10.2020 13343 81 biz-intel 71
Универсальная выгрузка/загрузка данных для отличающихся конфигураций (JSON, Такси+ОФ) Промо
Простой перенос через JSON данных между двумя базами 1С (документов, справочников, ПВХ, ПВР, счетов). Аналогична произвольной выгрузке в типовой "Выгрузка/загрузка XML", но может использоваться для отличающихся конфигураций. Подходит для любых пар баз с любым интерфейсом (управляемый + обычный). Без настроек. Не требует идентичности конфигураций и платформ. При переносе типы данных сопоставляются по наименованиям метаданных, объекты и ссылки по UID.
1 стартмани
22.10.2014 230915 4478 ekaruk 189
Улучшенная обработка универсального обмена данными в формате XML (УФ)
Улучшенная обработка "Универсальный обмен данными" с полноценными возможностями СКД для выборки данных (не только для отборов).
1 стартмани
23.06.2020 16082 170 Lem0n 1
Панель команд текущего объекта (документа, справочника и т.д.) со следующим возможностями: Редактор реквизитов, таблиц и движений текущего объекта, Анализ прав доступа к текущему объекту, Поиск ссылок на объект с отборами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Реализована всплывающей панелью в форме объекта. Подключается как расширение конфигурации (*.cfe) либо отдельными обработками.
2 стартмани
01.05.2020 17767 118 sapervodichka 3
Яндекс сервисы [Расширение]
Расширение для работы с Яндекс-сервисами (предиктор,переводчик,проверка орфографии)
1 стартмани
24.10.2019 17971 11 noprogrammer 12
Обработка "Распознавание штрихкода с помощью утилиты Zbar" для Документооборот ред. 2 Промо
В связи с тем, что стандартный функционал программы «Документооборот» ред. 2.1 дает возможность распознавания штрихкодов только форма EAN-13, данная обработка - альтернативный способ для распознавания штрихкода в программе 1С: Документооборот ред. 2 с помощью утилиты Zbar, которая распознает в том числе и в формате Code 128 (один из стандартных штрихкодов кодирования документов, например, «Управление торговлей» ред. 11), а также с возможностью поэтапно проследить все действия от распознавания до прикрепления к документу или простой загрузки в каталоги файлов в базе 1С.
5 стартмани
05.09.2016 30459 187 SEOAngels 11
Работа с файлами (обычная и управляемая форма)
Нужно загрузить файл с клиента на сервер или же, наоборот, файл загрузить с сервера на клиент, а впридачу все это на web-клиенте, да еще и асинхронно? Нет ничего проще, читай далее, как это сделать!
1 стартмани
10.06.2019 48335 261 Xershi 78
Электронная таблица средствами 1С (Версия 2.0)
Функционал электронной таблицы для программ на платформе 1С реализован на основе табличных документов. Функционал реализован в виде обработки. Большую часть формы обработки занимают листы (закладки) с табличными документами, которые выполняет роль электронной таблицы. Листы могут быть добавлены, удалены или переименованы. Ограничение по количеству листов определяется возможностью платформы. В формулах электронной таблицы можно использовать любые языковые конструкции, процедуры и функции 1С, ссылки на другие ячейки электронной таблицы расположенные в том числе и на других листах. Допустимо обращаться к ячейкам электронной таблицы по имени именованной области. В случае использования в формулах электронной таблицы данных из самой таблицы пересчет зависимых ячеек с формулами производится автоматически. Электронную таблицу можно сохранить в файл.
В данной статье речь пойдёт о причинах возникновения фатальной ошибки «Ошибка разбора XML» и способах устранения данной неполадки. Также будет дана инструкция не по устранению, но «обходу» ошибки, то есть действиям на опережение.
XML (с английского – extensible markup language – расширяемый язык разметки) – это язык разметки, который рекомендует Консорциум Всемирной паутины. Обычно язык разметки XML служит для описания документации, соответствующего типа, а также описывает действия соответствующих процессоров. Расширяемый язык разметки имеет довольно простой синтаксис, поэтому используется по всему миру, чтобы создавать и обрабатывать документацию программным способом. Он создавался именно для использования в Интернете. XML назвали именно расширяемым языком разметки, так как в нём нет фиксации разметки, которая содержится внутри документа, а именно: программист может создавать любую разметку, а ограничения будут встречаться лишь в синтаксисе.
2. Устранение Ошибки разбора XML в 1С
«Ошибка разбора XML» возникает исключительно в тонком клиенте 1С. Также стоит отметить, что «Ошибка разбора XML» также довольна схожа с ошибкой по формату потока, которая возникает в толстом клиенте. Обычно в 1С «Ошибка разбора XML» возникает по причине наличия кэша метаданных. И если очистить кэш, то ошибка будет устранена. Выглядит окно с ошибкой, а также окно с комментариями от технической поддержки следующим образом:
Рис. 1 Окно Ошибки разбора XML в 1С
XML данные читаются по потокам, так что в каждый из моментов времени объект «сосредоточен» в некотором узле XML. Из-за этого также может возникать фатальная ошибка «Ошибка разбора XML». Для того чтобы её устранить, можно вызвать функцию «ИсключениеЧтенияXml», как показано на скриншоте примера ниже:
Рис. 2 Вызов функции ИсключениеЧтенияXML для устранения Ошибки разбора XML в 1С
3. «Обход» Ошибки разбора XML в 1С
Данные два способа (очистка кэша метаданных и функция «ИсключениеЧтенияXml») – не все возможные варианты устранения ошибки разбора XML. Далее рассмотрим нестандартный подход, который позволит избежать ошибки еще до её возникновения.
Для наглядности будем работать в конфигурации 1С:Бухгалтерия предприятия, одной из наиболее распространенных программ фирмы 1С. У многих людей, которые пользуются программой 1С:Отчётность появляются неполадки при попытках открыть данные/файлы от налоговой. Чтобы открыть такой файл повторяем следующие действия:
· Переходим по пути: «Настройки 1С:Отчётности → Журнал обмена с контролирующими органами», как показано на скриншоте ниже:
Рис. 3 Настройка 1С Отчетности
· Далее кликаем на «Запросы» и выделяем ту выписку, которую не было возможности открыть из-за ошибки, как продемонстрировано на скриншоте ниже:
Рис. 4 Выбор выписки с Ошибкой разбора XML в 1С
Рис. 5 Стадия отправки документа с Ошибкой разбора XML в 1С
Рис. 6 Результат обхода Ошибки разбора XML в 1С
· Всё успешно открылось, а ошибка даже не успела возникнуть.
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Программирование в 1С [1] => 1С:Бухгалтерия [2] => 1С:Управление производственным предприятием [3] => 1С: Розница [4] => 1С: CRM [5] => 1С: Управление торговлей [6] => Бюджетирование [7] => СКД [8] => 1С: Конвертация данных [9] => Администрирование 1С [10] => Конвертация данных [11] => Лицензии 1С [12] => Оптимизация [13] => 1С: Документооборот [14] => 1С: ERP [15] => Транспортная логистика [16] => Техническое задание [17] => Продажи [18] => Ценообразование [19] => Планирование [20] => MS SQL Server [21] => Полезные обработки [22] => МСФО [23] => Отчеты в 1С [24] => XML [25] => Внедрение ERP [26] => Перенос данных [27] => Торговое оборудование [28] => РСБУ [29] => 1С:Управление корпоративными финансами [30] => 1С: Колледж [31] => 1С: Аренда и управление недвижимостью [32] => Финансовый учет ) -->
А какими источники знаний ты уже использовал, чтобы дойти до такого? Ну, чтобы нам тут не повторяться и не посылать тебя в них?
конкретно этот пример взят отсюда так же пробовал получать схему иначе функцией то правильней т.к. схема может быть в макете как часть конфигурации, но результат тот же
Понятно. 1С при чтении по умолчанию не проверяет тип читаемого и не проводит валидации данных по схеме. При невозможности определить тип тебе возвращается anyType. Это сделано для возможности поточного чтения файлов с изменением логики по ходу обработки. Для изменения этого поведения надо изменить параметры чтения при открытии.
ты прикалываешься, писать свое приложение на шарпе, вязать его с 1С и для чего? для того что бы проверить валидность, мдааа, мы не ищем легких путей ) "который не может в СП сможет в msdn" не может в СП что? Представь себе с msdn в свое время пришлось поработать много
11+ Я уде много лет использую Для того, что бы использовать мощь нет, для того, что нет в 1С. И ничего в этом смешного не вижу. Я только постоянно вижу как люди едят кактусы и ищут сложные пути
, но например используя ты можешь отлавливать ошибки и отсылать их программисту или поставщику. Мало того, накрученного ничего нет, так как более мощный инструмент
не надо ездить по мозгам и сувать куда ни попадя. ничего эти обертки не могут. все им скармливать надо вручную. как было выяснено эти обертки для 77 даже программное проведение/изменение документа на клюшках самостотяельно отлдовить не могут (насколько я понял в меру своей неразумности)
Это у тебя уже прямо классическое "как пристрелить себе ногу" на ассемблере. "Просто берём пистолет и прострелеваем себе ногу. Перед этим заново изобретаем порох, гильзу, пулю, затвор, пистолет, кости, сухожилия, мясо, ногу и все остальное. Для женской ноги - повторяем все с нуля"
Я хочу? Ты точно меня не с кем не путашь? Но, пожалуй, на твоё классическое "сперва добейся" отвечу. Я не делаю оповещение об изменении, мне это не требуется. У меня никто не сидит, внимательно глядя в экран watsapp в ожидании срочного вызова - рота спецназа, на выезд! Иванова изменила номенклатуру, быстрей, быстрей, она может скрыться! Просто ты со своими попытками продавать машинки для стрижки волос в носу, которые обладают кучей возможностей и вообще мимими, в каждой теме уже примелькался.
А по поводу того, что примелькался то я советую работоспособные примеры. В чем криминал? Почему это тебя так бесит?
Читайте также: