helpf.pro
Регистрация

v8: Работа со строками

Ermak
13.05.2012 15:02Прочитано: 5880
Работаю с ФормойСписка, можете показать пример если строка желтого цвета тогда пользователь Петров ее не видет иначе видет
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
14.05.2012 00:45Ответ № 1
(0) Ermak, отбор нужно делать по данным, а не по цвету...
смотри в коде, в каком случае строка становится желтой.. и устанавливай такой же отбор
Ermak
14.05.2012 13:26Ответ № 2
Вот код

Код 1C v 8.х
 Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

Если ДанныеСтроки.Проверено = Истина Тогда
ОформлениеСтроки.ЦветФона = WEBЦвета.Желтый;
ЭтаФорма.Отбор.Проверено.Значение = Ложь;
ЭтаФорма.Отбор.Проверено.Использование = Истина;

КонецЕсли;

КонецПроцедуры


Проверено имеет тип булевский, почему то выдает ошибку


{Документ.ВнутреннийЗаказ.Форма.ФормаСписка.Форма(103)}: Значение не является значением объектного типа (Проверено)
Если ДанныеСтроки.Проверено = Истина Тогда
Farmar
14.05.2012 16:09Ответ № 3
Это по-моему бред. Я конечно не знаток, но тут что-то не так. Ты же как то присваиваешь строке желтый цвет, вот и показывай только те которым бы присвоил его, а не уже желтые, так вернее будет.
Ermak
14.05.2012 16:52Ответ № 4
Можно сделать без присвоения желтого цвета

Код 1C v 8.х
 Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

Если ДанныеСтроки.Проверено = Истина Тогда
//ОформлениеСтроки.ЦветФона = WEBЦвета.Желтый;
ЭтаФорма.Отбор.Проверено.Значение = Ложь;
ЭтаФорма.Отбор.Проверено.Использование = Истина;

КонецЕсли;



КонецПроцедуры


Все равно такая же ошибка! Проверено реквизит имеет булевский тип
Farmar
14.05.2012 17:16Ответ № 5
А через значение заполненно не получиться?
E_Migachev
14.05.2012 17:17Ответ № 6
Через конфигуратор проверь ДанныеСтроки.Проверено - что за реквизит когда выдает ошибку
Ermak
14.05.2012 17:18Ответ № 7
РЕквизит типа булевского
E_Migachev
14.05.2012 17:36Ответ № 8
А когда выдает ошибку, значит не булево... проверь документ на который ругаетя.. и вообще все документы.. скорее всего это реквизит создали не так давно и в некоторых доках пустое значение
Ermak
14.05.2012 17:48Ответ № 9
Пустое значение есть у реквизита Проверено так как может быть проверено а может быть и нет (истина и ложь), я решил по другому сделать

Код 1C v 8.х
 Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

Если ДанныеСтроки.Проверено = Истина Тогда
ОформлениеСтроки.ЦветФона = WEBЦвета.Желтый;
КонецЕсли;

Если ДанныеСтроки.Подпись = Истина Тогда
ЭтаФорма.Отбор.Проверено.Значение = Ложь;
ЭтаФорма.Отбор.Проверено.Использование = Истина;
КонецЕсли;

КонецПроцедуры

Стал делать отбор по другой колонки и все равно ошибка

{Документ.ВнутреннийЗаказ.Форма.ФормаСписка.Форма(103)}: Значение не является значением объектного типа (Проверено)
Если ДанныеСтроки.Проверено = Истина Тогда


Если комментировать код

Код 1C v 8.х
 Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

Если ДанныеСтроки.Проверено = Истина Тогда
ОформлениеСтроки.ЦветФона = WEBЦвета.Желтый;
КонецЕсли;

//Если ДанныеСтроки.Подпись = Истина Тогда
// ЭтаФорма.Отбор.Проверено.Значение = Ложь;
// ЭтаФорма.Отбор.Проверено.Использование = Истина;
//КонецЕсли;

КонецПроцедуры

тогда все нормально ошибок не выдает.
В чем дело не понимаю!
E_Migachev
14.05.2012 18:17Ответ № 10
(9) Ermak, Чудеса *17
Тестирование и Исправление БД сделай
Ermak
14.05.2012 20:26Ответ № 11
сделал не помогло *08
Mokey
16.05.2012 10:20Ответ № 12
Так несовсем понятно, на ПРОВЕРЕНО или на ПОДПИСАНО ругается? Эти реквизиты должны присутствовать в форме списка, если не нужно показывать - то сделать невидимыми с запретом изменения видимости. Тогда и в ДАННЫЕСТРОКИ эти реквизиты появятся.
Ermak
16.05.2012 10:23Ответ № 13
Ругается на Проверено. они присутствуют в списке

Как сделать невидимыми с запретом?
E_Migachev
16.05.2012 11:20Ответ № 14
Если в отладчике посмотреть ДанныеСтроки, в нем есть реквизит Проверено ?
Mokey
16.05.2012 11:42Ответ № 15
А, присмотрелся, в отборе нет ПРОВЕРЕНО, копайте в эту сторону. ЭтаФорма.Отбор - вообще неправильная запись. ЭлементыФормы.Список.Отбор.Проверено - вот так будет правильно!
Ermak
16.05.2012 12:08Ответ № 16
(14) E_Migachev, Я не знаю как это сделать! Но в реквизитах есть Проверено

(15) Mokey, В списке документов можно сделать отбор по Проверено. Попробовал вариант как вы написали выдает ошибку

{Документ.ВнутреннийЗаказ.Форма.ФормаСписка.Форма(108)}: Поле объекта не обнаружено (Отбор)
ЭлементыФормы.Список.Отбор.Проверено.Значение = Ложь;


Код 1C v 8.х
 Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)

Если ДанныеСтроки.Проверено = Истина Тогда
ОформлениеСтроки.ЦветФона = WEBЦвета.Желтый;
КонецЕсли;

Если ДанныеСтроки.Подпись = Истина Тогда
ЭлементыФормы.Список.Отбор.Проверено.Значение = Ложь;
ЭлементыФормы.Список.Отбор.Проверено.Использование = Истина;
КонецЕсли;

КонецПроцедуры
Mokey
16.05.2012 12:32Ответ № 17
хорошо, а поле списка на форме с каким реквизитом связано?
может, надо пробовать так:
Список.Отбор.Проверено.Значение = Ложь;
Список.Отбор.Проверено.Использование = Истина;
Mokey
16.05.2012 12:35Ответ № 18
кстати, при выводе строки неправильно формируете. Отбор делать на каждую строку... нельзя так делать, иначе постоянно отбор меняться будет, например, в первой строке Подпись = Истина, отбор на список установился, во второй строке Подпись = Ложь - отбор сбросился. Если Вы хотите скрывать строки какие-то, то при выводе строки это не делают.
Mokey
16.05.2012 12:39Ответ № 19
можно оформить так:
Код 1C v 8.х
 
Процедура ПриОткрытии()
Список.Отбор.Проверено.Значение = Ложь;
Список.Отбор.Проверено.Использование = Истина;
КонецПроцедуры

т.е. скрываем строки, в которых ПРОВЕРЕНО = ИСТИНА

Но лучше, конечно, вывести установку отборов в отдельную процедуру и вызывать её при необходимости, например, при обновлении отображения
Изменено 16.05.12 12:41:06
Ermak
16.05.2012 12:40Ответ № 20
(18) Mokey, Да вы правы подпись существует не во всех строчка, а как тогда сделать если нужно убрать строчки в который подпись = истина? Можно пример.
Mokey
16.05.2012 12:41Ответ № 21
(20) Ermak, выше написал уже
Ermak
16.05.2012 12:49Ответ № 22
Спасибо большое разобрался!!!
Сделал немного не так потому, что выдавала ошибку

Код 1C v 8.х
 ЭтаФорма.Отбор.Проверено.Значение = Истина;
ЭтаФорма.Отбор.Проверено.Использование = Истина;
Ermak
16.05.2012 12:49Ответ № 23
Вопрос закрыт!
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.