Здравствуйте.
У документ есть реквизит "ОплатаНаличными" (булево), этот реквизит выводится в форму списка.
Если в настройках отключить видимость этого реквизита, то в процедуре ПриПолученииДанных:
Для Каждого Оформление Из ОформлениеСтрок Цикл
Если Оформление.ДанныеСтроки.ОплптаНаличными Тогда // Ошибка (Поле объекта не обнаружено)
КонецЕсли;
КонецЦикла;
Как лучше сделать с точки зрения скорости:
ОплатаНалВидимость=Элемент.Колонки.ОплатаНаличными.Видимость;
Для Каждого Оформление Из ОформлениеСтрок Цикл
Если ОплатаНалВидимость Тогда
_ОплатаНаличными=Оформление.ДанныеСтроки.ОплатаНаличными;
Иначе
_ОплатаНаличными=Оформление.ДанныеСтроки.Ссылка.ОплатаНаличными;
КонецЕсли;
Если _ОплатаНаличными Тогда
КонецЕсли;
КонецЦикла;
т.е. Если колонка выводится в форму списка - данные получаем из ДанныеСтроки, если не выводится - получаем значение из Ссылка.Реквизит.
или это лишнее и везде использовать ДанныеСтроки.Ссылка.Реквизит?
(2) просто опечатка.
в настройках формы списка включаю видимость колонки - работает.
отключаю видимость - ошибка.
вот и вопрос: Просто обращаться к реквизиту через ДанныеСтроки.Ссылка или сначала проверять на видимость потому что так быстрее работает?
Тащить данные из Ссылки - слишком затратно, так как при этом будет происходить чтение всего объекта, со всеми табличными частями и прочим, каждый раз, когда будет скролиться список, каждого документа, который виден в списке.
(3) если уже прям ооочень надо скрыть колонку, т.к. у пользователя она вызывает приступ паники/бешенства, то нужно предварительно собрать массив обрабатываемых ссылок и одним запросом для них получить значения реквизита ОплатаНаличными, поместить всё в соответствие и внутри основного цикла "Для Каждого Оформление Из ОформлениеСтрок Цикл" получать данные уже из соответствия.
Классический пример - вывод остатков на форму https://its.1c.ru/db/metod8dev/content/2805/hdoc
(6) В принципе не правильно получать какие-либо реквизиты, кроме ссылки, из ДанныеСтроки в ПриПолученииДанных. Поэтому получение реквизита ОплатаНаличными запросом по видимым ссылкам должно быть чем-то само собой разумеющимся.
(1) В свойствах динамического списка у поля "ОплатаНаличными" установите галку "Использовать всегда". После этого поле будет доступно в данных строки не зависимо от значения видимости