gifts2017

Нет пророка в отечестве своем. Или любите СП - источник знаний

Опубликовал Валентин Бомбин (so-quest) в раздел Программирование - Практика программирования

Вопрос создания ФабрикиXDTO на лету оказался на удивление востребованным. Потряс старые разработки и оформил в виде статьи. Никаких божественных откровений - просто пример к синтаксис-помощнику

Построение  XSD схемы на лету или любите СП источник знаний

В статье показаны 2 простых варианта создания схемы «на лету».
Приведенный код не следует рассматривать как законченное решение, скорее как расширеннее для синтаксис-помощника.
Код приводиться «как есть», я не несу никакой ответственности если что-то у вас поломается или пойдет не так.

Вариант №1
Используется СоздатьФабрикуXDTO. В архиве файл Вариант-1.epf

Вариант 2
Используется конструктор для ФабрикаXDTO В архиве файл Вариант-2.epf

Есть еще вариант №3 – основан на построении схемы – но мне этот вариант никогда был не интересен, поэтому оставим его добровольцам.



Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Обработки
.zip 10,06Kb
04.02.14
20
.zip v 1.0 10,06Kb 20 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Osiris_ (StaticUnsafe) 05.02.14 13:57
2. Валентин Бомбин (so-quest) 05.02.14 22:48
Да не за что. Приходите еще :)
3. Сергей Гуков (SirYozha) 06.02.14 11:54
Не хочу качать обработки, вот если бы в статью код вынесли...
4. Валентин Бомбин (so-quest) 06.02.14 12:15
все вынесено до нас. в синтаксис-помощник
5. Анатолий Бритько (headMade) 06.02.14 16:04
хотел задать пару вопросов :
1. (не по существу). Зачем в обработках прописывается "//@version: Версия 3 (4 февраля 2014 г. 18:50:38)". Это как-то автоматически обрабатывается или это только для своего визуального контроля ????

2. Как в обработке 1 была сделан макет "xsd_man"?

3 Если приходят файлы с заголовком

<?xml version="1.0" encoding="windows-1251"?>
<data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

то как принято вставлять строку xmlns="http://пример1" ???
или как вообще обрабатывать такие файлы?
6. Валентин Бомбин (so-quest) 06.02.14 22:07
(1) Это скрипт к снегопату. Проставляет версию и дату последнего изменения. Автоматически не обрабатывается (зачем такое было нужно? обработка - это не только код, но и форма, но и макеты), Кстати, пользуясь случаем - Александру огромное человеческое спасибо за то что раздает бесплатные версии и отвечает на вопросы
(2) Создан пакет в 1С потом экспортирован в файл. Затем содержимое файла сохранено в макете
(3) В общем случае - такого быть не должно. Но жизнь несовершенна, поэтому сперва читаем хмл, затем вставляем строку, затем получившуюся строку снова скармливаем в ЧтениеХМЛ Такой изврат мне был нужен всего 1 раз за все время работы, но думаю что существуют и другие способы (но там надо уже DOM крутить, что лениво)
7. Яков Коган (Yashazz) 09.02.14 14:10
Простите, автор, в статье описано именно создание xsd-схемы "на лету", или всего лишь создание фабрики и/или объекта XDTO с её помощью?
8. Валентин Бомбин (so-quest) 09.02.14 19:26
а вы точно всю статью прочли? какое из слов у вас вызвало непонимание?
9. Яков Коган (Yashazz) 10.02.14 11:07
(8) Я никакой статьи не вижу. Я вижу 2 абзаца описания и обработку, которую предлагается скачать. Статья-то где?
10. Валентин Бомбин (so-quest) 10.02.14 12:58
Исходя из "в статье описано именно создание xsd-схемы "на лету", или всего лишь создание фабрики и/или объекта XDTO с её помощью? " я предположил что вы прочли статью. Какую - не знаю. Конкретно здесь - немного расширенный пример к синтаксис помощнику. Он находиться в обработке приложенной к заметке.
11. Яков Коган (Yashazz) 10.02.14 23:23
(10) Автор, цитата из вашей публикации: "Построение XSD схемы на лету или любите СП источник знаний". Так? Так. Ниже сказано про создание фабрики. Поэтому подозреваю, что какая-то часть текста лишняя, или я чего-то сильно не понял. Кроме того, в СП нет и не было примеров построения xsd "на лету", по крайней мере в 8.2
12. Валентин Бомбин (so-quest) 11.02.14 00:15
И часть лишняя и, и примеров не было и фигня весь этот хмл, СП и 1С :)

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

И да - не моя вина, что 1С придумала свои обозначения для уже существующих терминов. Вот и путаюсь иногда.


14. Вадим Коржав (KRJ) 12.02.14 09:18
Вот эта тема! Так можно назвать каждую вторую публикацию...
15. Яков Коган (Yashazz) 12.02.14 16:40
(12) Автор, прошу не паясничать и не переходить на личности. Я задал вполне чёткий предметный вопрос, интересующий, по идее, каждого читателя - "о чём публикация"? Повторяю свой вопрос и прошу внятно ответить. Публикация про xsd или про фабрики XDTO?
16. Валентин Бомбин (so-quest) 13.02.14 09:05
Если бы вам был нужен ответ - вы бы уже посмотрели код. Раз этого не произошло - значит ответ вам не нужен. Но что бы не быть невежливым и не оставлять вопросов без ответов - "Четкий и предметный ответ - все в обработке - открываем и смотрим."

17. Яков Коган (Yashazz) 13.02.14 10:46
(16) Т.е., чтобы получить ответ, надо потратить sm и скачать публикацию? Т.е. вы предлагаете кота в мешке?
18. Евгений Сосна (pumbaE) 13.02.14 11:16
(17) Yashazz,
Вариант №1
Используется СоздатьФабрикуXDTO. В архиве файл Вариант-1.epf
Вариант 2
Используется конструктор для ФабрикаXDTO В архиве файл Вариант-2.epf
Есть еще вариант №3 – основан на построении схемы – но мне этот вариант никогда был не интересен, поэтому оставим его добровольцам.

имхо ответ дан в описании.
19. Валентин Бомбин (so-quest) 13.02.14 11:21
Если для вас это единственный путь - то да. Если нет - то нет.
HINT : иногда адрес зеркала указывается в личной карточке :)

20. Яков Коган (Yashazz) 13.02.14 11:42
(18) Тогда фраза "Построение XSD схемы на лету или любите СП источник знаний" совершенно не в тему.
(19) Мы сейчас конкретно на ИС и говорим о действиях средствами ИС. И стартмани за скачанное вслепую тоже окажутся на ИС. Считаю, за кота в мешке, т.е. за уход от ответа (то ли по незнанию, то ли по нежеланию ответить), можно лепить минус.
21. Валентин Бомбин (so-quest) 13.02.14 11:49
Да ты и так его поставил :) Успокойся уже.
22. Борис (soap) 13.02.14 12:09
Прошу прощения! Это обработка или статья? Если статья то текст в студию !!!
23. Валентин Бомбин (so-quest) 13.02.14 12:19
Сверху написано -
Тип: Внешний отчет (ert,erf)
Вывод - это ни обработка ни статья, а отчет. причем внешний

Виноват перед всеми пользователями ИС - неверно выбрал классификатор. Согласен понести справедливое, но заслуженное наказание. За то что всех ввел в заблуждение - приношу извинения.

К сожалению желания исправлять конкретно эту публикацию - не имею. Поэтому - желающие 1. пофлудить,
2. высказать свое фи и пхе,
3. похвастаться "ежедневным тяжёлым освоением каждой детали личным опытом, пробами и ошибками, вдобавок вообще без какой-либо методической литературы от 1С, только общими сведениями про xml как таковой в сети"
4. рассказать о своих професиональных 22 см -
ВЕЛКАМ



24. Яков Коган (Yashazz) 13.02.14 15:31
Таки скачал. Теперь стало ясно, почему мы друг друга не поняли. Да, формально в опубликованном epf действительно есть создание фабрики по схемам и работа со схемами, но совсем простая - схемы элементарно читаются из текстового макета. Понятно, что и макет можно "нагнать" текстовыми операциями, но меня интересовало настоящее динамическое создание xsd, работа с объектом СхемаXML. А фиксированную схему сунуть в макет - да, несложно, и воспользоваться СП для этого - тоже, и в ряде задач этого более чем достаточно.
25. Валентин Бомбин (so-quest) 13.02.14 15:35
Есть еще вариант №3 – основан на построении схемы – но мне этот вариант никогда был не интересен, поэтому оставим его добровольцам.

а еще в файле Вариант-2.epf та же схема строиться программно

26. Сергей Смирнов (Serginio) 12.01.16 16:04
Нечто подобное делал
http://www.forum.mista.ru/topic.php?id=669645

Если нет предубеждения то для создания схемы можно воспользоваться более мощным инструментом
https://msdn.microsoft.com/ru-ru/library/bs8hh90b(v=vs.110).aspx
27. Валентин Бомбин (so-quest) 13.01.16 14:58
28. Сергей Смирнов (Serginio) 14.01.16 10:44
Если знаешь Net, то проще сгенерить описание классов, перечислений и динамически скомпилировать
http://infostart.ru/public/417830/

Затем используя XsdDataContractExporter создать схему.

https://msdn.microsoft.com/ru-ru/library/system.runtime.serialization.xsddatacontractexporter(v=vs.110).aspx
29. Сергей Смирнов (Serginio) 14.01.16 10:47
Кстати динамическое создание схемы прекрасно подошло бы для КД. Суть то там таже создается описание класса и алгоритмы конвертации (сериализации)
При этом если выгружать все в обработку используя схему проще отлаживать алгоритмы.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа