Имя: Пароль:
1C
1С v8
Реквизит формы программно УФ
,
0 momwiga
 
05.08.14
12:10
У справочника в конфигураторе создан реквизит Комментарий, но он не выведен на форму. Делаю следующее: &НаСервере в Процедура ПриСозданииНаСервере
создаю реквизит Формы Комментарий и вывожу его на форму в виде поля, привязываю к нему обработчик события ПриИзменении:  Элемент.УстановитьДействие("ПриИзменении","МойОбработчик");

Процедура "МойОбработчик" выполняется на клиенте, поэтому созданный реквизит не видит. Что можно сделать чтобы значение реквизита Формы Комментарий можно было бы прочитать в этой процедуре? Передать его параметром? А как это сделать?
1 Kurbash
 
05.08.14
12:13
РеквизитФормыВЗначение?
2 momwiga
 
05.08.14
12:13
РеквизитФормыВЗначение на клиенте не работает
3 RomaH
 
naïve
05.08.14
12:14
Процедура "МойОбработчик" выполняется на клиенте, поэтому созданный реквизит не видит.
вот странное утверждение
если не видит - значит его там нет
4 RomaH
 
naïve
05.08.14
12:15
например туже контактную информацию прекрасно видно отовсюду
5 RomaH
 
naïve
05.08.14
12:15
как создаешь и как не видишь?
код покажи
6 momwiga
 
05.08.14
12:15
Конечно нет, он же на сервере создавался.
7 RomaH
 
naïve
05.08.14
12:16
(6) странный вывод
а поле формы ты на клиенте создавал?
8 momwiga
 
05.08.14
12:17
&НаСервере
Процедура ПриСозданииНаСервере
//добавление реквизта Комментарий
    ДобавляемыеРеквизиты = Новый Массив;
    Реквизит = Новый РеквизитФормы("Комментарий", Новый ОписаниеТипов("СписокЗначений"));
    ДобавляемыеРеквизиты.Добавить(Реквизит);
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);

//Добавляем новое поле ввода Комментарий на форму
    Элемент = ЭтаФорма.Элементы.Добавить("ОтборКомментарий", Тип("ПолеФормы"), ЭтаФорма.Элементы.ГруппаБыстрыеОтборы);
    Элемент.Вид = ВидПоляФормы.ПолеВвода;
    Элемент.ПутьКДанным = "Комментарий";
    Элемент.РастягиватьПоГоризонтали = Ложь;
    Элемент.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Верх;
    ЭтаФорма.Элементы.ОтборКомментарий.КнопкаОчистки = Истина;
    ЭтаФорма.Элементы.ОтборКомментарий.КнопкаВыбора  = Истина;
    Элемент.УстановитьДействие("ПриИзменении","МойОбработчик");
9 RomaH
 
naïve
05.08.14
12:17
а зачем вообще создавать реквизит формы если уже есть реквизит объекта?
10 RomaH
 
naïve
05.08.14
12:17
(8) а не видишь как?
11 momwiga
 
05.08.14
12:18
Сам реквизит формы нужно создавать на сервере, а вывод поля на форму на клиенте?
12 momwiga
 
05.08.14
12:18
не вижу, поэтому сюда и пишу
13 momwiga
 
05.08.14
12:19
Если не создавать реквизит , а только поле вывода то тут Элемент.ПутьКДанным = "Комментарий";  ругается о неправильном пути
14 RomaH
 
naïve
05.08.14
12:19
(12) как не видишь?
глазами? или все-таки пытаешься вычислить некое выражение?
15 momwiga
 
05.08.14
12:21
Я, скорее всего Вас плохо понимаю, вернее не понимаю вообще. Вы можете указать что нужно сделать, чтобы снять проблему?
16 RomaH
 
naïve
05.08.14
12:23
(15) покажи код которым не видишь

Процедура МойОбработчик()

   А = Комментарий;

КонецПроцедуры

так не видишь?
17 momwiga
 
05.08.14
12:24
вот так и не вижу

Переменная Комментарий не обнаружена
18 RomaH
 
naïve
05.08.14
12:24
Процедура МойОбработчик()

   Сообщить(ТипЗнч(Комментарий));

КонецПроцедуры

а так?
19 RomaH
 
naïve
05.08.14
12:25
а так?
ЭтаФорма["Комментарий"]
20 momwiga
 
05.08.14
12:25
и так нет, Переменная не определена (Комментарий)
21 RomaH
 
naïve
05.08.14
12:26
(17) ну так это не ты не видишь - это проверка синтаксиса не видит - потому что реквизита еще нет
22 momwiga
 
05.08.14
12:26
Неопознанный оператор
     ЭтаФорма["Комментарий"]<<?>>; (Проверка: Тонкий клиент)
23 momwiga
 
05.08.14
12:27
ну так она и сохранить не даёт
24 RomaH
 
naïve
05.08.14
12:29
короче - учись пользоваться отладчиком
25 momwiga
 
05.08.14
12:30
Спасибо
26 RomaH
 
naïve
05.08.14
12:38
27 momwiga
 
05.08.14
12:39
Да, спасибо, так понятнее
28 VikingKosmo
 
05.08.14
12:42
Для того, что бы твой обработчик вообще то заработал, было бы хорошо в процедуру МойОбработчик() добавить параметры, соответствующие этому обработчику, для начала...
29 momwiga
 
05.08.14
12:47
А как эти параметры добавить? в Элемент.УстановитьДействие("ПриИзменении","МойОбработчик"); или как?
30 momwiga
 
05.08.14
12:47
как передать параметры? в какой момент?
31 RomaH
 
naïve
05.08.14
12:52
(29) - просто (28) не внимательно читает
32 momwiga
 
05.08.14
12:53
Поняла ))))
33 VikingKosmo
 
05.08.14
12:54
(31) можно по подробней?
34 momwiga
 
05.08.14
12:54
RomaH Спасибо,за ссылку
35 RomaH
 
naïve
05.08.14
12:55
(33) ты с чего взял, что  у (0) обработчик без параметров?
36 VikingKosmo
 
05.08.14
12:57
(35) из кода выложенного, где то выше
37 RomaH
 
naïve
05.08.14
12:57
ну вот я и говорю, что чукча - писатель
38 samozvanec
 
05.08.14
12:58
где там мой набор фейспалмов...
39 samozvanec
 
05.08.14
13:08
(0) скажи, а на сервере видно твой новый реквизит?
40 Адский плющ
 
05.08.14
13:34
Какая лютая ветка.
41 DailyLookingOnA Sunse
 
05.08.14
15:02
ыгыгых
Неофитов прибыло в профессию.
Закон Брукера: Даже маленькая практика стоит большой теории.