Ошнуров Андрей | Программист | Предприниматель

«РусскийФокс — 1С-подобный язык программирования»

Новый язык 1С-подобный объектно-ориентированный язык программирования РусскийФокс (интерпретатор), FreeWare. Удобен для обучения (Размер платформы 14Мб, инсталляции не требует. Разрабатывается на FoxPro 9) Удобен для системных администраторов: писать сценарии для командной строки. Операционная система WinXP и выше. На данный момент из синтакс-помошника учебной версии 1С реализованы все функции работы со строками, все функции работы со значениями типа Дата, функции преобразования значений (число, строка, дата). Пока отсутствует отладчик, но реализованы операторы ПОПЫТКА, ИСКЛЮЧЕНИЕ, КОНЕЦПОПЫТКИ; В ближайшее время планируется создать объекты для работы с DBF-файлами (с CDX индексами), объект для работы с MySQL-сервером, генерация отчетных форм на основе шаблонов OpenOffice и LibreOffice (либо на MS Excel), создание экранных форм ввода данных, создания меню, объекты типа строка ввода, кнопки, таблица, чекбоксы и т.д.. Особое внимание будет уделено взаимодействию с платформой 1С. Доклад будет посвящен краткому обзору возможностей и демонстрации примеров написания кода.

HTML 5 Canvas в 1С или Google нам, может быть, поможет

Обмен - Интеграция с WEB

Продолжая статью Встроенный браузер в 1С. Кто здесь? (http://infostart.ru/public/171763) продолжаем копаться внутри интернет технологий 1С.

Доброго времени суток!

Применим академический подход. Перейдем на http://www.w3schools.com/html/html5_canvas.asp и возьмем примеры оттуда и напишем небольшую обработку HTML5-1С-min.epf.

Результаты лучше наблюдать самим и проверить в своем любимом браузере.(см. картинки). Но вывод все тот-же. Не тонком клиенте Windows 1с, не в вэб IE не показывает ничего кроме рамки. Даже библиотека excanvas.js от Google не помогает, только удаляет показ ошибок скриптов. В 8.3.3.641 все аналогично на Windows,  а на Linux c webkit все показывает. Видно баузерный движок в тонком клиенте Windows очень хорошо отлажен для 1С, но ядро имеет древнее на IE7, но как-то урезанное.

Меня 1C научила никогда не отступать от решения задачи, насколько сложной она не казалась с первого раза. Для этого надо понять, а как работает библиотека excanvas. Посмотреть на пример в //infostart.ru/public/57648/. Да вспомнить, что до html5 Microsoft усиленно толкала свою систему VLM (http://msdn.microsoft.com/en-us/library/ee384217%28v=vs.85%29.aspx). Вот она и прекрасно работает со старыми версиями движков IE. И excanvas это эмуляция функций обрисовки графиков html5 через эту систему. Значит 1С надо немного помочь. Посмотрев как эта библиотека работает в старых IE, получилось решение что нужно добавить в для 1С.

В старых браузерах excanvas  может вызваться рекурсивно, а в движке браузера 1С нет. Для простых примеров поможем 1С заполнить html файл. Используем флаг excanvas_1c("Довесок для 1С") и макет с таким-же именем.

Если excanvas_1c Тогда
    Скрипт = ПолучитьМакет("excanvas_1c").ПолучитьТекст();   
    Страница = СтрЗаменить(Страница, "", Скрипт +"");
КонецЕсли;

Тестируем обработку HTML5-1С-min вложение к статье. Ура, заработало. Делаем 1С ближе к HTML5


Копаться внутри старой технологии достаточно утомительно. Второй способ научить внутри 1С понимать современные стандарты это принудительно установить поле HTML в режим совместимости с последней версией. В обработке надо поставить флаг на поле "Включить эмуляцию IE=Edge".Но данный способ тоже не идеалный и не спасает от всех ошибок в барузере, но рабочий. И дает результат показа тестовых примеров на w3schools.

 

И из маленьких мелочей которых очень хочется: 

Хочется вывести в тонком клиенте в HTMLПоле свою картинку. Посмотим внимательно в отладке 1С на навигационную ссылку и в браузере в инструментах разработчика:

  1. Навигационная ссылка - "e1cib/data/Справочник.Товары.ФайлКартинки?ref=99b380c16ef91aa211e27a59f49b6685"
  2. Код интернет страницы - < img style="position: relative; cursor: default; width: 350px; height: 288px; left: 488px; top: 19px;" title="" src="http://localhost/1c-test/ru_RU/e1cib/data/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA.%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%D1%8B.%D0%A4%D0%B0%D0%B9%D0%BB%D0%9A%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8?ref=99b380c16ef91aa211e27a59f49b6685" alt="" / >

Это похоже одно и тоже. Значит простая идея заключается в создании ПолучитьНавигационнуюСсылку и прописании ее в HTMLПоле:

СтраницаНТML = "
|< html >
|< head >
|< /head >
|< body >
|< div > Тест страницы < /div >
|< div > < img src='"+СсылкаНаКартинку+"'/ > Тест картинки < / div >
|< / body >
|< / html > ";

Аналогично работает и функция ПоместитьВоВременноеХранилище.

Проверим работу. Тонкий клиент и web клиент работают замечательно. 

 

P.S. Сайт: sikuda.ru 

 

           

Скачать файлы

Наименование Файл Версия Размер
HTML5-1С-min.epf
.epf 64,15Kb
27.07.15
122
.epf 64,15Kb 122 Скачать

См. также

Комментарии
Сортировка: Древо
1. Magister 134 22.02.13 01:11 Сейчас в теме
Что-то непонятно, как всё-таки использовать внутри 1С упомянутую библиотеку?
ПолучитьНавигационнуюСсылку ведь, насколько я помню, только для объектов внутри базы работает.
2. sikuda 513 22.02.13 09:47 Сейчас в теме
(1) Magister, добавил в прикрепленном файле обработку эксперимента с которой получал картинки.
3. Magister 134 22.02.13 16:03 Сейчас в теме
Спасибо, посмотрел.
Но это ведь не картинки, а построение средствами Javascript :)
Так что если политикой домена Javascript отключен - пользователь ничего не увидит.
Как и не увидит, скорее всего, если на компьютере IE 8 или ниже. Разве что там специфичные скрипты под него подключены.
4. sikuda 513 24.02.13 15:57 Сейчас в теме
(3) Нет дело похоже не в отключении скриптов. Точнее внешние скрипты 1С отключит, а внутренние нужны самой 1С. 1С вклинивается в процесс обработки и в первую очередь летят картинки(как внешние данные), а потом графики. Надо еще в этом покопаться...
5. Magister 134 25.02.13 00:44 Сейчас в теме
(4) Эм... картинки у меня вполне себе спокойно отображаются через
<img src="http://192.168.0.1/images/img.jpg">

Ничего не режется.
6. sikuda 513 25.02.13 11:02 Сейчас в теме
Это не обработчик от 1С. Это у вас какой-нибудь StaticFile(если IIS). Посмотрите внимательно настройку вэб-сервера. Да надо углублять тему и писать маленькие тесты...
7. Magister 134 26.02.13 00:14 Сейчас в теме
(6) Естественно, этот файл отдается внешним по отношению к 1С веб-сервером.
Наверное я не понял, в каком случае проблема таки возникает...
8. sikuda 513 06.03.13 17:41 Сейчас в теме
(7) с тонкой настройкой вэб-сервера не смогу помочь, а маленькие тесты на HTML5 написал. Заходите на сайт sikuda.ru
9. sikuda 513 24.04.13 14:51 Сейчас в теме
Нашел способ чтобы примеры html5 canvas заработали. Но это явно костыль. Работаю с графиками хотя интерес к ним маленький интерес http://www.forum.mista.ru/topic.php?id=662091
10. t955938 11.02.14 13:05 Сейчас в теме
Использование данного метода позволит решить и более сложные задачи. Связанные с построение сложных объектов через примитивы.
Оставьте свое сообщение