|
Управляемое приложение &НаКлиенте | ☑ | ||
---|---|---|---|---|
0
Ar-Bus
30.04.13
✎
00:27
|
Привет всем! Уважаемые, только начинаю работать с управляемым приложением... Сразу куча вопросов...
Как &НаКлиенте получить реквизит номенклатуры??? Процедура ОбновитьКартинку() ТекущаяСтрока = Элементы.Товары.ТекущиеДанные; Если (ТекущаяСтрока <> Неопределено) И (ЗначениеЗаполнено(ТекущаяСтрока.Номенклатура.ФайлКартинки)) Тогда КартинкаРМК = НавигационнаяСсылкаКартинки(ТекущаяСтрока.Номенклатура.ФайлКартинки, УникальныйИдентификатор); Иначе КартинкаРМК=""; КонецЕсли; КонецПроцедуры В толстом клиенте все работает, а вот в тонком... Необходимо получить реквизит справочника Номенклатура.ФайлКартинки Как этого добиться на клиенте??? Подскажите, пожалуйста! |
|||
1
Asmody
30.04.13
✎
00:28
|
на клиенте – никак. на клиенте объекты недоступны. вызывай серверную процедуру, там получай что нужно и возвращай на клиент (если это необходимо)
|
|||
2
Ar-Bus
30.04.13
✎
00:32
|
(1) а как вызвать серверную процедуру? Необходимо экспортную процедуру сделать на сервере, и затем к ней обращаться из клиента?
|
|||
3
Asmody
30.04.13
✎
00:35
|
(2) можно прямо в модуле формы объявить процедуру с директивой &НаСервере
|
|||
4
Ar-Bus
30.04.13
✎
00:36
|
Помогите, пожалуйста, кодом... Не пойму, как надо написать. Ну вот есть у меня на клиенте "ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;"
Как это можно использовать на сервере? |
|||
5
Asmody
30.04.13
✎
00:37
|
вот тут человек мучается v8: Вызов процедуры в управляемых формах
там есть пример почти правильного кода |
|||
6
Ar-Bus
30.04.13
✎
00:39
|
(4) все равно не пойму. Блин, поздно уже, мозг не работает. Может напишите фрагмент кода применительно к моей проблеме?
|
|||
7
Ar-Bus
30.04.13
✎
00:45
|
И вообще, вопрос... Есть база, файловый вариант(локальная сеть), стоит ли вообще мучаться в данный поздний час с тонким клиентом?
|
|||
8
alexei366
30.04.13
✎
00:48
|
(7) Не знаю, я вообще всегда пишу для тонкого, а то у меня некоторые на сервере базы висят, а к ним доступ делаем не только в локалке но и через веб.
|
|||
9
alexei366
30.04.13
✎
00:49
|
(8) Как понимаю толстый вообще остался от старых версий 1С
|
|||
10
Ar-Bus
30.04.13
✎
00:51
|
(8) Просто надо завтра с утра(т.е. уже сегодня) базу отдавать... Локальная сеть, база лежит на одном компе, где РМК, +2ноута по локалке подключаются к этой базе(файловый вариант). Тонкий клиент там вообще использоваться может?
|
|||
11
Ar-Bus
30.04.13
✎
00:53
|
(4) Написал вот так:
Процедура ОбновитьКартинку() ТекущаяСтрока = Элементы.Товары.ТекущиеДанные; КартинкаРМК=ПолучитьСсылкуНаКартинкуНаСервере(ТекущаяСтрока); КонецПроцедуры &НаСервере Функция ПолучитьСсылкуНаКартинкуНаСервере(ТекущаяСтрока) Если (ТекущаяСтрока <> Неопределено) И (ЗначениеЗаполнено(ТекущаяСтрока.Номенклатура.ФайлКартинки)) Тогда КартинкаРМК = НавигационнаяСсылкаКартинки(ТекущаяСтрока.Номенклатура.ФайлКартинки, УникальныйИдентификатор); Иначе КартинкаРМК=""; КонецЕсли; Возврат КартинкаРМК; КонецФункции ОШИБКА: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}param по причине: Ошибка отображения типов: Отсутствует отображение для типа 'ДанныеФормыЭлементКоллекции' |
|||
12
alexei366
30.04.13
✎
00:55
|
&НаСервереБезКонтекста
Функция ПолучитьСвойствоСтруктуры(Структура,Свойство) Возврат Структура.Свойство; КонецФункции и юзаешь на клиенте (ЗначениеЗаполнено(ПолучитьСвойствоСтруктуры(Номенклатура,"ФайлКартинки")) |
|||
13
Ar-Bus
30.04.13
✎
00:59
|
(12) и юзаешь на клиенте
(ЗначениеЗаполнено(ПолучитьСвойствоСтруктуры(Номенклатура,"ФайлКартинки")) клиент не понимает выражение "Номенклатура", как написать-то? |
|||
14
alexei366
30.04.13
✎
01:02
|
(13) Б л я чуть опечатался,
ТекущаяСтрока.Номенклатура, чо непонтного |
|||
15
alexei366
30.04.13
✎
01:05
|
Переделай ещё эту
&НаСервереБезКонтекста Функция ПолучитьСвойствоСтруктуры(Структура,Свойство) Возврат Структура[Свойство]; КонецФункции |
|||
16
Ar-Bus
30.04.13
✎
01:09
|
ОШИБКА:
{Обработка.РМКУправляемыйРежим.Форма.Форма.Форма(3482)}: Значение не является значением объектного типа (Номенклатура) КартинкаРМК=ПолучитьСвойствоСтруктуры(ТекущаяСтрока.Номенклатура,"ФайлКартинки",УникальныйИдентификатор); |
|||
17
alexei366
30.04.13
✎
01:10
|
КартинкаРМК=ПолучитьСвойствоСтруктуры(ПолучитьСвойствоСтруктуры(ТекущаяСтрока.Номенклатура,"ФайлКартинки"),УникальныйИдентификатор);
|
|||
18
Ar-Bus
30.04.13
✎
01:19
|
так должно быть?
&НаКлиенте Процедура ОбновитьКартинку() ТекущаяСтрока = Элементы.Товары.ТекущиеДанные; КартинкаРМК=ПолучитьСвойствоСтруктуры(ПолучитьСвойствоСтруктуры(ТекущаяСтрока.Номенклатура,"ФайлКартинки"),УникальныйИдентификатор); КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьСвойствоСтруктуры(Структура,Свойство) Если (Структура <> Неопределено) И (ЗначениеЗаполнено(Структура.ФайлКартинки)) Тогда КартинкаРМК = НавигационнаяСсылкаКартинки(Структура.ФайлКартинки, УникальныйИдентификатор); Иначе КартинкаРМК=""; КонецЕсли; Возврат Структура[Свойство]; КонецФункции |
|||
19
Ar-Bus
30.04.13
✎
01:21
|
люди, помогите!!!
|
|||
20
alexei366
30.04.13
✎
01:24
|
&НаКлиенте
Процедура ОбновитьКартинку() ТекущаяСтрока = Элементы.Товары.ТекущиеДанные; Если (ТекущаяСтрока <> Неопределено) И (ЗначениеЗаполнено(ПолучитьСвойствоСтруктуры(ТекущаяСтрока.Номенклатура,"ФайлКартинки"))) Тогда КартинкаРМК = НавигационнаяСсылкаКартинки(ПолучитьСвойствоСтруктуры(ТекущаяСтрока.Номенклатура,"ФайлКартинки"), УникальныйИдентификатор); Иначе КартинкаРМК=""; КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьСвойствоСтруктуры(Структура,Свойство) Возврат Структура[Свойство]; КонецФункции ИЛИ так (но могу здесь чонить напутать) &НаКлиенте Процедура ОбновитьКартинку() ТекущаяСтрока = Элементы.Товары.ТекущаяСтрока; ОбновитьКартинку_С(ТекущаяСтрока); КонецПроцедуры &НаСервере Процедура ОбновитьКартинку_С(ТекущаяСтрока) Строка = Товары[ТекущаяСтрока]; Если (ТекущаяСтрока <> Неопределено) И (ЗначениеЗаполнено(Строка.Номенклатура.ФайлКартинки)) Тогда КартинкаРМК = НавигационнаяСсылкаКартинки(Строка.Номенклатура.ФайлКартинки, УникальныйИдентификатор); Иначе КартинкаРМК=""; КонецЕсли; КонецПроцедуры |
|||
21
alexei366
30.04.13
✎
01:25
|
Все с меня хватит, я так больше не могу и иду спать
|
|||
22
Ar-Bus
30.04.13
✎
01:40
|
(21) твоих текстов не дождался сначала и сделал так:
Процедура ОбновитьКартинку() ТекущаяСтрока = Элементы.Товары.ТекущиеДанные; Если ТекущаяСтрока<>Неопределено Тогда КартинкаРМК=ПолучитьСсылкуНаКартинкуНаСервере(ТекущаяСтрока.Номенклатура,УникальныйИдентификатор); Иначе КартинкаРМК=""; КонецЕсли; КонецПроцедуры &НаСервере Функция ПолучитьСсылкуНаКартинкуНаСервере(Номенклатура,УникальныйИдентификатор) Если ЗначениеЗаполнено(Номенклатура.ФайлКартинки) Тогда КартинкаРМК = НавигационнаяСсылкаКартинки(Номенклатура.ФайлКартинки, УникальныйИдентификатор); Иначе КартинкаРМК=""; КонецЕсли; Возврат КартинкаРМК; КонецФункции работает... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |