|
v7: проблема с отчетом по таблице значений | ☑ | ||
---|---|---|---|---|
0
sevensword
18.07.12
✎
12:56
|
проблема с отчетом по таблице значений
в доке есть ТЗ, пытаюсь вывести отчет по этой таблице, в итоге получаю что с каждого дока тянется только по одной строчке, где ошибка подскажите плиз Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |СменныйОтчет = Документ.СменныйОтчет.ТекущийДокумент; |ГСМ = Документ.СменныйОтчет.ГСМ; |фирма = Документ.СменныйОтчет.АЗС.фирма; |АЗС = Документ.СменныйОтчет.АЗС; |Объем = Документ.СменныйОтчет.Объем; |Сумма = Документ.СменныйОтчет.Сумма; // |Товар = Справочник.ГруппыТоваров.Наименование; // |Товар = Документ.СменныйОтчет.; // |Фасовка = Документ.СменныйОтчет.количество; |Функция ОбъемСумма = Сумма(Объем); |Функция СуммаСумма = Сумма(Сумма); // |Функция КоличествоСумма = Сумма(фасовка); |условие(азс в выб_азс); |Группировка АЗС без групп; |Группировка День; |Группировка ГСМ без групп; |Группировка товар без групп; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); _итого=0; док=создатьобъект("Документ.СменныйОтчет"); Таб.Опции(0, 0,,, Таб.ВысотаТаблицы(), 0); таб1=создатьобъект("ТаблицаЗначений"); таб1.Количествострок("8"); таб1.новаяколонка("гсм","Справочник.Номенклатура"); таб1.новаяколонка("сотр","Справочник.ГруппыТоваров"); таб1.новаяколонка("кол","Число"); таб1.новаяколонка("сум","Число"); таб1.новаяколонка("азс","Справочник.МестаХранения"); // таб.новаяколонка("азс","Документ.сменныйотчет"); Пока Запрос.Группировка(1) = 1 Цикл Таб.ВывестиСекцию("АЗС"); Пока Запрос.Группировка(2) = 1 Цикл _тов=0; _подк=0; док.выбратьдокументы(Запрос.день,Запрос.день); Пока док.получитьдокумент()=1 Цикл Если док.проведен()=0 Тогда продолжить; КонецЕсли; Если пустоезначение(выб_азс)=0 тогда если не(док.азс=выб_азс) Тогда продолжить; конецесли; КонецЕсли; таб_группа=создатьобъект("ТаблицаЗначений"); значениеизстрокивнутр(док.стр_ТЗ_5).выгрузить(таб_группа); таб1.новаястрока(); // таб.азс=запрос.азс; // таб1.азс=запрос.азс; таб1.сотр=таб_группа.группа; // таб.азс=таб_группа.азс; таб1.кол=таб_группа.расх_кол; таб1.сум=таб_группа.сумма; ТЗ_5=создатьобъект("ТаблицаЗначений"); ТЗ_5.загрузить(значениеизстрокивнутр(док.стр_ТЗ_5)); _тов=0; _подк=_подк+ТЗ_5.Итог("расх_кол"); _тов=_тов+ТЗ_5.Итог("сумма"); таб1_сотр=создатьобъект("ТаблицаЗначений"); // таб.выгрузить(таб_гсм,,,"гсм,кол,сум"); таб1.выгрузить(таб1_сотр,,,"кол,сум"); // таб1.выгрузить(таб1_сотр,,,"кол,сум"); Таб1.Сортировать("сотр"); таб1_сотр.свернуть("сотр","кол,сум"); Таб.ВывестиСекцию("Товар"); |
|||
1
1Сергей
18.07.12
✎
13:00
|
>>в доке есть ТЗ
ну-ну |
|||
2
Kreont
18.07.12
✎
13:01
|
Тяжело что то понять в коде :(
В запросе 4 групировки, а тут для 2-ой = "День", вывод секции :Таб.ВывестиСекцию("Товар"); |
|||
3
Ёпрст
18.07.12
✎
13:01
|
тихий ужас
|
|||
4
1Сергей
18.07.12
✎
13:03
|
значениеизстрокивнутр(док.стр_ТЗ_5).выгрузить(таб_группа);
таб1.новаястрока(); // таб.азс=запрос.азс; // таб1.азс=запрос.азс; таб1.сотр=таб_группа.группа; // таб.азс=таб_группа.азс; таб1.кол=таб_группа.расх_кол; таб1.сум=таб_группа.сумма; Ясен перец, что только первая строка выдезет. Где перебор строк таб_группа? |
|||
5
Ёпрст
18.07.12
✎
13:04
|
вот тут
таб1.новаястрока(); таб1.сотр=таб_группа.группа; //таб_группа не спозиционирована ни на какой строке, это раз, в таб_группа может быть не одна строка а несколько, это два.. |
|||
6
Андрей_Андреич
naïve
18.07.12
✎
13:04
|
значениеизстрокивнутр = значениеизбутылкивнутрь
|
|||
7
sevensword
18.07.12
✎
13:47
|
1Сергей спасибо, сделал перебор строк помогло
|
|||
8
Ёпрст
18.07.12
✎
13:51
|
(7) если че, выкини ВыбратьДокументы из кода нафик, + группировка день, воткни группировка Документ - имей сам документ на выходе запроса.
Потом ужо, извлекай свою ТЗ из строки. Хотя, лучше переделай всё по-другому, чтоб не хранить инфу в строке неограниченной длины. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |