Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Отчет в 1С 8.1  (Прочитано 7329 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Oleshek
Гость
« : 25-11-2009 10:18 » 

Нужно получить отчет по данным регистра сведений непериодического.
В нем следующие измерения: Дата, Предмет, Преподаватель, Группа; Ресурс: Количество часов.
В настройках отчета задается параметр Группа, датаНач, датаКон.
А отчет следующего вида д.б.:

Предмет   |   Преподаватель   |   Числа месяца             |   Часов за месяц
                 |                               | 1 | 2 | 3 | 4 | 5 | 6 |...31|
-----------------------------------------------------------------------------------------------
Пред 1      |  Преп 1                  | 4|     |   |     | 2|     |...    |         6
                 |   Преп 2                 |    |    | 2|      ...               |         2
Пред 2      |  Преп 3                  |   |     |   |     | 2|     |...    |         2
...
   
Как можно получить такой отчет, если количество дней в месяце разное? А в шапке объединение ячеек программно задавать скорее всего надо, т.к. я наперед не знаю, сколько дней в выбранном пользователем месяце.                       
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 25-11-2009 11:46 » 

Можно.
Можно текст запроса формировать программно и тогда просто вывести результат, а можно текст статический, а результат запроса потом обработать добавив нужные колонки по дням в месяце и убрав лишние строки.
Выбирай вариант и задавай дальше конкретные вопросы
Записан
Oleshek
Гость
« Ответ #2 : 26-11-2009 04:44 » 

У меня запрос вот такой:
Запрос.Текст =
   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |   ДЕНЬ(Изучение.Дата) КАК Дата,
   |   ПРЕДСТАВЛЕНИЕ(Изучение.Преподаватель) КАК ПреподавательИмя,
   |   ПРЕДСТАВЛЕНИЕ(Изучение.Предмет) КАК ПредметИмя,
   |   Изучение.Часы КАК Часы
   |ИЗ
   |   РегистрСведений.Изучение КАК Изучение
   |ГДЕ
   |   Изучение.Группа = &Группа
   |   И Изучение.Дата МЕЖДУ &ДатаНач И &ДатаКон
   |
   |УПОРЯДОЧИТЬ ПО
   |   Дата
   |ИТОГИ
   |   СУММА(Часы)
   |ПО
   |   Изучение.Предмет,
   |   Изучение.Преподаватель";

Не могу сообразить, как результаты в требуемом виде представить.
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 26-11-2009 08:45 » new

Пользуйся тегом [ code ] (без пробелов)!

Код:
// Результат запроса - в ТаблицуЗначений
ТЗ=Запрос.Выполнить().Выгрузить();

// Добавляем колонки
ПоляСвертки="";
Для И1=1 По День(КонецМесяца(ДатаЗапроса)) Цикл
Идент="ЧасыДень"+И1;
Кол=ТЗ.Колонки.Добавить(Идент,ТЗ.Колонки.Часы.ТипЗначения,И1);
ПоляСвертки=ПоляСвертки+Кол.Имя+",";
КонецЦикла;
Кол=ТЗ.Колонки.Добавить("ЧасыВсего",ТЗ.Колонки.Часы.ТипЗначения,"Всего");
ПоляСвертки=ПоляСвертки+Кол.Имя;

// Проставляем часы по дням
Для каждого Стр Из ТЗ Цикл
Идент="ЧасыДень"+День(Стр.Дата);
Стр[Идент]=Стр.Часы;
Стр.ЧасыВсего=Стр.Часы;
КонецЦикла;

// Сворачиваем
ТЗ.Свернуть("ПреподавательИмя,ПредметИмя",ПоляСверки);
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines