Имя: Пароль:
1C
1С v8
Как поймать вывод строки в отчет при программном формировании отчета на СКД?
,
0 DSSS
 
22.09.11
16:32
Доброго дня. Или вечера?..
Если отчет на СКД формируется программно, как достучаться до свойств выводимых в отчет ячеек и изменить их? т.е. как вот в этом месте
ПроцессорВывода.НачатьВывод();
   Пока Истина Цикл
       ЭлементРезультата = ПроцессорКомпоновки.Следующий();
       Если ЭлементРезультата= Неопределено Тогда
           Прервать;    
       КонецЕсли;
       ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
   КонецЦикла;
   ПроцессорВывода.ЗакончитьВывод();
получить ячейки таб документа?
Спасибо.
1 Maxus43
 
22.09.11
16:34
а задача какая? СКД-хой почти всё можно сделать без доп плясок с бубном...
2 Defender aka LINN
 
22.09.11
16:35
(0) Нахрена? О_о
3 Maxus43
 
22.09.11
16:40
у меня был такой случай, но я тогда и скд готовить не умел, а к ТабДоку уже после вывода обращался и поиском искал ячейки :)
4 DSSS
 
22.09.11
16:42
(1), (2) Я сейчас объясню. Если подскажите иное решение сабжа, буду благодарен. Итак.
Есть внешняя обработка, у нее есть 2 СКД (не макеты! эти СКД получаются в форме при формировании отчета из внешних источников), на базе которых формируется 2 отчета, и эти отчеты выводятся в один табличный документ на форме обработки. Все формируется программно. Вопрос вот в чем: вот после того как отчеты сформированы, как сделать разную расшифровку, в зависимости от того, по какой ячейке кликает пользователь: по ячейке, которая относится к СКД 1 или по ячейке, которая относится к СКД 2?
Вот я не знаю, как имея в параметрах процедуры РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) только Элемент понять, к какой скд он относится. Вот и подумалось, что если установить всем ячейкам относящимся к СКД 1 какое-то общее свойство, то потом по этому свойству можно понять к какой СКД относится ячейка. Это в примере 2 отчета, на самом деле их больше.
5 DSSS
 
22.09.11
16:43
Это общее св-во и предполагаю установить при программном формировании. Если есть способ установить на все ячейки разом, тогда вообще отлично:)
6 DSSS
 
22.09.11
16:46
(3) У задачи, что я описал в (4) есть решения, но вот элегантного я пока не знаю:)
7 IronDemon
 
22.09.11
16:53
Поля есть уникальные для двух СКД?
8 DSSS
 
22.09.11
16:56
(7) Если речь идет о том, что в одном отчете ведомость по остаткам на складах, а в другом ведомость по взаиморасчетам, то нет - и там и там в строках номенклатура, только разная, в ресурсах количество из разных источников. Или речь о другом?
9 IronDemon
 
22.09.11
16:58
(8) Об этом :(
10 IronDemon
 
22.09.11
17:00
(8) Но, "количество из разных источников" можешь по разному назвать?
11 DSSS
 
22.09.11
17:02
(9) Назвать по разному? скорее да чем нет) Даже если они везде называются остаток, то пусть "Остаток" будет в шапке, а на самом деле это будет "Остаток1", "Остаток2" и т.п. тоже с полями. А как это может помочь?
12 IronDemon
 
22.09.11
17:08
(11) Вот :)
13 IronDemon
 
22.09.11
17:09
Контрагент = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("Контрагент");
ДоговорКонтрагента = ДанныеРасшифровки.Элементы[Расшифровка].ПолучитьРодителей()[0].ПолучитьПоля().Найти("ДоговорКонтрагента");
14 IronDemon
 
22.09.11
17:09
15 DSSS
 
22.09.11
17:13
(13) Спасибо большое! сейчас попробую.
16 DSSS
 
22.09.11
17:29
Похоже что не помогает... дело вот в чем:
//ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
ДанныеРасшифровки = Неопределено;
КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки, ДанныеРасшифровки);
выполняется несколько раз. Разная только СКД. В ДанныеРасшифровки попадают разные данные, но как обратиться к ним, имея уже сформированные отчеты и ячейку табличного документа, относящуюся непонятно к какому отчету?... та же проблема что и с получением схемы, похоже свернули на те же рельсы..
17 DSSS
 
22.09.11
17:47
подниму
18 Shurjk
 
22.09.11
17:48
(0) Месье знает толк в извращениях.
19 DSSS
 
22.09.11
17:49
(18) А по делу есть что сказать?
20 Shurjk
 
22.09.11
17:50
(19) можешь после вывода пробегать табличный документ и изращаться.
21 DSSS
 
22.09.11
18:00
(20) Лучше сразу записать св-во ячейки, чтобы потом, зная его расшифровать.
22 DSSS
 
22.09.11
18:21
Если у кого есть иные мысли насчет того, как имея ячейку таб. документа получить СКД из которой сформирован этот участок отчета, поделитесь.
23 acsent
 
22.09.11
18:23
После вывода первой скд запоминать высоту таблицы
24 DSSS
 
22.09.11
18:24
(23) Тоже вариант, один пока что из самых простых и красивых:)
25 Defender aka LINN
 
22.09.11
18:55
(16) Запоминай высоту документа и храни все ДанныеРасшифровки отдельно. Делов-то.