Имя: Пароль:
1C
1С v8
v8: Подскажите с отчетом
0 mirrr
 
13.07.11
21:34
Нужно в отчете (не на скд) сделать, чтобы строки формировались по выбранной в диалоге отчета периодичности (запись, регистратор, день, декада и т.д.). Создал на форме список для выбора значения периодичности.
В отчете код:

   |        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Запись, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&Счет), , ) КАК ЕПСБУОстаткиИОбороты
       |        ПО Обороты.Регистратор = ЕПСБУОстаткиИОбороты.Регистратор
       |            И Обороты.НомерСтроки = ЕПСБУОстаткиИОбороты.НомерСтроки
       |            И Обороты.Период = ЕПСБУОстаткиИОбороты.Период}

подскажите, как можно сделать, чтобы отчет формировался по выбранному в диалоге значению периодичности
1 Лефмихалыч
 
13.07.11
21:43
периодичность в фигурные скобки завернуть. А еще лучше пойтить в магазин, купить книжку Хрусталевой про СКД и прочитать ее
2 mirrr
 
13.07.11
21:48
(1) сейчас в коде периодичность=запись и идет соединение по НомеруСтроки и Регистратору. Если написать {(&Периодичность)} и периодичность будет выбрана год, то как соединять по НомеруСтроки и Регистратору. Отчет не на скд.
3 PR
 
13.07.11
21:49
(2) Никак
4 mirrr
 
13.07.11
21:53
вообщем фрагмент приведенного кода надо изменить так, чтобы можно было в периодичность подставлять выбранный в диалоге отчета из списка текст: запись, регистратор, день, месяц, год
5 Лефмихалыч
 
13.07.11
21:53
(2) тогда ни как. Пожно добавить полей вида
НАЧАЛОПЕРИОДА(Период, ДЕНЬ) КАК ПоДням,
НАЧАЛОПЕРИОДА(Период, ДЕКАДА) КАК ПоДекадам,
НАЧАЛОПЕРИОДА(Период, МЕСЯЦ) КАК ПоМесяцам
и т.д.

и просто выбирать нужное поле для группировки. Только , если это на СКД, надо не забыть поставить для них роли и номера в правильном порядке, чтобы итоги вычислялись правильно
6 Один С
 
13.07.11
21:54
можно через СтрЗаменить..
7 Лефмихалыч
 
13.07.11
21:56
(6) веткой не ошибся часом?
8 mirrr
 
13.07.11
21:56
(5) поля в запрос добавил. Как потом их выбрать нужное поле для группировки, в зависимости от выбранного значения в диалоге отчета?
9 Один С
 
13.07.11
22:03
(7) ты сам ошибся. автор 4 раза повторил, что это не СКД, а ты все по СКД советуешь..

вот как в УТ запрос собирается
   Если МетаданныеРеквизита<>Неопределено И МетаданныеРеквизита.Тип.СодержитТип(Тип("Строка")) И МетаданныеРеквизита.Тип.КвалификаторыСтроки.Длина = 0 Тогда
       Запрос.Текст = СтрЗаменить(Запрос.Текст, "Спр1."+ПолучитьЗначениеНастройки("Имя реквизита"),
                                  "ВЫРАЗИТЬ (Спр1."+ПолучитьЗначениеНастройки("Имя реквизита")+" КАК Строка(300))");
       Запрос.Текст = СтрЗаменить(Запрос.Текст, "Спр2."+ПолучитьЗначениеНастройки("Имя реквизита"),
                                  "ВЫРАЗИТЬ (Спр2."+ПолучитьЗначениеНастройки("Имя реквизита")+" КАК Строка(300))");
       Запрос.Текст = Запрос.Текст + ", " + "ВЫРАЗИТЬ (Спр1."+ПолучитьЗначениеНастройки("Имя реквизита")+" КАК Строка(300))"; // явная группировка
   КонецЕсли;
10 mirrr
 
13.07.11
22:14
Как можно выбрать нужное поле для группировки в запросе, в зависимости от выбранного значения в диалоге отчета?
11 hhhh
 
13.07.11
22:40
(10) ну тоже в фигурные скобки их.
12 mirrr
 
13.07.11
22:48
(11) а как сделать, чтобы если выбрана детализация=запись, то в запросе было соединение:
 |        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Запись, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&Счет), , ) КАК ЕПСБУОстаткиИОбороты
       |        ПО Обороты.Регистратор = ЕПСБУОстаткиИОбороты.Регистратор
       |            И Обороты.НомерСтроки = ЕПСБУОстаткиИОбороты.НомерСтроки
       |            И Обороты.Период = ЕПСБУОстаткиИОбороты.Период}

а если выбрана детализация=год, то
|        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЕПСБУ.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ), КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ), Запись, ДвиженияИГраницыПериода, Счет В ИЕРАРХИИ (&Счет), , ) КАК ЕПСБУОстаткиИОбороты
       |        ПО
       |            Обороты.Период = ЕПСБУОстаткиИОбороты.Период}
13 mirrr
 
13.07.11
22:50
что-нибудь подобное реализовано в типовых конфигурациях, чтобы можно было выбирать детализацию проводка-операция-день-неделя... ?
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший