Имя: Пароль:
1C
1C 7.7
v7: Построение отчета с присоединением секций по горизонтали
0 brenli
 
17.12.14
09:30
Добрый день.
Нужно создать отчет, за основу принят Книга покупок (журнал учета полученных сч.фактур)
http://savepic.su/4600293.jpg  
По вертикали должны выводится Контрагенты из документов, по горизонтали секции с наименованием складов (из тех же документов) на пересечении суммы НДС по каждому (складу ..подразделению опять же из этого же документа).
Не получается сообразить как связывать столбик со строкой, чтобы значение было точно в месте пересечения столбца и строки.
А именно вся сложность в том что столбец с наименованием склада будет уникальным (т.е сначала я прохожу по всем нужным документам и их склады загоняю в Таблицу Значений, сворачиваю таблицу - избавляюсь от дублирования столбцов и циклом в данном случае не отсчитать промежуточные пустые ячейки)
1 Builder
 
17.12.14
09:34
В чем проблема вывести таблицу значений в такую же таблицу ?
2 aka AMIGO
 
17.12.14
09:35
Для подготовки таблицы можно воспользоваться функцией 1С ТЗ.ПолучитьПараметрыКолонки(i) - и сделать это в цикле, выводя попутно секции таблицы
Для вывода первой секции с новой строки - Т.ВывестиСекцию("перваяТвояСекция")
для присоединения секции справа
Т.ПрисоединитьСекцию("ТвояСекцияСклада")


ЗЫ. если я правильно понял задачу ТС
3 brenli
 
17.12.14
09:37
(2) Т.е получить наименование из столбца склада и есть совпадет тогда вывести так?.
4 aka AMIGO
 
17.12.14
09:38
(3) Ну, примерно так.
5 brenli
 
17.12.14
09:39
(4) Как вариант +1
6 brenli
 
17.12.14
11:17
БОльше идей нет?
7 Мигало
 
17.12.14
11:27
ТЗ созадвай в памяти, наполняй ее как надо. Потом тупо выведешь в таблицу
8 brenli
 
17.12.14
11:47
(7) Смотри...
Заполняю ТЗ....
***
ТЗ.Продавец      = ЗначениеПродавец;
ТЗ.МестоХранения = ЗначениеМестоХранения;
ТЗ.Документ      = Док;
ТЗ.Сумма         = Сумма;
ТЗ.НДС           = СуммаНДС;

***
Заполнили...
Дальше как выводим?
9 Builder
 
17.12.14
12:08
Определяешь полный список твоих складов в списке значений.
По этому списку выводишь шапку.
дальше идешь по своей таблице, выводишь клиента, перебираешь список складов, выводя пустые ячейки.
Если твой склад = складу в списке - на этом месте выводишь сумму, иначе - 0.
Где нибудь в массиве накапливаешь итоги, если нужны.
Дальше по списку складов выводишь итоги.
Как то так.
10 brenli
 
17.12.14
12:17
(9) Спасибо
11 Builder
 
17.12.14
12:19
(10) Да на здоровье.
Если будешь итоги в массиве считать - не забудь его обнулить.
12 dk
 
17.12.14
12:25
я обычно получаю
список всех вариантов по вертикали СЗВерт
список всех вариантов по горизонтали СЗГор
---
далее выводишь
ДЛя Сч = 1 По СЗВерт.размер
   Таб.вывестисекцию()
   для сч2 = 1 по СЗгор.размер
      ...
      таб.присоединитьсекцию
...
если умеешь работать с индексированнойтз то получение итога по 2-м измерениям получить несложно, но можно и простым перебором получить значение на пересечении
13 brenli
 
17.12.14
15:35
(12) Индексированная таблица, это объект внешней компоненты?
14 Ёпрст
 
17.12.14
15:36
(0)
либо ИТЗ либо Класс.ИтогиПоГруппировкам
15 Ёпрст
 
17.12.14
15:36
всё остальное долго и много кода
16 dk
 
18.12.14
07:48
(13) да, это из 1с++ комплекта
Ошибка? Это не ошибка, это системная функция.