Имя: Пароль:
1C
1С v8
Получить ссылку из Структуры
,
0 Капитан Джек Воробей
 
24.07.20
14:35
Доброго времени суток!
Достался в наследство код:
....Некий Запрос.....
Массив = Новый Массив();
В цикле.....
Запись = Новый Структура;
Запись.Вставить("Договор", Выборка.Договор);
Запись.Вставить("Контрагент", Выборка.Контрагент);
Массив.Добавить(Запись);
Отправили на клиент....
Для каждого Строка Из Выборка Цикл
Контр = Строка.Договор.Владелец;
Вот здесь ошибка так как мы обращаемся к элементу массива который имеет тип структура в которой есть значение(№дог789) и тип(Справочники.Договоры), но значение структуры не является ссылкой... естественно вылетает с ошибкой поле владелец не обнаружен.

Я поискал материал про структуру, но не нашел более того, что я и так знал, по этому...
Вопрос: Можно ли получить ссылку из структуры?

P.S.  Я переделал Массив в ТЗ и избавился от структуры.
1 VladZ
 
24.07.20
14:49
(0) "но значение структуры не является ссылкой."  -  а чем является?
2 Ёпрст
 
24.07.20
14:52
(0) на клиенте реквизиты объекта получать через точку...ну ты понял, надеюсь
3 Kigo_Kigo
 
24.07.20
14:52
Это не сработает на клиенте, передавай на сервер, получай там владельца
4 ZDenis
 
24.07.20
14:52
(0) У тебя контрагент и так передается отдельно, не надо его из договора тянуть
5 Kigo_Kigo
 
24.07.20
14:55
&НаСервере
Функция ПолучитьКонтр(Договор)

КонецФункции
(4) Эти параметры для запроса и на сервере, на клиенте он получает массив, в котором не факт, что есть контрагент
6 Капитан Джек Воробей
 
24.07.20
15:00
(4) Это как пример я понимаю что контрагент и есть владелец договора
7 ZDenis
 
24.07.20
15:00
(5) Как это нету, если видно как массив создается
8 ДенисЧ
 
24.07.20
15:01
(6) Ой, не факт... В отладчике смотри, что там
9 Kigo_Kigo
 
24.07.20
15:02
(6) Читай (2) + (3), все что через точку получаем на сервере, на клиенте это все "базовые типы данных" типа число дата текст, это условно говоря
10 ZDenis
 
24.07.20
15:04
(8) Для верности можно сразу так)

Запись = Новый Структура;
Запись.Вставить("Договор", Выборка.Договор);
Запись.Вставить("КонтрагентДоговора", Выборка.Договор.Владелец);
Запись.Вставить("Контрагент", Выборка.Контрагент);
Массив.Добавить(Запись);
11 ГдеСобака Зарыта
 
24.07.20
15:05
(5) Хотя б НаСервереБезКонтекста написал. Оно ж там в цикле выполняться будет.
12 Андроны едут
 
24.07.20
15:06
(9) А если клиент толстый?
13 Kigo_Kigo
 
24.07.20
15:08
(12) Если у ТС - сабж, то там толстым не пахнет, логично?
14 Капитан Джек Воробей
 
24.07.20
15:08
(1) Да согласен не прав....
15 Капитан Джек Воробей
 
24.07.20
15:10
(2) (5) После обычных форм отвык, точно отправить на сервер получить нужные данные и вернуть...
16 Капитан Джек Воробей
 
24.07.20
15:14
(8) это не тот код с которым я работаю, я суть описал
17 Жан Пердежон
 
24.07.20
16:11
(16) криво описал, с ошибкой; в твоем коде, видимо, тоже ошибка