1С получить значение колонки из текущей строки

1. user1942860 29.04.23 15:12 Сейчас в теме
Добрый день! Помогите, пожалуйста, разобраться. Только учусь работать с 1С, столкнулся с задачей, где по условию необходимо проверить текущее значение элемента колонки табличной части документа.

В общем, имеется справочник Материалы с реквизитом ФормаМатериала.
Также есть документ Заказы, в табличной части (СтоимостьМатериала) которого выводится Наименование материалов и ФормаМатериала из справочника Материалы, и реквизит цена, который зависит от ФормыМатериала (в зависимости от формы будет разная формула расчёта).
Таким образом, необходимо проверить значение в колонке ФормаМатериала текущий строки. Как я пробовал сделать:

&НаКлиенте
Процедура МатериалПриИзменении(Элемент) 
	ТекСтрока = Элементы.СтоимостьМатериала.ТекущиеДанные;
	Если ТекСтрока.ФормаМатериала= "круг" Тогда
		//Формула цены по материалу круг
	КонецЕсли
КонецПроцедуры


Выдаёт ошибку "Поле объекта не обнаружено (ФормаМатериала)

При этом ко всем остальным колонкам текущей строки я без проблем могу обратиться и узнать значение, например, когда изменил код на проверку не формы материала, а его наименования:

&НаКлиенте
Процедура МатериалПриИзменении(Элемент) 
	ТекСтрока = Элементы.СтоимостьМатериала.ТекущиеДанные;
	Если ТекСтрока.Материал= "Алюминий" Тогда
		//Формула цены по наименованию материала
	КонецЕсли
КонецПроцедуры
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. spacecraft 29.04.23 15:45 Сейчас в теме
(1)
Элементы.СтоимостьМатериала.ТекущиеДанные

ТекущиеДанные это данные реквизита формы. ФормаМатериала в нее не хводит. Это реквизит одного из реквизитов, который входит в ТекущиеДанные. И такие значения не доступны напрямую с клиента. Для их получения нужно делать серверный вызов и получать эти значения на сервере. В данном случае предпочтительно получать через &НаСервереБезКонтекста.
Если конфигурация на БСП, то там есть специальная функция:
НужноеЗначениеРеквизита = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекСтрока.Материал, "ФормаМатериала");
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 29.04.23 15:45 Сейчас в теме
(1)
Элементы.СтоимостьМатериала.ТекущиеДанные

ТекущиеДанные это данные реквизита формы. ФормаМатериала в нее не хводит. Это реквизит одного из реквизитов, который входит в ТекущиеДанные. И такие значения не доступны напрямую с клиента. Для их получения нужно делать серверный вызов и получать эти значения на сервере. В данном случае предпочтительно получать через &НаСервереБезКонтекста.
Если конфигурация на БСП, то там есть специальная функция:
НужноеЗначениеРеквизита = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекСтрока.Материал, "ФормаМатериала");
3. user1942860 29.04.23 15:52 Сейчас в теме
(2)
Спасибо! Теперь дошло)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот