Имя: Пароль:
1C
1С v8
СКД и отчет
0 alexsandrinia
 
03.08.11
13:43
Всем привет! С помощью СКД получаю отчет в виде таблицы
Дт      Кт  
08.03    69.11
08.03    70
20.01.1    69.01
20.01.1    69.02.1
нужно чтоб с счетом 08.03 было одним цветом, а с 20.01.1 другим. и так надо чередовать с последующими счетами. Как можно реализовать?
1 Wobland
 
03.08.11
13:44
условное оформление подойдёт?
2 Wobland
 
03.08.11
13:45
3 alexsandrinia
 
03.08.11
13:46
(2) там никто не ответил. нет, условное оформление не пойдёт
4 Axel2009
 
03.08.11
13:47
(3) вручную заняться выводом в макет.
5 alexsandrinia
 
03.08.11
13:49
(4) а можно подробнее, не совсем понятно...
6 Axel2009
 
03.08.11
13:57
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   
   //В качестве схемы компоновки будет выступать схема самого отчета
   //В качестве настроек отчета - текущие настройки отчета
   //Данные расшифровки будем помещать в ДанныеРасшифровки
   Если ЗаполнятьДанныеРасшифровки Тогда
       МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, НастройкаКомпоновкиДанных, ДанныеРасшифровки, МакетОформления);
   Иначе
       МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, НастройкаКомпоновкиДанных, , МакетОформления);
   КонецЕсли;
   
   //Создадим и инициализируем процессор компоновки
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   Если ВнешниеНаборыДанных = Неопределено Тогда
       ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
   Иначе
       ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
   КонецЕсли;

   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(Результат);
   
   //Обозначим начало вывода
   ПроцессорВывода.НачатьВывод();
   //Основной цикл вывода отчета
   Пока Истина Цикл
       
       ОбработкаПрерыванияПользователя();
       //Получим следующий элемент результата компоновки
       ЭлементРезультата = ПроцессорКомпоновки.Следующий();
       
       Если ЭлементРезультата = Неопределено Тогда
           //Следующий элемент не получен - заканчиваем цикл вывода
           Прервать;
       Иначе
           
           //тут обработки, подправлять макет компоновки, если данные в элементе результата необходимый параметр сменился
           //(МакетКомпоновки, ДанныеРасшифровки, ЭлементРезультата);
           
           ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
       КонецЕсли;
   КонецЦикла;
   
   //Завершение вывода отчета
   ПроцессорВывода.ЗакончитьВывод();
7 alexsandrinia
 
03.08.11
13:59
(6) а в СКД это можно как-нибудь реализовать?
8 Axel2009
 
03.08.11
14:03
(7) просто нельзя. если сложно - соединять выборку саму на себя, запись+следующая запись. и играться. но этим заниматься - геморрой
9 alexsandrinia
 
03.08.11
14:07
(7) спасибо,буду знать!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший