Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 01:59
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Работа с не фиксированным количеством колонок и строк в макете  (Прочитано 8046 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Ayria

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
Здравствуйте, помогите мне пожалуйста вот с такой проблемой. Мне нужно получить отчет в таком виде как на первой картинке. В этом отчете не фиксированное количество колонки "Номер группы", а также не фиксированное количество строк. Надо что бы выводила сразу с учетом строки и столбца.


Я пробовала работать с двумя макетами где у 1 брала в область столбцы, а у 2 брала строки, что получилось на рис.2

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


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Все ваши данные хранятся в справочнике? Че то как то кудряво...
Тут больше напрашивается что нибудь вроде регистра сведений:
Измерения - Преподаватель, Дисциплина, НомерГруппы
Ресурс - КоличествоЧасов

Приведенный запрос - очень много выбрано лишних полей.

Лекция, Лабораторные работы, Экзамен и т.д. - надо собрать в отдельный справочник что то вроде ВидыНагрузки.
Другой вопрос что на картинке 1 они не используются ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Ayria

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
на картинке 1 это показаны сумма  Лекция, Лабораторные работы, Экзамен и т.д.

Оффлайн Ayria

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
по каждой группе показана сумма Лекция, Лабораторные работы, Экзамен и т.д.
если использовать регистры то нужно это все оформлять в документ,
а можно с задачей справиться как нибудь др путем?

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
По поводу справочника, полностью согласен с cska-fanat-kz. Сваливать все в кучу на уровне справочника - не очень хорошая идея.
А по поводу самого Вашего вопроса: вам нужно в 1С сделать такой же отчет, как на рисунке 1?

Тогда приводите полный код вашего отчета, запроса здесь мало. Запрос по сути - это ваши данные, а вот то, как вы их выводите, вот это и есть самое важное.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Передумал.

2 подчиненных друг другу справочника
1: УчебныйПлан
Реквизиты: Преподаватель и НомерГруппы
2: ПараметрыНагрузки (на название фантазии не хватает ;) )
Реквизиты: Дисциплина, ВидНагрузки и КоличествоЧасов

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

УПОРЯДОЧИТЬ ПО
    Преподаватель,
    Группа

А дальше настройки отчета в виде ТАБЛИЦЫ
в строки - Преподавателя и Дисциплину
в колонки - НомерГруппы
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Ayria

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
в 2 справочника складывать информацию не удобна потому что записей очень много будет, этот учебный план составляет около 1500 записей, и все это в одном более удобно потому что нагрузка прописывается не по одному реквизиту кол-во часов а по
   |    УчебныеПланы.Лекции КАК Лекции,
                          |    УчебныеПланы.ЛабораторныеРаботы1 КАК ЛабораторныеРаботы1,
                          |    УчебныеПланы.ЛабораторныеРаботы2 КАК ЛабораторныеРаботы2,
                          |    УчебныеПланы.Экзамен КАК Экзамен,
                          |    УчебныеПланы.Консультации КАК Консультации,
                          |    УчебныеПланы.КурсоваяРабота КАК КурсоваяРабота,
                          |    УчебныеПланы.ПроверкаКурсовых КАК ПроверкаКурсовых,
это тоже все часы, если они хранятся в одном справочнике их легче соотносить друг другу, потому что занося столько записей просто рехнутся можно если все это соотносить, просто я переделываю базу созданную на делфи

Оффлайн Ayria

  • *
  • Сообщений: 15
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
а вот код как я пока пробовала выводить

  ТабДок=Новый ТабличныйДокумент;
Макет=Отчеты.СводнаяТаблицаНагрузки.ПолучитьМакет("Нагрузка");
Макет1=Отчеты.СводнаяТаблицаНагрузки.ПолучитьМакет("Нагрузка1");

// работа с 1 макетом
ОбластьШап = Макет.ПолучитьОбласть("ШапкаН");
ТабДок.Вывести(ОбластьШап);
ОбластьД = Макет.ПолучитьОбласть("ШапкаДан");
ОбластьИ = Макет.ПолучитьОбласть("ШапкаИ");
ОбластьПока = Макет.ПолучитьОбласть("Пока");

// работа с макетом 2
  ОбластьДан=Макет1.ПолучитьОбласть("Данные");
ОбластьШ=Макет1.ПолучитьОбласть("Шапка");



Отд=ЭлементыФормы.Отделение.Значение;
Фин=ЭлементыФормы.Финансирование.Значение;
Уров=ЭлементыФормы.УровеньОбразования.Значение;

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

ВыборкаОбщие = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаОбщие.Следующий() Цикл
ОбластьДан.Параметры.ФИО=ВыборкаОбщие.ПолноеФИО;


    ВыборкаГру = ВыборкаОбщие.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаГру.Следующий() Цикл
ОбластьДан.Параметры.Предмет=ВыборкаГру.Дисциплина;
   
   ТабДок.Вывести(ОбластьДан);
ВыборкаФ = ВыборкаГру.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаФ.Следующий() Цикл

     ОбластьД.Параметры.Группа=ВыборкаФ.НомерГруппы;
 
  ТабДок.Вывести(ОбластьД);

 
 

 
    КонецЦикла;
 КонецЦикла;
КонецЦикла;
 ТабДок.Вывести(ОбластьИ);





ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
 
                         




Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
в 2 справочника складывать информацию не удобна потому что записей очень много будет, этот учебный план составляет около 1500 записей, и все это в одном более удобно потому что нагрузка прописывается не по одному реквизиту кол-во часов а по
   |    УчебныеПланы.Лекции КАК Лекции,
                          |    УчебныеПланы.ЛабораторныеРаботы1 КАК ЛабораторныеРаботы1,
                          |    УчебныеПланы.ЛабораторныеРаботы2 КАК ЛабораторныеРаботы2,
                          |    УчебныеПланы.Экзамен КАК Экзамен,
                          |    УчебныеПланы.Консультации КАК Консультации,
                          |    УчебныеПланы.КурсоваяРабота КАК КурсоваяРабота,
                          |    УчебныеПланы.ПроверкаКурсовых КАК ПроверкаКурсовых,
это тоже все часы, если они хранятся в одном справочнике их легче соотносить друг другу, потому что занося столько записей просто рехнутся можно если все это соотносить, просто я переделываю базу созданную на делфи


2 справочника - это структура хранения ваших данных.
А вот как все это вводить - это другой вопрос. Придется настроить форму элемента справочника УчебныйПлан например. Но это уже совсем другая история...

Не пойму, чем отличается ваше:
...
Дисциплина = История;
Лекции = 10; //я правильно понимаю что тип всех этих полей - Число и подразумевается количество часов?
ЛабораторныеРаботы1 = 10;
ЛабораторныеРаботы2 = 10;
Экзамен = 10;
Консультации = 10;
КурсоваяРабота = 10;
ПроверкаКурсовых  = 10;

от моего:
Дисциплина = "История"; //здесь не строка а элемент справочника Дисциплины
ВидНагрузки = "Лекции"; //здесь конечно не строка а элемент справочника ВидыНагрузки
КоличествоЧасов = 10;
Дисциплина = "История";
ВидНагрузки = "ЛабораторныеРаботы1";
КоличествоЧасов = 10;
Дисциплина = История;
ВидНагрузки = "ЛабораторныеРаботы2";
КоличествоЧасов = 10;
Дисциплина = История;
ВидНагрузки = "Консультации";
КоличествоЧасов = 10;... и т.д.

Вопрос на засыпку: если появится еще один вид нагрузки (ЛабораторнаяРабота3) что будете делать в вашем случае? И что - в моем? ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Отчет делаете через СистемуКомпоновкиДанных в виде ТАБЛИЦЫ и будет вам счастье.
Все сделаете одной мышкой...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
178 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 187
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal