|
Таблица формы | ☑ | ||
---|---|---|---|---|
0
Pyryrym
15.11.20
✎
19:21
|
У меня на ФормаСписка справочника есть Таблица формы, источников данных которой является динамический список. Мне нужно получить значение значение столбца из этой таблицы. Использую событие СписокВыбор, срабатывающее на двойной клик по полю таблицы. В нем есть следующие параметры - Элемент, ВыбраннаяСтрока, Поле. Как я понял элемент - сама Таблица формы, ВыбраннаяСтрока - ссылка на элемент справочника, а поле - колонка Таблицы формы. Как можно получить значение ячейки, по которой произошел клик, а также присвоить ей новое значение?
|
|||
1
ДенисЧ
15.11.20
✎
19:24
|
Присвоитьт значение === записать в источник, откуда динсписок берёт данные
|
|||
2
RomanYS
15.11.20
✎
19:27
|
(0)
&НаКлиенте Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)//Поле - это колонка (1) + не забыть обновить список |
|||
3
Pyryrym
15.11.20
✎
19:33
|
У меня просто в этом списке данные не только из одного только справочника. Справочник - книги. И есть регистр, показывающий текущего владельца (конфигурация библиотеки). И вот в одной строке может например быть: в столбце Владелец - Иванов И.И., в столбце Название - Курочка ряба. Отсюда получу: элемент - таблица формы, выбранная строка - ссылка па Курочку рябу, а поле - Владелец. А как из этого получить "Иванов И.И."?
|
|||
4
RomanYS
15.11.20
✎
19:44
|
(3)
Значение = Элемент.ТекущиеДанные[Поле.Имя] |
|||
5
Pyryrym
15.11.20
✎
19:55
|
(4) спасибо
|
|||
6
Сурдинка
15.11.20
✎
19:58
|
(4) А ежели пользователь сам поле от ссылки добавил - не прокатит такое.
|
|||
7
RomanYS
15.11.20
✎
20:03
|
(6) Согласен, будут проблемы
|
|||
8
Сурдинка
15.11.20
✎
20:07
|
(7) А может, знаешь как их победить? А то понадобилось однажды, а не удалось по нормальному решить.
|
|||
9
RomanYS
15.11.20
✎
20:12
|
(8) На вскидку или идти на сервер и разбирать ПутьКДанным или перебрать всё-таки Элемент.ТекущиеДанные там нужное есть:
причем очень странно (через точку) Ссылка.Реквизит, а Поле.Имя через "_": "Ссылка_Реквизит". |
|||
10
RomanYS
15.11.20
✎
20:15
|
+(9) конструкция Элемент.ТекущиеДанные["Ссылка.Реквизит1"] работает, но вариант
Элемент.ТекущиеДанные[СтрЗаменить(Поле.Имя, "_", ".")] может напороться на реальные имена с "_" |
|||
11
Сурдинка
15.11.20
✎
20:16
|
(9) Как перебирать? Разве есть коллекция колонок таблицы формы?
|
|||
12
RomanYS
15.11.20
✎
20:27
|
(11) ага загадка, у ДанныеФормыСтруктура (Элемент.ТекущиеДанные) итератора нет, в элементах формы добавленного реквизита тоже не видно ни в общих формы, ни в подчиненных у таблицы.
Остаётся (10) с аккуратной заменой "_" перебором |
|||
13
Kassern
16.11.20
✎
11:02
|
(4) Если бы динамический список был из произвольного запроса без привязки к основной таблице, то такая бы конструкция не проканала, нужно было бы получать строку по идентификатору строки, а дальше получать объект, изменять и обновлять динамический список.
|
|||
14
RomanYS
16.11.20
✎
11:08
|
(13) Почему? Про изменение мы сейчас не говорим. Цель получить значение ячейки и желательно(если возможно) не обращаясь к серверу.
|
|||
15
Kassern
16.11.20
✎
11:18
|
(14) Я имел ввиду параметр ВыбраннаяСтрока. Если таблица основная не указана, то там будет идентификатор строки храниться, если же таблица определена, то там будет ссылка на выбранный элемент основной таблицы. Я немного ошибся, Элемент.ТекущиеДанные действительно сработает и даст текущую строку.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |