|
СКД программный вывод | ☑ | ||
---|---|---|---|---|
0
ice123
13.06.13
✎
11:53
|
Доброе время суток!
Только начинаю разбираться с СКД, отсюда тупые вопросы, поэтому сильно не ругайтесь. Есть задача, в которой необходимо в отчет вывести столько строк, сколько указано в поле "Количество" ТЧ Документа, т.е. если указано 5, то и в отчет надо вывести 5. Вопрос собственно вот какой: как программно вывести в СКД обработанный в цикле результат запроса? |
|||
1
Wobland
13.06.13
✎
11:54
|
заставь СКД самостоятельно получать данные
|
|||
2
vicof
13.06.13
✎
11:55
|
"необходимо в отчет вывести столько строк, сколько указано в поле "Количество" ТЧ"
зачем? давай задачу полностью |
|||
3
ice123
13.06.13
✎
11:56
|
(2) в документе в поле "Количество" табличной части указано какое-то количество одной строкой, так вот в отчет надо выводить столько строк, сколько указано в поле "Количество" в документе.
|
|||
4
ice123
13.06.13
✎
11:57
|
(1) перечитал Хрусталеву, ну никак не пойму, как это можно сделать
|
|||
5
ice123
13.06.13
✎
11:59
|
мне бы кусочек кода, в качестве примера, как вообще это выводится программно?
|
|||
6
zladenuw
13.06.13
✎
12:01
|
(5) можешь вывести в таблицу значений и размножить строки как тебе надо.
|
|||
7
zladenuw
13.06.13
✎
12:01
|
||||
8
ice123
13.06.13
✎
12:02
|
(5) а как потом эту ТЗ запихнуть в СКД?
|
|||
9
Wobland
13.06.13
✎
12:04
|
(3) давай задачу полностью
|
|||
10
zladenuw
13.06.13
✎
12:06
|
(8) через внешний источник.
КомпоновщикМакетаА = Новый КомпоновщикМакетаКомпоновкиДанных; СхемаКомпоновкиДанныхА = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1"); КомпоновщикНастроекА = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекА.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанныхА)); ДанныеРасшифровкиА = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикНастроекА.ЗагрузитьНастройки(СхемаКомпоновкиДанныхА.НастройкиПоУмолчанию); ЗаполнитьНастройки(КомпоновщикНастроекА.Настройки.ПараметрыДанных); // МакетКомпоновки = КомпоновщикМакетаА.Выполнить(СхемаКомпоновкиДанныхА,КомпоновщикНастроекА.Настройки,ДанныеРасшифровкиА,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); // тз = новый ТаблицаЗначений; ПроцессорКомпоновкиА = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиА.Инициализировать(МакетКомпоновки,,ДанныеРасшифровкиА); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(тз); ПроцессорВывода.Вывести(ПроцессорКомпоновкиА); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ФормулыПериод = Истина; //Заменить имена колонок МассивКолонок = Новый Массив(); ЗаменаИменКолонок(МассивКолонок); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,ДанныеРасшифровки); ПостроениеЗапросаПоФормулеБюджета(ЭлементыФормы.Год.Значение,ЭлементыФормы.МесяцН.Значение,ЭлементыФормы.МесяцК.Значение,ЭлементыФормы.Подразделение.Значение,тз,ФормулыПериод); ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТЗ",тз); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки,Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); |
|||
11
ice123
13.06.13
✎
12:06
|
(9) Есть продажи по номенклатуре, за период надо вывести всю номенклатуру, которая продавалась, при этом если в документе указана номенклатура одной строкой!!! в количестве 5 штук, то в отчете эта номенклатура должна повториться 5 строками.
|
|||
12
Wobland
13.06.13
✎
12:07
|
(11) специально для прапорщиков?
|
|||
13
ice123
13.06.13
✎
12:07
|
(10)ОГРОМНЕЙШЕЕ СПАСИБО! вот уже что-то!!!
|
|||
14
ice123
13.06.13
✎
12:08
|
(12) ну кто его знает, зачем им так понадобилось....
|
|||
15
ice123
13.06.13
✎
12:08
|
(12)и при этом всем еще и на СКД
|
|||
16
Wobland
13.06.13
✎
12:11
|
(14) боюсь спросить, не спичками ль в розницу торгуете?
|
|||
17
ice123
13.06.13
✎
12:11
|
(16) нет... техника посерьезней
|
|||
18
ice123
17.06.13
✎
14:39
|
Продолжение истории:
написал код: ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("Использовать", Истина); ТЗРезультат = ТЗ.Скопировать(ПараметрыОтбора, "Модель, СерийныйНомер, КомуПродано, КонечныйКлиент, ДатаПродажи"); // ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; // Создаем данные расшифровки КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; // Создаем компоновщик макета // Инициализируем макет компоновки используя схему компоновки данных // и созданные ранее настройки и данные расшифровки СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1"); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); // // Скомпонуем результат ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;// Передаем таблицу в процессор компоновки ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, Новый Структура("ТЗРезультат", ТЗРезультат), ДанныеРасшифровки); // //ДокументРезультат.Очистить(); // // Выводим результат в табличный документ ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); при этом почему-то в ТЗ выводится так, как мне надо, а вот в макет СКД совсем не так... как это передаелать? |
|||
19
Wobland
17.06.13
✎
14:49
|
очевидно, переделать это нужно так, чтобы было совсем так
|
|||
20
ice123
17.06.13
✎
14:53
|
(19) непонятно... что нужно свой макет делать?
|
|||
21
zladenuw
17.06.13
✎
15:11
|
не так это как ? настройки вывода сделай свои
|
|||
22
ice123
17.06.13
✎
15:38
|
(21)у меня есть 3 повторяющиеся строки в таблице значений + 2 строки с разными сериями, а вот в СКД выводятся задвоенные строки с сериями и 1 строка вместо 3 одинаковых
|
|||
23
ice123
17.06.13
✎
15:38
|
(21) как эти настройки сделать?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |