|
Возврат реквизита управляемой формы(ТЗ) |
☑ |
0
lisrws
08.10.13
✎
11:27
|
Добрый день. Есть управляемая форма. На ней 4 реквизита типа "Таблица значений": ТЗ1, ТЗ2, ТЗ3 и ТЗ4. в каждой из них по 3 строки с Колонкой "Габарит"(число). Имеется такой код:
&НаКлиенте
Процедура ШиринаПриИзменении()
Габариты = ПолучитьГабарит(ЗонаХранения);
Габариты[1].Габарит = ШиринаММ;
конецпроцедуры
&НаСервере
Функция ПолучитьГабарит(ЗонаХранения)
Если ЗонаХранения = Перечисления.ЗоныХранения.Зона1 тогда
Возврат ТЗ4;
ИначеЕсли ЗонаХранения = Перечисления.ЗоныХранения.Зона2 тогда
Возврат ТЗ4;
ИначеЕсли ЗонаХранения = Перечисления.ЗоныХранения.Зона3 тогда
Возврат ТЗ4;
ИначеЕсли ЗонаХранения = Перечисления.ЗоныХранения.Зона4 тогда
Возврат ТЗ4;
КонецЕсли
конецфункции
То есть, в зависимости от зоны хранения, из функции должна вернуться конкретная ТЗ для редактирования. ТЗ вроде возвращается, переменная Габариты имеет тип "ДанныеФормыКоллекция", но при выполнении Габариты[1].Габарит = ШиринаММ заполняется строка только в ТЗ Габариты, при этом значение в соответствующей ей строке в ТЗ из реквизитов формы не изменяется. В чем может быть дело?
|
|
1
banco
08.10.13
✎
11:31
|
(0) в твоем случае вообще не надо обращаться на сервер, можно использовать на клиенте
Если ЗонаХранения = ПредопределенноеЗначение("Перечисление.ЗоныХранения.Зона1")
|
|
2
Maxus43
08.10.13
✎
11:32
|
чтоб на сервере работать с данными форм кури РеквизитФормыВЗначение и обратно
|
|
3
lisrws
08.10.13
✎
11:36
|
(1) я привел лишь фрагмент. есть вызов ПолучитьГабарит из под сервера. поэтому на клиент бросать нельзя.
(2) по-моему немножко не то. Если я напишу:
&НаКлиенте
Процедура ШиринаПриИзменении()
ТЗ1[1].Габарит = ШиринаММ;
конецпроцедуры
работать будет
|
|
4
lisrws
08.10.13
✎
11:37
|
немножко ошибся в (0) . Вот так надо:
&НаСервере
Функция ПолучитьГабарит(ЗонаХранения)
Если ЗонаХранения = Перечисления.ЗоныХранения.Зона1 тогда
Возврат ТЗ1;
ИначеЕсли ЗонаХранения = Перечисления.ЗоныХранения.Зона2 тогда
Возврат ТЗ2;
ИначеЕсли ЗонаХранения = Перечисления.ЗоныХранения.Зона3 тогда
Возврат ТЗ3;
ИначеЕсли ЗонаХранения = Перечисления.ЗоныХранения.Зона4 тогда
Возврат ТЗ4;
КонецЕсли
конецфункции
|
|
5
lisrws
08.10.13
✎
11:41
|
вызов сервера мне нужен только для определения с какой именно ТЗ мне нужно сейчас работать. Но при возврате с сервера, кажется что он дает не ТЗ формы, а ее копию.
|
|
6
Infsams654
08.10.13
✎
11:50
|
(5) выбирай, из (1) и (2)
|
|
7
lisrws
08.10.13
✎
14:59
|
(6) ясно. спасибо. буду пробовать
|
|