форма списка документов Колонка.Видимость=Ложь

1. loki03 30.07.20 06:59 Сейчас в теме
Здравствуйте.
У документ есть реквизит "ОплатаНаличными" (булево), этот реквизит выводится в форму списка.
Если в настройках отключить видимость этого реквизита, то в процедуре ПриПолученииДанных:

Для Каждого Оформление Из ОформлениеСтрок Цикл
Если Оформление.ДанныеСтроки.ОплптаНаличными Тогда // Ошибка (Поле объекта не обнаружено)

КонецЕсли;
КонецЦикла;

Как лучше сделать с точки зрения скорости:
ОплатаНалВидимость=Элемент.Колонки.ОплатаНаличными.Видимость;
Для Каждого Оформление Из ОформлениеСтрок Цикл
Если ОплатаНалВидимость Тогда
_ОплатаНаличными=Оформление.ДанныеСтроки.ОплатаНаличными;
Иначе
_ОплатаНаличными=Оформление.ДанныеСтроки.Ссылка.ОплатаНаличными;
КонецЕсли;

Если _ОплатаНаличными Тогда

КонецЕсли;
КонецЦикла;

т.е. Если колонка выводится в форму списка - данные получаем из ДанныеСтроки, если не выводится - получаем значение из Ссылка.Реквизит.
или это лишнее и везде использовать ДанныеСтроки.Ссылка.Реквизит?
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Max_Max 30.07.20 07:03 Сейчас в теме
(1)
Если Оформление.ДанныеСтроки.ОплптаНаличными Тогда // Ошибка (Поле объекта не обнаружено)

Ошибка?
3. loki03 30.07.20 07:20 Сейчас в теме
(2) просто опечатка.
в настройках формы списка включаю видимость колонки - работает.
отключаю видимость - ошибка.
вот и вопрос: Просто обращаться к реквизиту через ДанныеСтроки.Ссылка или сначала проверять на видимость потому что так быстрее работает?
4. borodatii 3 30.07.20 07:41 Сейчас в теме
(3) по-моему, если данные нужны всегда, то и колонка должны быть видна всегда.
Кажется, должен сработать подобный код:
ЭлементыФормы.ТабличноеПоле.Колонки.ОплатаНаличными.ИзменятьНастройку = Ложь;

Тащить данные из Ссылки - слишком затратно, так как при этом будет происходить чтение всего объекта, со всеми табличными частями и прочим, каждый раз, когда будет скролиться список, каждого документа, который виден в списке.
6. borodatii 3 30.07.20 07:48 Сейчас в теме
(3) если уже прям ооочень надо скрыть колонку, т.к. у пользователя она вызывает приступ паники/бешенства, то нужно предварительно собрать массив обрабатываемых ссылок и одним запросом для них получить значения реквизита ОплатаНаличными, поместить всё в соответствие и внутри основного цикла "Для Каждого Оформление Из ОформлениеСтрок Цикл" получать данные уже из соответствия.
Классический пример - вывод остатков на форму https://its.1c.ru/db/metod8dev/content/2805/hdoc
7. SlavaKron 30.07.20 09:03 Сейчас в теме
(6) В принципе не правильно получать какие-либо реквизиты, кроме ссылки, из ДанныеСтроки в ПриПолученииДанных. Поэтому получение реквизита ОплатаНаличными запросом по видимым ссылкам должно быть чем-то само собой разумеющимся.
5. andy_zhav 182 30.07.20 07:42 Сейчас в теме
(1) В свойствах динамического списка у поля "ОплатаНаличными" установите галку "Использовать всегда". После этого поле будет доступно в данных строки не зависимо от значения видимости
Оставьте свое сообщение
Вопросы с вознаграждением