Имя: Пароль:
1C
1С v8
Тонкий и толстый клиент при работе с объектами
0 brenli
 
28.06.19
15:04
Добрый день.
В синтаксис помощнике есть раздел доступность в котором идет конкретное разделение клиентов на толстые и тонкие.
Например  СправочникОбъект доступен только в толстом клиенте и на сервере, но я же могу работать с объектом и с тонкого клиента просто вызывав серверный контекст.
Получается что если я буду работать в толстом клиенте мне не нужно будет вызывать серверный контекст  и вообще не нужно будет разделять логику работы  клиент / сервер ?
Или это справедливо только для обычного приложения (не управляемого) и тонким клиентом в обычном приложении не поработать?
1 hhhh
 
28.06.19
15:13
(0) думаю, что это никто никогда не тестировал. Так что если у вас есть неделька другая свободного времени, то вперед на мины. Вас ждет куча удивительных открытий. И нам потом расскажете.
2 ДенисЧ
 
28.06.19
15:17
Тонкий - это только УФ. На ОФ его не запустить. Да и на толстого УФ тоже ограничения есть.
3 Жан Пердежон
 
28.06.19
15:18
>> но я же могу работать с объектом и с тонкого клиента
не можешь
4 brenli
 
28.06.19
15:20
(3) Да ну?  
Вызываю серверную процедуру и работаю. Создаю, удаляю, читаю.
Юзеры все сидят на тонком клиенте и как то создают элементы справочников и документы...  
Как это объяснить??
5 unregistered
 
28.06.19
15:21
(0) >> я же могу работать с объектом и с тонкого клиента просто вызывав серверный контекст.

Что ты понимаешь под этой фразой?
На клиенте работать с объектом ты не можешь никак и ни при каких обстоятельствах.
6 ДенисЧ
 
28.06.19
15:21
(4) Это не в тонком клиенте. А на сервере.
7 unregistered
 
28.06.19
15:22
(4) >> Вызываю серверную процедуру и работаю.

Вызвав серверную процедуру, ты оказываешься на сервере, а не на клиенте.
8 Жан Пердежон
 
28.06.19
15:22
(4)
причем тут юзеры? ты чем читаешь???
СправочникОбъект доступен только в толстом клиенте и на сервере
ты его используешь _НА СЕРВЕРЕ_
9 unregistered
 
28.06.19
15:22
(4) >> Как это объяснить?

Чудо господне.
Ну или магия какая-то.
10 brenli
 
28.06.19
15:22
(6) Ну я же использую тонкий клиент для отображения а дергаю сервер для работы с бд.
11 brenli
 
28.06.19
15:24
(8) Вопрос не в этом....

А в разделении клиентов на толстый и тонкий.
По вашей логике получается что в толстом клиенте мне необязательно вызывать сервер?
12 ДенисЧ
 
28.06.19
15:24
(10) А если я тебе нарисую на доске название банка (например, зелёного) - эта доска автоматом станет банком, и я смогу из-под неё деньги доставать?
13 ДенисЧ
 
28.06.19
15:24
(11) Ну попробуй.
14 palsergeich
 
28.06.19
15:25
(11) В толстыйКлиентОбычноеПриложение да не обязательно.
В УФ - обязательно
15 brenli
 
28.06.19
15:26
(14) Все спасибо. Вы подтвердили мои  предположение.
16 Йохохо
 
28.06.19
15:26
(11) не обязательно _явно_ вызывать сервер
17 Ц_У
 
28.06.19
15:26
18 brenli
 
28.06.19
15:27
(16) По умолчанию будет все на нем )
19 palsergeich
 
28.06.19
15:28
(16) В тольстыйКлиентУправляемоеПриложение - вызывать надо ЯВНО
20 brenli
 
28.06.19
15:30
(17) Спасибо.
21 palsergeich
 
28.06.19
15:30
(18) Нет, весь код формы ОФ выполнятеся на клиенте.
Если нужна иформация с сервера - это будет сделано неявно и Вы на это повлиять не сможете.
И да в профайлере интересная картина при проведении документа.
22 MyNick
 
28.06.19
15:36
(10)
Вообще 1С конечно расслабила всех своими директивами.
Все смешалось в кучу - кони, люди...
Лучше бы они вообще логику разделили по разным модулям/объектам метаданных.

Вон взять какое нить веб приложение. Понимание и ощущение что к чему приходит сразу. Например ПэХэПэ - сервер, ДжаваСкрипт - клиент. С АБСОЛЮТНО РАЗНОЙ логикой. С абсолютно разной архитектурой кода, выполняющего абсолютно разные задачи. А между ними тоненькая ниточка в виде xmlHTTPRequest (пусть даже и обернутого в какой нибудь jQuery) с форматом, который понятен и серверу и клиенту (серверу отдаем уже сериализованное, от клиента тоже получаем сериализованное). И вот у тебя задача - вырыть траншею. Ты на экскаваторе копаешь, на самосвале отвозишь. И четко представляешь что и где.

Тут же блин, мрак. Самосвал, к кузову которого приделан ковш. Единый пульт управления. Какие кнопки предназначаются для самосвала, а какие для ковша - смотри в документации. Нажать можно все, но результат не гарантирован. С ковша в самосвал можно погрузить не всё что умеет ковш (здрасьте ошибка сериализации). НаКлиенте, НаСервере, НаСервереБезКонтекста, НаКлиентеНаСервереБезКонтекста. А-а-а-а-аааа... Форма как бэ существует и на клиенте и на сервере (но разные по сущности, а где то и не совсем). ДанныеФормыКоллекция и "Традиционная"Коллекция (ковш кидает в кузов глину, в самосвале появляется щебень). Ковшом зачерпнули кучу глины, а за нее зацепился бордюр, карусель и еще детская площадка (здрасьте передача контекста). Уууууффффф!!!!
23 palsergeich
 
28.06.19
15:37
(22) Там не такое большое количество комбинаций и правил, что бы это было хоть какой то проблемой.
В том же веб клиентсерверное взаимодействие тоже совсем далеко не тривиально
24 palsergeich
 
28.06.19
15:38
(23) В общем то идея оттуда то и дралась есличто
25 ДенисЧ
 
28.06.19
15:39
(24) Как обычно. Хотели как лучше, а получилось, как всегда
26 palsergeich
 
28.06.19
15:39
(25) Да нормально получилось.
27 palsergeich
 
28.06.19
15:40
И да там тоже есть и контекстные вызовы, кода вся форма идет на сервер так и не.
28 MyNick
 
28.06.19
15:41
(23) я к тому - хочешь понять клиент-серверное взаимодействие 1С, попробуй сначала сделать на веб.
Просто там это разделение прямо железобетонное.
Здесь же грань размывается и нужен опыт, чтобы прочувствовать, что делаешь правильно, а что нет.
29 Ц_У
 
28.06.19
15:42
(28) Чо понимать то, все что с объектами БД - сервер, простые вычисления и интерфейсы - клиент.
30 palsergeich
 
28.06.19
15:42
(28) Везде нужен опыт.
Никаких сложностей у новичков УФ не вызывает совсем.
Больше всех орут 77 и ОФшники
31 MyNick
 
28.06.19
15:46
(29) так то оно так. Только Контекст в сотни КБ - зло. И нифига это уже не тонкий клиент получается.

>Никаких сложностей у новичков УФ не вызывает совсем.
Сложностей "чтобы работало" - нет совсем.
А вот чтобы работало действительно тонко - это другой разговор...
32 palsergeich
 
28.06.19
15:48
(31) Ой да ладно.
Сколько там JS скриптов при открытии страницы скачивается?
Там счет на мегабайты идет.
Аналогично с действительно тонко.
Наформодрочить может и джун, а вот оптимизация в вебе - отдельная веха
33 palsergeich
 
28.06.19
15:52
https://habr.com/ru/company/tinkoff/blog/303580/ Все огчень просто, как 2 пальца обоссать
34 ptiz
 
28.06.19
15:56
(30) Правильно орут, потому что то, что делалось десятью строчками кода, в УФ требует все 50. А результат для бизнеса - один и тот же.
35 palsergeich
 
28.06.19
15:57
(34) А с каких пор ЗП идет за строчки кода?
ЗП идет за результат, скорость итоговая разработки что там, что тут не сильно то и отличается
36 palsergeich
 
28.06.19
15:59
Не спорю, что есть моменты, которые в ОФ приятнее, но в целом различия только в интерфейсных перделках.
Все что касается проводок, хранения данных - однофигственно что ОФ или УФ
37 palsergeich
 
28.06.19
16:00
Да и в общем то прикладная логика тоже не зависима от того УФ это или ОФ
38 Ц_У
 
28.06.19
16:09
Например, нужно передать параметром в процедуру ссылку на элемент справочника (значение реквизита формы)
&НаСервере
Процедура(КонтрагентСсылка) - потянет контекст формы, самый тяжелый вариант

&НаСервереБезКонтекста
Процедура(КонтрагентСсылка) - без данных формы, но инициализацией полей

&НаСервере
Процедура(ЗНАЧ КонтрагентСсылка) - с данными формы, но БЕЗ инициализацией полей

&НаСервереБезКонтекста
Процедура(ЗНАЧ КонтрагентСсылка)  - БЕЗ данных формы, БЕЗ инициализацией полей

Самый "быстрый" способ
39 palsergeich
 
28.06.19
16:10
Всего 4 комбинации и их особенности, сложна
40 palsergeich
 
28.06.19
16:12
Я ХЗ чем Вы там занимаетесь, работа с формами у меня не более 10% от общего времени.
Там вариантов то не так что бы и много, для того что бы путаться и все они 100500 раз обсосаны.
Все остальное чистый серверный код.
41 repin_mike
 
28.06.19
16:52
(22) Красиво написал )
42 Cyberhawk
 
28.06.19
17:00
Да
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс