Как в СКД в шапке макета задать ячейку - параметр и при выводе заполнить #562164


#0 by egorover
Задаю Заголовке группировки ячейку параметр <Дата1>,но при выводе даёт ошибку {Форма.ФормаОтчета}: Ошибка при вызове метода контекста (Выполнить): Ошибка компоновки макета    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки); по причине: Ошибка компоновки макета по причине: Ошибка в выражении по причине: Синтаксическая ошибка а сам код вывода таков
#1 by egorover
вопрос - как правильно организовать заполнение макета Заголовка?
#2 by egorover
жаль, что так никого и не удалось услышать
#3 by PVV65
После вывода отчета можно написать следующее
#4 by egorover
сейчас попробую
#5 by egorover
нет не находит {Форма.ФормаОтчета}: Значение не является значением объектного типа (Текст)    Область.Текст = ТекущаяДата
#6 by egorover
#7 by Axel2009
в схеме компановки данных в макетах заполняй то что тебе надо
#8 by egorover
значение переменное зависит от параметра ДатаНач допустим
#9 by egorover
#10 by egorover
#11 by egorover
при выводе шапки Заголовка необходимо проставить значения недель
#12 by Axel2009
СхемаКомпоновкиДанных.Макеты[0].Макет[0].Ячейки[0].Элементы[0].Значение и подставляй что тебе надо.
#13 by Axel2009
не проще ли недели задать группировку столбцов - период понеделям?
#14 by Fragster
А через макет не айс, чтоли?
#15 by egorover
#16 by egorover
и вот у меня в шапке значениях таблицы ПросроченныйДолг1     ПросроченныйДолг2  .. ПросроченныйДолг41
#17 by egorover
и вместо этих значений нужно подставить значения недель
#18 by egorover
Как это? Это же Заголовок без значений, я знаю только что он выводится в макете6
#19 by PVV65
Проверь. Должно находить. У меня работает.
#20 by Axel2009
Макеты[0] - твой макет (определить тебе его нужно или задать имя макета, что гемор) Макет[0] - первая строка твоего макета Ячейки[0] - первая ячейка первой строки макета Элементы[0] - элемент ячейки Значение - тут хранится либо параметр либо строка, если строка - то тупо текст будет.
#21 by PVV65
+ ИМХО. Это очень простой способ редактирования результата.
#22 by egorover
можно полный текст кода...
#23 by egorover
Получение элемента по индексу для значения не определено
#24 by PVV65
Так полный приведен. Такое сообщение об ошибке будет если текст не найден. В этом случае ЭлементыФормы.Результат.НайтиТекст возвращает Неопределено.
#25 by egorover
так оно и есть, почему не находит мне и непонятно
#26 by egorover
Вот что тут не так?
#27 by Axel2009
делать это нужно не в момент вывода результата. а до формирования макета компоновки. после этого оперировать можно только параметрами..
#28 by Axel2009
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки); и далее по тексту без обработки процессора компоновки данных..
#29 by Axel2009
плюс ко всему элементрезультата может быть как Начало, Начало и Конец, Конец. обрабатывать надо только "Начало и Конец". остальные пропускать для обработки..
#30 by Axel2009
плюс ко всему где ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); ?
#31 by egorover
исправил
#32 by Axel2009
получилось в итоге то?
#33 by egorover
#34 by egorover
Только с номера Макетов
#35 by egorover
нужно разбираться
#36 by Axel2009
какой уровень содержит информацию по неделям?
#37 by egorover
СхемаКомпоновкиДанных.Макеты[0].Макет[0].Ячейки[10].Элементы[0].Значение = "ТЕСТ";
#38 by egorover
вот тут только попадает
#39 by egorover
а нельзя через цикл все значения просмотреть всех уровней дерева?
#40 by egorover
СхемаКомпоновкиДанных.Макеты[0].Макет[0].Ячейки[13].Элементы[0].Значение = "ТЕСТ"; и т.д. у меня ячейки объединены
#41 by Axel2009
ответа на я не увидел. уровни что у тебя получатся в выводе содержатся в МакетКомпоновки. там Тело ищи самый последний реквизит.
#42 by egorover
уровень группировки в макете? то первый
#43 by Axel2009
смотри СхемаКомпоновкиДанных.МакетыГруппировок, там ищи имя макета для своей группировки. потом в СхемаКомпоновкиДанных.Макеты ищи этот макет и запоминай его индекс. и его правь. если ячейки объединены, значит они объединены в макете СКД?
#44 by egorover
да, они объединены в макете
#45 by Axel2009
ну так разъедини.. а те что надо объединить по циклу объединишь потом
#46 by egorover
Да это я обошёл
#47 by egorover
Тут в понимании проблема, почему Макеты[0]? или Макеты[0].Макет[0], как определить индекс правильно?
#48 by egorover
а здесь ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий; макет по номером Макет6
#49 by Axel2009
в макетах СКД у тебя какие группировки?
#50 by egorover
Первая     Вторая          Третья
#51 by Axel2009
нет, я про основную схему компоновки данных. там макеты какие созданы?
#52 by egorover
Только один
#53 by egorover
ОсновнаяСхемаКомпановки и все
#54 by Axel2009
так. открываем основную схему компоновки данных. там закладка макеты. там чтонить заведено?
#55 by egorover
ааа, ну конечно
#56 by egorover
там макет Заголовок по первой группировке
#57 by egorover
как раз эта шапка которая должна выходить
#58 by Axel2009
вот, значит отладчиком смотри СхемаКомпоновкиДанных.МакетыЗаголовковГруппировок. тип макета там всегда заголовок. а полягруппировки - там массив (имя твоей группировки первой). там в реквизите Макет хранится ИмяМакета. по этому имени в СхемаКомпоновкиДанных.Макеты ищешь нужный макет. и отсюда у тебя получается Макеты[0]. Макет[0] номер строки твоего макета.
#59 by egorover
#60 by egorover
выложил
#61 by egorover
буду в дальнейшем редактировать
#62 by Axel2009
публикация неактивна..
#63 by egorover
извините, загрузил по новой.
#64 by egorover
Ну как бы вот так получилось, спасибо Axel2009 Процедура СформироватьОтчет(Кнопка)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям