Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Программный вывод отчета , СКД          
Vofka Подменю пользователя
сообщение 29.11.12, 10:06
Сообщение #1

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

В ходе обсуждения этой темы добавлю сюда ещё пример получения результата компоновки в таблицу значений.

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


Скачать: Прикрепленный файл  ProgramSCDinVT.zip ( 5,92 килобайт ) Кол-во скачиваний: 118


Пример будет работать на любой конфе, где есть справочник Номенклатура.

Сообщение отредактировал Vofka - 05.03.13, 17:16

Спасибо сказали: shurik_shurik,

Vofka Подменю пользователя
сообщение 11.12.12, 13:57
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Хотя примеры подобные у нас уже присутствуют на форуме, я посчитал, что ещё один лишним не будет.

Несмотря на то, изучающие СКД встречаются с этим на первый или второй день, это должно быть в разделе FAQ. Простой пример программного вывода отчета на компоновке, использующий настройки по умолчанию.

//Получаем схему из макета
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,
                                        Настройки, ДанныеРасшифровки);

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

//Очищаем поле табличного документа
Результат = ЭлементыФормы.Результат;
Результат.Очистить();

//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанных
                                                  ВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


[необходимо зарегистрироваться для просмотра ссылки]

Спасибо сказали: bakalavr,

Vofka Подменю пользователя
сообщение 11.03.13, 10:38
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Добавлю ещё отсюда вариант:

Процедура СформироватьОтчет()
    КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки=КомпоновщикМакета.Выполнить(ОтчетОбъект.СхемаКомпоновкиДанных, ОтчетОбъект.КомпоновщикНастроек.Настройки);
    //в этот момент подставляем нужный параметр
    МакетКомпоновки.ЗначенияПараметров.Контрагент.Значение=НужныйКонтрагент;
    ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,,Истина);
    ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.ОтображатьПроцентВывода=Истина;
    ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ТабДок);
    ПроцессорВывода.НачатьВывод();
    Пока Истина Цикл
        СледЭлемент=ПроцессорКомпоновки.Следующий();
        Если СледЭлемент=Неопределено Тогда
            Прервать;
        Иначе
            ПроцессорВывода.ВывестиЭлемент(СледЭлемент);
        КонецЕсли;
    КонецЦикла;
    ПроцессорВывода.ЗакончитьВывод();
КонецПроцедуры


Сообщение отредактировал Batchir - 11.03.13, 14:04

Спасибо сказали: andreykyiv@bigmir.net,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.04.24, 1:28
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!