|
УТ11. УФ. Функции клиента и сервера. | ☑ | ||
---|---|---|---|---|
0
Кокос
11.01.12
✎
13:21
|
&НаСервере
Функция ПолучитьЗначениеДополнительногоСвойстваОбъекта(ВидОбъекта,Объект,НаименованиеСвойства) Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ДополнительныеРеквизитыОбъекта.Свойство, | ДополнительныеРеквизитыОбъекта.Значение |ИЗ | "+ВидОбъекта+".ДополнительныеРеквизиты КАК ДополнительныеРеквизитыОбъекта |ГДЕ | ДополнительныеРеквизитыОбъекта.Ссылка = &Объект | И ДополнительныеРеквизитыОбъекта.Свойство.Наименование = &ИмяДопСвойства"; Запрос.УстановитьПараметр("ИмяДопСвойства",НаименованиеСвойства); Запрос.УстановитьПараметр("Объект",Объект); ТаблицаСвойств = Запрос.Выполнить().Выгрузить(); Если ТаблицаСвойств.Количество() > 0 Тогда Возврат ТаблицаСвойств[0].Значение; Иначе Возврат Неопределено; КонецЕсли; КонецФункции &НаКлиенте Функция ПолучитьЗначениеДополнительногоСвойстваОбъектаНаКлиенте(ВидОбъекта,Объект,НаименованиеСвойства) Экспорт Возврат ПолучитьЗначениеДополнительногоСвойстваОбъекта(ВидОбъекта,Объект,НаименованиеСвойства); КонецФункции ..... Кратность = МойМодуль.ПолучитьЗначениеДополнительногоСвойстваОбъектаНаКлиенте("Справочник.Номенклатура,Номенклатура,"Кратность"); ..... клиентская функция не видит серверной. Может кто подскажет? Серверную функцию пока что не отладил поэтому сильно не пинать :)) Пойду пока покопаю мануалы. |
|||
1
Азат
11.01.12
✎
13:23
|
У моймодуль какие галки стоят?
|
|||
2
Defender aka LINN
11.01.12
✎
13:25
|
(0) А сразу вызвать серверную - слишком скучно, интрига пропадает?
|
|||
3
Кокос
11.01.12
✎
13:27
|
(1) все :)
|
|||
4
Кокос
11.01.12
✎
13:28
|
(2) сразу тоже не видит :)
|
|||
5
Defender aka LINN
11.01.12
✎
13:29
|
(3) И нахрена там все галки? Логически объяснить сможешь?
|
|||
6
V_V_V
11.01.12
✎
13:32
|
(0) А откуда взято, что не видит? :))
Точки останова включены? Платформа файловая, серверная? Дебаг включен? |
|||
7
Defender aka LINN
11.01.12
✎
13:34
|
(6) 3 выстрела, и все в молоко.
|
|||
8
Кокос
11.01.12
✎
13:37
|
(6) все включено. платформа файловая.
|
|||
9
Кокос
11.01.12
✎
13:38
|
(5) да был только сервер сначала. сейчас все переиграл. наверное буду делать МойМодульНаКлиенте. Но все равно это не поможетже?
|
|||
10
Defender aka LINN
11.01.12
✎
13:40
|
(9) Выкинь директивы накер. В ОМ они не используются.
|
|||
11
Кокос
11.01.12
✎
13:40
|
(10) понял. то бишь надо два модуля?
|
|||
12
vmv
11.01.12
✎
13:41
|
стандартная ошибка объявить общий модуль с директивами сервер и клиент и пытаться в нем же вызвать в его же серверной методе его же клиентскую процедуру.
мдя, при компиляции этого модуля при выполнении на клиенте и на сервере, что мы увидим и что нужно сделать? |
|||
13
Кокос
11.01.12
✎
14:07
|
(12) ну вообще изначально была только серверная функция. я ее вызывал из клиентского ивента ПриОкончанииРедактированияСтроки. И там он ее не видел. и не видит. сейчас попробую два модуля сделать
|
|||
14
Defender aka LINN
11.01.12
✎
14:11
|
(13) А "вызов сервера" кто будет ставить в модуле?
|
|||
15
Defender aka LINN
11.01.12
✎
14:12
|
+(14) Ну и в данном случае клиентский модуль нах не нужен. Ты и так уже на клиенте, зачем промежуточный модуль вообще?
|
|||
16
Кокос
11.01.12
✎
14:14
|
(15) да я клиентский модуль уж написал на всякий случай. прямой вызов или клиентского события все равно не идет.
|
|||
17
Кокос
11.01.12
✎
14:14
|
(14) пойду смотреть как поставит "вызов сервера". Видимо не все я еще изучил в УФ за две недели :)
|
|||
18
Кокос
11.01.12
✎
15:59
|
вроде сделал. всплыла другая проблема. у меня вторая табличная часть Производство с расшифровкой комплектующих связанный по ключусвязи. вобщем если там сменить длину ширину и количество то в таб части товары идет площадь. в отладке(//***) видно как значение меняется. а визуально никаких изменений не происходит. с чем это может быть связано?
&НаКлиенте Процедура ПересчетСтрокиТовара(Элемент) ОбщаяПлощадь = 0; Для Каждого Строчка ИЗ Объект.Производство Цикл Если Строчка.КлючСтроки = Элементы.Товары.ТекущиеДанные.КлючСвязи Тогда ОбщаяПлощадь = ОбщаяПлощадь + СТрочка.Площадь; КонецЕсли; КонецЦикла; Если Элементы.Товары.ТекущиеДанные.Количество <> ОбщаяПлощадь Тогда Элементы.Товары.ТекущиеДанные.Количество = ОбщаяПлощадь;//*** ТоварыНоменклатураПриИзменении(Элемент); Элементы.Товары.Обновить(); КонецЕсли ; КонецПроцедуры |
|||
19
Кокос
11.01.12
✎
16:18
|
вот блин. там оказывается КоличествоУпаковок а не количество :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |