Имя: Пароль:
1C
1С v8
Общие модули - тонкий клиент
,
0 Санта Клаус
 
03.12.17
21:04
Ребята, добрый день! Подскажите: вызываю из общего модуля, у которого стоят Клиент, Сервер и Внешнее соединение, процедуру другого общего модуля, у которого только Сервер - пишет

Переменная не определена (БонусныеБаллыСервер)(Проверка: Тонкий клиент). Примерно понятно почему.Но что делать? Как из общего модуля с галкой Клиент и Сервер обратиться к метаданным (запрос к РН)? Спасибо
1 Lexey_
 
03.12.17
21:06
(0) инструкции препроцессора
2 H A D G E H O G s
 
03.12.17
21:09
(0) Поставить галочку "Вызов сервера"
3 Санта Клаус
 
03.12.17
21:09
ок, спасибо за наводку
4 Санта Клаус
 
03.12.17
21:11
(2) не помогает
5 H A D G E H O G s
 
03.12.17
21:15
(4) Галочка в серверном модуле?
6 Санта Клаус
 
03.12.17
21:17
нужно в том, который вызываем?
7 Санта Клаус
 
03.12.17
21:20
другая ошибка

{ОбщийМодуль.РозничныеПродажиКлиентСервер.Модуль(239)}: Ошибка при вызове метода контекста (БонуснаяПрограммаКартыЛояльности)
            ПараметрыКартыЛояльности = БонусныеБаллыСервер.БонуснаяПрограммаКартыЛояльности(ЭлементСтруктуры.Значение);
по причине:
Ошибка при вызове серверного метода.
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'ret':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/managed-application/modules}ret
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ВыборкаИзРезультатаЗапроса'
8 H A D G E H O G s
 
03.12.17
21:24
ТаблицаРезультата=Запрос.Выполнить().Выгрузить();

ТаблицаМассивомСтруктур=ОбщегоНазначения.ТаблицаЗначенийВМассив(ТаблицаРезультата);
Возврат ТаблицаМассивомСтруктур;
9 Санта Клаус
 
03.12.17
21:31
т.е. в данном случае нужно вместо ТЗ возвращать массив? Т.е еще один модуль изменять
10 Санта Клаус
 
03.12.17
21:47
(8) Спасибо, помогло, вопрос: получается, без этого допила по типовому никак проще не решается эта проблема? Обязательно код править?
11 H A D G E H O G s
 
03.12.17
21:49
(9) (10) Вы проектируете кривую архитектуру. Делите клиент и сервер правильно.
12 Санта Клаус
 
03.12.17
21:49
Дело не в том, что код править, а в том, что данная ситуация должна быть предусмотрена  решаться на уровне расстановки галок, или я не прав. Что это: недоработка платформы или моя уникальная ситуация, в чем сильные сомнения.
13 Санта Клаус
 
03.12.17
21:49
(11) ок
14 xReason
 
03.12.17
22:00
(12) Нет, это ваше неправильное проектирование клиент-серверной архитектуры + незнание темы
15 Санта Клаус
 
03.12.17
22:03
Да, все решилось без преобразования ТЗ в массив созданием и вызовом своего общего модуля с галками Сервер и Вызов сервера. Изначально не поставил галку Вызов сервера, вот и не получалось.
16 xReason
 
04.12.17
07:54
(15) ставить галку ВызовСервера просто так, что бы заработало, это плохая практика. Все эти вызовы небезопасные и влияют на производительность
17 ildary
 
04.12.17
08:43
(16) А как делать правильно? Я заметил, что сама 1С делает дополнительный модуль с галкой ВызовСервера и в конце имени ВызовСервера - поступать также?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан