Имя: Пароль:
1C
1С v8
Архитектура управляемых форм
0 zelenprog
 
25.05.24
11:39
Добрый день!

Прочитал очень хорошую статью про управляемые формы "Под капотом управляемых форм":
https://infostart.ru/1c/articles/198766/

Управляемые формы - это по сути веб-приложение. Верно?

Меня заинтересовал "теоретический" вопрос.
Хочется лучше понять и разобраться с "внутренней" структурой (архитектурой), на основе которой построено это 1С-веб-приложение (управляемая форма).
На какой веб-архитектуре реализована работа управляемых форм?

В статье "Современные архитектуры фронт-энда" есть вот такая картинка:
https://habr.com/ru/articles/500072/

Является ли эта картинка правильной схемой, которая правильно отображает работу управляемой формы?
Если нет, то какая схема будет более правильная?
1 H A D G E H O G s
 
25.05.24
14:54
Теории УФ нет и не будет. И слава 1С за это.
Вон, та вон картинка - это пример предельного маразма мудрецов из башни Слоновой кости. Абсолютно правильная и абсолютно бесполезное.

Поймите - ИТ, как и математика - это не наука, это инструмент и ремесло, оно почти не нуждается в теории. В отличии от физики,которая большую осознанную свою жизнь проводит в теории.
2 Одинист
 
25.05.24
15:37
(1) > В отличии от физики,которая большую осознанную свою жизнь проводит в теории.

Это ты сейчас о людях, которые выдумали темную материю и темную энергию, только потому что реальность в их теорию не укладывается?
3 maxab72
 
25.05.24
17:17
"только потому что реальность в их теорию не укладывается" тем хуже для реальности... теперь физики будут ломать голову, как подогнать реальность под теорию.
Математика - вот пример чистой и незамутненной теории. Всю математику можно вывести из двух вопросов - сколько у меня на руках и ногах пальцев (теория чисел и все с ней связанное)? и сколько бананов составляет кучу (теория множеств, колец и тому подобное)?
5 zelenprog
 
26.05.24
09:41
(1) >> Теории УФ нет и не будет

Не придирайся к словам. Давай назовем это не "теорией".
Интересует "внутренняя" архитектура управляемой формы. В чем ее отличие\сходство от веб-архитектуры?

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

>> Вон, та вон картинка - это пример предельного маразма...
>> ... Абсолютно правильная и абсолютно бесполезное.

Почему картинка - это маразм?
Конструкция, например, ракеты содержит тысячи чертежей. По другому никак. Разве это маразм?
Картинки\схемы\чертежи - это очень эффективный способ передачи информации об "устройстве" чего-либо.
И поэтому такие картинки имеют огромную пользу.
6 Dmitry1c
 
26.05.24
10:03
(1) осуждаю
7 NorthWind
 
26.05.24
11:08
(5) как я вижу, он имеет в виду, что если вы узнаете, что унутре у ней xml, или html, или javascript - вам в разработке это никак не поможет, потому что вас все равно никто не подпустит к этим кишкам. Они закрыты от разработчика. Поэтому нет смысла забивать этим голову, ее с УФ и без этого есть чем позабивать, одного растаскивания по клиент-серверу хватит...
8 youalex
 
26.05.24
11:59
(0) фиддлер вроде ловит данные к/с взаимодействия
9 zelenprog
 
26.05.24
12:11
(7) >> ... если вы узнаете, что унутре у ней xml, или html, или javascript ...

Нет-нет, меня не интересуют очень низкие технические детали реализации.
Меня интересует "внутреннее" разделение УФ на части и связи между ними.

Похоже ли "внутренне" устройство клиентской части УФ на фронт-енд?
Похоже ли "внутренне" устройство серверной части УФ на бэк-енд?
Как фронт-енд УФ взаимодействует с бэк-енд-ом? Интересует схема, а не технические детали.

>> ... нет смысла забивать этим голову, ее с УФ и без этого есть чем позабивать, одного растаскивания по клиент-серверу хватит...

Вот мне кажется, что понимание внутреннего устройства поможет в правильном разделении кода на клиент-сервер.
Это как с автомобилем. Пока вы автомобилем пользуетесь чисто как автолюбитель-шофер, то вы не сможете ничего в нем отремонтировать, даже мелкий ремонт типа предохранитель заменить.
А если вы хотите уметь что-то самостоятельно с автомобилем делать, хотя бы масло поменять, то вы должны разобраться: какое масло, куда и сколько заливать. Это уже более глубокое знание автомобиля. Но не настолько глубокое, чтобы делать серьезный ремонт.
10 maxab72
 
26.05.24
12:24
(9) "Вот мне кажется, что понимание внутреннего устройства поможет в правильном разделении кода на клиент-сервер." Здесь иная логика. Сервер не знает, какого цвета кнопочка на форме. Форма понятия не имеет, об объектах базы данных. Это единственная 100% истина,  и от нее и надо плясать.
11 NorthWind
 
26.05.24
12:37
(9) https://infostart.ru/1c/articles/682305/ - вот довольно неплохая статья, которую вместе с "под капотом управляемых форм" полезно было почитать.
12 zelenprog
 
26.05.24
15:34
(10) >> Сервер не знает, какого цвета кнопочка на форме. Форма понятия не имеет, об объектах базы данных.

Это все понятно. Это базовые принципы разделения кода.
Я хочу узнать чуть подробнее как реализовано это разделение.
13 zelenprog
 
26.05.24
16:22
(11) >> https://infostart.ru/1c/articles/682305/ - вот довольно неплохая статья

Я читал эту статью.
Там описывается клиент-серверное взаимодействие на "высоком уровне".

Кроме этого, меня интересует еще и "внутреннее" устройство управляемой формы, то есть более подробное взаимодействие на более низком уровне.
Например, в этой статье никак не отражен тот факт, что форма присутствует и на стороне клиента и на стороне сервера.
Хотелось бы увидеть описание\схему, которая подробнее раскрывает взаимодействие этих двух "частей" управляемой формы, а также другие подробности.
14 VS-1976
 
26.05.24
17:45
(13) типа сериализации данных между клиентом и сервером ( состояний )?
15 zelenprog
 
27.05.24
08:30
(14) >> типа сериализации данных между клиентом и сервером ( состояний )?

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

Важно понять какие есть составные "компоненты" клиентской части формы, а также составные компоненты серверной части формы. И логика их взаимодействия между собой (то есть порядок взаимодействия этих компонент, а не способ).
16 Asmody
 
27.05.24
11:22
(0) Вот тут кое-что написано https://habr.com/ru/companies/1c/articles/315414/
https://habr.com/ru/companies/1c/articles/778986/

И вообще, про внутреннюю кухню платформы кое-что можно почитать тут https://habr.com/ru/users/PeterG/publications/articles/
17 Asmody
 
27.05.24
11:22
Ещё кое-что одинесовцы рассказывали на своих девконах. Лень искать
18 zelenprog
 
27.05.24
12:16
(16),(17) Спасибо.
Это близко к тому, что я спрашивал. Правда там в общем про всю "архитектуру" платформы.

Попробую поискать, может быть среди статей PeterG есть что-то конкретно об УФ. --- Нет, про УФ нету статей :(
19 Сергиус
 
28.05.24
00:56
(0)Интересно конкретное название компонент и модулей, используемых 1с для построения данного решения? Такое вряд ли можно найти в общем доступе, если  только на уровне слухов и личного опыта) Можно предполагать, что используется некий движок, на основе условной xml-схемы, получаемой на вход, строящий визуальную часть.
20 Ненавижу 1С
 
гуру
28.05.24
07:55
АУФ = Архитектура Управляемых Форм

символично
22 zelenprog
 
28.05.24
12:34
(19)
>> Интересно конкретное название компонент и модулей, используемых 1с для построения данного решения?

Да.
Интересно не только "физические" компоненты и модули, но и их организация в "логические" (то есть архитектурные) блоки.
Как пример. Есть шаблон MVC для разделения данных и представления. А использует ли 1С такой шаблон при реализации управляемых форм? Как в управляемых формах разделяются данные и представление?

>> Такое вряд ли можно найти в общем доступе, если  только на уровне слухов и личного опыта)

Ну я надеялся, что есть какое-то описание.
23 sikuda
 
28.05.24
13:07
(0) >> Управляемые формы - это по сути веб-приложение. Верно?
- Нет. Это вариант декларативных форм работающих в клиенте(Win, Mac, Linux) и в web. Ушли с привязки к Win интерфейсу(обычные формы).

>> На какой веб-архитектуре реализована работа управляемых форм?
- На своей собственной 1С, закрытая реализация (внутри меняется от версии к версии)

Ваша картинка к 1С не имеет отношение.
Жизненный цикл управляемой формы -
https://infostart.ru/1c/articles/849540/
24 zelenprog
 
29.05.24
10:05
(23) >> Это вариант декларативных форм работающих в клиенте(Win, Mac, Linux) и в web.

Есть где-нибудь описание схемы\архитектуры как работают декларативные формы?
В чем отличие приниципов работы декларативных форм от веб-приложений?

>> ...  закрытая реализация ...

Интересно глянуть хоть на какой-нибудь вариант какой-нибудь версии.
25 sikuda
 
29.05.24
10:51
(24) "Есть где-нибудь описание схемы\архитектуры как работают декларативные формы?"
- Идешь на работу в 1С, подписываете соглашение о неразглашении, ныряешь в Легаси-код ;)
(Я в 1С не работал мне болтать можно...)

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

"Интересно глянуть хоть на какой-нибудь вариант какой-нибудь версии."
Статья 272. Неправомерный доступ к компьютерной информации ;)

Если думаешь, что сможешь перехватывать взаимодействие сервера и браузера - могу тебя разочаровать.
26 H A D G E H O G s
 
29.05.24
11:06
(25) не надо разочаровывать, нет никакой технической проблемы посмотреть трафик клиент-сервера, только юридическое.
27 d4rkmesa
 
29.05.24
11:07
(24) >>В чем отличие приниципов работы декларативных форм от веб-приложений?
Достаточно почитать (применительно к 1С): https://its.1c.ru/db/metod8dev/content/3616/hdoc
"Т.к. данные формы доступны и на клиенте и на сервере, то основным хранилищем всех данных выступает сервер, просто потому что взаимодействие клиента и сервера инициируется только с клиента. Это означает, что в момент работы в памяти сервера находятся все данные формы, и доступ к ним осуществляется напрямую. На клиенте же имеется в общем случае частичное представление этих данных, при необходимости подгружаемое с сервера. При дальнейшей работе с формой изменения данных могут передаваться туда и/или обратно для синхронизации состояний клиента и сервера."

УФ, грубо говоря, находится на сервере, в этом ключевое отличие. Это не имеет никакого отношения к популярным MVC/MVP-паттернам (в этом смысле тонкий клиент 1С довольно "тонкий"), скорее всего, концепция УФ разрабатывалась с оглядкой на 3-звенные архитектуры начала 2000-х, все эти сервера приложений от Oracle и пр.. Имхо.
28 Garykom
 
гуру
29.05.24
11:47
(0) Посмотри Vaadin
Фактически это как УФ, только на Java
И все будет понятно с "теорией"
29 Garykom
 
гуру
29.05.24
11:51
(28)+ Vaadin с 2002 года
В 1С тогда еще только ОФ было
30 zelenprog
 
30.05.24
10:14
(27) >> Достаточно почитать (применительно к 1С): https://its.1c.ru/db/metod8dev/content/3616/hdoc

Хорошая статья. Спасибо.
Побольше бы таких статей.

>> УФ, грубо говоря, находится на сервере, в этом ключевое отличие.

Точнее - данные УФ находятся на сервере.
И это действительно отличие от веб-приложений. Так как для веб-приложений считается, что сервер должен быть без состояния, то есть не должен хранить данные.

>> Это не имеет никакого отношения к популярным MVC/MVP-паттернам

А вот с этим не согласен.
Наоборот, из описания в статье как раз прослеживается MVC модель. На сервере хранятся данные ("M" - Model), а на клиенте они только отображаются во View: "... На клиенте же имеется ... частичное представление этих данных".
Разве это не MVC?
31 zelenprog
 
30.05.24
10:47
(28) >> Посмотри Vaadin. Фактически это как УФ, только на Java

Да, похоже.
Нашел в интернете картинку "Архитектура Vaadin".
32 Garykom
 
гуру
30.05.24
11:26
(30)
Разве это не MVC?

УФ это извращенное MVC
Там часть данных могут мигрировать с сервера на клиент (и обратно) через сериализацию
РеквизитФормыВЗначение и ЗначениеВРеквизитФормы
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший