Поиск  Пользователи  Правила  Войти
RSS
конф: самописная, 1С 7.7 Сложная таблица, как это лучше организовать
 
"Формат(ДатаМоя, "ДММММ");"
 
нет - все равно пустая дата.
 
"МояДАта = запрос.месяц;
Формат (МояДАта, "ДММММ");"
 
"нет, сейчас вообще убрал формат

т.е. написал что-то типа

знач = запрос.месяц;

где знач выводится непосредственно на таблицу и получил что-то типа: декабрь 08, январь 09, ...,

т.е. запрос.месяц - это не дата, а уже форматированная часть даты."
 
"и последний, пока что, вопрос:

если есть:

|Группировка Лого упорядочить по количествосумма;

то имеем сортировку по возрастанию.
Как слелать ее по убыванию?"
 
и еще один вопрос: вроде "без итогов" нигде не стоит, но итоги никак получить не могу. В чем может быть дело?
 
"теперь надо немного переиграть, т.е. нужны итоги, как по столбцам, так и по строкам. Ну по строкам понятно, тут можно счетчик сделать, а вот по столбцам видимо придется делать промежуточную таблицу значений и в ней список значений, т.е. что-то типа:

Таб = СоздатьОбъект("Таблица");
Запрос.Выполнить (ТекстЗапроса);
тз = создатьобъект ("ТаблицаЗначений");
тз.новаяколонка ("Логотип");
тз.новаяколонка ("СЗ");


пока запрос.группировка ("Лого") = 1
цикл
тз.новаястрока ();
тз.логотип = запрос.лого;
тз.сз = создатьобъект ("СписокЗначений");
пока запрос.группировка ("Месяц") = 1
цикл
тз.сз.добавитьзначение (запрос.количествосумма,запрос.месяц);
конеццикла;
конеццикла;
запрос.группировка ("Лого");

тз.новаястрока (1);
тз.логотип = """";
тз.сз = создатьобъект ("Списокзначений");
пока запрос.группировка ("Месяц") = 1
цикл
тз.сз.добавитьзначение (запрос.месяц,запрос.месяц);
конеццикла;


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

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

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

таб.вывестисекцию ("Подвал|лого");            

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

Таб.Показать("Печать", """");

Но как теперь правильно вычислить и вывести итоги по столбцам?
"
 
"1. делать надо ДВА ЗАПРОСа !!!
2. регистр ВыпускПродукции оборотный?


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

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

Запрос.Выполнить (ТекстЗапроса);
Таб = СоздатьОбъект("Таблица");

//шапку по месяцам - выводим сам )))

СЗ = СоздатьОбъект("СписокЗначений");

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

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

Пока запрос.группировка(1) = 1 цикл
  //а теперь заполняем итоги по месяцам
     
КонецЦикла;"
 
второй запрос получается пустой!

т.е. в отладчике
пока запрос.группировка (1) равен нулю!.
 
а без лого в сз - норм!

zak - спасибо!
Читают тему (гостей: 1)

Читайте нас: