Как разработать Web приложение и остаться 1С-ником

18.05.20

Интеграция - WEB-интеграция

Создание современных веб-приложений обходится для бизнеса дорого и требует постоянной актуализации различных фреймворков, что не всегда оправданно. Как применить инженерный подход и предоставить бизнес-пользователям доступ к данным 1С в удобном и защищенном веб-приложении на конференции Infostart Event 2019 Inception рассказал руководитель управления ИТ компании WiseAdvice Олег Филиппов.

 

 

Мы несколько перестарались с хайпом вокруг 1С-ников, говоря о том, что 1С – это что-то плохое, негативное и т.д. Теперь мне люди стали задавать вопросы не «Как остаться 1С-ником?», а «Зачем оставаться 1С-ником, если я могу уже разработать веб-приложение?»   

Есть ли в зале программисты 1С? Поднимите руки.

А теперь поднимите руки разработчики 1С? Все те же самые.

Но это еще не все – теперь поднимите руки инженеры бизнес-приложений, которые используют фреймворк 1C:Enterprise (или платформу «1С:Предприятие») для решения своих задач. Уже меньше рук.

Это я к тому, что 1С-ник – это, на самом деле, не негатив. Я сам называл 1С-никами тех, кто пишет внешние обработки, не заботясь о качестве кода. Я сам так писал, я больше так не буду.

На самом деле 1С-ник – это:

  • человек, который решает задачи бизнеса наиболее быстрым, оптимальным и востребованным способом;
  • он заботится не только о качестве кода, а еще и о стоимости решения для бизнеса;
  • и может взяться за какую-нибудь задачу, над которой в Яндексе будут биться 50 человек, и сделает ее в одиночку.

1С-ником оставаться нужно, правильно и важно.

А фреймворк 1C:Enterprise – это платформа, которая позволяет решать задачи бизнеса быстро и оптимально. Да, конечно, не нужно на 1С писать 3D-игру, но в большинстве случаев все задачи бизнеса практически мы решить можем.

А если что-то решить не можем (написать чат-бота для WhatsApp, например), то можем использовать другие технологии. Инженер бизнес-приложений как раз и отличается тем, что он понимает, что тут – 1С, а тут – чат-бот. Конечно, чат-бот на 1С тоже написать можно, но нужна будет прослойка на питоне, например. Хотя можно без этого. У нас в WiseAdvice тоже чат-бот есть, для WhatsApp в том числе. Для чат-бота используется прослойка, написанная нашими программистами, но уже не на 1С, потому что на 1С не получилось. Но это маленькое приложение, а основное приложение использует 1С.

Теперь я вернусь к вебу. И я покажу не только как создать веб-приложение (это, наверное, все умеют – подход стандартный, все об этом знают), я больше скажу об инженерном подходе – как решить задачу бизнеса.

 

Четыре подхода для создания веб-приложений в 1С

Итак, вы – 1С-ник, к вам приходит генеральный директор, говорит: «Нам нужно разработать веб-приложение». Вы пытаетесь эту задачу как-то решить, используя инженерный подход и правильное, структурное мышление.

И сейчас я расскажу про четыре подхода, которые мы используем у себя в WiseAdvice.

 

Первый подход: Backend и Frontend на 1С

 

 

Первое, что должно прийти в голову (и это абсолютно правильно) – то, что в 1С есть веб-клиент, и его нужно использовать. Это – верное решение.

На слайде показан практический пример, что нам в WiseAdvice удалось собрать на 1С.

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

Реально, веб-клиент – это не просто набор кнопочек, которые раскиданы по экрану. Если посадить рядом с 1С-ником веб-дизайнера, можно сделать красиво. На 1С тоже можно делать красивые вещи, и они будут вполне доступно, современно выглядеть.

Да, там, конечно, есть косяки – зеленый шрифт, ужасные виды гридов, которые не поменяешь (причем, поменять можно). Но самое ужасное не в этом.

В мире веба есть специальные люди – верстальщики, которым можно дать страницу, чтобы они переделали на ней шрифт, отступ, картинку поставили в нужное место, выравнивание сделали – и страница будет выглядеть, как конфетка. Но, к сожалению, верстальщиков в 1С никак нельзя заставить работать, потому что им нужны «Инструменты разработчика» (F12 в Chrome) и прямой доступ к CSS.

Поскольку в веб-клиенте 1С доступа к CSS нет, вам приходится заниматься интерфейсом самим. А это не всегда приятно. Я, например, верстку не люблю, я – разработчик, я лучше код буду писать.

Поэтому верстка в 1С очень дорогая.

Еще одна маленькая проблема – лицензия на каждое подключение. Если к вам зашло 3000 пользователей, у вас забрали 3000 лицензий только за то, что вы сделали себе на 1С маленький личный кабинет. А для бизнеса это не всегда рентабельно.

Поэтому в данном случае веб-интерфейс на 1С можно делать красиво, но силами 1С-разработчиков делать верстку дорого, а лицензии использовать в интернете – дорого. То есть проблема не техническая, а бизнесовая. Это – подход 1С.

 

 

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

Интерфейс поправить можно. Дорого, конечно, но можно. Если вы сделали что-то в 1С, а что-то конкретно не получается, нажимаете в Chrome F12 и переходите на вкладку Network.

 

 

Там вы можете заметить интересный файл – webclient.css. То есть CSS-файл у 1С есть, и с ним верстальщик уже сможет вам помочь поменять интерфейс.

Другой вопрос – как его вытащить из ресурсов?

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

 

 

А я придумал такой подход. Конечно, так делать нельзя, это применяется только для исследований. Можно сделать фильтр в Apache – там есть внешние фильтры. Пишется простенькое приложение. Оно ничего умного не делает, просто заменяет одну строчку на другую. Для Apache – это стандартный подход. С помощью фильтра можно заменить одну строчку на другую.

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

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

 

Использование SSO с 1С. Почему это так важно

 

 

Еще одна история для веб-клиента 1С, которая также важна для веб-клиента. К сожалению, не все об этом знают. Рано или поздно любой человек, которому написали веб-приложение, придет к вам и спросит: «Могу ли я авторизоваться в моем приложении через Facebook?»

Тут я хотел рассказать про некие специфичные подходы, призванные оптимизировать трудозатраты разработчика. Но к счастью, мне не пришлось этого делать, потому что в платформе 8.3.13 появилась замечательная возможность – OpenID Connect. Не путать с OpenID – ужасное, страшное решение, которое ничего общего с нормальным SSO (Single Sign On) не имеет, зачем они его сделали – не знаю.

OpenID Connect – это некая надстройка над OAuth, на котором сейчас весь интернет работает. Все авторизации через Google, ВКонтакте и т.д. используют OAuth, а конкретно OAuth2. На ИТС можно посмотреть пример, как авторизоваться в 1С через Google.

Теперь это можно, проблем нет. Но проблема шире, ее надо уловить – она важна, потому что «Не фейсбуком единым». С помощью OpenID Connect фирма «1С» нам открыла, наконец, путь в облака. А крупный Enterprise, который использует кучу приложений, живет вот так:

 

 

В крупном Enterprise нет одного AD, там какая-нибудь Okta или OneLogin.

 

 

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

С тех пор, как 1С стала поддерживать OAuth2, стало возможно его сюда дорисовать.

И в крупном Enterprise, действительно, есть некая система Single Sign On (его лидеры Okta и OneLogin), и там дальше приложение уже может авторизоваться с помощью OAuth2, SAML, Kerberos Windows и OpenID Connect. Теперь 1С можно запихнуть в крупный Enterprise, сказать, что у нас есть Single Sign On, мы предоставляем вам наше облачное приложение на платформе 1C:Enterprise – пожалуйста, авторизуйтесь там, никто вас за это не заругает, никто ничего плохого не скажет.

Кто не знает, надо об этом знать.

 

Второй подход – SPA

 

 

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

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

Чем отличается SPA от MPA? Как вы считаете, Инфостарт – это SPA или MPA? Разница простая – если ткнули на ссылку и видите, что страница начала грузиться – значит, у вас MPA. А если сверху ничего не вращается – у вас SPA. Иногда эти подходы совмещаются.

Современный мир двигается к тому, что все становится SPA – при первом запросе у вас на клиенте поднимается некий фреймворк на JS, который дергает сервер, и получает оттуда JSON-чики для отрисовки интерфейса. Вот так это все работает.

 

 

SPA пишут на фреймворках, которые представлены на этом слайде:

  • Vue – маленькая поделка;
  • Angular – большая сложная система, реализующая концепцию MVC, полноценный фреймворк от Google;
  • И React – что-то среднее, в современном мире достаточно популярное.

Причем, это еще не все. Чтобы разработать нормальное SPA надо знать все эти технологии. Выбрать из этого что-то нормальное трудно. Там религиозные войны: «Нет, только Angular, потому что там MVS и TypeScript», «Нет, только React, потому что на нем куча разработок», «Нет, Vue – это модно и молодежно». В итоге будет три разработчика, которые разрабатывают на разном.

Более того, там что-то будет обязательно написано на jQuery, кто-нибудь прикрутит Backbone или еще что-нибудь.

А еще есть сервер, а на сервере есть NodeJS, на нем есть express.js, nest.js и т.д.

И для них всех ежедневно выходят новые релизы. Год назад вы писали на одном Angular, через год вы будете писать на абсолютно другом Angular абсолютно по другим правилам. Оно регулярно оптимизируется, что-то происходит. Мир идет вперед.

 

 

Но когда вы приходите к бизнесу, возникают проблемы.

В чем главная проблема SPA?

Это дорого, это очень дорого. Для обычных организаций это сейчас реально дорого. Там сейчас еще подняли хайп вокруг NodeJS в облаках. В итоге образовался небольшой кадровый дефицит. И там не все так хорошо, потому что одно приложение – это один фреймворк. Если вы выбрали фреймворк, вы на нем останетесь. Какой бы он ни был – хороший или плохой, он будет развиваться. Причем, иногда так, что вы не сможете накатить обновления без потери данных. И концепция у вас будет одна – а не как у традиционного приложения.

Веб-страница может сломаться, может не отображаться. Более того, если Chrome занимает 3Гб памяти, не факт, что это делает Chrome – это делает криво написанное SPA, оно может съесть всю память вашего компьютера.

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

 

Третий подход – конструкторы сайтов

 

 

Весь остальной мир пока что живет тут. Пока что 90% интернета сделано на MPA, причем, при помощи конструкторов. Кстати, конструкторы достаточно крутые. Тут есть Tilda, Webflow, Bitrix, Readymag. Что-то из этого – конструктор, что-то – CMS. Сейчас эта грань путается. Дальше я немного про них поговорю. Это, в принципе, то, с чем работают нормальные люди, WiseAdvice в том числе.

90% потребностей можно решить с помощью обычных MPA.

 

 

Наверное, аудитория знает, что работать с Tilda – очень просто. Любой нормальный человек, который владеет компьютером, это все осваивает минут за 15. Ничего хитрого, готовые блоки, лендинг. Это все делается быстро, профессионально, красиво и вообще без лишних заморочек. Сели и сделали сайт. И он выглядит, как 90% интернета. Это круто. Если не знали об этом – надо знать.

 

 

Если вы не уложились в Tilda, попробуйте Webflow. Он похож на продукты Adobe. Если вы раньше работали с Photoshop, Illustrator, Corel Draw – там интерфейс очень похожий. Вы можете двигать мышкой, добавлять элементы. Потратив 2-3 часа на освоение  вы сможете сделать красивый сайт практически на коленке, не понимая ничего ни в HTML, ни в CSS. Верстка там, конечно, не идеальная, но выглядит очень хорошо. Остается только сделать обработку определенных событий, определенных постов – формочек, HTML для сайта.

Если вам нужно веб-приложение, которое не будет интегрироваться с 1С – конструкторов вам хватит.

 

Наше решение: Backend на 1С, Frontend – конструктор

 

 

Но если вы хотите сделать какой-то личный кабинет – то, что будет хоть как-то интегрироваться с 1С, то нет необходимости заводить отдельную CMS.

  • сначала на Webflow рисуется сайт, выгружается в HTML, JS, CSS и рисунки;
  • потом все это загружается либо в справочник, либо в макеты – это дальше расскажу;
  • POST-запросы от веб-форм обрабатываются отдельным HTTP-сервисом;
  • а второй HTTP-сервис отдает наверх весь контент.

В результате получается полноценное MPA-приложение, ничего в нем хитрого нет. У нас в рамках WiseAdvice на таком принципе построено уже около 4 продуктов. Сейчас это стало нашим корпоративным фреймворком.

Вот так выглядит наш личный кабинет в ЗУП, который рисовал дизайнер UX – у него это заняло два дня. Да, тут не все идеально, но выглядит вполне прилично – лучше, чем, если бы было в 1С.

Лицензии потребляет только в момент подключения.

Устанавливается одним расширением – вы ставите это расширение на ваш ЗУП, публикуете HTTP-сервис на веб-сервере и «Добро пожаловать в личный кабинет!»

 

All-in-one – всё Web приложение в одном расширении

 

 

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

Для нашего решения есть:

  • некая системная часть – сам механизм, который отдает CSS и JS-файлы. Там еще специфично реализована авторизация, я дальше расскажу – авторизация не 1С-ная (не нужно привязываться к 1С-ной);
  • и есть прикладная часть – специфичные посты и формы, которые мы обрабатываем уже отдельным кодом.

Мы вынесли системную часть в отдельный репозиторий – это теперь наш корпоративный фреймворк. Когда надо делать новый проект на 1С – берете этот репозиторий и на его основании разрабатываете дальше.

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

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

Почему мы пошли по двум веткам? Кто сталкивался с проблемами расширения данных, когда в расширении есть таблица или справочник? Грубо говоря, расширения данных пока что работают криво, плохо, разрушают базу – с ними происходит что-то страшное. Пока это все в расширение использовать нельзя. Поэтому при прочих равных подсистемой пользоваться лучше.

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

 

 

Примерно так выглядит наш бэкенд.

 

 

Это наше ноу-хау, как сделать отчет. Ничего хитрого – на страницу выводится фрейм, внутри фрейма – PDF. Можно сказать, что это – костыль, но работает очень хорошо. Вы сформировали отчет полностью на сервере, сохранили его в PDF и вывели во фрейме. Отчет можно сохранить или распечатать.

Более того, в нашем случае мы так выводим все печатные формы и все внешние данные. Не нужно быть верстальщиком, ничего самим с помощью хитрого HTML формировать – все уже и так выглядит круто.

 

 

Если надо сделать какой-то грид (список чего бы то ни было), то список мы на клиенте не формируем. Список, опять же, формируется на сервере 1С и выгружается на клиент в виде HTML – можно тоже ничего не делать и вообще ничего про HTML и CSS не знать.

 

Как организовать аутентификацию, не привязанную к пользователям 1С

 

 

Дальше – хитрости с аутентификацией. Никогда, по крайней мере, в наших кейсах, не нужно использовать штатную 1С-ную аутентификацию:

  • во-первых, потому что она открытая – всем известно, что пароль упаковывается в base64 и передается в открытом виде;
  • а во-вторых, потому что она трудноподдерживаемая со стороны веба, если это не OpenID Connect. Но и с OpenID Connect приходится заморачиваться достаточно много и долго.

Поэтому мы реализовали свою аутентификацию – один раз сделали и дальше используем. Веб-аутентификация тоже простая – надо только немного научиться работать с cookie. Мы взяли веб-разработчика, попросили его один раз показать, а потом сделали обработку в 1С:

  • на клиенте создается cookie;
  • а на сервере происходит проверка одного заголовка.

Ничего хитрого в аутентификации нет, не нужно думать, что это что-то страшное.

 

 

Вот так у нас выглядит форма аутентификации для всех сотрудников компании при входе в личный кабинет ЗУП.

Реальных пользователей в базе 1С – три кадровика, а в личный кабинет базы могут зайти все сотрудники. Сотрудники проверяются элементарно – он вводит свой корпоративный e-mail, если такой корпоративный e-mail у нас есть, отсылаем ему на него одноразовый пароль. Он этот пароль вводит и заходит. Ничего запоминать не нужно. SMS-ки, e-mail, мессенджеры – все средства связи, которые указаны в базе, можно использовать для аутентификации. Ничего хитрого.

 

****************

Данная статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT 2019.

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17783    19    22    

16

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    19850    13    17    

16

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14424    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1172    1    0    

3
Отзывы
12. comol 5107 18.05.20 19:18 Сейчас в теме
Ну и да, пока это тут - думаю уместно будет выложить ссылку на github для развития этого framework-а
https://github.com/1cwa/OneCWebFramework
alexeyplotnikov; detro; NorraSaltolinen; newvirinin; mkostya; serverstar; Yakuskenergo; JohnConnor; grfsd; dabu-dabu; DrAku1a; Snitkovski; Vladimir_Konyrev; maXon777; o.nikolaev; JohnyDeath; dock; Il; vikad; +19 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. frying 21 18.05.20 11:42 Сейчас в теме
Лицензии потребляет только в момент подключения.

http или web сервисы технически вообще не потребляют клиентские лицензии.

Вопрос в юридической плоскости и интерпретации лицензионного соглашения 1С.
https://v8.1c.ru/priobretenie-i-vnedrenie/otvety-na-tipovye-voprosy-po-litsenzirovaniyu-1s-predpriyatiya-8/
пункт 59
H1nt; pvlunegov; maXon777; Alias; +4 Ответить
4. comol 5107 18.05.20 14:30 Сейчас в теме
(1) "с которых одновременно осуществляется доступ". Всё там норм и 1С об этом объявляли.
86. Cyberhawk 135 26.06.20 16:20 Сейчас в теме
(4) Я бы выделил другой фрагмент - "с которых", ибо в этом комментарии от 1С не сказано, что лицензией клиент должен быть обеспечен только на время осуществления доступа к данным инфобазы
2. hamsar 16 18.05.20 11:49 Сейчас в теме
Vue – маленькая поделка; - нуну
Angular – большая сложная система, реализующая концепцию MVC, полноценный фреймворк от Google; - нуну
И React – что-то среднее, в современном мире достаточно популярное. - адекватно
portwein; nbeliaev; +2 Ответить
5. comol 5107 18.05.20 14:32 Сейчас в теме
(2) а что по вашему "нуну" про Vue и Angular? В Angular нет MVC? Или Vue крупнее Angular и Ract? Или что?
7. hamsar 16 18.05.20 15:35 Сейчас в теме
(5) vue не поделка
Ангулар = не полноценный, а перенасыщенный, фраза полноценный относящаяся к одному, одновременно убирает знак полноценный у других
8. comol 5107 18.05.20 15:44 Сейчас в теме
(7) Vue - библиотека, Angular - фреймворк. Почитайте официальные описания, это не камень в полюбившийся 1С-никам vue, а просто констатация факта.
pvlunegov; +1 Ответить
17. hamsar 16 19.05.20 09:08 Сейчас в теме
(8) и? Это не опровергает ничего из мною сказанного
21. comol 5107 19.05.20 13:10 Сейчас в теме
(17) эээ
1) Библиотека не фреймворк, по крайней мере не полноценный фреймворк.
2) Фреймворк больше библиотеки (как правило).
т.е.:
Vue - не полноценный фреймворк
Angular больше чем Vue...

Вроде как всё что я написал и говорил верно. Надеюсь что развеял ваши сомнения
pvlunegov; +1 Ответить
25. hamsar 16 19.05.20 13:57 Сейчас в теме
(21)
Вроде как всё что я написал и говорил верно. Надеюсь что развеял ваши сомнения
Эм ну конкретно к вашему посту замечаний нет, только одна дое.ка, по поводу позиционирования фрейворков и билиотек, как полноценных не полноценных. Ангуляр больше vue, 1с больше ангуляра, но это же не значит что 1с лучше ангуляра? Ангуляр требует больше человеко часов, для решения задач, которые решаются на vue с ним больше e.ли, да большие ребята живут на нем, но как более менее опытный человек скажу, что какие то адекватные решения, можно сделать с меньшим количеством трудозатрат на вуе и реакте. Ангуляр для триА проектов. Поэтому это скорее более неполноценное решение. Как человек прыгающий с реакта на вуе, и вынужденный погрузится в ангуляр, это как из c# прыгнуть в 1с, ваш пост хорош. Но оценочные суждения по этим трем рыбкам, не состыкуются ни с моим опытом, не с опытом моих колег
VitaliyCeban; +1 Ответить
3. nbeliaev 835 18.05.20 13:01 Сейчас в теме
Автор спасибо за материал. Скажите пожалуйста, как вы процесите HTML на стороне 1С. Я про шаблонизатор.
6. comol 5107 18.05.20 14:32 Сейчас в теме
(3) Pug используем. Я в ближайшее время выложу Web фреймворк на github
portwein; +1 Ответить
10. nbeliaev 835 18.05.20 17:53 Сейчас в теме
(6)
потом все это загружается либо в справочник, либо в макеты – это дальше расскажу

Этот контент вы отдает наружу. Это же не статика, как я понимаю. А Pug, который вы упомянули, он здесь где? Для него же Webpack нужен как минимум.
11. comol 5107 18.05.20 17:57 Сейчас в теме
(10) Сборщик ни для чего не нужен, 1С отдаёт json-ы, pug собирает страницы... Не нужно там ни gulp-ов ни webpack-ов
15. nbeliaev 835 19.05.20 05:27 Сейчас в теме
(11) А для чего тогда вам в макетах html? Про json в публикации информации не было информациии...
23. pvlunegov 158 19.05.20 13:49 Сейчас в теме
(11) я так понимаю что упомянутый plug (или pug?) это некий сервер или скрипт, который принимает json и по заранее введенным шаблонам формирует html?
Где почитать про это?
31. comol 5107 19.05.20 18:41 Сейчас в теме
(23) https://pugjs.org/api/getting-started.html он же jade - серверный скрипт который принимает шаблон и json
85. user1416277 30.05.20 20:37 Сейчас в теме
pug это js шаблонизатор по работе с версткой, предоставляемы в качестве npm библиотеки, по идее к 1с не имеет никакого отношения, для утрановки нужен npm, соответственно компилятор node js https://loftblog.ru/material/15763/
22. pvlunegov 158 19.05.20 13:48 Сейчас в теме
(6) Есть ли краткое описание этого?
Очень интересуюсь темой, в прошлом много работал в этом направлении (http сервисы в 1с + сторонние девайсы + отчеты на HTML).
Если уже есть адекватный шаблонизатор, то такое чудо надо представить народу.
30. comol 5107 19.05.20 18:40 Сейчас в теме
9. user778014 9 18.05.20 15:46 Сейчас в теме
Статья навеяла много мыслей. Итог для себя сделал такой что основные проблемы 1с не в технологиях а в мыслях которые в голове у разработчиков.

-1с не придерживается общепринятых технологических стандартов при работе с вебом. Предпочитает использовать собственный технологический велосипед. Это к слову почему 1с не дает возможность использовать стили для оформления веб клиента.
-Несмотря на наличие веб клиента 1с так и не смогла закрепиться на рынке RPA, MPA.
-Для веб индустрии 1с слишком дорога и не серьезна. Потому что в отличии от дорогих Angular, React, Vue сколько денег не потрать на 1с написать на ней приемлемое решение невозможно.
-Http сервисы в 1с следует использовать только для интеграционных целей. В остальных целях это костыль который еще и имеет проблемы с производительностью и невнятной лицензионной политикой.
-С 1с сейчас все больше конкурируют не erp/бух решения а многочисленные веб приложения тип Контур, МойСклад, Эльба и так далее.

Как результат на сегодняшний день разработчику нет смысла связываться с технологией 1с для серьезной работы в вебе. Эта технология не даст разработчику ни необходимого опыта и не окупит его инвестиции затраченных на получения образования и соответствующего опыта.
А отказ от общепринятых стандартов работы в вебе приносит непосредственно 1с упущенную выгоду в виде потери большой части клиентов которые используют стандартные веб инструменты и фреймворки
kote; Steelvan; parshin; Кузьмич; Dempingator; Korolev; pvlunegov; starik-2005; DamirMur; +9 Ответить
14. RustIG 1747 19.05.20 04:32 Сейчас в теме
о чем речь?
(9)
С 1с сейчас все больше конкурируют не erp/бух решения а многочисленные веб приложения тип Контур, МойСклад, Эльба и так далее.


зашел на сайт Эльбы-Контура - они предлагают онлайн-бухглатерию только
Онлайн-бухгалтерия для ИП и ООО на УСН, ЕНВД и патенте


ОСН нет, совмещенных режимов нет - вся красота веб-технологий не компенсирует отсутствие недостающего учета...Про МойСклад спрашивал у бывалых пользователей - сказали, что взаиморасчеты с покупателями/поставщиками ведутся в разрезе только одного платежа (один счет - одна оплата), и как только у вас по счету несколько оплат, то система перестает работать.
19. comol 5107 19.05.20 11:55 Сейчас в теме
(14) и очень хорошо что ПОКА нет. Ну туда сейчас вбухивается не хилое такое количество денег. А если появится и будет удобнее чем Бухгалтерия? :(
18. Evil Beaver 8243 19.05.20 09:11 Сейчас в теме
(9) почему-то пытаются сравнить веб-клиент 1С и веб-приложение общего назначения. Это неверно. Веб-коиент 1С это в первую очередь "клиент 1С", и только потом- "веб". Т.е. это доступ в ваше корпоративное приложение на 1С. Но цели такой, чтобы был вообще любой интерфейс - ее нет, ни в веб, ни в тонком клиенте. Бизнес-смысл приложения на первом месте. Загляните в веб интерфейсы oracle, sap. Там 2002 год еле-еле наступил. А стОит как ракета на марс. Потому что кому-то шашечки, а кому-то ехать.
JohnyDeath; RustIG; +2 Ответить
20. comol 5107 19.05.20 11:57 Сейчас в теме
(18) Конечно ты прав... но вот я посмотрел на SalesForce и QuickBooks - вроде тоже корпоративное приложение, но выглядит няшно...
58. gendal 10 20.05.20 21:53 Сейчас в теме
(18) Так веб-клиент 1С это SPA или MPA? И как работает с сервером, отдал данные и разорвал соединение или постоянно висит? Только в 1С знают...
24. pvlunegov 158 19.05.20 13:53 Сейчас в теме
(9) Когда РАЗРАБОТЧИК 1с после скольких то лет успешного опыта в 1с уходит в ВЕБ, у него нет никакого желания оставаться в 1с. Причины:
1. Профессия программист 1с (который пишет конфигурации, внедряет их на предприятиях и имеет большие зарплаты) - скучна, мелка, и ограничена.
Ограничена:
- Технологиями 20 летней давности (в веб), который НИКАК не развиваются.
- НеЖЕЛАНИЕМ разработчиков 1с развивать технологии платформы 1с по части ВЕБ
- НЕЖЕЛАНИЕМ решать старые технические проблемы 10летней давности, которые уже все знают и много лет кричат о них разработчикам.
- Нежеланием решать технические проблемы велосипеда под названием web-kit старющей версии который встроен в платформу 1с.
- Очень мало информации, документации по существующим велосипедам.
- нет исходных кодов, информация о версиях библиотек web-kit закрыта.
- методами научного тыка определено что составляющие библиотек web-kit загружены различных версий и частично не обновляются.

Отсюда я лично для себя сделал выводы:
1. У 1с криворукие программисты которые слабо понимают в Веб
2. Технические ошибки никак не исправляются
3. 1с стыдно признаваться в своих промахах и они молчат в тряпочку. Не публикуют исправлений, номеров версий и т.п.
4. Многолетнее молчание, закрытые двери программистам 1с, которые делают деньги компании, не желание с ними общаться.
Это говорит о многом!

несколько лет назад я с друзьями, программистами 1с, пытались развивать технологии по части веб.
Проблема в том, что 1с ЗАКРЫЛА возможность подключать некоторые технологии в платформу .
А именно - с выходом управляемых форм фактически закончилась эра:
- 1с++ библиотек и мощных конфигураций которые реализовывали большой функионал сторонними стредствами
- подключаемых внешних компонент. Сейчас это фактически невозможно или очень сложно (в типовых конфигурациях)

Предлагаемые замены внешним компонентам:
- внутренний браузер, встроенный в платформу. Глючно, проблеммно. Главные проблемы - не актуальные версии Web-kit, не публикуется информация по версиям библиотек. А это очень важно при разработке под Веб.

В итоге - работа программиста в Веб средствами платформы 1с практически остановлена.
Причины: Политика 1с.
Nadezhdin; Gureev; semagin@gmail.com; Korolev; +4 Ответить
28. van_za 269 19.05.20 15:05 Сейчас в теме
32. comol 5107 19.05.20 18:48 Сейчас в теме
(9)
Для веб индустрии 1с слишком дорога и не серьезна. Потому что в отличии от дорогих Angular, React, Vue сколько денег не потрать на 1с написать на ней приемлемое решение невозможно.

О_о? Всё возможно - быстро и просто.


(9)
-Http сервисы в 1с следует использовать только для интеграционных целей. В остальных целях это костыль который еще и имеет проблемы с производительностью и невнятной лицензионной политикой.

не понял о чём речь. Никаких проблем с ними нет.

Как результат на сегодняшний день разработчику нет смысла связываться с технологией 1с для серьезной работы в вебе

Смотря для чего. Если цель - сайтики на битриксе и тильде делать, конечно не стоит. Если корпоративные приложения - очень даже. Разработка на 1С по сравнению с Web это в 10-20 раз меньшая стоимость.

Вообщем из моей статьи вы как то умудрились сделать прямо противоположные выводы - странные люди...
34. user778014 9 19.05.20 19:38 Сейчас в теме
(32) А сколько вы уже на 1с продающих сайтов сделали ? Не просто где можно что то посмотреть или один, два раза на кнопку нажать, а именно продающих, продвигающие продукцию предприятия.

Просто наличия http сервисов для серьезного проекта в веб недостаточно. Нужна поддержка асинхронности, многопоточности, кэширования, масштабирования и многих других составных частей. Это есть в http сервисах 1с ?

Нужны средства работы с JS, CSS, вменяемые редакторы и многое еще чего что отсутствует в 1с.

Если побаловаться и сваять кабинетик в интернете для 20 пользователей, то конечно можно и по вашей технологии это в 1с слабать. Но никто за такой кабинетик платить не будет даже по мелочи, не говоря о серьезных бюджетах.

Если нужно серьезное решение на сотни и тысячи пользователей с серьезной логикой работы то смысла использовать 1с для этих целей нет. А пойдут в Vue, React, Angular потому что хоть и дорого но цель будет достигнута. Да и молодому специалисту которому интересна веб разработка в 1с вряд ли пойдет, так как несерьезно это все пока. С точки зрения жизненного цикла инвестиционного продукта технологии 1с для веб невыгодны для начинающих разработчиков.
42. comol 5107 20.05.20 11:36 Сейчас в теме
(34) Ну "продающие сайты" люди в здравом уме как SPA не делают. Загуглите на досуге что такое SEO и поймёте почему. Делают сайтики на битрксах и тильдах - тут разработчики не нужны - этой действительно никак не к 1С...

Про серёзное решение на сотни и тысячи пользователей - если речь про приложение.... 1C fresh не? По-моему вполне успешно за него платят. Попробуйте - понравится ;).

Молодому специалисту которому интересна именно web разработка 1С может и не пойдёт, как и специалисту которому интересен дизайн, анимация, DS, тому кто любит петь и танцевать 1С наверное тоже не очень зайдёт :)
Молодому специалисту которому интересен бизнес, финансы, производство, 1С очень даже в тему, более чем что либо другое.
ХЗ что вы там имели ввиду про жизненный цикл инвестиционного продукта, но продукт на 1С делается в сотни раз с меньшими инвестициями чем на "голом Web".
49. user778014 9 20.05.20 13:31 Сейчас в теме
(42) под продающим сайтом имею ввиду не лэндинг пейдж.

1с fresh не имеет никакого отношения к вашему варианту строительства кабинетиков. Там в основе кабинета лежит не 1с. А далее уже по запросу пользователя запускается сессия 1с в вебклиенте.

Вариант построения сайтиков предложенный в данной статье не рассматриваю как какую то серьезную технологию. Лучше потратить некоторое время на изучение php, Python. Время на освоение примерно равное будет а результат для специалиста с точки зрения построения карьеры и зарплаты сильно разный
50. comol 5107 20.05.20 13:36 Сейчас в теме
(49)
под продающим сайтом имею ввиду не лэндинг пейдж

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

В статье рассказано про приложение, вернее даже про часть приложения.

изучение php,

Изучайте php конечно, людям надо на что то выкидывать время :)))
12. comol 5107 18.05.20 19:18 Сейчас в теме
Ну и да, пока это тут - думаю уместно будет выложить ссылку на github для развития этого framework-а
https://github.com/1cwa/OneCWebFramework
alexeyplotnikov; detro; NorraSaltolinen; newvirinin; mkostya; serverstar; Yakuskenergo; JohnConnor; grfsd; dabu-dabu; DrAku1a; Snitkovski; Vladimir_Konyrev; maXon777; o.nikolaev; JohnyDeath; dock; Il; vikad; +19 Ответить
73. Diversus 2329 29.05.20 20:47 Сейчас в теме
(12) Олег, я посмотрел и есть вопросы к производительности.
1. Использование модуля с повторным использованием в HTTP-сервисе. Я вовсе не уверен, что использование этих модулей для HTTP-сервисов будет работать действительно как надо кэшируя значения. Точнее кэшировать то будет, но ровно один раз до следующего вызова HTTP-сервиса того же пользователя. При этом теряется смысл использование таких модулей. Вопрос к тебе: ты проверял работают ли модули с повторным использованием в HTTP-сервисе как надо?
2. ОбщийМодуль.ВебСайт_ПовтИспШаблонизаторPug.ПолучитьПолноеИмяФайлаPUGРекурсивно
Эта беда. В моей разработке Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером тоже была подобная, но я ее переписал. Ты тоже попытался, но вышло не очень. Это слабое место:
Функция ПолучитьПолноеИмяФайлаPUGРекурсивно(Страница, Путь)
	
	НовыйПуть = "";
	НовыйПуть = Путь + "\" + Страница.Наименование;
	Если ЗначениеЗаполнено(Страница.Родитель) Тогда
		Возврат ПолучитьПолноеИмяФайлаPUGРекурсивно(Страница.Родитель, НовыйПуть);
	Иначе
		Возврат НовыйПуть;
	КонецЕсли;	
	
КонецФункции
Показать

Т.к. грубо говоря в цикле ты читаешь сначала Наименование через точку (а это запрос к базе), а затем Родителя (и это запрос к базе).
Я предлагаю вот такую методику (из переделанной моей публикации):
// Возвращает относительный URL страницы личного кабинета.
//
// Параметры:
//	Страница - СправочникСсылка.СтраницыЛичногоКабинета - страница личного кабинета.
//
// Возвращаемое значение:
//	Строка - URL страницы. Пример folder/script.js (страница script.js находится в папке folder).
//
Функция ОтносительныйURLСтраницы(Знач Страница) Экспорт
	
	Результат = "";
	Запрос = Новый Запрос();
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ЛичныйКабинет.Наименование КАК Наименование,
		|	ЕСТЬNULL(ЛичныйКабинет.Родитель.Наименование, """") КАК Родитель,
		|	ЕСТЬNULL(ЛичныйКабинет.Родитель.Родитель.Наименование, """") КАК РодительРодитель,
		|	ЕСТЬNULL(ЛичныйКабинет.Родитель.Родитель.Родитель.Наименование, """") КАК РодительРодительРодитель,
		|	ЕСТЬNULL(ЛичныйКабинет.Родитель.Родитель.Родитель.Родитель.Наименование, """") КАК РодительРодительРодительРодитель,
		|	ЕСТЬNULL(ЛичныйКабинет.Родитель.Родитель.Родитель.Родитель.Родитель.Наименование, """") КАК РодительРодительРодительРодительРодитель
		|ИЗ
		|	Справочник.ЛичныйКабинет КАК ЛичныйКабинет
		|ГДЕ
		|	ЛичныйКабинет.Ссылка = &Страница"; 

	ТекСтраница = Страница;
	Пока Истина Цикл 
	    Запрос.УстановитьПараметр("Страница", ТекСтраница); 
	    РезультатЗапроса = Запрос.Выполнить(); 
	    Если РезультатЗапроса.Пустой() Тогда 
	        Прервать; 
	    КонецЕсли; 
	    Выборка = РезультатЗапроса.Выбрать(); 
	    Выборка.Следующий(); 
		
		Если ПустаяСтрока(Результат) Тогда
			Результат = Выборка.Наименование; 
		КонецЕсли;
		
	    Для НомерКолонки = 1 По РезультатЗапроса.Колонки.Количество() - 1 Цикл 
	        ТекСтраница = Выборка[НомерКолонки]; 
	        Если ТекСтраница = "" Тогда 
	            Прервать; 
	        Иначе 
				Результат = ТекСтраница + "/" + Результат;
	        КонецЕсли; 
	    КонецЦикла; 

	    Если НЕ ЗначениеЗаполнено(ТекСтраница) Тогда 
	        Прервать; 
	    КонецЕсли; 
	КонецЦикла;	
	
	Возврат Результат;
	
КонецФункции
Показать

Используем один запрос для выборки сразу пяти родителей, что в подавляющем большинстве случаев достаточно. Пример подсмотрел в методических рекомендациях по программированию на сайте ИТС (Получение всех родителей элемента).
74. comol 5107 29.05.20 21:04 Сейчас в теме
(73) 1 время жизни сеанса 3600 секунд и его переиспользование конечно - прекрасно работает
2 да это беда - код не идеален и надо бы поправить... но существенно он на производительность после первого вызова не влияет по сути. вся структура в КЭШ-е, основные расходы не на это.
Может pull request оформишь? :)
Diversus; +1 Ответить
77. Diversus 2329 29.05.20 21:12 Сейчас в теме
(74) Ок, спасибо, но нет. Я еще ковыряние твоей подсистемы не закончил :)
Еще как вариант сокращения запросов к веб-серверу, можно попробовать не только картинки кэшировать, как ты делаешь по умолчанию, но и дополнительные файлы, которые точно не будут изменяться. Например какой-нибудь jQuery, Bootstrap и т.д. Поменяться может, но маловероятно. Если поставить безопасное время кэширования скажем день/два/неделя, то в принципе будет отлично работать и серьезно сократит среднее время загрузки.
Основная причина почему HTTP-сервисы медленно работают - это множество мелких запросов, если их минимизировать, то скорость значительно возрастет.
78. comol 5107 29.05.20 21:17 Сейчас в теме
(77) Ну у меня вся статика апачем кэшируется... а остальные 1 json на страницу...
13. gendal 10 18.05.20 23:03 Сейчас в теме
Согласен с автором, что для обычного предприятия классическая веб-разработка - это дорого. Все это окупается при достаточно большом числе пользователей, Условно говоря, придумали стартап, заплатили за разработку, например, 100'000$ и дальше увеличиваете клиентскую базу пользователей вашего сервиса. Основная цена - это фронтенд, т.к. нужно нарисовать дизайн (дизайнер), далее из картинки сделать простую веб-страницу на html и css (верстальщик), если это SPA - интегрировать ее в выбранный фреймворк (отмеченные выше Vue, Angular или React) (фронтенд-разработчик), далее выбрать бэкенд фреймворк (например Laravel (php), Django (python) или Express (Node) (бэкенд-разработчик) + еще проектирование БД (MySQL или PostgreSQL). 4 разных специалиста задействованы в процессе. Есть конечно "универсальные солдаты" - fullstack-разработчики, знающие фронт и энд, но верстка все равно остается верстальщику. Это широко распространенный стек технологий мирового уровня. Основной плюс - сами технологии бесплатны, оплата только за разработку и хостинг.
16. Evil Beaver 8243 19.05.20 09:05 Сейчас в теме
Ну неееет, хочу полноценную разработку сервисов с веб-мордами, без 1С в бэкенде!!! Но чтоб дешево, как на 1С
Zeskord; comol; +2 Ответить
47. user778014 9 20.05.20 13:18 Сейчас в теме
(16) посчитайте стоимость лицензий необходимых для сайта с 1с на 1000 пользователей, сравните со стоимостью сайта с Php в качестве бэкенда и вы поймаете что 1с это не дёшево
26. pvlunegov 158 19.05.20 14:11 Сейчас в теме
Еще один способ интеграции 1с с веб.
Делаем сайт на CMS, дешево, быстро и сердито.
CMS с публикацией на MySQL например (или любом другом SQL движке).
В 1с настраиваем интеграцию с MySQL прямыми запросами.
Интеграцию садим на регламентные задания.
В итоге, мы имеем сайт с веб-мордами. CMS может обслуживать программист 1с после недолгого обучения.
При необходимости, можно отдать на разработку дизайнеру красивых веб-морд, или купить красивый готовый шаблон для CMS (их сотни тысяч).
Основное время уйдет на разработку прямых запросов к БД MqSQL.
Это не проблема, в интернете много курсов на эту тему.

В итоге имеем 1с с документами, справочниками. Прямые запросы к БД сайта реализуют интеграцию с сайтом.

У такого способа интеграции много преимуществ:
Сайт может быть любой, главное иметь готовую базу на SQL с внятно технически описанными таблицами.
Важно, чтобы было описание таблиц. Если его нет, то его можно получить самостоятельно, если есть толковый веб-программист который за вечер сделает такое описание.
При необходимости, общаемся с иностранным веб-программистом, который за денежку сдает такое описание.
Далее описание Базы данных попадает программисту 1с, который делает прямые SQL запросы к БД.
user598128_able123; +1 Ответить
33. comol 5107 19.05.20 18:49 Сейчас в теме
(26)
В 1с настраиваем интеграцию с MySQL прямыми запросами.

После этой фразу слово "дешево" можно вычеркнуть
37. pvlunegov 158 20.05.20 07:19 Сейчас в теме
(33) Почему вас слово "прямой запрос к MySQL" ввело в ступор? Почему вы решили что это будет дорого?
Любой программист 1с работал с запросами. Научить его понимать прямые запросы SQL к любой базе данных
легко, потому что он интуитивно их понимает. Потому что запросы 1с - это те-же запросы SQL только в англоязычном синтаксисе.
Дать почитать программисту статейки, например вот эти https://infostart.ru/public/370599/ и еще кучу других.
Посадить за консоль MySQL сайта, в которой он сможет писать прямые запросы к БД в синтаксисе SQL.
Эта консоль доступна как одна из утилит администрирования сайта, любой веб-мастер вам покажет как ее открыть.
В этой консоли программист 1с легко набьет руку за 1 день. Делая запросы и получая ответы от БД в виде таблиц.
А в 1с расшифровывать таблицы и превращать их в нужное действие - легко.

Это все делается быстро и дешево.
61. mixsture 21.05.20 13:31 Сейчас в теме
(37)
1) этот подход работает довольно плохо. Например, ломаются управляемые кэши в битриксе. Кроме того, большая опасность, что при очередном обновлении CMS внутри поменяется структура хранения данных и интеграция сломается (доступ же через объектную модель самой CMS исключает такую проблему).

2) этот подход довольно медленный (работает медленно), если за основу брать источники данных 1с. Т.к. часто одна сущность на сайте раскидана по нескольким таблицам и поэтому с 1с приходится делать много-много запросов записи, что через механизм источников данных 1с работает медленно. В ODBC, насколько я помню, есть отдельные методы для вставки таблицы значений в таблицу БД и поэтому с ним можно.

3) и это не так уж дешево, т.к. часто требует реверс инжиниринга - в какие таблицы и что складывает сайт. Кроме того, вам нужно поддерживать большое число вариаций настроек. В том же битриксе может кучка опций менять расположение данных (например, доп свойства можно хранить каждое в отдельной таблице или в одной общей, включенный/отключенный фасетный индекс добавляет еще таблицу для записи)
66. pvlunegov 158 22.05.20 09:19 Сейчас в теме
(61) Принимаю ваши аргументы, очень убедительно и логично. Вы правы!
27. acanta 19.05.20 14:40 Сейчас в теме
Как вы себе представляете отдельный конфигуратор для веб приложения к конфигурации 1с? Битрикс? Едт? Кд 3?
Или саму конфигурацию 1с работающую исключительно в веб?
29. user778014 9 19.05.20 16:35 Сейчас в теме
(27) Можно представить в виде отдельного объекта в метаданных Вебсайт с подразделами стили CSS, JavaScript сценарии, html шаблонизаторы
35. officeRebot 14 19.05.20 20:06 Сейчас в теме
Зачем пихать страницы в справочники макеты? Эти файлы можно просто положить в веб сервер, а 1с использовать исключительно как веб апи.
Интересно кто-нибудь проводил сравнительные тесты http сервисов 1ски?
frying; pvlunegov; +2 Ответить
36. user778014 9 19.05.20 23:04 Сейчас в теме
(35) А у них не было задачи сделать высокопроизводительный сервис. Или они не понимали что это означает. Для кабинетика на 20 пользователей и так сойдет
44. comol 5107 20.05.20 11:46 Сейчас в теме
(36) 800+ пользователей в "кабинетике" и не в одном. Скоро будет уже намного больше. И "скорость работы" в бэклоге продукта сейчас 87-ой таск, по приоритету... за ним что-то есть вроде ещё, но это почти конец.

Будет свободное врея почитайте что-нибудь про CDN, очереди сообщений, архитектурные паттерны - найдёте для себя много всего интересного и поймёте что высокопроизводительный сервис не равно "быстрый web сервер" :)))). Странные люди.
60. officeRebot 14 21.05.20 00:48 Сейчас в теме
если такие замечательные показатели, почему еще весь интернет не на cms 1с совместимо?) А в реальной жизни добрая половина серьезных сервисов асинхронные, наверно их бэкэндщики про 1с еще ничего не знают)
43. comol 5107 20.05.20 11:42 Сейчас в теме
(35) Интересно, а зачем CMS пихает страницы в БД....? хм... Аа... наверное для версионирования, простоты управления, простоты резервного копирования, поиска, систематизации...

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

http сервисы сравнивали с node.js. порядка 150ms 1С-ка тратит хрен знает на что. Но вцелом LightHouse все решения показывает "зеленым" - скорость загрузки страниц преемлимая. Статику при этом конечно надо кэшировать в Apache.
59. officeRebot 14 21.05.20 00:20 Сейчас в теме
(43)

Возможность быстрого развертывания несомненный плюс такого решения.

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

Интересно как вы планируете реализовать пуш уведомления на клиенте?
64. comol 5107 21.05.20 20:32 Сейчас в теме
(59)
Интересно как вы планируете реализовать пуш уведомления на клиенте?


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

Текст из макета извлекается за 0.07 сек. Тут что понимать под "заметно". Если постараться наверное можно заметить, но надо очень сильно постараться
65. officeRebot 14 21.05.20 23:02 Сейчас в теме
(64) я не про рекламные пуши, а про реалтайм web приложения, например в 1с заказ подтвердили, у пользователя без обновления страницы данные должны обновится, оплата на рс поступила - у пользователя уже все на мониторе.
68. comol 5107 22.05.20 11:14 Сейчас в теме
(65) это всё равно зло, но нам тоже приходилось делать :(
Это не укладывается в концепт "сайт в конструкторе", "код в 1С" для чего делался данный фреймворк, потому как не обойтись без JS кода на клиенте. А этом js коде уже клиент слушает сообщения - либо через WebSocket, в которое у нас транслируется MuleESB, либо через pouchdb, которая синхронизируется с couchdb. там 3 строчи, но всё же неприятно. В штатную функцию фреймворка эту историю включать не будем.
62. I_G_O_R 69 21.05.20 19:18 Сейчас в теме
(35)
Интересно кто-нибудь проводил сравнительные тесты http сервисов 1ски?

С этими конечно не сравнить, но если использовать повторное использование сеансов, сотни RPS на 4-х ядерном компе выдает (точные цифры не помню, а искать лень)
Cyberhawk; +1 Ответить
63. officeRebot 14 21.05.20 20:20 Сейчас в теме
38. baracuda 2 20.05.20 09:06 Сейчас в теме
Каждому свое. Да 1с мощная платформа для бизнес логики. Но использовать ее как backend для сайтов, ну я не знаю, мне кажется рановато еще. Особенно с учетом того, что можно просто развернуть бесплатные фреймворки vue+django и иже с ними. На них и проще будет разработка, проще будет и сопровождение ну и быстродействие будет в разы лучше.

К слову сам написав 1 проект на django+vue хочу вообще от 1С отойти потихонечку. Перейти на современный full-stack и там работать.
pvlunegov; +1 Ответить
45. comol 5107 20.05.20 11:50 Сейчас в теме
(38) Не Backend для сайтов конечно. Из разработчиков в "сайтоделы" это так себе путь. А добавлять "личные кабинеты".
У каждого свой путь, но менять хороший фреймворк на "что-то модное" ИМХО так себе занятие, не профессионально это
56. baracuda 2 20.05.20 15:06 Сейчас в теме
(45) ну по поводу "что то модное" это последнее на что я буду ориентироваться.
У меня стоит конкретная задача написать узкоспециализированный сервис с прицелом на тысячи пользователей по всей России.
На 1С такое пилить просто unreal, так как это веб и там нужно хорошее UI плюс куча специфического функционала
Буду делать на Django+Vue ( или NuxtJS). Если взлетит, то мне 1С уже заниматься в принципе нужда отпадет. Как то так.
57. comol 5107 20.05.20 15:35 Сейчас в теме
(56) Ну в статье я показал по-моему что не Unreal, возможно всё и даже беспроблемно, просто не нужно :).
Если в сервисе нет учетных задач, и он никаких 1С--ных интеграций не имеет то не надо конечно его делать на 1С.
В современном мире у вас там 90% работы будет на фронте - у дизайнеров UI/UX, продактов... 1С притягивать во имя оптимизации 5% трудозатрат на бэк просто незачем, тут вы правы.
39. pm74 203 20.05.20 10:16 Сейчас в теме
молодцы хорошо сделали
правильно понимаю что вся логика веб приложения на стороне 1с ?

да иногда приходится что то такое монстрить с доступом к 1с через веб , тут у каждого свои подходы
мне например по душе фласк , очень гибкий и быстро можно собрать небольшое приложение . В качестве wsgi сервера для win можно взять witeress для linux .. много их.
Для работы не обязательно лезть в базу sql прямым запросом можно собрать json внутри 1с обычным запросом и вытянуть через 1с-ный веб сервис . Из плюсов : можно просто настроить кэширование и сессии , чтобы снизить нагрузку на 1с + (лично для меня было ценным) получение файлов без прямого доступа к файловому хранилищу
И общий для питона плюс : мало кода
вот например извлечение данных из 1с

conf = {
    'url': 'http://192.168.1.112/unf_12/hs/alg/assignments',
    'auth': ('usrweb', 'pass')
}

*bp.route('/')
*Cached(timeout=2*60, key='assignments/index')
def index():
    if not request.remote_addr in ['127.0.0.1', '192.168.1.91', '192.168.1.95', '192.168.1.96', '192.168.1.97', '192.168.1.103']:
        print(request.remote_addr)
        abort(401)

    c1c = HTTP1c_DataLoader(**conf)
    if c1c.gotIt:
        df = pd.read_json(c1c.rtext)
        df['OrderDate'] = df['OrderDate'].astype('datetime64[ns]')
        session['DataFrame'] = df
        return render_template('assignments/index.html', df=df)
    else:
        return redirect(url_for('error', message='Извините что-то  пошло не так.'))
Показать
40. pvlunegov 158 20.05.20 10:43 Сейчас в теме
(39) окей, вы отдаете данные из 1с через json на страницу сайта.
Можно даже обойтись без back-end сайта, все данные располагать на веб-странице через javascript.
А как вы будете получать данные в 1с от сайта?
то-же прямо со страницы, формируя json через javascript?
Тогда это будет сайт без back-end.
Вся логика работы его будет на front-end.
И вам нужен будет толковый программер javascript чтобы реализовать front-end.
41. pm74 203 20.05.20 10:50 Сейчас в теме
(40)
Можно даже обойтись без back-end сайта

я про javascript ни сказал ни слова, а про python flask говорил в общем то , который что ни на есть back-end-ный back-end
по фронту да есть проблемы , тут нужно уметь красивый дизайн, css, javascript .. вот это все
чтобы не заморачиваться делал на бустрапе , для таблиц брал вот это
46. comol 5107 20.05.20 11:52 Сейчас в теме
(39)
правильно понимаю что вся логика веб приложения на стороне 1с

да

Ну flask у вас будет ещё одной прослойкой... зачем непонятно. Кэшировать статику может и Apache.
48. pm74 203 20.05.20 13:30 Сейчас в теме
(46)
Ну flask у вас будет ещё одной прослойкой.

тема нужности такой прослойки холиварная , тут не хочу спорить
за

сначала на Webflow рисуется сайт

отдельное спасибо. попробую этот конструктор
web дизайнер из меня никакой , может с конструктором попроще будет ))
51. user778014 9 20.05.20 13:36 Сейчас в теме
(48) Тоже в своё время искал варианты с конструкторами и наткнулся на webflow. Вещь очень полезная
52. comol 5107 20.05.20 13:43 Сейчас в теме
(48) Если дизайнер никакой, то Webflow не поможет... Webflow поможет если никакой верстальщик... Если никакой дизайнер - только tilda.

Ну из tilda, впрочем, на платном тарифе тоже можно статику выгрузить, взять фреймоворк, закинуть в 1С и реализовать обработку формочек - получается быстро и симпатично. Простенький портал за полдня можно собрать
53. pm74 203 20.05.20 13:46 Сейчас в теме
(52)
Webflow не поможет..


ну я смотрю у них и готовые шаблоны есть , в т.ч. бесплатные
54. comol 5107 20.05.20 13:48 Сейчас в теме
(53) Ну может и поможет... тильду посмотри - там можно из блоков собрать и есть zeroblock, который можно юзать для творчества.
55. pm74 203 20.05.20 13:50 Сейчас в теме
67. pvlunegov 158 22.05.20 09:29 Сейчас в теме
Резюме из всего вышесказанного я для себя вывел такое:

Использовать 1с как back для сайта - нельзя.
Основные причины:
- 1c не развивается в сторону Веб и не будет развиваться
- Веб не стоит на месте и эволюционирует.
- Чтобы соответствовать вебу, продукт надо развивать вместе с ним и идти ему навстречу

Таким образом, сайт надо строить на том движке, который наиболее отвечает задачам:
- Удобства разработки, наличие в компании Веб-разработчика(ов)
- Движок должен развиваться и эволюционировать вместе с Вебом. Этому должны быть определенные показатели, их легко увидеть на офиц. сайте разработчиков движка.
- Движок должен соответствовать требованиям бизнеса. ВАШЕГО бизнеса.
Например, если у вас Онлайн-кассы, движок должен иметь возможность их интегрировать на сайт. Интеграция должна быть легкой, или встроенной в движок (это идеально но не везде)

Использовать 1с как УЧЕТНУЮ и СПРАВОЧНУЮ систему для сайта - возможно, с оговорками.
Оговорки:
- Сбор информации (общедоступной в интернете) должен быть автоматизирован
- Автоматизация возможна сторонними средствами (Java, С++ приложения и др.)
- БИЗНЕСОВАЯ информация - ее сбор и хранение автоматизируется 1с средствами.

ИНТЕГРАЦИЮ 1с с сайтом можно настроить различными средствами.
Предложенный автором статьи способ интеграции - МНЕ не нравится.
Причины:
- Разработка собственного скриптового движка сборки Html страниц.
Это нельзя делать, так как это ставит в зависимость КОНТЕНТ сайта, СТРУКТУРУ его страниц от 1с скриптов!

Автор статьи молодец, спасибо ему за описание своего опыта. Он бесценен и шикарен.
Дело в том, что все мы не стоим на месте и развиваемся.
Аналогичный опыт разработки сриптов сборки HTML страниц я лично реализовал несколькими способами.

Проблема в данном случае не ТЕХНИЧЕСКАЯ, а на стыке БИЗНЕС задач и ВЕБ-ИНСТРУМЕНТОВ
ВЕБ-интструменты НЕЛЬЗЯ ставить в засисимость от БИЗНЕС интструментов.
Это разные области деятельности, у них ПРОТИВОПОЛОЖНЫЕ задачи, они КОНФЛИКТУЮТ.

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

В любой компании есть учетный отдел, который использует 1с например, а также Маркетинговый отдел, который взаимодействует с клиентом через сайт.
У них требования Абсолютно противоположные. И это ФАКТ.
Их интересы НЕЛЬЗЯ сталкивать. Они должны работать ОТДЕЛЬНО.
МАРКЕТИНГОВЫЙ отдел работает через сайт - взаимодействует с клиентом.
УЧЕТНЫЙ отдел работает через 1с.

НЕЛЬЗЯ распространять требования учетного отдела на сайт - это будет уничтожение работы Маркетингового отдела!
kalyaka; avbolshakov; +2 Ответить
70. alexnov 49 22.05.20 13:46 Сейчас в теме
(67)поделитесь пожалуйста опытом хотя бы кратко и конкретно. С чем и как связать 1С для разработки небольшого ЛК?
69. pm74 203 22.05.20 11:39 Сейчас в теме
(0) еще вопрос по теме ,
сколько 1с -ных пользователей вы создаете в базе для обслуживания http соединений
и как баланисируете нагрузку между ними
75. comol 5107 29.05.20 21:06 Сейчас в теме
(69) 1. Там же в коде на гитхабе есть блок авторизации. Она не 1С-ная никоим образом. Что имеется ввиду под балансировкой нагрузки я не понял. Пользователи 1С тут нипричём вроде
79. pm74 203 29.05.20 21:52 Сейчас в теме
(75) я говорю про пользователя (пользователей ) для авторизации на 1cном hhtp

вот это
    'url': 'http://192.168.1.112/unf_12/hs/alg/assignments',
    'auth': ('usrweb', 'pass')

(выдернул из предыдущего комментария)
80. comol 5107 29.05.20 22:44 Сейчас в теме
(79) ну в наших кейсах это два набора пользователей. в 1С создаётся единый.
81. pm74 203 29.05.20 22:52 Сейчас в теме
(80) нет проблем с зависанием соединения у пользователей ?
82. comol 5107 29.05.20 22:53 Сейчас в теме
83. pm74 203 29.05.20 22:55 Сейчас в теме
71. vvv123f 22.05.20 17:34 Сейчас в теме
Отдельный объект метаданных Вебсайт с подразделами типа стили CSS - это хорошо!
72. SizovE 269 25.05.20 09:45 Сейчас в теме
Для своих целей мы решили задачку личного кабинета на связке React+1С c авторизацией VK, FB, Google, Mail, ....
Если интересно, обращайтесь, подсистема получилась универсальная, веб приложение тоже, можем решать любые задачки.
76. comol 5107 29.05.20 21:08 Сейчас в теме
(72) Оу, так у нас велосипед получается? А в вашей системе вариант с MPA проедусмотрен? Чтобы обойтись без фронтендеров. А ссылку на github?
Модуль авторизации может pullrequest-ом?
84. SizovE 269 30.05.20 11:11 Сейчас в теме
Какой велосипед? ) Разве такое есть готовое решение?
Конечно, именно MPA и реализован, но можно и SPA сделать.
Вы и так обходитесь без фронтедеров, т.к. делаете все настройки или программируете только на 1С.
Я не очень понял вопрос про модуль авторизации pullrequest-ом, что имеется в виду?
87. van_za 269 29.05.21 09:33 Сейчас в теме
Мне больше нравится идея SPA

Сейчас такая тенденция... что почти все программисты знают js

Это нормально если ты java developer уметь верстать и знать какой ни будь angular
и в той же java тоже можно генерировать html и отдавать... но так как бы никто уже почти не делает...
даже собственную технологию jsp похерили... и это считает Legacy

Я лично очень таплю за react, во первых он простой...во вторых большинство сайтов гигантов сейчас на нем...
yandex, сбер и т.д., что то мне подсказывает что это не сложнее чем ваять какой то самобытный конструктор...
наоборот там достаточно устоявшийся архитектурный стиль и проект на reacte проще понимать.. и много готовых решений и ответов...и если что то то с вами будет весь Stack Overflow
Прикрепленные файлы:
88. user1069316 26.02.24 17:30 Сейчас в теме
Добрый вечер. А проект до сей поры рабочий или как? С ГитХаба грузит, конечно, но как все вот это вот в конфигурацию загрузить? Хоты бы - "на посмотреть".
Оставьте свое сообщение