Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
20 мая 2024, 04:27

Вывести данные отчета через Коллекцию значений

Автор c_andrey, 31 мар 2016, 14:26

0 Пользователей и 1 гость просматривают эту тему.

c_andrey

Добрый день.
В наличии 1с 8.2 файловая обычный интерфейс. УТ.

Есть отчет через СКД. Вывод отчета в коллекцию значений.
Суть проблемы при нажатии кнопки "Сформировать" отображается пустое поле(Сам код рабочий). А нужно чтоб отобразилась таблица с полями Номенклатура- Количество. Как её вызвать или создать.

Сам код

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


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

ВнешнийНабор = Новый Структура("ТаблицаДанных", Выборка); //Процессору компоновку нужна структура

Настройки = КомпоновщикНастроек.Настройки;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешнийНабор, ДанныеРасшифровки);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

мСписокОбъектов = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(мСписокОбъектов);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
     
    ПоследниеНастройки = КомпоновщикНастроек.ПолучитьНастройки();

Для Каждого СтрокаТаблицы из мСписокОбъектов Цикл
Объект = СтрокаТаблицы.Номенклатура.ПолучитьОбъект();
Объект.Комментарий = "Были продажи";
Сообщить("Для объекта: " + СтрокаТаблицы.Номенклатура + " установлен новый комментарий.");
Объект.Записать();
КонецЦикла;
КонецПроцедуры


vitasw

:D Так не выводите в ТЗ и будет вам отчет.

c_andrey

Ясно. А если нужно в ТЗ.  То как быть подскажите.? Или нужно два кода дублировать один с ТЗ а другой без?

vitasw

Цитата: c_andrey от 31 мар 2016, 15:26А если нужно в ТЗ.

Вы определитесь куда вам нужно в ТЗ или отчет.

c_andrey

Цитата: vitasw от 31 мар 2016, 15:53
Цитата: c_andrey от 31 мар 2016, 15:26А если нужно в ТЗ.

Вы определитесь куда вам нужно в ТЗ или отчет.

А одновременно в ТЗ и в отчет возможно?

vitasw


c_andrey

Ок. Ясно. 
А вариант отобразить в пустом поле вместо отчета - ТЗ.
И выгрузку делать только в ТЗ.

Так можно?

vitasw

А сделать 2 отчета? один для ТЗ другой для вывода

c_andrey

Цитата: vitasw от 31 мар 2016, 17:08
А сделать 2 отчета? один для ТЗ другой для вывода

Если я правильно понял то тогда будет отображаться отчет и строится ТЗ. И все это в одном отчете Верно?

Так некогда не делал. Если можно дайте готовый пример или ссылку на методику построения отчета и ТЗ.

Спасибо

vitasw

Цитата: c_andrey от 01 апр 2016, 09:22И все это в одном отчете Верно?
Нет. неверно. 2 отчета, физически 2 отчета. Один вы оставляете как есть и он выводит в ТЗ, второй вы корректируете, чтобы он выводил в табличное поле.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск