|
Передача ссылки в тонком клиенте | ☑ | ||
---|---|---|---|---|
0
wraithik
17.09.13
✎
09:37
|
Есть два модуля, один серверный, другой для клиента УП.
Серверный отдает ссылку на справочник. В клиентском хочется писать: спр = Серверный.ПолучитьСсылкуНаСправочник(); Сообщить(Спр.Код); Сообщить(Спр.Наименование); но полей Код и Наименование естественно нет. как на клиента отдать объект упакованный в ДанныеФормыСтруктура. зы. самому паковать урками в структуру желания нет. |
|||
1
ДенисЧ
17.09.13
✎
09:38
|
Пакуй не урками, а гастарбайтерами....
|
|||
2
cw014
17.09.13
✎
09:39
|
Возврати структуру, будь мужиком, бл@#ть!!!
|
|||
3
wraithik
17.09.13
✎
09:40
|
(1) (2)
если по делу сказать не чего, лучше молчать |
|||
4
ДенисЧ
17.09.13
✎
09:44
|
(3) Ну... Что могу посоветовать... Молчи... :-)
|
|||
5
cw014
17.09.13
✎
09:49
|
УТ11, Модуль "ОбщегоНазначения":
// Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы // по ссылке на объект. // // Если доступа к одному из реквизитов нет, возникнет исключение прав доступа. // Если необходимо зачитать реквизит независимо от прав текущего пользователя, // то следует использовать предварительный переход в привилегированный режим. // // Параметры: // Ссылка - ссылка на объект, - элемент справочника, документ, ... // ИменаРеквизитов - Строка или Структура - если Строка, то имена реквизитов, // перечисленные через запятую, в формате требований к свойствам структуры. // Например, "Код, Наименование, Родитель". // Если Структура, то в качестве ключа передается псевдоним поля для // возвращаемой структуры с результатом, а в качестве значения (опционально) // - фактическое имя поля в таблице. // Если значение не определено, то имя поля берется из ключа. // // Возвращаемое значение: // Структура - содержит список свойств, как список имен в строке // ИменаРеквизитов, со значениям реквизитов, прочитанных // из информационной базы. // Функция ПолучитьЗначенияРеквизитов(Ссылка, ИменаРеквизитов) Экспорт Если ТипЗнч(ИменаРеквизитов) = Тип("Структура") Тогда СтруктураРеквизитов = ИменаРеквизитов; ИначеЕсли ТипЗнч(ИменаРеквизитов) = Тип("Строка") Тогда СтруктураРеквизитов = Новый Структура(ИменаРеквизитов);; Иначе ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Неверный тип второго параметра ИменаИлиСтруктураРеквизитов: %1'"), Строка(ТипЗнч(ИменаРеквизитов))); КонецЕсли; ТекстПолей = ""; Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), СокрЛП(КлючИЗначение.Значение), СокрЛП(КлючИЗначение.Ключ)); Псевдоним = СокрЛП(КлючИЗначение.Ключ); ТекстПолей = ТекстПолей + ?(ПустаяСтрока(ТекстПолей), "", ",") + " | " + ИмяПоля + " КАК " + Псевдоним; КонецЦикла; Запрос = Новый Запрос( "ВЫБРАТЬ |" + ТекстПолей + " |ИЗ | " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы |ГДЕ | ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка |"); Запрос.УстановитьПараметр("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Результат = Новый Структура; Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл Результат.Вставить(КлючИЗначение.Ключ); КонецЦикла; ЗаполнитьЗначенияСвойств(Результат, Выборка); Возврат Результат; КонецФункции |
|||
6
cw014
17.09.13
✎
09:50
|
Так что давай без наездов, тебе по делу сказали
|
|||
7
wraithik
17.09.13
✎
09:54
|
(6)
Вот блин :( А без структуры никак? Такое я и сам сочинил уже, да только не понравилась идея. |
|||
8
cw014
17.09.13
✎
09:55
|
(7) За тебя уже давно 1С сочинил все, а ты изобрел велосипед
|
|||
9
wraithik
17.09.13
✎
09:57
|
да там велосипеда было мало :)
мне универсальность не нужна была. просто думал чем то более универсальным (то что в платформе встроено) обойтись. |
|||
10
cw014
17.09.13
✎
09:58
|
На клиенте нету свойств у ссылки
|
|||
11
CerbeRUS
17.09.13
✎
10:04
|
Кажется, еще можно с помощью ХранилищаЗначения или ЗначениеВСтрокуВнутр объект передать, но зачем извращаться, если есть структура?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |