Имя: Пароль:
1C
1С v8
Чем можно вычитать 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-документе) и поместить курсор в таблицу, то уже для активной таблицы в меню Таблица будут доступны все пункты.
Т.о. чуда "открыт файл в виде табличного документа", увы, не происходит.