отчет шахматка в УТ 10.3

Тема в разделе "1C и всё что с ней связано", создана пользователем rubi, 12 апр 2009.

  1. rubi

    rubi Гость

    Всем здравствуйте. У меня возникла проблема с созданием отчета шахматка в УТ10.3. Суть отчета в том, что в строках идет номенклатура, а в столбцах склады (соответственно, в столбцах количество, стоимость и т.д., это не так важно). Проблема именно с выводом отчета, т.е. использую стандартные методы Присоединить() и Вывести() и получаю "некрасивый" отчет, где секция количества и стоимости товара на складе смещена вниз относительно строки. К тому же, мне нужно чтобы имя склада выводилось в шапке, а получается, что в строках. Просто хотелось бы, идя по выборке из запроса, добавлять при необходимости колонки склада и заносить в нужные колонки (т.е. на пересечениях колонок и строк) данные.
    код формирования отчета такой:

    Макет = ОтчетОбъект.ПолучитьМакет("Шахматка");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ТоварыНаСкладахОстаткиИОбороты.Склад,
    | ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    | ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
    | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    | ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
    | ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
    |ИЗ
    | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаОконч,) КАК ТоварыНаСкладахОстаткиИОбороты
    |ГДЕ
    | ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад ИЛИ ТоварыНаСкладахОстаткиИОбороты.Склад = &Склад1
    |СГРУППИРОВАТЬ ПО
    | ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    | ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
    | ТоварыНаСкладахОстаткиИОбороты.Склад,
    | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    | ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
    | ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход";

    Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
    Запрос.УстановитьПараметр("ДатаОконч", ДатаОконч);
    Запрос.УстановитьПараметр("Склад", Склад);
    Запрос.УстановитьПараметр("Склад1", Склад1);

    Результат = Запрос.Выполнить();

    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    ОбластьСклады = Макет.ПолучитьОбласть("Склады");

    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();

    ВыборкаДетали = Результат.Выбрать();
    ТаблицаСкладов = Новый ТаблицаЗначений;
    ТаблицаСкладов.Колонки.Добавить("Склад");
    Пока ВыборкаДетали.Следующий() Цикл
    СкладУжеЕсть = Ложь;
    КолонкаСклада = 0;
    Для Инт = 0 По ТаблицаСкладов.Количество()-1 Цикл
    Если ТаблицаСкладов[Инт].Склад = ВыборкаДетали.Склад Тогда
    СкладУжеЕсть = Истина;
    КонецЕсли;
    КонецЦикла;
    Если СкладУжеЕсть = Ложь Тогда
    ОбластьСклады.Параметры["Склад"] = ВыборкаДетали.Склад;
    ОбластьСклады.Параметры["ХарактеристикаНоменклатуры"] = ВыборкаДетали.ХарактеристикаНоменклатуры;
    ОбластьСклады.Параметры["Сумма"] = "12345";
    ОбластьДетальныхЗаписей.Присоединить(ОбластьСклады);
    СтрокаСклада = ТаблицаСкладов.Добавить();
    СтрокаСклада.Склад = ВыборкаДетали.Склад;
    ОбластьДетальныхЗаписей.Параметры["Номенклатура"]= ВыборкаДетали.Номенклатура;
    ТабДок.Вывести(ОбластьДетальныхЗаписей);

    Иначе

    ОбластьДетальныхЗаписей.Параметры["Номенклатура"]= ВыборкаДетали.Номенклатура;
    ОбластьСклады.Параметры["ХарактеристикаНоменклатуры"] = ВыборкаДетали.ХарактеристикаНоменклатуры;
    ОбластьСклады.Параметры["Сумма"] = "1234";
    ТабДок.Вывести(ОбластьДетальныхЗаписей);
    КонецЕсли;
    КонецЦикла;

    ТабДок.Показать("Шахматка");


    Может быть есть какой-то пример по формированию шахматки. Все-таки, отчет распространенный. Или подскажите, как лучше его формировать.
     

    Вложения:

    • _____.jpg
      _____.jpg
      Размер файла:
      49,8 КБ
      Просмотров:
      19
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    У вас областями являются щелые строки. Попробуйте задать отдельные ячейки. Т.е. обастью "детали" сделать только левые 5 ячеек.
     
  3. rubi

    rubi Гость

    Большое спасибо за совет. В итоге причина была в том, что область Склады присоединялась к области Детали, и присоединялась, начиная с верхней строчки области Склады. Надо было присоединять к области заголовок.
     
Загрузка...

Поделиться этой страницей