JavaScript в 1С

Опубликовал Юрий Коляда (kolyada) в раздел Программирование - Практика программирования

Ну вот не хватает в 1С средств работы с графикой. А в некоторых областях (производство окон ПВХ, мебели и т.п.) это довольно востребовано. Перебробовав много вариантов, я остановился на таком средстве как JS  и VML. Оказалось всё это прекрасно работает в 1С.

Посмотрел я на вот на эти разработки: //infostart.ru/public/22429/ //infostart.ru/projects/1989/ и подумал - зачем так сложно то? Добавить на форму 1С аналоговые часы можно гораздо проще и без использования ВК. Вот набросал пример. На его создание у меня ушло меньше времени (включая поиск скриптов в интернете), чем вот на это описание.

Да и вообще - такой объект 1С  как "ПолеHTML" программистами почти не используется. В то-же время это довольно мощный инструмент. Например, года полтора назад я с помощью его реализовывал в 1С интерактивный графический конструктор для расчета окон ПВХ (VML+JS это единственный способ работы с графикой в 1С без использования ActiveX или ВК). "ПолеHTML" - представлено в 1С в виде DOM модели (тем кто знаком с XML разобраться ничего не стоит). Можно менять прямо из 1С любые свойства и дочерние объеты (отладчик Вам в помощь :)). Для этого объекта в 1С доступны многие события (элементарно делается обратная связь или что-либо интерактивное). Работают любые скрипты, которые работают в IE (в приложенной обработке я привёл пример).

Сам JS довольно простой язык (думаю приведенные примеры в этом убедят), а может довольно многое.

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

Наименование Файл Версия Размер
JSв1С
.zip 16,45Kb
25.11.09
1210
.zip 16,45Kb 1210 Скачать

См. также

Комментарии
1. Трактор Трактор (Трактор) 1109 28.09.09 11:28 Сейчас в теме
Прикольно. Но не для 8.2. Для 8.2 надо по-другому писать.
stoptime; djon10000; +2 Ответить 1
2. Ярослав Тарарака (slaviksoft) 67 28.09.09 11:55 Сейчас в теме
чего-то вторые часы не работают есть тока круг
3. Роман Ершов (MRAK) 694 28.09.09 12:01 Сейчас в теме
4. Трактор Трактор (Трактор) 1109 28.09.09 12:08 Сейчас в теме
(2) У тебя ИЕ глючит. Всё работает.
5. Alxd (salexdv) 28.09.09 12:25 Сейчас в теме
Супер! Ну это однозначно - плюс!
6. Alxd (salexdv) 28.09.09 12:28 Сейчас в теме
Ну теперь понесется душа в рай :D Новых панелей на ИС появится бесчисленное количество :)
7. Владислав Цылёв (vet7777) 463 28.09.09 12:30 Сейчас в теме
и игрушек типа арканоид )
8. sound sound (sound) 519 28.09.09 12:50 Сейчас в теме
9. Asdam (Asdam) 111 28.09.09 14:31 Сейчас в теме
Блин, а фотошоп в 1с можно засунуть? :)
10. Igor Kox (IgorKox) 28.09.09 14:54 Сейчас в теме
11. BlackAvgur (BlackAvgur) 55 28.09.09 14:56 Сейчас в теме
+ Области применения... :idea:
12. Юрий Коляда (kolyada) 289 28.09.09 15:57 Сейчас в теме
(1) Попробовал всё то-же самое сделать в 8.2 на тонком клиенте. В принципе, работает аналогично как и в 8.1. Только присвоение текстового значения полю НТМЛ делается не командой "УстановитьТекст", а просто "=". Сами скрипты JS работают в 8.2 и в 8.1 одинаково.
13. Трактор Трактор (Трактор) 1109 28.09.09 16:58 Сейчас в теме
(12) прикольно. Жаль что эта красотища жёстко привязано к ИЕ.
14. Александр Аверков (Аверков) 107 28.09.09 17:06 Сейчас в теме
15. Юрий Коляда (kolyada) 289 28.09.09 17:31 Сейчас в теме
(13) думаешь если снести IE (со своим компом не хочу эксперементировать), то работать не будет? Не уверен. Но и на такой случай есть ещё SVG (вместо VML) - то же с помощью текстовых скриптов (текстовые чем хороши - их на "лету" можно генерировать или редактировать как хочешь) рисует графику и работает в FireFox.
16. Трактор Трактор (Трактор) 1109 28.09.09 17:34 Сейчас в теме
(15) >> думаешь если снести IE ..., то работать не будет?
Не думаю. Знаю. Поле ХТМЛ документа это и есть ИЕ.

в web клиенте точно работать не будет. Ни в ИЕ ни в Фирефоксе. Там нет такого элемента управления.
17. Юрий Коляда (kolyada) 289 28.09.09 17:50 Сейчас в теме
(16) почему нет такого элемента управления? Обычная неограниченная строка на форме может быть представлена в 8.2 как ПолеHTML (есть в свойствах спец. выпадающий список)
18. Трактор Трактор (Трактор) 1109 28.09.09 17:51 Сейчас в теме
(17) Если ошибаюсь, то буду очень рад. Пока проверить не могу.
19. Роман Зиновьев (Широкий) 689 28.09.09 23:57 Сейчас в теме
20. Алексей Коробов (WiseSnake) 1721 29.09.09 07:14 Сейчас в теме
21. stanislav (stasyan) 29.09.09 08:22 Сейчас в теме
Классно, уверенный Плюс!
22. Алексей Заболотнов (z-alexey) 1311 29.09.09 08:40 Сейчас в теме
Прикольно. Еще бы пример с обратной связью посмотреть :)
23. Ярослав Радкевич (WKBAPKA) 200 29.09.09 10:34 Сейчас в теме
а что это за объект такой часы, это нарисовано или готовый?
24. Юрий Коляда (kolyada) 289 29.09.09 10:42 Сейчас в теме
(23) векторная графика в ПолеHTML
25. ediks (ediks) 319 29.09.09 10:48 Сейчас в теме
Отлично, ПЛЮС! Эта обработка даже сподвигла меня на изучение JavaScript. На основе ее я себе сделал "До конца рабочего дня:" по мотивам аналогичной обработки на ВК. :)
26. Трактор Трактор (Трактор) 1109 29.09.09 11:00 Сейчас в теме
18+ Я таки ошибаюсь! :D

http://users.v8.1c.ru/Info/Platform/8_2_9_356/V8UpdateFrom829Test.htm
События поля HTML-документа будут отработаны и в тонком и веб-клиенте, если в поле помещен HTML-текст или ссылка, указывающая на тот же домен, что и домен приложения.
События поля HTML-документа будут отработаны только в тонком клиенте, если в поле помещен HTML-текст или ссылка, указывающая на чужой (по отношению к домену приложения) домен. Это поведение связано с политикой безопасности браузеров.
27. Юрий Коляда (kolyada) 289 29.09.09 11:27 Сейчас в теме
(22) У меня есть пример только в составе конфигурации (а она очень большая), если будет не лень - попытаюсь вырезать оттуда. Хотя наверное проще что-либо простенькое набросать.

(25) Вот! Вчера поместил обработку и человеку хватило одного дня чтобы изучить (пусть не в деталях) JS. Я же говорил - простой язык :)

(26) Ну вот видишь - скрипты спокойно отработают хоть в толстом клиенте, хоть в тонком, хоть веб. Да и странно было бы чтобы скрипты на JS (заточенные для интернета) не работали бы на Веб-клиенте, который и сам то из них в основном состоит.

28. Алексей Заболотнов (z-alexey) 1311 29.09.09 12:58 Сейчас в теме
(27) ну вот например тут есть календарь:
http://scripts.protoplex.ru/scripts_show/2217.html

пользователь выбирает дату. Можно сделать пример - сообщить дату, которую он выбрал. :)
29. Юрий Коляда (kolyada) 289 29.09.09 14:42 Сейчас в теме
(28) Ну это очень просто: в модуле формы 1С создаёшь процедуру соотв. событию onclick ПоляHTML. Второй параметр который передаётся в эту процедуру (pEvtObj) и есть тот объект (рисунок, элемент, таблица, ячейка и т.п.) на который ты нажал. Отладчиком смотришь какие свойства присутствуют у объекта (я, например, просто смотрел Id, который в JS скрипте присваивал всем элементам, но можно что-либо другое анализировать) и в зависимости от значений этих свойств делал то или иное действие.
30. Юрий Португалов (Sprite) 471 29.09.09 15:06 Сейчас в теме
Эх.... Хорошо было бы для 7.7.....
31. NoMAx (NoMax) 232 29.09.09 15:37 Сейчас в теме
(30) Да вобщем на два пальца.
возьми http://infostart.ru/public/57767/ и туда вставляй код, да и любуйся :)
32. Олег Пономаренко (O-Planet) 6656 30.09.09 00:38 Сейчас в теме
Прикольно, но кажется, что нишу разработчиков ВК в 7.7 в восьмерке сменят те, кто владеет web-технологиями. Потому, как думается мне, что ВК в 8 менее актуально, чем web.
33. Олег Пономаренко (O-Planet) 6656 30.09.09 00:40 Сейчас в теме
... только VML - это же типа плагин. Он разве не ставится дополнительно?
34. Юрий Коляда (kolyada) 289 30.09.09 02:33 Сейчас в теме
(33) да нет - не плагин. VML поддерживается IE начиная с 5-ой версии (т.е уже 11 лет). Отдельно устанавливать не надо. Каким образом это работает в 1С - я не разбирался. То ли используются стандартные библиотеки от микрософт, то ли 1С свои поставляет - по мне не так важно.

В принципе я когда разрабатывал приложение где использовал эту технологию, столкнулся только с одной существенной проблемой - не смог стандартными средствами (без ВК) сохранить полученный векторный рисунок (а ведь по сути это набор команд) в растровом формате (типа bmp, jpeg и т.п.). А это было необходимо для определенных функций в программе. Но потом сменил работу и проблемы не стало :)
35. Олег Пономаренко (O-Planet) 6656 30.09.09 02:38 Сейчас в теме
(34) А что там не понимать? Просто 1С строит свой хтмлдокумент на основе com технологий. Т.е., какой на компе IE, такой и хтмлдокумент.

Мммм... А есть краткое (и не очень) описание функционала VML?

По поводу сохранения... Можно было бы, наверное, что-то придумать. Вплоть до скрина области экрана средствами IE.
36. Юрий Коляда (kolyada) 289 30.09.09 02:42 Сейчас в теме
37. Сергей Толмачев (sss999) 36 30.09.09 07:09 Сейчас в теме
блин тока писать умею а читать нет,ниче нимогу сказать
38. dushelov (Душелов) 30.09.09 10:10 Сейчас в теме
39. volod (volod) 30.09.09 10:44 Сейчас в теме
Даешь еще примеры в обработку
40. Дмитрий Герасименко (Winston) 2 30.09.09 17:16 Сейчас в теме
А пример с обратной связью..
41. Виталий Фролов (vita8383) 30.09.09 17:18 Сейчас в теме
А книжку можешь подсказать по JS, чтобы разобратся в коде
42. ediks (ediks) 319 30.09.09 17:26 Сейчас в теме
(41) можно http://www.w3schools.com. Правда, все английском, но примеров туча.
43. Виталий Фролов (vita8383) 30.09.09 17:31 Сейчас в теме
а на русском что-нибудь есть? :D
44. Юрий Коляда (kolyada) 289 30.09.09 17:35 Сейчас в теме
(43) я уже приводил ссылку на пред. странице. Перейди там в оглавление.
45. ediks (ediks) 319 30.09.09 21:52 Сейчас в теме
46. Александр Волков (aavolkoff) 63 01.10.09 01:14 Сейчас в теме
Ндя... только вот для увеличения юзабельности в типовых конфах давным-давно яваскрипт используется (зачастую исключительно для красивости, но все же))))
47. Олег Черкасов (oleg974) 123 01.10.09 08:29 Сейчас в теме
Спасибо. Какая перелесть.
48. Аркадий Кучер (Abadonna) 3659 01.10.09 18:17 Сейчас в теме
Спасибо автор, за пинок в нужном направлении ;)
Я теперь знаю как всадить часики прям на окно MDI (тёмно-серое в 1С).
А хоть бы и ИС туда при старте 1С :D
49. Аркадий Кучер (Abadonna) 3659 01.10.09 18:45 Сейчас в теме
Вот, например, привет прям из 1С без всяких внешних форм ;)
Прикрепленные файлы:
50. Аркадий Кучер (Abadonna) 3659 01.10.09 20:40 Сейчас в теме
О, блин, 1С-кое Поле HTML Документа не поддерживает, оказывается, всех свойств HTML -кода :cry:
Нет ни контекстного меню по правой кнопке, ни других свойств актив-икса.
Я у себя порадовался, что у часиков из макета 2 можно открыть/закрыть крышку, решил проверить на на разработке автора - ни фига :(
Че-то не долелали они...
Прикрепленные файлы:
51. Аркадий Кучер (Abadonna) 3659 02.10.09 12:40 Сейчас в теме
(9)>Блин, а фотошоп в 1с можно засунуть?
Я уже попросил Билла, они готовят к выпуску релиз Windows1C, там внутри всё будет :D
52. Александр Кузин (sashocq) 187 04.10.09 10:45 Сейчас в теме
53. Alex_Sun (Alex_Sun) 05.10.09 08:59 Сейчас в теме
А как что-то похожее написать с ноля?
54. tnnick (tnnick) 21.10.09 13:46 Сейчас в теме
Ну как минимум - ОТЛИЧНО!!! Немного модификации и работает плеер (не актив Х). Если автору будет в охотку, может заменить на "прикрепленную" :)
Прикрепленные файлы:
JSв1С.epf
55. Юрий Коляда (kolyada) 289 21.10.09 15:38 Сейчас в теме
(54) прикрепленный файлик у меня не скачивается почему-то. Лучше сам сделай обработку и выложи отдельно.
56. Юрий С (G_Re) 47 11.11.09 10:06 Сейчас в теме
Попробовал смоделировать в 7.7
Тексты HTML те же.
http://infostart.ru/public/60137/
57. Сергей Гуров (hansel) 17 30.11.09 22:55 Сейчас в теме
Просто. Великолепно.
Просто великолепно :idea:
58. onlineoff (onlineoff) 15.09.11 13:28 Сейчас в теме
59. tvv (pmtvv) 07.10.11 20:30 Сейчас в теме
60. Виталий Журавлев (dmd) 11.10.11 19:45 Сейчас в теме
Идея реализации понравилась. Скачал работает. Переделал под собственные нужды
61. me Halyna (mehalyna) 16.10.11 19:55 Сейчас в теме
Спасибо, пригодилось. Немного переделала под себя. красота!
62. GSA3D 16.01.12 14:21 Сейчас в теме
Очень интересно. А получится ли сделать показ изображений из внешних файлов через JS на 1с?
63. Сергей Кудашкин (sikuda) 477 13.03.13 18:54 Сейчас в теме
Это VML от Microsoft (schemas-microsoft-com:vml). Но развитие не последовало. Работает в IE7,8 и 1С
А с html5 в 1c пока все грусно http://infostart.ru/public/174856
64. Andrey Maevski (t955938) 11.02.14 12:55 Сейчас в теме
Очень интересное решение. Давно искал способ использование графики для 1с
65. Сергей Кудашкин (sikuda) 477 20.02.14 17:25 Сейчас в теме
66. Алексей Смолинский (NewLifeMan) 10.04.14 13:19 Сейчас в теме
(63) sikuda, а причем тут 1С и HTML5? 1С работает с движком ИЕ, так что все зависит от того, какая версия ИЕ установлена на машине, где все это запускается..
67. Сергей Кудашкин (sikuda) 477 20.06.15 20:58 Сейчас в теме
(66) NewLifeMan, Да но работает ie в 1С в режиме совместимости. И в этом универсальность для 1С и сложность применения для интернет технологий.
68. Дмитрий Копылов (марксист) 03.05.16 01:02 Сейчас в теме
а есть толковая статья о работе с Полеhtml и js в 1с?подскажите пожалуйста
69. Юрий Лазаренко (TitanLuchs) 03.05.16 07:29 Сейчас в теме
(68) марксист, а что именно интересует? Скажите, напишу вам статью.
70. Дмитрий Копылов (марксист) 08.05.16 23:34 Сейчас в теме
(69) TitanLuchs, меня интересует практически все,от вывода ссылок на элементы,до обработки событий мыши.потому что в веб технологиях я не очень,а какой то структурированный материал для начала понимания очень тяжело найти(буду очень благодарен за статью)
71. Алексей Мигачев (slipers) 10.11.16 10:23 Сейчас в теме
VML+JS это единственный способ работы с графикой в 1С


Как вариант можно использовать processing https://p5js.org/examples/