27
При интеграции 1С с веб-сайтами всегда встает вопрос о передачи некоторых данных на веб-сервер. Будь то это передача параметров запроса для получения данных от веб-сервера в 1С или же передача данных из 1С, которые...
14
У разработчиков на платформе 1С иногда возникает задача по взаимодействию системы 1С: Предприятие с различными почтовыми программами и протоколами. 1С Предприятие 8.0 имеет довольно удобные средства для отправки...
9
При обмене данными с веб-сайтами зачастую используется формат JSON. К сожалению, в 1С нет стандартных процедур для работы с данным форматом. В процессе реализации одного из проектов мной был разработан ряд процедур и...
8
Формат JSON в 1С до версии 8.3.6 не реализован, но нижет я приведу примеры функций которые можно использовать для полноценной работы JSON в 1С предыдущий версий. JSON (JavaScript Object Notation) это текстовый формат обмена данными,...
5
В этой статье я постараюсь описать процесс парсинга сайтов средствами 1С с примером.
Это статья не является инструкцией к применению, а лишь демонстрирует возможности 1С.
Что мы имеем?
1. Сайт в интернете, на котором...
Платформа 1С представляет собой достаточно мощный инструмент, предназначенный для решения широкого круга задач. В этой статье мы хотим рассказать об одном типе объекта, с помощью которого можно:
- Работать с компонентами ActiveX;
- Вызывать Javascript;
- Создавать и использовать ссылки на различные объекты базы данных.
Этот объект называется в 1С полеHTMLдокумента.
Элемент управления ПолеHTMLДокумента имеет одно существенное ограничение в использовании – его нельзя использовать для расположенных в таблице полей.
Создание собственного браузера в 1С
Давайте попробуем с помощью этого поля создать обработку, открывающую ссылку на ресурс в интернете:
Проверим, как это работает.. Получим картинку (Рис.4)
Рис.4.
Проанализируем, что мы видим:
- Открылось поисковое окно, со ссылкой на сайт, при этом поиск осуществляется с помощью поисковой системы, назначенной по умолчанию;
- Обработка работает, интернет страницы открываются, переходы по ссылкам осуществляются;
- При вызове ресурса произошла ошибка сценария.
С чем связана ошибка? С тем, что ПолеHTMLДокумента – это фактически типовой Internet Explorer, причем не самой последней версии, который не поддерживает большинство современных ресурсов. Так что сайты, не поддерживающие режим совместимости, будут открываться с ошибками в сценарии.
Для удобства пользователя можно на форме создать навигационные команды «Вперед» и «Назад», которые будут описывать соответствующие перемещения.
Создание ссылки на объект базы данных
Задача состоит в следующем:
- Создать список каких-либо объектов, допустим элементы справочника «Сотрудники»;
- Получить ссылку на каждый из них;
- Открывать их непосредственным нажатием на соответствующую ссылку.
Создадим нашу обработку и форму на ней.
Подробнее рассмотрим, что мы сделали:
- Создали текстовый документ, который содержит «тело» нашего сайта;
- Начало и окончание документа, а так же тело нашего ХТМЛ документа мы описали с помощью соответствующих тегов;
- Записали в него каждого сотрудника;
- В записях сотрудников у нас содержится информация, которая нам понадобится позже, когда мы будем открывать элементы кликая на ФИО сотрудников;
- Установили нашему полю текст, который описывает структуру.
Попробовав сейчас активировать любую из имеющихся гиперссылок мы столкнемся с тем, что «Такая страница не найдена»(Рис.8)
Рис.8
Продолжим описывать обработчик.
Создадим процедуру, которая обрабатывает клик мышки по гиперссылке на элемент справочника (Рис.9).
Рис.9
Рассмотрим её подробнее:
- Прежде всего отключим стандартную обработку щелчка по гиперссылке;
- Получим строку, характеризующую наш элемент, для этого в ДанныеСобытия получим значение параметра Element.id;
- Разделим полученную строку в соответствии с правилами, по которым мы её формировали (название справочника и уникальный идентификатор, разделенные между собой тире);
- Получаем ссылку на элемент, используя функцию ВозвратСсылки;
- Открываем элемент по полученной ссылке.
Протестируем выполнение созданного кода.
Так как в настройках нашей программы запрещено использование модальных окон, выполнение выше приведенного кода завершилось ошибкой (Рис.10). В противном случае все бы отработало нормально.
Рис.10
Зайдем в конфигураторе в меню Текст->Рефакторинг->Нерекомендуемые синхронные вызовы->Преобразовать вызовы модуля. По прошествии некоторого времени текст нашего модуля будет выглядеть как на Рис.11
Рис.11
Опробовав обработку еще раз можно убедиться, что все работает нормально и при щелчке на ссылку открывается соответствующий элемент справочника.
Некоторые пояснения к коду. Статистика говорит, что в пределах одной базы маловероятно существование элементов с одинаковыми идентификаторами, однако платформа может гарантировать уникальность только в пределах одной таблицы. Именно поэтому мы и формировали ссылку из двух частей.
Пара слов о Javascript
Вызовы функций JS в ранних версиях программы осуществлялись через параметр поля document.parentWindow.MyFunk(), однако в современных браузерах эта возможность была утрачена. Не срабатывают так же вызовы через eval().
Выход состоит в использовании специальной функции fireEvent, которая является универсальным механизмом обмена данными между 1С и Javascript.
HTML-редактор используется для создания пользовательских описаний в виде HTML-документов. Окно редактора содержит три закладки, позволяющие осуществлять просмотр и редактирование документа.
На закладке Редактирование документ отображается в текстовом и графическом виде:
На закладке Текст разработчик имеет возможность редактировать HTML-текст документа:
Закладка Просмотр предназначена для отображения документа в том виде, в котором он будет показан пользователю:
Работа с HTML-документом напоминает работу в обычном текстовом редакторе, однако HTML-редактор предоставляет ряд дополнительных возможностей, которые обусловлены использованием формата HTML:
Форматирование текста
Текст HTML-документа можно форматировать: устанавливать его стиль, абзацные отступы, выбирать размер шрифта, параметры, гарнитуру и т.д.:
При копировании текста из других текстовых редакторов (например, Word) HTML-редактор сохраняет исходное форматирование текста.
Таблицы
В HTML-документ можно вставлять таблицы и редактировать как параметры отдельных ячеек таблицы, так и изменять внешний вид и параметры всей таблицы:
Картинки
В HTML-документе могут быть размещены картинки. Разработчик имеет возможность задавать размеры картинки, ее положение и толщину рамки вокруг картинки:
Надписи
HTML-редактор позволяет использовать в документах надписи - специальные объекты HTML-документа. В надписи можно разместить текст, таблицу, картинку или другую надпись. При просмотре документа вложенные объекты надписи будут непрерывно прокручиваться справа налево.
Меня всегда интересовал вопрос, как дела обстоят у российской фирмы 1С в плане web графики на html5. Посмотрим версии 1С 8.2.61 и 8.3.3.641. Зайдем на www.w3schools.com/html/html5_canvas.asp и перенесем примеры в обработку 1С.
Результаты не радуют. 1С в Internet Explorer, как и в тонком клиенте Windows не работает ничего. Видно проверка в 1С идет именно на IE и все замещается и не работает. Без библиотеки excanvas.js(спасибо ее разработчикам и Google) она просто ругается, но и она не спасает. Все остальные браузеры показывают правильный результат. В версии на Linux тоже все хорошо. Но там все предсказуемо из-за web-kit.
Меня 1C научила никогда не отступать от решения задачи, насколько сложной она не казалась с первого раза. Для этого надо понять, а как работает библиотека excanvas. Посмотреть на пример на Инфостарте и вспомнить, что до html5 Microsoft усиленно толкала свою систему VLM (http://msdn.microsoft.com/en-us/library/ee384217%28v=vs.85%29.aspx). Вот она и прекрасно работает со старыми версиями движков IE. И excanvas это эмуляция функций обрисовки графиков html5 через эту систему. Значит 1С надо немного помочь. Посмотрев как эта библиотека работает в старых IE, получилось решение что нужно добавить в для 1С. Делаем дополнительный флаг «Довесок для 1С» и добавляем внутри элементы
Метод к сожалению не универсальный и требует достаточно глубокого погружения в код. Но если вы ограничены в выборе ПО 1С, у Вас может быть не будет другого выхода.
К сожалению с выходом версии 8.3 ситуация не изменилась. Появился новый интерфейс Такси, но вышеописанные проблемы остались. Зато наш труд не пропал даром и все прекрасно работает в Такси.
Если кто захочет поэкспериментировать, скачивайте обработку на моем сайте: http://sikuda.ru/1s-i-html5
Теги: 1с, html5, canvas, ie10, ie7, ie9, 1c 8.3
Данная статья не подлежит комментированию, поскольку её автор ещё не является