Имя: Пароль:
1C
1С v8
ПриВыводеСтроки() в списке регистра сведений глючит
0 Антиквар
 
25.08.11
15:55
Всем привет!
На форме вывожу список регистра сведений. В зависимости от значения одного поля в этом регистре я должен раскрасить строку, но само поле выводить не должен.
Делаю как обычно:
Процедура ТабПолеПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   Если ЗначениеЗаполнено(ДанныеСтроки.Номенклатура) Тогда
   КонецЕсли;
КонецПроцедуры

Ругается:
Поле объекта не обнаружено (Номенклатура)

Хотя этот реквизит есть в регистре и есть на форме в списке, но невидимый. Почему-то ДанныеСтроки содержит в себе только видимые колонки.
С другими объектами такой проблемы вроде нет, во всяком случае в табличной части документа так делал и в обработках в табличных частях так делал, все работает. А вот с регистром сведений такая бяка. Это нормально?
1 Mort
 
25.08.11
16:19
Никак. Но по логике либо все измерения либо видны, либо по тем которые не видны установлен отбор. Короче говоря, обычно можно собрать ключ записи, а там уже выяснить ресурсы.
2 Aprobator
 
25.08.11
16:25
нефига не понял - ДанныеСтроки не посмотреть отладчиком?
3 Aprobator
 
25.08.11
16:26
на худой конец
ОформлениеСтроки.Ячейки.Номенклатура - кажется так.
4 Aprobator
 
25.08.11
16:26
а млин, если невидимый то мимо.
5 qwerty09
 
25.08.11
16:27
(0) отладчиком смотри
6 zbv
 
25.08.11
16:39
(0) в форме списка все колонки сделай видимыми, а уже в при открытии убери видимость. тогда будут доступны невидимые строки.
7 Mort
 
25.08.11
16:40
(6) Даже если пользователь снимет видимость, они уходят из ДанныеСтроки.
8 Широкий
 
25.08.11
16:44
Нужно отключить автоудаление колонок.
Вот пример

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
       Колонка=ДокументСписок.Колонки.Найти("Контрагент");
   Если Колонка=Неопределено Тогда
       ДокументСписок.Колонки.Добавить("Контрагент",Ложь);
   Иначе
       Колонка.АвтоУдаление=Ложь;
   КонецЕсли;
КонецПроцедуры
9 shuhard
 
25.08.11
16:44
(7) свойство есть у колонки, устанавливается программно и выводит невидимые реквизиты в данныестроки
10 zbv
 
25.08.11
16:46
(7) хм-м... а вообще как то странно работает...

в привыводе:
   Попытка
       Сообщить(ДАнныеСтроки.РеквизитСтрока);
   Исключение
       Сообщить("Нет реквизита");
   Конецпопытки;





Нет реквизита
125
125
Нет реквизита
Нет реквизита
125
125
Нет реквизита
11 zbv
 
25.08.11
16:51
(10) хотя нет... нормально ведет. Значение показывает, когда в редактирование проваливаюсь..
12 Антиквар
 
25.08.11
17:23
Я отладчиком ДанныеСтроки и смотрел. Те, что невидимые, не содержатся в данных строки. Хотя тоже самое делал в ТЧ документов и обработок, там работало.
(3) ОформлениеСтроки.Ячейки.Номенклатура - так отладчиком тоже смотрел. Номенклатура доступна, но в ней реквизит Текст не заполнен несмотря на то, что ссылка есть. Другого ничего не обнаружил, к чему прицепиться можно.
(6),(8) - попробую, спасибо! Может программно и решится что-то.
13 Aprobator
 
25.08.11
17:44
ппц - хоть построителем в табличный документ выводи.
14 Антиквар
 
25.08.11
18:19
(13) Не понял?
(8) Спасибо, только Ваш способ и помог. Заработало!
Только вот я даже в хелпе не нашел такого способа добавления колонок.
15 shuhard
 
25.08.11
18:24
(14) v8: По мотивам Проф.разработки: Как применить свойство колонки списка Автоудале
первым Радчено или Габец в книжках ещё по 8.0 приводили этот фокус
16 Aleksey12
 
04.09.11
23:31
ПриВыводеСтроки() табличного поля должен быть выход на ссылку текущей выводимой строки справочника (регистра сведений, таб. части документа), которая давала бы выход на реквизиты объекта. Но что-то я такой ссылки не нашел.
17 Aleksey12
 
04.09.11
23:44
Получается, чтобы получать значения колонки, которую не нужно выводить в табличное поле, один выход добавить эту колонку невидимой? Потому что тех данных, которых нет в табличном поле получить не удастся - замуровали? Или кто-нибудь нашел?
18 Aprobator
 
05.09.11
10:21
видимо так. Нужно будет взять себе на заметку.