8.х Выделение строк макета, в зависимости от условия

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Pavel2009, 27 июн 2013.

  1. TopicStarter Overlay
    Pavel2009
    Offline

    Pavel2009 Опытный в 1С

    Регистрация:
    11 окт 2010
    Сообщения:
    183
    Симпатии:
    0
    Баллы:
    26
    Доброй уже ночи коллеги. Подскажите как в макете, можно выделить строки (жирным цветом) при печати документа, для строки с одинаковым значением . Придумал так создал две строки , одну обычную другую жирную, и в зависимости от условия буду выводить на печать, но алгоритм сравнения строк ну ни как не идет.


    Код:
     // Товары
    Область = Макет.ПолучитьОбласть("ТоварыШапка");
    ТабДок.Вывести(Область);
    ОбластьТовары = Макет.ПолучитьОбласть("Товары");
    ОбластьТовары1 = Макет.ПолучитьОбласть("Товары1");
    Для Каждого ТекСтрокаТовары Из ПланированиеСмены Цикл
    
    
    ОбластьТовары.Параметры.Заполнить(ТекСтрокаТовары);
    ОбластьТовары.Параметры.СхемаЗавески = ТекСтрокаТовары.СхемаЗавески + " = " + ТекСтрокаТовары.КоличествоЗавески;
    ОбластьТовары.Параметры.НавескаНачало = Формат(ТекСтрокаТовары.НавескаНачало,"ДЛФ=T");
    ОбластьТовары.Параметры.НавескаОкончание = Формат(ТекСтрокаТовары.НавескаОкончание,"ДЛФ=T");
    ОбластьТовары.Параметры.Номенклатура = Номенклатура;
    
    ОбластьТовары1.Параметры.Заполнить(ТекСтрокаТовары);
    ОбластьТовары1.Параметры.СхемаЗавески = ТекСтрокаТовары.СхемаЗавески + " = " + ТекСтрокаТовары.КоличествоЗавески;
    ОбластьТовары1.Параметры.НавескаНачало = Формат(ТекСтрокаТовары.НавескаНачало,"ДЛФ=T");
    ОбластьТовары1.Параметры.НавескаОкончание = Формат(ТекСтрокаТовары.НавескаОкончание,"ДЛФ=T");
    ОбластьТовары1.Параметры.Номенклатура = Номенклатура;
    
    
    
    Для каждого СтрокаТЧ Из ПланированиеСмены Цикл
    СтруктураНомХарЕд = Новый Структура;
    СтруктураНомХарЕд.Вставить("НомерТраверсы", СтрокаТЧ.НомерТраверсы);
    //ВыборкаПоТЧ.Сбросить();
    Если ПланированиеСмены.НайтиСтроки(СтруктураНомХарЕд) Тогда // массив не знаю как сравнить
    ТабДок.Вывести(ОбластьТовары1);
    Иначе
    ТабДок.Вывести(ОбластьТовары);
    
    КонецЕсли;
    КонецЦикла;								  
    
    
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.991
    Симпатии:
    399
    Баллы:
    104
    Как вариант. При выводе в макет, т.е. когда цикл перебирается ищутся одинаковые строки и записываются в ячейку с каким нибудь идентификатором. Т.е., к примеру, значение равно 2000. А вы еще добавляете че нибудь. Примерно так. 2000 длыфвоаждывлфаоыждалывоажыдлаыофждлоажыоалд. Далее, после команды ТабДок.Показать(); Пробегаетесь методом найти() по табличному полю и ищите все ячейки с "длыфвоаждывлфаоыждалывоажыдлаыофждлоажыоалд". Получаете, высчитываете номера ячеек во всей строке и ставите жирный цвет. Вот и все.

    А и значение конечно же меняете на нормальное.

    Т.е. убираете "длыфвоаждывлфаоыждалывоажыдлаыофждлоажыоалд".

Поделиться этой страницей