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

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. comptr 30 30.07.20 07:41 Сейчас в теме
(3) по-моему, если данные нужны всегда, то и колонка должны быть видна всегда.
Кажется, должен сработать подобный код:
ЭлементыФормы.ТабличноеПоле.Колонки.ОплатаНаличными.ИзменятьНастройку = Ложь;

Тащить данные из Ссылки - слишком затратно, так как при этом будет происходить чтение всего объекта, со всеми табличными частями и прочим, каждый раз, когда будет скролиться список, каждого документа, который виден в списке.
6. comptr 30 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 197 30.07.20 07:42 Сейчас в теме
(1) В свойствах динамического списка у поля "ОплатаНаличными" установите галку "Использовать всегда". После этого поле будет доступно в данных строки не зависимо от значения видимости
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)