|   |   | 
| 
 | с клиента на сервер | ☑ | ||
|---|---|---|---|---|
| 0
    
        FFrr1C 16.11.23✎ 14:04 | 
        Есть повсеместно использующаяся клиентская процедура с диалогами, задумал вынести её в общий модуль(клиент), но проблема в том, что в этой процедуре идёт обращение к реквизитам ссылки (серверу) а серверные функции этот модуль не видит, подскажите как разрулить?     | |||
| 1
    
        AlexeyKh 16.11.23✎ 14:07 | 
        поставьте у него галку: Вызов сервера     | |||
| 2
    
        asady 16.11.23✎ 14:07 | 
        (0) создай в своем общем модуле с галкой вызов сервера функцию которая разом соберет тебе все реквизиты без повторных обращений к серверу и передаст в виде структуры на клиента     | |||
| 3
    
        unenu 16.11.23✎ 14:09 | 
        ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Код");     | |||
| 4
    
        unenu 16.11.23✎ 14:10 | 
        (2) ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Код,Наименование");
 зачем велосипедить? | |||
| 5
    
        FFrr1C 16.11.23✎ 14:11 | 
        AlexeyKh, "Вызов сервера" в модуле только "Клиент" - не активно,
 asady - нужно как то вызвать эту функцию серверную, но на модуле клиента (где все диалоги общие) эту функцию не видно.. | |||
| 6
    
        asady 16.11.23✎ 14:12 | 
        (4) если нужно собрать несколько таких наборов реквизитов - то придется делать несколько серверных вызовов - я же предложил сделать это с одним серверным вызовом     | |||
| 7
    
        asady 16.11.23✎ 14:14 | 
        (5) для чего тогда этот флаг сделали по-твоему.
 пробуй. | |||
| 8
    
        timurhv 16.11.23✎ 14:15 | 
        (5) У вас должно быть два модуля
 "ВашМодульКлиент" Из него получаете данные из модуля ниже "ВашМодульВызовСервера" | |||
| 9
    
        FFrr1C 16.11.23✎ 14:16 | 
        Упрощу немного,
 в каждой форме диалог ПоказатьЗначение(,Знач), где Знач = Функция ? (Не ЗначениеЗаполнено(Ссылка.Владелец),Ссылка, Ссылка.Владелец) как разрулить общим модулем | |||
| 10
    
        unenu 16.11.23✎ 14:16 | 
        (6) велик с моторчиком? без проблем)
 мСсылки = Новый Массив; ... ОбщегоНазначения.ЗначенияРеквизитовОбъектов(мСсылки, "Код,Наименование"); | |||
| 11
    
        FFrr1C 16.11.23✎ 14:17 | 
        в каждой форме диалог 
 Если КодВозвратаДиалога.Да тогда ПоказатьЗначение(,Знач) конецесли, где Знач = Функция ? (Не ЗначениеЗаполнено(Ссылка.Владелец),Ссылка, Ссылка.Владелец) | |||
| 12
    
        FFrr1C 16.11.23✎ 14:21 | 
        Функция НаКаждайФорме()
 Если КодВозвратаДиалога.Да тогда ПоказатьЗначение(,Знач) конецесли конецфункции это клиентская функция которую нужно вынести в общий модуль, но там Знач = Функция ? (Не ЗначениеЗаполнено(Ссылка.Владелец),Ссылка, Ссылка.Владелец) соответсвенно серверная, и клиентский модуль не видит серверную функцию | |||
| 13
    
        asady 16.11.23✎ 14:23 | 
        (12) настоящий одноэснег!!!
 оставайся таким. | |||
| 14
    
        FFrr1C 16.11.23✎ 14:28 | 
        (8) В ТОЧКУ!
 Спасибо! | |||
| 15
    
        FFrr1C 16.11.23✎ 14:30 | 
        (8) Клиентская общая процедура видит Серверные процедуры но только из модуля с флагом (Вызов сервера)     | |||
| 16
    
        Donkey_hot 16.11.23✎ 14:36 | 
        (15) Практика - лучший учитель.
 ?(Не ЗначениеЗаполнено(Ссылка.Владелец),Ссылка, Ссылка.Владелец) - Сколько запросов к базе данных делает такой код, как думаете? И можно ли уменьшить? | |||
| 17
    
        FFrr1C 16.11.23✎ 14:40 | 
        Пер = Ссылка.Владелец;
 ?(Не ЗначениеЗаполнено(пер),Ссылка, пер) писал от балды для примера, а то народ понесло не туда.. | |||
| 18
    
        FFrr1C 16.11.23✎ 14:41 | 
        Хреново тут рейтингов помогателей нет     | |||
| 19
    
        Garykom гуру 16.11.23✎ 18:07 | 
        Кстати название галки "Вызов сервера" путаное
 Правильней ее обозвать "Разрешен вызов сервера" и привязать к галочке "Клиент" справа | |||
| 20
    
        lodger 16.11.23✎ 18:14 | 
        (19) ты сейчас тоже путаницы навел. не? причем тут флажок Клиент, если вся песня про Сервер?
 2.2. Серверные общие модули для вызова с клиента содержат серверные процедуры и функции, доступные для использования из клиентского кода. Они составляют клиентский программный интерфейс сервера приложения. Такие процедуры и функции размещаются в общих модулях с признаком: Сервер (флажок Вызов сервера установлен) Серверные общие модули для вызова с клиента называются по общим правилам именования объектов метаданных и должны именоваться с постфиксом "ВызовСервера" (англ. "ServerCall"). Например: РаботаСФайламиСлужебныйВызовСервера, FilesOperationsInternalServerCall. Следует иметь в виду, что экспортные процедуры и функции в таких общих модулях не должны содержать параметров мутабельных типов (СправочникОбъект, ДокументОбъект и т.п.), так как их передача из (или в) клиентского кода невозможна. | |||
| 21
    
        Garykom гуру 16.11.23✎ 18:32 | 
        (20) ну "Разрешен вызов с клиента" и привязать к галке "Сервер" справа     | |||
| 22
    
        Garykom гуру 16.11.23✎ 18:33 | 
        Чисто технически это две разные галочки
 Сначала проверка на клиенте, разрешено ли ему сервер вызывать Затем на сервере а разрешено ли принимать вызовы с клиента | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |