Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

8.3 получить значение реквизита формы в событии при измении

8.3 получить значение реквизита формы в событии при измении
Я
   Alex87r
 
10.04.19 - 13:45
Всем хаюшки!

у меня на форме документа есть реквизит. Это реквизит формы, не объекта.
Повесил обработчик при измении. Теперь не пойму, как получить значение реквизита.
Отладкой нашел только так, но мне кажется это не совсем правильно)
Элемент.Имя - это название реквизита на форме. Я его программно добавил.
Значение = Элементы[Элемент.Имя].ТекстРедактирования
 
 
   1Сергей
 
1 - 10.04.19 - 13:48
Посмотри на форме в свойствах элемента ПутьКДанным
   Darych
 
2 - 10.04.19 - 13:53
(1) Я его программно добавил.)))
   Alex87r
 
3 - 10.04.19 - 13:54
Я нашел))
ЭтаФорма[Элемент.Имя]
   Darych
 
4 - 10.04.19 - 13:55
а просто Имя?
   DrWatson
 
5 - 10.04.19 - 13:56
В редакторе формы сверху слева - элементы, сверху справа - реквизиты. Элементы доступны через Элементы.Имя. Реквизиты доступны через ЭтотОбъект.Имя, ЭтаФорма.Имя или просто Имя.
   DrWatson
 
6 - 10.04.19 - 13:56
ЭтаФорма, кстати, считается устаревшим вариантом.
   1Сергей
 
7 - 10.04.19 - 13:57
(6) нет. Это считается что у автора обычные формы
   Alex87r
 
8 - 10.04.19 - 14:13
(7) управляемые. Мои методы устарели))
(6) А как лучше обратиться?
   Darych
 
9 - 10.04.19 - 14:14
(8) Имя?
   DrWatson
 
10 - 10.04.19 - 14:18
(8) Да, просто по имени реквизита
   Cyberhawk
 
11 - 10.04.19 - 14:18
Универсального способа получить путь к данным элемента формы нет.
Проще говоря, ты в обработчике события сам должен знать, откуда брать значение, отображаемое этим элементом.
   Cyberhawk
 
12 - 10.04.19 - 14:19
(без похода на сервер)
   Darych
 
13 - 10.04.19 - 14:26
(12) у него контекст формы есть... а скорее всего вообще все это на клиенте
+ он рекв программно создал)
   Alex87r
 
14 - 10.04.19 - 14:33
Да, у меня все на клиенте.
Я программно создаю элементы на форме, поэтому не могу обратиться напрямую к ним. Я не знаю, какой именно пользователь изменяет реквизит. У меня на все элементы формы повешан обработчик "при изменении".
Элемент.Имя - это название реквизита и элемента формы.
Если я просто напишу Элемент.Имя я не обращусь к реквизиту формы.
Если напишу ЭтотОбъект[Элемент.Имя] или ЭтаФорма[Элемент.Имя], то получаю значение реквизита формы.
   Darych
 
15 - 10.04.19 - 14:34
просто имя
   Alex87r
 
16 - 10.04.19 - 14:37
(15) Т.е. просто имя?

Вот моя процедура, куда здесь просто имя вставить?))

&НаКлиенте
Процедура ПриИзмененииПараметра(Элемент) Экспорт
        
    МасИзменить =  ТаблицаПараметров.НайтиСтроки(Новый Структура ("Идентификатор", Элемент.Имя));
    Если МасИзменить.Количество() Тогда
        МасИзменить[0].ДанныеИзменены = Истина;    
        МасИзменить[0].Значение = ЭтотОбъект[Элемент.Имя];
    КонецЕсли;
    
КонецПроцедуры
   Cyberhawk
 
17 - 10.04.19 - 14:38
(13) Хорошо что есть, но без похода на сервер (т.е. с клиента) ты путь к данным элемента формы не узнаешь
   Cyberhawk
 
18 - 10.04.19 - 14:39
(14) "программно создаю элементы на форме, поэтому не могу обратиться напрямую к ним" // Что мешает? ЭтотОбъект[ИмяРеквизитаХотьПрограммногоХотьНепрограммного]
   Cyberhawk
 
19 - 10.04.19 - 14:40
ПолучитьРеквизиты метод формы
   Alex87r
 
20 - 10.04.19 - 14:43
(18) Ну да, я так и обратился. Спасибо)
Просто мне писали напиши имя, я написал, что не могу имя написать))
   Darych
 
21 - 10.04.19 - 14:45
вот до этого ни слова не было про
   Darych
 
22 - 10.04.19 - 14:45
МасИзменить =  ТаблицаПараметров.НайтиСтроки(Новый Структура ("Идентификатор", Элемент.Имя));
   Alex87r
 
23 - 10.04.19 - 14:53
(22) А что здесь?


Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.