0. comol 4328 18.05.20 09:30 Сейчас в теме

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

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

Перейти к публикации

Лучшие комментарии
12. comol 4328 18.05.20 19:18 Сейчас в теме
Ну и да, пока это тут - думаю уместно будет выложить ссылку на github для развития этого framework-а
https://github.com/1cwa/OneCWebFramework
JohnConnor; grfsd; dabu-dabu; DrAku1a; Snitkovski; Vladimir_Konyrev; maXon777; o.nikolaev; JohnyDeath; dock; Il; vikad; +12 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
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
pvlunegov; maXon777; Alias; +3 Ответить
4. comol 4328 18.05.20 14:30 Сейчас в теме
(1) "с которых одновременно осуществляется доступ". Всё там норм и 1С об этом объявляли.
86. Cyberhawk 118 26.06.20 16:20 Сейчас в теме
(4) Я бы выделил другой фрагмент - "с которых", ибо в этом комментарии от 1С не сказано, что лицензией клиент должен быть обеспечен только на время осуществления доступа к данным инфобазы
2. hamsar 9 18.05.20 11:49 Сейчас в теме
Vue – маленькая поделка; - нуну
Angular – большая сложная система, реализующая концепцию MVC, полноценный фреймворк от Google; - нуну
И React – что-то среднее, в современном мире достаточно популярное. - адекватно
portwein; nbeliaev; +2 Ответить
5. comol 4328 18.05.20 14:32 Сейчас в теме
(2) а что по вашему "нуну" про Vue и Angular? В Angular нет MVC? Или Vue крупнее Angular и Ract? Или что?
7. hamsar 9 18.05.20 15:35 Сейчас в теме
(5) vue не поделка
Ангулар = не полноценный, а перенасыщенный, фраза полноценный относящаяся к одному, одновременно убирает знак полноценный у других
8. comol 4328 18.05.20 15:44 Сейчас в теме
(7) Vue - библиотека, Angular - фреймворк. Почитайте официальные описания, это не камень в полюбившийся 1С-никам vue, а просто констатация факта.
pvlunegov; +1 Ответить
17. hamsar 9 19.05.20 09:08 Сейчас в теме
(8) и? Это не опровергает ничего из мною сказанного
21. comol 4328 19.05.20 13:10 Сейчас в теме
(17) эээ
1) Библиотека не фреймворк, по крайней мере не полноценный фреймворк.
2) Фреймворк больше библиотеки (как правило).
т.е.:
Vue - не полноценный фреймворк
Angular больше чем Vue...

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

Этот контент вы отдает наружу. Это же не статика, как я понимаю. А Pug, который вы упомянули, он здесь где? Для него же Webpack нужен как минимум.
11. comol 4328 18.05.20 17:57 Сейчас в теме
(10) Сборщик ни для чего не нужен, 1С отдаёт json-ы, pug собирает страницы... Не нужно там ни gulp-ов ни webpack-ов
15. nbeliaev 19.05.20 05:27 Сейчас в теме
(11) А для чего тогда вам в макетах html? Про json в публикации информации не было информациии...
23. pvlunegov 157 19.05.20 13:49 Сейчас в теме
(11) я так понимаю что упомянутый plug (или pug?) это некий сервер или скрипт, который принимает json и по заранее введенным шаблонам формирует html?
Где почитать про это?
31. comol 4328 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 157 19.05.20 13:48 Сейчас в теме
(6) Есть ли краткое описание этого?
Очень интересуюсь темой, в прошлом много работал в этом направлении (http сервисы в 1с + сторонние девайсы + отчеты на HTML).
Если уже есть адекватный шаблонизатор, то такое чудо надо представить народу.
30. comol 4328 19.05.20 18:40 Сейчас в теме
9. user778014 7 18.05.20 15:46 Сейчас в теме
Статья навеяла много мыслей. Итог для себя сделал такой что основные проблемы 1с не в технологиях а в мыслях которые в голове у разработчиков.

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

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


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


ОСН нет, совмещенных режимов нет - вся красота веб-технологий не компенсирует отсутствие недостающего учета...Про МойСклад спрашивал у бывалых пользователей - сказали, что взаиморасчеты с покупателями/поставщиками ведутся в разрезе только одного платежа (один счет - одна оплата), и как только у вас по счету несколько оплат, то система перестает работать.
19. comol 4328 19.05.20 11:55 Сейчас в теме
(14) и очень хорошо что ПОКА нет. Ну туда сейчас вбухивается не хилое такое количество денег. А если появится и будет удобнее чем Бухгалтерия? :(
18. Evil Beaver 6755 19.05.20 09:11 Сейчас в теме
(9) почему-то пытаются сравнить веб-клиент 1С и веб-приложение общего назначения. Это неверно. Веб-коиент 1С это в первую очередь "клиент 1С", и только потом- "веб". Т.е. это доступ в ваше корпоративное приложение на 1С. Но цели такой, чтобы был вообще любой интерфейс - ее нет, ни в веб, ни в тонком клиенте. Бизнес-смысл приложения на первом месте. Загляните в веб интерфейсы oracle, sap. Там 2002 год еле-еле наступил. А стОит как ракета на марс. Потому что кому-то шашечки, а кому-то ехать.
JohnyDeath; Rustig; +2 Ответить
20. comol 4328 19.05.20 11:57 Сейчас в теме
(18) Конечно ты прав... но вот я посмотрел на SalesForce и QuickBooks - вроде тоже корпоративное приложение, но выглядит няшно...
58. gendal 3 20.05.20 21:53 Сейчас в теме
(18) Так веб-клиент 1С это SPA или MPA? И как работает с сервером, отдал данные и разорвал соединение или постоянно висит? Только в 1С знают...
24. pvlunegov 157 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с.
Gureev; semagin@gmail.com; Korolev; +3 Ответить
28. van_za 88 19.05.20 15:05 Сейчас в теме
32. comol 4328 19.05.20 18:48 Сейчас в теме
(9)
Для веб индустрии 1с слишком дорога и не серьезна. Потому что в отличии от дорогих Angular, React, Vue сколько денег не потрать на 1с написать на ней приемлемое решение невозможно.

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

изучение php,

Изучайте php конечно, людям надо на что то выкидывать время :)))
12. comol 4328 18.05.20 19:18 Сейчас в теме
Ну и да, пока это тут - думаю уместно будет выложить ссылку на github для развития этого framework-а
https://github.com/1cwa/OneCWebFramework
JohnConnor; grfsd; dabu-dabu; DrAku1a; Snitkovski; Vladimir_Konyrev; maXon777; o.nikolaev; JohnyDeath; dock; Il; vikad; +12 Ответить
73. Diversus 2074 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 4328 29.05.20 21:04 Сейчас в теме
(73) 1 время жизни сеанса 3600 секунд и его переиспользование конечно - прекрасно работает
2 да это беда - код не идеален и надо бы поправить... но существенно он на производительность после первого вызова не влияет по сути. вся структура в КЭШ-е, основные расходы не на это.
Может pull request оформишь? :)
Diversus; +1 Ответить
77. Diversus 2074 29.05.20 21:12 Сейчас в теме
(74) Ок, спасибо, но нет. Я еще ковыряние твоей подсистемы не закончил :)
Еще как вариант сокращения запросов к веб-серверу, можно попробовать не только картинки кэшировать, как ты делаешь по умолчанию, но и дополнительные файлы, которые точно не будут изменяться. Например какой-нибудь jQuery, Bootstrap и т.д. Поменяться может, но маловероятно. Если поставить безопасное время кэширования скажем день/два/неделя, то в принципе будет отлично работать и серьезно сократит среднее время загрузки.
Основная причина почему HTTP-сервисы медленно работают - это множество мелких запросов, если их минимизировать, то скорость значительно возрастет.
78. comol 4328 29.05.20 21:17 Сейчас в теме
(77) Ну у меня вся статика апачем кэшируется... а остальные 1 json на страницу...
13. gendal 3 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 6755 19.05.20 09:05 Сейчас в теме
Ну неееет, хочу полноценную разработку сервисов с веб-мордами, без 1С в бэкенде!!! Но чтоб дешево, как на 1С
Zeskord; comol; +2 Ответить
47. user778014 7 20.05.20 13:18 Сейчас в теме
(16) посчитайте стоимость лицензий необходимых для сайта с 1с на 1000 пользователей, сравните со стоимостью сайта с Php в качестве бэкенда и вы поймаете что 1с это не дёшево
26. pvlunegov 157 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 4328 19.05.20 18:49 Сейчас в теме
(26)
В 1с настраиваем интеграцию с MySQL прямыми запросами.

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

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

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

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

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

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

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


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

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

С этими конечно не сравнить, но если использовать повторное использование сеансов, сотни RPS на 4-х ядерном компе выдает (точные цифры не помню, а искать лень)
Cyberhawk; +1 Ответить
63. officeRebot 11 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 4328 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 4328 20.05.20 15:35 Сейчас в теме
(56) Ну в статье я показал по-моему что не Unreal, возможно всё и даже беспроблемно, просто не нужно :).
Если в сервисе нет учетных задач, и он никаких 1С--ных интеграций не имеет то не надо конечно его делать на 1С.
В современном мире у вас там 90% работы будет на фронте - у дизайнеров UI/UX, продактов... 1С притягивать во имя оптимизации 5% трудозатрат на бэк просто незачем, тут вы правы.
39. pm74 169 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 157 20.05.20 10:43 Сейчас в теме
(39) окей, вы отдаете данные из 1с через json на страницу сайта.
Можно даже обойтись без back-end сайта, все данные располагать на веб-странице через javascript.
А как вы будете получать данные в 1с от сайта?
то-же прямо со страницы, формируя json через javascript?
Тогда это будет сайт без back-end.
Вся логика работы его будет на front-end.
И вам нужен будет толковый программер javascript чтобы реализовать front-end.
41. pm74 169 20.05.20 10:50 Сейчас в теме
(40)
Можно даже обойтись без back-end сайта

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

да

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Вакансии

Программист 1С
Екатеринбург
зарплата от 80 000 руб. до 130 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Разработчик 1С
Санкт-Петербург
зарплата от 140 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
зарплата от 90 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день