Имя: Пароль:
1C
1С v8
Логика клиент-сервер. В чём прикол?
0 jsmith
 
06.04.12
11:27
1. Баттхёрт 0% (0)
2. Клиент-сервер это тонкий компромисс 0% (0)
3. Матан наше всё 0% (0)
Всего мнений: 0

Программирую управляемую форму. Пишу в стиле клиент-сервер. Задался вопросом. Надо ли?
Основное отличие клиента от сервера, как водится, в используемых классах и их возможностях. Классы клиента предназначены для визуализации данных на мониторе. Классы сервера предназначены для вычислений и манипулирования данными. Оговорюсь, что &НаКлиентеНаСервереБезКонтекста я считаю всё-таки &НаСервере (так методологически верней).
Клиент выступает визуальным отображением серверного класса (или просто общего класса, понятия) и использует сервер для 1. чтения данных, 2. вычислений.
Предположим, я произвожу в клиенте какие-то манипуляции с экземпляром серверного класса или тупо каким-то общим объектом.
111. Имею ли я право производить вычисления на клиенте?
Согласно логике - нет. Я должен передать данные клиента на сервер и получить их обратно в готовом виде.
Я имею в виду, что я вообще не имею права использовать директивы типа &НаКлиенте или &НаКлиентеНаСервереБезКонтекста для вычислений. Даже для простых арифметических операций. Это рушит логику взаимодействия клиента и сервера (клиент не должен брать на себя функций сервера).
С другой стороны, это может привести к настолько частым обращениям на севрвер, что программа будет жестоко тормозить.
Хорошо, решаем так. Клиент может делать вычисления. Тогда почему мы так его дискредитируем в использовании серверных классов (таблицы значений, например). Мы говорим вычисляй! Но серверные классы не трожь!
В итоге взаимодействие между клиентом и сервером сводится к следующему
Клиент визуализирует, сервер читает и вычисляет.
Клиент передаёт данные в виде посреднического класса, который одинаково ведёт себя и на клиенте и на сервере. Сервер мутузит эти данные, передаёт обратно. Клиент хавает и показывает их у себя на экране.
Тогда зачем нужна копия формы на сервере??? Ладно, данныеформыколлекция на сервере это не то, что данныеформыколлекция на клиенте. Но всё равно, это понятие клиента, а не сервера..
Короче, баттхёрт
1 Maxus43
 
06.04.12
11:31
убирай уже слово "баттхёрт" из лексикона. в каждой ветке не по разу)
2 Mort
 
06.04.12
11:32
4. Кг/Ам
Тонкий клиент не означает, что он и пёрнуть без сервера не может.
3 Mort
 
06.04.12
11:35
А ноги ограничения на использование ТаблицЗначений и Соответствий имхо растут из ограниченных возможностей WEB клиента.
4 jsmith
 
06.04.12
11:38
баттхёрт вообще возник от того, что невозможен обмен экземпляром типа данныеформыэлементколлекции между клиентом и сервером
в принципе давно уже знаю это, но вырабатывая свой стайл программирования, наткнулся вот на этот двойной стандарт
ДФК можно, а ДФЭК нельзя
5 Mort
 
06.04.12
11:39
А вопрос "зачем экземпляр формы на сервере" - достаточно сделать небольшое (хотя кому как) усилие и подумать, откуда форма начинает жизнь.
6 SUA
 
06.04.12
11:39
4. Кг/Ам, присоединяюсь
сервер нужен в первую очередь для работы с БД, а не для мелких вычислений.
7 jsmith
 
06.04.12
11:39
(5) ну дк понятно, но ДФЭК зачем обидели
8 SUA
 
06.04.12
11:40
(4) а зачем?
9 SUA
 
06.04.12
11:40
добавлять элементы на форму все равно нельзя, а к элементу обратиться и так можно
10 Mort
 
06.04.12
11:40
(7) Элемент коллекции это просто итератор, указатель. Без коллекции считай это тупо аналог "DeadBeaf".
11 Mort
 
06.04.12
11:41
(9) Кто сказал что нельзя?
12 jsmith
 
06.04.12
11:41
(8) затем, что обмен между клиентом и сервером построен на кроссплатформенных классах типа той же структуры
и я не могу понять, для изменения реквизитов объекта мне надо
1. обращаться к серверу на каждом шагу где нужно чтение данных
2. передавать сразу ДФК
3. передавать структуру
13 SUA
 
06.04.12
11:42
(11)*на клиенте
14 jsmith
 
06.04.12
11:42
если я передаю ДФК, то я хочу передавать и ДФЭК
иначе получается двойной стандарт
хочешь изменить ДФЭК, передавай структуру
хочешь изменить ДФК, используй переменную клиента сервера
15 jsmith
 
06.04.12
11:43
если в натуре копия формы на сервере висит, почему бы мне не использовать ДФЭК без этих муторных процедур загрузки выгрузки
16 jsmith
 
06.04.12
11:44
примечательно, что я могу изменять ДФЭК на сервере, но обмена нету
17 Ненавижу 1С
 
гуру
06.04.12
11:49
клиент реагирует на событие юзвера (нажатие кнопки, например) - посылает запрос серверу, получает ответ, обновляет данные
18 H A D G E H O G s
 
06.04.12
11:50
Автор дятел какой-то.
Пиши лучше про любовь.
19 Ненавижу 1С
 
гуру
06.04.12
11:50
(18) да куда уже лучше то? смотри тут какая любовь!
20 jsmith
 
06.04.12
11:51
короче, решил не париться, обращаться к ДФЭК через ДФК используя индекс
21 H A D G E H O G s
 
06.04.12
11:51
(19) Причина моего негодования не в том, что я вчитал/вкурил партянку в (0), а вот:
http://s.lurkmore.to/images/5/53/11318-131945-5c812c9bc8c08b83a416dccd875eac53.jpg
22 Ненавижу 1С
 
гуру
06.04.12
11:53
(21) ааа... ну ничего, я тоже, вот что понял, написал в (17)