Имя: Пароль:
1C
 
Проверка XML валидности схемы XML
0 Яплакал
 
04.01.16
14:50
Что-то не выходит у меня "каменный цветок"
Собственно мои потуги:

  СхемаXML = Новый СхемаXML;
  СхемаXML.РасположениеСхемы = "Схема.xsd";
  
  СхемыXML = Новый НаборСхемXML;
  СхемыXML.Добавить(СхемаXML);
  
  Фабрика = Новый ФабрикаXDTO(СхемыXML);
  
  ЧтениеXML = Новый ЧтениеXML;
  ЧтениеXML.ОткрытьФайл("файл.xml");
  
  Данные = Фабрика.ПрочитатьXML(ЧтениеXML);


Схема и xml файлы разные, но файл прекрасно читается и Данные <> неопределено
1 Записьдампа
 
04.01.16
15:07
А какими источники знаний ты уже использовал, чтобы дойти до такого? Ну, чтобы нам тут не повторяться и не посылать тебя в них?
2 Яплакал
 
04.01.16
15:16
(1) конкретно этот пример взят отсюда

v8: Чтение xml по схеме xsd

так же пробовал получать схему иначе

Функция ПолучитьСхемуИзФайла()
  ЧтениеXML = Новый ЧтениеXML;
  ЧтениеXML.ОткрытьФайл("схема.xsd");
  
  ПостроительDOM = Новый ПостроительDOM;
  ДокументСхемыDOM = ПостроительDOM.Прочитать(ЧтениеXML);
  
  ПостроительСхемы = Новый ПостроительСхемXML;
  СхемаXML = ПостроительСхемы.СоздатьСхемуXML(ДокументСхемыDOM);
  
  Возврат СхемаXML;
КонецФункции

функцией то правильней т.к. схема может быть в макете как часть конфигурации, но  результат тот же
3 Записьдампа
 
04.01.16
15:59
(2) Понятно...
1С при чтении по умолчанию не проверяет тип читаемого и не проводит валидации данных по схеме. При невозможности определить тип тебе возвращается anyType. Это сделано для возможности поточного чтения файлов с изменением логики по ходу обработки.
Для изменения этого поведения надо изменить параметры чтения при открытии.
4 Serginio1
 
04.01.16
16:21
(0) Создать класс с событием возникающим при обнаружении ошибкт и использовать
https://msdn.microsoft.com/ru-ru/library/ms162371(v=vs.110).aspx

http://catalog.mista.ru/public/417830/
5 Serginio1
 
04.01.16
16:26
А вот используя ValidationEventHandler  не надо и свой класс городить
https://msdn.microsoft.com/ru-ru/library/3740e0b5(v=vs.110).aspx
6 Serginio1
 
04.01.16
16:27
событие XmlReaderSettings ValidationEventHandler
7 Записьдампа
 
04.01.16
16:38
(4) Ты серьёзно думаешь, что человек, который не может в СП сможет в msdn?
8 Рэйв
 
04.01.16
16:51
У меня валяется обработка на инфо...Может пригодится
http://catalog.mista.ru/public/286257/
9 Serginio1
 
04.01.16
16:54
(7) Если действовать по инструкции http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip

то думаю ничего сложного нет
10 Яплакал
 
04.01.16
16:59
(9) ты прикалываешься, писать свое приложение на шарпе, вязать его с 1С и для чего? для того что бы проверить валидность, мдааа, мы не ищем легких путей )

(7)
"который не может в СП сможет в msdn"
не может в СП что? Представь себе с msdn в свое время пришлось поработать много
11 Serginio1
 
04.01.16
17:13
(10) Не надо ничего псать на враждебном для тебя языке, нужно использовать классы .Net на родном для тебя 1С.
Я про шарп ни слова не сказал. пиши хоть на IronPython e

Так в чем проблема. Все очень просто.
12 Serginio1
 
04.01.16
17:23
11+ Я уде много лет использую http://catalog.mista.ru/public/238584/
Для того, что бы использовать мощь нет, для того, что нет в 1С.
И ничего в этом смешного не вижу. Я только постоянно вижу как люди едят кактусы и ищут сложные пути
13 Serginio1
 
04.01.16
17:26
И здесь http://catalog.mista.ru/public/434345/
человек не считает смешным для преобразования строк в даты
использовать библиотеки Net
14 Яплакал
 
04.01.16
17:34
(11) овчинка выделки не стоит, есть нюансы, не хочу вдаваться в них
15 Записьдампа
 
04.01.16
17:38
(10) Ну там вообще-то поиск есть. Который  выводит на параметры метода ОткрытьФайл чтения xml
16 Serginio1
 
04.01.16
17:46
(14) Овчинка как стоит. Просто ты получаешь подробности об ошибках
https://msdn.microsoft.com/ru-ru/library/system.xml.schema.validationeventargs(v=vs.110).aspx
17 Яплакал
 
04.01.16
18:32
(15) да спасибо, все работает.
(16) ну вот видешь все оказывается можно, а ты навертел некрутил лишнего
18 Serginio1
 
04.01.16
22:10
(17) Есть ОткрытьФайл(<ИмяФайлаXML>, <Параметры>, <НаборСхемXML>, <Кодировка>)

, но например используя (16) ты можешь отлавливать ошибки и отсылать их программисту или поставщику.
Мало того, накрученного ничего нет, так как более мощный инструмент
19 Злопчинский
 
04.01.16
22:33
(18) не надо ездить по мозгам и сувать куда ни попадя. ничего эти обертки не могут. все им скармливать надо вручную. как было выяснено эти обертки для 77 даже программное проведение/изменение документа на клюшках самостотяельно отлдовить не могут (насколько я понял в меру своей неразумности)
20 Serginio1
 
04.01.16
23:11
(19) Пропиши в ПриЗаписи или ОюработкаПроведения и отсылай кому угодно события по ВэбСокетам. Или ты хочешь, что бы магическим способом все было? Если SQL то можно подписаться на события SQL без изменения кода в 1С.
Кстати для 7.7 моя обертка вообще свежий воздух.
А вообще повеселил. Сравни возможности .Net и 1С.
21 Serginio1
 
04.01.16
23:21
(19) Для DBF можно повесить событие на изменение файлов
22 Serginio1
 
04.01.16
23:27
Или использовать изменение в ЖР запоминать последнее время и парсить его. Так, что все можно умеючи
23 Записьдампа
 
05.01.16
01:38
(21) Это у тебя уже прямо классическое "как пристрелить себе ногу" на ассемблере. "Просто берём пистолет и прострелеваем себе ногу. Перед этим заново изобретаем порох, гильзу, пулю, затвор, пистолет, кости, сухожилия, мясо, ногу и все остальное. Для женской ноги - повторяем все с нуля"
24 Serginio1
 
05.01.16
09:46
(23) Ну ты же хочешь, что бы в коде не было изменений. Вот я тебе и предлагаю решение. А то, что есть мгновенные сообщения пользователям то ты это просто пропустил.

Как ты делаешь оповещение об изменении?
Вот у меня есть готовое решение
http://catalog.mista.ru/public/434771/
покажи своё. При этом у меня есть решения и на Whats App с отправкой с сервера и получение сообщений на сервере

И прекрасно работает. Люди довольны
25 Записьдампа
 
05.01.16
12:01
(24) Я хочу? Ты точно меня не с кем не путашь?
Но, пожалуй, на твоё классическое "сперва добейся" отвечу. Я не делаю оповещение об изменении, мне это не требуется. У меня никто не сидит, внимательно глядя в экран watsapp в ожидании срочного вызова - рота спецназа, на выезд! Иванова изменила номенклатуру, быстрей, быстрей, она может скрыться!

Просто ты со своими попытками продавать машинки для стрижки волос в носу, которые обладают кучей возможностей и вообще мимими, в каждой теме уже примелькался.
26 Serginio1
 
05.01.16
12:38
(25) Я не продаю. Я раздаю бесплатно и при этом делюсь своим опытом.
А сообщения нужны например для агентов на андроидах, айфонах.Классический выход из 1С итд.
Кстати это не только мессенджер, но и аналог вэб сервиса только на клиенте. Например можно подготавливать данные на клиенте, а на ТСД обмениваться данными с этим клиентом.

Я просто не пойму твоей ненависти к моей разработке. Чем она тебя так бесит?
А спутал я тебя с   Злопчинский. Вы оба на З. Прошу прощения.
27 Serginio1
 
05.01.16
12:40
А по поводу того, что примелькался то я советую работоспособные примеры. В чем криминал? Почему это тебя так бесит?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn