|
Как "правильно" в управляемом приложении искать объекты? | ☑ | ||
---|---|---|---|---|
0
Guerro
16.12.21
✎
19:47
|
После обычных форм переходим на управляемые и возник вопрос как все таки не кастыльно искать объекты в справочнике или документах, как получать константы или перечисления. у нас более 80% это код на клиенте(вывод табличного документа, предупреждения, получение объектов и т.п.), мне обязательно каждый раз теперь писать отдельный код на сервер, чтобы получить например констатну или я не на правильном пути?
В данный момент написал на экспорт функцию в общем модуле и через нее получаю объекты, но реквизиты недоступны, снова прыгать на сервер и выходить на клиент? Это нормальная практика или я придераюсь? |
|||
1
Asmody
16.12.21
✎
19:58
|
(0) ты не на правильном пути.
Меняй мышление: на клиенте только визуализация и интерактив. Всё остальное - на сервере |
|||
2
Guerro
16.12.21
✎
20:02
|
(1) Короче сделал все запросы и вычисления на сервере и вернул от нее структуру или т.п.?
|
|||
3
Guerro
16.12.21
✎
20:03
|
(1) Не плохой тон писать куча функций на одно действие?
|
|||
4
LevelUP
16.12.21
✎
20:11
|
Раньше тоже удивлялся подобному УФ: Присвоение &НаКлиенте вида Объект.ххх=объект.ууу.zzz
Потом втянулся. У меня выходит так, что примерно 90% кода и самое вкусное на сервере. Копание в типовых способствует пониманию концепции. |
|||
5
Guerro
16.12.21
✎
20:15
|
(4) я писал и на других языках и у меня общая какая-то концепция в голове, а вот в типовые захожу, там они как будто-то сами кашу варят, особенно с соединениями с внешними сервисами
|
|||
6
Guerro
16.12.21
✎
20:16
|
(4) или типовые считаются гарантом?
|
|||
7
Йохохо
16.12.21
✎
20:18
|
(0) перепутали клиент-сервер с ОФ/УФ
|
|||
8
Asmody
16.12.21
✎
20:52
|
(3) Не может быть одного действия одновременно на клиенте и на сервере.
|
|||
9
Asmody
16.12.21
✎
20:52
|
(5) меняй свои концепции
|
|||
10
mikecool
16.12.21
✎
22:32
|
(1) не совсем ,часть вычислений можно на клиенте оставить
|
|||
11
Hans
16.12.21
✎
22:51
|
(0) Обращение через точку Контрагент.ИНН уже не приветствуется на управляемых формах. Все что нужно надо получать сразу, одним запросом. Реквизиты ссылки можно получать ОБщегоНазначения.ЗначениеРеквизитаОбъекта(контрагент, "ИНН") аналогичные функции для множества реквизитов.
|
|||
12
ildary
17.12.21
✎
03:25
|
(10) только надо проверять - не упадёт ли быстродействие, если действие выполняется на клиенте.
|
|||
13
Мультук
гуру
17.12.21
✎
07:15
|
(0)
Нужно переформатировать мозг. Несколько раз. Из чтения типовых рекомендую БП 3.0 или Розницу 2.x Они не идеальны, но код много лучше/проще чем в УТ/ЕРП/ЗУП Стиль акына: процедура в 1000 строк в который намешаны данные, вопросы к пользователю, получение и обработка данных тут (а на самом деле и раньше) уже не работают. P.S. >> Не плохой тон писать куча функций на одно действие? Оно конечно прикольно видеть процедуру "ПередЗаписью" в документе на 5000 строк, ибо программистам было лень выделять свой код проверок в отдельные функции Но сопровождать такой код -- просто боль. |
|||
14
Ryzeman
17.12.21
✎
08:56
|
(2) В общих чертах - да. В идеале ты все интерактивные действия выполняешь на клиенте, не интерактивные действия выполняешь на сервере, а длительные - в фоне.
Если на клиенте в местах нужны какие-то свойства объектов, ничего особо криминального нет в том, что бы их получать, если это какие то единичные случае (не тяжелые запросы в циклах), но тут по максимуму следует использовать вызовы без контекста, особенно в случае тяжёлых форм. Через точку обращаться не принято, да и на клиенте у тебя не получится - на клиенте у ссылок нет свойств объектов. |
|||
15
Dmitrii
гуру
17.12.21
✎
09:27
|
(0) >> обязательно каждый раз теперь писать отдельный код на сервер.
На ОФ это за тебя делала платформа - бегала каждый раз на сервер для получения данных. В концепции жесткого разделения клиента и сервера подобные вопросы отданы на откуп разработчику (тебе). Поэтому при переходе с ОФ на УФ тупое переписывание кода "в лоб" в большинстве случаев приведёт к "куча функций на одно действие". Придётся включить голову для того, чтобы минимизировать количество таких вызовов и функций, а потом ещё и миниизировать объём запрашиваемых данных. Получать только то, что действительно нужно, разобраться с контекстными и внеконтекстными вызовами, чтобы не гонять каждый раз контекст формы с клиента на сервер и обратно и т.д. Например, если тебе на форме нужны три реквизита Контрагента, то лучше получить их сразу в виде структуры за один раз через вызов без контекста, чем по мере выполнения кода три раза бегать на сервер за каждым реквизитом. В БСП, например, для этого есть отдельные функции в модуле ОбщегоНазначения - ЗначениеРеквизитаОбъекта и ЗначенияРеквизитовОбъекта. Это самый простой пример. На практике всё зависит от конкретной механики работы твоей формы. Присоединюсь к (13) - посмотри типовые конфигурации типа БП 3.0. И много где не лишним будет пересмотреть работу самих форм, а не пытаться перерисовать их с ОФ "как есть". |
|||
16
mikecool
17.12.21
✎
09:34
|
(12) чаще быстродействие падает из-за лишних прыжков с клиента на сервер
а если вычисления тяжелые, то может и лучше их на клиенте выполнять, чтобы остальные могли продолжать комфортно работать? |
|||
17
MyNick
17.12.21
✎
09:34
|
(0) Для начала нужно принять то, что это кажущееся усложнение, на самом деле является значительным упрощением в разработке и поддержке.
|
|||
18
MyNick
17.12.21
✎
09:36
|
Еще бы они модули формы более явно разделили на МодульФормыКлиент и МодульФормыСервер, вообще бы мякотка была.
|
|||
19
Hans
17.12.21
✎
09:42
|
(17) Ну т.е все эти немодальные вызовы с обраобтками оповещения это на самом деле упрощение?
|
|||
20
Мультук
гуру
17.12.21
✎
09:49
|
(19)
Нет, это уши Javascript (имхо) На эту тему есть видео на ютубе с разбором (типа хотели как лучше, но время поджимало, поэтому сделали "как всегда") |
|||
21
Dmitrii
гуру
17.12.21
✎
09:52
|
(19) Хотели, чтобы всё это счастье работало в вебклиенте и браузерах? - Получите, распишитесь.
|
|||
22
ДенисЧ
17.12.21
✎
09:54
|
(19) Тебе сделали асинхи, чтобы не пользоваться оповещениями
|
|||
23
PLUT
17.12.21
✎
09:55
|
(19) один раз понять и простить
НачатьПомещениеФайла(<ОписаниеОповещенияОЗавершении>, <Адрес>, <ПомещаемыйФайл>, <Интерактивно>, <УникальныйИдентификаторФормы>, <ОписаниеОповещенияПередНачаломПомещенияФайла>) Доступен, начиная с версии 8.3.13. Не рекомендуется использовать, начиная с версии 8.3.15. чойта? а что рекомендуется? |
|||
24
PLUT
17.12.21
✎
09:59
|
(23) мля, я отстал от жЫзни. остановите землю, я сойду
Для того чтобы поместить во временное хранилище один файл, следует использовать метод ПоместитьФайлНаСерверАсинх(). После завершения работы метода, файл из локальной файловой системы будет помещен во временное хранилище |
|||
25
Dmitrii
гуру
17.12.21
✎
10:09
|
(18) >> Еще бы они модули формы более явно разделили на МодульФормыКлиент и МодульФормыСервер.
Спорно. Имхо, это усложнило бы работу с кодом. Лишняя беготня по модулям. И так многие процедуры и функции пишутся парно - НаКлиенте - НаСервере/НаСрвереБезКонтекста. Да ещё придётся реализовывать в редакторе кода видимость процедур и функций между модулями. |
|||
26
PLUT
17.12.21
✎
10:10
|
Оператор Ждать
Синтаксис: Ждать <Выражение>; Описание: Условно-ключевое слово. Является ключевым только в процедурах и функциях, отмеченных как Асинх. Оператор Ждать используется для ожидания окончания Обещания. Возвращает полученное из Ожидания значение. Если применить этот оператор к значению, которое не является Обещанием, то оно будет неявно преобразовано в Обещание, наполненное этим значением. Ждать останавливает исполнение кода процедуры или функции, частью тела которой он является, до момента, когда Обещание будет наполнено значением. Оператор Ждать можно использовать только в процедурах и функциях, отмеченных как Асинх. а есть те, кто не долждался? |
|||
27
Hans
17.12.21
✎
10:11
|
Сейчас непонятно где что использвать, где ЖДАТЬ, а где старые обработки оповещения. Переходный период.
|
|||
28
Ryzeman
17.12.21
✎
10:12
|
(26) Обещать = Не Значит(Жениться)
|
|||
29
ДенисЧ
17.12.21
✎
10:15
|
(27) В смысле непонятно? Я во всех новых обработках для БП и ЕРП использую асинхи, когда платформа позволяет и методы есть...
|
|||
30
PLUT
17.12.21
✎
10:19
|
магия 1С
В механизме работы с временным хранилищем есть возможность передать данные из фонового задания в сеанс, инициировавший фоновое задание. Для такой передачи следует в родительском сеансе поместить во временное хранилище пустое значение (с помощью метода ПоместитьВоВременноеХранилище()), указав какой-либо идентификатор создаваемого временного хранилища (параметр Адрес). Затем полученный адрес передать в фоновое задание через параметры фонового задания. Далее, если в фоновом задании этот адрес использовать в качестве значения параметра Адрес метода ПоместитьВоВременноеХранилище(), то результат будет скопирован в сеанс, из которого было запущено фоновое задание. Данные, помещенные во временное хранилище в фоновом задании, не будут доступны из родительского сеанса до момента завершения фонового задания. сол/фасол пишется с мягким знаком, а вилька/тарелька - без мягкого знака. запомните это, т.к. понять это невозможно :) |
|||
31
Hans
17.12.21
✎
10:20
|
(29) Где то платформа не та. Где то могут туда сюда катать платформы. То что сделал на 18 платформе, не будет работать на 17 и т.д.
|
|||
32
ДенисЧ
17.12.21
✎
10:21
|
(31) Используй те платформы. Зачем использовать не те?
|
|||
33
Hans
17.12.21
✎
10:53
|
(32) яж не фигси. Какую дали заказчеги, с тем и работаем.
|
|||
34
acht
17.12.21
✎
10:57
|
(28) Ждать Обещанное(86400 * 365 * 3);
|
|||
35
PLUT
17.12.21
✎
11:07
|
(34) три невисокосных года
еще не всё потеряно! - слоган Почты России |
|||
36
Guerro
17.12.21
✎
19:55
|
Прочитал всю инфу, было полезно, спасибо большое
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |