gifts2017

двухПальцевый writer XML …

Опубликовал Александр Шишкин (Шёпот теней) в раздел Обмен - Обмен через XML

Данная обработка позволяет записывать отдельные документы или элементы справочников (со всеми реквизитами и табличными частями) в XML-файл, который впоследствии можно использовать для обмена данными. Всё очень просто. Прочитать полученный файл можно с помощью http://infostart.ru/projects/5460/

При небольшой доработке можно записывать группами документов или целыми справочниками.

При небольшом умении можно, используя обработку: http://infostart.ru/projects/5460/ , вставлять из полученного файла в базу данных записанные документы или справочники.

 
Обработка не сверкает интеллектуальными мыслями и действиями. Всё очень просто. При необходимости добавляете сами, что нужно для обмена… Я использую её для обмена документами между филиалами, справочники которых ну никак не согласованы …

Будет полезна как пример создания и чтения XML-файлов. Поэтому оставил кнопку «Прочитать» и некоторые комментарии в коде.

Должна работать во всех 8-рочных конфигурациях.


 ... ЗА дополнения, конструктивную критику, сообщения о замеченных неточностях или ошибках - буду благодарен ...

Желающих продолжить работу над данным проектом прошу присоединяться.

с Уважением Шёпот теней …

… вОт …

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

Наименование Файл Версия Размер Кол. Скачив.
двухПальцевый writer XML …
.1251224500 91,72Kb
25.09.09
513
.1251224500 91,72Kb 513 Скачать

См. также

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

Комментарии

1. Александр Медведев (anig99) 25.08.09 22:28
а говорил, что оформление ничто (:
2. Александр Шишкин (Шёпот теней) 25.08.09 22:52
(1) ... ))) .. ну я... ну, это... нууу... пытаюсь... ммм... эсперементирую ... )))

... корпоративный стиль вырабатываю ... хм... хм... вЕрнее пытаюсь ... начиная с "ВоркингТейбл ..." ...

... спАсибо ... удачи ... вОт ...
3. Дмитрий Воробьев (vde69) 26.08.09 14:21
а в чем смысл? привожу свою реализацию созданую за 15 минут пару лет назад... Или Вы идете тропою Фиксина? (постите каждые 3 строчки)

Процедура ЗагрузитьСкиныНажатие(Элемент)
ИмяФайла = СокрЛП(ЭлементыФормы.ПолеИмениФайлаЗагрузить.Значение);

Если ИмяФайла = "" Тогда
Предупреждение("Не задано имя файла выгрузки");
Возврат;
КонецЕсли;

Режим = РежимДиалогаВопрос.ДаНет;
Если Вопрос("Выполнить ПОЛНУЮ загрузку web интерфейса?", РежимДиалогаВопрос.ДаНет, 0) = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;

ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайла);
Если Не ЧтениеXML.Прочитать() Или
ЧтениеXML.ТипУзла <> ТипУзлаXML.НачалоЭлемента Или
ЧтениеXML.ЛокальноеИмя <> "Скины" Или
ЧтениеXML.URIПространстваИмен <> "HelpDesk-1c_1.0" Тогда
Предупреждение("Неверный формат файла выгрузки", 10, "Ошибка загрузки!!!");
Возврат;
КонецЕсли;

Если Не ЧтениеXML.Прочитать() Тогда
Предупреждение("Неверный формат файла выгрузки", 10, "Ошибка загрузки!!!");
Возврат;
КонецЕсли;

НачатьТранзакцию();

Попытка
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
ЗаписанноеЗначение = ПрочитатьXML(ЧтениеXML);
ЗаписанноеЗначение.ОбменДанными.Загрузка = Истина;
ЗаписанноеЗначение.Записать();
КонецЦикла;
Исключение
Сообщить("При записи произошла ошибка, обработка отмененна");
ОтменитьТранзакцию();
Возврат;
КонецПопытки;
ЗафиксироватьТранзакцию();

ЧтениеXML.Закрыть();
КонецПроцедуры

Процедура ВыгрузитьСправочник(Справочник="", ТекФайлXML)
Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ * ИЗ Справочник."+ Справочник);
Выборка = Запрос.Выполнить().Выбрать();
Пока выборка.Следующий() Цикл
Объект = выборка.Ссылка.ПолучитьОбъект();
ЗаписатьXML(ТекФайлXML, Объект, НазначениеТипаXML.Явное);
КонецЦикла;
КонецПроцедуры

Процедура СохранитьСкиныНажатие(Элемент)

ИмяФайла = СокрЛП(ЭлементыФормы.ПолеИмениФайлаСохранить.Значение);

Если ИмяФайла = "" Тогда
Предупреждение("Не задано имя файла выгрузки");
Возврат;
КонецЕсли;

ТекФайлXML = Новый ЗаписьXML;
ТекФайлXML.ОткрытьФайл(ИмяФайла);
ТекФайлXML.ЗаписатьОбъявлениеXML();
ТекФайлXML.ЗаписатьНачалоЭлемента("Скины", "HelpDesk-1c_1.0");

ВыгрузитьСправочник("ШаблоныСтраниц", ТекФайлXML);
ВыгрузитьСправочник("Замены", ТекФайлXML);
ВыгрузитьСправочник("ШаблоныПисем", ТекФайлXML);

ТекФайлXML.ЗаписатьКонецЭлемента();
ТекФайлXML.Закрыть();
КонецПроцедуры

4. Александр Шишкин (Шёпот теней) 26.08.09 15:40
(3) обЪясните чем ваша http://infostart.ru/blogs/718/ с пятью процедурами которые везде описаны отличается от вашего высказывания: " ... а в чем смысл? привожу свою реализацию созданую за 15 минут пару лет назад... Или Вы идете тропою Фиксина? (постите каждые 3 строчки) ..." ...

... я вам, что жить мешаю ... ?

... вот ...
5. Андрей Пастухов (Minotavrik) 26.08.09 15:58
Есть выгрузка, а где загрузка?
6. Александр Рытов (Арчибальд) 26.08.09 16:08
Вот захотел отплюсовать - и отплюсую. ВоТтАкВот.
7. Дмитрий Воробьев (vde69) 26.08.09 16:17
(4) да не мешает мне, просто учитывая что в 1с есть серилизация XML все тонкости реализации сводятся к 3-м строчкам (в отличие от екселя),

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

зы
я выкладывал не обработку а блог, то-есть пример процедур и функций... как я понимаю разработка (а имено в этом разделе сейчас лежит САБЖ) это что-то более менее полезное и значимое. На мой взгляд САБЖ явно не тянет на разработку, наверно как пример он полезен кому-то, но не более

зызы
я то-же раньше выкладывал некоторые мини поделки, потом мне стало стыдно и я их удалил.
8. Александр Шишкин (Шёпот теней) 26.08.09 16:19
(5) ... пишу же в описании: "... При небольшом умении можно используя обработку: http://infostart.ru/projects/5460/ вставлять из полученного файла в базу данных записанные документы или справочники. ..." ...

... хотя "загрузку" скоро сделаю ...

... мне интересно собрать критические зАмечания, дОбрые пОжелания и умные советы ...

(6) ... слов нЭт ... одна блАгодарность ... ))) вотТАКвот ...

9. Александр Шишкин (Шёпот теней) 26.08.09 16:29
(7) ... я всегда благодарен тем кто не мудрствуюЛукаво пишет вещи простые и неОбходимые ...

... конечно можно делать "вЫчурные" вещи ... ставить "кучу" галочек-флажочков-поляВвода ... но тогда уже надо изучать сам "предметИспользования" а не результат его использования ...

... моё мнение по поводу ХМЛ вАААще, совпадает с мнением находящимся здесь: http://extrapro.ru/udxml.html

... все о нЁм говорят в восхитетельной степени но никто им не пользуется ...

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

... нет! ... не "живой" форматец ...

... вОООт ...
10. Александр Шишкин (Шёпот теней) 26.08.09 16:35
(9)+ по поводу простоты написания и актуальности использования - наберите в "поиск" сначала XLS а потом XML .... думаю результат очевиден... не верите..? попробуйте ...
11. Дмитрий Воробьев (vde69) 26.08.09 16:48
(9) почему, я например XML уважаю, и использую (например в моем примере это смена скинов веб интерфейса), но не надо делать из него понацею, он хорош и плох одновременно. И Ваше желание его изучать и пропагандировать безусловно дает поставить Вам ПЛЮС (но не за разработку а за коментарии).

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

зы
Давайте вместо 10 обработок с 1 кнопкой сделаем одну с выпадающим меню и 1 кнопкой.

например вот http://infostart.ru/projects/2217/ достойная обработка, а ведь можно было сделать 4 разных и было-бы хуже


12. Александр Шишкин (Шёпот теней) 26.08.09 16:58
(11) ... мы начинаем спорить о вкусах ... а это чревато ...

... каждый пишет по своему ... кто всё собирает в одну обработку а кто наоборот ... разные мотивы подразумевают и разное исполнение ...

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

... пусть будет много и разных обработок и мнений ...

... вотМоёМнение ...
13. Александр Шишкин (Шёпот теней) 26.08.09 17:06
(12) ... + в этой обработке не столько важен формат ХМЛ сколько возможность собрать информацию об объекте, скажем так, в "автоматическом режиме", записать и далее использовать по мере надобности ...

... мне это важно для обмена между разными не только конфигурациями но и несогласованными справочниками, об этом я уже писал ... а формат ХМЛ не смотря на все свои "ТРИаккорДА" вЕЕЕсьма проблематичен: см. ссылку в (7) ...

... вотВоообщем ...
14. Андрей Пастухов (Minotavrik) 26.08.09 17:26
Было бы круто, если бы доделал такую фишку. Чтобы выгруженный объект грузился в любую базу, при том условии, если каких то реквизитов не хватает в базе приемнике, процедура загрузки бы их тупо игнорировала и грузила, то что есть (совпадающие реквизиты).
15. Дмитрий Воробьев (vde69) 26.08.09 17:49
(14) это не ново, такой режим есть почти во всех загрузчиках (например у меня в обмене справочниками).
16. Валентин Бомбин (so-quest) 26.08.09 17:50
врайтеров этих - как собак нерезаных... и все пишут справочники/документы...
Для дальнейшего развития идея - структуры/ТЗ/Соответствия и прочую чешую тоже можно писать в хмл. Доделал бы эту фичу.
17. Александр Шишкин (Шёпот теней) 26.08.09 19:14
(14) ... нуууу... в принципе мои "рабочиеЗАгрузчики" так и делают ... просто то, что хорошо в частном случае иногда проблематично в "универсальном" ...

... в целом понял и (5) и (14) ...

(15) ... как всегДА ... хммм... никто не говорит об открыти нового ...

... предлагаю снЯть вопрос формы и содержания, предлагаю остановитЬся на разнОООбразии ...

(16) ... не совсем понял: "... идея - структуры/ТЗ/Соответствия ..." поясните ..?

... вОт ...
18. Валентин Бомбин (so-quest) 26.08.09 20:49
Что непонятного? Дана структура - сохранить в xml и прочитать оттуда же. То есть то что делает ЗначениеВСтрокуВнутр() только не в строку, а в xml.
19. Валентин Бомбин (so-quest) 26.08.09 21:08
сделаешь - свистни. скачаю себе.
20. Александр Шишкин (Шёпот теней) 26.08.09 21:20
(18) ... ммм ... структура - упорядоченные данные - это есть некий массив или группа массивов... например:

если взять любой документ в представлении это две таблицы:
1. Шапка: двух-колоночная таблица "Реквизит-Данные" или односторочная таблица с колонками (кому как нравится) ... (частный случай втрого) ...
2. ТабличныеЧасти: много-колоночная таблица "Данных" (повторяющийся вид первого) ...

все остальные структуры в 1С это либо первое либо второе ...

... мне не понятно какую такую цель преследует : "... идея - структуры/ТЗ/Соответствия и прочую чешую тоже можно писать в хмл ..."

... поясните на каком-нибудь примере ...
21. Валентин Бомбин (so-quest) 27.08.09 10:36
Во первых структура - ну никак не массив. Более того 1С не гарантирует что будут последовательно в памяти идти поля структуры.
Во вторых - задача не о документах и справочниках. Задача об универсальных коллекциях.
Пример как я это вижу
МояСтруктура = новый Струкутура;
МояСтруктура.Вставить("Поле1",1);
МояСтруктура.Вставить("Поле2","2");
МояСтруктура.Вставить("Поле3",Справочники.ОфигенныйСправочник.НайтиПоКоду(""));
ЗаписатьВСтроку_XML(МояСтруктура);
должно породить что-то типа
<XM LS>
<Value type="Sturcture">
<Field>
<Name>Поле1</Name>
<Value type="Number"> 1
</value>
</Filed>
<Field>
<Name>Поле2</Name>
<Value type="String"> "2"
</value>
</Filed>
<Field>
<Name>Поле1</Name>
<Value type="СправочникСсылка.ОфигенныйСправочник"> тут результат выгрузки справочника твоей обработкой.
</value>
</Filed>

</Value>
<XM LS>


Тут нужно не забыть что полями структуры могут быть ТЗ, соответствия, ДЗ. Которые в свою очередь также могут содержать что угодно.

Цели которые предследуются - просто для развития твоего врайтера. Такой возможности ни у одного нет. Будет выбиваться из общего ряда. Опять же много интересного опыта при проектировании сериализатора.
22. Александр Шишкин (Шёпот теней) 27.08.09 11:42
(21) ... ммм ... употребляя одинаковые слова - понимаем разный смысл ...

" ... Различаются ПРОСТЫЕ (базовые, примитивные) структуры (типы) данных и ИНТЕГРИРОВАННЫЕ (структурированные, композитные, сложные). Простыми называются такие структуры данных, которые не могут быть расчленены на составные части, большие, чем биты. С точки зрения физической структуры важным является то обстоятельство, что в данной машинной архитектуре, в данной системе программирования мы всегда можем заранее сказать, каков будет размер данного простого типа и какова структура его размещения в памяти. С логической точки зрения простые данные являются неделимыми единицами. Интегрированными называются такие структуры данных, составными частями которых являются другие структуры данных - простые или в свою очередь интегрированные. Интегрированные структуры данных конструируются программистом с использованием средств интеграции данных, предоставляемых языками программирования.

В зависимости от отсутствия или наличия явно заданных связей между элементами данных следует различать НЕСВЯЗНЫЕ структуры (векторы, массивы, строки, стеки, очереди) и СВЯЗНЫЕ структуры (связные списки). ... " подробнее тут : http://khpi-iip.mipk.kharkiv.edu/library/datastr/book/prt01.html см. Рис. 1.1. Классификация структур данных


... " ... Цели которые предследуются - просто для развития твоего врайтера. .." ...
- думаю, что любой "врайтер" как прАвило уже и есть "писатель" некой НЕстандартной информации ... все эти xml & html как раз и несут в себе разноШёрстную информацию в одном "флаконе" по "форме"... в отличие например от файлов-таблиц в которые можно положить любые данные по "содержанию" (имеется в виду "поля" таблиц) ...

... вотЕслиЯопятьПравильноПонял ...





23. Валентин Бомбин (so-quest) 27.08.09 21:38
не понял. но это прикольно. наверное
24. Александр Шишкин (Шёпот теней) 27.08.09 22:48
... антоним ... синоним ... аноним ... хм ...
25. Александр Шишкин (Шёпот теней) 27.08.09 23:07
(24) ...+ да, и ещё ... абстургенция ...

... ВоттеперьвсЁ ..
26. rasswet (rasswet) 01.10.09 20:01
хорошо бы две кнопки в ней иметь-выгрузка загрузка.
27. aga_aga (Збянтэжаны Саўка) 25.02.11 15:13
(0) А почему не выгружается UID объектов, ведь сверка по нему не "последняя вещь в списке" при обмене?..
(24) Засем ругаесся насяльника: "абстургенция", обструкция, абстрация, мастурбация ... :)
28. Александр Шишкин (Шёпот теней) 25.02.11 15:16
(27) ... ага ... ага ... ! ... )))

... вот ...

п.с. мне был итересен сам формат и работа с ним ... а когда известен "принцип" то действие возможно любое .. !
Збянтэжаны Саўка; +1 Ответить
29. Ийон Тихий (cool.vlad4) 25.02.11 15:27
:D Интересно...Я делал что-то подобное, но для других целей...Надо было обезопасить пользователей от случайного несохранения документов, сначала сделал сохранение документов через значениевстроку, но затем переделал под xml. так, что наверное каждый сталкивается с чем-то подобным.
ЗЫ Скоро войдет в историю ШепотТеней кэйсинг ;)
30. aga_aga (Збянтэжаны Саўка) 25.02.11 15:29
(28) Спасибо за разъяснение и за обработку.
Блин, сменю ник, а шоб не издевалися тут все, шепотом :)
31. aga_aga (Збянтэжаны Саўка) 25.02.11 15:34
(29) хм... у меня точка зрения обратная, я бы предохранял пользователей от случайного сохранения док-ов, вреда от лишнего сохранения больше, чем от НЕсохранения :)
32. Ийон Тихий (cool.vlad4) 25.02.11 15:45
(31) вы ничего не поняли...я про функцию автосохранения во временные папки как в офисе микрософтском, там через каждые n секунд сохраняется документ, в случае сбоя компьютера его можно восстановить, также и в 1С у мня. А что такое случайное сохранение пользователей мне невдомек. Если они что-то сохраняют это уже неслучайно.(Представилась картинка пользователей этаких мартышек, клацают по клаве, сохраняют, а администратор тешит в себе мысль - когда-нибудь они набъют накладную :D )
33. Александр Шишкин (Шёпот теней) 25.02.11 15:59
(30) ... и не надо менять ... прекрасный НИК ...

п.с.:

Ага: Ага́ — утвердительное междометие. А́га — ядовитая тропическая жаба. Ага — река в Забайкалье. А́га — посёлок при станции в Забайкальском крае, ранее село Хила. Ага — город в префектуре Ниигата (Япония) Ага́ — титул военачальников.

п.с.2: на английском ничего интерсного ... впрочем может это и не английский ... )))
34. Збянтэжаны-Саўка (Збянтэжаны Саўка) 25.02.11 17:52
(33) Дзякуй на добрым слове! Але ж, поздно батенька - уже поменял!
У незабвенного Мартина Гарднера была книжечка мат. головоломок такая "Aha! Insight" (1978, 1982) - "Есть идея!" в переводе.
http://publ.lib.ru/ARCHIVES/G/GARDNER_Martin/_Gardner_M..html
(32) "...мартышек, клацают по клаве...", во-во их то, родимых я и имел в виду, хе-хе :)
Достают операторы-бухгалтеры, которые глупее меня )
Шёпот теней; +1 Ответить
35. Тимур (tgnike) 08.11.11 11:57
Спасибо. Хорошая вещь. Очень помогла!
Шёпот теней; +1 Ответить
36. Михаил Семенов (mchammer4) 14.11.11 19:24
Спасибо, правда мне не помагла :(
Шёпот теней; +1 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа