CRM ›
Профессиональное приключение для специалистов 1С. Проект Доминикана. ›
#484
17.05.13 23:34
(468)
Немного расскажу о муках интеграции веба и 1С-ки. Подобной ересью (скрещиванием) я страдал с года 2006-ого и, случилось так, что неоднократно возвращался. Сразу скажу, что я обладаю огромным опытом и высочайшим скиллом как в 1С, так и в веб-разработке .
1. Поле HTML документа Hell.
В самих 1С-овских формах есть элемент "Поле ХТМЛ-документа", которое от релиза к релизу платформы ведет себя по-разному (и это бывает вымораживает, когда js-функция вдруг перестает работать). Поле HTML-документа - тот-же IE (IWebBrowser), который обладает той-же ущербностью и глючностью. Если бы Вы знали, как я замучился интегрировать банальный HTML wysiwig-редактор в толстый клиент (!), а какие проблемы возникают с jQuery и полезными компонентами?!... Было дело - встраивал для логистики yandex-карты, надо ли говорить, через какие тернии пришлось организовывать взаимодействие 1С с API через пресловутое "Поле ХТМЛ..." (напрямую из формы 1С обратиться к API на js оказалось утопией (8.1.15))...
Итог: Полем ХТМЛ пользоваться можно, но нужны скиллы (нужно понимать тонкости встроенного браузера, и уметь обходить его беспощадную убогость). Для продакшена конфигурации, наверное, нужно так-же рекомендовать пользователям работать на конкретных версиях платформы, что есть ограничение поддержки.
З.Ы. Кстати, в одной типовой конфигурации еще в 2007-м мог бы появится простенький аналог word-а (тот самый wysiwyg HTML) для хранения описания номенклатуры, но тогда еще боялись встраивать в типове HTML (БП позже все-же "согрешила" с HTML, да).
2. Хранение данных для отображения страницы.
Что касается хранения данных (html, css, js, картинки). Лично я данные храню в архивах в макетах (двоичные данные). При первой инициализации формы с "Полем ХТМЛ..." - распаковываю архив во временный каталог на компьютере пользователя, далее (и при всех последующих открытиях формы) беру HTML-ку и все зависимые данные из ранее распакованного архива. Деталей еще много, но смысл думаю ясен.
3. COM-Объекты, компоненты...
Использование сторонних объектов (aka браузеров) внутри форм 1С затруднительно, т.к. зависит от установленных на каждом пользовательском компьютере библиотек. Даже если на одном компе контент внутри браузера (встроенного в форму) отображается комильфо, то на аналогичном компе (но с другой версией библиотеки) может вылезти "нежданчик". Не буду вдаваться в подробности, но этот геморрой похлеще разворачивания веб-клиента будет (горький опыт, да).
4. Сам веб-клиент 1С:Предприятие.
Надеюсь, есть люди, которые относятся к нему положительно...
5. Использование 1С:Предприятия исключительно в качестве web-сервиса.
Пишем серверный движок на 1С, обращаемся к данным 1С с веб-страниц яваскриптом, их обрабатываем и выводим в HTML. Неплохой способ подружить веб и 1С, если не заморачиваться по поводу производительности и "порога вхождения".
З.Ы. Что касается вопроса про стандарт обмена данными, то JSON - вариант верный.