|   |   | 
| 
 | v7: Как в отчете изменить цвет шрифта ячейки в зависимости от условия | ☑ | ||
|---|---|---|---|---|
| 0
    
        exec11 24.06.22✎ 12:43 | 
        1с 77
 Пробую делать так, но что то не получается. Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Цыкл ВыбОбласть = Таб.Область("R9C16"); ВыбОбласть.ЦветТекста(100,100,100) .... Таб.ВывестиСекцию("Строка"); КонецЦикла; Таб.ТолькоПросмотр(1); Таб.Показать("Мой отчет", ""); R9C16 - координаты ячейки, в конфигураторе, в табличке. | |||
| 1
    
        DCKiller 24.06.22✎ 12:56 | 
        Сначала выводи ячейку в таблицу, а потом в ней цвет меняй.     | |||
| 2
    
        uno-group 24.06.22✎ 12:56 | 
        нужно считать какая это ячейка в выведенной таблице а не в конфигураторе. если в шапке. 5 строк и потом пошли строки то для первой ячейки ("R6C16") потом "R7C16" и т.д.
 ну и сперва выводи | |||
| 3
    
        Fedor-1971 24.06.22✎ 12:57 | 
        пробуй сначала вывести, а потом менять цвет в выведенном, последнюю строку получишь через табДок.ВысотаТаблицы()     | |||
| 4
    
        uno-group 24.06.22✎ 12:58 | 
        можно типа Таб.Область("R"+таб.ВысотаТаблицы()+"C16"); чтобы не считать какая это строка     | |||
| 5
    
        Простенький вопросик 24.06.22✎ 13:02 | 
        Нефигасе, 7.7 еще существует и дорабатывается     | |||
| 6
    
        DCKiller 24.06.22✎ 13:04 | 
        (5) Ты не поверишь :-)     | |||
| 7
    
        Fedor-1971 24.06.22✎ 13:04 | 
        (4) Если предварительно не вывести строку, то покрасишь предыдущую     | |||
| 8
    
        andrewalexk 24.06.22✎ 13:05 | 
        (5) :) я тебе даже больше скажу - с текущими тенденциями платформостроения и конфигурациистроения ЗАО 1С эта ваша мантра будет вечной     | |||
| 9
    
        exec11 24.06.22✎ 13:05 | 
        Цикл
 .... Таб.ВывестиСекцию("Строка"); ВыбОбласть = Таб.Область("R15C15"); ВыбОбласть.ЦветТекста(100,100,100) КонецЦикла; Не помогло. Пробую хотя бы одну ячейку изменить. Выводится первая строка, 9 пустых, и дальше пошли строки. | |||
| 10
    
        Fedor-1971 24.06.22✎ 13:07 | 
        начни с "R1C1"     | |||
| 11
    
        uno-group 24.06.22✎ 13:09 | 
        текст в ячейке хоть есть     | |||
| 12
    
        uno-group 24.06.22✎ 13:11 | 
        А точно тебе надо с областями работать может проще по условию Выводить "Строка" или "СтрокаРаскрашенная" это обычно быстрее работает чем через область красить     | |||
| 13
    
        exec11 24.06.22✎ 13:21 | 
        Вот что получилось :
 ВыбОбласть = Таб.Область("R1C2"); ВыбОбласть.ЦветТекста(100,100,150); В заголовке, текст покрасился. ВыбОбласть = Таб.Область("R5C2"); Первая строка покрасилась. ВыбОбласть = Таб.Область("R6C2") Вторая строка покрасилась. ВыбОбласть = Таб.Область("R7C2") Третья строка стала пустой. ВыбОбласть = Таб.Область("R8C2") Третья и четвертая строка стала пустой. ВыбОбласть = Таб.Область("R8C2") Третья, четвертая и пятая строка стала пустой. | |||
| 14
    
        exec11 24.06.22✎ 13:23 | 
        На месте пустоты происходит как бы раздвигание строк.     | |||
| 15
    
        Fedor-1971 24.06.22✎ 13:32 | 
        (13) Ты вывел в табДок 8 строк?
 пробуй указать ячейку так: таб.Область(<R1>,<C1>) Крась фон через ЦветФона Похоже на то, что ещё раз выводишь область | |||
| 16
    
        exec11 24.06.22✎ 13:43 | 
        пн_стр = пн_стр + 1;
 Таб.ВывестиСекцию("Строка"); //ВыбОбласть = Таб.Область("R7C4"); ВыбОбласть = Таб.Область("R7","C4"); ВыбОбласть.ЦветТекста(100,100,150); ВыбОбласть.ЦветФона(50,150,50); Сообщить("== "+Строка(пн_гр)+" "+Строка(пн_стр)); == 1 1 == 1 2 == 1 3 == 1 4 == 1 5 == 1 6 == 1 7 == 1 8 == 1 9 == 1 10 == 1 11 ... Да, пустая строка окрашивается в зеленый на всю длину по горинзонтали в бесконечность. | |||
| 17
    
        exec11 24.06.22✎ 13:47 | 
        Но почему вся строка, а не ячейка ?     | |||
| 18
    
        Fedor-1971 24.06.22✎ 13:52 | 
        Таб.Область(пн_гр,4,пн_гр,4); - границы ячейки - цифры
 Возможно, есть косячок в платформе при определении ячейки | |||
| 19
    
        exec11 24.06.22✎ 14:02 | 
        Выделенная строка меняется на ячеку так :
 ВыбОбласть = Таб.Область("R7C3"); Промаркеровал весь макет отчета. Поставил "сообщить" во всех строках, которые могут хоть что то выводить. Пустая строка попадает в отчет. Маркеры никакие именно в строке не выскакивают. Чудеса. | |||
| 20
    
        exec11 24.06.22✎ 14:03 | 
        Кто эту строку может выводить ???     | |||
| 21
    
        exec11 24.06.22✎ 14:10 | 
        Отладчик, скорее всего тоже наверное не покажет, в какой момент это строка появляется ??     | |||
| 22
    
        Fedor-1971 24.06.22✎ 14:17 | 
        (21) Если только смотреть на ВысотаТаблицы()     | |||
| 23
    
        trad 24.06.22✎ 14:19 | 
        Если Таб.Область() обращается к области за пределами ВысотаТаблицы() / ШиринаТаблицы(), то таблица автоматически увеличивает высоту/ширину до указанных в Таб.Область()     | |||
| 24
    
        trad 24.06.22✎ 14:20 | 
        +(23) а ВывестиСекцию() всегда выводит за текущей высотой/шириной     | |||
| 25
    
        exec11 24.06.22✎ 14:51 | 
        Вообщем проблема как всегда была во мне.
 Я вывожу шестую строку и ("R6C2") - подкрашиваю. Она подкрашивается. Далее я вывожу снова шестую строку, а подкрасить пытаюсь седьмую, которой еще нету. ("R7C2") И мне 1с эту строку дорисовывает. Если вывести шестую строку а подкрасить ("R8C2") то 1с-ка нарисует не одну пустую строку, а две. Ну и остальные строки отчета, пойдут за пустыми строками. Во как оказалось. Всем спасибо за наВОДКУ ! ;) | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |