|   |   | 
| 
 | Чем можно вычитать html-файл в ТАБЛИЧНЫЙ ДОКУМЕНТ? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Andrey1957 03.12.13✎ 05:11 | 
        Если в 8.2 попытаться открыть из меню "файл" html-файл, то 1С-ка откроет его в виде СВОЕГО РОДНОГО табличного документа (при работе с открытым файлом становятся доступными все опции меню "Таблица"). Вопрос: Чем 1С открывает html-файл? Решение в лоб: 
 ТабДок = Новый ТабличныйДокумент; ТабДок.Прочитать(ПутьКФайлу); ///ПутьКФайлу - полный путь к html-файлу НЕ ПРОХОДИТ, выдает ошибку: "Ошибка при выполнении файловой операции". Так чем же сама 1С-ка читает html-файл в табличный документ? Кто-нибудь может подсказать? | |||
| 1
    
        Wobland 03.12.13✎ 05:42 | 
        хотелось бы увидеть результат этой магии     | |||
| 2
    
        Лодырь 03.12.13✎ 05:55 | 
        (0) Простой способ конвертации HTML в ТабличныйДокумент сильно бы облегчил жизнь людям в некоторых случаях. Однако его нет. 
 Того что ты описываешь - воспроизвести не могу, вероятно слишком сильное колдунство. | |||
| 3
    
        zakidonoff 03.12.13✎ 06:12 | 
        (0) В виде HTML макета он его открывает. А не табличного документа.     | |||
| 4
    
        Andrey1957 03.12.13✎ 06:14 | 
        (2) Элементарно: захожу в меню "файл", нажимаю "открыть", выбираю файл, и он спокойно открывается в виде таблицы с полным  доступом пунктов меню "Таблица"! У коллег рядом - тоже все прекрасно работает! Это что: только у нас так 1С работает, а у вас 1С не открывает html-файлы? Причем проверил на разных html-файлах. Все работает безупречно!     | |||
| 5
    
        Wobland 03.12.13✎ 06:18 | 
        (4) это только у вас 1С так работает     | |||
| 6
    
        Andrey1957 03.12.13✎ 06:18 | 
        (3) Хорошо, пусть так, но пункт меню "Таблица" становится доступным, как для табличного документа! И как тогда открыть html-файл в виде html-макета? Пробовал я этот вариант, но 1С открывает html-макет только тот, который уже записан! А просто так созданный и записанный html-макет произвольный html-файл не открывает!     | |||
| 7
    
        Andrey1957 03.12.13✎ 06:19 | 
        (5) Ну почему же? Вот zakidonoff похоже тот же результат получил, только трактовку другую дал.     | |||
| 8
    
        zakidonoff 03.12.13✎ 06:24 | 
        (6) 1С открывает чистый записанный макет, добавляет в него текст с открываемого файла и выводит на экран.
 Что не так-то? Тебе что-то конкретно реализовать нужно или ветка из раздела философия? | |||
| 9
    
        Andrey1957 03.12.13✎ 06:29 | 
        (8) 1С не просто добавляет текст, а - в виде табличного документа! Что мне и нужно! Мне нужно получить пореквизитное чтение строк html-файла! При различных преобразования в текст я получаю строки, в которых нет разграничений между реквизитами: сплошная символьная строка и непонятно где заканчивается один реквизит, и где начинается другой.     | |||
| 10
    
        Wobland 03.12.13✎ 06:30 | 
        парсить хочется?     | |||
| 11
    
        Wobland 03.12.13✎ 06:30 | 
        это что-то новое - парсить через ТабДокумент     | |||
| 12
    
        Andrey1957 03.12.13✎ 06:33 | 
        (11) подскажи, как ты это делаешь...     | |||
| 13
    
        Wobland 03.12.13✎ 06:33 | 
        Сунский царь Юань захотел иметь у себя картину. К нему пришли все придворные писцы и встали у трона, держа в руках ритуальные таблички, облизывая кисти и растирая тушь. Ещё столько же стояли за дверью зала. Один писец пришёл с опозданием, поспешно вошёл в зал, взял табличку, но не встал в ряд с другими, а тут же прошёл в свои покои. Царь послал человека посмотреть за ним, и тот увидел, что писец снял одежды и голый сидел, раскинув ноги, на полу.
 — Вот настоящий художник! — воскликнул царь. — Ему можно поручить дело. | |||
| 14
    
        Wobland 03.12.13✎ 06:35 | 
        (12) я знаю, что есть слово DOM. сам же когда-то регвыражениями да Новый COMОбъект("HTMLFile") делал     | |||
| 15
    
        Лодырь 03.12.13✎ 06:36 | 
        (9) Можно увидеть скриншот текста "добавленного в виде табличного документа"? Силюсь понять что происходит.     | |||
| 16
    
        Wobland 03.12.13✎ 06:37 | 
        (15) судя по тому, что закидонофф понял автора, мы с тобой слегка недоразвиты ;)     | |||
| 17
    
        Andrey1957 03.12.13✎ 06:38 | 
        (13) Боюсь, что 1С-ка твое ек-лм-н не воспримет.     | |||
| 18
    
        Лодырь 03.12.13✎ 06:40 | 
        (16) Что пишет закидонофф я понимаю, а топикстартера нет. Думаю еще чуть чуть и мы прорвемся.
 Вот пример открытого html файла в 1С http://screencast.com/t/E0GUP770Fd Где там ТабличныйДокумент? Ну или чтото похожее хотя бы? | |||
| 19
    
        Andrey1957 03.12.13✎ 06:40 | 
        (15) Пытаюсь понять чем 1С-ка открывает html-файлы, что они открываются в виде табличного документа...     | |||
| 20
    
        Лодырь 03.12.13✎ 06:41 | 
        (19) Выложи скриншот. Пожалуйста.     | |||
| 21
    
        Wobland 03.12.13✎ 06:42 | 
        +(20) просим! просим!     | |||
| 22
    
        zakidonoff 03.12.13✎ 06:44 | 
        (9) Так парсить через макет неудобно и нерационально. Хотя, можно, в общем-то. Обычно это делают через ПолеHTMLДокумента.
 Оно имеет все атрибуты DOM. Или через COM, как уже писали. | |||
| 23
    
        Wobland 03.12.13✎ 06:51 | 
        zakidonoff, расскажи, куда тыкнуть мышкой, чтоб у меня хтмл как табдокумент открылся?     | |||
| 24
    
        zakidonoff 03.12.13✎ 07:03 | 
        (23) Макет у него открывается:
 https://drive.google.com/file/d/0BywECUWO002pLUQzMVBTaEZPMW8/edit?usp=sharing | |||
| 25
    
        Andrey1957 03.12.13✎ 07:03 | 
        Вот такой результат открытия html-файла из 1С я получаю: 
 http://yadi.sk/d/EDLIHwBuDhRwF | |||
| 26
    
        Andrey1957 03.12.13✎ 07:05 | 
        (23)Прошу всех неверящих обратить внимание, что над таблицей указано имя открытого файла.     | |||
| 27
    
        Индиго 03.12.13✎ 07:07 | 
        (25)А на каком основании это считается табличным документом?     | |||
| 28
    
        Wobland 03.12.13✎ 07:08 | 
        а где тут табдокумент?     | |||
| 29
    
        Wobland 03.12.13✎ 07:08 | 
        воистину, настоящий художник     | |||
| 30
    
        Индиго 03.12.13✎ 07:10 | 
        (25)
 <table> <tr> <td> ня! </td> </tr> </table> в любом количестве сколько надо:-) | |||
| 31
    
        Andrey1957 03.12.13✎ 07:10 | 
        28()Вообще-то я нигде и не утверждал, что открыт ТабДокумент. Я писал конкретно: "1С-ка откроет его в виде СВОЕГО РОДНОГО табличного документа (при работе с открытым файлом становятся доступными все опции меню "Таблица")". По-моему, скрин это подтверждает!     | |||
| 32
    
        Wobland 03.12.13✎ 07:11 | 
        (31) и где там свой родной?     | |||
| 33
    
        Andrey1957 03.12.13✎ 07:12 | 
        (29) замучился бы рисовать... И зачем мне это нужно было бы? Тебе нарисовать еще одну подобную табличку с совершенно другим содержимым? Только время на закачку понадобится... но нарисовать целый экран, поверь я за эти минуты никак не смогу.     | |||
| 34
    
        Andrey1957 03.12.13✎ 07:14 | 
        (32) Да там, уважаемый, там! Потому что все опции меню Таблица доступны, и также, как у родного табличного документа внизу высветились: Редактирование; Текст; Просмотр.     | |||
| 35
    
        Лодырь 03.12.13✎ 07:17 | 
        (34) У родного табличного документа нет таких подписей внизу.     | |||
| 36
    
        Wobland 03.12.13✎ 07:20 | 
        (34) > Редактирование; Текст; Просмотр
 явные симптомы ХТМЛ | |||
| 37
    
        Andrey1957 03.12.13✎ 07:25 | 
        (36)Да пусть с симптомами, но открыт файл в виде табличного документа со всеми возможностями меню Таблица! Вопрос: чем это в 1С сделано? Каким механизмом?     | |||
| 38
    
        Wobland 03.12.13✎ 07:27 | 
        (37) да, платформа умеет работать с таблицами ХТМЛ-документа. да, иногда бывают такие документы, которые внешне смахивают на  что-то ещё. в 1С это сделано ХТМЛ-редактором     | |||
| 39
    
        Andrey1957 03.12.13✎ 07:30 | 
        (38) И возможности этого ХТМЛ-редактора пользователям недоступны?     | |||
| 40
    
        zakidonoff 03.12.13✎ 07:34 | 
        (39) Сформулируй ВОПРОС в виде конкретной задачи.     | |||
| 41
    
        craxx 03.12.13✎ 07:35 | 
        (0) Ээ... а зачем его Табличным документом?
 я бы текстовым, а там парсил | |||
| 42
    
        Wobland 03.12.13✎ 07:37 | 
        (41) парсил я регвыражениями. читал как текст и сильно потел в тех местах таблицы, ячейки которой могут содержать так же таблицы, ячейки которых...     | |||
| 43
    
        Andrey1957 03.12.13✎ 07:39 | 
        (41) craxx, я с этого и начинал. Но при преобразовании в текст (чтении, как текст) я получал сплошные текстовые строки, где реквизиты один от другого никак не отделялись. Как парсить в этих случаях текстовые строки?     | |||
| 44
    
        craxx 03.12.13✎ 07:40 | 
        (42) ну никто не говорил что легко будет))     | |||
| 45
    
        Wobland 03.12.13✎ 07:41 | 
        (43) два пути у тебя уже есть     | |||
| 46
    
        craxx 03.12.13✎ 07:41 | 
        (43) парсить по тегам ХТМЛа ессно     | |||
| 47
    
        Wobland 03.12.13✎ 07:41 | 
        (46) три пути     | |||
| 48
    
        Andrey1957 03.12.13✎ 07:42 | 
        (44) Да не в том дело, что легко или трудно, а в том, что не видно: а как же это вообще можно сделать при тестовом чтении?     | |||
| 49
    
        craxx 03.12.13✎ 07:43 | 
        (48) фукция СтрЗаменить()  тебе в помощь     | |||
| 50
    
        craxx 03.12.13✎ 07:44 | 
        +(48) а также Найти() и т.п.     | |||
| 51
    
        Wobland 03.12.13✎ 07:46 | 
        оп! и все таблицы:
 HTML=Новый COMОбъект("HTMLFile"); HTML.Open("text/html"); HTML.Write(ф.ПолучитьТекст()); HTMLDocument=HTML.documentElement.document; Table=HTMLDocument.getElementsByTagName("Table"); | |||
| 52
    
        Псих 03.12.13✎ 07:46 | 
        (39) это ни разу не табличный документ, а поле html-документа, инфа 100%
 а вообще согласен с (40), нужна конкретная задача на конкретном примере html-страницы. | |||
| 53
    
        craxx 03.12.13✎ 07:47 | 
        (51) в тонком клиенте не проканает     | |||
| 54
    
        craxx 03.12.13✎ 07:48 | 
        +(51) может у него 8.3 на Линуксе))     | |||
| 55
    
        Andrey1957 03.12.13✎ 07:48 | 
        (49-50) И как их применить, если у меня строка при тексовом чтении выходит в виде: 
 Коннект-15001.08.2012 - 31.08.2012110,1694, которая состоит из 3-х реквизитов Коннект-150 01.08.2012 - 31.08.2012 110,1694 ? | |||
| 56
    
        Andrey1957 03.12.13✎ 07:49 | 
        (51) Спасибо. Попробую. Судя по всему теги в этом случае сохраняются, будет что анализировать.     | |||
| 57
    
        Wobland 03.12.13✎ 07:50 | 
        (55) а где тэги? или ты ты csv через хтмл пытаешься читать?     | |||
| 58
    
        Wobland 03.12.13✎ 07:50 | 
        (54) ну тогда пусть завидует виндовсятникам ;)     | |||
| 59
    
        Wobland 03.12.13✎ 07:53 | 
        или это даже не цсв, а просто набор символов     | |||
| 60
    
        Andrey1957 03.12.13✎ 07:53 | 
        (57)Описанное в (55) я получил по схеме: 
 ТекстИзХТМЛ = Новый ИзвлечениеТекста(ПутьФайла); ТекстИзХТМЛ.Записать(ПутьФайлаТХТ); //ПутьФайлаТХТ - полный путь к HTML-файлу. ИсходныйТекст = ТекстИзХТМЛ.ПолучитьТекст(); | |||
| 61
    
        Andrey1957 03.12.13✎ 07:55 | 
        в (60) описка: разумеется ПутьФайла - полный путь к HTML-файлу.     | |||
| 62
    
        Wobland 03.12.13✎ 07:56 | 
        (60) текстовый документ будет с тэгами     | |||
| 63
    
        Andrey1957 03.12.13✎ 07:58 | 
        (62) В отладчике я увидел то, что написал в (55). Из-за чего у меня и возникли проблемы. Или тэги и не должны быть видны?     | |||
| 64
    
        Wobland 03.12.13✎ 07:59 | 
        ни разу не видел ИзвлечениеТекста. судя по названию, он как раз предназначен для избавления от тэгов. со всеми вытекающими     | |||
| 65
    
        Andrey1957 03.12.13✎ 08:02 | 
        Вот что я и получил, похоже. И стал искать иные пути. Кстати,  Wobland, прости за тупость, но в твоем примере (51) что означает переменная ф? И где указан путь к html-файлу?     | |||
| 66
    
        Wobland 03.12.13✎ 08:04 | 
        ф=Новый ТекстовыйДокумент;
 ИмяФайла="D:\tmp\v8_12_112.html"; ф.ИспользуемоеИмяФайла=ИмяФайла; Попытка ф.Прочитать(ИмяФайла); это отладочный код. в чистовике я его откуда-то с тырнета тянул | |||
| 67
    
        Andrey1957 03.12.13✎ 08:06 | 
        Понял. Спасибо. Буду пробовать.     | |||
| 68
    
        ifso 03.12.13✎ 12:27 | 
        (37)
 > открыт файл в виде табличного документа со всеми > возможностями меню Таблица Изначально для открытого/созданного HTML-документа в меню Таблица доступно только "Вставить таблицу". Если таблицу вставить (или она уже есть в HTML-документе) и поместить курсор в таблицу, то уже для активной таблицы в меню Таблица будут доступны все пункты. Т.о. чуда "открыт файл в виде табличного документа", увы, не происходит. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |