Имя: Пароль:
1C
1С v8
Отчет с динамическим количеством колонок
0 goldwirt
 
01.10.12
13:40
Делаю запрос, результат 4ре поля: Номенклатура, ТипЦен, Цена, Разница. Надо что бы результат выводился : в колонках ТипЦен и каждый тип цен разделен на 2е колонки(Цена и Разница), в строках - Номенклатура. но должна быть еще одна фиксированная колонка(ТипЦен конкретный, выводится только цена). Получается что надо делать фиксированный макет с 2мя колонками - "Номенклатура", "Минимальный"(ТипЦен), а остальные колонки(для каждого типа цена) должны присоединяться.
Я не понимаю как это осуществить. (группировки в запросе по номенклатуре и типу цен)
1 shuhard
 
01.10.12
13:41
(0) а мы не понимаем, о чем с ТС говорить без фотки
2 Zmich
 
01.10.12
13:48
(0). Покажи код, как пытаешься сделать и в чем конкретно проблема.
3 goldwirt
 
01.10.12
14:01
Проблема в том что не понимаю метода присоединить. Как и когда присоединять,что в итоге присоединяется и как заполнять присоединенную область данными.
Мне бы пример отчета в котором присоединяются области, или какой нибудь отрывок кода...
Только начала осваивать 1с и много чего пока не знаю.
4 Zmich
 
01.10.12
14:32
(3) Ну примерно так:

Запрос = Новый Запрос;
Запрос.Текст = "....";
// скажем, как у тебя - 2 группировки: по Номенклатуре и Типу цен
// 2 вертикальные секции в макете - Номенклатура и
// та, которую надо присоединять - ТипЦен

ОбластьМакетаСтрокаНоменклатура = Макет.ПолучитьОбласть("Строка|Номенклатура");
ОбластьМакетаСтрокаТипЦен = Макет.ПолучитьОбласть("Строка|ТипЦен");
РезультатЗапроса = Запрос.Выполнить();
ВыборкаНоменклатуры = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
Пока ВыборкаНоменклатуры.Следующий() Цикл
 ОбластьМакетаСтрокаНоменклатура.Параметры.Номенклатура = ВыборкаНоменклатуры.Номенклатура;
 ТабДокумент.Вывести(ОбластьМакетаСтрокаНоменклатура);
 ВыборкаТиповЦен = ВыборкаНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ТипЦен");
 Пока ВыборкаТиповЦен.Следующий() Цикл
   //... заполняешь параметры вертикальной секции ТипЦен
   ТабДокумент.Присоединить(ОбластьМакетаСтрокаТипЦен);
 КонецЦикла;
КонецЦикла;
5 НЕА123
 
01.10.12
14:34
(4)
эхххх. малай...
весь форум без фотки оставил.
6 goldwirt
 
01.10.12
15:15
Так я пробую, спасибо, уже стала ближе к результату, но пока далеко от понимания.
Пока такой вопрос: получается что нам надо в цикле после перехода на новую номенклатуру, изменять область "ОбластьМакетаСтрокаТипЦен" на область строкой ниже?
А то все данные(для всех номенклатур) по типам цен выводятся в строку соответствующую первой номенклатуре.
7 Zmich
 
01.10.12
16:25
(6). Чтобы выводилось строкой ниже, надо использовать Вывести, а не Присоединить. Внимательно пример посмотри в (4).
8 goldwirt
 
01.10.12
16:48
В верхенм цикле вывести во внутреннем присоединить, просто почему то при выполнении такого кода получается

Ном1  ТипЦен1 ТипЦен2 ТипЦен4 ТипЦен1 ТипЦен2 ТипЦен3 и т.д. все типы цен
Ном2

, а должно быть:

Ном1  ТипЦен1 ТипЦен2          ТипЦен4  
Ном2  ТипЦен1 ТипЦен2 ТипЦен3

На самом деле есть еще и другие ошибки, но пока что не пойму эту.
9 zladenuw
 
01.10.12
16:49
покаж выборку свою
10 goldwirt
 
01.10.12
16:50
Надо при обходе проверять добавлены ли уже колонки и если добавлены то заполнять если нет присоединять?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.