|
Отчет за разные периоды | ☑ | ||
---|---|---|---|---|
0
Марина Викторовна
06.09.11
✎
09:55
|
Можно ли реализовать возможность пользователю формировать отчет на СКД за дискретные периоды, т.е. например за январь 2009, январь 2010, январь 2011 в одном отчете для сравнения данных периодов?
|
|||
1
ZanderZ
06.09.11
✎
10:11
|
ну типа отбор по периоду в группу ИЛИ запихать или....
|
|||
2
Ненавижу 1С
гуру
06.09.11
✎
10:12
|
можно
|
|||
3
Ненавижу 1С
гуру
06.09.11
✎
10:12
|
я сделал такое на универсальном отчете, а СКД тем более может
|
|||
4
Goggy
06.09.11
✎
10:12
|
Можно.
|
|||
5
Goggy
06.09.11
✎
10:13
|
ёк макарёк, опоздал))
|
|||
6
Марина Викторовна
06.09.11
✎
10:19
|
Нужно сделать чтобы выбирался месяц (месяцы), а по ним отбирались за несколько лет данные. как это сделать?
|
|||
7
nicxxx
06.09.11
✎
10:20
|
наверно проще всего будет использовать внешний источник данных, а таблицу значений этого источника заполнять программно
|
|||
8
Марина Викторовна
06.09.11
✎
10:33
|
(7) можно поподробнее? я с таким еще не сталкивалась...
|
|||
9
nicxxx
06.09.11
✎
10:35
|
поподробней у Хрусталевой. а пример вывода пожалуйста:
//здесь идет описание текста запроса, он у вас будет свой //а далее вывод результата в СКД РезультатЗапроса = Запрос.Выполнить(); ТаблицаБДР = РезультатЗапроса.Выгрузить(); //ТаблицаБДР = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);//так нельзя, 1С падает ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("ТаблицаБДР", ТаблицаБДР); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; Схема = Отчеты.БюджетДоходовИРасходов_ИстДанн_Объект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Отчет.КомпоновщикНастроек.Настройки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных,,Истина); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); //убирает надпись "Отчет не сформирован" Элементы.Результат.ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.НеИспользовать; Элементы.Результат.ОтображениеСостояния.Видимость = Ложь; Результат.Очистить(); ПроцессорВывода.Вывести(ПроцессорКомпоновки); |
|||
10
Марина Викторовна
06.09.11
✎
10:45
|
получается именно в запросе надо задать периоды? у меня именно с периодами проблема
|
|||
11
nicxxx
06.09.11
✎
10:57
|
да, в запросе.
можно выбрать данные за все года и свернуть по месяцам, а затем в условии запроса написать что-то вроде "Где Период в &СписокПериодов", но это увеличит время работы запроса. можно сделать несколько запросов и по очереди слить их в таблицу значений |
|||
12
Марина Викторовна
06.09.11
✎
11:11
|
Спасибо, попробую это сделать
|
|||
13
Марина Викторовна
06.09.11
✎
11:52
|
А если сделать несколько наборов данных с разными периодами? а потом эти периоды выбирать, так не лучше будет?
|
|||
14
nicxxx
06.09.11
✎
12:57
|
ну если тебе так проще... хотя мне кажется, когда все в одном месте описано, как-то легче разбиратьс
|
|||
15
Марина Викторовна
08.09.11
✎
11:32
|
Делаю набор данных объект, определяю параметры ДатаНач и ДатаКон, в модуле объекта пытаюсь получить их
ДатаНач = НастройкиКомпоновки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНач")); ДатаКон = НастройкиКомпоновки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаКон")); а у меня значение показывает 01.01.0001, хотя я в форме отчета задаю параметры эти как начало и конец текущего месяца |
|||
16
nicxxx
09.09.11
✎
10:00
|
если у тебя эти параметры определены как пользовательские , т.е. доступны из формы, то надо определять именно пользовательские параметры, вот здесь : Отчет.КомпоновщикНастроек.ПользовательскиеНастройки
а у тебя НастройкиКомпоновки откуда берутся? если же эти параметры пользователю не доступны, то вот так должно работать: Эл2 = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода"); Эл2.Значение = НачалоГода(Год); Эл2.Использование = Истина; Эл2 = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода"); Эл2.Значение = КонецГода(Год); Эл2.Использование = Истина; //переменная Год у меня определена ранее |
|||
17
chingiz
09.09.11
✎
10:42
|
У меня в форме сделано так:
Процедура НачалоПериодаПриИзменении(Элемент) ДатаНач = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода"); ДатаНач.Значение = Новый СтандартнаяДатаНачала; ДатаНач.Значение.Вариант = ВариантСтандартнойДатыНачала.ПроизвольнаяДата; ДатаНач.Значение.Дата = НачалоПериода; КонецПроцедуры Процедура КонецПериодаПриИзменении(Элемент) ДатаКон = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода"); ДатаКон.Значение = Новый СтандартнаяДатаНачала; ДатаКон.Значение.Вариант = ВариантСтандартнойДатыНачала.ПроизвольнаяДата; ДатаКон.Значение.Дата = КонецПериода; КонецПроцедуры И кнопка выбора периода Процедура ВыбПериодНажатие(Элемент) НастройкаПериода = Новый НастройкаПериода; НастройкаПериода.УстановитьПериод(НачалоПериода, ?(КонецПериода='0001-01-01', КонецПериода, КонецДня(КонецПериода))); НастройкаПериода.РедактироватьКакИнтервал = Истина; НастройкаПериода.РедактироватьКакПериод = Истина; НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период; Если НастройкаПериода.Редактировать() Тогда НачалоПериода = НастройкаПериода.ПолучитьДатуНачала(); КонецПериода = НастройкаПериода.ПолучитьДатуОкончания(); КонецЕсли; НачалоПериодаПриИзменении(НачалоПериода); КонецПериодаПриИзменении(КонецПериода); КонецПроцедуры |
|||
18
Eugeneer
09.09.11
✎
10:43
|
(0) можна
|
|||
19
Eugeneer
09.09.11
✎
10:45
|
надо делать списко и использовать Период В.
Никаких наборов и кучи запросов. Потому что может быть задача выбирать любое количество периодов. Ты каждый раз будешь писать запрос и переделывать? |
|||
20
Марина Викторовна
09.09.11
✎
19:24
|
Сделала 3 набора данных (для 2009, 2010, 2011 годов), параметр Период один - для остальных наборов передаю через добавить к дате =)
(16) я получала просто настройки, наверное ты прав, надо было пользователькие брать. вроде пока клиент удовлетворен, а я с понедельника отправляюсь в отпуск =) Всем большое спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |