Двухпальцевый reader_XML …
Интеграция - Файловый обмен (TXT, XML, DBF), FTP
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
примеры для чтения
.1249681640 26,83Kb
309
|
309 | 2 500 руб. Купить | 1 SM Скачать |
|
читальщик xml файлов
.1249678164 17,05Kb
166
|
166 | 2 500 руб. Купить | 1 SM Скачать |
|
читальщик xml файлов ред.2
.1249885926 19,19Kb
155
|
155 | 2 500 руб. Купить | 1 SM Скачать |
|
Читальщик XML файлов ред 3 (Если)
.1250233660 24,74Kb
61
|
61 | 2 500 руб. Купить | 1 SM Скачать |
|
Читальщик XML файлов ред 4 (Цикл)
.1250233709 23,55Kb
88
|
88 | 2 500 руб. Купить | 1 SM Скачать |
|
Читальщик XML файлов ред 5 (Рекурсия)
.1250247868 24,05Kb
310
|
310 | 2 500 руб. Купить | 1 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Просматривать XML редакторами, которые сами по себе не маленькие по размерам и не совсем понятные по использованию меня нисколько не привлекает, тем более что надо всего лишь посмотреть структуру файла и дальше думать, что с ним делать.
Примечание.
Если установленной глубины в 9 не хватает, добавьте код самостоятельно. В 99 случаев из 100 этого глубины чтения в 9 хватает с лихвой.
Поиск по ИС:
- //infostart.ru/projects/1612/
- //infostart.ru/projects/2683/
- //infostart.ru/projects/2804/
- //infostart.ru/projects/1489/
- //infostart.ru/projects/1963/
- //infostart.ru/projects/1801/
- //infostart.ru/projects/3448/
-
http://www.firstobject.com/ - спАсибо Ufimtsev и Ёпрст за "шустрого"
... -
...
Что я вообще думаю про XML ... моё мнение совпадает с мнением, находящимся здесь: http://extrapro.ru/udxml.html
... ЗА дополнения, конструктивную критику, сообщения о замеченных неточностях или ошибках - буду благодарен ...
Желающих продолжить работу над данным проектом прошу присоединяться.
с Уважением Шёпот теней …
… вОт …
Продолжение:
Новая версия обработки: "Читальщик XML-файлов ред.2" ...
Решил несколько изменить обработку после обсуждения в ветке и полученных советов/рекомендаций.
Что изменено/неИзменено:
- Увеличено количество чтения вложенности до 15 … (этого должно хватит на все разумные случаи жизни).
- Не стал делать рекурсию на чтение данных. Для простоты понимания процесса и при необходимости «вычленения» данных.
- Добавил возможность отдельного чтения узлов по двойному клику по нему. Если узел содержит вложенные данные, обработка их выводит в строке сообщения4. Улучшена работа прогресс бара за счет двойного чтения файла. Рекомендуется отключать в случае «больших» файлов.
Примечание:
Данная обработка будет полезна для просмотра структуры файла XML до 10 Мб. Файлы объемом в 100 Мб, с отключенным прогресс баром, данная обработка прочитает и выведет за 3…5 минут (цифры условные т.к. зависят от многих факторов. приведены для того чтобы показать некие точки отсчета при работе с такими файлами).
Спасибо всем высказавшимся по данной обработке.
п.с.1. Много нареканий по поводу не использования "рекурсии" в данной обработке. По разным причинам сделано намеренно. Тех, кого это смущает, прошу считать данную обработку методическим материалом.
Продолжение 2:
Сделаны две обработки:
- «Читальщик XMLфайлов ред 3» - использует оператор «Если – Тогда»
- «Читальщик XMLфайлов ред 4» - использует "Циклы".
- «Читальщик XMLфайлов ред 5» - использует "Рекурсию".
Новое у этих обработок:
- Форма «Настройка». Устанавливает величину читаемого размера файла. При его превышении отключается работа индикатора действия. Устанавливается цвет индикатора.
- Читает файл XML полностью – элементы, атрибуты, текст.
Спасибо: rasswet – за интерес, замечания и комментарии к обработке.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)
Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор
58000 руб.
04.08.2015 194767 479 310
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)
Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!
50050 руб.
25.02.2015 192532 383 296
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)
Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.
27633 руб.
12.06.2017 165012 1009 329
Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)
Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам.
50200 руб.
24.04.2015 211437 186 254
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 Бухгалтерский учет Управленческий учет Платные (руб)
Переносите справочную информацию, остатки и документы из УПП 1.3 в ERP 2.6 и КА 2.6 с помощью готовых правил. Переносится более 60 видов документов. Простой интерфейс и понятные настройки.
42000
37800 руб.
24.06.2020 73134 108 35
Операции по ВЭД Файловый обмен (TXT, XML, DBF), FTP Разработчик Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Платные (руб)
Федеральная таможенная служба России давно поддерживает унифицированный формат электронных документов для обмена с информационными системами предприятий. xmlns="urn:customs.ru:Information:ExchangeDocuments:". Структура, утвержденная комиссией Таможенного союза. Осталось только сделать загрузку в 1С из этого формата. На выходе - два документа ГТД по импорту и Поступление (акты, накладные) Обработка актуализирована на начало 2026 года (ставка НДС 22%)
24400 руб.
09.08.2016 97837 381 379
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)
Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.
42000
37800 руб.
15.12.2021 37112 268 68
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)
Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.
27572 руб.
18.02.2016 209241 686 559
... CheBurator, СССР - дорожу вашим мнением ...
... вОООтВашШТ ...
... думаю, универсальность вЕщь избыточная и как всякая избыточность она должна быть опрАвдана ... а то получится как у 1С - нужно быть не только программистом но ещё и архивариусомФлажком ...
... дУмаю, что простота достигнется за счЁт рекурсии - здесь вот : - обращение к структуре с заранее неизвестным количеством вложений, у меня как раз решено именно образом рекурсии ... дУмаю здЕсь это не опрАвдано ...
... если файл xml состоит из документов с одинаковой структурой но варируемым количеством это одно а если много документов с разной структурой, для чего собственно и придумывался этот тип файлов, находится в файле - тогда это другой разговор ... я имею ввиду вопрос: КАК ?транспонировать таблицы превращённые в строку (xml - файл) обратно в человекоПривычный вид "шапки + двуМерной табличной частью" ...
... тем не менее Я с ОГРОМНЫМ удовольствием посмотрю на ВАШЕ решение ...
... вОтТакМНЕдумается ...
... думаю, что хмл файлы, "мёртвые" файлы ... мода пройдЁт и они "пройдут" ...
... мы же не делаем один запрос к документу ..? ..! 1с всем рекомендует делать их два, один к "шапке", другой к "таблице" документа ... а использование хмл подразумевает делать один запрос не только к "шапка+таблица" но и к разным объектам ...
... плюс к тому же - связываясь с хмл - мы сначалА прикладываем усилия сделать информацию "однострочной" а потом прикладываем усилию к обратному процессу, процессу "сборки" ... и если использование html себя оправдывАет то xml - это ни кому не нужное усложение ...
... то, что ЭТО сложно - видно хотя бы по использованию любого редактора_ХМЛ ... размеры, быстрота чтения, простота использование, удобство просмотра - ВСЁ хромает ...
... теория была крАсивой - да прАктика НЕприняла ...
... вОтМоёМнение ...
... все "эти" сложности с использованием хмл возможно опрАвдывают себя на очень "сложных" обменах данными - типа обмен БД через интернет ... хотя и ЭТО мне кАжется спОрным ... особенно когда вопрос касается поиска ошибки ...
п.с. хОтя возможно я УЖЕ просто стАрый ... или лЕнивый ... или тУпой ...
.. уффВОТвсё ...
>>а использование хмл подразумевает делать один запрос не только к "шапка+таблица" но и к разным объектам ...
Чтобы найти информацию в файле любого формата сначала его надо разобрать, а xml разобрать и "выдрать", например оттуда только шапку проще, чем откуда либо (если я понял о чем Вы) и с запросами это никак не связно...
P.S. А обработка могла бы пригодиться, но не люблю не универсальные вещи, по этому использовать в такой реализации не буду...
1абзац: ... вопрос мнений ... принято ! ..
... согласен с тем, что потихоньку всех приучат к этому формату ...
... по-поводу прозрачности, хм...? А, рАзве другие форматы - не прозрачны...?
2абзац: ... это была попытка провести аналогию... вОзможно не совсем удАчная ...
3абзац: ... чтоБЫ "выдрать" из файла информацию - не обходмо знАть его структуру ... сначало как миниму прочитать и посмотреть ...
4абзац: ... П.С. ... в таком случае чем де ВЫ пользуетесь для просмотра структуры ... ?
... сАмое простое и быстрое что мне попалось это наверное, см.(0), Поиск по ИС: 1. - но ОНА не в 1С ...
... вот ...
> ... по-поводу прозрачности, хм...? А, рАзве другие форматы - не прозрачны...?
Нет другие форматы ИМХО не прозрачны...
Возьмем самый наглядный пример это текстовый файл с разделителями. Попробуйте понять, что там храниться )))).
В XML мы можем передать ВСЮ необходимую информацию, такую как тип передаваемого значения и вообще саму структуру файла. Причем мы наглядно видим какое это значение (имя, тип и.т.) и даже визуально можем понять что откуда берется и как грузить. Отсюда и большой объем xml файлов, но они великолепно жмуться. Попробуйте передать это в любом другом формате и у Вас получиться XML файл ;)
P.S. До сих пор ИМХО существует проблема отсутствия нормальных инструментов с XML файлами (инструменты не оптимизированы), например SpyXML отличный наглядный инструмент, но слишком медленно работает. А программка из (10) отличная, но тоже подвисает на больших объемах
... ради истины: ...
... сдЕлал стандартную вЫгрузку базы из УТ в хмл ... максимальная "глубина" вложений = 9 ... )))
... поЭтому данной обработки дОлжно хвАтить на всЕ случаи жизни при работе в 1С УТ 8.х ... нуууу, можно для надЁжности увеличить глубину чтения до 12 ... чтобы устрАнить ВСЕ взможные эксцессы ...
... вОтОднАкО ...
1. пробовал открыть данной обработкой - не хвАтает пАмяти ... (повторюсь, она и не была предназначена для такКкой "глобальности") ...
2. программой указанной в (0) под 1 - так она читает по мере поступления команды от пользоваеля то псевдо-открывает быстро а узла открывает по мере поступления ... выигрыша во времени не увидел по срАвнению с п.3...
3. открыл блокнотом - "прЕлестно" ... и вЕсь файл открЫл и рЕдактировать можно ...?
... вОт ...
Например:
Процедура РазобратьУзел()
Если ЭтоУзел() Тогда
РазобратьУзел()
КонецЕсли;
КонецПроцедуры
РазобратьУзел()
Кстати, когда получаешь дерево значений, для обработки информации может быть удобным использовать обычную структуру. Получается тоже самое, что дерево значений, только похоже на динамические списки. Удобно когда нужно считать атрибуты узла.
... обЪясниТЕ по поводу последнего абзацА ...? :
..." Кстати, когда получаешь дерево значений, для обработки информации может быть удобным использовать обычную структуру. Получается тоже самое, что дерево значений, только похоже на динамические списки. Удобно когда нужно считать атрибуты узла. " ...
... не сОвсем понял ...? ещЁ рАз если мОжно ...
... вот ...
Строка 1 <Узел>
Строка 2 <атрибут>
Строка 3 <атрибут>
Строка 11 <Узел>
Строка 12 <Узел>
когда знаешь что за формат, нужно получить атрибуты узла, не совсем удобно обходить в цикле строки дерева значений, проще представить это все в виде структуры (обычная запись):
Новый Структура;
Например, шапка документа:
Номер = 10
Дата = 12.02.2008
Контрагент (это новая структура)
ЕДРПОУ = 1000000
Наименование = "Пупкин"
Короче, в программном виде так:
Структура = ПреобразоватьДеревоВВидеСтруктуры()
Если Документ.МойДокумент.НайтиПоНомеру(Структура.Номер) Тогда
...
КонецЕсли;
Контаргент = ПолучитьКонтрагента(Структура.Контрагент.Едрпоу);
...вОт... :)
Да кто ж спорит!!! и не раз... но мне еще надо посмотреть тип выгруженного элемента данных и пр...
> вЫгрузка из УТ получилась на 333 Мб ...
ну да... согласна... торговля сама по себе всегда намного больше той же бухгалтерии...
Если речь идет о постоянных выгрузках... и то... смотря куда слать и смотря... многое что еще смотря...
Несмотря на то, что xml позиционируется как универсальный формат обмена данными, никто не исключает и другие форматы...
... каждый пользуется ТЕМ оружием какое ОН любит ... нууу ... или имЕЕт ...
... сОгласен, "инструменты" могут бЫть разные ...
... вОт ...
Помнится, мне приходилось специально писать обработку для анализа обменников, ибо они были более 500 мб, и ни один редактор, показывающий структуры их не открывал на персоналке, только на сервере...
... читАть большие по размеру файлы, соГласен прОблема, дАже простое чтЕние текстового файла рАзмером более 300 Мб составляет от 2 минут ... а уж с выводом информации и вАААще рАзА в 3...4...5 дОльше ...
... видимо нужны какие-то порции данных ... но если нужны дАнные с "низу" бУдет читать почти тАкже долго как и вЕсь файл ...
... дУмаю, что тАкие загрузки/выгрузки с файлом обмена "весом" больше 100 мб вАААще не нужны ... лУчше частичные загрузки/выгрузки ...
... вОт ...
... это свойствЕнный мне спОсоб пЕрЕдАчи эмоций чЕрез писЬмо ... зАмена сОвременному повседневному мАту ...
... нУууу, или "вЫгибалка" моЙ персоны ... одним слОвом начилось всЁ как протест - АтеперьВОТпривык ...
... вотТАКАЯистория ...
... кАк скАжешь НЕдорогой ... вИдимо ТЫ ИСТИНА в последней инстанции ...
... если ТЫ тАААк бОрешься ЗАуважениеКсебе будь тАк увАжителен коМНЕ НЕзаходи больше на мои ветки ...
... бЕз уважения к "тебе" ... НЕтвой Шёпот теней ...
... неВОТ ...
Решил несколько изменить обработку после обсуждения в ветке и советов.
Что изменено/неИзменено:
1. Увеличено количество чтения вложенности до 15 … (этого должно хватит на все разумные случаи жизни).
2. Не стал делать рекурсию на чтение данных. Для простоты понимания процесса и при необходимости «вычленения» данных.
3. Добавил возможность отдельного чтения узлов по двойному клику по нему. Если узел содержит вложенные данные, обработка их выводит в строке сообщения.
4. Улучшена работа прогресс бара за счет двойного чтения файла. Рекомендуется отключать в случае «больших» файлов.
Примечание: данная обработка будет полезна для просмотра структуры файла ХМЛ до 10 Мб. Файлы объемом в 100 Мб, с отключенным прогресс баром, данная обработка прочитает и выведет за 3…5 минут.
Спасибо всем высказавшимся, на данном этапе разработки по данной обработке.
... вОт ...
"На обиженных воду возят" - русская поговорка.
Увы, нетерпимость является большим минусом.
Явная неадекватность поведения в ответ на вполне нормальную критику.
Уговорил. Дабы не быть посланным, сам принимаю решение не заходить больше на Ваши ветки. Хотя форумные и раньше читать не мог ( ).
п.с. .... "другие" - ВОН сколько НЕпросишь - сАми лЕзут ... если не с "комментариями" то хОть с "мИнусками" ...
(45) ... ну, что ВЫ зацепились за эту Рекурсию ...
...ммм ... воспринимайте эту обрАботку как методический материал ... лично у менЯ интЕрес к этой обрАботке лежит соврешенно НЕ в плоскости рЕкурсии ...
... мои вЫводы:
1. ... занимаясь пОискОм по ИС и не тОлько - обнАружил, что почти нЕт никаких "читальщиков" и уж тЕм более редАкторов по xml в 1С... по крАне мере я не нАшёл ... вОт и рЕшил привлЕчь внимАние к этой проблЕме ...
2. ... про xml только ВСЕ говорят но мАло кто с ним рАботает ... всЕ говорят какой ОН крутой и удОбный а обработок нЕт ...
3. ... всЕм тОварищам ... кто прЕдлагает усложнить кОд, прЕдалагаю написАть свом вЕрсии xml-редакторов ... и я с уДовольствием по-учусь у них и уму и рАзуму (бЕз тени ирОнии) ...
... вОтВобщем ...
... я огрАничил своЁ местоПребывание на ИС только "своими" вЕтками ...
... Я, своего мения никому НЕнавязываю ...
... по поводу "рекурсии" обЪснил - дрУгая задача, не в причЁсанности кода ...
п.с.1. ... файлы ХМЛ плохо поддАются визуализации, нЕт или очЕнь мало "читальщиков" и "редакторов" а если есть то до жути "громоздкие" да и неУдобные ...
п.с.2. ... плохая "визУализация" из-за плохой возможности их стрктурировАть и поэтому с ними трУдно рАботать ...
п.с.3. ... прерасная возможность передать рАзнородные данные - огорчается дополнительным "прАвилами" стандартами обЪменА ... в итоге: сложность выросла а удобство и нАглядность пропала ... и если ошибки в получении дАнных пропАли то они пОявились при рАботе с самими данными ...
п.с.4. ... то, что программисткая брАтия реагирует на "код", вместо того, чтоБЫ завалить ссЫлками на обрАботки с чтением_редактированием_ХМЛ - кОсвенно поДДтверждает даннУю мЫсль ...
... вОт ...
(50) "что программисткая брАтия реагирует на "код"" контингент такой.
Нашел у себя самый большой XML Crysis Save 4,5 МБ в нем 12 уровней, а вы говорите 9 достаточно.
Посмотрел внимательно реализацию и заметил несколько моментов почему медленно:
1. Файл считывается два раза.
2. Индикация процесса съедает все время (желательно делать ее раз в секунду)
3. Нет смысла в отдельном ТЗ статистики ее можно отразить и в построенном дереве XML
4. Очень неоптимальный код чтения "много если" (для скорости и понятности нужна рекурсия)
Кстати на тестовом файле 60 сек. O_o убрал индикацию 38 сек.(50) "что программисткая брАтия реагирует на "код"" контингент такой.
Нашел у себя самый большой XML Crysis Save 4,5 МБ в нем 12 уровней, а вы говорите 9 достаточно.
Посмотрел внимательно реализацию и заметил несколько моментов почему медленно:
1. Файл считывается два раза.
2. Индикация процесса съедает все время (желательно делать ее раз в секунду)
3. Нет смысла в отдельном ТЗ статистики ее можно отразить и в построенном дереве XML
4. Очень неоптимальный код чтения "много если" (для скорости и понятности нужна рекурсия)
Кстати на тестовом файле 60 сек. O_o убрал индикацию 38 сек.
"Я, своего мения никому НЕнавязываю" никто не навязывает вам свое мнение. Просто высказываются :)
по поводу:
1. "два рАза" : для лучшей работы прогрессБара ...
2. пишу же ... для быстроты - нужно отключать прогрЕссБар ...
3. можно и отразить ... у кАждого свои вкУсы ...
4. нУУУУ ... скОлько мОжно пИсать про "рекурсии" ... уже вЕзде нАписал ... и в "описании" и в "комментах" ... сдЕлано спЕциально ...!
5. "к стати" : ... сОгласен ... см.п . 2 (здесь) ...
... вот ...
)))
... тУт .. вООбще-то ... идЁт обрАтный процЕсс ...! ...
... хм ... поЙду и вАм плЮсану ... см. (52) ... )))
... Вот! ...
как же так? :( нашлось время сделать "О программе"...
и мелкие красивости... вроде...
"Если ДанныеСтроки.Уровень = 1 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоЖелтый;
КонецЕсли;
Если ДанныеСтроки.Уровень = 2 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоЗолотистый;
КонецЕсли;
Если ДанныеСтроки.Уровень = 3 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.Бежевый;
КонецЕсли;
Если ДанныеСтроки.Уровень = 4 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.ДымчатоБелый;
КонецЕсли;"
(используйте ИначеЕсли покороче будет да и попонятней),
а на нормальный код с рекурсией не хватило времени :(
Интересная ссылочка спасибо
На счет более компактного и быстрого XML есть FastInfoSet, но я забросил его на первых же граблях так как замена ЧтениеXML на ЧтениеFastInfoset почему то не работала (читал что на каких то платформах с ним ошибки).
.. вОт ..
<?xml version="1.0" encoding="windows-1251" ?>
- <Файл xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ИдФайл="NO_PRIB_77457745_7731240579774501001_20080711_2DB855
- <Документ КНД="1151006" ДатаДок="11.07.2008" Период="31" ОтчетГод="2008" КодНО="7745" НомКорр="0" ПоМесту="214">
- <СвНП ОКВЭД="28.11.;" Тлф="730-54-54">
<НПЮЛ НаимОрг="ООО "БЛАЛЛАЛА"" ИННЮЛ="77888" КПП="75555001" />
и т.д.
в столбце значение-пусто. отчего так?
это отчет из 7ки выгружен
... знАчит:
... "Если файлXML.ТипУзла = ТипУзлаXML.Текст Тогда "...
... значит строки этого ХМЛ не содержат "Текст" ...
всего существУет 3 типа:
1. ТипУзлаXML.НачалоЭлемента
2. ТипУзлаXML.Текст
3. ТипУзлаXML.КонецЭлемента
... вОт ...
<НПЮЛ НаимОрг="кккккк;" ИННЮЛ="55555" КПП="666666"/>
пЕрЕписать как:
<НПЮЛ> НаимОрг="кккккк;" ИННЮЛ="55555" КПП="666666"</НПЮЛ>
... то рЕдакторы читают её как текст ...
... вИдимо формАт такой ... и началоЭлемента и текстЭлемента и конецЭлемента ВСЁ в одном теге ... стАндарты бЫвают рАзные ... )))
... это всЁ что мОгу скАзАть на уровне своих знАний по ХМЛ ... (((
... вОт ...
п.с. узнАете - не забудЬте рАссказать ... бУдем ждать ...
в строке: <НПЮЛ НаимОрг="кккккк;" ИННЮЛ="55555" КПП="666666"/>
1. НаимОрг="кккккк;"
2. ИННЮЛ="55555"
3. КПП="666666"
1-3 ... это Атрибуты ...
... их чтение возможно в моей обработке если в процедуре:
"кнОткрыть_чтениеХМЛфайла" перенести код:
Пока файлXML.ПрочитатьАтрибут() Цикл
____Атрибут = файлXML.Значение;
____Сообщить("атрибут:" + файлXML.Имя + "=" + файлXML.Значение);
КонецЦикла;
и поставить его после строк:
Если файлXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Имя = файлXML.Имя;
глубина = файлXML.КонтекстПространствИмен.Глубина;
.... ВОТ сЮДА вставить код...
... естествЕЕно сделаю и испрАвлю обрАботку для вАрианта с "Атрибутами" ...
... спАсибо вАм ... ВОТ ... )))
1.«Читальщик XML файлов ред 3» - использует переменные и используется оператор «Если – Тогда»
2.«Читальщик XML файлов ред 4» использует массив и Циклы.
Новое у этих обработок:
1.Форма «Настройка». Устанавливает величину читаемого размера файла. При его превышении отключается работа индикатора действия. Устанавливается цвет индикатора.
2.Читает файл ХМЛ полностью – элементы, атрибуты, текст.
Спасибо: rasswet – за интерес, замечания и комментарии к обработке.
... ВОТ ...
Относительно кода, нельзя говорить, что я пишу как хочу. Считается плохим тоном в программирования в языках высокорого уровня использовать безусловные переходы :) Имхо мое мнение.
1. ... что тАкое "хороший" или "плохой" тон прогрАммирования я НЕзнаю - мне "пофиг" ...
2. ... если ВЫложите своЮ версию - лИчно мне будет интерсно и с интЕресом ознАкомлюсь с вАшим мЕтодами и спОсобами ...
П.С.
... замеры по данной обработки при считывАнии одного и того же файла:
1. версия_3 = 31 сек. (открывет 15 уровней - решение через Если)
2. версия_4 = 34 сек. (открывет любое кол. уровней - решение через Цикл)
3. версия_5 = 28 сек. (открывет любое кол. уровней - решение через Рекурсия)
... разница между спОсобами чтения в 10% ... но прОстота нАписания обрАтнАя ...
.. отсюДА вЫвод: каЖдому "гОршку" своЁ прЕдназначение ...
... вОтВОООбЩЕм ...
оценки любОй прОгрАммы:
1. вЫполнять ТО, что нУжно пОльзователю
2. нАписАна она должна быть как можно бЫстрее
3. вЫполнять зАдуманное как мОжно быстрее
4. пОдпрАвляться, при нЕобходимости как мОжно бЫстрее
5. после 1-4 можно переходить от внЕшнего крАсивого вида к внУтрЕЕннему совершенству
... ВоТ ... ждЁм вАшу обрАботку ...
Если речь о рекурсии неопределенной глубины, то реализацию с помощью цикла while и стека можно найти где -то в google по строке "Рекурсия или цикл".
Да и здесь на ИС уже эта тема обсуждалась.
... удачи ...
... вОт ...
Одна из формулировок теоремы Дейкстра :
Алгоритм любой сложности можно реализовать, используя только цикл while и альтернативу.
Или другая формулировка :
Теорема Дейкстра. Алгоритм любой сложности можно реализовать, используя только три конструкции: следования (линейные), выбора (ветвления) и повторения (циклические).
Посмотри в google "Теорема Дейкстра".
Люди говорят , что Дейкстра как раз объявил войну меткам.
Но судя по-всему он под "меткой" предполагал нечто другое , чем ты.
Если -Тогда и метки . Ты это имел ввиду ?
Под "войной меткам" , насколько я помню 80-е годы подразумевалось
применение безусловных переходов в языках высокого уровня.
Использование безусловного перехода удобно, особенно если программировать в Бэйсике, но в разборе кода другим программистом очень не удобная штука.
И относительно правил хорошего тона в программировании, то это тоже самое как и правила хорошего тона в общении. Мы ж не материся тут на форуме и не обзываем друг друга, хотя могли бы.
Ко всему прочему не нужно забывать, что 1С интепритатор и избыточной код больше вреден чем полезен.
Да и вообще, вижу что у афтара много времени свободного :)
... и за стОль "обширный" кОООмментарий и за эКскурс ...
... но нАблюдается тЕнденция ... снАчало МЫ пишем типА "для взрОслых" ... зАтем взрослые прикидЫваются "мАленькими" ... пОтом ТЫ пишЕшь "для Маленьких" .. пОтом Маленькие-взрослыЕ говорят что: "ТЫ, что мАленький ... ???...." ... вОООбщем чЕредуются приЁмы псИхологии - "обЁртыши" с зАконами дЕмагогии под номер "ТРИ" ...
примечание:
повторю утвЕрждЕние, что " ... алгоритм любой сложности может быть реализован с помощью операторов .. " - двух опЕраторов:
1. GoTo - Label
2. If - Then
/// ... вОООт ...
1. снАчало мне говорят, что используются "БЕЗусловные" переходы ...
2. пОтом говорЯт, что БЕЗусловные пЕрЕходы НЕтак пишутся ...
3. пОтом мне гОворят как "ОНИ" круто прОграммируют - НО уже ЗАбыли КАК...?
4. нууу, и т.д. ...
П.С.
Разные люди , используя разные приёмы психологии , пытаются вразумить Шепота : не оригинальничай в стиле . Стиль этот , невыражающий оригинального содержания, есть пёстрый фантик и не более.
Разворачиваем фантик . И что внутри ?
"повторю утвЕрждЕние, что " ... алгоритм любой сложности может быть реализован с помощью операторов .. " - двух опЕраторов:
1. GoTo - Label
2. If - Then "
Автора утверждения не приводится. Стало быть - сам Шепот .
То, что любой алгоритм может быть реализован на ассемблере - НИКТО НЕ СПОРИТ.
Все конструкции : 1.следования,2.ветвления,3.цикла - суть комбинации этих
GOTO , if-Then.
Речь шла о том , что в языках высокого уровня , например "1с",
("структурное программирование" - термин 70-80-х годов) НЕ НУЖНО употребление безусловных переходов (GOTO) - достаточно этих трёх конструкций.
п.с. этих фАнтиков как по форме тАк и по содержанию в кАждой вЕтки по -Ять штУк ... разные: - "нах ...", "ох ...", "пох ..." и т.д. .... я уж молчу про смЫсловые голЮцинации ...
... ВоТ ...
>Шепот вполне сознательно игнорирует известные ему сложившиеся правила
>приличия.
>Ну , что ж . Мы его , как обычно, заклеймим. Почему ж не заклеймить ?
>В первый раз что ли ?
слава богу, что таких уникумов как Шепот и Арчибальд не так много в этой жизни. Говорят, что твоя свобода заканчивается там, где начинается свобода другого человека. Выражая свое мировозрение не забудь поблагадарить дедов и прадедов которые за эту свободу выражения головы свои буйные сложили. Скинхеды тоже свое мнение по своему выражают. Подумаешь, изобъют кого то в темном переулке до полусмерти. Это они так свой социальный протест выражают. Нельзя ставить себя выше других людей.
а по сути дела: реализация всех современных языков программирования построена на рекурсии.
ошибка:
{Обработка.читальщикXMLфайлов3.Форма.Форма(363)}: Ошибка при вызове метода контекста (Получить): Значение индекса выходит за границы диапазона
СтрокаУровня = массивСтрокУровня.Получить(глубина);
по причине:
Значение индекса выходит за границы диапазонаЯ заменил просто на глубина-1 это помогло но при чтение других файлов все равно возникает это ошибка с глубиной правда в другом месте но там у меня почему то исправить не получилось? От чего это зависит?
Поддерживаю. Так же не смог победить.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 21664
Создание 08.08.09 00:49
Обновление 14.08.09 15:06
Просмотры 30252
Загрузки 1089
Рейтинг
70
Комментарии 106
Код открыт Не указано
Рубрики Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP
Кому
Системный администратор
,
Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)