|   |   | 
| 
 | Как "правильно" в управляемом приложении искать объекты? | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Прочитал всю инфу, было полезно, спасибо большое     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |