Поиск  Пользователи  Правила  Войти
RSS
конф: самописная, 1С 7.7 Сложная таблица, как это лучше организовать
 
"есть:

1. 1с 7.7
2. нужно сделать отчет типа:

       январь  февраль декабрь  всего
лого1
лого2
лого3

всего

3. пишем в цикле 12 запросов типа:

"//{{запрос (лого1)
|Период с ДатаМесНач по ДатаМесКонц;
|Обрабатывать НеПомеченныеНаУдаление;
|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;
|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;
|Количество = Регистр.ВыпускПродукции.Количество;
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Лого;
|Условие (ПустоеЗначение(Лого)=0);

где датамеснач - начало месяца, например 01.01.09, датамесконц - 31.01.09

создал одну секцию горизонтальную и одну вертикальную, но что-то дальше не соображу куда двигаться, присоединитьсекцию не совсем работает, т.к. движение по запросу идет не слева направо, а сверху вниз."
 
В цикле 12 запросов это круто!!!
Есть передопределенная группировка:
Группировка Месяц, дальше собири в ТЗ, как надо.


 
группировку по месяцам добавь
 
"А все-таки продскажите еще, пожалуйста, как можно сделать таблицу не только "вниз", но и "вправо":

"//{{запрос (лого1)
|Период с ДатаМесНач по ДатаМесКонц;
|Обрабатывать НеПомеченныеНаУдаление;
|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;
|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;
|Количество = Регистр.ВыпускПродукции.Количество;
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Лого;
|Группировка Месяц;
|Условие (ПустоеЗначение(Лого)=0);
и выгружаем, но тогда идет что-то типа
      январь
лого1
лого2
лого3
     февраль
лого2
лого3
лого5
     март
лого1
лого3

....
а как можно сделать, чтобы:

      январь     февраль    март
лого1     10                  30
лого2     15         10
лого3                18       14

ну и т.д.

Подскажите хоть в какую сторону копать?"
 
"Если закрыть глаза на "и выгружаем", так как я не понял зачем нужно куда то что то выгружать, то будет так:
"//{{запрос (лого1)
|Период с ДатаМесНач по ДатаМесКонц;
|Обрабатывать НеПомеченныеНаУдаление;
|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;
|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;
|Количество = Регистр.ВыпускПродукции.Количество;
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Лого;
|Группировка Месяц Все ВошедшиеВЗапрос;
|Условие (ПустоеЗначение(Лого)=0);

и потом
Пока Запрос.Группировка("Лого")=1 Цикл
  Таб.ВывестиСекцию("СекцияЛого");
  Пока Запрос.Группировка("Месяц")=1 Цикл
     Таб.ПрисоединитьСекцию("СекцияМесяца");
  КонецЦикла;
КонецЦикла;

В результате и получим:
лого1     10                  30
лого2     15         10
лого3                18       14
"
 
""выгружать" - имел ввиду запрос.выгрузить (ТЗ), впрочем это на самом деле не подходящий вариант.

По поводу Вашего предложения:

есть "таблица"

секции\секции
              Лого       Мес
Заголовок      
Оснчасть      <логотип>    <колво>
Подвал

что в остальных частях не имеет сейчас значения.

Пишу след. код:

Запрос = создатьобъект ("Запрос");
текстзапроса =
"//{{запрос (лого1)
|Период с ДатаНач по ДатаКонц;
|Обрабатывать НеПомеченныеНаУдаление;
|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;
|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;
|Количество = Регистр.ВыпускПродукции.Количество;
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Лого;
|Группировка Месяц все вошедшиевзапрос;
|Условие (ПустоеЗначение(Лого)=0);
|"//}}Запрос
;

Запрос.Выполнить (ТекстЗапроса);


Таб = СоздатьОбъект("Таблица");
таб.вывестисекцию ("Заголовок");


Пока Запрос.Группировка("Лого")=1 Цикл
логотип = запрос.лого;
 Таб.ВывестиСекцию("Лого");
 
 Пока Запрос.Группировка("Месяц")=1 Цикл
  колво = запрос.количествосумма;
    Таб.присоединитьсекцию("Мес");
 КонецЦикла;
КонецЦикла;

Но ничего не выходит.

Вообще как я не химичу с оснчасть, лого и мес в лучшем случае выходит что-то типа:

лого1 30
лого2
лого3 14

т.е. выводятся все логотипы, даже которые не были в последнем месяце, но присоединяется только одна секция со значениями за последний месяц."
 
"добавь

|Без Итогов;"
 
"все, кажись нащупал свет в конце тунеля, ближе всего будет так:

Запрос = создатьобъект ("Запрос");
текстзапроса =
"//{{запрос (лого1)
|Период с ДатаНач по ДатаКонц;
|Обрабатывать НеПомеченныеНаУдаление;
|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;
|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;
|Количество = Регистр.ВыпускПродукции.Количество;
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Лого;
|Группировка Месяц все вошедшиевзапрос;
|Условие (ПустоеЗначение(Лого)=0);
|"//}}Запрос
;

Запрос.Выполнить (ТекстЗапроса);


Таб = СоздатьОбъект("Таблица");
таб.вывестисекцию ("Заголовок");


Пока Запрос.Группировка("Лого")=1 Цикл
логотип = запрос.лого;
Таб.ПрисоединитьСекцию("Лого|Оснчасть");

Пока Запрос.Группировка("Месяц")=1 Цикл
 колво = запрос.количествосумма;
   Таб.Присоединитьсекцию("Мес|Оснчасть");
КонецЦикла;
таб.вывести ();
КонецЦикла;
"
 
"Запрос = создатьобъект ("Запрос");
текстзапроса =
"//{{запрос (лого1)
|Период с ДатаНач по ДатаКонц;
|Обрабатывать НеПомеченныеНаУдаление;
|Лого = Регистр.ВыпускПродукции.Продукция.Логотип;
|ТекущийДокумент = Регистр.ВыпускПродукции.ТекущийДокумент;
|Количество = Регистр.ВыпускПродукции.Количество;
|Функция КоличествоСумма = Сумма(Количество);
|Группировка Лого;
|Группировка Месяц все вошедшиевзапрос;
|Условие (ПустоеЗначение(Лого)=0);
|Без Итогов;
|"//}}Запрос
;

в итоге будет одна группировка!"
 
"Да, еще такой вопрос: а можно обратиться (получить) это самое "системное" значение "Месяц" из запроса:
т.е. теперь надо
      ноябрь  декабрь  декабрь  январь  февраль  март
лого1
лого2
лого3

... ну понятно.

Т.е. пишу что-то типа:

Запрос.Выполнить (ТекстЗапроса);


Таб = СоздатьОбъект("Таблица");


таб.вывестисекцию ("Заголовок");
таб.вывестисекцию ("шапка|лого");
счетчик = 0;  

запрос.группировка ("Лого");
пока запрос.группировка ("месяц") = 1 цикл
таб.присоединитьсекцию ("шапка|мес");
месяц1 = формат (запрос.месяц, "ММММ");
счетчик = счетчик +1;
конеццикла;


запрос.вначаловыборки();

Пока Запрос.Группировка("Лого")=1 Цикл
логотип = запрос.лого;
 Таб.вывестисекцию("строка|лого");
 
 Пока Запрос.Группировка("Месяц")=1 Цикл
  колво = запрос.количествосумма;  
    Таб.присоединитьсекцию("строка|Мес");

КонецЦикла;
 

КонецЦикла;


Ну нас тут интересует эта часть:

запрос.группировка ("Лого");
пока запрос.группировка ("месяц") = 1 цикл
таб.присоединитьсекцию ("шапка|мес");
месяц1 = формат (запрос.месяц, "ММММ");
счетчик = счетчик +1;
конеццикла;
Но при любом описании формата, хоть ММММ, хоть ДДММГГ, хоть еще что-то выходит пустой месяц, т.е. если ММММ - то ничего нет, если ДДММГГ - то "   .   .  "."
Читают тему

Читайте нас: