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

Таблица формы

Таблица формы
Я
   Pyryrym
 
15.11.20 - 19:21
У меня на ФормаСписка справочника есть Таблица формы, источников данных которой является динамический список. Мне нужно получить значение значение столбца из этой таблицы. Использую событие СписокВыбор, срабатывающее на двойной клик по полю таблицы. В нем есть следующие параметры -  Элемент, ВыбраннаяСтрока, Поле. Как я понял элемент - сама Таблица формы, ВыбраннаяСтрока - ссылка на элемент справочника, а поле - колонка Таблицы формы. Как можно получить значение ячейки, по которой произошел клик, а также присвоить ей новое значение?
   ДенисЧ
 
1 - 15.11.20 - 19:24
Присвоитьт значение === записать в источник, откуда динсписок берёт данные
   RomanYS
 
2 - 15.11.20 - 19:27
(0)
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка//Поле - это колонка 


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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.