Способы построения богатого пользовательского интерфейса на управляемых формах 1С

Данный обзор появился в рамках стартапа «Проект Доминикана» и является своеобразным отчетом о проделанной работе перед сообществом 1С

Способы построение богатого пользовательского интерфейса на управляемых формах 1С

Данный обзор появился в рамках стартапа «Проект Доминикана» и является своеобразным отчетом о проделанной работе перед сообществом 1С. 

Управляемые формы закономерно появились в 1С 8.2 с ориентацией на клиент-серверное выполнение. В клиент-серверном подходе происходит четкое разделение выполнения кода на стороне клиента, на стороне сервера и появляются механизмы обмена данными, минимизирующие трафик. С большинством повседневных задач управляемые формы от 1С справляются. Но остаются более специфические задачи, где возможностей родных средств 1С недостаточно. Происходит потеря функциональности по сравнению с неуправляемыми формами. В первую очередь это касается гибкости в настройке интерфейса и добавлении самописных элементов управления. 

Недостатки в гибкости настройки интерфейса проявляются, например, в таких деталях, как невозможность развернуть форму на весь экран (http://forum.infostart.ru/forum14/topic67251/ ), невозможность управлять шириной колонки в таблице (http://forum.infostart.ru/forum26/topic48604/ ), невозможность управлять шириной бордюра-отступа между элементами и т.д.

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

[more]

Active X

Проще всего начать с Active X – это хорошо известный всем по неуправляемым формам способ. Поддержка Active X снята в управляемых формах, но обходной способ запуска остался. Запуск производится через веб-браузер. Способ подключения описан здесь  http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=557408

У Active X, на мой взгляд, больше всего недостатков среди всех способов:

1. Процесс создания (примеры от Microsoft на VC++) чрезмерно трудоемкий. Намного проще создать Windows Forms приложение.Net в режиме совместимости с ActiveX (это следующий способ).

2. Потребность в установке дополнительных компонентов на стороне клиента, например, VC++ runtime, ATL. Можно ATL/MFC статически присоединить к библиотеке, но размер ocx/dll увеличится значительно.

3. Жесткая привязка к Windows и IE. Технология от Microsoft, поэтому на Linux работать не будет, использование веб-клиента ограничено IE. 

4. Особые требования по настройке безопасности в веб-браузере. Просто так на веб-клиенте ActiveX запустить не получится. 

.Net framework (WPF или WinForms)

.Net framework содержит самые мощные средства визуализации вплоть до поддержки 3д и DirectX. Разработка происходит в разы быстрее, чем разработка компонентов ActiveX на VC++. Несмотря на то, что у технологии есть противники, многие ведущие разработчики 1С активно пользуются фреймворком, например, Инталев. 

Способ подключения к 1С WinForms-компонентов через Active X описан здесь

//infostart.ru/public/61064/

Способ подключения WPF через HwndHost и .Net Bridge можно найти в декабрьском номере журнала MSDeveloper за 2011 год, а примеры обработок скачать здесь:

http://www.richmedia.us/post/2011/12/28/1c-ms-charts-msdeveloper.aspx

Использование .Net framework 4 перспективно, например, для создания диаграмм, которые превосходят диаграммы 1С. По другим возможностям WPF/WinForms сравнивать не приходится: анимации, градиентов, 3д, DirectX в 1С нет. 

Например, такая диаграмма-воронка из .Net 4 используется в Microsoft Dynamics CRM. 

 

Для сравнения такие воронки в 1С:

 

 

 

Биржевая диаграмма средствами .Net,  

 

ниже сравнение из 1С

 

.Net framework имеет смысл использовать для создания сложных графических или инженерных приложений. Например, .Net хорошо проявил себя в 1С-приложении моделирования производства окон. 

Недостатки использования .Net framework аналогичны недостаткам Active X, за исключением того, что WPF/WinForms приложения и быстрее создавать, чем Active X.

Rich Internet Application

Современное «насыщенное» Интернет-приложение строится на основе Silverlight, Adobe Flash или HTML5. HTML5 применительно к 1С вычеркиваем: тонкий клиент 1С использует IE7, а поддержка HTML5 началась с IE9. Silverlight намеренно выставлен вперед, так как этот плагин сочетается с .Net framework – способом, описанном выше. По сути Silverlight – это урезанный .Net framework c WPF-интерфейсом, встроенный в браузер. 

Подключение к 1С на примере Silverlight подробно описано в статье

http://1clancer.ru/article/vstraivaem_silverlight-prilozhenie_v_lyubuyu_formu_1s_predpriyatie_800

Важной особенностью Silverlight является то обстоятельство, что в тонком и веб-клиенте интерфейс выглядит идентично. Эта ценность станет особенно заметной при рассмотрении следующего способа HTML+JS. Вторая положительная черта – меньшая требовательность к настройкам безопасности браузера и поддержка не только IE-браузеров. Ниже скриншоты экранов для тонкого клиента и веб-клиента (Google Chrome): открывается страница с демонстрационным CRM-приложением: http://demos.telerik.com/silverlight/crm/

 

 

Для Flash аналогично, можно сделать обработку с показом ссылки http://www.asual.com/enflash/demos/xml.html

  

Метод хорош еще тем, что в большинстве случаев требуется только один файл-контейнер, в который скомпилированы ресурсы. Могут быть сложности с поиском подходящих элементов управления, некоторые из которых могут  быть коммерческими.

HTML + JS

Стандартный метод  (HTML) для типовых конфигураций 1С. Хорош, когда требуется разместить простейшие html-элементы управления (кнопки, надписи). Если проект усложняется, форматирование становится сложно управляемым из-за противоречия между современными браузерами в веб-клиенте 1С и древним IE6/7 в тонком клиенте. Как следствие появляются разные нехорошие эффекты. 

Так должно было быть для страницы http://maninblack.info/_proj/jquery-ui-ribbon/demos/ribbon/

Так получилось в тонком клиенте:

 

Так должно было быть  для страницы http://demos.kendoui.com/websushi/#/menu/1  

Так получилось в тонком клиенте

 

 

Выводы

 

Основные сравнительные характеристики выведены в таблицу. Победители по каждой обозначены цветом. Цвет показывает, что победителями стали HTML+JS (что ожидаемо по типовым конфигурациям) и RIA.

 

  Active X .Net framework RIA Html+JS
Сложность разработки Сложная Средняя Средняя Простая
Совместимость с Linux простого проекта Нет Нет Да Да
Совместимость с Liunx сложного проекта* Нет Нет Нет Нет
Для веб-клиента требуется IE Да Да Нет Нет
Необходимость установки у клиента дополнительных компонентов Да, без статической линковки Да Да (в большинстве случаев Flash установлен) Нет
Требования к особой настройке безопасности Да Да Нет Нет
Одинаковый вид в тонком и веб-клиенте простого проекта Да Да Да Да
Одинаковый вид в тонком и веб-клиенте сложного проекта Да Да Да Нет
Число отдельных файлов в проекте Малое, ocx-файл Малое, dll-сборка Малое, xap/swf-контейнер Большое, отдельные файлы рисунков, js, css

* На сложных проектах, когда идет взаимный обмен данными между 1С и интерфейсом использование на Linux затруднительно. В большинстве подходов по интеграции используется Windows-элемент управления WebBrowser Control. 

В интерфейсе рекомендуется в большинстве случаев использовать родные элементы управления 1С. Сторонними средствами, например, сложно заменить таблицу 1C, источником которой может быть огромный массив данных. 1С в таком случае сама заботится о подгрузке с сервера только отображаемых записей, минимизируя трафик. СКД от 1С получилась тоже весьма достойной использования на формах– этого монстра очень сложно переписать отличными от 1С средствами.

Для простейших «неродных» интерфейсов следует использовать Html+JS способ, как это сделано в типовых 1С-конфигурациях. При более сложном интерфейсе (если добавляется анимация, градиенты, число файлов-ресурсов растет) целесообразнее задействовать подход Rich Internet Application. Для сложных интерфейсов самым подходящим может стать .Net Framework.

Все способы позволяют встроить на управляемую форму «неродные» элементы управления. Ни один вариант не позволит встроить в «неродной» элемент управления элемент управления 1С или управляемую форму 1С. Соответственно, интерфейс нужно планировать без вложенностей, недопустимо, когда, например, в Silverlight-плагин вложена таблица 1С.

//

<div><img src=»//mc.yandex.ru/watch/21031318″ style=»position:absolute; left:-9999px;» alt=»» /></div>

90 Comments

  1. orefkov

    Дико извиняюсь, но при чем тут упор в заголовке статьи на управляемые формы?

    Если честно, все описаное делалось еще на семерке.

    Reply
  2. tango

    биржевую диаграмму следовало бы сравнивать с биржевыми диаграммами. а так получается, автор не знает сабжа.

    есть подозрение, что красоты интерфейсов отожрут скорость более чем

    Reply
  3. orefkov

    (2)

    Дело даже не в отжираемой скорости, а в нерациональном использовании готового инструмента.

    Для меня «богатый интерфейс» — это тот, который позволит человеку решить его задачу наиболее простым и удобным способом. А об этом в статье — ни слова. Показаны только «свистелки-перделки», которые можно прикрутить к 1С.

    Оно конечно, можно и зайчика научить курить, но будет ли ему от этого польза и удовольствие?

    Хотя да, соглашусь, что иногда приходится идти на такие выкрутасы.

    Но это надо делать в виде исключения, а не закладывать такой способ в виде ядра всего интерфейса.

    Reply
  4. AlexO

    Очередные картинки для оправдания .. цели.

    Reply
  5. tango

    (4) AlexO, это «Доминикана». там онером выступает руководитель разрабов — каменты излишни

    Reply
  6. tango

    http://infostart.ru/public/189507/

    публикация на модерации.

    пока модерируют, смотрим рисунок ниже

    Reply
  7. Yashazz

    А что, Доминикана всё-таки не совсем лохотрон, а действительно внятный проект?

    Reply
  8. tango

    (7) Yashazz, Имхо — это любопытный эксперимент: попытка сделать что-то на продажу не по результатам реального проекта, а с нуля, за счет самого франчайзи. Пока играют как могут.

    Reply
  9. Elisy

    (1) orefkov,

    Дико извиняюсь, но при чем тут упор в заголовке статьи на управляемые формы?

    Если честно, все описаное делалось еще на семерке.

    На дворе 2013 год, актуальна 8.2 и управляемые формы. Сомневаюсь, что на 7ке было сравнение отображения контента в тонком и веб-клиенте. Можете привести статью на схожую тему для 7.7, 8.0 , 8.1. Или «все описанное делалось» и передавалось в тайне только избранными?

    Reply
  10. Elisy
    биржевую диаграмму следовало бы сравнивать с биржевыми диаграммами. а так получается, автор не знает сабжа.

    Просветите автора в этом вопросе, а то образец из вашего поста (6) «воронки» сравним с наскальным изображением первобытного человека. Биржевые диаграммы такие же?

    есть подозрение, что красоты интерфейсов отожрут скорость более чем

    Красота часто требует жертв, но в данном случае современные браузеры позволяют оптимизировать эту скорость.

    Reply
  11. Elisy

    (3) orefkov,

    Но это надо делать в виде исключения, а не закладывать такой способ в виде ядра всего интерфейса.

    В статье в выводах сказано:

    «В интерфейсе рекомендуется в большинстве случаев использовать родные элементы управления 1С.»

    Это, конечно, дело каждого, но я себе не позволяю критиковать статьи, если не дочитал их до конца.

    Reply
  12. Elisy

    (7) Yashazz,

    А что, Доминикана всё-таки не совсем лохотрон, а действительно внятный проект?

    Судя по профессиональному составу моих коллег и ненормированному рабочему дню, Доминикана — действительно внятный проект.

    Reply
  13. orefkov

    (9)

    [quote]Можете привести статью на схожую тему для 7.7, 8.0 , 8.1.[/quote]

    Вот статья с небезысвестного hare.ru аж от 2003 года: http://www.mista.ru/articles1c/hare/article.69.html

    А на 1cpp.ru/forum если покопаться, можно найти и использование WebBrowserControl через 1С++.

    Да и вообще любых активиксов в 7.7.

    К примеру вот: http://www.1cpp.ru/forum/YaBB.pl?num=1253809274

    Reply
  14. Elisy

    (13) orefkov,

    Спасибо, очень интересно, применительно к 1С. Но 1С++ осталась в 7.7 — для нее аналога нет в 8.х.

    Сам же WebBrowserControl отлично описан в англоязычном интернете. НО, WebBrowserControl жестко привязан к Windows. Это значит, что для 8.3 под Линукс этот подход не будет работать — нужны новые идеи.

    Reply
  15. _Ramzes

    Друзья, коллеги. В данной статье описано что можно сделать, но не одного действительно стоящего для меня примера. Цель написания статьи?

    Reply
  16. Elisy

    (15) _Ramzes,

    Друзья, коллеги. В данной статье описано что можно сделать, но не одного действительно стоящего для меня примера. Цель написания статьи?

    Это начало серии статей. В первую очередь необходимо было провести обзор методов, чтобы выяснить, дает ли и какие преимущества дает Html-подход. Какие ограничения накладывает каждый из способов.

    Есть черновики еще для 2х статей в продолжение, но не знаю, когда смогу их опубликовать.

    Еще одни исследования интересуют в области поиска редактора бизнес-процессов. В этом поиске пригодятся наработки из данной статьи тоже.

    Reply
  17. Evil Beaver

    Вопрос напрашивается сам собой, но г-н Орефков его уже задал. Если вы пилите такие rich-интерфейсы, зачем вам вообще 1С? Что из родного 1С-а вам нужно для вашей Доминиканы?

    Reply
  18. Новиков

    Хорошая статья

    Reply
  19. V_V_V

    «HTML5 применительно к 1С вычеркиваем: тонкий клиент 1С использует IE7, а поддержка HTML5 началась с IE9» — это, а также «Совместимость с Linux сложного проекта» — в 8.3.3 что-то изменилось? И вообще этот релиз брался в расчет и рассматривался для целей, описанных в статье?

    Reply
  20. pumbaE

    (19) V_V_V, в 8.3.3 палка о двух концах. В linux применяем HTML5 в windows нет. В linux версии используется движок webkit в windows версии ничего не поменялось.

    Reply
  21. sashocq

    Я думаю, 99% всего нужного для людей функционала получится из стандартных 1Совских элементов. Тем более, учитывая 8.3.3, в которой появилось несколько интерфейсных вещей, которые я очень ждал (свертка элементов, форматированная строка, но не такси, конечно). И уж в самом конце, когда все готово, в т. ч. всякие красивые диаграммы, чтобы их еще больше разукрасить и задинамичить, можно посоображать что-нибудь. Если 1С к тому времени не выпустит еще что-нибудь красивое.

    Reply
  22. V_V_V

    (21) sashocq, вот зря ты так думаешь. 🙂

    Всегда кому-то чего-то не хватает. Если активно разрабатывать, а не подпиливать типовые. Кому 3D склад с местовым хранением, кому схемы кинозала, кому расчета пластиковых окон с чертежами прям в 1С…

    Извращения — они многогранны…

    Reply
  23. Elisy

    (17) Evil Beaver,

    Вопрос напрашивается сам собой, но г-н Орефков его уже задал. Если вы пилите такие rich-интерфейсы, зачем вам вообще 1С? Что из родного 1С-а вам нужно для вашей Доминиканы?

    1C всем хорош, на ней работает вся страна. Мы не собираемся изменять ей. Есть нюансы, которые хотелось бы улучшить.

    Reply
  24. Elisy

    (19) V_V_V,

    «HTML5 применительно к 1С вычеркиваем: тонкий клиент 1С использует IE7, а поддержка HTML5 началась с IE9» — это, а также «Совместимость с Linux сложного проекта» — в 8.3.3 что-то изменилось? И вообще этот релиз брался в расчет и рассматривался для целей, описанных в статье?

    Есть один момент. Тонкий клиент можно заставить работать в режиме совместимости IE9. Об этом есть черновик статьи. Кому интересно, могу выслать для предварительного ознакомления и критики. Пока публиковать времени нет.

    На 8.3 опыты еще не начались. Если не будет найден эффективный обмен данными между 1С и WebKit, то, возможно, придется ждать лучших времен.

    Reply
  25. Rustig

    (0) плюс за исследование

    исследуйте дальше 🙂

    прорыв не за горами

    Reply
  26. DitriX

    как то вы весьма узко думаете.

    Вот вы почитайте — как разрабатывают топовые игры, ну типа кризиса 3.

    Т.е. за 2 года до релиза — берутся очень мощьные видюхи, там все это создается, и к моменту выхода игры — аналог такой топовой видюхи — стоит около 400уе, что может себе позволить каждый.

    Ах да, к чему я это — то что вы делаете, обреченно на провал (я конечно говорю про стадию выхода релиза, т.е. через год аль два).

    Объясню почему — все двигается в сторону мобильных платформ, а вы этому даже не уделили время.

    Что дешевле — купить комп, с виндой (линухом), пердолить туда 1с, поддерживать комп, настраивать права, роли, доступы, покупать упсы, мониторы, вечно ломающиеся мышки и клавы, или просто перейти к планшетам?

    При стоимости в 200уе (на текщий момент) их можно купить пачки, и просто заменять по мере надобности.

    Все идут в мобильность, а вы кряхтите над ИЕ7, проблемами с линуксом и тем, что браузер может улучшить варианты работы и сгладить часть проблем.

    Бред.

    Если вы ориентируетесь на показуху = то да, там все будет круто, клевые графики, крутые интерфейсы, все ажур.

    Когда доходит до дела, и начальнику смены надо нажать кнопку «ЗАКРЫТЬ,БЛ*, СМЕНУ» и он ее не найдет, так как новый движок браузера решил что этой кнопке надо съехать куда то вниз. Или когда продавец не сможет отпустить клиента, как вы думаете, что будет?

    По сему — предлагаю, для начала, описать цель сих исследований, а потом уже сами исследования.

    У вас в команде хоть кто то писал диплом? Думаю да, и в таком формате делается такого рода отчетность.

    Что было да вас? Почему эта тема актуальна? Почему старые механизмы не удовлетворяют и в каких случаях? Что именно ВЫ разработали? Как вы пришли к этому решению? Почему ВЫ считаете его правильным? Какие выводы вы можете сделать? Что это даст обществу? Какие источники вы использовали?

    А у вас какой то реферат ученика 7 класса. При чем такой, уж оооочень обзорненький.

    ИМХО

    З.Ы. Ничего личного 🙂

    Reply
  27. Новиков

    (26) DitriX,

    При стоимости в 200уе (на текщий момент) их можно купить пачки, и просто заменять по мере надобности.

    Если вы про управляемый интерфейс, то рекомендую взглянуть как на планшете отображается хотя бы БП 3.0 и ее интерфейс, со всеми мыслимыми и не мыслимыми отключениями картинок, разделов и прочее.

    Если вы про мобильную платформу, как таковую, соглашусь в ключе переноса в оную какой-то ужасно простой функциональности, как в демо-приложении. Или превращении дивайся в мини-ТСД или околоблудного функционала.

    В настоящее время полноценно поработать в 1С, аля тонкий клиент, не удастся. Ограниченная узкая функциональность, ту которую вы описали — кнопка в пол экрана «ЗАКРЫТЬ,БЛ*, СМЕНУ» и вторая «ОТМЕНА», да 😉 Но дальше — пока скорее всего нет. Посмотри, что нам даст метро. И когда. Если метро-функциональность отладится через пару лет, то видимо — эпик-фейл чем более тем полностью.

    А исследование автора хорошее. Я бы сказал — систематизирующее. Постепенно копает, ищет. Это здорово! Я жду сделующих обзоров от него.

    Reply
  28. DitriX

    (27) вы или не в курсе про проект доминикана, или я вообще не понимаю — о чем и к чему вы написали 🙂

    Извините, но честно, я не смогу уловить суть, можете более развернуто написать?

    Reply
  29. Новиков

    (28) DitriX, в курсе проекта. Написал ответ на вашу цитату, которую процитировал у себя. Написал развернуто.

    Reply
  30. Elisy
    Reply
  31. DitriX
    Reply
  32. terrorion

    А возможно саму 1С запускать внутри(встроенном браузере) другого клиента? Таким образом интерфейс форм 1С, конечно, не изменить, но расширение функциональности приложения в целом не ограничено.

    Reply
  33. CratosX

    (32) terrorion, ну и извращение вы предложили, бррр. Может, ограничиться внешним соединением?

    Reply
  34. terrorion

    Я имею ввиду не тонкого клиента, а web-расширение 1С, обмен данными через сервер. Хотя не спорю, возможно плохое предложение.

    Reply
  35. Elisy

    (31) DitriX,

    Вы знаете, вы хороший пример сделали с восьмеркой, ибо мелкософт — всегда задавала моду и направление. Иногда не удачно, но тем не менее. Вы вспомните, как отзывались о каждой новой винде, но я уверен на 100%, что еслы вы пользуетесь виндой, то у вас стоит или 8 или 7. Не странно ли? Видь каждую в свое время называли не удачной попыткой.

    У майкрософта каждая 2я операционная система была неудачной. Это: Win ME/Vista/8. Вероятность 50% очень большая.

    Ага, напомните какая сейчас последняя версия ИЕ? А с какой работает адекватно 1С? Не боитесь столкнуться с тем же?

    Последняя версия 1С 9я. Тонкий клиент по умолчанию адекватно работает с 7й. Но есть малоисследованный способ переключить ее на более новую.

    Если честно — не нашел, статью перечитал два раза 🙂

    Ну да, согласен, обзорная часть есть, а отчет то где?

    Вы под отчетом что подразумеваете? Я подразумеваю отчет о проделанной работе в рамках Проекта Доминикана. Отчет об исследовании разных способах построения интерфейса. Новизна в том, что охвачены не только Html+JS, как делалось ранее, но и Flex/silverlight, .Net

    Reply
  36. Ambakollajder

    Автору + хотя для себя ценности в полученной информации не вижу, но в будущих более предметных публикациях надеюсь увидеть.

    Reply
  37. sikuda

    Автору + за попытку систематизировать проблему. Считаю, что сейчас заниматься ActiveX, Silverlight без перспективно в самой Microsoft. Лет через 3-5 вэб-движок 1с всетаки перейдет на webkit или втроенный в цштвщцы ie10 и тонкий клиент может уйти на второй план. Свой развернутый ответ Чемберлену Доминикане надеюсь написать…

    Reply
  38. webester

    Active X .net HTML и еще много из web казалось бы причем тут 1с?

    Reply
  39. zqzq

    На Html+JS в тонком клиенте ужасно выглядит, пережиток IE7.

    Вообще хотелось бы больше примеров зачем оно нужно в вашем проекте, что оправдывает затраты на разработку и поддержку.

    Reply
  40. Hadgehogs

    Бредятина какая-то.

    1С должен учет вести, приход-расход, а не красочные картинки рисовать, бессмысленные и беспощадные.

    Reply
  41. Hadgehogs

    Проект Доминикана какой-то куйней мается. Бюджет пилят штоле?

    Reply
  42. s_vidyakin

    Графики например можно выводить, передавая на сервер данные и получая картинку. Например используя либу http://www.pchart.net на отдельном веб-сервере в сети. Нужность остальных «богатых» элементов тоже под большим вопросом. Те же чертежи окон можно было бы сделать отдельным приложением на .NET, в которое был бы встроен обмен данными с 1С, например сохраняя туда готовый рендер чертежа. Проектировщик пользуется дотнет-прогой, продавцы — 1С.

    Reply
  43. terrorion

    (42) badboychik,

    Поддерживаю. Должна быть интеграция различных web-сервисов с обменом данных между собой.

    Reply
  44. vano-ekt

    нахрена вам вообще 1С?

    Reply
  45. itriot11

    (40) Hadgehogs,

    1С должен учет вести

    бррр, звучит как приговор….

    Reply
  46. Elisy

    (32) terrorion,

    А возможно саму 1С запускать внутри(встроенном браузере) другого клиента? Таким образом интерфейс форм 1С, конечно, не изменить, но расширение функциональности приложения в целом не ограничено.

    Наши мысли совпадают. Мы решили для начала запустить через IFrame. Посмотрим, что это даст.

    Reply
  47. Elisy

    (39) zqzq,

    На Html+JS в тонком клиенте ужасно выглядит, пережиток IE7.

    Вообще хотелось бы больше примеров зачем оно нужно в вашем проекте, что оправдывает затраты на разработку и поддержку.

    Сейчас есть один пример на примете — сделать альтернативный редактор маршрутов бизнес-процессов. Так уж получилось, что шина данных — одна из ключевых подсистем Проекта Доминикана.

    На этот случай создал ветку в форуме Инфостарт с просьбой поделиться опытом и впечатлениями от редакторов маршрутов бизнес-процессов.

    http://forum.infostart.ru/forum90/topic87568/

    Reply
  48. s_vidyakin

    (47) вы что, небось полноценный BPMN решили впендюрить в 1С ? )))

    Reply
  49. Elisy

    (40) Hadgehogs,

    1С должен учет вести, приход-расход, а не красочные картинки рисовать

    Мы иначе видим роль информационной системы предприятия. Функция учета — важная, не единственная и не самая главная

    Reply
  50. Elisy

    (44) vano-ekt,

    нахрена вам вообще 1С?

    1С — самая распространенная платформа, основа информационных систем множества предприятий. Вполне справляется с таким назначением

    Reply
  51. Elisy

    (48) badboychik,

    вы что, небось полноценный BPMN решили впендюрить в 1С ?

    Функциональные блоки:

    1. Среда создания/описания процессов, включая графически¬й редактор

    2. Шина процессов — среда исполнения (выполнения) процессов

    3. Механизмы анализа

    Reply
  52. vano-ekt

    а на выходе, что должно получится? Прикладное решение, или надстройка над интерфейсом 1С? Или скелет для других конфигураций?

    Reply
  53. Elisy

    (52) vano-ekt,

    а на выходе, что должно получится? Прикладное решение, или надстройка над интерфейсом 1С? Или скелет для других конфигураций?

    Сейчас определение: Бизнес-система нового поколения, основанная на достижениях методологии и технологии, учитывающая опыт предыдущих систем. Расширяемая модульная система, способная работать как SaaS, так и интегрированно.

    Reply
  54. adhocprog

    Спасибо! Интересный обзор.

    Reply
  55. tango

    (53)

    Бизнес-система нового поколения, основанная на достижениях методологии и технологии, учитывающая опыт предыдущих систем. Расширяемая модульная система, способная работать как SaaS, так и интегрированно.

    я правильно понял — речь идет о конфигурировании 1С на платформе 8.2(УФ) ?

    Reply
  56. CheBurator

    Оч.интересно будет посмотреть на эту «бизнес-систему нового поколения». Эта бизнес-система — это для кого? для пользователей (готовая конфига?) или для разработчиков (набор приемов/методик/рекомендаций/примеров/итд).

    Reply
  57. Elisy

    (55) tango,

    я правильно понял — речь идет о конфигурировании 1С на платформе 8.2(УФ) ?

    Я могу описать только свою часть, связанную с интерфейсом. Сейчас есть несколько конкурирующих подходов, которые обсуждаются:

    1. конфигурирование 1С — управляемые формы — преимущественно 8.3

    2. 1С 8.3 — УФ — вкрапления неродного интерфейса, как в этой публикации

    3. Запуск веб-клиента 1С через IFrame и управление им извне

    4. Свой собственный интерфейс на html и доступ JavaScript-SOAP

    2й подход описан в этой статье, 3й подход — опыты завершены, статья будет. 4й подход сейчас изучается.

    Reply
  58. Elisy

    (56) CheBurator,

    Оч.интересно будет посмотреть на эту «бизнес-систему нового поколения». Эта бизнес-система — это для кого? для пользователей (готовая конфига?) или для разработчиков (набор приемов/методик/рекомендаций/примеров/итд).

    Идеология системы сформулирована. Скоро идея будет представлена сообществу. Для реализации традиционными способами она на грани невозможного — это и интригует.

    Система стоит лицом к пользователям. Анализируются разные подходы к построению интерфейса прежде всего средствами 1С.

    Для разработчиков есть такие планы: система планируется как модульная, расширяемая. Разработчики смогут разрабатывать и продавать свои модули. Принцип — как продажа мобильных приложений. Именно поэтому нужна поддержка сообщества в разработке взаимодействия модулей, чтобы это было удобно в плане интеграции, взаимодействия и поддержки.

    Reply
  59. tango

    ну, идея модульной конфы заслуживает респекта, флагман в этом направлении оказался прямо-таки импотентен (да,да, это — о БСП)

    что-то типа как это сделано у камина?

    хотелось бы пожелать, чтобы и интерфейсные навороты допускали «модульный» отказ от них (опциональность) — типа как в хтмл можно вместо картинки загрузить ее строковый алиас

    Reply
  60. CheBurator

    (58) правильно ли я понял, что, например:

    — «покупаю» модуль «Поступление/Реализация по факту», который (типа) включает в себя минимально необходимый торговый функционал (приход товара на остатки по документу Поступление ТМЦ и расход товар с остатков Реализация ТМЦ)/ Имею минимум необходимого чтобы начать тогрговать. Более !!!никакого функционального кода!! модуль не содержит (м.б. только код для входа-выхода)

    — поработал, зашибись! но! возникла необходимость ПРЕДВАРИТЕЛЬНОГО РЕЗЕРВИРОВАНИЯ товаров для продажи клиентам).

    — «покупаю» модуль «Резервирование товара по заявкам покупателей». Тупо «копирую»/подключаю его в конфу (без всякого программирования, просто накатив дополнительные объекты или как-то иначе).

    — запускаю: имею: приход ТМЦ (как и было), заявка покупателя, которая ставит резерв (новый функционал), Реализация ТМЦ — которая теперь не просто списывает остаток, а каким-то образом учитывает свои и чужие резервы….????

    ..

    ???? как это будет? модуль «заявки-резервы» котачит только с входом-выходом модуля «Реализация»…???



    ну а дальше докупаю модуль «адресное хранение» и т.д.

    .

    главное при этом (ну лично для меня), что модуль «Реализация» не содержит никакого кода по работе с заявками… — так это или не так???

    Reply
  61. Elisy

    (60) CheBurator,

    В идеале система должна быть такой, как вы описали. При создании модульных систем есть несколько проблем:

    1. Инициализация

    2. Управление зависимостями между модулями

    3. Паттерн для связки источника данных и интерфейса

    4. Методика построения модульных приложений

    5. Взаимодействие между слабо связанными модулями

    Вас конкретно какая информация интересует?

    1. Детальная информация о том какие модули, какой функционал будут содержать?

    2. Описание принципов расширения системы на примере который Вы привели (считая при этом что пример является учебным)?

    3. Что-то иное. Что именно?

    Reply
  62. CheBurator

    963) ну тады мне не сильно понятна что имеется в виду

    Для разработчиков есть такие планы: система планируется как модульная, расширяемая. Разработчики смогут разрабатывать и продавать свои модули. Принцип — как продажа мобильных приложений.

    — я стою на стороне пользователя. мне уже достаточно мегаконфиг. и туевой хучи всяких доделок от разных сторон, которые (каждая доделка) контактирует с основной конфигой, но между собой они ну никак не вяжутся (как пример — есть для 8-ки CRMныймодуль и модуль Документооборот от сторонних разработчиков, в каждом из модулей есть общий функционал, но и есть неперескающийся функционал. ну так вот просто поставить CRM и Документооборот, надеясь на то, что они между собой «законтачатся» — фиг вам..).

    .

    так о чем это я.. а!

    модульность, я в том числе понимаю и как возможность вязать модули между собой, ане выпускать кучу независимых модулей…

    .

    63.

    Elisy

    11.06.13 20:53

    (60) CheBurator,

    В идеале система должна быть такой, как вы описали. При создании модульных систем есть несколько проблем:

    1. Инициализация

    2. Управление зависимостями между модулями

    3. Паттерн для связки источника данных и интерфейса

    4. Методика построения модульных приложений

    5. Взаимодействие между слабо связанными модулями

    Вас конкретно какая информация интересует?

    2. Описание принципов расширения системы на примере который Вы привели (считая при этом что пример является учебным)?

    .

    вот это меня больше интересует, хотя бы в общих чертах. чтобя я как ответсвенный за пользователей — понял, что меня ждет и какой профит я получу. В идеале — пример, который я описал…

    Reply
  63. Elisy

    (62) Eugeneer,

    Вы хотите привлечь разработчиков на создание модулей?)

    Да

    Те сразу, уже прошедшему огонь и воду, клиенту сказать — а вот блин извините, наша система несовершенна, вам нужны вот эти модули!

    Да

    Нет уж ребята — такая концепция уже провальна

    Мы так не считаем

    С таким подходом Вы создаете сразу несовершенный продукт

    Мы так не считаем

    Тысячи необразованных клиентов не понимают в сложных схемах модулей — им нужна готовая программа — взял все

    Мы обеспечим возможность клиентам формулировать и обеспечивать свои потребности через приемлемый, понятный для них интерфейс (в широком смысле). Выбор клиента через этот интерфейс даст надежный результат, соответствующий потребностям заказчика

    У меня самый успешный стартап … я уже тоже протоптал огонь и воду

    Нам интересны конкретные мнения по конкретным вопросам специалистов такого рода

    Reply
  64. Elisy

    (64) CheBurator,

    мне уже достаточно мегаконфиг. и туевой хучи всяких доделок от разных сторон, которые (каждая доделка) контактирует с основной конфигой, но между собой они ну никак не вяжутся

    наш подход является альтернативой этому:

    система — это совокупность модулей, которые прозрачно интегрируются (через шины процессов и данных) либо в одной конфигурации, либо в разных системах

    модульность, я в том числе понимаю и как возможность вязать модули между собой, ане выпускать кучу независимых модулей…

    Модульность в нашем понимании не отрицает возможность создавать модули внешними разработчиками

    Reply
  65. tango

    ладно, поняли уже 🙂

    продукт давайте!

    Reply
  66. Zas1402

    Интересно почитать.

    Reply
  67. CheBurator

    (66) ну так можно будет «прозрачно синтегрировать» модуль «резервы» с модулем «безрезервной торговли»…?

    а то слов много, а непонятно…

    Reply
  68. Elisy

    (69) CheBurator,

    (66) ну так можно будет «прозрачно синтегрировать» модуль «резервы» с модулем «безрезервной торговли»…?

    а то слов много, а непонятно…

    Мы отвлеклись от темы статьи. Обязательно вернемся к обсуждению модульности немного позже в отдельной ветке обсуждения. Модульность — сложная тема. Аналог для .Net дорос до 4й версии

    http://msdn.microsoft.com/en-us/library/gg406140.aspx

    и процесс его доработки продолжается.

    У нас предполагается для связи модулей использовать шину процессов и шину данных.

    Reply
  69. CheBurator

    по шинам процессов и шинам данных я не копенгаген, можно для неграмотных в пару слов доступно пояснить что есть связь модулей на основе шины данных..?

    спсб.

    Reply
  70. tango

    присоединяюсь к (71)

    очень круто заварено в (70)

    (гугл-перевод по ссылке):

    Призма дает указания, разработанные, чтобы помочь вам более легко спроектировать и построить богатый, гибкий и легко поддерживается Windows Presentation Foundation (WPF), настольных приложений Silverlight Rich Internet Applications (RIA), и приложений Windows Phone 7.

    по ходу вундервафлей по синичкам воробушкам тараканам

    Reply
  71. Elisy

    (71) CheBurator,

    по шинам процессов и шинам данных я не копенгаген, можно для неграмотных в пару слов доступно пояснить что есть связь модулей на основе шины данных..?

    спсб.

    Если не копенгаген тогда для начала

    http://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D0%BD%D0%B0_%D0%B4%D0%B0%D0%BD%D0%BD%D­1%8B%D1%85

    http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BD%D0%B0%D1­%8F_%D1%88%D0%B8%D0%BD%D0%B0_%D0%BF%D1%80%D0%B5%D0%B4%D0%BF%­D1%80%D0%B8%D1%8F%D1%82%D0%B8%D1%8F

    Reply
  72. slimper

    (72) tango, PRISM удобная абстракция для WPF и SL. Вот человекоподобный перевод: http://habrahabr.ru/post/176851/. Но, как его можно скрестить с 1С?

    Reply
  73. Elisy
    (72) tango, PRISM удобная абстракция для WPF и SL. Вот человекоподобный перевод: http://habrahabr.ru/post/176851/. Но, как его можно скрестить с 1С?

    Мне кажется скрестить не получится. Получится определить проблемы, которые решает PRISM и посмотреть пути решения этих проблем. Далее постараться примерить механизмы на 1С.

    PRISM’ом лучше не ограничиваться. Если кто-то еще знает достойные альтернативы, скидывайте для обсуждения )))).

    Reply
  74. cefew

    pumbaE,

    Elisy,

    V_V_V

    Все же HTML5 вычеркивать не стоит, режимом работы WebBrowser Control можно управлять через реестр: http://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx

    Reply
  75. Elisy

    (76) cefew,

    Насколько я понял, все проще. В тонком клиенте достаточно установить meta-тэг

    <meta http-equiv=»X-UA-Compatible» content=»IE=9″ >

    В веб-клиенте можно сделать обертку через IFrame

    http://infostart.ru/public/190920/

    и на главной странице установить этот же тэг. В подчиненных IFrame веб-клиент не сможет его переопределить

    HTML1115: Тег META, совместимый с X-UA, («IE=EmulateIE7) пропущен, поскольку режим документов уже завершен.

    Хочу выложить статью на эту тему: «Некоторые секреты подключения веб-интерфейса 1С 8.2». Нужна такая статья?

    Reply
  76. cefew

    (77)

    Спасибо за предложенный способ — так действительно проще. Жаль что ПолеHTMLДокумента предоставляет так мало возможностей для разработки альтернативного интерфейса.

    Статью, конечно, выкладывайте.

    Reply
  77. sikuda

    (78) Про поле ПолеHTMLДокумента не согласен. Я запустил в нем 8.3 Такси демо с сайта 1С внутри тонкого клиента 8.2. Все отлично работает! Они в своем движке отладили как 8.2 как и 8.3. http://infostart.ru/public/171763/. Это поле очень специфично, но нам ли привыкать…

    Reply
  78. ivanov660

    На мой взгляд одно из самых удачны направлений — использование веб ориентированных предложений — html 5, на котором в текущей версии можно реализовать большинство различных «плюшек». Все остальные компоненты уступают по возможности и простоте использования. Тут я согласен с автором.

    Reply
  79. s_vidyakin

    У меня както была идея написать альтернативный интерфейс внутри 1С-форм на

    1) Twitter Bootstrap

    2) ExtJS

    Но осознав объем работы и неудобства работы с полем хтмл-документа, забил на это дело

    Reply
  80. Elisy

    (78) cefew,

    Статью, конечно, выкладывайте.

    Выложил на Хабре

    http://habrahabr.ru/post/183754/

    На Инфостарте статья появится после одобрения модератором

    http://infostart.ru/public/191829/

    Reply
  81. sikuda

    (81) badboychik, Точно и это будет тоже 100% привязка к этому интерфейсу. Только простой отчет и jquerymobile: http://infostart.ru/public/180203/. Вариант два. Может кому и пригодиться…

    Reply
  82. s_vidyakin

    Сегодня экспериментировал — писать под ПолеHTMLДокумента это сплошной гемор.

    Приходится вставлять все скрипты в тело документа, а они большие и редактор кода глючит, если вставить например 100кБ одной строкой. Плюс даже если всё вставить, то все равно многое не работает, но если перейти по адресу той же странице в инете, то работает.

    Пытался прикрутить некоторые библиотеки рисования графов — так и не получилось (

    Предполагаю что лучше вынести на отдельный веб-сервер библиотеки и скрипты, а в 1С использовать только «ПолеХтмл.Перейти()» на всю форму и REST-обмен данными с этим сервером

    Reply
  83. s_vidyakin

    Буду еще пробовать подружиться с библиотекой DHTMLX (http://dhtmlx.com)

    Вот например диаграмма Ганта, кто то просил тут

    http://dhtmlx.com/docs/products/dhtmlxGantt/index.shtml

    Reply
  84. Elisy

    (84) badboychik,

    Приходится вставлять все скрипты в тело документа, а они большие и редактор кода глючит, если вставить например 100кБ одной строкой. Плюс даже если всё вставить, то все равно многое не работает, но если перейти по адресу той же странице в инете, то работает.

    Попробуйте вставить JScript в общую картинку, как описано здесь:

    http://infostart.ru/public/191829/

    У нее будет один и тот же адрес, браузер ее кэшировать будет

    Reply
  85. Elisy

    (59) tango, (60) CheBurator,

    По поводу модульной системы запущено новое обсуждение. После модерации оно появится здесь:

    http://infostart.ru/public/192074/

    Высказывайте свои мнения, пока идет проектирование.

    Reply
  86. VVi3ard

    (17) Evil Beaver, отличный вопрос, крутился у меня в голове пока я читал статью, ответ в (23) не убедителен, если использовать это в некоторых местах то будет сильно выбиваться из общей массы, да и для сопровождения нужен будет отдельный человек который знает ту или иную технологию.

    В общем как эксперимент в свободное от работы время интересно, еще на хабре были статьи как из HTML дергать интерфейсы WEB приложения 1С, тоже было любопытно почитать.

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

    Reply
  87. VVi3ard

    (47) я сейчас как раз этим занимаюсь для своих проектов то что получилось не очень нравится в плане быстродействия, на 10 000 активных БП начинает все сильно тормозить, а мне нужно около 600 000 одновременно активных 🙁

    Но как сделать лучше я пока не знаю, ищу узкие места и уже «извращениями» оптимизирую.

    Сама по себе задача не очень и сложная, но много рутины, вообще 1С стоило бы продумать этот вопрос перед тем как выходить на рынок ERP, говорят в последнем Документообороте у них есть конструктор, все никак не доберусь посмотреть.

    Вот про это было бы интересно почитать 🙂

    Reply
  88. Evil Beaver

    (88) VVi3ard, по-моему, на хабре писал тот же Elisy.

    Reply
  89. Elisy

    (88) VVi3ard,

    (17) Evil Beaver, отличный вопрос, крутился у меня в голове пока я читал статью, ответ в (23) не убедителен, если использовать это в некоторых местах то будет сильно выбиваться из общей массы, да и для сопровождения нужен будет отдельный человек который знает ту или иную технологию.

    В самом начале у нас стоял вопрос: каким образом можно дополнить/заменить управляемые формы 1С. Дело в том, что функционал они предоставляют убогий, абсолютно не настраиваемые, а еще и штук 10 ошибок нашли в новом Такси-интерфейсе (от неадекватного выравнивания/размеров, до ошибок в динамическом списке при сортировке по полю и невозможности выбрать первые N записей).

    Как следствие появились исследования в области: html внутри 1С, внедрение в веб-интерфейс 1С и отдельный веб-интерфейс с доступом к веб-сервисам 1С. У каждого метода есть свои достоинства и недостатки. Эти сравнения передали руководству, которое приняло решение — делать проект на платформе 1С с некоторыми внедрениями html в управляемые формы.

    Reply
  90. Elisy

    (89) VVi3ard,

    (47) я сейчас как раз этим занимаюсь для своих проектов то что получилось не очень нравится в плане быстродействия, на 10 000 активных БП начинает все сильно тормозить, а мне нужно около 600 000 одновременно активных 🙁

    До оптимизации по скорости мы еще не добрались. Но если встанет такая проблема, в первую очередь буду смотреть всторону .Net Workflow Foundation. Мне кажется BizTalk работает на этой технологии.

    Но как сделать лучше я пока не знаю, ищу узкие места и уже «извращениями» оптимизирую.

    Сама по себе задача не очень и сложная, но много рутины, вообще 1С стоило бы продумать этот вопрос перед тем как выходить на рынок ERP, говорят в последнем Документообороте у них есть конструктор, все никак не доберусь посмотреть.

    Я, к сожалению, не занимался вопросом дизайнера — эту задачу передали моему коллеге. Насколько я понял, сейчас остановились на встроенном в 1С редакторе, но дополнили его своим функционалом. Для прототипа этого достаточно, а как будет потом, сложно сказать.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *