Com объекты в html

Выполнить JavaScript в 1С:Предприятии

В 1С:Предприятии есть возможность использовать COM-объекты. Доступность объектов сторонних приложений значительно, расширяет возможности для программирования. COM технология в 1С системе, позволяет выполнять функции написанные на других языках программирования.

Выполнить JavaScript в COM-объекте «MSScriptControl.ScriptControl»

COM-объект «MSScriptControl.ScriptControl» применяется для выполнения функций написанных на языке JavaScript. Например, чтобы сложить два числа необходимо написать функцию на языке JavaScript.

Пример
Число1 = 2
Число2 = 3
Сумма = 5

Функция ПолучитьСумму(Число1, Число2)

Попытка
ОбъектSC = Новый COMОбъект("MSScriptControl.ScriptControl");
ОбъектSC.Language = "JScript";
Исключение
Сообщить("Объект не создан: " + ОписаниеОшибки());
Возврат 0;
КонецПопытки;

СтрокаJS = "function Summa(a, b)
| | var c = a + b;
| return c;
|>"
;

ОбъектSC.AddCode(СтрокаJS);
СтрокаВызоваФункции = "Summa(" + Число1 + ", " + Число2 + ");";
Сумма = ОбъектSC.Eval(СтрокаВызоваФункции);

Возврат Сумма;

КонецФункции

Данная функция выполняет JavaScript функцию, которая возвращает сумму двух чисел. Синтаксис языка JavaScript подробно описывается во многих специализированных книгах по программированию.

Выполнить JavaScript в COM-объекте «HtmlFile»

В данном COM-объекте JavaScript выполняется на html странице.

Функция ПолучитьСумму(Число1, Число2) 

Текст = "";

НовыйHTMLДокумент = Новый COMОбъект("HtmlFile");
НовыйHTMLДокумент.open("text/html");
НовыйHTMLДокумент.write(Текст);
НовыйHTMLДокумент.close();

Возврат НовыйHTMLДокумент.documentElement.outerText;

КонецФункции

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

О сайте Обратная связь Правила Новости 1С Copyright © 2023
Цитирование материалов (тексты, изображения, программный код) допускается только с размещением активной ссылки на сайт 1CLenta.ru

Источник

COM Объект для HTML

а нужно чтобы обработка искала файлы в определенной
директории, потом обращалась через ком объект к ниму
вот вообщем и все. Сейчас именно проблема обратиться к файлу как COM Объекту.

html не более чем разметка, о каком com-е идет речь? 😀 Подозреваю, что вам просто нужно распарсить html. в конфигураторе F1 поиск DOM.
про поиск файлов — тоже поиск в справке — НайтиФайлы

Поиск файлов и весь основной функционал парсинга реализованы уже
Просто сейчас я помещаю html файл в табличное поле на форме обрабтки
потом обращаюсь к нему ЭлементыФормы.ПолеHTMLДокумента2.Перейти(«D:\имя.htm»);
и дальше работаю с ним через ком объект. Просто для работы таким образом
через элементы формы обращаться к HTML документу неудобно. Сейчас я делаю
чтобы обработка выбирала файлы из каталога перебирала их по одному получала
СОМ объект для каждого файла. Перебор это ерунда, его я уже сделал
основная проблема получить СОМ объект. Пробовал ConHTML = ПолучитьCOMОбъект(ФайлHTML.ПолноеИмя)
1С ругается на раширение файла

«ПолеHTMLДокумента.Документ
ПолеHTMLДокумента (HTMLDocumentField)
Документ (Document)
Использование:
Только чтение.
Описание:
Тип: COMОбъект. Предоставляет доступ к HTML документу.
Описание объекта, в целом, определяется стандартом»

(3) я же написал, что html не более чем разметка, почитайте справку, посмотрите типовую обработку «Обозреватель» (кажется так называется), если удобно так, то считывайте html как текст, затем методом УстановитьТекст()

ConHTML = ПолучитьCOMОбъект(ФайлHTML.ПолноеИмя) — возвращает com объект по названию

ПолеHTMLДокумента.Документ
ПолеHTMLДокумента (HTMLDocumentField)
Документ (Document)
Использование:
Только чтение.
Описание:
Тип: COMОбъект. Предоставляет доступ к HTML документу.
Описание объекта, в целом, определяется стандартом» — это уже сам COMобъект.
Смотри описание функций и процедур ПолеHTMLДокумента

ConHTML = ПолучитьCOMОбъект(ФайлHTML.ПолноеИмя) — возвращает com объект по названию
Такой результат. Этот метод я пытался использовать в самом начале
: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
ConHTML = ПолучитьCOMОбъект(ФайлHTML.ПолноеИмя);
по причине:
Ошибка получения объекта COM: Расширение имени файла задано неверно

А как можно получить ОболочкаHTMLДокумента

Нашел решение если кому интересно
МассивФайлов = НайтиФайлы(ЭлементыФормы.ПолеВвода1.Значение, «*»);

Для Каждого ФайлHTML Из МассивФайлов Цикл
Сообщить(ФайлHTML.ПолноеИмя);

objIE = Новый COMОбъект(«InternetExplorer.Application»);
objIE.Navigate(ФайлHTML.ПолноеИмя);
ТелоДокумента = objIE.Document.body;

МассивTBODY = ТелоДокумента.getElementsByTagName(«TBODY»);
Основной код

(7) Честно говоря никому не интересно. Тоже самое можно сделать и через ПолеHtmlДокумента. и к тому же лучше делать objIE.Visible = false , а создавать в цикле objIE это вообще жесть, вынеси из цикла

(7) помнишь я писал про DOM? . если что-то непонятно погуглить и получить http://www.script-coding.com/DOM.html

да и все еще название темы меня пугает. COM для html это что-то странное. objIE или ПолеHtmlДокумента это не html. это оболочки над IE, использующие в том числе com технологию для взаимодействия.

Для будущих html-разбирателей — советую использовать следующий набор инструментов
fiddler, firebug+firepath+mozzila, tidy, curl
Основная идея сводить с помощью tidy html в xml и получать нужную информацию через xpath. есть еще htmlquery, который доступен по com.

Источник

1С 8.x : Формирование HTML-документа, содержащего ссылки на объекты базы данных

Распечатать

В данной статье рассматривается способ программного формирования HTML документа, содержащего ссылки на объекты базы данных 1С, такие как справочники, документы и т.д. Показан пример построения обработчика события OnClick ПоляHTMLДокумента, для обработки клика на html-ссылке.

Предисловие
Однажды, дописывая обработку, создающую и модифицирующую, не суть важно какие документы, я подумал, что неплохо было бы вывести для пользователя некое резюме:
“Создан документ такой-то”
“Изменен документ такой-то” и т.д.
От обычного, в таких случаях, вывода информации в окно сообщений я сразу отказался, так как не удобно это, сначала читать в окне сообщений “Создан документ … ” а потом запоминать его номер, открывать соответствующий журнал (или форму списка) и искать там этот документ. А если документов много и пользователь хочет посмотреть все документы?(или выборочно) Насколько это неудобно я убедился при отладке обработки …
То, что в форме есть элемент управления именуемый ПолеHTMLДокумента я конечно знал, но вот представилась возможность познакомиться с ним поближе. Было решено реестр обработанных документов выводить в виде html документа содержащего ссылки на эти самые документы, а по клику на ссылке открывать форму соответствующего документа. Здесь мне многие могут возразить: “А почему бы для этих целей не использовать обычный макет, выводимый в табличный документ, а для открытия документов использовать расшифровку? И чем Ваш способ лучше?” Отвечаю: Конечно можно использовать, и мой способ ничем не лучше. Он просто другой. Ведь у хорошего программиста для решения одной задачи должно быть в арсенале несколько инструментов.
Итак, перейдем от слов к делу, в рамках данной статьи рассмотрим следующую задачу: Сформировать html-документ, содержащий ссылки на элементы справочника номенклатура, по клику требуется открывать форму соответствующего элемента. Создаем новый отчет, его форму, на форме размещаем элемент управления ПолеHTMLДокумента.

Текст модуля формы:
Код 1C v 8.х

 Процедура ДобавитьТекстHTML(ТекстHTML, Элемент); 
// Ссылку будем формировать хитро:
// Предполагаем что символ "-" не входит в имена объектов метаданных,
// учавствующих в формировании html
// Тогда ссылка будет иметь следующий вид:
// Номенклатура-d341d377-b3b1-11dc-a100-0011d85708ff
// Передавать нашу ссылку будем через атрибут id
СсылкаНаЭлемент = Элемент.Метаданные().Имя+"-"
+Элемент.Ссылка.УникальныйИдентификатор();
ТекстHTML.ДобавитьСтроку(" + Элемент + """ >"+Элемент+"");
КонецПроцедуры

Процедура ДействияФормыСформировать(Кнопка)
Запрос = Новый Запрос("
|ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура");
ТекстHTML = Новый ТекстовыйДокумент;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДобавитьТекстHTML(ТекстHTML, Выборка.Ссылка);
КонецЦикла;
ЭлементыФормы.ПолеHTMLДокумента.УстановитьТекст(ТекстHTML.ПолучитьТекст());
КонецПроцедуры

Ну вот html мы сформировали, теперь чтобы ссылки “ожили” надо написать обработчик события OnClick элемента управления ПолеHTMLДокумента.
Код 1C v 8.х

Заключение
Обратите внимание что ссылку я формировал следующим образом:
— это сделано для того, чтобы в обработчике onclick можно было определить к какому объекту метаданных относится данный УникальныйИдентификатор, потому что имея ТОЛЬКО УникальныйИдентификатор невозможно определить к какому объекту метаданных он относиться. Точнее возможно, но уж слишком долго и неудобно – путем перебора всех метаданных в цикле, для каждого объекта метаданных выполнять попытку .ПолучитьСсылку(Новый УникальныйИдентификатор(НашУникальныйИдентификатор))
Хотя в нашем примере только один справочник, и указывать его вид было необязательно, и так понятно что это УникальныйИдентификатор элемента справочника Номенклатура, но вдруг Вам потребуется работать с несколькими справочниками, вот тут то мой способ задания ссылки Вам и пригодится. Скачивать файлы может только зарегистрированный пользователь!

P.S. Платформа 8.2 имеет встроенный механизм работы со ссылками на объекты БД и данная задача наверняка упростится, но это уже другая тема.
Источник: obrabotki.com

Распечатать

Похожие FAQ

10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает 🙂 И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей. COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=» D:ВашаБаза1с77″ ; Пользователь= Посмотреть все результаты поиска похожих

Еще в этой же категории

Передача файлов и данных на веб-сервер из 1С методами GET и POST 46
При интеграции 1С с веб-сайтами всегда встает вопрос о передачи некоторых данных на веб-сервер. Будь то это передача параметров запроса для получения данных от веб-сервера в 1С или же передача данных из 1С, которые должны быть сохранены или каким-то Работа с Почтой в 1С: Предприятие v 8 19
У разработчиков на платформе 1С иногда возникает задача по взаимодействию системы 1С: Предприятие с различными почтовыми программами и протоколами. 1С Предприятие 8.0 имеет довольно удобные средства для отправки сообщений, импорта писем из почтового Работа с форматом JSON в 1С 19
При обмене данными с веб-сайтами зачастую используется формат JSON. К сожалению, в 1С нет стандартных процедур для работы с данным форматом. В процессе реализации одного из проектов мной был разработан ряд процедур и функций облегчающих жизнь програ Обмен данными с сайтом используя формат JSON в 1С 14
Формат JSON в 1С до версии 8.3.6 не реализован, но нижет я приведу примеры функций которые можно использовать для полноценной работы JSON в 1С предыдущий версий. JSON (JavaScript Object Notation) это текстовый формат обмена данными, широко ис Парсер сайта на 1С 10
В этой статье я постараюсь описать процесс парсинга сайтов средствами 1С с примером. Это статья не является инструкцией к применению, а лишь демонстрирует возможности 1С. Что мы имеем? 1. Сайт в интернете, на котором располагается список товаро Посмотреть все в категории Работа с Интернет, Почтой (Mail), FTP

Источник

Читайте также:  Windows fix it java
Оцените статью