Имя: Пароль:
1C
1С v8
Свойства ячейки табличного поля
0 ivorotnikov
 
31.05.16
11:19
Добрый день! Не получается обратиться правильно к свойствам ячейки таблицы. Есть код:

            НоваяСтрока = Табель.Добавить();
            НоваяСтрока.ФИО                                 = Выборка.ФИО;
            Сотр = Выборка.ФИО;
            ДатаДляТабеляВс = ДатаДляТабеля;
            Для Б = 2 по 32 Цикл
                Запрос2 = Новый Запрос;  
                Запрос2.Текст = "ВЫБРАТЬ
                                |    ТабельСлесари.Дата,
                                |    ТабельСлесари.Работник.ФИО,
                                |    ТабельСлесари.ВсегоОтрВремени,
                                |    ТабельСлесари.Ссылка
                                |ИЗ
                                |    Документ.ТабельСлесари КАК ТабельСлесари
                                |ГДЕ
                                |    ТабельСлесари.Дата МЕЖДУ &Дата1 И &Дата2
                                |    И ТабельСлесари.Работник.ФИО = &Сотр";
                Запрос2.УстановитьПараметр("Дата1", НачалоДня(ДатаДляТабеляВс));
                Запрос2.УстановитьПараметр("Дата2", КонецДня(ДатаДляТабеляВс));
                Запрос2.УстановитьПараметр("Сотр", Сотр);    
                Результат2 = Запрос2.Выполнить();
                Выборка2 = Результат2.Выбрать();
                Если Выборка2.Следующий() Тогда
                    НоваяСтрока[ЭлементыФормы.ТабельФорма.Колонки[Б].Имя] = Выборка2.ВсегоОтрВремени;
                    Если Выборка2.ВсегоОтрВремени = 0.1 Тогда
                        НоваяСтрока[ЭлементыФормы.ТабельФорма.Колонки[Б].ЦветФонаПоля] = WebЦвета.БледноЗеленый;
                    КонецЕсли;
                КонецЕсли;
                ДатаДляТабеляВс = ДатаДляТабеляВс + 24*60*60;
         
            КонецЦикла;

Хочу "выделить" ячейки, в которых значение 0.1, например изменением фона ячейки. В данном варианте получаю ошибку: {Документ.ВспомогательныйЗП.Форма.ФормаДокумента.Форма(74)}: Получение элемента по индексу для значения не определено
                        НоваяСтрока[ЭлементыФормы.ТабельФорма.Колонки[Б].ЦветФонаПоля] = WebЦвета.БледноЗеленый;

Подскажите, добрые люди!
1 HardBall
 
31.05.16
13:34
Привыводестроки, Приполученииданных
2 KulakoffAlex
 
31.05.16
14:34
какие формы обычные или управляемые ?
3 ivorotnikov
 
01.06.16
05:42
формы обычные.
4 Chameleon1980
 
01.06.16
07:35
тады ответ в 1
только лучше ПриПолученииДанных
5 ivorotnikov
 
01.06.16
12:21
Спасибо! Так и сделал. Переделал форму в управляемую и настроил оформление! :)
6 Charton
 
01.06.16
12:25
там есть что-то вроде активной ячейки
7 Zhuravlik
 
01.06.16
12:37
(0) "Для Б = 2 по 32 Цикл
   Запрос2 = Новый Запрос;" - ппц... В самом запросе счетчик никак не используется, зачем его выполнять каждый раз?
8 ivorotnikov
 
08.06.16
08:42
(7) Для Б = 2 по 32 Цикл
                Запрос2 = Новый Запрос;  
                Запрос2.Текст = "ВЫБРАТЬ
                                |    ТабельСлесари.Дата,
                                |    ТабельСлесари.Работник.ФИО,
                                |    ТабельСлесари.ВсегоОтрВремени,
                                |    ТабельСлесари.Ссылка
                                |ИЗ
                                |    Документ.ТабельСлесари КАК ТабельСлесари
                                |ГДЕ
                                |    ТабельСлесари.Дата МЕЖДУ &Дата1 И &Дата2
                                |    И ТабельСлесари.Работник.ФИО = &Сотр";
                Запрос2.УстановитьПараметр("Дата1", НачалоДня(ДатаДляТабеляВс));
                Запрос2.УстановитьПараметр("Дата2", КонецДня(ДатаДляТабеляВс));
                Запрос2.УстановитьПараметр("Сотр", Сотр);    
                Результат2 = Запрос2.Выполнить();
                Выборка2 = Результат2.Выбрать();
                Если Выборка2.Следующий() Тогда
                    НоваяСтрока[ЭлементыФормы.ТабельФорма.Колонки[Б].Имя] = Выборка2.ВсегоОтрВремени;
                    ЧасыОтр = ЧасыОтр + Выборка2.ВсегоОтрВремени;
                КонецЕсли;
                ДатаДляТабеляВс = ДатаДляТабеляВс + 24*60*60;
         
Дата1 и Дата2 меняется.
9 ivorotnikov
 
08.06.16
08:44
Процедура ТабельФормаПриПолученииДанных(Элемент, ОформленияСтрок)
    
    ЦветКрасный = Новый Цвет(255,130,124);
    
    
    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        Если ОформлениеСтроки.Ячейки.ДеньМесяца1.Текст = "0,1" Тогда
            ОформлениеСтроки.Ячейки.ДеньМесяца1.ЦветФона = ЦветКрасный;
        КонецЕсли;
        Если ОформлениеСтроки.Ячейки.ДеньМесяца2.Текст = "0,1" Тогда
            ОформлениеСтроки.Ячейки.ДеньМесяца2.ЦветФона = ЦветКрасный;
        КонецЕсли;
...
    КонецЦикла;

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

Вот так можно было окрасить ячейки Табличного поля по условию.
10 ivorotnikov
 
08.06.16
08:46
теперь бы еще придумать, как запихать в ячейку ссылку на документ. Спасибо за подсказки!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.