|
Можно ли по элементу "ПолеВвода" элемента "ТаблицаФормы" определить имя реквизит | ☑ | ||
---|---|---|---|---|
0
pavlushov
02.11.21
✎
16:36
|
Добавил реквизит формы таблицу значений «ВидыДокументов» с колонками: «ВидДокумента» (справочник), «Вкладывать» (булево), «Просмотр» (булево). На форме соответственно элемент ТаблицаФормы, где колонки называются иначе: «ВидыДокументовВкладывать», «ВидыДокументовПросмотр».
Делаю команду, которая должна понять на какой колонке я стою, по колонке определить имя реквизита и проставить флажки. Т.е. команда «Отметить все», которая должна отметить все в текущей колонке. Я понимаю, что можно назвать поля так-же как и названы колонки таблицы значений, что можно задать соответствие между названиями, но можно ли сделать это как то иначе, более корректно? Элементы.ВидыДокументов.ТекущийЭлемент.Имя – здесь я получаю например «ВидыДокументовВкладывать» Для Каждого СтрокаТЗ Из ВидыДокументов Цикл СтрокаТЗ.[ИмяКолонки] = Истина; - а сюда мне надо передать «Вкладывать» КонецЦикла; Можно ли все таки как то по текущему элементу определить имя реквизита, желательно на клиенте. Я понимаю что на сервере можно у текущего элемента прочитать ПутьКДанным, но это тоже так себе решение, так как он будет в виде: ВидыДокументов.Вкладывать |
|||
1
vicof
02.11.21
✎
16:38
|
СтрЗаменить наше всё
|
|||
2
DrShad
02.11.21
✎
16:40
|
в принципе я не против
|
|||
3
acht
02.11.21
✎
16:41
|
(0) > так себе решение,
А зря. Это самый корректный способ. С таким подходом тебе подсказывать бесполезно, тебя не устроит ни одно из решений. |
|||
4
TormozIT
гуру
02.11.21
✎
23:35
|
(0) Нельзя универсально это сделать на клиенте. Я тоже недоволен такой "оптимизацией" в платформе. Сделано это ради уменьшения размера клиентской части формы. Так борятся за каждый килобайт.
В итоге для условно универсальных клиентских механизмов приходится самостоятельно городить соответствие имени элемента формы и пути к данным. Помещаем в это соответствие в реквизит формы и далее уже пользуемся на клиенте. Когда то я даже просил производителя одуматься и сделать эти пути доступными на клиенте хотя бы через отдельный серверный вызов системного метода. Но нет. Каждая конфигурация и иногда даже форма обречена городить свой огород для подобных универсальных механизмов. |
|||
5
серый КТУЛХУ
03.11.21
✎
00:13
|
(4): "В итоге для условно универсальных клиентских механизмов приходится самостоятельно городить соответствие имени элемента формы и пути к данным. Помещаем в это соответствие в реквизит формы и далее уже пользуемся на клиенте."
нередко бывает нужно. не поделишься методикой (и м.б. кодом)?.. |
|||
6
pavlushov
03.11.21
✎
09:57
|
(4) Думаю можно при создании формы заполнить это соответствие и далее пользоваться. Что то типа:
Для Каждого Эл Из Элементы Цикл СоответствиеЭлементов.Вставить(Эл, Эл.ПутьКДанным); КонецЦикла; ну только конечно надо по типу элемента фильтровать чтобы не пытаться получить ПутьКДанным у ГруппыФормы. |
|||
7
acht
03.11.21
✎
10:42
|
(6) > СоответствиеЭлементов.Вставить(Эл, Эл.ПутьКДанным);
Здравствуй, утечка памяти! |
|||
8
pavlushov
03.11.21
✎
11:34
|
(7) плохо так делать да?
|
|||
9
acht
03.11.21
✎
11:39
|
Да. Надо хранить строки - имена элементов.
|
|||
10
pavlushov
03.11.21
✎
12:51
|
(9) Вы имеете в виду: СоответствиеЭлементов.Вставить(Эл.Имя, Эл.ПутьКДанным);
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |