Elena0394
@Elena0394

Как обратиться к полю таблицы через другой модуль объекта?

Через модуль формы можно обратиться к полю через Элемент.Товары.ТекщиеДанные.Цена, а как обратиться через другой модуль объекта?
  • Вопрос задан
  • 209 просмотров
Решения вопроса 1
alexgp13
@alexgp13
Руководитель ИТ-проектов
"Текущих данных" в другом модуле, если память не изменяет, не существует. То есть если Вам что то надо с ними сделать, то в модуле формы их записываете в переменные/массив/структуру/что-то-еще и вызываете нужную функцию другого модуля. Потом полученный результат опять же в модуле формы записываете назад в текущиеданные (или куда Вам его надо записать).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Dementor
программист, архитектор, аналитик
Через модуль формы можно обратиться к полю через Элемент.Товары.ТекщиеДанные.Цена,

Это не совсем обращение к полю. Если точно, то тут - получение значения конкретной ячейки (с названием "Цена") у выделенной на форме строки табличного поля (с названием "Товары").

Если рассматривать более детально:
"Элементы" - это коллекция всех элементов на форме
"Товары" - элемент формы типа "табличное поле", который связан или с таблицей значения в реквизитах формы, или с табличной частью одного из реквизитов поля (обычно это основной реквизит с названием "Объект")
"ТекущиеДанные" - свойство табличного поля формы для доступа к данным, которые выведены на форму -т.е. содержит некоторую часть значений строки таблицы, которые программист решил сделать доступными на форме, т.е. там могут быть не все!

Если на форме нужно получить доступ ко всем колонкам нужной строки табличной части (или таблицы значений), то нужно использовать свойство ТекущаяСтрока, в котором находится идентификатор строки, а потом получить нужную строку из реквизита формы с помощью метода НайтиПоИдентификатору()

а как обратиться через другой модуль объекта?

Если вы передаете в любой другой модуль контекст формы (указали форму параметром функции), то ничего не меняется. Получить данные можно по указанной выше схеме, только нужно обращаться через контекст. Т.е. будет как-то так: ПереданнаяФорма.Элементы.Товары.ТекущиеДанные.Цена

Если вызов внешнего модуля инициируется не из формы и контекст недоступен, то такого понятия, как "выделенная на форме пользователем строка" не имеет смысла. У вас просто есть табличная часть, в которой есть множество строк, которые можно обходить итератором (в конструкции Для каждого ... Из ... Цикл), выборкой (результатом НайтиСтроки(Отбор)) или по указанному индексу.

К примеру, обращение к значению первой строки будет иметь вид: Объект.Товары[0].Цена , а если вы работаете в модуле объекта, то и вовсе достаточно Товары[0].Цена
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы