|
Отчет СКД набор данных - объект | ☑ | ||
---|---|---|---|---|
0
StillEnough
05.10.15
✎
13:40
|
Доброго дня всем.
Сделал отчет в обработке по следующей логикой: 1. формирую таблицу значений в нужном виде 2. передаю в СКД и вывожу пользователю. Решил сделать перетащить на форму отчета (отчет же все - таки). Скопировал макет, перетащил код. Но в какую процедуру запихнуть старт формирования не знаю. Вопрос. Как при формировании отчета на СКД переопределить процедуру формирования (дописать свои правила) или другими свовами какая процедура вызывается при нажатии кнопки сформировать в форме отчета? |
|||
1
Nuobu
05.10.15
✎
13:43
|
(0) ПриКомпоновкеРезультата()
В модуле отчета. |
|||
2
StillEnough
05.10.15
✎
13:44
|
(1) пробовал, но вылетает ошибка, что я не передал в СКД таблицу для заполнения. Она передается позже, получается, чем пытается формироваться отчет.
|
|||
3
Nuobu
05.10.15
✎
13:45
|
(2) Пиши сюда код.
|
|||
4
StillEnough
05.10.15
✎
13:46
|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
тзРезервирование.Очистить(); //заполняю ТЗ данными ЭлементыФормы.Результат.Очистить(); Если тзДанныеДляОтчета.Количество()=0 Тогда Предупреждение("Данные не загружены или отсутствуют..."); Возврат; КонецЕсли; ВнешниеНаборыДанных=Новый Структура; ВнешниеНаборыДанных.Вставить("тзДанныеДляОтчета", тзДанныеДляОтчета); КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных; Настройки=КомпоновщикНастроек.ПолучитьНастройки(); МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки); ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки); ДокументРезультат=ЭлементыФормы.Результат; ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата=ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата=Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); ДокументРезультат.ОтображатьСетку=Ложь; ДокументРезультат.ОтображатьЗаголовки=Ложь; ДокументРезультат.Показать(); |
|||
5
StillEnough
05.10.15
✎
13:49
|
(4) ВнешниеНаборыДанных.Вставить("тзДанныеДляОтчета", тзДанныеДляОтчета); суть в этой строке. Передаю заполненную структуру для заполнения СКД. И вот этой структуры не хватает когда я нажимаю сформировать.
|
|||
6
Nuobu
05.10.15
✎
13:50
|
(4) СтандартнаяОбработка = Ложь;
Где? |
|||
7
StillEnough
05.10.15
✎
13:52
|
(6) Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; сделал так - результат тот же |
|||
8
Nuobu
05.10.15
✎
13:55
|
(7) Покажи код ошибки.
|
|||
9
StillEnough
05.10.15
✎
13:56
|
(8) Ошибка исполнения отчета
по причине: Ошибка инициализации по причине: Ошибка создания набора данных "Основной" по причине: Не найден внешний набор данных "тзДанныеДляОтчета" |
|||
10
StillEnough
05.10.15
✎
14:01
|
Вообщем решил голову не глумить, создаю свою кнопку, стандартную удалил и все взлетело. Вопрос закрыт.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |