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

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

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

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

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

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

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

Иначе

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

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


Может быть есть какой-то пример по формированию шахматки. Все-таки, отчет распространенный. Или подскажите, как лучше его формировать.
"
 
А стандартными отчетами ("Ведомость по товарам на складах" и "Универсальный отчет") "Остатки и обороты" не посмотреть?
 
Конечно же можно. Просто здесь принципиальным является внешний вид отчета, например, ширина колонок, фото и т.д. Я думаю это легче сделать самому. Или может можно в настройках отчета изменять ширину колонок?
 
Тогда вот Вам пример отчета с выводом группировок по колонкам и строкам.
http://slil.ru/27444773
Читают тему

Читайте нас: